@commercetools-frontend/application-shell 21.23.10 → 21.24.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 (208) hide show
  1. package/dist/application-entry-point-47d5c548.cjs.dev.js +116 -0
  2. package/dist/application-entry-point-5619d5aa.cjs.prod.js +99 -0
  3. package/dist/application-entry-point-dc726674.esm.js +101 -0
  4. package/dist/{box-dd9e7e68.esm.js → box-4395623b.esm.js} +1 -3
  5. package/dist/{box-fdb2ccb6.cjs.dev.js → box-6b5be9a9.cjs.dev.js} +1 -3
  6. package/dist/{box-d849ea03.cjs.prod.js → box-8850277f.cjs.prod.js} +1 -3
  7. package/dist/{cart-ad0aba9b.cjs.prod.js → cart-0698b97d.cjs.prod.js} +1 -3
  8. package/dist/{cart-b92f3a8e.cjs.dev.js → cart-41f0b7bc.cjs.dev.js} +1 -3
  9. package/dist/{cart-167fea3b.esm.js → cart-a49faf67.esm.js} +1 -3
  10. package/dist/commercetools-frontend-application-shell.cjs.dev.js +49 -68
  11. package/dist/commercetools-frontend-application-shell.cjs.prod.js +49 -68
  12. package/dist/commercetools-frontend-application-shell.esm.js +39 -58
  13. package/dist/configure-apollo-942ef373.cjs.prod.js +922 -0
  14. package/dist/configure-apollo-a6f03ff8.cjs.dev.js +930 -0
  15. package/dist/configure-apollo-cc0b1668.esm.js +873 -0
  16. package/dist/{connected-square-4743b7de.esm.js → connected-square-3cac6bd7.esm.js} +1 -3
  17. package/dist/connected-square-47233754.cjs.dev.js +32 -0
  18. package/dist/connected-square-b2e25621.cjs.prod.js +32 -0
  19. package/dist/{constants-69249abd.esm.js → constants-7f04db3f.esm.js} +9 -9
  20. package/dist/{constants-88fb9ef8.cjs.prod.js → constants-e6409334.cjs.prod.js} +8 -8
  21. package/dist/{constants-c2d56f3d.cjs.dev.js → constants-e6f058e5.cjs.dev.js} +8 -8
  22. package/dist/declarations/src/apollo-links/utils.d.ts +2 -2
  23. package/dist/declarations/src/components/application-entry-point/application-entry-point.d.ts +4 -4
  24. package/dist/declarations/src/components/application-shell/application-shell.d.ts +7 -15
  25. package/dist/declarations/src/components/application-shell-authenticated/application-shell-authenticated.d.ts +21 -0
  26. package/dist/declarations/src/components/application-shell-provider/application-shell-provider.d.ts +6 -7
  27. package/dist/declarations/src/components/application-shell-provider/use-coerced-environment-values.d.ts +1 -23
  28. package/dist/declarations/src/components/authenticated/authenticated.d.ts +2 -2
  29. package/dist/declarations/src/components/authenticated/oidc-callback.async.d.ts +6 -0
  30. package/dist/declarations/src/components/authenticated/oidc-callback.d.ts +2 -2
  31. package/dist/declarations/src/components/configure-intl-provider/configure-intl-provider.d.ts +1 -1
  32. package/dist/declarations/src/components/error-apologizer/index.d.ts +6 -1
  33. package/dist/declarations/src/components/fetch-project/fetch-project.d.ts +4 -4
  34. package/dist/declarations/src/components/fetch-user/fetch-user.d.ts +3 -3
  35. package/dist/declarations/src/components/inject-reducers/inject-reducers.d.ts +1 -1
  36. package/dist/declarations/src/components/navbar/index.d.ts +100 -1
  37. package/dist/declarations/src/components/navbar/loading-navbar.d.ts +5 -0
  38. package/dist/declarations/src/components/navbar/menu-items.d.ts +99 -0
  39. package/dist/declarations/src/components/navbar/navbar.d.ts +6 -15
  40. package/dist/declarations/src/components/project-container/index.d.ts +78 -1
  41. package/dist/declarations/src/components/project-container/project-container.d.ts +6 -8
  42. package/dist/declarations/src/components/quick-access/butler-command/butler-command.d.ts +1 -1
  43. package/dist/declarations/src/components/quick-access/index.d.ts +2 -2
  44. package/dist/declarations/src/components/quick-access/types.d.ts +1 -1
  45. package/dist/declarations/src/components/redirect-to-login/index.d.ts +6 -0
  46. package/dist/declarations/src/components/redirect-to-logout/index.d.ts +5 -0
  47. package/dist/declarations/src/components/redirect-to-project-create/index.d.ts +6 -1
  48. package/dist/declarations/src/components/requests-in-flight-loader/index.d.ts +6 -1
  49. package/dist/declarations/src/components/route-catch-all/index.d.ts +3 -1
  50. package/dist/declarations/src/components/setup-flop-flip-provider/setup-flop-flip-provider.d.ts +3 -3
  51. package/dist/declarations/src/components/suspended-route/suspended-route.d.ts +1 -1
  52. package/dist/declarations/src/components/user-settings-menu/index.d.ts +12 -1
  53. package/dist/declarations/src/components/version-tracker/index.d.ts +6 -1
  54. package/dist/declarations/src/hooks/apollo-hooks/apollo-hooks.d.ts +1 -1
  55. package/dist/declarations/src/test-utils/test-utils.d.ts +2 -2
  56. package/dist/declarations/src/types/generated/mc.d.ts +3 -3
  57. package/dist/declarations/src/utils/get-mc-origin/get-mc-origin.d.ts +2 -0
  58. package/dist/declarations/src/utils/get-mc-origin/index.d.ts +1 -0
  59. package/dist/error-apologizer-c336db61.cjs.dev.js +56 -0
  60. package/dist/error-apologizer-c55ec6f7.cjs.prod.js +56 -0
  61. package/dist/error-apologizer-f8772b68.esm.js +42 -0
  62. package/dist/gear-2890f7fb.cjs.prod.js +32 -0
  63. package/dist/{gear-8418cd46.esm.js → gear-300dd24c.esm.js} +1 -3
  64. package/dist/gear-e8014c5a.cjs.dev.js +32 -0
  65. package/dist/get-mc-origin-314b77a2.cjs.dev.js +57 -0
  66. package/dist/get-mc-origin-5df60933.esm.js +50 -0
  67. package/dist/get-mc-origin-7968e04f.cjs.prod.js +57 -0
  68. package/dist/heart-000a023d.cjs.prod.js +32 -0
  69. package/dist/{heart-48c28091.esm.js → heart-dded66b4.esm.js} +1 -3
  70. package/dist/heart-f21b7d39.cjs.dev.js +32 -0
  71. package/dist/index-3765c4c9.cjs.prod.js +2870 -0
  72. package/dist/index-3fdf5681.esm.js +2970 -0
  73. package/dist/index-b9b8b690.cjs.dev.js +3054 -0
  74. package/dist/{list-with-search-c154a56e.esm.js → list-with-search-a3302710.esm.js} +1 -3
  75. package/dist/list-with-search-a5b72b33.cjs.prod.js +32 -0
  76. package/dist/list-with-search-ee796e9e.cjs.dev.js +32 -0
  77. package/dist/navbar-08a76df9.cjs.dev.js +670 -0
  78. package/dist/navbar-5384b0c3.esm.js +650 -0
  79. package/dist/navbar-c02843fb.cjs.prod.js +649 -0
  80. package/dist/oidc-0638d0c8.cjs.dev.js +67 -0
  81. package/dist/oidc-10fa96f0.esm.js +59 -0
  82. package/dist/oidc-540a091a.cjs.prod.js +67 -0
  83. package/dist/oidc-callback-152dc622.esm.js +240 -0
  84. package/dist/oidc-callback-784c3a39.cjs.prod.js +251 -0
  85. package/dist/oidc-callback-dc8682c0.cjs.dev.js +254 -0
  86. package/dist/paperclip-23d1e69c.cjs.prod.js +32 -0
  87. package/dist/{paperclip-18785dda.esm.js → paperclip-a61112e8.esm.js} +1 -3
  88. package/dist/paperclip-d653c134.cjs.dev.js +32 -0
  89. package/dist/plugin-0ee6aee4.cjs.dev.js +32 -0
  90. package/dist/{plugin-53c047bb.esm.js → plugin-3d353a5b.esm.js} +1 -3
  91. package/dist/plugin-7e57f237.cjs.prod.js +32 -0
  92. package/dist/project-container-6f0ea904.cjs.dev.js +387 -0
  93. package/dist/project-container-b6b2f6b2.esm.js +368 -0
  94. package/dist/project-container-bf8678e2.cjs.prod.js +369 -0
  95. package/dist/{project-expired-d8eaa253.esm.js → project-expired-6b9b6feb.esm.js} +47 -68
  96. package/dist/{project-expired-adce523b.cjs.dev.js → project-expired-9d71c314.cjs.dev.js} +47 -68
  97. package/dist/{project-expired-576a8329.cjs.prod.js → project-expired-d75d9e84.cjs.prod.js} +47 -68
  98. package/dist/{project-not-found-9a9753f2.cjs.dev.js → project-not-found-4b5b9479.cjs.prod.js} +42 -61
  99. package/dist/{project-not-found-8208c8f1.esm.js → project-not-found-c4634d60.esm.js} +42 -61
  100. package/dist/{project-not-found-daa5200b.cjs.prod.js → project-not-found-c977dbb0.cjs.dev.js} +42 -61
  101. package/dist/{project-not-initialized-4aeafe19.cjs.dev.js → project-not-initialized-4d0badf3.cjs.prod.js} +47 -68
  102. package/dist/{project-not-initialized-3408e87f.esm.js → project-not-initialized-a2f7b46e.esm.js} +47 -68
  103. package/dist/{project-not-initialized-5b416bcf.cjs.prod.js → project-not-initialized-e1533577.cjs.dev.js} +47 -68
  104. package/dist/{project-suspended-d3a6001d.cjs.dev.js → project-suspended-9027fc60.cjs.prod.js} +44 -63
  105. package/dist/{project-suspended-dc9ace34.cjs.prod.js → project-suspended-9e084c21.cjs.dev.js} +44 -63
  106. package/dist/{project-suspended-a7edc962.esm.js → project-suspended-f3d78447.esm.js} +44 -63
  107. package/dist/{quick-access-f42a8e0a.cjs.prod.js → quick-access-517ad7e1.cjs.prod.js} +573 -957
  108. package/dist/quick-access-82e1c9aa.esm.js +1907 -0
  109. package/dist/quick-access-8b2b678f.cjs.dev.js +1937 -0
  110. package/dist/redirect-to-login-1b892ab5.esm.js +147 -0
  111. package/dist/redirect-to-login-2be0e5db.cjs.prod.js +149 -0
  112. package/dist/redirect-to-login-64230f67.cjs.dev.js +149 -0
  113. package/dist/redirect-to-logout-15810ffb.cjs.dev.js +151 -0
  114. package/dist/redirect-to-logout-17e4ba2c.cjs.prod.js +151 -0
  115. package/dist/redirect-to-logout-80e772d1.esm.js +138 -0
  116. package/dist/redirect-to-project-create-048efa71.cjs.prod.js +61 -0
  117. package/dist/redirect-to-project-create-052f293e.esm.js +52 -0
  118. package/dist/redirect-to-project-create-f0e7b35e.cjs.dev.js +61 -0
  119. package/dist/{gear-28ff4f04.cjs.dev.js → redirector-0d98f9df.cjs.dev.js} +44 -5
  120. package/dist/redirector-47a6be71.esm.js +58 -0
  121. package/dist/{gear-6f8c30e3.cjs.prod.js → redirector-77ce2f5c.cjs.prod.js} +44 -5
  122. package/dist/requests-in-flight-loader-5329586b.esm.js +129 -0
  123. package/dist/requests-in-flight-loader-88f14402.cjs.dev.js +144 -0
  124. package/dist/requests-in-flight-loader-a7bc4e12.cjs.prod.js +144 -0
  125. package/dist/rocket-3e3f0a98.cjs.prod.js +32 -0
  126. package/dist/{rocket-ba116b5e.esm.js → rocket-4b088727.esm.js} +1 -3
  127. package/dist/rocket-95b6858d.cjs.dev.js +32 -0
  128. package/dist/route-catch-all-01cf0095.esm.js +41 -0
  129. package/dist/route-catch-all-3b490df1.cjs.prod.js +43 -0
  130. package/dist/route-catch-all-9ac99936.cjs.dev.js +43 -0
  131. package/dist/{service-page-project-switcher-49afafeb.cjs.prod.js → service-page-project-switcher-39dcfee8.cjs.prod.js} +5 -7
  132. package/dist/{service-page-project-switcher-866b2139.cjs.dev.js → service-page-project-switcher-7698339b.cjs.dev.js} +6 -8
  133. package/dist/{service-page-project-switcher-365c4c10.esm.js → service-page-project-switcher-fd30959b.esm.js} +6 -8
  134. package/dist/{speedometer-c1b94505.esm.js → speedometer-08a11d5a.esm.js} +1 -3
  135. package/dist/speedometer-2881cef6.cjs.prod.js +32 -0
  136. package/dist/speedometer-54f872f2.cjs.dev.js +32 -0
  137. package/dist/{star-da9123e0.esm.js → star-15244db1.esm.js} +1 -3
  138. package/dist/star-52bf7a64.cjs.dev.js +32 -0
  139. package/dist/star-f8502efb.cjs.prod.js +32 -0
  140. package/dist/tag-multi-1d1553b6.cjs.dev.js +32 -0
  141. package/dist/{tag-multi-c650b738.esm.js → tag-multi-3be995ac.esm.js} +1 -3
  142. package/dist/tag-multi-f9acb1c2.cjs.prod.js +32 -0
  143. package/dist/tree-structure-4650688d.cjs.dev.js +32 -0
  144. package/dist/{tree-structure-6af6fc3a.esm.js → tree-structure-c8753526.esm.js} +1 -3
  145. package/dist/tree-structure-f24ee3f6.cjs.prod.js +32 -0
  146. package/dist/use-applications-menu-4abb5796.esm.js +172 -0
  147. package/dist/use-applications-menu-68d83733.cjs.dev.js +188 -0
  148. package/dist/use-applications-menu-6b872b83.cjs.prod.js +188 -0
  149. package/dist/use-is-served-by-proxy-2b4916e5.cjs.dev.js +42 -0
  150. package/dist/use-is-served-by-proxy-499bfa16.esm.js +39 -0
  151. package/dist/use-is-served-by-proxy-51e76976.cjs.prod.js +42 -0
  152. package/dist/{user-filled-41729d77.esm.js → user-filled-2dc4e79e.esm.js} +1 -3
  153. package/dist/user-filled-2e6cb25e.cjs.dev.js +32 -0
  154. package/dist/user-filled-815b49a0.cjs.prod.js +32 -0
  155. package/dist/user-settings-menu-79d4cb1e.cjs.dev.js +523 -0
  156. package/dist/user-settings-menu-7bf6f146.cjs.prod.js +496 -0
  157. package/dist/user-settings-menu-ad7c27f0.esm.js +497 -0
  158. package/dist/version-tracker-20bb239d.esm.js +101 -0
  159. package/dist/version-tracker-69607d15.cjs.dev.js +107 -0
  160. package/dist/version-tracker-80e0f8f6.cjs.prod.js +107 -0
  161. package/dist/world-973090a5.cjs.dev.js +32 -0
  162. package/dist/{world-d91df1ee.esm.js → world-c5ea311a.esm.js} +1 -3
  163. package/dist/world-e1f9dbf8.cjs.prod.js +32 -0
  164. package/package.json +27 -27
  165. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +2 -3
  166. package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +2 -3
  167. package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +2 -3
  168. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +182 -215
  169. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +182 -215
  170. package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +173 -206
  171. package/dist/application-entry-point-307baa50.cjs.prod.js +0 -1225
  172. package/dist/application-entry-point-3e14d46d.cjs.dev.js +0 -1250
  173. package/dist/application-entry-point-8d923438.esm.js +0 -1180
  174. package/dist/connected-square-abf36852.cjs.prod.js +0 -34
  175. package/dist/connected-square-ac52014f.cjs.dev.js +0 -34
  176. package/dist/declarations/src/components/application-shell/helpers.d.ts +0 -1
  177. package/dist/heart-33cd94c6.cjs.prod.js +0 -34
  178. package/dist/heart-fb31cf30.cjs.dev.js +0 -34
  179. package/dist/index-284fb405.esm.js +0 -4809
  180. package/dist/index-37414a3f.cjs.prod.js +0 -4643
  181. package/dist/index-ea32a85e.cjs.dev.js +0 -4888
  182. package/dist/list-with-search-34cd926c.cjs.dev.js +0 -34
  183. package/dist/list-with-search-a0b22169.cjs.prod.js +0 -34
  184. package/dist/oidc-1c91f5ee.cjs.prod.js +0 -67
  185. package/dist/oidc-5b2e4f8f.cjs.dev.js +0 -67
  186. package/dist/oidc-77749f1b.esm.js +0 -59
  187. package/dist/paperclip-2cd45b86.cjs.dev.js +0 -34
  188. package/dist/paperclip-b1b806ab.cjs.prod.js +0 -34
  189. package/dist/plugin-7cb7827e.cjs.dev.js +0 -34
  190. package/dist/plugin-e97ae3e6.cjs.prod.js +0 -34
  191. package/dist/quick-access-457a9f41.esm.js +0 -2290
  192. package/dist/quick-access-d553524e.cjs.dev.js +0 -2321
  193. package/dist/rocket-37c1aa11.cjs.dev.js +0 -34
  194. package/dist/rocket-b2dbda7f.cjs.prod.js +0 -34
  195. package/dist/speedometer-13b393fb.cjs.dev.js +0 -34
  196. package/dist/speedometer-1e69fd13.cjs.prod.js +0 -34
  197. package/dist/star-ab4be629.cjs.prod.js +0 -34
  198. package/dist/star-e165111e.cjs.dev.js +0 -34
  199. package/dist/tag-multi-5f498a7d.cjs.dev.js +0 -34
  200. package/dist/tag-multi-fb817131.cjs.prod.js +0 -34
  201. package/dist/tree-structure-779fcc36.cjs.prod.js +0 -34
  202. package/dist/tree-structure-ed6cdff8.cjs.dev.js +0 -34
  203. package/dist/user-filled-384a2eaf.cjs.prod.js +0 -34
  204. package/dist/user-filled-53d2eae0.cjs.dev.js +0 -34
  205. package/dist/world-12528632.cjs.prod.js +0 -34
  206. package/dist/world-6471d9f6.cjs.dev.js +0 -34
  207. /package/dist/declarations/src/components/{application-shell → redirect-to-login}/redirect-to-login.d.ts +0 -0
  208. /package/dist/declarations/src/components/{application-shell → redirect-to-logout}/redirect-to-logout.d.ts +0 -0
@@ -0,0 +1,3054 @@
1
+ 'use strict';
2
+
3
+ var configureApollo = require('./configure-apollo-a6f03ff8.cjs.dev.js');
4
+ var _pt = require('prop-types');
5
+ var react = require('react');
6
+ var reactRouterDom = require('react-router-dom');
7
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
8
+ var _styled = require('@emotion/styled/base');
9
+ var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
10
+ var _includesInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/includes');
11
+ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
12
+ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
13
+ var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
14
+ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
15
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
16
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
17
+ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
18
+ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
19
+ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
20
+ var react$1 = require('@emotion/react');
21
+ var applicationComponents = require('@commercetools-frontend/application-components');
22
+ var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
23
+ var constants$1 = require('@commercetools-frontend/constants');
24
+ var i18n = require('@commercetools-frontend/i18n');
25
+ var reactNotifications = require('@commercetools-frontend/react-notifications');
26
+ var sentry = require('@commercetools-frontend/sentry');
27
+ var constants = require('./constants-e6f058e5.cjs.dev.js');
28
+ require('uuid');
29
+ require('@babel/runtime-corejs3/core-js-stable/url');
30
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
31
+ var LogoSVG = require('@commercetools-frontend/assets/images/logo.svg');
32
+ var designSystem = require('@commercetools-uikit/design-system');
33
+ var Spacings = require('@commercetools-uikit/spacings');
34
+ var reactIntl = require('react-intl');
35
+ var FlatButton = require('@commercetools-uikit/flat-button');
36
+ var icons = require('@commercetools-uikit/icons');
37
+ var useIsServedByProxy = require('./use-is-served-by-proxy-2b4916e5.cjs.dev.js');
38
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
39
+ var _taggedTemplateLiteral = require('@babel/runtime-corejs3/helpers/taggedTemplateLiteral');
40
+ var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
41
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
42
+ var memoize = require('memoize-one');
43
+ var AccessibleHidden = require('@commercetools-uikit/accessible-hidden');
44
+ var SelectInput = require('@commercetools-uikit/select-input');
45
+ var react$2 = require('@apollo/client/react');
46
+ var CTLogoSVG = require('@commercetools-frontend/assets/images/ct-logo.svg');
47
+ var LoadingSpinner = require('@commercetools-uikit/loading-spinner');
48
+ var l10n = require('@commercetools-frontend/l10n');
49
+ var _reverseInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reverse');
50
+ var camelcase = require('lodash/camelCase');
51
+ var _Array$from = require('@babel/runtime-corejs3/core-js-stable/array/from');
52
+ var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
53
+ var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
54
+ var reactBroadcast = require('@flopflip/react-broadcast');
55
+ var classnames = require('classnames');
56
+ var MissingImageSvg = require('@commercetools-frontend/assets/images/diagonal-line.svg');
57
+ var permissions = require('@commercetools-frontend/permissions');
58
+ var InlineSvg = require('@commercetools-uikit/icons/inline-svg');
59
+ var isNil = require('lodash/isNil');
60
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
61
+ var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
62
+ var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
63
+ var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
64
+ var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
65
+ var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
66
+ var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
67
+ require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
68
+ var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
69
+ var _Object$fromEntries = require('@babel/runtime-corejs3/core-js-stable/object/from-entries');
70
+ var _flagsInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/flags');
71
+ var combineAdapters = require('@flopflip/combine-adapters');
72
+ var httpAdapter = require('@flopflip/http-adapter');
73
+ var ldAdapter = require('@flopflip/launchdarkly-adapter');
74
+ var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
75
+ var Perfume = require('perfume.js');
76
+ var reactRedux = require('react-redux');
77
+ var history = require('@commercetools-frontend/browser-history');
78
+ var upperFirst = require('lodash/upperFirst');
79
+ var oidc = require('./oidc-0638d0c8.cjs.dev.js');
80
+ require('@commercetools-uikit/design-system/materials/resets.css');
81
+ var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
82
+ var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
83
+ var actionsGlobal = require('@commercetools-frontend/actions-global');
84
+ require('@commercetools-frontend/application-config/ssr');
85
+
86
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
87
+
88
+ var _pt__default = /*#__PURE__*/_interopDefault(_pt);
89
+ var _styled__default = /*#__PURE__*/_interopDefault(_styled);
90
+ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
91
+ var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
92
+ var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
93
+ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
94
+ var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
95
+ var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
96
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
97
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
98
+ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
99
+ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
100
+ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
101
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
102
+ var LogoSVG__default = /*#__PURE__*/_interopDefault(LogoSVG);
103
+ var Spacings__default = /*#__PURE__*/_interopDefault(Spacings);
104
+ var FlatButton__default = /*#__PURE__*/_interopDefault(FlatButton);
105
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
106
+ var memoize__default = /*#__PURE__*/_interopDefault(memoize);
107
+ var AccessibleHidden__default = /*#__PURE__*/_interopDefault(AccessibleHidden);
108
+ var SelectInput__default = /*#__PURE__*/_interopDefault(SelectInput);
109
+ var CTLogoSVG__default = /*#__PURE__*/_interopDefault(CTLogoSVG);
110
+ var LoadingSpinner__default = /*#__PURE__*/_interopDefault(LoadingSpinner);
111
+ var _reverseInstanceProperty__default = /*#__PURE__*/_interopDefault(_reverseInstanceProperty);
112
+ var camelcase__default = /*#__PURE__*/_interopDefault(camelcase);
113
+ var _Array$from__default = /*#__PURE__*/_interopDefault(_Array$from);
114
+ var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
115
+ var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
116
+ var classnames__default = /*#__PURE__*/_interopDefault(classnames);
117
+ var MissingImageSvg__default = /*#__PURE__*/_interopDefault(MissingImageSvg);
118
+ var InlineSvg__default = /*#__PURE__*/_interopDefault(InlineSvg);
119
+ var isNil__default = /*#__PURE__*/_interopDefault(isNil);
120
+ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
121
+ var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
122
+ var _Object$fromEntries__default = /*#__PURE__*/_interopDefault(_Object$fromEntries);
123
+ var _flagsInstanceProperty__default = /*#__PURE__*/_interopDefault(_flagsInstanceProperty);
124
+ var combineAdapters__default = /*#__PURE__*/_interopDefault(combineAdapters);
125
+ var httpAdapter__default = /*#__PURE__*/_interopDefault(httpAdapter);
126
+ var ldAdapter__default = /*#__PURE__*/_interopDefault(ldAdapter);
127
+ var _reduceInstanceProperty__default = /*#__PURE__*/_interopDefault(_reduceInstanceProperty);
128
+ var Perfume__default = /*#__PURE__*/_interopDefault(Perfume);
129
+ var history__default = /*#__PURE__*/_interopDefault(history);
130
+ var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
131
+ var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
132
+ var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
133
+
134
+ const RequestsInFlightLoader = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./requests-in-flight-loader-88f14402.cjs.dev.js'
135
+ /* webpackChunkName: "requests-in-flight-loader" */
136
+ ); }));
137
+
138
+ function selectProjectKeyFromLocalStorage() {
139
+ return window.localStorage.getItem(constants.STORAGE_KEYS.ACTIVE_PROJECT_KEY);
140
+ }
141
+
142
+ const getPreviousProjectKey = defaultProjectKeyOfUser => {
143
+ const previouslyUsedProjectKeyFromLocalStorage = selectProjectKeyFromLocalStorage();
144
+ if (previouslyUsedProjectKeyFromLocalStorage) return previouslyUsedProjectKeyFromLocalStorage;
145
+ if (defaultProjectKeyOfUser) return defaultProjectKeyOfUser;
146
+ return;
147
+ };
148
+
149
+ const createApolloContextForProxyForwardTo = proxyForwardTocontext => ({
150
+ // Send the request to the forward-to endpoint.
151
+ uri: "".concat(configureApollo.getMcApiUrl(), "/proxy/forward-to"),
152
+ // Custom properties to be used by the "header-link".
153
+ forwardToConfig: proxyForwardTocontext,
154
+ skipGraphQlTargetCheck: true
155
+ });
156
+
157
+ var messages$1 = reactIntl.defineMessages({
158
+ backToProjectLink: {
159
+ id: 'AppBar.backToProjectLink',
160
+ defaultMessage: 'Back to project'
161
+ }
162
+ });
163
+
164
+ /**
165
+ * Note:
166
+ * A full page reload is needed as the user's project may have changed (deletions and/or additions).
167
+ * As a result the project and user queries need refetching.
168
+ */
169
+ const redirectToProject = key => useIsServedByProxy.location.replace("/".concat(key));
170
+
171
+ const BackToProject = props => {
172
+ const intl = reactIntl.useIntl();
173
+ return jsxRuntime.jsx(FlatButton__default["default"], {
174
+ onClick: () => redirectToProject(props.projectKey || ''),
175
+ icon: jsxRuntime.jsx(icons.AngleLeftIcon, {}),
176
+ label: intl.formatMessage(messages$1.backToProjectLink)
177
+ });
178
+ };
179
+ BackToProject.displayName = 'BackToProject';
180
+
181
+ var _templateObject;
182
+ const animationPulse = react$1.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0% {\n background-color: ", ";\n }\n 100% {\n background-color: ", ";\n }\n"])), designSystem.customProperties.colorNeutral, designSystem.customProperties.colorNeutral95);
183
+
184
+ const getWidthBySize = props => {
185
+ switch (props.shape) {
186
+ case 'dot':
187
+ switch (props.size) {
188
+ case 's':
189
+ return designSystem.customProperties.spacingS;
190
+
191
+ case 'm':
192
+ return designSystem.customProperties.spacingM;
193
+
194
+ case 'l':
195
+ return designSystem.customProperties.spacingL;
196
+
197
+ case 'xl':
198
+ return designSystem.customProperties.spacingXl;
199
+
200
+ default:
201
+ return 'auto';
202
+ }
203
+
204
+ case 'rect':
205
+ switch (props.size) {
206
+ case 's':
207
+ return '150px';
208
+
209
+ case 'm':
210
+ return '300px';
211
+
212
+ case 'l':
213
+ return '450px';
214
+
215
+ case 'xl':
216
+ return '600px';
217
+
218
+ default:
219
+ return 'auto';
220
+ }
221
+
222
+ default:
223
+ return 'auto';
224
+ }
225
+ };
226
+
227
+ const getHeightBySize = props => {
228
+ switch (props.shape) {
229
+ case 'dot':
230
+ return getWidthBySize(props);
231
+
232
+ case 'rect':
233
+ return '32px';
234
+
235
+ default:
236
+ return 'auto';
237
+ }
238
+ };
239
+
240
+ const getRadiusBySize = props => {
241
+ switch (props.shape) {
242
+ case 'dot':
243
+ switch (props.size) {
244
+ case 's':
245
+ return designSystem.customProperties.borderRadius4;
246
+
247
+ case 'm':
248
+ return '8px';
249
+
250
+ case 'l':
251
+ return '12px';
252
+
253
+ case 'xl':
254
+ return '16px';
255
+
256
+ default:
257
+ return 'none';
258
+ }
259
+
260
+ case 'rect':
261
+ return designSystem.customProperties.borderRadius4;
262
+
263
+ default:
264
+ return 'none';
265
+ }
266
+ };
267
+
268
+ const LoadingPlaceholder = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
269
+ target: "e4c5pm00"
270
+ } : {
271
+ target: "e4c5pm00",
272
+ label: "LoadingPlaceholder"
273
+ })("background-color:", designSystem.customProperties.colorNeutral, ";animation-name:", animationPulse, ";animation-duration:1s;animation-timing-function:ease-out;animation-delay:0;animation-direction:alternate;animation-iteration-count:infinite;width:", getWidthBySize, ";height:", getHeightBySize, ";border-radius:", getRadiusBySize, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvYWRpbmctcGxhY2Vob2xkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtGNEMiLCJmaWxlIjoibG9hZGluZy1wbGFjZWhvbGRlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNoYXBlOiAnZG90JyB8ICdyZWN0JztcbiAgc2l6ZTogJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJztcbn07XG5cbmNvbnN0IGFuaW1hdGlvblB1bHNlID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yTmV1dHJhbH07XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yTmV1dHJhbDk1fTtcbiAgfVxuYDtcblxuY29uc3QgZ2V0V2lkdGhCeVNpemUgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIHN3aXRjaCAocHJvcHMuc2hhcGUpIHtcbiAgICBjYXNlICdkb3QnOlxuICAgICAgc3dpdGNoIChwcm9wcy5zaXplKSB7XG4gICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgIHJldHVybiBjdXN0b21Qcm9wZXJ0aWVzLnNwYWNpbmdTO1xuICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICByZXR1cm4gY3VzdG9tUHJvcGVydGllcy5zcGFjaW5nTTtcbiAgICAgICAgY2FzZSAnbCc6XG4gICAgICAgICAgcmV0dXJuIGN1c3RvbVByb3BlcnRpZXMuc3BhY2luZ0w7XG4gICAgICAgIGNhc2UgJ3hsJzpcbiAgICAgICAgICByZXR1cm4gY3VzdG9tUHJvcGVydGllcy5zcGFjaW5nWGw7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICdhdXRvJztcbiAgICAgIH1cbiAgICBjYXNlICdyZWN0JzpcbiAgICAgIHN3aXRjaCAocHJvcHMuc2l6ZSkge1xuICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICByZXR1cm4gJzE1MHB4JztcbiAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgcmV0dXJuICczMDBweCc7XG4gICAgICAgIGNhc2UgJ2wnOlxuICAgICAgICAgIHJldHVybiAnNDUwcHgnO1xuICAgICAgICBjYXNlICd4bCc6XG4gICAgICAgICAgcmV0dXJuICc2MDBweCc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICdhdXRvJztcbiAgICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdhdXRvJztcbiAgfVxufTtcbmNvbnN0IGdldEhlaWdodEJ5U2l6ZSA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgc3dpdGNoIChwcm9wcy5zaGFwZSkge1xuICAgIGNhc2UgJ2RvdCc6XG4gICAgICByZXR1cm4gZ2V0V2lkdGhCeVNpemUocHJvcHMpO1xuICAgIGNhc2UgJ3JlY3QnOlxuICAgICAgcmV0dXJuICczMnB4JztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdhdXRvJztcbiAgfVxufTtcbmNvbnN0IGdldFJhZGl1c0J5U2l6ZSA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgc3dpdGNoIChwcm9wcy5zaGFwZSkge1xuICAgIGNhc2UgJ2RvdCc6XG4gICAgICBzd2l0Y2ggKHByb3BzLnNpemUpIHtcbiAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgcmV0dXJuIGN1c3RvbVByb3BlcnRpZXMuYm9yZGVyUmFkaXVzNDtcbiAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgcmV0dXJuICc4cHgnO1xuICAgICAgICBjYXNlICdsJzpcbiAgICAgICAgICByZXR1cm4gJzEycHgnO1xuICAgICAgICBjYXNlICd4bCc6XG4gICAgICAgICAgcmV0dXJuICcxNnB4JztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJ25vbmUnO1xuICAgICAgfVxuICAgIGNhc2UgJ3JlY3QnOlxuICAgICAgcmV0dXJuIGN1c3RvbVByb3BlcnRpZXMuYm9yZGVyUmFkaXVzNDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdub25lJztcbiAgfVxufTtcblxuY29uc3QgTG9hZGluZ1BsYWNlaG9sZGVyID0gc3R5bGVkLmRpdjxQcm9wcz5gXG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvck5ldXRyYWx9O1xuICBhbmltYXRpb24tbmFtZTogJHthbmltYXRpb25QdWxzZX07XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tZGVsYXk6IDA7XG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG5cbiAgd2lkdGg6ICR7Z2V0V2lkdGhCeVNpemV9O1xuICBoZWlnaHQ6ICR7Z2V0SGVpZ2h0QnlTaXplfTtcbiAgYm9yZGVyLXJhZGl1czogJHtnZXRSYWRpdXNCeVNpemV9O1xuYDtcbkxvYWRpbmdQbGFjZWhvbGRlci5kaXNwbGF5TmFtZSA9ICdMb2FkaW5nUGxhY2Vob2xkZXInO1xuXG5leHBvcnQgZGVmYXVsdCBMb2FkaW5nUGxhY2Vob2xkZXI7XG4iXX0= */"));
274
+
275
+ LoadingPlaceholder.displayName = 'LoadingPlaceholder';
276
+
277
+ function useMcQuery(query, options) {
278
+ return react$2.useQuery(query, options);
279
+ }
280
+
281
+ function useMcLazyQuery(query, options) {
282
+ return react$2.useLazyQuery(query, options);
283
+ }
284
+
285
+ function useMcMutation(mutation, options) {
286
+ return react$2.useMutation(mutation, options);
287
+ } // Custom Apollo query/mutation wrappers, useful to take advantage
288
+
289
+ var messages = reactIntl.defineMessages({
290
+ projectsLabel: {
291
+ id: 'ProjectSwitcher.projectsLabel',
292
+ description: 'The label for project dropdown switcher',
293
+ defaultMessage: 'Projects menu'
294
+ },
295
+ searchPlaceholder: {
296
+ id: 'ProjectSwitcher.searchPlaceholder',
297
+ description: 'Projects filter search input placeholder',
298
+ defaultMessage: 'Search for a project'
299
+ },
300
+ noResults: {
301
+ id: 'ProjectSwitcher.noResults',
302
+ description: 'Projects filter no results text',
303
+ defaultMessage: 'Sorry, but there are no projects that match your search.'
304
+ },
305
+ suspended: {
306
+ id: 'ProjectSwitcher.suspended',
307
+ description: 'Label for a suspended project',
308
+ defaultMessage: 'Suspended'
309
+ },
310
+ expired: {
311
+ id: 'ProjectSwitcher.expired',
312
+ description: 'Label for a suspended project',
313
+ defaultMessage: 'Expired'
314
+ }
315
+ });
316
+
317
+ const _excluded$1 = ["projectCount"];
318
+
319
+ function ownKeys$9(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
320
+
321
+ function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$9(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$9(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
322
+
323
+ function _EMOTION_STRINGIFIED_CSS_ERROR__$4() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
324
+ var ProjectsQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchUserProjects" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", alias: { kind: "Name", value: "user" }, name: { kind: "Name", value: "me" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "projects" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "results" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "suspension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "expiry" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }] } }] } }] } }] } }], loc: { start: 0, end: 218, source: { body: "query FetchUserProjects {\n user: me {\n id\n projects {\n results {\n name\n key\n suspension {\n isActive\n }\n expiry {\n isActive\n }\n }\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
325
+ const PROJECT_SWITCHER_LABEL_ID = 'project-switcher-label';
326
+
327
+ var _ref3$1 = process.env.NODE_ENV === "production" ? {
328
+ name: "82a6rk",
329
+ styles: "flex:1"
330
+ } : {
331
+ name: "1j7riad-ProjectSwitcherValueContainer",
332
+ styles: "flex:1;label:ProjectSwitcherValueContainer;",
333
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1EZ0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25Qcm9wcywgVmFsdWVDb250YWluZXJQcm9wcyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uV2luZG93IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IEdSQVBIUUxfVEFSR0VUUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByZXBvcnRFcnJvclRvU2VudHJ5IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCBBY2Nlc3NpYmxlSGlkZGVuIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2FjY2Vzc2libGUtaGlkZGVuJztcbmltcG9ydCB7IGRlc2lnblRva2VucywgdXNlVGhlbWUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHsgdXNlTWNRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL2Fwb2xsby1ob29rcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFRQcm9qZWN0LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXMsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCAqIGFzIG9pZGNTdG9yYWdlIGZyb20gJy4uLy4uL3V0aWxzL29pZGMtc3RvcmFnZSc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHRoZW1lZFZhbHVlIH0gPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGhlaWdodDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5jb2xvckFjY2VudDQwLFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5mb250U2l6ZTE1LFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMzBcbiAgICAgICAgICApfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtwcm9qZWN0Q291bnR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyT3B0aW9uID0gKHByb3BzOiBPcHRpb25Qcm9wcykgPT4ge1xuICBjb25zdCBwcm9qZWN0ID0gcHJvcHMuZGF0YSBhcyBPcHRpb25UeXBlO1xuICByZXR1cm4gKFxuICAgIDxTZWxlY3RJbnB1dC5PcHRpb24gey4uLnByb3BzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkXG4gICAgICAgICAgICAgID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICAgICA6IGRlc2lnblRva2Vucy5jb2xvckFjY2VudH07XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0Lm5hbWV9XG4gICAgICAgICAge3Byb3BzLmlzRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVycm9ySWNvbiBzaXplPVwibWVkaXVtXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZCA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWwgOiAnaW5oZXJpdCd9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5rZXl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cHJvamVjdC5zdXNwZW5zaW9uICYmIHByb2plY3Quc3VzcGVuc2lvbi5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuc3VzcGVuZGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cHJvamVjdC5leHBpcnkgJiYgcHJvamVjdC5leHBpcnkuaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmV4cGlyZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L1NlbGVjdElucHV0Lk9wdGlvbj5cbiAgKTtcbn07XG5cbmNvbnN0IG1hcFByb2plY3RzVG9PcHRpb25zID0gbWVtb2l6ZSgocHJvamVjdHMpID0+XG4gIHByb2plY3RzLm1hcCgocHJvamVjdDogVFByb2plY3QpID0+ICh7XG4gICAga2V5OiBwcm9qZWN0LmtleSxcbiAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgbGFiZWw6IHByb2plY3QubmFtZSxcbiAgICB2YWx1ZTogcHJvamVjdC5rZXksXG4gICAgc3VzcGVuc2lvbjogcHJvamVjdC5zdXNwZW5zaW9uLFxuICAgIGV4cGlyeTogcHJvamVjdC5leHBpcnksXG4gIH0pKVxuKTtcblxuY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuXG5jb25zdCBQcm9qZWN0U3dpdGNoZXIgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgbG9hZGluZywgZGF0YSB9ID0gdXNlTWNRdWVyeTxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlc1xuICA+KFByb2plY3RzUXVlcnksIHtcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvclRvU2VudHJ5LFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIHRhcmdldDogR1JBUEhRTF9UQVJHRVRTLk1FUkNIQU5UX0NFTlRFUl9CQUNLRU5ELFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmIChsb2FkaW5nKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDZ9O1xuICAgICAgYH1cbiAgICAgIGRhdGEtdHJhY2stY29tcG9uZW50PVwiUHJvamVjdFN3aXRjaFwiXG4gICAgICBkYXRhLXRyYWNrLWV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */",
334
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$4
335
+ };
336
+
337
+ var _ref4$1 = process.env.NODE_ENV === "production" ? {
338
+ name: "zol16h",
339
+ styles: "display:flex;flex:1;align-items:center"
340
+ } : {
341
+ name: "6c3nin-ProjectSwitcherValueContainer",
342
+ styles: "display:flex;flex:1;align-items:center;label:ProjectSwitcherValueContainer;",
343
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRDYyIsImZpbGUiOiJwcm9qZWN0LXN3aXRjaGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IEByZWRlc2lnbiBjbGVhbnVwXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zLCB1c2VUaGVtZSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRXJyb3JJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IFNlbGVjdElucHV0IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L3NlbGVjdC1pbnB1dCc7XG5pbXBvcnQgeyB1c2VNY1F1ZXJ5IH0gZnJvbSAnLi4vLi4vaG9va3MvYXBvbGxvLWhvb2tzJztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0ICogYXMgb2lkY1N0b3JhZ2UgZnJvbSAnLi4vLi4vdXRpbHMvb2lkYy1zdG9yYWdlJztcbmltcG9ydCBtZXNzYWdlcyBmcm9tICcuL21lc3NhZ2VzJztcbmltcG9ydCBQcm9qZWN0c1F1ZXJ5IGZyb20gJy4vcHJvamVjdC1zd2l0Y2hlci5tYy5ncmFwaHFsJztcblxuZGVjbGFyZSBsZXQgd2luZG93OiBBcHBsaWNhdGlvbldpbmRvdztcblxudHlwZSBQcm9wcyA9IHtcbiAgcHJvamVjdEtleT86IHN0cmluZztcbn07XG50eXBlIE9wdGlvblR5cGUgPSBQaWNrPFRQcm9qZWN0LCAna2V5JyB8ICduYW1lJyB8ICdzdXNwZW5zaW9uJyB8ICdleHBpcnknPiAmIHtcbiAgbGFiZWw6IHN0cmluZztcbn07XG50eXBlIEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMgPSBWYWx1ZUNvbnRhaW5lclByb3BzICYge1xuICBwcm9qZWN0Q291bnQ6IG51bWJlcjtcbn07XG5cbmNvbnN0IFBST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUQgPSAncHJvamVjdC1zd2l0Y2hlci1sYWJlbCc7XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIHByb2plY3RDb3VudCxcbiAgLi4ucmVzdFByb3BzXG59OiBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdGhlbWVkVmFsdWUgfSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPFNlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyIHsuLi5yZXN0UHJvcHN9PlxuICAgICAgICAgIHtyZXN0UHJvcHMuY2hpbGRyZW59XG4gICAgICAgIDwvU2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIHdpZHRoOiAke3RoZW1lZFZhbHVlKCcyMnB4JywgJzI2cHgnKX07XG4gICAgICAgICAgaGVpZ2h0OiAke3RoZW1lZFZhbHVlKCcyMnB4JywgJzI2cHgnKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3RoZW1lZFZhbHVlKFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50NDAsXG4gICAgICAgICAgICBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgKX07XG4gICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yU3VyZmFjZX07XG4gICAgICAgICAgZm9udC1zaXplOiAke3RoZW1lZFZhbHVlKFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMTUsXG4gICAgICAgICAgICBkZXNpZ25Ub2tlbnMuZm9udFNpemUzMFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgICAgZGF0YS10cmFjay1jb21wb25lbnQ9XCJQcm9qZWN0U3dpdGNoXCJcbiAgICAgIGRhdGEtdHJhY2stZXZlbnQ9XCJjbGlja1wiXG4gICAgPlxuICAgICAgPEFjY2Vzc2libGVIaWRkZW4+XG4gICAgICAgIDxzcGFuIGlkPXtQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEfT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMucHJvamVjdHNMYWJlbH0gLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9BY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgPFNlbGVjdElucHV0XG4gICAgICAgIHZhbHVlPXtwcm9wcy5wcm9qZWN0S2V5IHx8ICcnfVxuICAgICAgICBuYW1lPVwicHJvamVjdC1zd2l0Y2hlclwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH1cbiAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvamVjdEtleSA9IGV2ZW50LnRhcmdldC52YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkUHJvamVjdEtleSAhPT0gcHJvcHMucHJvamVjdEtleSkge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5hcHAuX19ERVZFTE9QTUVOVF9fPy5vaWRjPy5hdXRob3JpemVVcmwpIHtcbiAgICAgICAgICAgICAgb2lkY1N0b3JhZ2Uuc2V0QWN0aXZlUHJvamVjdEtleShzZWxlY3RlZFByb2plY3RLZXkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBXZSBzaW1wbHkgcmVkaXJlY3QgdG8gYSBcIm5ld1wiIGJyb3dzZXIgcGFnZSwgaW5zdGVhZCBvZiB1c2luZyB0aGVcbiAgICAgICAgICAgIC8vIGhpc3Rvcnkgcm91dGVyLiBUaGlzIHdpbGwgc2ltcGxpZnkgYSBsb3Qgb2YgdGhpbmdzIGFuZCBhdm9pZCBwb3NzaWJsZVxuICAgICAgICAgICAgLy8gcHJvYmxlbXMgbGlrZSBlLmcuIHJlc2V0dGluZyB0aGUgc3RvcmUvc3RhdGUuXG4gICAgICAgICAgICByZWRpcmVjdFRvKGAvJHtzZWxlY3RlZFByb2plY3RLZXl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvcHRpb25zPXtcbiAgICAgICAgICBkYXRhICYmIGRhdGEudXNlciAmJiBtYXBQcm9qZWN0c1RvT3B0aW9ucyhkYXRhLnVzZXIucHJvamVjdHMucmVzdWx0cylcbiAgICAgICAgfVxuICAgICAgICBpc09wdGlvbkRpc2FibGVkPXsob3B0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvamVjdCA9IG9wdGlvbiBhcyBPcHRpb25UeXBlO1xuICAgICAgICAgIHJldHVybiBwcm9qZWN0LnN1c3BlbnNpb24uaXNBY3RpdmUgfHwgcHJvamVjdC5leHBpcnkuaXNBY3RpdmU7XG4gICAgICAgIH19XG4gICAgICAgIGNvbXBvbmVudHM9e3tcbiAgICAgICAgICBPcHRpb246IFByb2plY3RTd2l0Y2hlck9wdGlvbixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcjogKHZhbHVlQ29udGFpbmVyUHJvcHMpID0+IChcbiAgICAgICAgICAgIDxQcm9qZWN0U3dpdGNoZXJWYWx1ZUNvbnRhaW5lclxuICAgICAgICAgICAgICB7Li4udmFsdWVDb250YWluZXJQcm9wc31cbiAgICAgICAgICAgICAgcHJvamVjdENvdW50PXtcbiAgICAgICAgICAgICAgICAoZGF0YSAmJiBkYXRhLnVzZXIgJiYgZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMubGVuZ3RoKSB8fCAwXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSxcbiAgICAgICAgfX1cbiAgICAgICAgaXNDbGVhcmFibGU9e2ZhbHNlfVxuICAgICAgICBiYWNrc3BhY2VSZW1vdmVzVmFsdWU9e2ZhbHNlfVxuICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKG1lc3NhZ2VzLnNlYXJjaFBsYWNlaG9sZGVyKX1cbiAgICAgICAgbm9PcHRpb25zTWVzc2FnZT17KCkgPT4gaW50bC5mb3JtYXRNZXNzYWdlKG1lc3NhZ2VzLm5vUmVzdWx0cyl9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblByb2plY3RTd2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdQcm9qZWN0U3dpdGNoZXInO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9qZWN0U3dpdGNoZXI7XG4iXX0= */",
344
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$4
345
+ };
346
+
347
+ const ProjectSwitcherValueContainer = _ref5 => {
348
+ let projectCount = _ref5.projectCount,
349
+ restProps = _objectWithoutProperties(_ref5, _excluded$1);
350
+
351
+ const _useTheme = designSystem.useTheme(),
352
+ themedValue = _useTheme.themedValue;
353
+
354
+ return jsxRuntime.jsxs("div", {
355
+ css: _ref4$1,
356
+ children: [jsxRuntime.jsx("div", {
357
+ css: _ref3$1,
358
+ children: jsxRuntime.jsx(SelectInput__default["default"].ValueContainer, _objectSpread$9(_objectSpread$9({}, restProps), {}, {
359
+ children: restProps.children
360
+ }))
361
+ }), jsxRuntime.jsx("span", {
362
+ css: /*#__PURE__*/react$1.css("width:", themedValue('22px', '26px'), ";height:", themedValue('22px', '26px'), ";border-radius:100%;background:", themedValue(designSystem.designTokens.colorAccent40, designSystem.designTokens.colorNeutral), ";color:", designSystem.designTokens.colorSurface, ";font-size:", themedValue(designSystem.designTokens.fontSize15, designSystem.designTokens.fontSize30), ";display:flex;justify-content:center;align-items:center;" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherValueContainer;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTREZ0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25Qcm9wcywgVmFsdWVDb250YWluZXJQcm9wcyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uV2luZG93IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IEdSQVBIUUxfVEFSR0VUUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByZXBvcnRFcnJvclRvU2VudHJ5IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCBBY2Nlc3NpYmxlSGlkZGVuIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2FjY2Vzc2libGUtaGlkZGVuJztcbmltcG9ydCB7IGRlc2lnblRva2VucywgdXNlVGhlbWUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHsgdXNlTWNRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL2Fwb2xsby1ob29rcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFRQcm9qZWN0LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXMsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCAqIGFzIG9pZGNTdG9yYWdlIGZyb20gJy4uLy4uL3V0aWxzL29pZGMtc3RvcmFnZSc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHRoZW1lZFZhbHVlIH0gPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGhlaWdodDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5jb2xvckFjY2VudDQwLFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5mb250U2l6ZTE1LFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMzBcbiAgICAgICAgICApfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtwcm9qZWN0Q291bnR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyT3B0aW9uID0gKHByb3BzOiBPcHRpb25Qcm9wcykgPT4ge1xuICBjb25zdCBwcm9qZWN0ID0gcHJvcHMuZGF0YSBhcyBPcHRpb25UeXBlO1xuICByZXR1cm4gKFxuICAgIDxTZWxlY3RJbnB1dC5PcHRpb24gey4uLnByb3BzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkXG4gICAgICAgICAgICAgID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICAgICA6IGRlc2lnblRva2Vucy5jb2xvckFjY2VudH07XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0Lm5hbWV9XG4gICAgICAgICAge3Byb3BzLmlzRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVycm9ySWNvbiBzaXplPVwibWVkaXVtXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZCA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWwgOiAnaW5oZXJpdCd9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5rZXl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cHJvamVjdC5zdXNwZW5zaW9uICYmIHByb2plY3Quc3VzcGVuc2lvbi5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuc3VzcGVuZGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cHJvamVjdC5leHBpcnkgJiYgcHJvamVjdC5leHBpcnkuaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmV4cGlyZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L1NlbGVjdElucHV0Lk9wdGlvbj5cbiAgKTtcbn07XG5cbmNvbnN0IG1hcFByb2plY3RzVG9PcHRpb25zID0gbWVtb2l6ZSgocHJvamVjdHMpID0+XG4gIHByb2plY3RzLm1hcCgocHJvamVjdDogVFByb2plY3QpID0+ICh7XG4gICAga2V5OiBwcm9qZWN0LmtleSxcbiAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgbGFiZWw6IHByb2plY3QubmFtZSxcbiAgICB2YWx1ZTogcHJvamVjdC5rZXksXG4gICAgc3VzcGVuc2lvbjogcHJvamVjdC5zdXNwZW5zaW9uLFxuICAgIGV4cGlyeTogcHJvamVjdC5leHBpcnksXG4gIH0pKVxuKTtcblxuY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuXG5jb25zdCBQcm9qZWN0U3dpdGNoZXIgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgbG9hZGluZywgZGF0YSB9ID0gdXNlTWNRdWVyeTxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlc1xuICA+KFByb2plY3RzUXVlcnksIHtcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvclRvU2VudHJ5LFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIHRhcmdldDogR1JBUEhRTF9UQVJHRVRTLk1FUkNIQU5UX0NFTlRFUl9CQUNLRU5ELFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmIChsb2FkaW5nKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDZ9O1xuICAgICAgYH1cbiAgICAgIGRhdGEtdHJhY2stY29tcG9uZW50PVwiUHJvamVjdFN3aXRjaFwiXG4gICAgICBkYXRhLXRyYWNrLWV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
363
+ children: projectCount
364
+ })]
365
+ });
366
+ };
367
+
368
+ var _ref$2 = process.env.NODE_ENV === "production" ? {
369
+ name: "16lqnjx",
370
+ styles: "font-size:1.5rem;display:flex"
371
+ } : {
372
+ name: "1nmxni5-ProjectSwitcherOption",
373
+ styles: "font-size:1.5rem;display:flex;label:ProjectSwitcherOption;",
374
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVHc0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25Qcm9wcywgVmFsdWVDb250YWluZXJQcm9wcyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uV2luZG93IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IEdSQVBIUUxfVEFSR0VUUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByZXBvcnRFcnJvclRvU2VudHJ5IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCBBY2Nlc3NpYmxlSGlkZGVuIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2FjY2Vzc2libGUtaGlkZGVuJztcbmltcG9ydCB7IGRlc2lnblRva2VucywgdXNlVGhlbWUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHsgdXNlTWNRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL2Fwb2xsby1ob29rcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFRQcm9qZWN0LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXMsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCAqIGFzIG9pZGNTdG9yYWdlIGZyb20gJy4uLy4uL3V0aWxzL29pZGMtc3RvcmFnZSc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHRoZW1lZFZhbHVlIH0gPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGhlaWdodDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5jb2xvckFjY2VudDQwLFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5mb250U2l6ZTE1LFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMzBcbiAgICAgICAgICApfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtwcm9qZWN0Q291bnR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyT3B0aW9uID0gKHByb3BzOiBPcHRpb25Qcm9wcykgPT4ge1xuICBjb25zdCBwcm9qZWN0ID0gcHJvcHMuZGF0YSBhcyBPcHRpb25UeXBlO1xuICByZXR1cm4gKFxuICAgIDxTZWxlY3RJbnB1dC5PcHRpb24gey4uLnByb3BzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkXG4gICAgICAgICAgICAgID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICAgICA6IGRlc2lnblRva2Vucy5jb2xvckFjY2VudH07XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0Lm5hbWV9XG4gICAgICAgICAge3Byb3BzLmlzRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVycm9ySWNvbiBzaXplPVwibWVkaXVtXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZCA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWwgOiAnaW5oZXJpdCd9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5rZXl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cHJvamVjdC5zdXNwZW5zaW9uICYmIHByb2plY3Quc3VzcGVuc2lvbi5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuc3VzcGVuZGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cHJvamVjdC5leHBpcnkgJiYgcHJvamVjdC5leHBpcnkuaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmV4cGlyZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L1NlbGVjdElucHV0Lk9wdGlvbj5cbiAgKTtcbn07XG5cbmNvbnN0IG1hcFByb2plY3RzVG9PcHRpb25zID0gbWVtb2l6ZSgocHJvamVjdHMpID0+XG4gIHByb2plY3RzLm1hcCgocHJvamVjdDogVFByb2plY3QpID0+ICh7XG4gICAga2V5OiBwcm9qZWN0LmtleSxcbiAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgbGFiZWw6IHByb2plY3QubmFtZSxcbiAgICB2YWx1ZTogcHJvamVjdC5rZXksXG4gICAgc3VzcGVuc2lvbjogcHJvamVjdC5zdXNwZW5zaW9uLFxuICAgIGV4cGlyeTogcHJvamVjdC5leHBpcnksXG4gIH0pKVxuKTtcblxuY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuXG5jb25zdCBQcm9qZWN0U3dpdGNoZXIgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgbG9hZGluZywgZGF0YSB9ID0gdXNlTWNRdWVyeTxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlc1xuICA+KFByb2plY3RzUXVlcnksIHtcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvclRvU2VudHJ5LFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIHRhcmdldDogR1JBUEhRTF9UQVJHRVRTLk1FUkNIQU5UX0NFTlRFUl9CQUNLRU5ELFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmIChsb2FkaW5nKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDZ9O1xuICAgICAgYH1cbiAgICAgIGRhdGEtdHJhY2stY29tcG9uZW50PVwiUHJvamVjdFN3aXRjaFwiXG4gICAgICBkYXRhLXRyYWNrLWV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */",
375
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$4
376
+ };
377
+
378
+ var _ref2$2 = process.env.NODE_ENV === "production" ? {
379
+ name: "10s3lzp",
380
+ styles: "word-wrap:break-word"
381
+ } : {
382
+ name: "16pedup-ProjectSwitcherOption",
383
+ styles: "word-wrap:break-word;label:ProjectSwitcherOption;",
384
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlGZ0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25Qcm9wcywgVmFsdWVDb250YWluZXJQcm9wcyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uV2luZG93IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IEdSQVBIUUxfVEFSR0VUUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByZXBvcnRFcnJvclRvU2VudHJ5IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCBBY2Nlc3NpYmxlSGlkZGVuIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2FjY2Vzc2libGUtaGlkZGVuJztcbmltcG9ydCB7IGRlc2lnblRva2VucywgdXNlVGhlbWUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHsgdXNlTWNRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL2Fwb2xsby1ob29rcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFRQcm9qZWN0LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXMsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCAqIGFzIG9pZGNTdG9yYWdlIGZyb20gJy4uLy4uL3V0aWxzL29pZGMtc3RvcmFnZSc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHRoZW1lZFZhbHVlIH0gPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGhlaWdodDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5jb2xvckFjY2VudDQwLFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5mb250U2l6ZTE1LFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMzBcbiAgICAgICAgICApfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtwcm9qZWN0Q291bnR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyT3B0aW9uID0gKHByb3BzOiBPcHRpb25Qcm9wcykgPT4ge1xuICBjb25zdCBwcm9qZWN0ID0gcHJvcHMuZGF0YSBhcyBPcHRpb25UeXBlO1xuICByZXR1cm4gKFxuICAgIDxTZWxlY3RJbnB1dC5PcHRpb24gey4uLnByb3BzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkXG4gICAgICAgICAgICAgID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICAgICA6IGRlc2lnblRva2Vucy5jb2xvckFjY2VudH07XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0Lm5hbWV9XG4gICAgICAgICAge3Byb3BzLmlzRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVycm9ySWNvbiBzaXplPVwibWVkaXVtXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZCA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWwgOiAnaW5oZXJpdCd9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5rZXl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cHJvamVjdC5zdXNwZW5zaW9uICYmIHByb2plY3Quc3VzcGVuc2lvbi5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuc3VzcGVuZGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cHJvamVjdC5leHBpcnkgJiYgcHJvamVjdC5leHBpcnkuaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmV4cGlyZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L1NlbGVjdElucHV0Lk9wdGlvbj5cbiAgKTtcbn07XG5cbmNvbnN0IG1hcFByb2plY3RzVG9PcHRpb25zID0gbWVtb2l6ZSgocHJvamVjdHMpID0+XG4gIHByb2plY3RzLm1hcCgocHJvamVjdDogVFByb2plY3QpID0+ICh7XG4gICAga2V5OiBwcm9qZWN0LmtleSxcbiAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgbGFiZWw6IHByb2plY3QubmFtZSxcbiAgICB2YWx1ZTogcHJvamVjdC5rZXksXG4gICAgc3VzcGVuc2lvbjogcHJvamVjdC5zdXNwZW5zaW9uLFxuICAgIGV4cGlyeTogcHJvamVjdC5leHBpcnksXG4gIH0pKVxuKTtcblxuY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuXG5jb25zdCBQcm9qZWN0U3dpdGNoZXIgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgbG9hZGluZywgZGF0YSB9ID0gdXNlTWNRdWVyeTxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlc1xuICA+KFByb2plY3RzUXVlcnksIHtcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvclRvU2VudHJ5LFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIHRhcmdldDogR1JBUEhRTF9UQVJHRVRTLk1FUkNIQU5UX0NFTlRFUl9CQUNLRU5ELFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmIChsb2FkaW5nKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDZ9O1xuICAgICAgYH1cbiAgICAgIGRhdGEtdHJhY2stY29tcG9uZW50PVwiUHJvamVjdFN3aXRjaFwiXG4gICAgICBkYXRhLXRyYWNrLWV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */",
385
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$4
386
+ };
387
+
388
+ const ProjectSwitcherOption = props => {
389
+ const project = props.data;
390
+ return jsxRuntime.jsx(SelectInput__default["default"].Option, _objectSpread$9(_objectSpread$9({}, props), {}, {
391
+ children: jsxRuntime.jsxs("div", {
392
+ css: _ref2$2,
393
+ children: [jsxRuntime.jsxs("div", {
394
+ css: /*#__PURE__*/react$1.css("color:", props.isDisabled ? designSystem.designTokens.colorNeutral : designSystem.designTokens.colorAccent, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThGa0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25Qcm9wcywgVmFsdWVDb250YWluZXJQcm9wcyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uV2luZG93IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IEdSQVBIUUxfVEFSR0VUUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByZXBvcnRFcnJvclRvU2VudHJ5IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCBBY2Nlc3NpYmxlSGlkZGVuIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2FjY2Vzc2libGUtaGlkZGVuJztcbmltcG9ydCB7IGRlc2lnblRva2VucywgdXNlVGhlbWUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHsgdXNlTWNRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL2Fwb2xsby1ob29rcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFRQcm9qZWN0LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXMsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCAqIGFzIG9pZGNTdG9yYWdlIGZyb20gJy4uLy4uL3V0aWxzL29pZGMtc3RvcmFnZSc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHRoZW1lZFZhbHVlIH0gPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGhlaWdodDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5jb2xvckFjY2VudDQwLFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5mb250U2l6ZTE1LFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMzBcbiAgICAgICAgICApfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtwcm9qZWN0Q291bnR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyT3B0aW9uID0gKHByb3BzOiBPcHRpb25Qcm9wcykgPT4ge1xuICBjb25zdCBwcm9qZWN0ID0gcHJvcHMuZGF0YSBhcyBPcHRpb25UeXBlO1xuICByZXR1cm4gKFxuICAgIDxTZWxlY3RJbnB1dC5PcHRpb24gey4uLnByb3BzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkXG4gICAgICAgICAgICAgID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICAgICA6IGRlc2lnblRva2Vucy5jb2xvckFjY2VudH07XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0Lm5hbWV9XG4gICAgICAgICAge3Byb3BzLmlzRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVycm9ySWNvbiBzaXplPVwibWVkaXVtXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZCA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWwgOiAnaW5oZXJpdCd9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5rZXl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cHJvamVjdC5zdXNwZW5zaW9uICYmIHByb2plY3Quc3VzcGVuc2lvbi5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuc3VzcGVuZGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cHJvamVjdC5leHBpcnkgJiYgcHJvamVjdC5leHBpcnkuaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmV4cGlyZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L1NlbGVjdElucHV0Lk9wdGlvbj5cbiAgKTtcbn07XG5cbmNvbnN0IG1hcFByb2plY3RzVG9PcHRpb25zID0gbWVtb2l6ZSgocHJvamVjdHMpID0+XG4gIHByb2plY3RzLm1hcCgocHJvamVjdDogVFByb2plY3QpID0+ICh7XG4gICAga2V5OiBwcm9qZWN0LmtleSxcbiAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgbGFiZWw6IHByb2plY3QubmFtZSxcbiAgICB2YWx1ZTogcHJvamVjdC5rZXksXG4gICAgc3VzcGVuc2lvbjogcHJvamVjdC5zdXNwZW5zaW9uLFxuICAgIGV4cGlyeTogcHJvamVjdC5leHBpcnksXG4gIH0pKVxuKTtcblxuY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuXG5jb25zdCBQcm9qZWN0U3dpdGNoZXIgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgbG9hZGluZywgZGF0YSB9ID0gdXNlTWNRdWVyeTxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlc1xuICA+KFByb2plY3RzUXVlcnksIHtcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvclRvU2VudHJ5LFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIHRhcmdldDogR1JBUEhRTF9UQVJHRVRTLk1FUkNIQU5UX0NFTlRFUl9CQUNLRU5ELFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmIChsb2FkaW5nKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDZ9O1xuICAgICAgYH1cbiAgICAgIGRhdGEtdHJhY2stY29tcG9uZW50PVwiUHJvamVjdFN3aXRjaFwiXG4gICAgICBkYXRhLXRyYWNrLWV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
395
+ children: [project.name, props.isDisabled && jsxRuntime.jsx("span", {
396
+ css: _ref$2,
397
+ children: jsxRuntime.jsx(icons.ErrorIcon, {
398
+ size: "medium"
399
+ })
400
+ })]
401
+ }), jsxRuntime.jsx("div", {
402
+ css: /*#__PURE__*/react$1.css("font-size:11px;color:", props.isDisabled ? designSystem.designTokens.colorNeutral : 'inherit', ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlIa0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25Qcm9wcywgVmFsdWVDb250YWluZXJQcm9wcyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uV2luZG93IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IEdSQVBIUUxfVEFSR0VUUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByZXBvcnRFcnJvclRvU2VudHJ5IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCBBY2Nlc3NpYmxlSGlkZGVuIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2FjY2Vzc2libGUtaGlkZGVuJztcbmltcG9ydCB7IGRlc2lnblRva2VucywgdXNlVGhlbWUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHsgdXNlTWNRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL2Fwb2xsby1ob29rcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFRQcm9qZWN0LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXMsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCAqIGFzIG9pZGNTdG9yYWdlIGZyb20gJy4uLy4uL3V0aWxzL29pZGMtc3RvcmFnZSc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHRoZW1lZFZhbHVlIH0gPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGhlaWdodDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5jb2xvckFjY2VudDQwLFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5mb250U2l6ZTE1LFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMzBcbiAgICAgICAgICApfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtwcm9qZWN0Q291bnR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyT3B0aW9uID0gKHByb3BzOiBPcHRpb25Qcm9wcykgPT4ge1xuICBjb25zdCBwcm9qZWN0ID0gcHJvcHMuZGF0YSBhcyBPcHRpb25UeXBlO1xuICByZXR1cm4gKFxuICAgIDxTZWxlY3RJbnB1dC5PcHRpb24gey4uLnByb3BzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkXG4gICAgICAgICAgICAgID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICAgICA6IGRlc2lnblRva2Vucy5jb2xvckFjY2VudH07XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0Lm5hbWV9XG4gICAgICAgICAge3Byb3BzLmlzRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVycm9ySWNvbiBzaXplPVwibWVkaXVtXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZCA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWwgOiAnaW5oZXJpdCd9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5rZXl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cHJvamVjdC5zdXNwZW5zaW9uICYmIHByb2plY3Quc3VzcGVuc2lvbi5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuc3VzcGVuZGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cHJvamVjdC5leHBpcnkgJiYgcHJvamVjdC5leHBpcnkuaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmV4cGlyZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L1NlbGVjdElucHV0Lk9wdGlvbj5cbiAgKTtcbn07XG5cbmNvbnN0IG1hcFByb2plY3RzVG9PcHRpb25zID0gbWVtb2l6ZSgocHJvamVjdHMpID0+XG4gIHByb2plY3RzLm1hcCgocHJvamVjdDogVFByb2plY3QpID0+ICh7XG4gICAga2V5OiBwcm9qZWN0LmtleSxcbiAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgbGFiZWw6IHByb2plY3QubmFtZSxcbiAgICB2YWx1ZTogcHJvamVjdC5rZXksXG4gICAgc3VzcGVuc2lvbjogcHJvamVjdC5zdXNwZW5zaW9uLFxuICAgIGV4cGlyeTogcHJvamVjdC5leHBpcnksXG4gIH0pKVxuKTtcblxuY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuXG5jb25zdCBQcm9qZWN0U3dpdGNoZXIgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgbG9hZGluZywgZGF0YSB9ID0gdXNlTWNRdWVyeTxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlc1xuICA+KFByb2plY3RzUXVlcnksIHtcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvclRvU2VudHJ5LFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIHRhcmdldDogR1JBUEhRTF9UQVJHRVRTLk1FUkNIQU5UX0NFTlRFUl9CQUNLRU5ELFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmIChsb2FkaW5nKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDZ9O1xuICAgICAgYH1cbiAgICAgIGRhdGEtdHJhY2stY29tcG9uZW50PVwiUHJvamVjdFN3aXRjaFwiXG4gICAgICBkYXRhLXRyYWNrLWV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
403
+ children: project.key
404
+ }), project.suspension && project.suspension.isActive && jsxRuntime.jsx("div", {
405
+ css: /*#__PURE__*/react$1.css("font-size:11px;color:", designSystem.designTokens.colorError, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBIb0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25Qcm9wcywgVmFsdWVDb250YWluZXJQcm9wcyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uV2luZG93IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IEdSQVBIUUxfVEFSR0VUUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByZXBvcnRFcnJvclRvU2VudHJ5IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCBBY2Nlc3NpYmxlSGlkZGVuIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2FjY2Vzc2libGUtaGlkZGVuJztcbmltcG9ydCB7IGRlc2lnblRva2VucywgdXNlVGhlbWUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHsgdXNlTWNRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL2Fwb2xsby1ob29rcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFRQcm9qZWN0LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXMsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCAqIGFzIG9pZGNTdG9yYWdlIGZyb20gJy4uLy4uL3V0aWxzL29pZGMtc3RvcmFnZSc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHRoZW1lZFZhbHVlIH0gPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGhlaWdodDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5jb2xvckFjY2VudDQwLFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5mb250U2l6ZTE1LFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMzBcbiAgICAgICAgICApfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtwcm9qZWN0Q291bnR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyT3B0aW9uID0gKHByb3BzOiBPcHRpb25Qcm9wcykgPT4ge1xuICBjb25zdCBwcm9qZWN0ID0gcHJvcHMuZGF0YSBhcyBPcHRpb25UeXBlO1xuICByZXR1cm4gKFxuICAgIDxTZWxlY3RJbnB1dC5PcHRpb24gey4uLnByb3BzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkXG4gICAgICAgICAgICAgID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICAgICA6IGRlc2lnblRva2Vucy5jb2xvckFjY2VudH07XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0Lm5hbWV9XG4gICAgICAgICAge3Byb3BzLmlzRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVycm9ySWNvbiBzaXplPVwibWVkaXVtXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZCA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWwgOiAnaW5oZXJpdCd9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5rZXl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cHJvamVjdC5zdXNwZW5zaW9uICYmIHByb2plY3Quc3VzcGVuc2lvbi5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuc3VzcGVuZGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cHJvamVjdC5leHBpcnkgJiYgcHJvamVjdC5leHBpcnkuaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmV4cGlyZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L1NlbGVjdElucHV0Lk9wdGlvbj5cbiAgKTtcbn07XG5cbmNvbnN0IG1hcFByb2plY3RzVG9PcHRpb25zID0gbWVtb2l6ZSgocHJvamVjdHMpID0+XG4gIHByb2plY3RzLm1hcCgocHJvamVjdDogVFByb2plY3QpID0+ICh7XG4gICAga2V5OiBwcm9qZWN0LmtleSxcbiAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgbGFiZWw6IHByb2plY3QubmFtZSxcbiAgICB2YWx1ZTogcHJvamVjdC5rZXksXG4gICAgc3VzcGVuc2lvbjogcHJvamVjdC5zdXNwZW5zaW9uLFxuICAgIGV4cGlyeTogcHJvamVjdC5leHBpcnksXG4gIH0pKVxuKTtcblxuY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuXG5jb25zdCBQcm9qZWN0U3dpdGNoZXIgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgbG9hZGluZywgZGF0YSB9ID0gdXNlTWNRdWVyeTxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlc1xuICA+KFByb2plY3RzUXVlcnksIHtcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvclRvU2VudHJ5LFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIHRhcmdldDogR1JBUEhRTF9UQVJHRVRTLk1FUkNIQU5UX0NFTlRFUl9CQUNLRU5ELFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmIChsb2FkaW5nKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDZ9O1xuICAgICAgYH1cbiAgICAgIGRhdGEtdHJhY2stY29tcG9uZW50PVwiUHJvamVjdFN3aXRjaFwiXG4gICAgICBkYXRhLXRyYWNrLWV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
406
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$9({}, messages.suspended))
407
+ }), project.expiry && project.expiry.isActive && jsxRuntime.jsx("div", {
408
+ css: /*#__PURE__*/react$1.css("font-size:11px;color:", designSystem.designTokens.colorError, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcherOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Jb0IiLCJmaWxlIjoicHJvamVjdC1zd2l0Y2hlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25Qcm9wcywgVmFsdWVDb250YWluZXJQcm9wcyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uV2luZG93IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IEdSQVBIUUxfVEFSR0VUUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByZXBvcnRFcnJvclRvU2VudHJ5IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCBBY2Nlc3NpYmxlSGlkZGVuIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2FjY2Vzc2libGUtaGlkZGVuJztcbmltcG9ydCB7IGRlc2lnblRva2VucywgdXNlVGhlbWUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBTZWxlY3RJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHsgdXNlTWNRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL2Fwb2xsby1ob29rcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFRQcm9qZWN0LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgVEZldGNoVXNlclByb2plY3RzUXVlcnlWYXJpYWJsZXMsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCAqIGFzIG9pZGNTdG9yYWdlIGZyb20gJy4uLy4uL3V0aWxzL29pZGMtc3RvcmFnZSc7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgUHJvamVjdHNRdWVyeSBmcm9tICcuL3Byb2plY3Qtc3dpdGNoZXIubWMuZ3JhcGhxbCc7XG5cbmRlY2xhcmUgbGV0IHdpbmRvdzogQXBwbGljYXRpb25XaW5kb3c7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHByb2plY3RLZXk/OiBzdHJpbmc7XG59O1xudHlwZSBPcHRpb25UeXBlID0gUGljazxUUHJvamVjdCwgJ2tleScgfCAnbmFtZScgfCAnc3VzcGVuc2lvbicgfCAnZXhwaXJ5Jz4gJiB7XG4gIGxhYmVsOiBzdHJpbmc7XG59O1xudHlwZSBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzID0gVmFsdWVDb250YWluZXJQcm9wcyAmIHtcbiAgcHJvamVjdENvdW50OiBudW1iZXI7XG59O1xuXG5jb25zdCBQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEID0gJ3Byb2plY3Qtc3dpdGNoZXItbGFiZWwnO1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXIgPSAoe1xuICBwcm9qZWN0Q291bnQsXG4gIC4uLnJlc3RQcm9wc1xufTogQ3VzdG9tVmFsdWVDb250YWluZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IHRoZW1lZFZhbHVlIH0gPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTZWxlY3RJbnB1dC5WYWx1ZUNvbnRhaW5lciB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICB7cmVzdFByb3BzLmNoaWxkcmVufVxuICAgICAgICA8L1NlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhblxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3aWR0aDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGhlaWdodDogJHt0aGVtZWRWYWx1ZSgnMjJweCcsICcyNnB4Jyl9O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5jb2xvckFjY2VudDQwLFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZWRWYWx1ZShcbiAgICAgICAgICAgIGRlc2lnblRva2Vucy5mb250U2l6ZTE1LFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMzBcbiAgICAgICAgICApfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtwcm9qZWN0Q291bnR9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgUHJvamVjdFN3aXRjaGVyT3B0aW9uID0gKHByb3BzOiBPcHRpb25Qcm9wcykgPT4ge1xuICBjb25zdCBwcm9qZWN0ID0gcHJvcHMuZGF0YSBhcyBPcHRpb25UeXBlO1xuICByZXR1cm4gKFxuICAgIDxTZWxlY3RJbnB1dC5PcHRpb24gey4uLnByb3BzfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkXG4gICAgICAgICAgICAgID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbFxuICAgICAgICAgICAgICA6IGRlc2lnblRva2Vucy5jb2xvckFjY2VudH07XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0Lm5hbWV9XG4gICAgICAgICAge3Byb3BzLmlzRGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVycm9ySWNvbiBzaXplPVwibWVkaXVtXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgY29sb3I6ICR7cHJvcHMuaXNEaXNhYmxlZCA/IGRlc2lnblRva2Vucy5jb2xvck5ldXRyYWwgOiAnaW5oZXJpdCd9O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7cHJvamVjdC5rZXl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7cHJvamVjdC5zdXNwZW5zaW9uICYmIHByb2plY3Quc3VzcGVuc2lvbi5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuc3VzcGVuZGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7cHJvamVjdC5leHBpcnkgJiYgcHJvamVjdC5leHBpcnkuaXNBY3RpdmUgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAke2Rlc2lnblRva2Vucy5jb2xvckVycm9yfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmV4cGlyZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICA8L1NlbGVjdElucHV0Lk9wdGlvbj5cbiAgKTtcbn07XG5cbmNvbnN0IG1hcFByb2plY3RzVG9PcHRpb25zID0gbWVtb2l6ZSgocHJvamVjdHMpID0+XG4gIHByb2plY3RzLm1hcCgocHJvamVjdDogVFByb2plY3QpID0+ICh7XG4gICAga2V5OiBwcm9qZWN0LmtleSxcbiAgICBuYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgbGFiZWw6IHByb2plY3QubmFtZSxcbiAgICB2YWx1ZTogcHJvamVjdC5rZXksXG4gICAgc3VzcGVuc2lvbjogcHJvamVjdC5zdXNwZW5zaW9uLFxuICAgIGV4cGlyeTogcHJvamVjdC5leHBpcnksXG4gIH0pKVxuKTtcblxuY29uc3QgcmVkaXJlY3RUbyA9ICh0YXJnZXRVcmw6IHN0cmluZykgPT4gbG9jYXRpb24ucmVwbGFjZSh0YXJnZXRVcmwpO1xuXG5jb25zdCBQcm9qZWN0U3dpdGNoZXIgPSAocHJvcHM6IFByb3BzKSA9PiB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgbG9hZGluZywgZGF0YSB9ID0gdXNlTWNRdWVyeTxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeSxcbiAgICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlc1xuICA+KFByb2plY3RzUXVlcnksIHtcbiAgICBvbkVycm9yOiByZXBvcnRFcnJvclRvU2VudHJ5LFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIHRhcmdldDogR1JBUEhRTF9UQVJHRVRTLk1FUkNIQU5UX0NFTlRFUl9CQUNLRU5ELFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmIChsb2FkaW5nKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogJHtkZXNpZ25Ub2tlbnMuY29uc3RyYWludDZ9O1xuICAgICAgYH1cbiAgICAgIGRhdGEtdHJhY2stY29tcG9uZW50PVwiUHJvamVjdFN3aXRjaFwiXG4gICAgICBkYXRhLXRyYWNrLWV2ZW50PVwiY2xpY2tcIlxuICAgID5cbiAgICAgIDxBY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgICA8c3BhbiBpZD17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH0+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLnByb2plY3RzTGFiZWx9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvQWNjZXNzaWJsZUhpZGRlbj5cbiAgICAgIDxTZWxlY3RJbnB1dFxuICAgICAgICB2YWx1ZT17cHJvcHMucHJvamVjdEtleSB8fCAnJ31cbiAgICAgICAgbmFtZT1cInByb2plY3Qtc3dpdGNoZXJcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e1BST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUR9XG4gICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFByb2plY3RLZXkgPSBldmVudC50YXJnZXQudmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGlmIChzZWxlY3RlZFByb2plY3RLZXkgIT09IHByb3BzLnByb2plY3RLZXkpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYXBwLl9fREVWRUxPUE1FTlRfXz8ub2lkYz8uYXV0aG9yaXplVXJsKSB7XG4gICAgICAgICAgICAgIG9pZGNTdG9yYWdlLnNldEFjdGl2ZVByb2plY3RLZXkoc2VsZWN0ZWRQcm9qZWN0S2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gV2Ugc2ltcGx5IHJlZGlyZWN0IHRvIGEgXCJuZXdcIiBicm93c2VyIHBhZ2UsIGluc3RlYWQgb2YgdXNpbmcgdGhlXG4gICAgICAgICAgICAvLyBoaXN0b3J5IHJvdXRlci4gVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mIHRoaW5ncyBhbmQgYXZvaWQgcG9zc2libGVcbiAgICAgICAgICAgIC8vIHByb2JsZW1zIGxpa2UgZS5nLiByZXNldHRpbmcgdGhlIHN0b3JlL3N0YXRlLlxuICAgICAgICAgICAgcmVkaXJlY3RUbyhgLyR7c2VsZWN0ZWRQcm9qZWN0S2V5fWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17XG4gICAgICAgICAgZGF0YSAmJiBkYXRhLnVzZXIgJiYgbWFwUHJvamVjdHNUb09wdGlvbnMoZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMpXG4gICAgICAgIH1cbiAgICAgICAgaXNPcHRpb25EaXNhYmxlZD17KG9wdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBvcHRpb24gYXMgT3B0aW9uVHlwZTtcbiAgICAgICAgICByZXR1cm4gcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlIHx8IHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlO1xuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgT3B0aW9uOiBQcm9qZWN0U3dpdGNoZXJPcHRpb24sXG4gICAgICAgICAgVmFsdWVDb250YWluZXI6ICh2YWx1ZUNvbnRhaW5lclByb3BzKSA9PiAoXG4gICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyVmFsdWVDb250YWluZXJcbiAgICAgICAgICAgICAgey4uLnZhbHVlQ29udGFpbmVyUHJvcHN9XG4gICAgICAgICAgICAgIHByb2plY3RDb3VudD17XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS51c2VyICYmIGRhdGEudXNlci5wcm9qZWN0cy5yZXN1bHRzLmxlbmd0aCkgfHwgMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGlzQ2xlYXJhYmxlPXtmYWxzZX1cbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXtmYWxzZX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5zZWFyY2hQbGFjZWhvbGRlcil9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9eygpID0+IGludGwuZm9ybWF0TWVzc2FnZShtZXNzYWdlcy5ub1Jlc3VsdHMpfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Qcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnUHJvamVjdFN3aXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgUHJvamVjdFN3aXRjaGVyO1xuIl19 */"),
409
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$9({}, messages.expired))
410
+ })]
411
+ })
412
+ }));
413
+ };
414
+ const mapProjectsToOptions = memoize__default["default"](projects => _mapInstanceProperty__default["default"](projects).call(projects, project => ({
415
+ key: project.key,
416
+ name: project.name,
417
+ label: project.name,
418
+ value: project.key,
419
+ suspension: project.suspension,
420
+ expiry: project.expiry
421
+ })));
422
+
423
+ const redirectTo = targetUrl => useIsServedByProxy.location.replace(targetUrl);
424
+
425
+ const ProjectSwitcher = props => {
426
+ const intl = reactIntl.useIntl();
427
+
428
+ const _useMcQuery = useMcQuery(ProjectsQuery, {
429
+ onError: sentry.reportErrorToSentry,
430
+ context: {
431
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
432
+ }
433
+ }),
434
+ loading = _useMcQuery.loading,
435
+ data = _useMcQuery.data;
436
+
437
+ if (loading) return null;
438
+ return jsxRuntime.jsxs("div", {
439
+ css: /*#__PURE__*/react$1.css("width:", designSystem.designTokens.constraint6, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:ProjectSwitcher;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3Qtc3dpdGNoZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThLYyIsImZpbGUiOiJwcm9qZWN0LXN3aXRjaGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IEByZWRlc2lnbiBjbGVhbnVwXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplLW9uZSc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvblByb3BzLCBWYWx1ZUNvbnRhaW5lclByb3BzIH0gZnJvbSAncmVhY3Qtc2VsZWN0JztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb25XaW5kb3cgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHsgR1JBUEhRTF9UQVJHRVRTIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IHJlcG9ydEVycm9yVG9TZW50cnkgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IEFjY2Vzc2libGVIaWRkZW4gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvYWNjZXNzaWJsZS1oaWRkZW4nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zLCB1c2VUaGVtZSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgRXJyb3JJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IFNlbGVjdElucHV0IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L3NlbGVjdC1pbnB1dCc7XG5pbXBvcnQgeyB1c2VNY1F1ZXJ5IH0gZnJvbSAnLi4vLi4vaG9va3MvYXBvbGxvLWhvb2tzJztcbmltcG9ydCB0eXBlIHtcbiAgVFByb2plY3QsXG4gIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICBURmV0Y2hVc2VyUHJvamVjdHNRdWVyeVZhcmlhYmxlcyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGxvY2F0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9jYXRpb24nO1xuaW1wb3J0ICogYXMgb2lkY1N0b3JhZ2UgZnJvbSAnLi4vLi4vdXRpbHMvb2lkYy1zdG9yYWdlJztcbmltcG9ydCBtZXNzYWdlcyBmcm9tICcuL21lc3NhZ2VzJztcbmltcG9ydCBQcm9qZWN0c1F1ZXJ5IGZyb20gJy4vcHJvamVjdC1zd2l0Y2hlci5tYy5ncmFwaHFsJztcblxuZGVjbGFyZSBsZXQgd2luZG93OiBBcHBsaWNhdGlvbldpbmRvdztcblxudHlwZSBQcm9wcyA9IHtcbiAgcHJvamVjdEtleT86IHN0cmluZztcbn07XG50eXBlIE9wdGlvblR5cGUgPSBQaWNrPFRQcm9qZWN0LCAna2V5JyB8ICduYW1lJyB8ICdzdXNwZW5zaW9uJyB8ICdleHBpcnknPiAmIHtcbiAgbGFiZWw6IHN0cmluZztcbn07XG50eXBlIEN1c3RvbVZhbHVlQ29udGFpbmVyUHJvcHMgPSBWYWx1ZUNvbnRhaW5lclByb3BzICYge1xuICBwcm9qZWN0Q291bnQ6IG51bWJlcjtcbn07XG5cbmNvbnN0IFBST0pFQ1RfU1dJVENIRVJfTEFCRUxfSUQgPSAncHJvamVjdC1zd2l0Y2hlci1sYWJlbCc7XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJWYWx1ZUNvbnRhaW5lciA9ICh7XG4gIHByb2plY3RDb3VudCxcbiAgLi4ucmVzdFByb3BzXG59OiBDdXN0b21WYWx1ZUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdGhlbWVkVmFsdWUgfSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPFNlbGVjdElucHV0LlZhbHVlQ29udGFpbmVyIHsuLi5yZXN0UHJvcHN9PlxuICAgICAgICAgIHtyZXN0UHJvcHMuY2hpbGRyZW59XG4gICAgICAgIDwvU2VsZWN0SW5wdXQuVmFsdWVDb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIHdpZHRoOiAke3RoZW1lZFZhbHVlKCcyMnB4JywgJzI2cHgnKX07XG4gICAgICAgICAgaGVpZ2h0OiAke3RoZW1lZFZhbHVlKCcyMnB4JywgJzI2cHgnKX07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAke3RoZW1lZFZhbHVlKFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50NDAsXG4gICAgICAgICAgICBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgKX07XG4gICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yU3VyZmFjZX07XG4gICAgICAgICAgZm9udC1zaXplOiAke3RoZW1lZFZhbHVlKFxuICAgICAgICAgICAgZGVzaWduVG9rZW5zLmZvbnRTaXplMTUsXG4gICAgICAgICAgICBkZXNpZ25Ub2tlbnMuZm9udFNpemUzMFxuICAgICAgICAgICl9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAge3Byb2plY3RDb3VudH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm9qZWN0U3dpdGNoZXJPcHRpb24gPSAocHJvcHM6IE9wdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHByb2plY3QgPSBwcm9wcy5kYXRhIGFzIE9wdGlvblR5cGU7XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdElucHV0Lk9wdGlvbiB7Li4ucHJvcHN9PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGNvbG9yOiAke3Byb3BzLmlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgPyBkZXNpZ25Ub2tlbnMuY29sb3JOZXV0cmFsXG4gICAgICAgICAgICAgIDogZGVzaWduVG9rZW5zLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAge3Byb2plY3QubmFtZX1cbiAgICAgICAgICB7cHJvcHMuaXNEaXNhYmxlZCAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXJyb3JJY29uIHNpemU9XCJtZWRpdW1cIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBjb2xvcjogJHtwcm9wcy5pc0Rpc2FibGVkID8gZGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbCA6ICdpbmhlcml0J307XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHtwcm9qZWN0LmtleX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtwcm9qZWN0LnN1c3BlbnNpb24gJiYgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICAgICAgICBjb2xvcjogJHtkZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICBgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5zdXNwZW5kZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9qZWN0LmV4cGlyeSAmJiBwcm9qZWN0LmV4cGlyeS5pc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgICAgY29sb3I6ICR7ZGVzaWduVG9rZW5zLmNvbG9yRXJyb3J9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXhwaXJlZH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0SW5wdXQuT3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgbWFwUHJvamVjdHNUb09wdGlvbnMgPSBtZW1vaXplKChwcm9qZWN0cykgPT5cbiAgcHJvamVjdHMubWFwKChwcm9qZWN0OiBUUHJvamVjdCkgPT4gKHtcbiAgICBrZXk6IHByb2plY3Qua2V5LFxuICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICBsYWJlbDogcHJvamVjdC5uYW1lLFxuICAgIHZhbHVlOiBwcm9qZWN0LmtleSxcbiAgICBzdXNwZW5zaW9uOiBwcm9qZWN0LnN1c3BlbnNpb24sXG4gICAgZXhwaXJ5OiBwcm9qZWN0LmV4cGlyeSxcbiAgfSkpXG4pO1xuXG5jb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG5cbmNvbnN0IFByb2plY3RTd2l0Y2hlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBsb2FkaW5nLCBkYXRhIH0gPSB1c2VNY1F1ZXJ5PFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5LFxuICAgIFRGZXRjaFVzZXJQcm9qZWN0c1F1ZXJ5VmFyaWFibGVzXG4gID4oUHJvamVjdHNRdWVyeSwge1xuICAgIG9uRXJyb3I6IHJlcG9ydEVycm9yVG9TZW50cnksXG4gICAgY29udGV4dDoge1xuICAgICAgdGFyZ2V0OiBHUkFQSFFMX1RBUkdFVFMuTUVSQ0hBTlRfQ0VOVEVSX0JBQ0tFTkQsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKGxvYWRpbmcpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIHdpZHRoOiAke2Rlc2lnblRva2Vucy5jb25zdHJhaW50Nn07XG4gICAgICBgfVxuICAgICAgZGF0YS10cmFjay1jb21wb25lbnQ9XCJQcm9qZWN0U3dpdGNoXCJcbiAgICAgIGRhdGEtdHJhY2stZXZlbnQ9XCJjbGlja1wiXG4gICAgPlxuICAgICAgPEFjY2Vzc2libGVIaWRkZW4+XG4gICAgICAgIDxzcGFuIGlkPXtQUk9KRUNUX1NXSVRDSEVSX0xBQkVMX0lEfT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMucHJvamVjdHNMYWJlbH0gLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9BY2Nlc3NpYmxlSGlkZGVuPlxuICAgICAgPFNlbGVjdElucHV0XG4gICAgICAgIHZhbHVlPXtwcm9wcy5wcm9qZWN0S2V5IHx8ICcnfVxuICAgICAgICBuYW1lPVwicHJvamVjdC1zd2l0Y2hlclwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT17UFJPSkVDVF9TV0lUQ0hFUl9MQUJFTF9JRH1cbiAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUHJvamVjdEtleSA9IGV2ZW50LnRhcmdldC52YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgICAgaWYgKHNlbGVjdGVkUHJvamVjdEtleSAhPT0gcHJvcHMucHJvamVjdEtleSkge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5hcHAuX19ERVZFTE9QTUVOVF9fPy5vaWRjPy5hdXRob3JpemVVcmwpIHtcbiAgICAgICAgICAgICAgb2lkY1N0b3JhZ2Uuc2V0QWN0aXZlUHJvamVjdEtleShzZWxlY3RlZFByb2plY3RLZXkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBXZSBzaW1wbHkgcmVkaXJlY3QgdG8gYSBcIm5ld1wiIGJyb3dzZXIgcGFnZSwgaW5zdGVhZCBvZiB1c2luZyB0aGVcbiAgICAgICAgICAgIC8vIGhpc3Rvcnkgcm91dGVyLiBUaGlzIHdpbGwgc2ltcGxpZnkgYSBsb3Qgb2YgdGhpbmdzIGFuZCBhdm9pZCBwb3NzaWJsZVxuICAgICAgICAgICAgLy8gcHJvYmxlbXMgbGlrZSBlLmcuIHJlc2V0dGluZyB0aGUgc3RvcmUvc3RhdGUuXG4gICAgICAgICAgICByZWRpcmVjdFRvKGAvJHtzZWxlY3RlZFByb2plY3RLZXl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvcHRpb25zPXtcbiAgICAgICAgICBkYXRhICYmIGRhdGEudXNlciAmJiBtYXBQcm9qZWN0c1RvT3B0aW9ucyhkYXRhLnVzZXIucHJvamVjdHMucmVzdWx0cylcbiAgICAgICAgfVxuICAgICAgICBpc09wdGlvbkRpc2FibGVkPXsob3B0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvamVjdCA9IG9wdGlvbiBhcyBPcHRpb25UeXBlO1xuICAgICAgICAgIHJldHVybiBwcm9qZWN0LnN1c3BlbnNpb24uaXNBY3RpdmUgfHwgcHJvamVjdC5leHBpcnkuaXNBY3RpdmU7XG4gICAgICAgIH19XG4gICAgICAgIGNvbXBvbmVudHM9e3tcbiAgICAgICAgICBPcHRpb246IFByb2plY3RTd2l0Y2hlck9wdGlvbixcbiAgICAgICAgICBWYWx1ZUNvbnRhaW5lcjogKHZhbHVlQ29udGFpbmVyUHJvcHMpID0+IChcbiAgICAgICAgICAgIDxQcm9qZWN0U3dpdGNoZXJWYWx1ZUNvbnRhaW5lclxuICAgICAgICAgICAgICB7Li4udmFsdWVDb250YWluZXJQcm9wc31cbiAgICAgICAgICAgICAgcHJvamVjdENvdW50PXtcbiAgICAgICAgICAgICAgICAoZGF0YSAmJiBkYXRhLnVzZXIgJiYgZGF0YS51c2VyLnByb2plY3RzLnJlc3VsdHMubGVuZ3RoKSB8fCAwXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSxcbiAgICAgICAgfX1cbiAgICAgICAgaXNDbGVhcmFibGU9e2ZhbHNlfVxuICAgICAgICBiYWNrc3BhY2VSZW1vdmVzVmFsdWU9e2ZhbHNlfVxuICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKG1lc3NhZ2VzLnNlYXJjaFBsYWNlaG9sZGVyKX1cbiAgICAgICAgbm9PcHRpb25zTWVzc2FnZT17KCkgPT4gaW50bC5mb3JtYXRNZXNzYWdlKG1lc3NhZ2VzLm5vUmVzdWx0cyl9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblByb2plY3RTd2l0Y2hlci5kaXNwbGF5TmFtZSA9ICdQcm9qZWN0U3dpdGNoZXInO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9qZWN0U3dpdGNoZXI7XG4iXX0= */"),
440
+ "data-track-component": "ProjectSwitch",
441
+ "data-track-event": "click",
442
+ children: [jsxRuntime.jsx(AccessibleHidden__default["default"], {
443
+ children: jsxRuntime.jsx("span", {
444
+ id: PROJECT_SWITCHER_LABEL_ID,
445
+ children: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$9({}, messages.projectsLabel))
446
+ })
447
+ }), jsxRuntime.jsx(SelectInput__default["default"], {
448
+ value: props.projectKey || '',
449
+ name: "project-switcher",
450
+ "aria-labelledby": PROJECT_SWITCHER_LABEL_ID,
451
+ onChange: event => {
452
+ const selectedProjectKey = event.target.value;
453
+
454
+ if (selectedProjectKey !== props.projectKey) {
455
+ var _window$app$__DEVELOP, _window$app$__DEVELOP2;
456
+
457
+ if ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP !== void 0 && (_window$app$__DEVELOP2 = _window$app$__DEVELOP.oidc) !== null && _window$app$__DEVELOP2 !== void 0 && _window$app$__DEVELOP2.authorizeUrl) {
458
+ configureApollo.setActiveProjectKey(selectedProjectKey);
459
+ } // We simply redirect to a "new" browser page, instead of using the
460
+ // history router. This will simplify a lot of things and avoid possible
461
+ // problems like e.g. resetting the store/state.
462
+
463
+
464
+ redirectTo("/".concat(selectedProjectKey));
465
+ }
466
+ },
467
+ options: data && data.user && mapProjectsToOptions(data.user.projects.results),
468
+ isOptionDisabled: option => {
469
+ const project = option;
470
+ return project.suspension.isActive || project.expiry.isActive;
471
+ },
472
+ components: {
473
+ Option: ProjectSwitcherOption,
474
+ ValueContainer: valueContainerProps => jsxRuntime.jsx(ProjectSwitcherValueContainer, _objectSpread$9(_objectSpread$9({}, valueContainerProps), {}, {
475
+ projectCount: data && data.user && data.user.projects.results.length || 0
476
+ }))
477
+ },
478
+ isClearable: false,
479
+ backspaceRemovesValue: false,
480
+ placeholder: intl.formatMessage(messages.searchPlaceholder),
481
+ noOptionsMessage: () => intl.formatMessage(messages.noResults)
482
+ })]
483
+ });
484
+ };
485
+
486
+ ProjectSwitcher.displayName = 'ProjectSwitcher';
487
+
488
+ // eslint-disable-next-line import/prefer-default-export
489
+ const REQUESTS_IN_FLIGHT_LOADER_DOM_ID = 'loader-for-requests-in-flight';
490
+
491
+ const UserSettingsMenu = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./user-settings-menu-79d4cb1e.cjs.dev.js'
492
+ /* webpackChunkName: "user-settings-menu" */
493
+ ); }));
494
+
495
+ function _EMOTION_STRINGIFIED_CSS_ERROR__$3() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
496
+
497
+ var _ref$1 = process.env.NODE_ENV === "production" ? {
498
+ name: "36bnqj",
499
+ styles: "display:flex;flex:1"
500
+ } : {
501
+ name: "p3e2aw-AppBar",
502
+ styles: "display:flex;flex:1;label:AppBar;",
503
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZEa0IiLCJmaWxlIjoiYXBwLWJhci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIGFwcEtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IExvZ29TVkcgZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXNzZXRzL2ltYWdlcy9sb2dvLnN2Zyc7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgYXMgdWlraXREZXNpZ25Ub2tlbnMgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCBTcGFjaW5ncyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zcGFjaW5ncyc7XG5pbXBvcnQgeyBDT05UQUlORVJTLCBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEZldGNoTG9nZ2VkSW5Vc2VyUXVlcnkgfSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvbWMnO1xuaW1wb3J0IHsgZ2V0UHJldmlvdXNQcm9qZWN0S2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IEJhY2tUb1Byb2plY3QgZnJvbSAnLi4vYmFjay10by1wcm9qZWN0JztcbmltcG9ydCBMb2FkaW5nUGxhY2Vob2xkZXIgZnJvbSAnLi4vbG9hZGluZy1wbGFjZWhvbGRlcic7XG5pbXBvcnQgUHJvamVjdFN3aXRjaGVyIGZyb20gJy4uL3Byb2plY3Qtc3dpdGNoZXInO1xuaW1wb3J0IHsgUkVRVUVTVFNfSU5fRkxJR0hUX0xPQURFUl9ET01fSUQgfSBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyL2NvbnN0YW50cyc7XG5pbXBvcnQgVXNlclNldHRpbmdzTWVudSBmcm9tICcuLi91c2VyLXNldHRpbmdzLW1lbnUnO1xuXG50eXBlIFByb3BzID0ge1xuICB1c2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddO1xuICBwcm9qZWN0S2V5RnJvbVVybD86IHN0cmluZztcbn07XG5cbmNvbnN0IEFwcEJhciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID0gZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgIHByb3BzLnVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/IHVuZGVmaW5lZFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dWlraXREZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgYm94LXNoYWRvdzogJHthcHBLaXREZXNpZ25Ub2tlbnMuc2hhZG93Rm9yQXBwYmFyfTtcbiAgICAgICAgbWluLWhlaWdodDogJHtESU1FTlNJT05TLmhlYWRlcn07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDIwMDAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBgfVxuICAgICAgZGF0YS10ZXN0PVwidG9wLW5hdmlnYXRpb25cIlxuICAgID5cbiAgICAgIDxTcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7IXByb3BzLnVzZXIgPyAoXG4gICAgICAgICAgICA8aW1nIHNyYz17TG9nb1NWR30gd2lkdGg9XCIxMDAlXCIgYWx0PVwiTG9nb1wiIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxhIGhyZWY9e2AvJHtwcmV2aW91c1Byb2plY3RLZXkgfHwgJyd9YH0+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9e1JFUVVFU1RTX0lOX0ZMSUdIVF9MT0FERVJfRE9NX0lEfVxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgYH1cbiAgICAgICAgLz5cbiAgICAgIDwvU3BhY2luZ3MuSW5saW5lPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR7YXBwS2l0RGVzaWduVG9rZW5zLm1hcmdpblJpZ2h0Rm9yQXBwYmFyfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJtXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJtXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgey8qIFRoaXMgbm9kZSBpcyB1c2VkIGJ5IGEgcmVhY3QgcG9ydGFsICovfVxuICAgICAgICAgICAgPGRpdiBpZD17Q09OVEFJTkVSUy5MT0NBTEVfU1dJVENIRVJ9IC8+XG4gICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFwcm9wcy51c2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJyZWN0XCIgc2l6ZT1cInNcIiAvPjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBUaGUgYDxQcm9qZWN0U3dpdGNoZXI+YCBzaG91bGQgYmUgcmVuZGVyZWQgb25seSBpZiB0aGVcbiAgICAgICAgICAgICAgLy8gdXNlciBpcyBmZXRjaGVkIGFuZCB0aGUgdXNlciBoYXMgcHJvamVjdHMgd2hpbGUgdGhlIGFwcCBydW5zIGluIGFuIHByb2plY3QgY29udGV4dC5cbiAgICAgICAgICAgICAgaWYgKHByb3BzLnVzZXIucHJvamVjdHMudG90YWwgPiAwICYmIHByb3BzLnByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyXG4gICAgICAgICAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gY2hlY2sgaWYgdGhlIGBwcm9qZWN0S2V5YCBwYXJhbVxuICAgICAgICAgICAgICAgICAgICAvLyBpcyBpbmNsdWRlZCBpbiB0aGUgbGlzdCBvZiBwcm9qZWN0cy4gSW4gc3VjaCBjYXNlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkcm9wZG93biB3aWxsIHN0aWxsIGJlIHJlbmRlcmVkIGJ1dCBubyBwcm9qZWN0IHdpbGwgYmUgc2VsZWN0ZWQuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgZmluZSBiZWNhc2UgdGhlIHVzZXIgaGFzIHN0aWxsIHRoZSBwb3NzaWJpbGl0eSB0byBcInN3aXRjaFwiXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvIGEgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvcHMucHJvamVjdEtleUZyb21VcmwgfHwgcHJldmlvdXNQcm9qZWN0S2V5fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoIXByb3BzLnVzZXIuZGVmYXVsdFByb2plY3RLZXkpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICByZXR1cm4gPEJhY2tUb1Byb2plY3QgcHJvamVjdEtleT17cHJldmlvdXNQcm9qZWN0S2V5fSAvPjtcbiAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggJHt1aWtpdERlc2lnblRva2Vucy5jb2xvck5ldXRyYWw5MH0gc29saWQ7XG4gICAgICAgICAgICAgIGhlaWdodDogJHtESU1FTlNJT05TLmhlYWRlckl0ZW1EaXZpZGVyfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7cHJvcHMudXNlciA/IChcbiAgICAgICAgICAgIDxVc2VyU2V0dGluZ3NNZW51XG4gICAgICAgICAgICAgIGxhbmd1YWdlPXtwcm9wcy51c2VyLmxhbmd1YWdlfVxuICAgICAgICAgICAgICBmaXJzdE5hbWU9e3Byb3BzLnVzZXIuZmlyc3ROYW1lfVxuICAgICAgICAgICAgICBsYXN0TmFtZT17cHJvcHMudXNlci5sYXN0TmFtZX1cbiAgICAgICAgICAgICAgZ3JhdmF0YXJIYXNoPXtwcm9wcy51c2VyLmdyYXZhdGFySGFzaH1cbiAgICAgICAgICAgICAgZW1haWw9e3Byb3BzLnVzZXIuZW1haWx9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8TG9hZGluZ1BsYWNlaG9sZGVyIHNoYXBlPVwiZG90XCIgc2l6ZT1cImxcIiAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3BhY2luZ3MuSW5saW5lPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuQXBwQmFyLmRpc3BsYXlOYW1lID0gJ0FwcEJhcic7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcEJhcjtcbiJdfQ== */",
504
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$3
505
+ };
506
+
507
+ var _ref2$1 = process.env.NODE_ENV === "production" ? {
508
+ name: "hlihg7",
509
+ styles: "display:block;float:left;width:28px;height:32px;margin-left:20px"
510
+ } : {
511
+ name: "13ix1q4-AppBar",
512
+ styles: "display:block;float:left;width:28px;height:32px;margin-left:20px;label:AppBar;",
513
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBDa0IiLCJmaWxlIjoiYXBwLWJhci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIGFwcEtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IExvZ29TVkcgZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXNzZXRzL2ltYWdlcy9sb2dvLnN2Zyc7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgYXMgdWlraXREZXNpZ25Ub2tlbnMgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCBTcGFjaW5ncyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zcGFjaW5ncyc7XG5pbXBvcnQgeyBDT05UQUlORVJTLCBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEZldGNoTG9nZ2VkSW5Vc2VyUXVlcnkgfSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvbWMnO1xuaW1wb3J0IHsgZ2V0UHJldmlvdXNQcm9qZWN0S2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IEJhY2tUb1Byb2plY3QgZnJvbSAnLi4vYmFjay10by1wcm9qZWN0JztcbmltcG9ydCBMb2FkaW5nUGxhY2Vob2xkZXIgZnJvbSAnLi4vbG9hZGluZy1wbGFjZWhvbGRlcic7XG5pbXBvcnQgUHJvamVjdFN3aXRjaGVyIGZyb20gJy4uL3Byb2plY3Qtc3dpdGNoZXInO1xuaW1wb3J0IHsgUkVRVUVTVFNfSU5fRkxJR0hUX0xPQURFUl9ET01fSUQgfSBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyL2NvbnN0YW50cyc7XG5pbXBvcnQgVXNlclNldHRpbmdzTWVudSBmcm9tICcuLi91c2VyLXNldHRpbmdzLW1lbnUnO1xuXG50eXBlIFByb3BzID0ge1xuICB1c2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddO1xuICBwcm9qZWN0S2V5RnJvbVVybD86IHN0cmluZztcbn07XG5cbmNvbnN0IEFwcEJhciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID0gZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgIHByb3BzLnVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/IHVuZGVmaW5lZFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dWlraXREZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgYm94LXNoYWRvdzogJHthcHBLaXREZXNpZ25Ub2tlbnMuc2hhZG93Rm9yQXBwYmFyfTtcbiAgICAgICAgbWluLWhlaWdodDogJHtESU1FTlNJT05TLmhlYWRlcn07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDIwMDAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBgfVxuICAgICAgZGF0YS10ZXN0PVwidG9wLW5hdmlnYXRpb25cIlxuICAgID5cbiAgICAgIDxTcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7IXByb3BzLnVzZXIgPyAoXG4gICAgICAgICAgICA8aW1nIHNyYz17TG9nb1NWR30gd2lkdGg9XCIxMDAlXCIgYWx0PVwiTG9nb1wiIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxhIGhyZWY9e2AvJHtwcmV2aW91c1Byb2plY3RLZXkgfHwgJyd9YH0+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9e1JFUVVFU1RTX0lOX0ZMSUdIVF9MT0FERVJfRE9NX0lEfVxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgYH1cbiAgICAgICAgLz5cbiAgICAgIDwvU3BhY2luZ3MuSW5saW5lPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR7YXBwS2l0RGVzaWduVG9rZW5zLm1hcmdpblJpZ2h0Rm9yQXBwYmFyfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJtXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJtXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgey8qIFRoaXMgbm9kZSBpcyB1c2VkIGJ5IGEgcmVhY3QgcG9ydGFsICovfVxuICAgICAgICAgICAgPGRpdiBpZD17Q09OVEFJTkVSUy5MT0NBTEVfU1dJVENIRVJ9IC8+XG4gICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFwcm9wcy51c2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJyZWN0XCIgc2l6ZT1cInNcIiAvPjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBUaGUgYDxQcm9qZWN0U3dpdGNoZXI+YCBzaG91bGQgYmUgcmVuZGVyZWQgb25seSBpZiB0aGVcbiAgICAgICAgICAgICAgLy8gdXNlciBpcyBmZXRjaGVkIGFuZCB0aGUgdXNlciBoYXMgcHJvamVjdHMgd2hpbGUgdGhlIGFwcCBydW5zIGluIGFuIHByb2plY3QgY29udGV4dC5cbiAgICAgICAgICAgICAgaWYgKHByb3BzLnVzZXIucHJvamVjdHMudG90YWwgPiAwICYmIHByb3BzLnByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyXG4gICAgICAgICAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gY2hlY2sgaWYgdGhlIGBwcm9qZWN0S2V5YCBwYXJhbVxuICAgICAgICAgICAgICAgICAgICAvLyBpcyBpbmNsdWRlZCBpbiB0aGUgbGlzdCBvZiBwcm9qZWN0cy4gSW4gc3VjaCBjYXNlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkcm9wZG93biB3aWxsIHN0aWxsIGJlIHJlbmRlcmVkIGJ1dCBubyBwcm9qZWN0IHdpbGwgYmUgc2VsZWN0ZWQuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgZmluZSBiZWNhc2UgdGhlIHVzZXIgaGFzIHN0aWxsIHRoZSBwb3NzaWJpbGl0eSB0byBcInN3aXRjaFwiXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvIGEgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvcHMucHJvamVjdEtleUZyb21VcmwgfHwgcHJldmlvdXNQcm9qZWN0S2V5fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoIXByb3BzLnVzZXIuZGVmYXVsdFByb2plY3RLZXkpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICByZXR1cm4gPEJhY2tUb1Byb2plY3QgcHJvamVjdEtleT17cHJldmlvdXNQcm9qZWN0S2V5fSAvPjtcbiAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggJHt1aWtpdERlc2lnblRva2Vucy5jb2xvck5ldXRyYWw5MH0gc29saWQ7XG4gICAgICAgICAgICAgIGhlaWdodDogJHtESU1FTlNJT05TLmhlYWRlckl0ZW1EaXZpZGVyfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7cHJvcHMudXNlciA/IChcbiAgICAgICAgICAgIDxVc2VyU2V0dGluZ3NNZW51XG4gICAgICAgICAgICAgIGxhbmd1YWdlPXtwcm9wcy51c2VyLmxhbmd1YWdlfVxuICAgICAgICAgICAgICBmaXJzdE5hbWU9e3Byb3BzLnVzZXIuZmlyc3ROYW1lfVxuICAgICAgICAgICAgICBsYXN0TmFtZT17cHJvcHMudXNlci5sYXN0TmFtZX1cbiAgICAgICAgICAgICAgZ3JhdmF0YXJIYXNoPXtwcm9wcy51c2VyLmdyYXZhdGFySGFzaH1cbiAgICAgICAgICAgICAgZW1haWw9e3Byb3BzLnVzZXIuZW1haWx9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8TG9hZGluZ1BsYWNlaG9sZGVyIHNoYXBlPVwiZG90XCIgc2l6ZT1cImxcIiAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3BhY2luZ3MuSW5saW5lPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuQXBwQmFyLmRpc3BsYXlOYW1lID0gJ0FwcEJhcic7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcEJhcjtcbiJdfQ== */",
514
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$3
515
+ };
516
+
517
+ const AppBar = props => {
518
+ var _props$user$defaultPr, _props$user;
519
+
520
+ const previousProjectKey = getPreviousProjectKey((_props$user$defaultPr = (_props$user = props.user) === null || _props$user === void 0 ? void 0 : _props$user.defaultProjectKey) !== null && _props$user$defaultPr !== void 0 ? _props$user$defaultPr : undefined);
521
+ return jsxRuntime.jsxs("div", {
522
+ css: /*#__PURE__*/react$1.css("background-color:", designSystem.designTokens.colorSurface, ";box-shadow:", applicationComponents.designTokens.shadowForAppbar, ";min-height:", constants.DIMENSIONS.header, ";position:relative;width:100%;z-index:20000;display:flex;align-items:center;justify-content:space-between;" + (process.env.NODE_ENV === "production" ? "" : ";label:AppBar;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCYyIsImZpbGUiOiJhcHAtYmFyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IEByZWRlc2lnbiBjbGVhbnVwXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgYXMgYXBwS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tY29tcG9uZW50cyc7XG5pbXBvcnQgTG9nb1NWRyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2xvZ28uc3ZnJztcbmltcG9ydCB7IGRlc2lnblRva2VucyBhcyB1aWtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IFNwYWNpbmdzIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L3NwYWNpbmdzJztcbmltcG9ydCB7IENPTlRBSU5FUlMsIERJTUVOU0lPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQmFja1RvUHJvamVjdCBmcm9tICcuLi9iYWNrLXRvLXByb2plY3QnO1xuaW1wb3J0IExvYWRpbmdQbGFjZWhvbGRlciBmcm9tICcuLi9sb2FkaW5nLXBsYWNlaG9sZGVyJztcbmltcG9ydCBQcm9qZWN0U3dpdGNoZXIgZnJvbSAnLi4vcHJvamVjdC1zd2l0Y2hlcic7XG5pbXBvcnQgeyBSRVFVRVNUU19JTl9GTElHSFRfTE9BREVSX0RPTV9JRCB9IGZyb20gJy4uL3JlcXVlc3RzLWluLWZsaWdodC1sb2FkZXIvY29uc3RhbnRzJztcbmltcG9ydCBVc2VyU2V0dGluZ3NNZW51IGZyb20gJy4uL3VzZXItc2V0dGluZ3MtbWVudSc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ107XG4gIHByb2plY3RLZXlGcm9tVXJsPzogc3RyaW5nO1xufTtcblxuY29uc3QgQXBwQmFyID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPSBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgcHJvcHMudXNlcj8uZGVmYXVsdFByb2plY3RLZXkgPz8gdW5kZWZpbmVkXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt1aWtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICBib3gtc2hhZG93OiAke2FwcEtpdERlc2lnblRva2Vucy5zaGFkb3dGb3JBcHBiYXJ9O1xuICAgICAgICBtaW4taGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVyfTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMjAwMDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGB9XG4gICAgICBkYXRhLXRlc3Q9XCJ0b3AtbmF2aWdhdGlvblwiXG4gICAgPlxuICAgICAgPFNwYWNpbmdzLklubGluZT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgYH1cbiAgICAgICAgPlxuICAgICAgICAgIHshcHJvcHMudXNlciA/IChcbiAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPGEgaHJlZj17YC8ke3ByZXZpb3VzUHJvamVjdEtleSB8fCAnJ31gfT5cbiAgICAgICAgICAgICAgPGltZyBzcmM9e0xvZ29TVkd9IHdpZHRoPVwiMTAwJVwiIGFsdD1cIkxvZ29cIiAvPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD17UkVRVUVTVFNfSU5fRkxJR0hUX0xPQURFUl9ET01fSUR9XG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBgfVxuICAgICAgICAvPlxuICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogJHthcHBLaXREZXNpZ25Ub2tlbnMubWFyZ2luUmlnaHRGb3JBcHBiYXJ9O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgPFNwYWNpbmdzLklubGluZSBzY2FsZT1cIm1cIiBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICB7LyogVGhpcyBub2RlIGlzIHVzZWQgYnkgYSByZWFjdCBwb3J0YWwgKi99XG4gICAgICAgICAgICA8ZGl2IGlkPXtDT05UQUlORVJTLkxPQ0FMRV9TV0lUQ0hFUn0gLz5cbiAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXByb3BzLnVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPExvYWRpbmdQbGFjZWhvbGRlciBzaGFwZT1cInJlY3RcIiBzaXplPVwic1wiIC8+O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vIFRoZSBgPFByb2plY3RTd2l0Y2hlcj5gIHNob3VsZCBiZSByZW5kZXJlZCBvbmx5IGlmIHRoZVxuICAgICAgICAgICAgICAvLyB1c2VyIGlzIGZldGNoZWQgYW5kIHRoZSB1c2VyIGhhcyBwcm9qZWN0cyB3aGlsZSB0aGUgYXBwIHJ1bnMgaW4gYW4gcHJvamVjdCBjb250ZXh0LlxuICAgICAgICAgICAgICBpZiAocHJvcHMudXNlci5wcm9qZWN0cy50b3RhbCA+IDAgJiYgcHJvcHMucHJvamVjdEtleUZyb21VcmwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxQcm9qZWN0U3dpdGNoZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlIGl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjaGVjayBpZiB0aGUgYHByb2plY3RLZXlgIHBhcmFtXG4gICAgICAgICAgICAgICAgICAgIC8vIGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIHByb2plY3RzLiBJbiBzdWNoIGNhc2VcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRyb3Bkb3duIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgYnV0IG5vIHByb2plY3Qgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBmaW5lIGJlY2FzZSB0aGUgdXNlciBoYXMgc3RpbGwgdGhlIHBvc3NpYmlsaXR5IHRvIFwic3dpdGNoXCJcbiAgICAgICAgICAgICAgICAgICAgLy8gdG8gYSBwcm9qZWN0LlxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9wcy5wcm9qZWN0S2V5RnJvbVVybCB8fCBwcmV2aW91c1Byb2plY3RLZXl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghcHJvcHMudXNlci5kZWZhdWx0UHJvamVjdEtleSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIHJldHVybiA8QmFja1RvUHJvamVjdCBwcm9qZWN0S2V5PXtwcmV2aW91c1Byb2plY3RLZXl9IC8+O1xuICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICA8L1NwYWNpbmdzLklubGluZT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCAke3Vpa2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbDkwfSBzb2xpZDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAke0RJTUVOU0lPTlMuaGVhZGVySXRlbURpdmlkZXJ9O1xuICAgICAgICAgICAgYH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtwcm9wcy51c2VyID8gKFxuICAgICAgICAgICAgPFVzZXJTZXR0aW5nc01lbnVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U9e3Byb3BzLnVzZXIubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGZpcnN0TmFtZT17cHJvcHMudXNlci5maXJzdE5hbWV9XG4gICAgICAgICAgICAgIGxhc3ROYW1lPXtwcm9wcy51c2VyLmxhc3ROYW1lfVxuICAgICAgICAgICAgICBncmF2YXRhckhhc2g9e3Byb3BzLnVzZXIuZ3JhdmF0YXJIYXNofVxuICAgICAgICAgICAgICBlbWFpbD17cHJvcHMudXNlci5lbWFpbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJkb3RcIiBzaXplPVwibFwiIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5BcHBCYXIuZGlzcGxheU5hbWUgPSAnQXBwQmFyJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwQmFyO1xuIl19 */"),
523
+ "data-test": "top-navigation",
524
+ children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
525
+ children: [jsxRuntime.jsx("div", {
526
+ css: _ref2$1,
527
+ children: !props.user ? jsxRuntime.jsx("img", {
528
+ src: LogoSVG__default["default"],
529
+ width: "100%",
530
+ alt: "Logo"
531
+ }) : jsxRuntime.jsx("a", {
532
+ href: "/".concat(previousProjectKey || ''),
533
+ children: jsxRuntime.jsx("img", {
534
+ src: LogoSVG__default["default"],
535
+ width: "100%",
536
+ alt: "Logo"
537
+ })
538
+ })
539
+ }), jsxRuntime.jsx("div", {
540
+ id: REQUESTS_IN_FLIGHT_LOADER_DOM_ID,
541
+ css: _ref$1
542
+ })]
543
+ }), jsxRuntime.jsx("div", {
544
+ css: /*#__PURE__*/react$1.css("float:right;font-weight:normal;font-size:1rem;margin-right:", applicationComponents.designTokens.marginRightForAppbar, ";display:flex;align-items:center;" + (process.env.NODE_ENV === "production" ? "" : ";label:AppBar;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFFZ0IiLCJmaWxlIjoiYXBwLWJhci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIGFwcEtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IExvZ29TVkcgZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXNzZXRzL2ltYWdlcy9sb2dvLnN2Zyc7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgYXMgdWlraXREZXNpZ25Ub2tlbnMgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCBTcGFjaW5ncyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zcGFjaW5ncyc7XG5pbXBvcnQgeyBDT05UQUlORVJTLCBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEZldGNoTG9nZ2VkSW5Vc2VyUXVlcnkgfSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvbWMnO1xuaW1wb3J0IHsgZ2V0UHJldmlvdXNQcm9qZWN0S2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IEJhY2tUb1Byb2plY3QgZnJvbSAnLi4vYmFjay10by1wcm9qZWN0JztcbmltcG9ydCBMb2FkaW5nUGxhY2Vob2xkZXIgZnJvbSAnLi4vbG9hZGluZy1wbGFjZWhvbGRlcic7XG5pbXBvcnQgUHJvamVjdFN3aXRjaGVyIGZyb20gJy4uL3Byb2plY3Qtc3dpdGNoZXInO1xuaW1wb3J0IHsgUkVRVUVTVFNfSU5fRkxJR0hUX0xPQURFUl9ET01fSUQgfSBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyL2NvbnN0YW50cyc7XG5pbXBvcnQgVXNlclNldHRpbmdzTWVudSBmcm9tICcuLi91c2VyLXNldHRpbmdzLW1lbnUnO1xuXG50eXBlIFByb3BzID0ge1xuICB1c2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddO1xuICBwcm9qZWN0S2V5RnJvbVVybD86IHN0cmluZztcbn07XG5cbmNvbnN0IEFwcEJhciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID0gZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgIHByb3BzLnVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/IHVuZGVmaW5lZFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dWlraXREZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgYm94LXNoYWRvdzogJHthcHBLaXREZXNpZ25Ub2tlbnMuc2hhZG93Rm9yQXBwYmFyfTtcbiAgICAgICAgbWluLWhlaWdodDogJHtESU1FTlNJT05TLmhlYWRlcn07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDIwMDAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBgfVxuICAgICAgZGF0YS10ZXN0PVwidG9wLW5hdmlnYXRpb25cIlxuICAgID5cbiAgICAgIDxTcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7IXByb3BzLnVzZXIgPyAoXG4gICAgICAgICAgICA8aW1nIHNyYz17TG9nb1NWR30gd2lkdGg9XCIxMDAlXCIgYWx0PVwiTG9nb1wiIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxhIGhyZWY9e2AvJHtwcmV2aW91c1Byb2plY3RLZXkgfHwgJyd9YH0+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9e1JFUVVFU1RTX0lOX0ZMSUdIVF9MT0FERVJfRE9NX0lEfVxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgYH1cbiAgICAgICAgLz5cbiAgICAgIDwvU3BhY2luZ3MuSW5saW5lPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR7YXBwS2l0RGVzaWduVG9rZW5zLm1hcmdpblJpZ2h0Rm9yQXBwYmFyfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJtXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJtXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgey8qIFRoaXMgbm9kZSBpcyB1c2VkIGJ5IGEgcmVhY3QgcG9ydGFsICovfVxuICAgICAgICAgICAgPGRpdiBpZD17Q09OVEFJTkVSUy5MT0NBTEVfU1dJVENIRVJ9IC8+XG4gICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFwcm9wcy51c2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJyZWN0XCIgc2l6ZT1cInNcIiAvPjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBUaGUgYDxQcm9qZWN0U3dpdGNoZXI+YCBzaG91bGQgYmUgcmVuZGVyZWQgb25seSBpZiB0aGVcbiAgICAgICAgICAgICAgLy8gdXNlciBpcyBmZXRjaGVkIGFuZCB0aGUgdXNlciBoYXMgcHJvamVjdHMgd2hpbGUgdGhlIGFwcCBydW5zIGluIGFuIHByb2plY3QgY29udGV4dC5cbiAgICAgICAgICAgICAgaWYgKHByb3BzLnVzZXIucHJvamVjdHMudG90YWwgPiAwICYmIHByb3BzLnByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyXG4gICAgICAgICAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gY2hlY2sgaWYgdGhlIGBwcm9qZWN0S2V5YCBwYXJhbVxuICAgICAgICAgICAgICAgICAgICAvLyBpcyBpbmNsdWRlZCBpbiB0aGUgbGlzdCBvZiBwcm9qZWN0cy4gSW4gc3VjaCBjYXNlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkcm9wZG93biB3aWxsIHN0aWxsIGJlIHJlbmRlcmVkIGJ1dCBubyBwcm9qZWN0IHdpbGwgYmUgc2VsZWN0ZWQuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgZmluZSBiZWNhc2UgdGhlIHVzZXIgaGFzIHN0aWxsIHRoZSBwb3NzaWJpbGl0eSB0byBcInN3aXRjaFwiXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvIGEgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvcHMucHJvamVjdEtleUZyb21VcmwgfHwgcHJldmlvdXNQcm9qZWN0S2V5fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoIXByb3BzLnVzZXIuZGVmYXVsdFByb2plY3RLZXkpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICByZXR1cm4gPEJhY2tUb1Byb2plY3QgcHJvamVjdEtleT17cHJldmlvdXNQcm9qZWN0S2V5fSAvPjtcbiAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggJHt1aWtpdERlc2lnblRva2Vucy5jb2xvck5ldXRyYWw5MH0gc29saWQ7XG4gICAgICAgICAgICAgIGhlaWdodDogJHtESU1FTlNJT05TLmhlYWRlckl0ZW1EaXZpZGVyfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7cHJvcHMudXNlciA/IChcbiAgICAgICAgICAgIDxVc2VyU2V0dGluZ3NNZW51XG4gICAgICAgICAgICAgIGxhbmd1YWdlPXtwcm9wcy51c2VyLmxhbmd1YWdlfVxuICAgICAgICAgICAgICBmaXJzdE5hbWU9e3Byb3BzLnVzZXIuZmlyc3ROYW1lfVxuICAgICAgICAgICAgICBsYXN0TmFtZT17cHJvcHMudXNlci5sYXN0TmFtZX1cbiAgICAgICAgICAgICAgZ3JhdmF0YXJIYXNoPXtwcm9wcy51c2VyLmdyYXZhdGFySGFzaH1cbiAgICAgICAgICAgICAgZW1haWw9e3Byb3BzLnVzZXIuZW1haWx9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8TG9hZGluZ1BsYWNlaG9sZGVyIHNoYXBlPVwiZG90XCIgc2l6ZT1cImxcIiAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3BhY2luZ3MuSW5saW5lPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuQXBwQmFyLmRpc3BsYXlOYW1lID0gJ0FwcEJhcic7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcEJhcjtcbiJdfQ== */"),
545
+ children: jsxRuntime.jsxs(Spacings__default["default"].Inline, {
546
+ scale: "m",
547
+ alignItems: "center",
548
+ children: [jsxRuntime.jsxs(Spacings__default["default"].Inline, {
549
+ scale: "m",
550
+ alignItems: "center",
551
+ children: [jsxRuntime.jsx("div", {
552
+ id: constants.CONTAINERS.LOCALE_SWITCHER
553
+ }), (() => {
554
+ if (!props.user) {
555
+ return jsxRuntime.jsx(LoadingPlaceholder, {
556
+ shape: "rect",
557
+ size: "s"
558
+ });
559
+ } // The `<ProjectSwitcher>` should be rendered only if the
560
+ // user is fetched and the user has projects while the app runs in an project context.
561
+
562
+
563
+ if (props.user.projects.total > 0 && props.projectKeyFromUrl) return jsxRuntime.jsx(ProjectSwitcher // In this case it's not necessary to check if the `projectKey` param
564
+ // is included in the list of projects. In such case
565
+ // the dropdown will still be rendered but no project will be selected.
566
+ // This is fine becase the user has still the possibility to "switch"
567
+ // to a project.
568
+ , {
569
+ projectKey: props.projectKeyFromUrl || previousProjectKey
570
+ });
571
+ if (!props.user.defaultProjectKey) return null;
572
+ return jsxRuntime.jsx(BackToProject, {
573
+ projectKey: previousProjectKey
574
+ });
575
+ })()]
576
+ }), jsxRuntime.jsx("div", {
577
+ css: /*#__PURE__*/react$1.css("border-left:1px ", designSystem.designTokens.colorNeutral90, " solid;height:", constants.DIMENSIONS.headerItemDivider, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:AppBar;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdHb0IiLCJmaWxlIjoiYXBwLWJhci50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBAcmVkZXNpZ24gY2xlYW51cFxuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIGFwcEtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IExvZ29TVkcgZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXNzZXRzL2ltYWdlcy9sb2dvLnN2Zyc7XG5pbXBvcnQgeyBkZXNpZ25Ub2tlbnMgYXMgdWlraXREZXNpZ25Ub2tlbnMgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9kZXNpZ24tc3lzdGVtJztcbmltcG9ydCBTcGFjaW5ncyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zcGFjaW5ncyc7XG5pbXBvcnQgeyBDT05UQUlORVJTLCBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEZldGNoTG9nZ2VkSW5Vc2VyUXVlcnkgfSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvbWMnO1xuaW1wb3J0IHsgZ2V0UHJldmlvdXNQcm9qZWN0S2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IEJhY2tUb1Byb2plY3QgZnJvbSAnLi4vYmFjay10by1wcm9qZWN0JztcbmltcG9ydCBMb2FkaW5nUGxhY2Vob2xkZXIgZnJvbSAnLi4vbG9hZGluZy1wbGFjZWhvbGRlcic7XG5pbXBvcnQgUHJvamVjdFN3aXRjaGVyIGZyb20gJy4uL3Byb2plY3Qtc3dpdGNoZXInO1xuaW1wb3J0IHsgUkVRVUVTVFNfSU5fRkxJR0hUX0xPQURFUl9ET01fSUQgfSBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyL2NvbnN0YW50cyc7XG5pbXBvcnQgVXNlclNldHRpbmdzTWVudSBmcm9tICcuLi91c2VyLXNldHRpbmdzLW1lbnUnO1xuXG50eXBlIFByb3BzID0ge1xuICB1c2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddO1xuICBwcm9qZWN0S2V5RnJvbVVybD86IHN0cmluZztcbn07XG5cbmNvbnN0IEFwcEJhciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID0gZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgIHByb3BzLnVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/IHVuZGVmaW5lZFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dWlraXREZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgYm94LXNoYWRvdzogJHthcHBLaXREZXNpZ25Ub2tlbnMuc2hhZG93Rm9yQXBwYmFyfTtcbiAgICAgICAgbWluLWhlaWdodDogJHtESU1FTlNJT05TLmhlYWRlcn07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDIwMDAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBgfVxuICAgICAgZGF0YS10ZXN0PVwidG9wLW5hdmlnYXRpb25cIlxuICAgID5cbiAgICAgIDxTcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgIGB9XG4gICAgICAgID5cbiAgICAgICAgICB7IXByb3BzLnVzZXIgPyAoXG4gICAgICAgICAgICA8aW1nIHNyYz17TG9nb1NWR30gd2lkdGg9XCIxMDAlXCIgYWx0PVwiTG9nb1wiIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxhIGhyZWY9e2AvJHtwcmV2aW91c1Byb2plY3RLZXkgfHwgJyd9YH0+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtMb2dvU1ZHfSB3aWR0aD1cIjEwMCVcIiBhbHQ9XCJMb2dvXCIgLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9e1JFUVVFU1RTX0lOX0ZMSUdIVF9MT0FERVJfRE9NX0lEfVxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgYH1cbiAgICAgICAgLz5cbiAgICAgIDwvU3BhY2luZ3MuSW5saW5lPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICR7YXBwS2l0RGVzaWduVG9rZW5zLm1hcmdpblJpZ2h0Rm9yQXBwYmFyfTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJtXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJtXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgey8qIFRoaXMgbm9kZSBpcyB1c2VkIGJ5IGEgcmVhY3QgcG9ydGFsICovfVxuICAgICAgICAgICAgPGRpdiBpZD17Q09OVEFJTkVSUy5MT0NBTEVfU1dJVENIRVJ9IC8+XG4gICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFwcm9wcy51c2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJyZWN0XCIgc2l6ZT1cInNcIiAvPjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBUaGUgYDxQcm9qZWN0U3dpdGNoZXI+YCBzaG91bGQgYmUgcmVuZGVyZWQgb25seSBpZiB0aGVcbiAgICAgICAgICAgICAgLy8gdXNlciBpcyBmZXRjaGVkIGFuZCB0aGUgdXNlciBoYXMgcHJvamVjdHMgd2hpbGUgdGhlIGFwcCBydW5zIGluIGFuIHByb2plY3QgY29udGV4dC5cbiAgICAgICAgICAgICAgaWYgKHByb3BzLnVzZXIucHJvamVjdHMudG90YWwgPiAwICYmIHByb3BzLnByb2plY3RLZXlGcm9tVXJsKVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8UHJvamVjdFN3aXRjaGVyXG4gICAgICAgICAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gY2hlY2sgaWYgdGhlIGBwcm9qZWN0S2V5YCBwYXJhbVxuICAgICAgICAgICAgICAgICAgICAvLyBpcyBpbmNsdWRlZCBpbiB0aGUgbGlzdCBvZiBwcm9qZWN0cy4gSW4gc3VjaCBjYXNlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkcm9wZG93biB3aWxsIHN0aWxsIGJlIHJlbmRlcmVkIGJ1dCBubyBwcm9qZWN0IHdpbGwgYmUgc2VsZWN0ZWQuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgZmluZSBiZWNhc2UgdGhlIHVzZXIgaGFzIHN0aWxsIHRoZSBwb3NzaWJpbGl0eSB0byBcInN3aXRjaFwiXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvIGEgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvcHMucHJvamVjdEtleUZyb21VcmwgfHwgcHJldmlvdXNQcm9qZWN0S2V5fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoIXByb3BzLnVzZXIuZGVmYXVsdFByb2plY3RLZXkpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICByZXR1cm4gPEJhY2tUb1Byb2plY3QgcHJvamVjdEtleT17cHJldmlvdXNQcm9qZWN0S2V5fSAvPjtcbiAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggJHt1aWtpdERlc2lnblRva2Vucy5jb2xvck5ldXRyYWw5MH0gc29saWQ7XG4gICAgICAgICAgICAgIGhlaWdodDogJHtESU1FTlNJT05TLmhlYWRlckl0ZW1EaXZpZGVyfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7cHJvcHMudXNlciA/IChcbiAgICAgICAgICAgIDxVc2VyU2V0dGluZ3NNZW51XG4gICAgICAgICAgICAgIGxhbmd1YWdlPXtwcm9wcy51c2VyLmxhbmd1YWdlfVxuICAgICAgICAgICAgICBmaXJzdE5hbWU9e3Byb3BzLnVzZXIuZmlyc3ROYW1lfVxuICAgICAgICAgICAgICBsYXN0TmFtZT17cHJvcHMudXNlci5sYXN0TmFtZX1cbiAgICAgICAgICAgICAgZ3JhdmF0YXJIYXNoPXtwcm9wcy51c2VyLmdyYXZhdGFySGFzaH1cbiAgICAgICAgICAgICAgZW1haWw9e3Byb3BzLnVzZXIuZW1haWx9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8TG9hZGluZ1BsYWNlaG9sZGVyIHNoYXBlPVwiZG90XCIgc2l6ZT1cImxcIiAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3BhY2luZ3MuSW5saW5lPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuQXBwQmFyLmRpc3BsYXlOYW1lID0gJ0FwcEJhcic7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcEJhcjtcbiJdfQ== */")
578
+ }), props.user ? jsxRuntime.jsx(UserSettingsMenu, {
579
+ language: props.user.language,
580
+ firstName: props.user.firstName,
581
+ lastName: props.user.lastName,
582
+ gravatarHash: props.user.gravatarHash,
583
+ email: props.user.email
584
+ }) : jsxRuntime.jsx(LoadingPlaceholder, {
585
+ shape: "dot",
586
+ size: "l"
587
+ })]
588
+ })
589
+ })]
590
+ });
591
+ };
592
+
593
+ AppBar.displayName = 'AppBar';
594
+
595
+ const ApplicationLoader = props => jsxRuntime.jsxs("div", {
596
+ css: /*#__PURE__*/react$1.css("display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column;height:100vh;padding:", designSystem.customProperties.spacingL, ";>*+*{margin:", designSystem.customProperties.spacingL, " 0 0;}" + (process.env.NODE_ENV === "production" ? "" : ";label:ApplicationLoader;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLWxvYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV1kiLCJmaWxlIjoiYXBwbGljYXRpb24tbG9hZGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBDVExvZ29TVkcgZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXNzZXRzL2ltYWdlcy9jdC1sb2dvLnN2Zyc7XG5pbXBvcnQgeyBjdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgTG9hZGluZ1NwaW5uZXIgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvbG9hZGluZy1zcGlubmVyJztcblxudHlwZSBQcm9wcyA9IHtcbiAgc2hvd0xvZ28/OiBib29sZWFuO1xufTtcblxuY29uc3QgQXBwbGljYXRpb25Mb2FkZXIgPSAocHJvcHM6IFByb3BzKSA9PiAoXG4gIDxkaXZcbiAgICBjc3M9e2Nzc2BcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmbGV4OiAxO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZ0x9O1xuXG4gICAgICA+ICogKyAqIHtcbiAgICAgICAgbWFyZ2luOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZ0x9IDAgMDtcbiAgICAgIH1cbiAgICBgfVxuICAgIGRhdGEtdGVzdGlkPVwiYXBwbGljYXRpb24tbG9hZGVyXCJcbiAgPlxuICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxuICAgIHtwcm9wcy5zaG93TG9nbyA9PT0gdHJ1ZSA/IChcbiAgICAgIDxpbWcgYWx0PVwiY29tbWVyY2V0b29scyBsb2dvXCIgc3JjPXtDVExvZ29TVkd9IC8+XG4gICAgKSA6IG51bGx9XG4gIDwvZGl2PlxuKTtcbkFwcGxpY2F0aW9uTG9hZGVyLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uTG9hZGVyJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25Mb2FkZXI7XG4iXX0= */"),
597
+ "data-testid": "application-loader",
598
+ children: [jsxRuntime.jsx(LoadingSpinner__default["default"], {}), props.showLogo === true ? jsxRuntime.jsx("img", {
599
+ alt: "commercetools logo",
600
+ src: CTLogoSVG__default["default"]
601
+ }) : null]
602
+ });
603
+
604
+ ApplicationLoader.displayName = 'ApplicationLoader';
605
+
606
+ const getBrowserLocale = win => {
607
+ const browserLocale = win && win.navigator && win.navigator.language;
608
+ return l10n.getSupportedLocale(browserLocale);
609
+ };
610
+
611
+ const hideAppLoader = () => {
612
+ /**
613
+ * NOTE:
614
+ * This function is defined in the `index.html` in a script-tag
615
+ * by the `html-template.js` in the `mc-scripts`. There are
616
+ * alternative ways of acheiving this namely:
617
+ * 1. Using custom events and dispatching here
618
+ * - Not supported in IE11 and would need a polyfill
619
+ * 2. Removing the DOM node here
620
+ * - Both `index.html` and this component would have to
621
+ * now the div's id/class. If one would change the index.html
622
+ * the app would never show (always show the loading screen)
623
+ */
624
+ if (window.onAppLoaded) window.onAppLoaded();
625
+ };
626
+
627
+ const ConfigureIntlProvider = props => {
628
+ react.useEffect(() => {
629
+ if (props.locale) {
630
+ hideAppLoader();
631
+ }
632
+ }, [props.locale]);
633
+
634
+ if (!props.locale) {
635
+ return null;
636
+ }
637
+
638
+ return jsxRuntime.jsx(reactIntl.IntlProvider, {
639
+ locale: props.locale,
640
+ messages: props.messages,
641
+ children: props.children
642
+ });
643
+ };
644
+
645
+ ConfigureIntlProvider.propTypes = process.env.NODE_ENV !== "production" ? {
646
+ locale: _pt__default["default"].string,
647
+ children: _pt__default["default"].node.isRequired
648
+ } : {};
649
+ ConfigureIntlProvider.displayName = 'ConfigureIntlProvider';
650
+
651
+ const ErrorApologizer = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./error-apologizer-c336db61.cjs.dev.js'
652
+ /* webpackChunkName: "error-apologizer" */
653
+ ); }));
654
+
655
+ var ProjectQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchProject" }, variableDefinitions: [{ kind: "VariableDefinition", variable: { kind: "Variable", name: { kind: "Name", value: "projectKey" } }, type: { kind: "NamedType", name: { kind: "Name", value: "String" } }, directives: [] }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "project" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "key" }, value: { kind: "Variable", name: { kind: "Name", value: "projectKey" } } }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "version" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "countries" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "currencies" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "languages" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "initialized" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "expiry" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "daysLeft" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "suspension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "reason" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedPermissions" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedActionRights" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedDataFences" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "StoreDataFence" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "type" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "__typename" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "allPermissionsForAllApplications" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "allAppliedPermissions" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedActionRights" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedMenuVisibilities" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "allAppliedDataFences" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "InlineFragment", typeCondition: { kind: "NamedType", name: { kind: "Name", value: "StoreDataFence" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "type" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "__typename" }, arguments: [], directives: [] }] } }] } }] } }, { kind: "Field", name: { kind: "Name", value: "owner" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }] } }] } }] } }], loc: { start: 0, end: 997, source: { body: "query FetchProject($projectKey: String) {\n project(key: $projectKey) {\n key\n version\n name\n countries\n currencies\n languages\n initialized\n expiry {\n isActive\n daysLeft\n }\n suspension {\n isActive\n reason\n }\n allAppliedPermissions {\n name\n value\n }\n allAppliedActionRights {\n group\n name\n value\n }\n allAppliedDataFences {\n ... on StoreDataFence {\n type\n name\n value\n group\n __typename\n }\n }\n allPermissionsForAllApplications {\n allAppliedPermissions {\n name\n value\n }\n allAppliedActionRights {\n group\n name\n value\n }\n allAppliedMenuVisibilities {\n name\n value\n }\n allAppliedDataFences {\n ... on StoreDataFence {\n type\n name\n value\n group\n __typename\n }\n }\n }\n owner {\n id\n name\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
656
+
657
+ const FetchProject = props => {
658
+ const _useMcQuery = useMcQuery(ProjectQuery, {
659
+ onError: sentry.reportErrorToSentry,
660
+ variables: {
661
+ projectKey: props.projectKey
662
+ },
663
+ context: {
664
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
665
+ },
666
+ skip: props.skip === true
667
+ }),
668
+ loading = _useMcQuery.loading,
669
+ data = _useMcQuery.data,
670
+ error = _useMcQuery.error;
671
+
672
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
673
+ children: props.children({
674
+ isLoading: loading,
675
+ error,
676
+ project: data && data.project
677
+ })
678
+ });
679
+ };
680
+
681
+ FetchProject.propTypes = {
682
+ projectKey: _pt__default["default"].string,
683
+ skip: _pt__default["default"].bool,
684
+ children: _pt__default["default"].func.isRequired
685
+ };
686
+ FetchProject.displayName = 'FetchProject';
687
+
688
+ var LoggedInUserQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchLoggedInUser" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", alias: { kind: "Name", value: "user" }, name: { kind: "Name", value: "me" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "email" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "createdAt" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "gravatarHash" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "firstName" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "lastName" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "language" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "numberFormat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "timeZone" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingGroup" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingSubgroup" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingTeam" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "launchdarklyTrackingTenant" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultProjectKey" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "businessRole" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "projects" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "total" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "results" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "suspension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "expiry" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "isActive" }, arguments: [], directives: [] }] } }] } }] } }, { kind: "Field", name: { kind: "Name", value: "idTokenUserInfo" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "iss" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "sub" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "aud" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "exp" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "iat" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "email" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "additionalClaims" }, arguments: [], directives: [] }] } }] } }] } }], loc: { start: 0, end: 654, source: { body: "query FetchLoggedInUser {\n user: me {\n id\n email\n createdAt\n gravatarHash\n firstName\n lastName\n language\n numberFormat\n timeZone\n launchdarklyTrackingId\n launchdarklyTrackingGroup\n launchdarklyTrackingSubgroup\n launchdarklyTrackingTeam\n launchdarklyTrackingTenant\n defaultProjectKey\n businessRole\n projects {\n total\n results {\n name\n key\n suspension {\n isActive\n }\n expiry {\n isActive\n }\n }\n }\n idTokenUserInfo {\n iss\n sub\n aud\n exp\n iat\n email\n name\n additionalClaims\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
689
+
690
+ const FetchUser = props => {
691
+ const _useMcQuery = useMcQuery(LoggedInUserQuery, {
692
+ onError: sentry.reportErrorToSentry,
693
+ context: {
694
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
695
+ }
696
+ }),
697
+ loading = _useMcQuery.loading,
698
+ data = _useMcQuery.data,
699
+ error = _useMcQuery.error;
700
+
701
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
702
+ children: props.children({
703
+ isLoading: loading,
704
+ user: data && data.user,
705
+ error
706
+ })
707
+ });
708
+ };
709
+
710
+ FetchUser.propTypes = {
711
+ children: _pt__default["default"].func.isRequired
712
+ };
713
+ FetchUser.displayName = 'FetchUser';
714
+
715
+ function ownKeys$8(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
716
+
717
+ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$8(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$8(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
718
+
719
+ const isPlainTrackingListValue = value => typeof value === 'string';
720
+
721
+ const isObjectTrackingListValue = value => typeof value === 'object';
722
+
723
+ const isHtmlElement = node => node.dataset !== undefined;
724
+
725
+ const getDataAttribute = (node, key) => {
726
+ if (isHtmlElement(node)) {
727
+ const camelKey = camelcase__default["default"](key.replace(/^data-/, ''));
728
+ return node.dataset[camelKey];
729
+ }
730
+
731
+ return undefined;
732
+ };
733
+
734
+ const isGtmEnabled = () => window.dataLayer && window.app.trackingGtm && window.app.trackingGtm !== 'null'; // The way that tracking works is like so:
735
+ //
736
+ // `data-track-component`: used to set up the hierarchy of the tracking ID.
737
+ // `data-track-event`: if this attribute exists, track the event.
738
+ // `data-track-strict`: if this exists, do not handle event bubbling.
739
+ // `data-track-label`: additional meta information.
740
+ // Listing and mapping certain generated event names to hardcoded events.
741
+ // They should be keyed by generated name, valued by hardcoded name.
742
+
743
+
744
+ const defaultEventList = {
745
+ LanguageSwitch: 'LanguageSwitch',
746
+ ProjectSwitch: 'ProjectSwitch',
747
+ ForgotPassword: 'ForgotPassword'
748
+ };
749
+
750
+ const logTracking = function (_ref) {
751
+ var _context, _context2;
752
+
753
+ let action = _ref.action,
754
+ category = _ref.category,
755
+ label = _ref.label,
756
+ variable = _ref.variable,
757
+ value = _ref.value;
758
+
759
+ let _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
760
+ isIgnored: false
761
+ },
762
+ isIgnored = _ref2.isIgnored;
763
+
764
+ const groupName = _concatInstanceProperty__default["default"](_context = _concatInstanceProperty__default["default"](_context2 = "%cGTM ".concat(isIgnored ? '%cignoring' : '%cperforming', " %ctracking %c")).call(_context2, category, " %c")).call(_context, label || '');
765
+
766
+ configureApollo.logger.groupCollapsed(groupName, 'color: gray; font-weight: bold;', "color: ".concat(isIgnored ? 'orangered' : 'seagreen', "; font-weight: lighter;"), 'color: gray; font-weight: lighter;', 'color: goldenrod; font-style: normal;', 'color: cornflowerblue; font-style: normal;');
767
+ if (action) configureApollo.logger.log('%caction', 'color: cadetblue;', action);
768
+ if (variable) configureApollo.logger.log('%cvariable', 'color: cadetblue;', variable);
769
+ if (typeof value === 'number') configureApollo.logger.log('%cvalue', 'color: red;', value);
770
+ configureApollo.logger.log('%ccategory', 'color: goldenrod; font-weight: bold;', category);
771
+ if (label) configureApollo.logger.log('%clabel', 'color: cornflowerblue; font-weight: bold;', label);
772
+ configureApollo.logger.groupEnd();
773
+ };
774
+
775
+ const track = (action, category, label) => {
776
+ if (!window.dataLayer) return;
777
+ logTracking({
778
+ action,
779
+ category,
780
+ label
781
+ }); // sends event to google tag manager based on the mapping defined there
782
+ // the mapped event is then forwarded to google analytics
783
+
784
+ window.dataLayer.push({
785
+ event: 'TrackingEvent',
786
+ trackingCategory: category,
787
+ trackingAction: action,
788
+ trackingLabel: label // trackingValue: metadata # TODO: use `custom dimensions`
789
+
790
+ });
791
+ };
792
+ const trackTiming = _ref3 => {
793
+ let category = _ref3.category,
794
+ variable = _ref3.variable,
795
+ value = _ref3.value,
796
+ label = _ref3.label;
797
+
798
+ if (isGtmEnabled()) {
799
+ logTracking({
800
+ variable,
801
+ value,
802
+ category,
803
+ label
804
+ });
805
+ window.dataLayer.push({
806
+ event: 'TimingEvent',
807
+ trackingCategory: category,
808
+ trackingVariable: variable,
809
+ trackingValue: value,
810
+ trackingLabel: label
811
+ });
812
+ }
813
+ }; // Track custom dimensions
814
+
815
+ const trackApplicationName = applicationName => {
816
+ if (isGtmEnabled()) window.dataLayer.push({
817
+ applicationName
818
+ });
819
+ };
820
+ const trackProjectKey = projectKey => {
821
+ if (isGtmEnabled() && projectKey) window.dataLayer.push({
822
+ projectKey
823
+ });
824
+ };
825
+ const trackUserBusinessRole = userBusinessRole => {
826
+ if (isGtmEnabled() && userBusinessRole) {
827
+ window.dataLayer.push({
828
+ userBusinessRole
829
+ });
830
+ }
831
+ }; // Sometimes necessary to manually get the hierarchy.
832
+
833
+ const getHierarchy = node => {
834
+ const hierarchy = [];
835
+ let parent = node;
836
+
837
+ while (parent) {
838
+ const dataTrackComponent = getDataAttribute(parent, 'data-track-component');
839
+ if (dataTrackComponent) hierarchy.push(dataTrackComponent);
840
+ parent = parent.parentNode;
841
+ }
842
+
843
+ _reverseInstanceProperty__default["default"](hierarchy).call(hierarchy);
844
+
845
+ return hierarchy.join('-');
846
+ };
847
+
848
+ const eventHandler = (name, trackingEventList) => event => {
849
+ if (!event.target) return;
850
+ const hierarchy = [];
851
+ let trackEvent;
852
+ let trackLabel;
853
+ let trackStrict;
854
+ let node = event.target;
855
+ const originalNode = node; // Traverse the target elements' parents to find a `data-track` attribute,
856
+ // and if none is found then do nothing.
857
+
858
+ while (node) {
859
+ const dataTrackComponent = getDataAttribute(node, 'data-track-component');
860
+ const dataTrackEvent = getDataAttribute(node, 'data-track-event');
861
+ const dataTrackLabel = getDataAttribute(node, 'data-track-label');
862
+ const dataTrackStrict = getDataAttribute(node, 'data-track-strict');
863
+
864
+ if (dataTrackEvent && (!dataTrackStrict || originalNode === node)) {
865
+ trackEvent = dataTrackEvent;
866
+ trackLabel = dataTrackLabel;
867
+ trackStrict = dataTrackStrict;
868
+ if (trackStrict) hierarchy.push(trackStrict);
869
+ }
870
+
871
+ if (dataTrackComponent) hierarchy.push(dataTrackComponent);
872
+ node = node.parentNode || null;
873
+ }
874
+
875
+ if (!trackEvent) return;
876
+ if (trackEvent !== name) return;
877
+
878
+ let hierarchyKey = _reverseInstanceProperty__default["default"](hierarchy).call(hierarchy).join('-'); // The event map also serves as an allow list. This is really not intuitive
879
+ // by looking at the name.
880
+ // Since we don't want to have all caught events to be sent automatically
881
+ // but only certain events that we are interesting in actually tracking
882
+ // there is a list of events that specifies which events should be
883
+ // sent to Google Tag manager
884
+ // Every application of the Merchant Center should maintain its own list of
885
+ // events it wants to be tracked. This list is passed in via the
886
+ // `trackingEventList` parameter that needs to be merged with the
887
+ // default event list.
888
+ // The default list contains all events that are not generated by a
889
+ // specific application, but by parts of the application shell itself like the
890
+ // menu or the profile view.
891
+
892
+
893
+ const eventList = _objectSpread$8(_objectSpread$8({}, defaultEventList), trackingEventList);
894
+
895
+ const eventValue = eventList[hierarchyKey]; // This checks:
896
+ // 1. if the event is in the allow list and is a string, map it
897
+ // 2. if the event is in the allow list, is an object,
898
+ // and there is a matching key, then map to the value
899
+ // 3. if the event is not in the allow list then don't track
900
+
901
+ if (isPlainTrackingListValue(eventValue)) hierarchyKey = eventValue;else if (isObjectTrackingListValue(eventValue) && trackLabel && trackLabel in eventValue) hierarchyKey = eventValue[trackLabel];else {
902
+ logTracking({
903
+ action: trackEvent,
904
+ category: typeof hierarchyKey === 'object' && trackLabel ? hierarchyKey[trackLabel] : hierarchyKey,
905
+ label: trackLabel
906
+ }, {
907
+ isIgnored: true
908
+ });
909
+ return;
910
+ }
911
+ logTracking({
912
+ action: trackEvent,
913
+ category: typeof hierarchyKey === 'object' && trackLabel ? hierarchyKey[trackLabel] : hierarchyKey,
914
+ label: trackLabel
915
+ });
916
+ track(trackEvent, hierarchyKey, trackLabel);
917
+ };
918
+
919
+ const events = ['click', 'change', 'drop'];
920
+ const boot = trackingEventList => {
921
+ _forEachInstanceProperty__default["default"](events).call(events, event => {
922
+ const handler = eventHandler(event, trackingEventList);
923
+ window.addEventListener(event, handler, true);
924
+ });
925
+ };
926
+ const updateUser = userId => {
927
+ if (isGtmEnabled()) window.dataLayer.push({
928
+ userId
929
+ });
930
+ };
931
+ const stopTrackingUser = () => {
932
+ if (isGtmEnabled()) window.dataLayer.push({
933
+ userId: undefined
934
+ });
935
+ };
936
+
937
+ const GtmApplicationTracker = props => {
938
+ react.useEffect(() => {
939
+ trackApplicationName(props.applicationName);
940
+ trackProjectKey(props.projectKey);
941
+ trackUserBusinessRole(props.userBusinessRole);
942
+ }, [props.applicationName, props.projectKey, props.userBusinessRole]);
943
+ return null;
944
+ };
945
+
946
+ GtmApplicationTracker.propTypes = {
947
+ applicationName: _pt__default["default"].string.isRequired,
948
+ projectKey: _pt__default["default"].string,
949
+ userBusinessRole: _pt__default["default"].string
950
+ };
951
+ GtmApplicationTracker.displayName = 'GtmApplicationTracker';
952
+
953
+ /**
954
+ * This component will let gtm know if any information about the user has
955
+ * changed.
956
+ */
957
+ const GtmUserTracker = props => {
958
+ react.useEffect(() => {
959
+ if (props.user) {
960
+ updateUser(props.user.id);
961
+ }
962
+ }, [props.user]);
963
+ return null;
964
+ };
965
+
966
+ GtmUserTracker.displayName = 'GtmUserTracker';
967
+
968
+ const Navbar = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./navbar-08a76df9.cjs.dev.js'
969
+ /* webpackChunkName: "navbar" */
970
+ ); }));
971
+
972
+ const trackingEventList = {
973
+ 'Navigation-Categories': 'Navigation-Categories',
974
+ 'Navigation-CategoriesSearch': 'Navigation-CategoriesSearch',
975
+ 'Navigation-AddCategory': 'Navigation-AddCategory',
976
+ 'Navigation-Customers': 'Navigation-Customers',
977
+ 'Navigation-AddCustomer': 'Navigation-AddCustomer',
978
+ 'Navigation-Dashboard': 'Navigation-Dashboard',
979
+ 'Navigation-ProductDiscounts': 'Navigation-ProductDiscounts',
980
+ 'Navigation-AddDiscount': 'Navigation-AddDiscount',
981
+ 'Navigation-CartDiscounts': 'Navigation-CartDiscounts',
982
+ 'Navigation-Orders': 'Navigation-Orders',
983
+ 'Navigation-Products': 'Navigation-Products',
984
+ 'Navigation-ProductList': 'Navigation-ProductList',
985
+ 'Navigation-AddProduct': 'Navigation-AddProduct',
986
+ 'Navigation-DirectAccess': 'Navigation-DirectAccess',
987
+ 'Navigation-Taxes': 'Navigation-Taxes',
988
+ 'Navigation-Support-links': 'Navigation-Support-links'
989
+ };
990
+
991
+ function ownKeys$7(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
992
+
993
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$7(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$7(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
994
+ // Expose a Context with the tracking functions.
995
+ // This context can be used by consumers to access the values by either:
996
+ // 1. using `<GtmContext.Consumer>`
997
+ // 2. `static contextType = GtmContext;`
998
+ // NOTE: we do not need to define a `GtmContext.Provider`, as React will
999
+ // fall back to the default value defined, when the context was created,
1000
+ // in case the component does not have a matching Provider above in the tree.
1001
+ // https://reactjs.org/docs/context.html#reactcreatecontext
1002
+ const GtmContext = /*#__PURE__*/react.createContext({
1003
+ track: track,
1004
+ getHierarchy: getHierarchy,
1005
+ trackUserBusinessRole: trackUserBusinessRole
1006
+ });
1007
+
1008
+ const GtmBooter = props => {
1009
+ react.useEffect(() => {
1010
+ // We don't need any user data to start using GTM, for example for
1011
+ // tracking page views and flows when the user is not logged in.
1012
+ boot(_objectSpread$7(_objectSpread$7({}, trackingEventList), props.trackingEventList)); // eslint-disable-next-line react-hooks/exhaustive-deps
1013
+ }, []);
1014
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
1015
+ children: props.children
1016
+ });
1017
+ };
1018
+
1019
+ GtmBooter.propTypes = {
1020
+ trackingEventList: _pt__default["default"].objectOf(_pt__default["default"].oneOfType([_pt__default["default"].string, _pt__default["default"].objectOf(_pt__default["default"].string)])).isRequired,
1021
+ children: _pt__default["default"].node.isRequired
1022
+ };
1023
+ GtmBooter.displayName = 'GtmBooter';
1024
+
1025
+ var trackingEvents$1 = {
1026
+ collapseMainNav: {
1027
+ action: 'CollapseMainNav',
1028
+ category: 'Main-Navigation',
1029
+ label: 'Collapse Main Navigation'
1030
+ },
1031
+ expandMainNav: {
1032
+ action: 'ExpandMainNav',
1033
+ category: 'Main-Navigation',
1034
+ label: 'Expand Main Navigation'
1035
+ },
1036
+ goToSupport: {
1037
+ action: 'GoToSupport',
1038
+ category: 'Main-Navigation',
1039
+ label: 'Go to Support'
1040
+ }
1041
+ };
1042
+
1043
+ const _excluded = ["icon"];
1044
+
1045
+ function ownKeys$6(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1046
+
1047
+ function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$6(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$6(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1048
+
1049
+ const compiledStyles$1 = {
1050
+ "global": ":root {\n\n /* Left navigation */\n}\n\n/* Left Nav */\n\n.navbar-mod__left-navigation___n7yUt {\n display: flex;\n flex-grow: 1;\n width: 64px;\n z-index: 19999;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar);\n}\n\n.navbar-mod__list___RCV3J {\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 0;\n}\n\n.body__menu-open .navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.navbar-mod__list-item___MjK6t {\n width: 64px;\n min-height: 56px;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar);\n margin: 0;\n list-style: none;\n cursor: pointer;\n}\n\n.navbar-mod__item-link___X2Ina {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n padding: var(--spacing-m);\n width: 100%;\n position: relative;\n display: block;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep {\n width: 24px;\n height: 24px;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon__active___asorg > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon-when-active);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n flex: 1;\n font-weight: 500;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n display: none;\n opacity: 0;\n transition: all 0.25s ease-in-out;\n text-align: left;\n text-decoration: none;\n}\n\n.navbar-mod__expander___jyAUi {\n border-top: 1px solid var(--color-neutral-40);\n height: 50px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n}\n\n.navbar-mod__expander___jyAUi:hover {\n background: transparent !important;\n}\n\n.navbar-mod__expand-icon___BtmRa {\n align-items: center;\n border-radius: 32px;\n cursor: pointer;\n display: flex;\n height: 24px;\n justify-content: center;\n transform: translateX(0) rotateZ(0deg);\n width: 24px;\n}\n\n.navbar-mod__item--bottom___eW7nh {\n position: absolute;\n bottom: 50px;\n}\n\n.navbar-mod__list-item___MjK6t:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar-when-hovered);\n}\n\n.navbar-mod__item__active___lo1sr .navbar-mod__title___eRWUj {\n opacity: 1;\n display: block;\n transition: all 0.2s ease;\n}\n\n.navbar-mod__item_menu-open___zk0zh {\n height: auto !important;\n}\n\n/* NO SUBMENU */\n\n.navbar-mod__item_menu-collapsed___cluyY .navbar-mod__item-link___X2Ina {\n text-align: center;\n}\n\n.navbar-mod__item__no-submenu___0lmiH .navbar-mod__title___eRWUj {\n border-bottom: 0;\n}\n\n.navbar-mod__item__no-submenu___0lmiH .navbar-mod__sublist___os1s7 {\n padding-top: 40px;\n}\n\n/* left-nav open */\n\n.body__menu-open .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n font-weight: 500;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n box-shadow: var(--shadow-for-navbar);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t {\n height: auto;\n min-height: 56px;\n transition: max-height 0.15s ease-out;\n overflow: hidden;\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt,\n.body__menu-open .navbar-mod__list-item___MjK6t {\n width: 245px;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n display: block;\n opacity: 1;\n margin-left: var(--spacing-m);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon-when-active);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n}\n\n.body__menu-open .navbar-mod__expand-icon___BtmRa {\n transform: translateX(0) rotateZ(180deg);\n}\n\n.body__menu-open .navbar-mod__item__active___lo1sr {\n max-height: 500px;\n transition: max-height 0.25s ease-in;\n}\n\n.body__menu-open .navbar-mod__sublist___os1s7 {\n position: relative;\n z-index: 1;\n left: 0;\n margin: 0 0 0 calc(\n 24px + var(--spacing-m) + 4px + 4px\n );\n padding: var(--spacing-m) 0 0;\n background-color: transparent;\n}\n\n.body__menu-open .navbar-mod__sublist___os1s7.navbar-mod__sublist-no-children___Dy-h- {\n border: 0;\n}\n\n.body__menu-open .navbar-mod__title-copy___o2y1q {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n text-decoration: none;\n transition: all 0.15s ease;\n}\n\n.body__menu-open .navbar-mod__title-copy___o2y1q:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n}\n\n.body__menu-open .navbar-mod__expander___jyAUi {\n min-height: 50px;\n justify-content: flex-end;\n padding: var(--spacing-m);\n}\n\n/* Second level menu */\n\n.navbar-mod__sublist___os1s7 {\n padding: 55px var(--spacing-l) var(--spacing-m);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n position: absolute;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar);\n top: 0;\n left: 64px;\n z-index: -1;\n list-style: none;\n opacity: 0.01;\n visibility: hidden;\n}\n\n.navbar-mod__sublist__inactive___kJvf- {\n /* empty block */\n}\n\n.navbar-mod__sublist-item___gafkS {\n padding: var(--spacing-s) 0 0;\n}\n\n.navbar-mod__sublist-item___gafkS:first-of-type {\n padding: 0;\n}\n\n.navbar-mod__sublist-item___gafkS:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n}\n\n.navbar-mod__text___ccHEu {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n}\n\n.navbar-mod__text-link___dhtj6 {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n text-decoration: none;\n transition: all 0.15s ease;\n}\n\n.navbar-mod__text-link___dhtj6:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n}\n\n/* Item active */\n\n.navbar-mod__item__active___lo1sr,\n.navbar-mod__item_menu__active___5xFRw {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar-when-active);\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n width: calc(\n 205px + 64px -\n var(--spacing-m) * 2\n );\n justify-content: flex-start;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n width: calc(24px + 4px * 2);\n display: flex;\n justify-content: center;\n align-self: flex-start;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n justify-content: flex-start;\n display: flex;\n width: 100%;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n /* empty block */\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n position: relative;\n width: auto;\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n margin-left: 40px;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n margin-left: var(--spacing-m);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n margin-left: 0;\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__sublist___os1s7 {\n width: 205px;\n min-height: 100%;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__sublist___os1s7 {\n width: calc(100% - calc(\n 24px + var(--spacing-m) + 4px + 4px\n ));\n}\n\n.navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__sublist-collapsed__active___-9vYh {\n opacity: 1;\n visibility: visible;\n text-align: left;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar-when-active);\n}\n\n.navbar-mod__highlighted___oJWkA,\n.navbar-mod__highlighted___oJWkA .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-active) !important;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-active);\n}\n\n.navbar-mod__hidden___TQLSs {\n display: none;\n}\n\n.navbar-mod__divider___TpVzu {\n border-top: 1px solid var(--color-neutral-40);\n}\n\n.navbar-mod__loading-dot-container___G2LVb {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n padding-bottom: 32px;\n}\n\n.navbar-mod__fixed-menu___42tD9 {\n flex: 0 0 0;\n position: relative;\n}\n",
1051
+ "jsonMap": {
1052
+ "left-navigation": "navbar-mod__left-navigation___n7yUt",
1053
+ "list": "navbar-mod__list___RCV3J",
1054
+ "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
1055
+ "list-item": "navbar-mod__list-item___MjK6t",
1056
+ "item-link": "navbar-mod__item-link___X2Ina",
1057
+ "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
1058
+ "icon": "navbar-mod__icon___bLsep",
1059
+ "icon__active": "navbar-mod__icon__active___asorg",
1060
+ "title": "navbar-mod__title___eRWUj",
1061
+ "expander": "navbar-mod__expander___jyAUi",
1062
+ "expand-icon": "navbar-mod__expand-icon___BtmRa",
1063
+ "item--bottom": "navbar-mod__item--bottom___eW7nh",
1064
+ "item__active": "navbar-mod__item__active___lo1sr",
1065
+ "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
1066
+ "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
1067
+ "item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
1068
+ "sublist": "navbar-mod__sublist___os1s7",
1069
+ "sublist-no-children": "navbar-mod__sublist-no-children___Dy-h-",
1070
+ "title-copy": "navbar-mod__title-copy___o2y1q",
1071
+ "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
1072
+ "sublist-item": "navbar-mod__sublist-item___gafkS",
1073
+ "text": "navbar-mod__text___ccHEu",
1074
+ "text-link": "navbar-mod__text-link___dhtj6",
1075
+ "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
1076
+ "icon-container": "navbar-mod__icon-container___w3FtA",
1077
+ "fixed-menu": "navbar-mod__fixed-menu___42tD9",
1078
+ "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
1079
+ "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
1080
+ "highlighted": "navbar-mod__highlighted___oJWkA",
1081
+ "hidden": "navbar-mod__hidden___TQLSs",
1082
+ "divider": "navbar-mod__divider___TpVzu",
1083
+ "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb"
1084
+ }
1085
+ };
1086
+ const styles$2 = compiledStyles$1.jsonMap;
1087
+
1088
+ /*
1089
+ <DataMenu data={[]}>
1090
+ <MenuGroup>
1091
+ <MenuItem>
1092
+ <MenuItemLink linkTo="/foo">(icon) Products</MenuItemLink>
1093
+ <MenuGroup>
1094
+ <MenuItemLink linkTo="/foo/new">Add product</MenuItemLink>
1095
+ </MenuGroup>
1096
+ </MenuItem>
1097
+ </MenuGroup>
1098
+ <MenuExpander/>
1099
+ </DataMenu>
1100
+ */
1101
+ const HeartIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./heart-f21b7d39.cjs.dev.js'); }));
1102
+ const PaperclipIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./paperclip-d653c134.cjs.dev.js'); }));
1103
+ const PluginIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./plugin-0ee6aee4.cjs.dev.js'); }));
1104
+ const RocketIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./rocket-95b6858d.cjs.dev.js'); }));
1105
+ const StarIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./star-52bf7a64.cjs.dev.js'); }));
1106
+ const ConnectedSquareIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./connected-square-47233754.cjs.dev.js'); }));
1107
+ const WorldIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./world-973090a5.cjs.dev.js'); }));
1108
+ const TreeStructureIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./tree-structure-4650688d.cjs.dev.js'); }));
1109
+ const UserFilledIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./user-filled-2e6cb25e.cjs.dev.js'); }));
1110
+ const SpeedometerIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./speedometer-54f872f2.cjs.dev.js'); }));
1111
+ const TagMultiIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./tag-multi-1d1553b6.cjs.dev.js'); }));
1112
+ const CartIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./cart-41f0b7bc.cjs.dev.js'); }));
1113
+ const BoxIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./box-6b5be9a9.cjs.dev.js'); }));
1114
+ const GearIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./gear-e8014c5a.cjs.dev.js'); }));
1115
+ const ListWithSearchIcon = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./list-with-search-ee796e9e.cjs.dev.js'); }));
1116
+
1117
+ // The icon is expected to be the `svg` document as a string.
1118
+ // For backwards compatibility purposes, we still support the legacy "icon name",
1119
+ // which we then map to one of the pre-defined icons.
1120
+ // Eventually, we want to get rid of this "switch" logic.
1121
+ const IconSwitcher = _ref => {
1122
+ let icon = _ref.icon,
1123
+ iconProps = _objectWithoutProperties(_ref, _excluded);
1124
+
1125
+ if (_includesInstanceProperty__default["default"](icon).call(icon, '<svg')) {
1126
+ return jsxRuntime.jsx(InlineSvg__default["default"], _objectSpread$6({
1127
+ data: icon
1128
+ }, iconProps));
1129
+ } // Backwards compatibility for apps using the "icon name".
1130
+
1131
+
1132
+ switch (icon) {
1133
+ // Legacy application icons
1134
+ // TODO: To be removed once MC applications icons updates are published
1135
+ case 'TreeStructureIcon':
1136
+ return jsxRuntime.jsx(TreeStructureIcon, _objectSpread$6({}, iconProps));
1137
+
1138
+ case 'UserFilledIcon':
1139
+ return jsxRuntime.jsx(UserFilledIcon, _objectSpread$6({}, iconProps));
1140
+
1141
+ case 'SpeedometerIcon':
1142
+ return jsxRuntime.jsx(SpeedometerIcon, _objectSpread$6({}, iconProps));
1143
+
1144
+ case 'TagMultiIcon':
1145
+ return jsxRuntime.jsx(TagMultiIcon, _objectSpread$6({}, iconProps));
1146
+
1147
+ case 'CartIcon':
1148
+ return jsxRuntime.jsx(CartIcon, _objectSpread$6({}, iconProps));
1149
+
1150
+ case 'BoxIcon':
1151
+ return jsxRuntime.jsx(BoxIcon, _objectSpread$6({}, iconProps));
1152
+
1153
+ case 'GearIcon':
1154
+ return jsxRuntime.jsx(GearIcon, _objectSpread$6({}, iconProps));
1155
+
1156
+ case 'ListWithSearchIcon':
1157
+ return jsxRuntime.jsx(ListWithSearchIcon, _objectSpread$6({}, iconProps));
1158
+ // Custom application icons set
1159
+
1160
+ case 'HeartIcon':
1161
+ return jsxRuntime.jsx(HeartIcon, _objectSpread$6({}, iconProps));
1162
+
1163
+ case 'PaperclipIcon':
1164
+ return jsxRuntime.jsx(PaperclipIcon, _objectSpread$6({}, iconProps));
1165
+
1166
+ case 'PluginIcon':
1167
+ return jsxRuntime.jsx(PluginIcon, _objectSpread$6({}, iconProps));
1168
+
1169
+ case 'RocketIcon':
1170
+ return jsxRuntime.jsx(RocketIcon, _objectSpread$6({}, iconProps));
1171
+
1172
+ case 'StarIcon':
1173
+ return jsxRuntime.jsx(StarIcon, _objectSpread$6({}, iconProps));
1174
+
1175
+ case 'ConnectedSquareIcon':
1176
+ return jsxRuntime.jsx(ConnectedSquareIcon, _objectSpread$6({}, iconProps));
1177
+ // For backwards compatibility
1178
+
1179
+ case 'WorldIcon':
1180
+ return jsxRuntime.jsx(WorldIcon, _objectSpread$6({}, iconProps));
1181
+
1182
+ default:
1183
+ return jsxRuntime.jsx("img", {
1184
+ src: MissingImageSvg__default["default"],
1185
+ alt: "missing icon"
1186
+ });
1187
+ }
1188
+ };
1189
+
1190
+ IconSwitcher.propTypes = process.env.NODE_ENV !== "production" ? {
1191
+ icon: _pt__default["default"].string.isRequired
1192
+ } : {};
1193
+ IconSwitcher.displayName = 'IconSwitcher';
1194
+
1195
+ const MenuExpander = props => {
1196
+ const gtmTracking = react.useContext(GtmContext);
1197
+ return jsxRuntime.jsx("li", {
1198
+ className: classnames__default["default"](styles$2['list-item'], styles$2.expander, {
1199
+ [styles$2.hidden]: !props.isVisible
1200
+ }),
1201
+ children: jsxRuntime.jsx("div", {
1202
+ onClick: event => {
1203
+ const _trackingEvents = trackingEvents$1[props.isMenuOpen ? 'collapseMainNav' : 'expandMainNav'],
1204
+ action = _trackingEvents.action,
1205
+ category = _trackingEvents.category,
1206
+ label = _trackingEvents.label;
1207
+ gtmTracking.track(action, category, label);
1208
+ props.onClick(event);
1209
+ },
1210
+ className: styles$2['expand-icon'],
1211
+ "data-testid": "menu-expander",
1212
+ children: jsxRuntime.jsx(icons.ArrowRightIcon, {
1213
+ color: "surface",
1214
+ size: "big"
1215
+ })
1216
+ })
1217
+ }, "expander");
1218
+ };
1219
+
1220
+ MenuExpander.propTypes = process.env.NODE_ENV !== "production" ? {
1221
+ isVisible: _pt__default["default"].bool.isRequired,
1222
+ onClick: _pt__default["default"].func.isRequired,
1223
+ isMenuOpen: _pt__default["default"].bool.isRequired
1224
+ } : {};
1225
+ MenuExpander.displayName = 'MenuExpander';
1226
+
1227
+ const Faded = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
1228
+ target: "ekdrmmp0"
1229
+ } : {
1230
+ target: "ekdrmmp0",
1231
+ label: "Faded"
1232
+ })("position:absolute;top:-32px;height:32px;width:100%;background:linear-gradient(\n 0deg,\n ", applicationComponents.designTokens.backgroundColorForNavbar, " 0%,\n rgba(0, 0, 0, 0) 100%\n );z-index:1;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlLd0IiLCJmaWxlIjoibWVudS1pdGVtcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBmb3J3YXJkUmVmLFxuICBsYXp5LFxuICBNb3VzZUV2ZW50SGFuZGxlcixcbiAgUmVhY3ROb2RlLFxuICBTeW50aGV0aWNFdmVudCxcbiAgdXNlQ29udGV4dCxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgR2xvYmFsLCBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3JlYWN0LWJyb2FkY2FzdCc7XG5pbXBvcnQgdHlwZSB7IFRGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIGFwcGtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUge1xuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IE1pc3NpbmdJbWFnZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2RpYWdvbmFsLWxpbmUuc3ZnJztcbmltcG9ydCB7IE5PX1ZBTFVFX0ZBTExCQUNLIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHsgQXJyb3dSaWdodEljb24sIEJhY2tJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IElubGluZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucy9pbmxpbmUtc3ZnJztcbmltcG9ydCB0eXBlIHtcbiAgVERhdGFGZW5jZSxcbiAgVEFjdGlvblJpZ2h0LFxuICBUTG9jYWxpemVkRmllbGQsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9wcm94eSc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCB7IEd0bUNvbnRleHQgfSBmcm9tICcuLi9ndG0tYm9vdGVyJztcbi8vIGh0dHBzOi8vYmFiZWxqcy5pby9ibG9nLzIwMTcvMDkvMTEvemVyby1jb25maWctd2l0aC1iYWJlbC1tYWNyb3NcbmltcG9ydCBjb21waWxlZFN0eWxlcyBmcm9tIC8qIHByZXZhbCAqLyAnLi9uYXZiYXIuc3R5bGVzJztcbmltcG9ydCB0cmFja2luZ0V2ZW50cyBmcm9tICcuL3RyYWNraW5nLWV2ZW50cyc7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbi8qXG48RGF0YU1lbnUgZGF0YT17W119PlxuICA8TWVudUdyb3VwPlxuICAgIDxNZW51SXRlbT5cbiAgICAgIDxNZW51SXRlbUxpbmsgbGlua1RvPVwiL2Zvb1wiPihpY29uKSBQcm9kdWN0czwvTWVudUl0ZW1MaW5rPlxuICAgICAgPE1lbnVHcm91cD5cbiAgICAgICAgPE1lbnVJdGVtTGluayBsaW5rVG89XCIvZm9vL25ld1wiPkFkZCBwcm9kdWN0PC9NZW51SXRlbUxpbms+XG4gICAgICA8L01lbnVHcm91cD5cbiAgICA8L01lbnVJdGVtPlxuICA8L01lbnVHcm91cD5cbiAgPE1lbnVFeHBhbmRlci8+XG48L0RhdGFNZW51PlxuKi9cblxuY29uc3QgSGVhcnRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2hlYXJ0JykpO1xuY29uc3QgUGFwZXJjbGlwSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9wYXBlcmNsaXAnKSk7XG5jb25zdCBQbHVnaW5JY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3BsdWdpbicpKTtcbmNvbnN0IFJvY2tldEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcm9ja2V0JykpO1xuY29uc3QgU3Rhckljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvc3RhcicpKTtcbmNvbnN0IENvbm5lY3RlZFNxdWFyZUljb24gPSBsYXp5KFxuICAoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2Nvbm5lY3RlZC1zcXVhcmUnKVxuKTtcbmNvbnN0IFdvcmxkSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy93b3JsZCcpKTtcbmNvbnN0IFRyZWVTdHJ1Y3R1cmVJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3RyZWUtc3RydWN0dXJlJykpO1xuY29uc3QgVXNlckZpbGxlZEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvdXNlci1maWxsZWQnKSk7XG5jb25zdCBTcGVlZG9tZXRlckljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvc3BlZWRvbWV0ZXInKSk7XG5jb25zdCBUYWdNdWx0aUljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvdGFnLW11bHRpJykpO1xuY29uc3QgQ2FydEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvY2FydCcpKTtcbmNvbnN0IEJveEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvYm94JykpO1xuY29uc3QgR2Vhckljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvZ2VhcicpKTtcbmNvbnN0IExpc3RXaXRoU2VhcmNoSWNvbiA9IGxhenkoXG4gICgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvbGlzdC13aXRoLXNlYXJjaCcpXG4pO1xuXG50eXBlIEljb25Qcm9wcyA9IFBhcmFtZXRlcnM8dHlwZW9mIEJhY2tJY29uPlswXTtcbnR5cGUgSWNvblN3aXRjaGVyUHJvcHMgPSB7IGljb246IHN0cmluZyB9ICYgSWNvblByb3BzO1xuLy8gVGhlIGljb24gaXMgZXhwZWN0ZWQgdG8gYmUgdGhlIGBzdmdgIGRvY3VtZW50IGFzIGEgc3RyaW5nLlxuLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLCB3ZSBzdGlsbCBzdXBwb3J0IHRoZSBsZWdhY3kgXCJpY29uIG5hbWVcIixcbi8vIHdoaWNoIHdlIHRoZW4gbWFwIHRvIG9uZSBvZiB0aGUgcHJlLWRlZmluZWQgaWNvbnMuXG4vLyBFdmVudHVhbGx5LCB3ZSB3YW50IHRvIGdldCByaWQgb2YgdGhpcyBcInN3aXRjaFwiIGxvZ2ljLlxuY29uc3QgSWNvblN3aXRjaGVyID0gKHsgaWNvbiwgLi4uaWNvblByb3BzIH06IEljb25Td2l0Y2hlclByb3BzKSA9PiB7XG4gIGlmIChpY29uLmluY2x1ZGVzKCc8c3ZnJykpIHtcbiAgICByZXR1cm4gPElubGluZVN2ZyBkYXRhPXtpY29ufSB7Li4uaWNvblByb3BzfSAvPjtcbiAgfVxuICAvLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgYXBwcyB1c2luZyB0aGUgXCJpY29uIG5hbWVcIi5cbiAgc3dpdGNoIChpY29uKSB7XG4gICAgLy8gTGVnYWN5IGFwcGxpY2F0aW9uIGljb25zXG4gICAgLy8gVE9ETzogVG8gYmUgcmVtb3ZlZCBvbmNlIE1DIGFwcGxpY2F0aW9ucyBpY29ucyB1cGRhdGVzIGFyZSBwdWJsaXNoZWRcbiAgICBjYXNlICdUcmVlU3RydWN0dXJlSWNvbic6XG4gICAgICByZXR1cm4gPFRyZWVTdHJ1Y3R1cmVJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1VzZXJGaWxsZWRJY29uJzpcbiAgICAgIHJldHVybiA8VXNlckZpbGxlZEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnU3BlZWRvbWV0ZXJJY29uJzpcbiAgICAgIHJldHVybiA8U3BlZWRvbWV0ZXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1RhZ011bHRpSWNvbic6XG4gICAgICByZXR1cm4gPFRhZ011bHRpSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdDYXJ0SWNvbic6XG4gICAgICByZXR1cm4gPENhcnRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0JveEljb24nOlxuICAgICAgcmV0dXJuIDxCb3hJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0dlYXJJY29uJzpcbiAgICAgIHJldHVybiA8R2Vhckljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnTGlzdFdpdGhTZWFyY2hJY29uJzpcbiAgICAgIHJldHVybiA8TGlzdFdpdGhTZWFyY2hJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuXG4gICAgLy8gQ3VzdG9tIGFwcGxpY2F0aW9uIGljb25zIHNldFxuICAgIGNhc2UgJ0hlYXJ0SWNvbic6XG4gICAgICByZXR1cm4gPEhlYXJ0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdQYXBlcmNsaXBJY29uJzpcbiAgICAgIHJldHVybiA8UGFwZXJjbGlwSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdQbHVnaW5JY29uJzpcbiAgICAgIHJldHVybiA8UGx1Z2luSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdSb2NrZXRJY29uJzpcbiAgICAgIHJldHVybiA8Um9ja2V0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdTdGFySWNvbic6XG4gICAgICByZXR1cm4gPFN0YXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0Nvbm5lY3RlZFNxdWFyZUljb24nOlxuICAgICAgcmV0dXJuIDxDb25uZWN0ZWRTcXVhcmVJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIC8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIGNhc2UgJ1dvcmxkSWNvbic6XG4gICAgICByZXR1cm4gPFdvcmxkSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIDxpbWcgc3JjPXtNaXNzaW5nSW1hZ2VTdmd9IGFsdD1cIm1pc3NpbmcgaWNvblwiIC8+O1xuICB9XG59O1xuSWNvblN3aXRjaGVyLmRpc3BsYXlOYW1lID0gJ0ljb25Td2l0Y2hlcic7XG5cbnR5cGUgTWVudUV4cGFuZGVyUHJvcHMgPSB7XG4gIGlzVmlzaWJsZTogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBpc01lbnVPcGVuOiBib29sZWFuO1xufTtcbmNvbnN0IE1lbnVFeHBhbmRlciA9IChwcm9wczogTWVudUV4cGFuZGVyUHJvcHMpID0+IHtcbiAgY29uc3QgZ3RtVHJhY2tpbmcgPSB1c2VDb250ZXh0KEd0bUNvbnRleHQpO1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAga2V5PVwiZXhwYW5kZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHN0eWxlcy5leHBhbmRlciwge1xuICAgICAgICBbc3R5bGVzLmhpZGRlbl06ICFwcm9wcy5pc1Zpc2libGUsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgYWN0aW9uLCBjYXRlZ29yeSwgbGFiZWwgfSA9XG4gICAgICAgICAgICB0cmFja2luZ0V2ZW50c1tcbiAgICAgICAgICAgICAgcHJvcHMuaXNNZW51T3BlbiA/ICdjb2xsYXBzZU1haW5OYXYnIDogJ2V4cGFuZE1haW5OYXYnXG4gICAgICAgICAgICBdO1xuICAgICAgICAgIGd0bVRyYWNraW5nLnRyYWNrKGFjdGlvbiwgY2F0ZWdvcnksIGxhYmVsKTtcbiAgICAgICAgICBwcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgfX1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2V4cGFuZC1pY29uJ119XG4gICAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1leHBhbmRlclwiXG4gICAgICA+XG4gICAgICAgIHsvKlxuICAgICAgICAgIEZJWE1FOiBkZWZpbmUgaG92ZXIgZWZmZWN0LlxuICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9jb21tZXJjZXRvb2xzL21lcmNoYW50LWNlbnRlci1mcm9udGVuZC9pc3N1ZXMvMjIxNlxuICAgICAgICAqL31cbiAgICAgICAgPEFycm93UmlnaHRJY29uIGNvbG9yPVwic3VyZmFjZVwiIHNpemU9XCJiaWdcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgKTtcbn07XG5NZW51RXhwYW5kZXIuZGlzcGxheU5hbWUgPSAnTWVudUV4cGFuZGVyJztcblxuY29uc3QgRmFkZWQgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAwZGVnLFxuICAgICR7YXBwa2l0RGVzaWduVG9rZW5zLmJhY2tncm91bmRDb2xvckZvck5hdmJhcn0gMCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSAxMDAlXG4gICk7XG4gIHotaW5kZXg6IDE7XG5gO1xuXG50eXBlIE1lbnVHcm91cFByb3BzID0ge1xuICBpZDogc3RyaW5nO1xuICBsZXZlbDogMSB8IDI7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIGhhc1N1Ym1lbnU/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBNZW51R3JvdXAgPSAocHJvcHM6IE1lbnVHcm91cFByb3BzKSA9PiB7XG4gIGlmIChcbiAgICBwcm9wcy5pc0V4cGFuZGVkICYmXG4gICAgKChwcm9wcy5sZXZlbCA9PT0gMiAmJiAhcHJvcHMuaGFzU3VibWVudSkgfHxcbiAgICAgIChwcm9wcy5sZXZlbCA9PT0gMiAmJiAhcHJvcHMuaXNBY3RpdmUpKVxuICApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkID1cbiAgICBwcm9wcy5sZXZlbCA9PT0gMiAmJiBwcm9wcy5pc0FjdGl2ZSAmJiBwcm9wcy5pc0V4cGFuZGVkO1xuICBjb25zdCBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgIXByb3BzLmlzRXhwYW5kZWQ7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICBpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIGRhdGEtdGVzdGlkPXtgZ3JvdXAtJHtwcm9wcy5pZH1gfVxuICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgYXJpYS1leHBhbmRlZD17XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQgfHxcbiAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWRcbiAgICAgIH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhcbiAgICAgICAgeyBbc3R5bGVzLmxpc3RdOiBwcm9wcy5sZXZlbCA9PT0gMSB9LFxuICAgICAgICB7IFtzdHlsZXMuc3VibGlzdF06IHByb3BzLmxldmVsID09PSAyIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0LW5vLWNoaWxkcmVuJ11dOiBwcm9wcy5sZXZlbCA9PT0gMiAmJiAhcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0LWV4cGFuZGVkX19hY3RpdmUnXV06XG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1jb2xsYXBzZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5zdWJsaXN0X19pbmFjdGl2ZV06ICFpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCxcbiAgICAgICAgfVxuICAgICAgKX1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC91bD5cbiAgKTtcbn07XG5NZW51R3JvdXAuZGlzcGxheU5hbWUgPSAnTWVudUdyb3VwJztcblxudHlwZSBNZW51SXRlbVByb3BzID0ge1xuICBoYXNTdWJtZW51OiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgaXNNYWluTWVudVJvdXRlQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBvbk1vdXNlRW50ZXI/OiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VMZWF2ZT86IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBNZW51SXRlbSA9IChwcm9wczogTWVudUl0ZW1Qcm9wcykgPT4gKFxuICA8bGlcbiAgICByb2xlPVwibWVudS1pdGVtXCJcbiAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoc3R5bGVzWydsaXN0LWl0ZW0nXSwge1xuICAgICAgW3N0eWxlcy5pdGVtX19hY3RpdmVdOiBwcm9wcy5pc0FjdGl2ZSxcbiAgICAgIFtzdHlsZXNbJ2l0ZW1fbWVudV9fYWN0aXZlJ11dOiBwcm9wcy5pc01haW5NZW51Um91dGVBY3RpdmUgPz8gZmFsc2UsXG4gICAgICBbc3R5bGVzWydpdGVtX21lbnUtY29sbGFwc2VkJ11dOiAhcHJvcHMuaXNNZW51T3BlbixcbiAgICAgIFtzdHlsZXNbJ2l0ZW1fX25vLXN1Ym1lbnUnXV06ICFwcm9wcy5oYXNTdWJtZW51LFxuICAgIH0pfVxuICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXJ9XG4gICAgb25Nb3VzZUxlYXZlPXtwcm9wcy5vbk1vdXNlTGVhdmV9XG4gID5cbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICA8L2xpPlxuKTtcbk1lbnVJdGVtLmRpc3BsYXlOYW1lID0gJ01lbnVJdGVtJztcblxuZXhwb3J0IHR5cGUgTWVudUl0ZW1MaW5rUHJvcHMgPSB7XG4gIGxpbmtUbz86IHN0cmluZztcbiAgZXhhY3RNYXRjaDogYm9vbGVhbjtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgb25DbGljaz86IDxUcmFja0ZuPihcbiAgICBldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+LFxuICAgIHRyYWNrOiBUcmFja0ZuXG4gICkgPT4gdm9pZDtcbiAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPzogYm9vbGVhbjtcbn07XG5jb25zdCBtZW51SXRlbUxpbmtEZWZhdWx0UHJvcHM6IFBpY2s8TWVudUl0ZW1MaW5rUHJvcHMsICdleGFjdE1hdGNoJz4gPSB7XG4gIGV4YWN0TWF0Y2g6IGZhbHNlLFxufTtcbmNvbnN0IE1lbnVJdGVtTGluayA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgY29uc3QgZ3RtVHJhY2tpbmcgPSB1c2VDb250ZXh0KEd0bUNvbnRleHQpO1xuICBjb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG4gIGlmIChwcm9wcy5saW5rVG8pIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE5hdkxpbmtcbiAgICAgICAgdG89e3Byb3BzLmxpbmtUb31cbiAgICAgICAgZXhhY3Q9e3Byb3BzLmV4YWN0TWF0Y2h9XG4gICAgICAgIGFjdGl2ZUNsYXNzTmFtZT17c3R5bGVzLmhpZ2hsaWdodGVkfVxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1sndGV4dC1saW5rJ119XG4gICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChwcm9wcy5saW5rVG8gJiYgcHJvcHMudXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmVkaXJlY3RUbyhwcm9wcy5saW5rVG8pO1xuICAgICAgICAgIH0gZWxzZSBpZiAocHJvcHMub25DbGljaykge1xuICAgICAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgICAgICAgcHJvcHMub25DbGljazx0eXBlb2YgZ3RtVHJhY2tpbmcudHJhY2s+KGV2ZW50LCBndG1UcmFja2luZy50cmFjayk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L05hdkxpbms+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcbk1lbnVJdGVtTGluay5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbUxpbmsnO1xuTWVudUl0ZW1MaW5rLmRlZmF1bHRQcm9wcyA9IG1lbnVJdGVtTGlua0RlZmF1bHRQcm9wcztcblxuY29uc3QgTWVudUl0ZW1EaXZpZGVyID0gKCkgPT4gPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5kaXZpZGVyfSAvPjtcbk1lbnVJdGVtRGl2aWRlci5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbURpdmlkZXInO1xuXG5jb25zdCBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbiA9IChcbiAgbWVudVZpc2liaWxpdGllcz86IFROb3JtYWxpemVkTWVudVZpc2liaWxpdGllcyB8IG51bGwsXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW11cbikgPT5cbiAgQXJyYXkuaXNBcnJheShuYW1lc09mTWVudVZpc2liaWxpdGllcykgJiZcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXMubGVuZ3RoID4gMCAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5ldmVyeShcbiAgICAobmFtZU9mTWVudVZpc2liaWxpdHkpID0+XG4gICAgICBtZW51VmlzaWJpbGl0aWVzICYmIG1lbnVWaXNpYmlsaXRpZXNbbmFtZU9mTWVudVZpc2liaWxpdHldID09PSB0cnVlXG4gICk7XG5cbnR5cGUgUmVzdHJpY3RlZE1lbnVJdGVtUHJvcHMgPSB7XG4gIGZlYXR1cmVUb2dnbGU/OiBzdHJpbmc7XG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW107XG4gIHByb2plY3RQZXJtaXNzaW9uczogVFByb2plY3RQZXJtaXNzaW9ucztcbiAgbWVudVZpc2liaWxpdGllczogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbDtcbiAga2V5T2ZNZW51SXRlbTogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gIGFjdGlvblJpZ2h0cz86IFRBY3Rpb25SaWdodFtdO1xuICBkYXRhRmVuY2VzPzogVERhdGFGZW5jZVtdO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcbnR5cGUgVExvbmdMaXZlZEZsYWcgPSB7XG4gIHZhbHVlOiBib29sZWFuO1xuICByZWFzb24/OiBzdHJpbmc7XG59O1xuY29uc3QgcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzOiBQaWNrPFxuICBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyxcbiAgJ3Blcm1pc3Npb25zJ1xuPiA9IHtcbiAgcGVybWlzc2lvbnM6IFtdLFxufTtcbmZ1bmN0aW9uIGlzTG9uZ0xpdmVkRmxhZyhcbiAgZmxhZzogVEZsYWdWYXJpYXRpb24gfCBUTG9uZ0xpdmVkRmxhZ1xuKTogZmxhZyBpcyBUTG9uZ0xpdmVkRmxhZyB7XG4gIHJldHVybiB0eXBlb2YgKGZsYWcgYXMgVExvbmdMaXZlZEZsYWcpPy52YWx1ZSA9PT0gJ2Jvb2xlYW4nO1xufVxuY29uc3QgUmVzdHJpY3RlZE1lbnVJdGVtID0gKHByb3BzOiBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcykgPT4ge1xuICAvLyBOT1RFOiBDdXN0b20gYXBwbGljYXRpb24gYXJlIGFjdGl2YXRlZC9kZWFjdGl2YXRlZCB3aGlsZSB0aGVpclxuICAvLyB2aXNpYmlsaXR5IGlzIG5vdCBjb250cm9sbGVkIHZpYSBhIHZpc2liaWlsaXR5IG92ZXJ3cml0ZS5cbiAgY29uc3QgZmxhZ1ZhcmlhdGlvbiA9IHVzZUZsYWdWYXJpYXRpb24ocHJvcHMuZmVhdHVyZVRvZ2dsZSk7XG4gIGlmIChcbiAgICBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbihcbiAgICAgIHByb3BzLm1lbnVWaXNpYmlsaXRpZXMsXG4gICAgICBwcm9wcy5uYW1lc09mTWVudVZpc2liaWxpdGllc1xuICAgIClcbiAgKVxuICAgIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHBlcm1pc3Npb25zV3JhcHBlciA9XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMucGVybWlzc2lvbnMpICYmIHByb3BzLnBlcm1pc3Npb25zLmxlbmd0aCA+IDApIHx8XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMuZGF0YUZlbmNlcykgJiYgcHJvcHMuZGF0YUZlbmNlcy5sZW5ndGggPiAwKSA/IChcbiAgICAgIDxSZXN0cmljdGVkQnlQZXJtaXNzaW9uc1xuICAgICAgICBwZXJtaXNzaW9ucz17cHJvcHMucGVybWlzc2lvbnN9XG4gICAgICAgIGFjdGlvblJpZ2h0cz17cHJvcHMuYWN0aW9uUmlnaHRzfVxuICAgICAgICBkYXRhRmVuY2VzPXtwcm9wcy5kYXRhRmVuY2VzfVxuICAgICAgICBzZWxlY3REYXRhRmVuY2VEYXRhPXsoZGVtYW5kZWREYXRhRmVuY2UpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGRlbWFuZGVkRGF0YUZlbmNlLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0b3JlJzpcbiAgICAgICAgICAgICAgcmV0dXJuIGRlbWFuZGVkRGF0YUZlbmNlLmFjdHVhbERhdGFGZW5jZVZhbHVlcztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgLy8gQWx3YXlzIGNoZWNrIHRoYXQgc29tZSBvZiB0aGUgZ2l2ZW4gcGVybWlzc2lvbnMgbWF0Y2guXG4gICAgICAgIHNob3VsZE1hdGNoU29tZVBlcm1pc3Npb25zPXt0cnVlfVxuICAgICAgICBwcm9qZWN0UGVybWlzc2lvbnM9e3Byb3BzLnByb2plY3RQZXJtaXNzaW9uc31cbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9SZXN0cmljdGVkQnlQZXJtaXNzaW9ucz5cbiAgICApIDogKFxuICAgICAgPD57cHJvcHMuY2hpbGRyZW59PC8+XG4gICAgKTtcblxuICBpZiAocHJvcHMuZmVhdHVyZVRvZ2dsZSkge1xuICAgIC8vIEEgcmVndWxhciBzaG9ydC1saXZlZCBmZWF0dXJlIHRvZ2dsZVxuICAgIGlmIChmbGFnVmFyaWF0aW9uID09PSB0cnVlKSByZXR1cm4gcGVybWlzc2lvbnNXcmFwcGVyO1xuICAgIC8vIEEgbG9uZy1saXZlZCBmZWF0dXJlIHRvZ2dsZSB3aXRoIGB7IHZhbHVlOiBib29sZWFuLCBzdHJpbmc6IHJlYXNvbiB9YFxuICAgIGlmIChpc0xvbmdMaXZlZEZsYWcoZmxhZ1ZhcmlhdGlvbikgJiYgZmxhZ1ZhcmlhdGlvbi52YWx1ZSA9PT0gdHJ1ZSlcbiAgICAgIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG59O1xuUmVzdHJpY3RlZE1lbnVJdGVtLmRpc3BsYXlOYW1lID0gJ1Jlc3RyaWN0ZWRNZW51SXRlbSc7XG5SZXN0cmljdGVkTWVudUl0ZW0uZGVmYXVsdFByb3BzID0gcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzO1xuXG50eXBlIE1lbnVMYWJlbFByb3BzID0ge1xuICBsYWJlbEFsbExvY2FsZXM6IFRMb2NhbGl6ZWRGaWVsZFtdO1xuICBkZWZhdWx0TGFiZWw/OiBzdHJpbmc7XG4gIGFwcGxpY2F0aW9uTG9jYWxlOiBzdHJpbmc7XG59O1xuY29uc3QgTWVudUxhYmVsID0gKHByb3BzOiBNZW51TGFiZWxQcm9wcykgPT4ge1xuICBjb25zdCBsb2NhbGl6ZWRMYWJlbCA9IHByb3BzLmxhYmVsQWxsTG9jYWxlcy5maW5kKChsb2MpID0+XG4gICAgcHJvcHMuYXBwbGljYXRpb25Mb2NhbGUuc3RhcnRzV2l0aChsb2MubG9jYWxlKVxuICApO1xuICBpZiAobG9jYWxpemVkTGFiZWwpIHJldHVybiA8Pntsb2NhbGl6ZWRMYWJlbC52YWx1ZX08Lz47XG4gIGlmIChwcm9wcy5kZWZhdWx0TGFiZWwpIHJldHVybiA8Pntwcm9wcy5kZWZhdWx0TGFiZWx9PC8+O1xuICByZXR1cm4gPD57Tk9fVkFMVUVfRkFMTEJBQ0t9PC8+O1xufTtcblxudHlwZSBUTmF2QmFyTGF5b3V0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xuY29uc3QgTmF2QmFyTGF5b3V0ID0gZm9yd2FyZFJlZjxIVE1MRWxlbWVudCwgVE5hdkJhckxheW91dFByb3BzPihcbiAgKHByb3BzLCByZWYpID0+IChcbiAgICA8PlxuICAgICAgPEdsb2JhbFxuICAgICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgICAke2NvbXBpbGVkU3R5bGVzLmdsb2JhbH1cbiAgICAgICAgYH1cbiAgICAgIC8+XG4gICAgICA8bmF2XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1snbGVmdC1uYXZpZ2F0aW9uJ119XG4gICAgICAgIGRhdGEtdGVzdD1cImxlZnQtbmF2aWdhdGlvblwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgICAgZGF0YS10cmFjay1jb21wb25lbnQ9XCJOYXZpZ2F0aW9uXCJcbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9uYXY+XG4gICAgPC8+XG4gIClcbik7XG5OYXZCYXJMYXlvdXQuZGlzcGxheU5hbWUgPSAnTmF2QmFyTGF5b3V0JztcblxuZXhwb3J0IHtcbiAgUmVzdHJpY3RlZE1lbnVJdGVtLFxuICBNZW51SXRlbSxcbiAgTWVudUl0ZW1MaW5rLFxuICBJY29uU3dpdGNoZXIsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51SXRlbURpdmlkZXIsXG4gIE1lbnVFeHBhbmRlcixcbiAgRmFkZWQsXG4gIE5hdkJhckxheW91dCxcbn07XG4iXX0= */"));
1233
+
1234
+ const MenuGroup = props => {
1235
+ if (props.isExpanded && (props.level === 2 && !props.hasSubmenu || props.level === 2 && !props.isActive)) {
1236
+ return null;
1237
+ }
1238
+
1239
+ const isSublistActiveWhileIsMenuExpanded = props.level === 2 && props.isActive && props.isExpanded;
1240
+ const isSublistActiveWhileIsMenuCollapsed = props.level === 2 && props.isActive && !props.isExpanded;
1241
+ return jsxRuntime.jsx("ul", {
1242
+ id: "group-".concat(props.id),
1243
+ "data-testid": "group-".concat(props.id),
1244
+ role: "menu",
1245
+ "aria-expanded": isSublistActiveWhileIsMenuExpanded || isSublistActiveWhileIsMenuCollapsed,
1246
+ className: classnames__default["default"]({
1247
+ [styles$2.list]: props.level === 1
1248
+ }, {
1249
+ [styles$2.sublist]: props.level === 2
1250
+ }, {
1251
+ [styles$2['sublist-no-children']]: props.level === 2 && !props.children
1252
+ }, {
1253
+ [styles$2['sublist-expanded__active']]: isSublistActiveWhileIsMenuExpanded
1254
+ }, {
1255
+ [styles$2['sublist-collapsed__active']]: isSublistActiveWhileIsMenuCollapsed
1256
+ }, {
1257
+ [styles$2.sublist__inactive]: !isSublistActiveWhileIsMenuCollapsed
1258
+ }),
1259
+ children: props.children
1260
+ });
1261
+ };
1262
+
1263
+ MenuGroup.propTypes = process.env.NODE_ENV !== "production" ? {
1264
+ id: _pt__default["default"].string.isRequired,
1265
+ level: _pt__default["default"].oneOf([1, 2]).isRequired,
1266
+ isActive: _pt__default["default"].bool,
1267
+ isExpanded: _pt__default["default"].bool,
1268
+ hasSubmenu: _pt__default["default"].bool,
1269
+ children: _pt__default["default"].node
1270
+ } : {};
1271
+ MenuGroup.displayName = 'MenuGroup';
1272
+
1273
+ const MenuItem = props => {
1274
+ var _props$isMainMenuRout;
1275
+
1276
+ return jsxRuntime.jsx("li", {
1277
+ role: "menu-item",
1278
+ className: classnames__default["default"](styles$2['list-item'], {
1279
+ [styles$2.item__active]: props.isActive,
1280
+ [styles$2['item_menu__active']]: (_props$isMainMenuRout = props.isMainMenuRouteActive) !== null && _props$isMainMenuRout !== void 0 ? _props$isMainMenuRout : false,
1281
+ [styles$2['item_menu-collapsed']]: !props.isMenuOpen,
1282
+ [styles$2['item__no-submenu']]: !props.hasSubmenu
1283
+ }),
1284
+ onClick: props.onClick,
1285
+ onMouseEnter: props.onMouseEnter,
1286
+ onMouseLeave: props.onMouseLeave,
1287
+ children: jsxRuntime.jsx("div", {
1288
+ className: styles$2['item-link'],
1289
+ children: props.children
1290
+ })
1291
+ });
1292
+ };
1293
+
1294
+ MenuItem.propTypes = process.env.NODE_ENV !== "production" ? {
1295
+ hasSubmenu: _pt__default["default"].bool.isRequired,
1296
+ isActive: _pt__default["default"].bool.isRequired,
1297
+ isMainMenuRouteActive: _pt__default["default"].bool,
1298
+ isMenuOpen: _pt__default["default"].bool.isRequired,
1299
+ onClick: _pt__default["default"].func.isRequired,
1300
+ onMouseEnter: _pt__default["default"].func,
1301
+ onMouseLeave: _pt__default["default"].func,
1302
+ children: _pt__default["default"].node.isRequired
1303
+ } : {};
1304
+ MenuItem.displayName = 'MenuItem';
1305
+ const menuItemLinkDefaultProps = {
1306
+ exactMatch: false
1307
+ };
1308
+
1309
+ const MenuItemLink = props => {
1310
+ const gtmTracking = react.useContext(GtmContext);
1311
+
1312
+ const redirectTo = targetUrl => useIsServedByProxy.location.replace(targetUrl);
1313
+
1314
+ if (props.linkTo) {
1315
+ return jsxRuntime.jsx(reactRouterDom.NavLink, {
1316
+ to: props.linkTo,
1317
+ exact: props.exactMatch,
1318
+ activeClassName: styles$2.highlighted,
1319
+ className: styles$2['text-link'],
1320
+ onClick: event => {
1321
+ if (props.linkTo && props.useFullRedirectsForLinks) {
1322
+ event.preventDefault();
1323
+ redirectTo(props.linkTo);
1324
+ } else if (props.onClick) {
1325
+ event.persist();
1326
+ props.onClick(event, gtmTracking.track);
1327
+ }
1328
+ },
1329
+ children: props.children
1330
+ });
1331
+ }
1332
+
1333
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
1334
+ children: props.children
1335
+ });
1336
+ };
1337
+
1338
+ MenuItemLink.propTypes = process.env.NODE_ENV !== "production" ? {
1339
+ linkTo: _pt__default["default"].string,
1340
+ exactMatch: _pt__default["default"].bool.isRequired,
1341
+ children: _pt__default["default"].node.isRequired,
1342
+ onClick: _pt__default["default"].func,
1343
+ useFullRedirectsForLinks: _pt__default["default"].bool
1344
+ } : {};
1345
+ MenuItemLink.displayName = 'MenuItemLink';
1346
+ MenuItemLink.defaultProps = menuItemLinkDefaultProps;
1347
+
1348
+ const MenuItemDivider = () => jsxRuntime.jsx("div", {
1349
+ className: styles$2.divider
1350
+ });
1351
+
1352
+ MenuItemDivider.displayName = 'MenuItemDivider';
1353
+
1354
+ const isEveryMenuVisibilitySetToHidden = (menuVisibilities, namesOfMenuVisibilities) => _Array$isArray__default["default"](namesOfMenuVisibilities) && namesOfMenuVisibilities.length > 0 && _everyInstanceProperty__default["default"](namesOfMenuVisibilities).call(namesOfMenuVisibilities, nameOfMenuVisibility => menuVisibilities && menuVisibilities[nameOfMenuVisibility] === true);
1355
+
1356
+ const restrictedMenuItemDefaultProps = {
1357
+ permissions: []
1358
+ };
1359
+
1360
+ function isLongLivedFlag(flag) {
1361
+ return typeof (flag === null || flag === void 0 ? void 0 : flag.value) === 'boolean';
1362
+ }
1363
+
1364
+ const RestrictedMenuItem = props => {
1365
+ // NOTE: Custom application are activated/deactivated while their
1366
+ // visibility is not controlled via a visibiility overwrite.
1367
+ const flagVariation = reactBroadcast.useFlagVariation(props.featureToggle);
1368
+ if (isEveryMenuVisibilitySetToHidden(props.menuVisibilities, props.namesOfMenuVisibilities)) return null;
1369
+ const permissionsWrapper = _Array$isArray__default["default"](props.permissions) && props.permissions.length > 0 || _Array$isArray__default["default"](props.dataFences) && props.dataFences.length > 0 ? jsxRuntime.jsx(permissions.RestrictedByPermissions, {
1370
+ permissions: props.permissions,
1371
+ actionRights: props.actionRights,
1372
+ dataFences: props.dataFences,
1373
+ selectDataFenceData: demandedDataFence => {
1374
+ switch (demandedDataFence.type) {
1375
+ case 'store':
1376
+ return demandedDataFence.actualDataFenceValues;
1377
+
1378
+ default:
1379
+ return null;
1380
+ }
1381
+ } // Always check that some of the given permissions match.
1382
+ ,
1383
+ shouldMatchSomePermissions: true,
1384
+ projectPermissions: props.projectPermissions,
1385
+ children: props.children
1386
+ }) : jsxRuntime.jsx(jsxRuntime.Fragment, {
1387
+ children: props.children
1388
+ });
1389
+
1390
+ if (props.featureToggle) {
1391
+ // A regular short-lived feature toggle
1392
+ if (flagVariation === true) return permissionsWrapper; // A long-lived feature toggle with `{ value: boolean, string: reason }`
1393
+
1394
+ if (isLongLivedFlag(flagVariation) && flagVariation.value === true) return permissionsWrapper;
1395
+ return null;
1396
+ }
1397
+
1398
+ return permissionsWrapper;
1399
+ };
1400
+
1401
+ RestrictedMenuItem.propTypes = process.env.NODE_ENV !== "production" ? {
1402
+ featureToggle: _pt__default["default"].string,
1403
+ namesOfMenuVisibilities: _pt__default["default"].arrayOf(_pt__default["default"].string),
1404
+ projectPermissions: _pt__default["default"].shape({
1405
+ permissions: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
1406
+ actionRights: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
1407
+ dataFences: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])])
1408
+ }).isRequired,
1409
+ menuVisibilities: _pt__default["default"].oneOfType([_pt__default["default"].any, _pt__default["default"].oneOf([null])]),
1410
+ keyOfMenuItem: _pt__default["default"].string.isRequired,
1411
+ permissions: _pt__default["default"].arrayOf(_pt__default["default"].string).isRequired,
1412
+ actionRights: _pt__default["default"].arrayOf(_pt__default["default"].any),
1413
+ dataFences: _pt__default["default"].arrayOf(_pt__default["default"].any),
1414
+ children: _pt__default["default"].node.isRequired
1415
+ } : {};
1416
+ RestrictedMenuItem.displayName = 'RestrictedMenuItem';
1417
+ RestrictedMenuItem.defaultProps = restrictedMenuItemDefaultProps;
1418
+
1419
+ const MenuLabel = props => {
1420
+ var _context;
1421
+
1422
+ const localizedLabel = _findInstanceProperty__default["default"](_context = props.labelAllLocales).call(_context, loc => {
1423
+ var _context2;
1424
+
1425
+ return _startsWithInstanceProperty__default["default"](_context2 = props.applicationLocale).call(_context2, loc.locale);
1426
+ });
1427
+
1428
+ if (localizedLabel) return jsxRuntime.jsx(jsxRuntime.Fragment, {
1429
+ children: localizedLabel.value
1430
+ });
1431
+ if (props.defaultLabel) return jsxRuntime.jsx(jsxRuntime.Fragment, {
1432
+ children: props.defaultLabel
1433
+ });
1434
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
1435
+ children: constants$1.NO_VALUE_FALLBACK
1436
+ });
1437
+ };
1438
+
1439
+ MenuLabel.propTypes = {
1440
+ labelAllLocales: _pt__default["default"].arrayOf(_pt__default["default"].any).isRequired,
1441
+ defaultLabel: _pt__default["default"].string,
1442
+ applicationLocale: _pt__default["default"].string.isRequired
1443
+ };
1444
+ const NavBarLayout = /*#__PURE__*/react.forwardRef((props, ref) => jsxRuntime.jsxs(jsxRuntime.Fragment, {
1445
+ children: [jsxRuntime.jsx(react$1.Global, {
1446
+ styles: /*#__PURE__*/react$1.css(compiledStyles$1.global, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:NavBarLayout;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUtaXRlbXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1hbUIiLCJmaWxlIjoibWVudS1pdGVtcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBmb3J3YXJkUmVmLFxuICBsYXp5LFxuICBNb3VzZUV2ZW50SGFuZGxlcixcbiAgUmVhY3ROb2RlLFxuICBTeW50aGV0aWNFdmVudCxcbiAgdXNlQ29udGV4dCxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgR2xvYmFsLCBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3JlYWN0LWJyb2FkY2FzdCc7XG5pbXBvcnQgdHlwZSB7IFRGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIGFwcGtpdERlc2lnblRva2VucyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUge1xuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IE1pc3NpbmdJbWFnZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hc3NldHMvaW1hZ2VzL2RpYWdvbmFsLWxpbmUuc3ZnJztcbmltcG9ydCB7IE5PX1ZBTFVFX0ZBTExCQUNLIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7IFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHsgQXJyb3dSaWdodEljb24sIEJhY2tJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IElubGluZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucy9pbmxpbmUtc3ZnJztcbmltcG9ydCB0eXBlIHtcbiAgVERhdGFGZW5jZSxcbiAgVEFjdGlvblJpZ2h0LFxuICBUTG9jYWxpemVkRmllbGQsXG59IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9wcm94eSc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCB7IEd0bUNvbnRleHQgfSBmcm9tICcuLi9ndG0tYm9vdGVyJztcbi8vIGh0dHBzOi8vYmFiZWxqcy5pby9ibG9nLzIwMTcvMDkvMTEvemVyby1jb25maWctd2l0aC1iYWJlbC1tYWNyb3NcbmltcG9ydCBjb21waWxlZFN0eWxlcyBmcm9tIC8qIHByZXZhbCAqLyAnLi9uYXZiYXIuc3R5bGVzJztcbmltcG9ydCB0cmFja2luZ0V2ZW50cyBmcm9tICcuL3RyYWNraW5nLWV2ZW50cyc7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbi8qXG48RGF0YU1lbnUgZGF0YT17W119PlxuICA8TWVudUdyb3VwPlxuICAgIDxNZW51SXRlbT5cbiAgICAgIDxNZW51SXRlbUxpbmsgbGlua1RvPVwiL2Zvb1wiPihpY29uKSBQcm9kdWN0czwvTWVudUl0ZW1MaW5rPlxuICAgICAgPE1lbnVHcm91cD5cbiAgICAgICAgPE1lbnVJdGVtTGluayBsaW5rVG89XCIvZm9vL25ld1wiPkFkZCBwcm9kdWN0PC9NZW51SXRlbUxpbms+XG4gICAgICA8L01lbnVHcm91cD5cbiAgICA8L01lbnVJdGVtPlxuICA8L01lbnVHcm91cD5cbiAgPE1lbnVFeHBhbmRlci8+XG48L0RhdGFNZW51PlxuKi9cblxuY29uc3QgSGVhcnRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2hlYXJ0JykpO1xuY29uc3QgUGFwZXJjbGlwSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9wYXBlcmNsaXAnKSk7XG5jb25zdCBQbHVnaW5JY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3BsdWdpbicpKTtcbmNvbnN0IFJvY2tldEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcm9ja2V0JykpO1xuY29uc3QgU3Rhckljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvc3RhcicpKTtcbmNvbnN0IENvbm5lY3RlZFNxdWFyZUljb24gPSBsYXp5KFxuICAoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL2Nvbm5lY3RlZC1zcXVhcmUnKVxuKTtcbmNvbnN0IFdvcmxkSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy93b3JsZCcpKTtcbmNvbnN0IFRyZWVTdHJ1Y3R1cmVJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3RyZWUtc3RydWN0dXJlJykpO1xuY29uc3QgVXNlckZpbGxlZEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvdXNlci1maWxsZWQnKSk7XG5jb25zdCBTcGVlZG9tZXRlckljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvc3BlZWRvbWV0ZXInKSk7XG5jb25zdCBUYWdNdWx0aUljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvdGFnLW11bHRpJykpO1xuY29uc3QgQ2FydEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvY2FydCcpKTtcbmNvbnN0IEJveEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvYm94JykpO1xuY29uc3QgR2Vhckljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvZ2VhcicpKTtcbmNvbnN0IExpc3RXaXRoU2VhcmNoSWNvbiA9IGxhenkoXG4gICgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvbGlzdC13aXRoLXNlYXJjaCcpXG4pO1xuXG50eXBlIEljb25Qcm9wcyA9IFBhcmFtZXRlcnM8dHlwZW9mIEJhY2tJY29uPlswXTtcbnR5cGUgSWNvblN3aXRjaGVyUHJvcHMgPSB7IGljb246IHN0cmluZyB9ICYgSWNvblByb3BzO1xuLy8gVGhlIGljb24gaXMgZXhwZWN0ZWQgdG8gYmUgdGhlIGBzdmdgIGRvY3VtZW50IGFzIGEgc3RyaW5nLlxuLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLCB3ZSBzdGlsbCBzdXBwb3J0IHRoZSBsZWdhY3kgXCJpY29uIG5hbWVcIixcbi8vIHdoaWNoIHdlIHRoZW4gbWFwIHRvIG9uZSBvZiB0aGUgcHJlLWRlZmluZWQgaWNvbnMuXG4vLyBFdmVudHVhbGx5LCB3ZSB3YW50IHRvIGdldCByaWQgb2YgdGhpcyBcInN3aXRjaFwiIGxvZ2ljLlxuY29uc3QgSWNvblN3aXRjaGVyID0gKHsgaWNvbiwgLi4uaWNvblByb3BzIH06IEljb25Td2l0Y2hlclByb3BzKSA9PiB7XG4gIGlmIChpY29uLmluY2x1ZGVzKCc8c3ZnJykpIHtcbiAgICByZXR1cm4gPElubGluZVN2ZyBkYXRhPXtpY29ufSB7Li4uaWNvblByb3BzfSAvPjtcbiAgfVxuICAvLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgYXBwcyB1c2luZyB0aGUgXCJpY29uIG5hbWVcIi5cbiAgc3dpdGNoIChpY29uKSB7XG4gICAgLy8gTGVnYWN5IGFwcGxpY2F0aW9uIGljb25zXG4gICAgLy8gVE9ETzogVG8gYmUgcmVtb3ZlZCBvbmNlIE1DIGFwcGxpY2F0aW9ucyBpY29ucyB1cGRhdGVzIGFyZSBwdWJsaXNoZWRcbiAgICBjYXNlICdUcmVlU3RydWN0dXJlSWNvbic6XG4gICAgICByZXR1cm4gPFRyZWVTdHJ1Y3R1cmVJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1VzZXJGaWxsZWRJY29uJzpcbiAgICAgIHJldHVybiA8VXNlckZpbGxlZEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnU3BlZWRvbWV0ZXJJY29uJzpcbiAgICAgIHJldHVybiA8U3BlZWRvbWV0ZXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1RhZ011bHRpSWNvbic6XG4gICAgICByZXR1cm4gPFRhZ011bHRpSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdDYXJ0SWNvbic6XG4gICAgICByZXR1cm4gPENhcnRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0JveEljb24nOlxuICAgICAgcmV0dXJuIDxCb3hJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0dlYXJJY29uJzpcbiAgICAgIHJldHVybiA8R2Vhckljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnTGlzdFdpdGhTZWFyY2hJY29uJzpcbiAgICAgIHJldHVybiA8TGlzdFdpdGhTZWFyY2hJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuXG4gICAgLy8gQ3VzdG9tIGFwcGxpY2F0aW9uIGljb25zIHNldFxuICAgIGNhc2UgJ0hlYXJ0SWNvbic6XG4gICAgICByZXR1cm4gPEhlYXJ0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdQYXBlcmNsaXBJY29uJzpcbiAgICAgIHJldHVybiA8UGFwZXJjbGlwSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdQbHVnaW5JY29uJzpcbiAgICAgIHJldHVybiA8UGx1Z2luSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdSb2NrZXRJY29uJzpcbiAgICAgIHJldHVybiA8Um9ja2V0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdTdGFySWNvbic6XG4gICAgICByZXR1cm4gPFN0YXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0Nvbm5lY3RlZFNxdWFyZUljb24nOlxuICAgICAgcmV0dXJuIDxDb25uZWN0ZWRTcXVhcmVJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIC8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIGNhc2UgJ1dvcmxkSWNvbic6XG4gICAgICByZXR1cm4gPFdvcmxkSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIDxpbWcgc3JjPXtNaXNzaW5nSW1hZ2VTdmd9IGFsdD1cIm1pc3NpbmcgaWNvblwiIC8+O1xuICB9XG59O1xuSWNvblN3aXRjaGVyLmRpc3BsYXlOYW1lID0gJ0ljb25Td2l0Y2hlcic7XG5cbnR5cGUgTWVudUV4cGFuZGVyUHJvcHMgPSB7XG4gIGlzVmlzaWJsZTogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBpc01lbnVPcGVuOiBib29sZWFuO1xufTtcbmNvbnN0IE1lbnVFeHBhbmRlciA9IChwcm9wczogTWVudUV4cGFuZGVyUHJvcHMpID0+IHtcbiAgY29uc3QgZ3RtVHJhY2tpbmcgPSB1c2VDb250ZXh0KEd0bUNvbnRleHQpO1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAga2V5PVwiZXhwYW5kZXJcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHN0eWxlcy5leHBhbmRlciwge1xuICAgICAgICBbc3R5bGVzLmhpZGRlbl06ICFwcm9wcy5pc1Zpc2libGUsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgYWN0aW9uLCBjYXRlZ29yeSwgbGFiZWwgfSA9XG4gICAgICAgICAgICB0cmFja2luZ0V2ZW50c1tcbiAgICAgICAgICAgICAgcHJvcHMuaXNNZW51T3BlbiA/ICdjb2xsYXBzZU1haW5OYXYnIDogJ2V4cGFuZE1haW5OYXYnXG4gICAgICAgICAgICBdO1xuICAgICAgICAgIGd0bVRyYWNraW5nLnRyYWNrKGFjdGlvbiwgY2F0ZWdvcnksIGxhYmVsKTtcbiAgICAgICAgICBwcm9wcy5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgfX1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2V4cGFuZC1pY29uJ119XG4gICAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1leHBhbmRlclwiXG4gICAgICA+XG4gICAgICAgIHsvKlxuICAgICAgICAgIEZJWE1FOiBkZWZpbmUgaG92ZXIgZWZmZWN0LlxuICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9jb21tZXJjZXRvb2xzL21lcmNoYW50LWNlbnRlci1mcm9udGVuZC9pc3N1ZXMvMjIxNlxuICAgICAgICAqL31cbiAgICAgICAgPEFycm93UmlnaHRJY29uIGNvbG9yPVwic3VyZmFjZVwiIHNpemU9XCJiaWdcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgKTtcbn07XG5NZW51RXhwYW5kZXIuZGlzcGxheU5hbWUgPSAnTWVudUV4cGFuZGVyJztcblxuY29uc3QgRmFkZWQgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAwZGVnLFxuICAgICR7YXBwa2l0RGVzaWduVG9rZW5zLmJhY2tncm91bmRDb2xvckZvck5hdmJhcn0gMCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSAxMDAlXG4gICk7XG4gIHotaW5kZXg6IDE7XG5gO1xuXG50eXBlIE1lbnVHcm91cFByb3BzID0ge1xuICBpZDogc3RyaW5nO1xuICBsZXZlbDogMSB8IDI7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIGhhc1N1Ym1lbnU/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBNZW51R3JvdXAgPSAocHJvcHM6IE1lbnVHcm91cFByb3BzKSA9PiB7XG4gIGlmIChcbiAgICBwcm9wcy5pc0V4cGFuZGVkICYmXG4gICAgKChwcm9wcy5sZXZlbCA9PT0gMiAmJiAhcHJvcHMuaGFzU3VibWVudSkgfHxcbiAgICAgIChwcm9wcy5sZXZlbCA9PT0gMiAmJiAhcHJvcHMuaXNBY3RpdmUpKVxuICApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkID1cbiAgICBwcm9wcy5sZXZlbCA9PT0gMiAmJiBwcm9wcy5pc0FjdGl2ZSAmJiBwcm9wcy5pc0V4cGFuZGVkO1xuICBjb25zdCBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgIXByb3BzLmlzRXhwYW5kZWQ7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICBpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIGRhdGEtdGVzdGlkPXtgZ3JvdXAtJHtwcm9wcy5pZH1gfVxuICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgYXJpYS1leHBhbmRlZD17XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51RXhwYW5kZWQgfHxcbiAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWRcbiAgICAgIH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhcbiAgICAgICAgeyBbc3R5bGVzLmxpc3RdOiBwcm9wcy5sZXZlbCA9PT0gMSB9LFxuICAgICAgICB7IFtzdHlsZXMuc3VibGlzdF06IHByb3BzLmxldmVsID09PSAyIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0LW5vLWNoaWxkcmVuJ11dOiBwcm9wcy5sZXZlbCA9PT0gMiAmJiAhcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzWydzdWJsaXN0LWV4cGFuZGVkX19hY3RpdmUnXV06XG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1jb2xsYXBzZWRfX2FjdGl2ZSddXTpcbiAgICAgICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5zdWJsaXN0X19pbmFjdGl2ZV06ICFpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCxcbiAgICAgICAgfVxuICAgICAgKX1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC91bD5cbiAgKTtcbn07XG5NZW51R3JvdXAuZGlzcGxheU5hbWUgPSAnTWVudUdyb3VwJztcblxudHlwZSBNZW51SXRlbVByb3BzID0ge1xuICBoYXNTdWJtZW51OiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgaXNNYWluTWVudVJvdXRlQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNNZW51T3BlbjogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBvbk1vdXNlRW50ZXI/OiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIG9uTW91c2VMZWF2ZT86IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBNZW51SXRlbSA9IChwcm9wczogTWVudUl0ZW1Qcm9wcykgPT4gKFxuICA8bGlcbiAgICByb2xlPVwibWVudS1pdGVtXCJcbiAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoc3R5bGVzWydsaXN0LWl0ZW0nXSwge1xuICAgICAgW3N0eWxlcy5pdGVtX19hY3RpdmVdOiBwcm9wcy5pc0FjdGl2ZSxcbiAgICAgIFtzdHlsZXNbJ2l0ZW1fbWVudV9fYWN0aXZlJ11dOiBwcm9wcy5pc01haW5NZW51Um91dGVBY3RpdmUgPz8gZmFsc2UsXG4gICAgICBbc3R5bGVzWydpdGVtX21lbnUtY29sbGFwc2VkJ11dOiAhcHJvcHMuaXNNZW51T3BlbixcbiAgICAgIFtzdHlsZXNbJ2l0ZW1fX25vLXN1Ym1lbnUnXV06ICFwcm9wcy5oYXNTdWJtZW51LFxuICAgIH0pfVxuICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXJ9XG4gICAgb25Nb3VzZUxlYXZlPXtwcm9wcy5vbk1vdXNlTGVhdmV9XG4gID5cbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICA8L2xpPlxuKTtcbk1lbnVJdGVtLmRpc3BsYXlOYW1lID0gJ01lbnVJdGVtJztcblxuZXhwb3J0IHR5cGUgTWVudUl0ZW1MaW5rUHJvcHMgPSB7XG4gIGxpbmtUbz86IHN0cmluZztcbiAgZXhhY3RNYXRjaDogYm9vbGVhbjtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgb25DbGljaz86IDxUcmFja0ZuPihcbiAgICBldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+LFxuICAgIHRyYWNrOiBUcmFja0ZuXG4gICkgPT4gdm9pZDtcbiAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPzogYm9vbGVhbjtcbn07XG5jb25zdCBtZW51SXRlbUxpbmtEZWZhdWx0UHJvcHM6IFBpY2s8TWVudUl0ZW1MaW5rUHJvcHMsICdleGFjdE1hdGNoJz4gPSB7XG4gIGV4YWN0TWF0Y2g6IGZhbHNlLFxufTtcbmNvbnN0IE1lbnVJdGVtTGluayA9IChwcm9wczogTWVudUl0ZW1MaW5rUHJvcHMpID0+IHtcbiAgY29uc3QgZ3RtVHJhY2tpbmcgPSB1c2VDb250ZXh0KEd0bUNvbnRleHQpO1xuICBjb25zdCByZWRpcmVjdFRvID0gKHRhcmdldFVybDogc3RyaW5nKSA9PiBsb2NhdGlvbi5yZXBsYWNlKHRhcmdldFVybCk7XG4gIGlmIChwcm9wcy5saW5rVG8pIHtcbiAgICByZXR1cm4gKFxuICAgICAgPE5hdkxpbmtcbiAgICAgICAgdG89e3Byb3BzLmxpbmtUb31cbiAgICAgICAgZXhhY3Q9e3Byb3BzLmV4YWN0TWF0Y2h9XG4gICAgICAgIGFjdGl2ZUNsYXNzTmFtZT17c3R5bGVzLmhpZ2hsaWdodGVkfVxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1sndGV4dC1saW5rJ119XG4gICAgICAgIG9uQ2xpY2s9eyhldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChwcm9wcy5saW5rVG8gJiYgcHJvcHMudXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmVkaXJlY3RUbyhwcm9wcy5saW5rVG8pO1xuICAgICAgICAgIH0gZWxzZSBpZiAocHJvcHMub25DbGljaykge1xuICAgICAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuICAgICAgICAgICAgcHJvcHMub25DbGljazx0eXBlb2YgZ3RtVHJhY2tpbmcudHJhY2s+KGV2ZW50LCBndG1UcmFja2luZy50cmFjayk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L05hdkxpbms+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPD57cHJvcHMuY2hpbGRyZW59PC8+O1xufTtcbk1lbnVJdGVtTGluay5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbUxpbmsnO1xuTWVudUl0ZW1MaW5rLmRlZmF1bHRQcm9wcyA9IG1lbnVJdGVtTGlua0RlZmF1bHRQcm9wcztcblxuY29uc3QgTWVudUl0ZW1EaXZpZGVyID0gKCkgPT4gPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5kaXZpZGVyfSAvPjtcbk1lbnVJdGVtRGl2aWRlci5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbURpdmlkZXInO1xuXG5jb25zdCBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbiA9IChcbiAgbWVudVZpc2liaWxpdGllcz86IFROb3JtYWxpemVkTWVudVZpc2liaWxpdGllcyB8IG51bGwsXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW11cbikgPT5cbiAgQXJyYXkuaXNBcnJheShuYW1lc09mTWVudVZpc2liaWxpdGllcykgJiZcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXMubGVuZ3RoID4gMCAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5ldmVyeShcbiAgICAobmFtZU9mTWVudVZpc2liaWxpdHkpID0+XG4gICAgICBtZW51VmlzaWJpbGl0aWVzICYmIG1lbnVWaXNpYmlsaXRpZXNbbmFtZU9mTWVudVZpc2liaWxpdHldID09PSB0cnVlXG4gICk7XG5cbnR5cGUgUmVzdHJpY3RlZE1lbnVJdGVtUHJvcHMgPSB7XG4gIGZlYXR1cmVUb2dnbGU/OiBzdHJpbmc7XG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW107XG4gIHByb2plY3RQZXJtaXNzaW9uczogVFByb2plY3RQZXJtaXNzaW9ucztcbiAgbWVudVZpc2liaWxpdGllczogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbDtcbiAga2V5T2ZNZW51SXRlbTogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gIGFjdGlvblJpZ2h0cz86IFRBY3Rpb25SaWdodFtdO1xuICBkYXRhRmVuY2VzPzogVERhdGFGZW5jZVtdO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcbnR5cGUgVExvbmdMaXZlZEZsYWcgPSB7XG4gIHZhbHVlOiBib29sZWFuO1xuICByZWFzb24/OiBzdHJpbmc7XG59O1xuY29uc3QgcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzOiBQaWNrPFxuICBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyxcbiAgJ3Blcm1pc3Npb25zJ1xuPiA9IHtcbiAgcGVybWlzc2lvbnM6IFtdLFxufTtcbmZ1bmN0aW9uIGlzTG9uZ0xpdmVkRmxhZyhcbiAgZmxhZzogVEZsYWdWYXJpYXRpb24gfCBUTG9uZ0xpdmVkRmxhZ1xuKTogZmxhZyBpcyBUTG9uZ0xpdmVkRmxhZyB7XG4gIHJldHVybiB0eXBlb2YgKGZsYWcgYXMgVExvbmdMaXZlZEZsYWcpPy52YWx1ZSA9PT0gJ2Jvb2xlYW4nO1xufVxuY29uc3QgUmVzdHJpY3RlZE1lbnVJdGVtID0gKHByb3BzOiBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcykgPT4ge1xuICAvLyBOT1RFOiBDdXN0b20gYXBwbGljYXRpb24gYXJlIGFjdGl2YXRlZC9kZWFjdGl2YXRlZCB3aGlsZSB0aGVpclxuICAvLyB2aXNpYmlsaXR5IGlzIG5vdCBjb250cm9sbGVkIHZpYSBhIHZpc2liaWlsaXR5IG92ZXJ3cml0ZS5cbiAgY29uc3QgZmxhZ1ZhcmlhdGlvbiA9IHVzZUZsYWdWYXJpYXRpb24ocHJvcHMuZmVhdHVyZVRvZ2dsZSk7XG4gIGlmIChcbiAgICBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbihcbiAgICAgIHByb3BzLm1lbnVWaXNpYmlsaXRpZXMsXG4gICAgICBwcm9wcy5uYW1lc09mTWVudVZpc2liaWxpdGllc1xuICAgIClcbiAgKVxuICAgIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHBlcm1pc3Npb25zV3JhcHBlciA9XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMucGVybWlzc2lvbnMpICYmIHByb3BzLnBlcm1pc3Npb25zLmxlbmd0aCA+IDApIHx8XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMuZGF0YUZlbmNlcykgJiYgcHJvcHMuZGF0YUZlbmNlcy5sZW5ndGggPiAwKSA/IChcbiAgICAgIDxSZXN0cmljdGVkQnlQZXJtaXNzaW9uc1xuICAgICAgICBwZXJtaXNzaW9ucz17cHJvcHMucGVybWlzc2lvbnN9XG4gICAgICAgIGFjdGlvblJpZ2h0cz17cHJvcHMuYWN0aW9uUmlnaHRzfVxuICAgICAgICBkYXRhRmVuY2VzPXtwcm9wcy5kYXRhRmVuY2VzfVxuICAgICAgICBzZWxlY3REYXRhRmVuY2VEYXRhPXsoZGVtYW5kZWREYXRhRmVuY2UpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGRlbWFuZGVkRGF0YUZlbmNlLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0b3JlJzpcbiAgICAgICAgICAgICAgcmV0dXJuIGRlbWFuZGVkRGF0YUZlbmNlLmFjdHVhbERhdGFGZW5jZVZhbHVlcztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgLy8gQWx3YXlzIGNoZWNrIHRoYXQgc29tZSBvZiB0aGUgZ2l2ZW4gcGVybWlzc2lvbnMgbWF0Y2guXG4gICAgICAgIHNob3VsZE1hdGNoU29tZVBlcm1pc3Npb25zPXt0cnVlfVxuICAgICAgICBwcm9qZWN0UGVybWlzc2lvbnM9e3Byb3BzLnByb2plY3RQZXJtaXNzaW9uc31cbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9SZXN0cmljdGVkQnlQZXJtaXNzaW9ucz5cbiAgICApIDogKFxuICAgICAgPD57cHJvcHMuY2hpbGRyZW59PC8+XG4gICAgKTtcblxuICBpZiAocHJvcHMuZmVhdHVyZVRvZ2dsZSkge1xuICAgIC8vIEEgcmVndWxhciBzaG9ydC1saXZlZCBmZWF0dXJlIHRvZ2dsZVxuICAgIGlmIChmbGFnVmFyaWF0aW9uID09PSB0cnVlKSByZXR1cm4gcGVybWlzc2lvbnNXcmFwcGVyO1xuICAgIC8vIEEgbG9uZy1saXZlZCBmZWF0dXJlIHRvZ2dsZSB3aXRoIGB7IHZhbHVlOiBib29sZWFuLCBzdHJpbmc6IHJlYXNvbiB9YFxuICAgIGlmIChpc0xvbmdMaXZlZEZsYWcoZmxhZ1ZhcmlhdGlvbikgJiYgZmxhZ1ZhcmlhdGlvbi52YWx1ZSA9PT0gdHJ1ZSlcbiAgICAgIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG59O1xuUmVzdHJpY3RlZE1lbnVJdGVtLmRpc3BsYXlOYW1lID0gJ1Jlc3RyaWN0ZWRNZW51SXRlbSc7XG5SZXN0cmljdGVkTWVudUl0ZW0uZGVmYXVsdFByb3BzID0gcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzO1xuXG50eXBlIE1lbnVMYWJlbFByb3BzID0ge1xuICBsYWJlbEFsbExvY2FsZXM6IFRMb2NhbGl6ZWRGaWVsZFtdO1xuICBkZWZhdWx0TGFiZWw/OiBzdHJpbmc7XG4gIGFwcGxpY2F0aW9uTG9jYWxlOiBzdHJpbmc7XG59O1xuY29uc3QgTWVudUxhYmVsID0gKHByb3BzOiBNZW51TGFiZWxQcm9wcykgPT4ge1xuICBjb25zdCBsb2NhbGl6ZWRMYWJlbCA9IHByb3BzLmxhYmVsQWxsTG9jYWxlcy5maW5kKChsb2MpID0+XG4gICAgcHJvcHMuYXBwbGljYXRpb25Mb2NhbGUuc3RhcnRzV2l0aChsb2MubG9jYWxlKVxuICApO1xuICBpZiAobG9jYWxpemVkTGFiZWwpIHJldHVybiA8Pntsb2NhbGl6ZWRMYWJlbC52YWx1ZX08Lz47XG4gIGlmIChwcm9wcy5kZWZhdWx0TGFiZWwpIHJldHVybiA8Pntwcm9wcy5kZWZhdWx0TGFiZWx9PC8+O1xuICByZXR1cm4gPD57Tk9fVkFMVUVfRkFMTEJBQ0t9PC8+O1xufTtcblxudHlwZSBUTmF2QmFyTGF5b3V0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xuY29uc3QgTmF2QmFyTGF5b3V0ID0gZm9yd2FyZFJlZjxIVE1MRWxlbWVudCwgVE5hdkJhckxheW91dFByb3BzPihcbiAgKHByb3BzLCByZWYpID0+IChcbiAgICA8PlxuICAgICAgPEdsb2JhbFxuICAgICAgICBzdHlsZXM9e2Nzc2BcbiAgICAgICAgICAke2NvbXBpbGVkU3R5bGVzLmdsb2JhbH1cbiAgICAgICAgYH1cbiAgICAgIC8+XG4gICAgICA8bmF2XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1snbGVmdC1uYXZpZ2F0aW9uJ119XG4gICAgICAgIGRhdGEtdGVzdD1cImxlZnQtbmF2aWdhdGlvblwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgICAgZGF0YS10cmFjay1jb21wb25lbnQ9XCJOYXZpZ2F0aW9uXCJcbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9uYXY+XG4gICAgPC8+XG4gIClcbik7XG5OYXZCYXJMYXlvdXQuZGlzcGxheU5hbWUgPSAnTmF2QmFyTGF5b3V0JztcblxuZXhwb3J0IHtcbiAgUmVzdHJpY3RlZE1lbnVJdGVtLFxuICBNZW51SXRlbSxcbiAgTWVudUl0ZW1MaW5rLFxuICBJY29uU3dpdGNoZXIsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51SXRlbURpdmlkZXIsXG4gIE1lbnVFeHBhbmRlcixcbiAgRmFkZWQsXG4gIE5hdkJhckxheW91dCxcbn07XG4iXX0= */")
1447
+ }), jsxRuntime.jsx("nav", {
1448
+ ref: ref,
1449
+ className: styles$2['left-navigation'],
1450
+ "data-test": "left-navigation",
1451
+ "data-testid": "left-navigation",
1452
+ "data-track-component": "Navigation",
1453
+ children: props.children
1454
+ })]
1455
+ }));
1456
+ NavBarLayout.displayName = 'NavBarLayout';
1457
+
1458
+ const useLoadingMenuLayoutEffect = () => {
1459
+ const cachedIsForcedMenuOpen = window.localStorage.getItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN);
1460
+ const isForcedMenuOpen = isNil__default["default"](cachedIsForcedMenuOpen) ? null : JSON.parse(cachedIsForcedMenuOpen);
1461
+ react.useLayoutEffect(() => {
1462
+ if (isForcedMenuOpen) document.body.classList.add('body__menu-open');
1463
+ if (!isForcedMenuOpen) document.body.classList.remove('body__menu-open');
1464
+ }, [isForcedMenuOpen]);
1465
+ };
1466
+
1467
+ const compiledStyles = {
1468
+ "global": ":root {\n\n /* Left navigation */\n}\n\n/* Left Nav */\n\n.navbar-mod__left-navigation___n7yUt {\n display: flex;\n flex-grow: 1;\n width: 64px;\n z-index: 19999;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar);\n}\n\n.navbar-mod__list___RCV3J {\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 0;\n}\n\n.body__menu-open .navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.navbar-mod__list-item___MjK6t {\n width: 64px;\n min-height: 56px;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar);\n margin: 0;\n list-style: none;\n cursor: pointer;\n}\n\n.navbar-mod__item-link___X2Ina {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n padding: var(--spacing-m);\n width: 100%;\n position: relative;\n display: block;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep {\n width: 24px;\n height: 24px;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon__active___asorg > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon-when-active);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n flex: 1;\n font-weight: 500;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n display: none;\n opacity: 0;\n transition: all 0.25s ease-in-out;\n text-align: left;\n text-decoration: none;\n}\n\n.navbar-mod__expander___jyAUi {\n border-top: 1px solid var(--color-neutral-40);\n height: 50px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n}\n\n.navbar-mod__expander___jyAUi:hover {\n background: transparent !important;\n}\n\n.navbar-mod__expand-icon___BtmRa {\n align-items: center;\n border-radius: 32px;\n cursor: pointer;\n display: flex;\n height: 24px;\n justify-content: center;\n transform: translateX(0) rotateZ(0deg);\n width: 24px;\n}\n\n.navbar-mod__item--bottom___eW7nh {\n position: absolute;\n bottom: 50px;\n}\n\n.navbar-mod__list-item___MjK6t:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar-when-hovered);\n}\n\n.navbar-mod__item__active___lo1sr .navbar-mod__title___eRWUj {\n opacity: 1;\n display: block;\n transition: all 0.2s ease;\n}\n\n.navbar-mod__item_menu-open___zk0zh {\n height: auto !important;\n}\n\n/* NO SUBMENU */\n\n.navbar-mod__item_menu-collapsed___cluyY .navbar-mod__item-link___X2Ina {\n text-align: center;\n}\n\n.navbar-mod__item__no-submenu___0lmiH .navbar-mod__title___eRWUj {\n border-bottom: 0;\n}\n\n.navbar-mod__item__no-submenu___0lmiH .navbar-mod__sublist___os1s7 {\n padding-top: 40px;\n}\n\n/* left-nav open */\n\n.body__menu-open .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n font-weight: 500;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n box-shadow: var(--shadow-for-navbar);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t {\n height: auto;\n min-height: 56px;\n transition: max-height 0.15s ease-out;\n overflow: hidden;\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt,\n.body__menu-open .navbar-mod__list-item___MjK6t {\n width: 245px;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n display: block;\n opacity: 1;\n margin-left: var(--spacing-m);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__icon___bLsep > svg *:not([fill='none']) {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n fill: var(--color-for-navbar-icon-when-active);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n}\n\n.navbar-mod__list-item___MjK6t:not(.navbar-mod__item__active___lo1sr):hover .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n}\n\n.body__menu-open .navbar-mod__expand-icon___BtmRa {\n transform: translateX(0) rotateZ(180deg);\n}\n\n.body__menu-open .navbar-mod__item__active___lo1sr {\n max-height: 500px;\n transition: max-height 0.25s ease-in;\n}\n\n.body__menu-open .navbar-mod__sublist___os1s7 {\n position: relative;\n z-index: 1;\n left: 0;\n margin: 0 0 0 calc(\n 24px + var(--spacing-m) + 4px + 4px\n );\n padding: var(--spacing-m) 0 0;\n background-color: transparent;\n}\n\n.body__menu-open .navbar-mod__sublist___os1s7.navbar-mod__sublist-no-children___Dy-h- {\n border: 0;\n}\n\n.body__menu-open .navbar-mod__title-copy___o2y1q {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n text-decoration: none;\n transition: all 0.15s ease;\n}\n\n.body__menu-open .navbar-mod__title-copy___o2y1q:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n}\n\n.body__menu-open .navbar-mod__expander___jyAUi {\n min-height: 50px;\n justify-content: flex-end;\n padding: var(--spacing-m);\n}\n\n/* Second level menu */\n\n.navbar-mod__sublist___os1s7 {\n padding: 55px var(--spacing-l) var(--spacing-m);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n position: absolute;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar);\n top: 0;\n left: 64px;\n z-index: -1;\n list-style: none;\n opacity: 0.01;\n visibility: hidden;\n}\n\n.navbar-mod__sublist__inactive___kJvf- {\n /* empty block */\n}\n\n.navbar-mod__sublist-item___gafkS {\n padding: var(--spacing-s) 0 0;\n}\n\n.navbar-mod__sublist-item___gafkS:first-of-type {\n padding: 0;\n}\n\n.navbar-mod__sublist-item___gafkS:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n}\n\n.navbar-mod__text___ccHEu {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-navbar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-navbar-link);\n}\n\n.navbar-mod__text-link___dhtj6 {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link);\n text-decoration: none;\n transition: all 0.15s ease;\n}\n\n.navbar-mod__text-link___dhtj6:hover {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-hovered);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-hovered);\n}\n\n/* Item active */\n\n.navbar-mod__item__active___lo1sr,\n.navbar-mod__item_menu__active___5xFRw {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background: var(--background-color-for-navbar-when-active);\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n width: calc(\n 205px + 64px -\n var(--spacing-m) * 2\n );\n justify-content: flex-start;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n width: calc(24px + 4px * 2);\n display: flex;\n justify-content: center;\n align-self: flex-start;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n justify-content: flex-start;\n display: flex;\n width: 100%;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n /* empty block */\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n position: relative;\n width: auto;\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n margin-left: 40px;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n margin-left: var(--spacing-m);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n margin-left: 0;\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__sublist___os1s7 {\n width: 205px;\n min-height: 100%;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__sublist___os1s7 {\n width: calc(100% - calc(\n 24px + var(--spacing-m) + 4px + 4px\n ));\n}\n\n.navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__sublist-collapsed__active___-9vYh {\n opacity: 1;\n visibility: visible;\n text-align: left;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n background-color: var(--background-color-for-navbar-when-active);\n}\n\n.navbar-mod__highlighted___oJWkA,\n.navbar-mod__highlighted___oJWkA .navbar-mod__title___eRWUj {\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n color: var(--color-for-navbar-link-when-active) !important;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-weight: var(--font-weight-for-navbar-link-when-active);\n}\n\n.navbar-mod__hidden___TQLSs {\n display: none;\n}\n\n.navbar-mod__divider___TpVzu {\n border-top: 1px solid var(--color-neutral-40);\n}\n\n.navbar-mod__loading-dot-container___G2LVb {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n padding-bottom: 32px;\n}\n\n.navbar-mod__fixed-menu___42tD9 {\n flex: 0 0 0;\n position: relative;\n}\n",
1469
+ "jsonMap": {
1470
+ "left-navigation": "navbar-mod__left-navigation___n7yUt",
1471
+ "list": "navbar-mod__list___RCV3J",
1472
+ "scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
1473
+ "list-item": "navbar-mod__list-item___MjK6t",
1474
+ "item-link": "navbar-mod__item-link___X2Ina",
1475
+ "item-icon-text": "navbar-mod__item-icon-text___a-8JY",
1476
+ "icon": "navbar-mod__icon___bLsep",
1477
+ "icon__active": "navbar-mod__icon__active___asorg",
1478
+ "title": "navbar-mod__title___eRWUj",
1479
+ "expander": "navbar-mod__expander___jyAUi",
1480
+ "expand-icon": "navbar-mod__expand-icon___BtmRa",
1481
+ "item--bottom": "navbar-mod__item--bottom___eW7nh",
1482
+ "item__active": "navbar-mod__item__active___lo1sr",
1483
+ "item_menu-open": "navbar-mod__item_menu-open___zk0zh",
1484
+ "item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
1485
+ "item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
1486
+ "sublist": "navbar-mod__sublist___os1s7",
1487
+ "sublist-no-children": "navbar-mod__sublist-no-children___Dy-h-",
1488
+ "title-copy": "navbar-mod__title-copy___o2y1q",
1489
+ "sublist__inactive": "navbar-mod__sublist__inactive___kJvf-",
1490
+ "sublist-item": "navbar-mod__sublist-item___gafkS",
1491
+ "text": "navbar-mod__text___ccHEu",
1492
+ "text-link": "navbar-mod__text-link___dhtj6",
1493
+ "item_menu__active": "navbar-mod__item_menu__active___5xFRw",
1494
+ "icon-container": "navbar-mod__icon-container___w3FtA",
1495
+ "fixed-menu": "navbar-mod__fixed-menu___42tD9",
1496
+ "sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
1497
+ "sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
1498
+ "highlighted": "navbar-mod__highlighted___oJWkA",
1499
+ "hidden": "navbar-mod__hidden___TQLSs",
1500
+ "divider": "navbar-mod__divider___TpVzu",
1501
+ "loading-dot-container": "navbar-mod__loading-dot-container___G2LVb"
1502
+ }
1503
+ };
1504
+ const styles$1 = compiledStyles.jsonMap;
1505
+
1506
+ const LoadingNavBar = () => {
1507
+ var _context;
1508
+
1509
+ const ref = react.useRef(null);
1510
+ useLoadingMenuLayoutEffect();
1511
+ return jsxRuntime.jsx(NavBarLayout, {
1512
+ ref: ref,
1513
+ children: jsxRuntime.jsx(MenuGroup, {
1514
+ id: "main",
1515
+ level: 1,
1516
+ children: jsxRuntime.jsx(jsxRuntime.Fragment, {
1517
+ children: _mapInstanceProperty__default["default"](_context = _Array$from__default["default"](new Array(5))).call(_context, (_, index) => jsxRuntime.jsx(MenuItem, {
1518
+ hasSubmenu: false,
1519
+ isMenuOpen: false,
1520
+ isActive: false,
1521
+ onClick: () => undefined,
1522
+ children: jsxRuntime.jsx("div", {
1523
+ className: styles$1['loading-dot-container'],
1524
+ "data-testid": "dot-container-".concat(index),
1525
+ children: jsxRuntime.jsx(LoadingPlaceholder, {
1526
+ shape: "dot",
1527
+ size: "m"
1528
+ })
1529
+ })
1530
+ }, index))
1531
+ })
1532
+ })
1533
+ });
1534
+ };
1535
+
1536
+ LoadingNavBar.displayName = 'LoadingNavBar';
1537
+
1538
+ const ProjectContainer = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./project-container-6f0ea904.cjs.dev.js'
1539
+ /* webpackChunkName: "project-container" */
1540
+ ); }));
1541
+
1542
+ const getSelectedDataLocaleForProject = projectLocales => {
1543
+ const cachedDataLocale = window.localStorage.getItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE); // Make sure the cached locale is listed in the selected project
1544
+
1545
+ const isCachedDataLocaleIncludedInProjectLanguages = _includesInstanceProperty__default["default"](projectLocales).call(projectLocales, cachedDataLocale || '');
1546
+
1547
+ if (cachedDataLocale && isCachedDataLocaleIncludedInProjectLanguages) return cachedDataLocale; // Pick the first locale from the list
1548
+
1549
+ const defaultDataLocaleForProject = projectLocales[0]; // Cache it
1550
+
1551
+ window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, defaultDataLocaleForProject);
1552
+ return defaultDataLocaleForProject;
1553
+ };
1554
+
1555
+ const ProjectDataLocale = props => {
1556
+ const _useState = react.useState(getSelectedDataLocaleForProject(props.locales)),
1557
+ _useState2 = _slicedToArray(_useState, 2),
1558
+ locale = _useState2[0],
1559
+ setLocale = _useState2[1];
1560
+
1561
+ const handleSetProjectDataLocale = react.useCallback(locale => {
1562
+ setLocale(locale); // Cache it
1563
+
1564
+ window.localStorage.setItem(constants.STORAGE_KEYS.SELECTED_DATA_LOCALE, locale);
1565
+ }, []);
1566
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
1567
+ children: props.children({
1568
+ locale,
1569
+ setProjectDataLocale: handleSetProjectDataLocale
1570
+ })
1571
+ });
1572
+ };
1573
+
1574
+ ProjectDataLocale.propTypes = {
1575
+ locales: _pt__default["default"].arrayOf(_pt__default["default"].string).isRequired,
1576
+ children: _pt__default["default"].func.isRequired
1577
+ };
1578
+ ProjectDataLocale.displayName = 'ProjectDataLocale';
1579
+
1580
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct__default["default"](Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
1581
+
1582
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct__default["default"]) return false; if (_Reflect$construct__default["default"].sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); return true; } catch (e) { return false; } }
1583
+
1584
+ let ErrorBoundary = /*#__PURE__*/function (_Component) {
1585
+ _inherits(ErrorBoundary, _Component);
1586
+
1587
+ var _super = _createSuper(ErrorBoundary);
1588
+
1589
+ function ErrorBoundary() {
1590
+ var _this;
1591
+
1592
+ _classCallCheck(this, ErrorBoundary);
1593
+
1594
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1595
+ args[_key] = arguments[_key];
1596
+ }
1597
+
1598
+ _this = _super.call(this, ...args);
1599
+ _this.state = {
1600
+ hasError: false
1601
+ };
1602
+ return _this;
1603
+ }
1604
+
1605
+ _createClass(ErrorBoundary, [{
1606
+ key: "componentDidUpdate",
1607
+ value: function componentDidUpdate(prevProps) {
1608
+ const hasRouteChanged = prevProps.pathname !== this.props.pathname;
1609
+ this.setState(prevState => hasRouteChanged && prevState.hasError ? {
1610
+ hasError: false
1611
+ } : null);
1612
+ }
1613
+ }, {
1614
+ key: "componentDidCatch",
1615
+ value: function componentDidCatch(error, errorInfo) {
1616
+ // Note: In development mode componentDidCatch is not based on try-catch
1617
+ // to catch exceptions. Thus exceptions caught here will also be caught in
1618
+ // the global `error` event listener (setup-global-error-listener.js).
1619
+ // see: https://github.com/facebook/react/issues/10474
1620
+ sentry.reportErrorToSentry(error, {
1621
+ extra: errorInfo
1622
+ });
1623
+ }
1624
+ }, {
1625
+ key: "render",
1626
+ value: function render() {
1627
+ if (this.state.hasError) {
1628
+ return jsxRuntime.jsx(ErrorApologizer, {});
1629
+ }
1630
+
1631
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
1632
+ children: this.props.children
1633
+ });
1634
+ }
1635
+ }], [{
1636
+ key: "getDerivedStateFromError",
1637
+ value: function
1638
+ /* error */
1639
+ getDerivedStateFromError() {
1640
+ // Update state so the next render will show the fallback UI.
1641
+ return {
1642
+ hasError: true
1643
+ };
1644
+ }
1645
+ }]);
1646
+
1647
+ return ErrorBoundary;
1648
+ }(react.Component);
1649
+
1650
+ ErrorBoundary.propTypes = process.env.NODE_ENV !== "production" ? {
1651
+ pathname: _pt__default["default"].string,
1652
+ children: _pt__default["default"].node.isRequired
1653
+ } : {};
1654
+
1655
+ function _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
1656
+
1657
+ const ButlerContainer = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
1658
+ target: "e1fuwyk10"
1659
+ } : {
1660
+ target: "e1fuwyk10",
1661
+ label: "ButlerContainer"
1662
+ })(process.env.NODE_ENV === "production" ? {
1663
+ name: "xvk698",
1664
+ styles: "position:absolute;left:0;bottom:0;top:0;right:0;background-color:rgba(0, 0, 0, 0.35);z-index:20001"
1665
+ } : {
1666
+ name: "xvk698",
1667
+ styles: "position:absolute;left:0;bottom:0;top:0;right:0;background-color:rgba(0, 0, 0, 0.35);z-index:20001",
1668
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb250YWluZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVrQyIsImZpbGUiOiJidXRsZXItY29udGFpbmVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuY29uc3QgQnV0bGVyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIHotaW5kZXg6IDIwMDAxO1xuYDtcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyQ29udGFpbmVyO1xuIl19 */",
1669
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2
1670
+ });
1671
+
1672
+ var pimIndexerStates = {
1673
+ // we did not check yet
1674
+ UNCHECKED: 'UNCHECKED',
1675
+ // the project is indexed by pim-indexer
1676
+ INDEXED: 'INDEXED',
1677
+ // the project is not indexed by pim-indexer
1678
+ NOT_INDEXED: 'NOT_INDEXED'
1679
+ };
1680
+
1681
+ var trackingEvents = {
1682
+ openQuickAccess: {
1683
+ event: 'keydown',
1684
+ category: 'QuickAccess',
1685
+ label: 'quick_access_open'
1686
+ }
1687
+ };
1688
+
1689
+ const QuickAccess = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./quick-access-8b2b678f.cjs.dev.js'
1690
+ /* webpackChunkName: "quick-access" */
1691
+ ); }));
1692
+
1693
+ const QuickAccessTrigger = props => {
1694
+ const _useState = react.useState(false),
1695
+ _useState2 = _slicedToArray(_useState, 2),
1696
+ isVisible = _useState2[0],
1697
+ setIsVisible = _useState2[1];
1698
+
1699
+ const open = react.useCallback(() => {
1700
+ setIsVisible(true);
1701
+ }, []);
1702
+ const close = react.useCallback(() => {
1703
+ setIsVisible(false);
1704
+ }, []); // We store the information of whether a project is indexed by pim-indexer,
1705
+ // to avoid having to refetch that information every time Quick Access is
1706
+ // opened. We can't move the information to the quick-access.js component
1707
+ // as that component unmounts and would lose its state.
1708
+ //
1709
+ // We need to know whether a project is indexed by pim-indexer to know
1710
+ // whether we should query pim-search or whether we can skip that request.
1711
+ //
1712
+ // We don't need to update this information when the project key changes,
1713
+ // as changing a project always results in a full page reload anyways.
1714
+
1715
+ const _useState3 = react.useState(pimIndexerStates.UNCHECKED),
1716
+ _useState4 = _slicedToArray(_useState3, 2),
1717
+ pimIndexerState = _useState4[0],
1718
+ setPimIndexerState = _useState4[1];
1719
+
1720
+ const handlePimIndexerStateChange = react.useCallback(nextPimIndexerState => {
1721
+ setPimIndexerState(nextPimIndexerState);
1722
+ }, []);
1723
+ const keyHandler = react.useCallback(event => {
1724
+ const hotKey = 'f'; // avoid interfering with any key combinations using modifier keys
1725
+
1726
+ if (event.ctrlKey || event.altKey || event.shiftKey || event.metaKey) return; // Let users close QuickAccess by pressing Escape
1727
+
1728
+ if (event.key === 'Escape' && event.target.id === 'quick-access-search-input') {
1729
+ close();
1730
+ return;
1731
+ } // Avoid interfering with any other elements. We only
1732
+ // open the QuickAccess when nothing was focused, so target is document.body
1733
+
1734
+
1735
+ if (event.target !== document.body && // tabIndex="-1" has a special meaning
1736
+ // It will make the element focusable, while hiding it from the
1737
+ // navigation. It is typically used for modals and overlays.
1738
+ // react-modal uses it for example. We want to treat those elements
1739
+ // similar to document.body.
1740
+ // See https://stackoverflow.com/a/32912224
1741
+ event.target.getAttribute('tabindex') !== '-1' && // Do not prevent Quick Access from opening when a link has focus
1742
+ event.target.nodeName !== 'A') return;
1743
+
1744
+ if (event.key === hotKey) {
1745
+ if (!isVisible) {
1746
+ // prevent the letter from appearing in the search input when
1747
+ // it is the key press that lead to opening Quick Access
1748
+ event.preventDefault(); // We use tracking directly here as it's the easiest
1749
+ // Otherwise we'd have to duplicate injectTracking from core, as we
1750
+ // can't import it from there
1751
+
1752
+ track(trackingEvents.openQuickAccess.event, trackingEvents.openQuickAccess.category, trackingEvents.openQuickAccess.label);
1753
+ }
1754
+
1755
+ open();
1756
+ }
1757
+
1758
+ return;
1759
+ }, [close, isVisible, open]);
1760
+ react.useEffect(() => {
1761
+ document.addEventListener('keydown', keyHandler);
1762
+ return () => {
1763
+ document.removeEventListener('keydown', keyHandler);
1764
+ };
1765
+ }, [keyHandler]);
1766
+ if (!isVisible) return null;
1767
+ return jsxRuntime.jsx(ErrorBoundary, {
1768
+ children: jsxRuntime.jsx(react.Suspense, {
1769
+ fallback: jsxRuntime.jsx(ButlerContainer, {
1770
+ tabIndex: -1
1771
+ }),
1772
+ children: jsxRuntime.jsx(QuickAccess, {
1773
+ pimIndexerState: pimIndexerState,
1774
+ onPimIndexerStateChange: handlePimIndexerStateChange,
1775
+ onClose: close,
1776
+ onChangeProjectDataLocale: props.onChangeProjectDataLocale
1777
+ })
1778
+ })
1779
+ });
1780
+ };
1781
+
1782
+ QuickAccessTrigger.propTypes = process.env.NODE_ENV !== "production" ? {
1783
+ onChangeProjectDataLocale: _pt__default["default"].func
1784
+ } : {};
1785
+ QuickAccessTrigger.displayName = 'QuickAccessTrigger';
1786
+
1787
+ const RedirectToLogout = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-logout-15810ffb.cjs.dev.js'
1788
+ /* webpackChunkName: "redirect-to-logout" */
1789
+ ); }));
1790
+
1791
+ const RedirectToProjectCreate = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-project-create-f0e7b35e.cjs.dev.js'
1792
+ /* webpackChunkName: "redirect-to-project-create" */
1793
+ ); }));
1794
+
1795
+ /*
1796
+ * This file contains a list of all feature toggles used within
1797
+ * the app shell. Each feature toggle should be a constant.
1798
+ *
1799
+ * ```
1800
+ * export const FEATURE_TOGGLE_NAME = 'featureToggleName';
1801
+ * export const FLAGS = {
1802
+ * [FEATURE_TOGGLE_NAME]: false,
1803
+ * };
1804
+ * ```
1805
+ *
1806
+ * NOTE:
1807
+ * Default values are not yet passed to flopflip and it has to be decided
1808
+ * how the integrate with the plugin API.
1809
+ * The default values would be used whenever feature toggles have not been
1810
+ * fetched from LaunchDarkly (without default values flopflip will default
1811
+ * them to off until fetched).
1812
+ */
1813
+ const UI_REDESIGN = 'uiRedesign';
1814
+ const FLAGS = {
1815
+ [UI_REDESIGN]: false
1816
+ };
1817
+
1818
+ function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1819
+
1820
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$5(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1821
+ var FetchAllMenuFeatureToggles = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchAllMenuFeatureToggles" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "allFeatureToggles" }, arguments: [], directives: [] }] } }], loc: { start: 0, end: 57, source: { body: "query FetchAllMenuFeatureToggles {\n allFeatureToggles\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
1822
+ const defaultApiUrl = window.location.origin;
1823
+
1824
+ const getDefaultedFeatureToggles = allFeatureToggles => _reduceInstanceProperty__default["default"](allFeatureToggles).call(allFeatureToggles, (previouslyDefaultedFeatureToggles, nextFeatureToggle) => _objectSpread$5(_objectSpread$5({}, previouslyDefaultedFeatureToggles), {}, {
1825
+ [nextFeatureToggle]: false
1826
+ }), {});
1827
+
1828
+ const useAllMenuFeatureToggles = () => {
1829
+ const servedByProxy = useIsServedByProxy.useIsServedByProxy();
1830
+ const mcProxyApiUrl = applicationShellConnectors.useApplicationContext(applicationContext => applicationContext.environment.mcProxyApiUrl);
1831
+
1832
+ const _useMcQuery = useMcQuery(FetchAllMenuFeatureToggles, {
1833
+ fetchPolicy: 'cache-and-network',
1834
+ skip: !servedByProxy,
1835
+ onError: sentry.reportErrorToSentry,
1836
+ context: {
1837
+ uri: "".concat(mcProxyApiUrl || defaultApiUrl, "/api/graphql"),
1838
+ skipGraphQlTargetCheck: true
1839
+ }
1840
+ }),
1841
+ data = _useMcQuery.data,
1842
+ refetch = _useMcQuery.refetch,
1843
+ loading = _useMcQuery.loading;
1844
+
1845
+ return {
1846
+ isLoading: loading,
1847
+ refetch,
1848
+ allFeatureToggles: data && getDefaultedFeatureToggles(data.allFeatureToggles) || {}
1849
+ };
1850
+ };
1851
+
1852
+ function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1853
+
1854
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$4(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1855
+ var AllFeaturesQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "AllFeatures" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "allFeatures" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "reason" }, arguments: [], directives: [] }] } }] } }], loc: { start: 0, end: 72, source: { body: "query AllFeatures {\n allFeatures {\n name\n value\n reason\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
1856
+ // This value is hard-coded here because we want to make sure that the
1857
+ // app uses our account of LD. The value is meant to be public, so there
1858
+ // is no need to be concerned about security.
1859
+ const ldClientSideIdProduction = '5979d95f6040390cd07b5e01';
1860
+
1861
+ function getUserCustomFieldsForLaunchDarklyAdapter(user, projectKey) {
1862
+ var _user$launchdarklyTra, _user$launchdarklyTra2, _user$launchdarklyTra3, _user$launchdarklyTra4, _user$launchdarklyTra5;
1863
+
1864
+ return {
1865
+ project: projectKey !== null && projectKey !== void 0 ? projectKey : '',
1866
+ id: (_user$launchdarklyTra = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingId) !== null && _user$launchdarklyTra !== void 0 ? _user$launchdarklyTra : '',
1867
+ team: (_user$launchdarklyTra2 = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingTeam) !== null && _user$launchdarklyTra2 !== void 0 ? _user$launchdarklyTra2 : [],
1868
+ group: (_user$launchdarklyTra3 = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingGroup) !== null && _user$launchdarklyTra3 !== void 0 ? _user$launchdarklyTra3 : '',
1869
+ subgroup: (_user$launchdarklyTra4 = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingSubgroup) !== null && _user$launchdarklyTra4 !== void 0 ? _user$launchdarklyTra4 : '',
1870
+ tenant: (_user$launchdarklyTra5 = user === null || user === void 0 ? void 0 : user.launchdarklyTrackingTenant) !== null && _user$launchdarklyTra5 !== void 0 ? _user$launchdarklyTra5 : ''
1871
+ };
1872
+ }
1873
+
1874
+ const parseFlags = fetchedFlags => {
1875
+ var _context;
1876
+
1877
+ return _Object$fromEntries__default["default"](_mapInstanceProperty__default["default"](_context = fetchedFlags.allFeatures).call(_context, fetchedFlag => [fetchedFlag.name, {
1878
+ value: fetchedFlag.value,
1879
+ reason: fetchedFlag.reason
1880
+ }]));
1881
+ };
1882
+
1883
+ const SetupFlopFlipProvider = props => {
1884
+ const apolloClient = react$2.useApolloClient();
1885
+ const enableLongLivedFeatureFlags = applicationShellConnectors.useApplicationContext(context => context.environment.enableLongLivedFeatureFlags);
1886
+ const allMenuFeatureToggles = useAllMenuFeatureToggles();
1887
+ const flags = react.useMemo(() => _objectSpread$4(_objectSpread$4(_objectSpread$4({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), _flagsInstanceProperty__default["default"](props)), [allMenuFeatureToggles.allFeatureToggles, _flagsInstanceProperty__default["default"](props)]);
1888
+ react.useMemo(() => {
1889
+ if (enableLongLivedFeatureFlags) {
1890
+ combineAdapters__default["default"].combine([ldAdapter__default["default"], httpAdapter__default["default"]]);
1891
+ } else {
1892
+ combineAdapters__default["default"].combine([ldAdapter__default["default"]]);
1893
+ }
1894
+ }, [enableLongLivedFeatureFlags]);
1895
+ const defaultFlags = react.useMemo(() => _objectSpread$4(_objectSpread$4(_objectSpread$4({}, FLAGS), allMenuFeatureToggles.allFeatureToggles), props.defaultFlags), [allMenuFeatureToggles.allFeatureToggles, props.defaultFlags]);
1896
+ const adapterArgs = react.useMemo(() => {
1897
+ var _props$user, _props$ldClientSideId, _props$user2, _props$user3;
1898
+
1899
+ return {
1900
+ user: {
1901
+ key: (_props$user = props.user) === null || _props$user === void 0 ? void 0 : _props$user.id
1902
+ },
1903
+ launchdarkly: {
1904
+ sdk: {
1905
+ // Allow to overwrite the client ID, passed via the `additionalEnv` properties
1906
+ // of the application config.
1907
+ // This is mostly useful for internal usage on our staging environments.
1908
+ clientSideId: (_props$ldClientSideId = props.ldClientSideId) !== null && _props$ldClientSideId !== void 0 ? _props$ldClientSideId : ldClientSideIdProduction
1909
+ },
1910
+ flags,
1911
+ user: {
1912
+ key: (_props$user2 = props.user) === null || _props$user2 === void 0 ? void 0 : _props$user2.id,
1913
+ custom: getUserCustomFieldsForLaunchDarklyAdapter(props.user, props.projectKey)
1914
+ }
1915
+ },
1916
+ http: {
1917
+ user: {
1918
+ key: (_props$user3 = props.user) === null || _props$user3 === void 0 ? void 0 : _props$user3.id
1919
+ },
1920
+ execute: async function () {
1921
+ const response = await apolloClient.query({
1922
+ query: AllFeaturesQuery,
1923
+ errorPolicy: 'ignore',
1924
+ context: {
1925
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND
1926
+ }
1927
+ });
1928
+ return parseFlags(response.data);
1929
+ }
1930
+ }
1931
+ };
1932
+ }, [apolloClient, flags, props.ldClientSideId, props.projectKey, props.user]);
1933
+ /**
1934
+ * The `<ApplicationShell />` tests itself. When it does so it can not setup and use
1935
+ * the `launchdarkly-adapter` and `http-adapter`. As a result the `process.env`
1936
+ * is evaluated and a test provider is rendered for feature flags.
1937
+ *
1938
+ * The `process.env` check also ensures that this block is excluded from production
1939
+ * bundles.
1940
+ */
1941
+
1942
+ if (process.env.NODE_ENV === 'test') {
1943
+ const _require = require('@flopflip/react-broadcast'),
1944
+ TestProviderFlopFlip = _require.TestProviderFlopFlip;
1945
+
1946
+ return jsxRuntime.jsx(TestProviderFlopFlip, {
1947
+ flags: defaultFlags,
1948
+ children: props.children
1949
+ });
1950
+ }
1951
+
1952
+ return jsxRuntime.jsx(reactBroadcast.ConfigureFlopFlip, {
1953
+ adapter: combineAdapters__default["default"],
1954
+ adapterArgs: adapterArgs,
1955
+ defaultFlags: defaultFlags,
1956
+ shouldDeferAdapterConfiguration: typeof props.shouldDeferAdapterConfiguration === 'boolean' ? props.shouldDeferAdapterConfiguration : !props.user || allMenuFeatureToggles.isLoading,
1957
+ children: props.children
1958
+ });
1959
+ };
1960
+ SetupFlopFlipProvider.propTypes = process.env.NODE_ENV !== "production" ? {
1961
+ projectKey: _pt__default["default"].string,
1962
+ flags: _pt__default["default"].any,
1963
+ defaultFlags: _pt__default["default"].any,
1964
+ ldClientSideId: _pt__default["default"].string,
1965
+ children: _pt__default["default"].node.isRequired,
1966
+ shouldDeferAdapterConfiguration: _pt__default["default"].bool
1967
+ } : {};
1968
+ SetupFlopFlipProvider.displayName = 'SetupFlopFlipProvider';
1969
+
1970
+ const ThemeSwitcher = () => {
1971
+ const isNewThemeEnabled = reactBroadcast.useFeatureToggle(UI_REDESIGN);
1972
+ const theme = isNewThemeEnabled ? 'test' : 'default';
1973
+ return jsxRuntime.jsx(designSystem.ThemeProvider, {
1974
+ theme: theme,
1975
+ themeOverrides: applicationComponents.themesOverrides[theme]
1976
+ });
1977
+ };
1978
+
1979
+ const VersionTracker = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./version-tracker-69607d15.cjs.dev.js'
1980
+ /* webpackChunkName: "version-tracker" */
1981
+ ); }));
1982
+
1983
+ function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1984
+
1985
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$3(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
1986
+
1987
+ function _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
1988
+
1989
+ const getHasUnauthorizedError = graphQLErrors => _findInstanceProperty__default["default"](graphQLErrors).call(graphQLErrors, gqlError => gqlError.extensions && gqlError.extensions.code && gqlError.extensions.code === 'UNAUTHENTICATED');
1990
+
1991
+ const getHasUserBeenDeletedError = graphQLErrors => _findInstanceProperty__default["default"](graphQLErrors).call(graphQLErrors, gqlError => {
1992
+ var _context;
1993
+
1994
+ return gqlError.message && // NOTE: The CTP API does not provide an error code in this case.
1995
+ _includesInstanceProperty__default["default"](_context = gqlError.message).call(_context, 'was not found.');
1996
+ });
1997
+
1998
+ const MainContainer = /*#__PURE__*/_styled__default["default"]("main", process.env.NODE_ENV === "production" ? {
1999
+ target: "esrtekc0"
2000
+ } : {
2001
+ target: "esrtekc0",
2002
+ label: "MainContainer"
2003
+ })(process.env.NODE_ENV === "production" ? {
2004
+ name: "1rdshd",
2005
+ styles: "grid-column:2;grid-row:3;min-width:0;overflow-x:hidden;overflow-y:scroll;display:flex;flex-direction:column;position:relative"
2006
+ } : {
2007
+ name: "1rdshd",
2008
+ styles: "grid-column:2;grid-row:3;min-width:0;overflow-x:hidden;overflow-y:scroll;display:flex;flex-direction:column;position:relative",
2009
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFd0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHR5cGUgVEFwcGxpY2F0aW9uQ29udGV4dCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tc2hlbGwtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBET01BSU5TLCBMT0dPVVRfUkVBU09OUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IFRBc3luY0xvY2FsZURhdGFQcm9wcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgQXN5bmNMb2NhbGVEYXRhIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zTGlzdCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3JlYWN0LW5vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHtcbiAgcmVwb3J0RXJyb3JUb1NlbnRyeSxcbiAgU2VudHJ5VXNlclRyYWNrZXIsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NlbnRyeSc7XG5pbXBvcnQgeyBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLCBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgR3RtQXBwbGljYXRpb25UcmFja2VyIGZyb20gJy4uL2d0bS1hcHBsaWNhdGlvbi10cmFja2VyJztcbmltcG9ydCBHdG1Vc2VyVHJhY2tlciBmcm9tICcuLi9ndG0tdXNlci10cmFja2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBMb2FkaW5nTmF2QmFyIGZyb20gJy4uL25hdmJhci9sb2FkaW5nLW5hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiA8VHJhY2tGbj4oXG4gICAgZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PixcbiAgICB0cmFjazogVHJhY2tGblxuICApID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMjtcbiAgZ3JpZC1yb3c6IDM7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuICAgICAgICAgIGNvbnN0IHVzZXJMb2NhbGUgPSBnZXRCcm93c2VyTG9jYWxlKHdpbmRvdyk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHsvKlxuICAgICAgICAgICAgTk9URTogd2UgZG8gbm90IHdhbnQgdG8gbG9hZCB0aGUgbG9jYWxlIGRhdGEgYXMgbG9uZyBhcyB3ZSBkbyBub3RcbiAgICAgICAgICAgIGtub3cgdGhlIHVzZXIgc2V0dGluZy4gVGhpcyBpcyBpbXBvcnRhbnQgaW4gb3JkZXIgdG8gYXZvaWQgZmxhc2hpbmdcbiAgICAgICAgICAgIG9mIHRyYW5zbGF0ZWQgY29udGVudCBvbiBzdWJzZXF1ZW50IHJlLXJlbmRlcnMuXG4gICAgICAgICAgICBUaGVyZWZvcmUsIGFzIGxvbmcgYXMgdGhlcmUgaXMgbm8gbG9jYWxlLCB0aGUgY2hpbGRyZW4gc2hvdWxkIGNvbnNpZGVyIHVzaW5nIHRoZVxuICAgICAgICAgICAgYGlzTG9hZGluZ2AgcHJvcCB0byBkZWNpZGUgd2hhdCB0byByZW5kZXIuXG4gICAgICAgICAgKi99XG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bVVzZXJUcmFja2VyIHVzZXI9e3VzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bUFwcGxpY2F0aW9uVHJhY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25OYW1lPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmFwcGxpY2F0aW9uTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlckJ1c2luZXNzUm9sZT17dXNlcj8uYnVzaW5lc3NSb2xlID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gPFF1aWNrQWNjZXNzIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmV0Y2hQcm9qZWN0IHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNQcm9qZWN0TG9hZGluZywgcHJvamVjdCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJvamVjdExvYWRpbmcgfHwgIXByb2plY3QpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgbG9hZGluZyBuYXZiYXIgYXMgbG9uZyBhcyBhbGwgdGhlIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXNuJ3QgYmVlbiBsb2FkZWQsIG9yIGlmIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1VzZXIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ0xvY2FsZURhdGEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1Byb2plY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFsb2NhbGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nTmF2QmFyIC8+O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybCA/IERJTUVOU0lPTlMubmF2TWVudSA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBESU1FTlNJT05TLm5hdk1lbnVFeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbT1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgcGF0aD1cIi9hY2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgcmVuZGVyYCBmdW5jdGlvbiwgd2UgYXNzdW1lIGl0J3Mgb25lIG9mIHR3byBjYXNlczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuIFRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCB1c2UgYGNoaWxkcmVuYCBhbmQgdGhlcmVmb3JlIGltcGxlbWVudHMgdGhlIHJvdXRlcyBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSA8Um91dGVDYXRjaEFsbD4gKHRoaXMgaXMgdGhlIFwibGVnYWN5XCIgYmVoYXZpb3IpLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMi4gSXQncyB0aGUgYWNjb3VudCBhcHBsaWNhdGlvbiwgd2hpY2ggYWx3YXlzIHVzZXMgYHJlbmRlcmAgYW5kIHRoZXJlZm9yZSBzaG91bGQgcmVuZGVyIGFzIG5vcm1hbC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgY2hpbGRyZW5gIGZ1bmN0aW9uLCB3ZSBjYW4gYWx3YXlzIGFzc3VtZSB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpdCdzIGEgbm9ybWFsIEN1c3RvbSBBcHBsaWNhdGlvbiBhbmQgdGhhdCBpdCBzaG91bGQgdHJpZ2dlciBhIGZvcmNlIHJlbG9hZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucmVuZGVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Pntwcm9wcy5yZW5kZXIoKX08Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZUNhdGNoQWxsIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogUHJvamVjdCByb3V0ZXMgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17dHJ1ZX0gcGF0aD1cIi9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzUHJvamVjdEtleSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByZXZpb3VzUHJvamVjdEtleShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPy5kZWZhdWx0UHJvamVjdEtleSA/PyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyKSByZXR1cm4gPEFwcGxpY2F0aW9uTG9hZGVyIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1Byb2plY3RLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89e2AvJHtwcmV2aW91c1Byb2plY3RLZXl9YH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXtmYWxzZX0gcGF0aD1cIi86cHJvamVjdEtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9qZWN0Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */",
2010
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
2011
+ });
2012
+ /**
2013
+ * This component is rendered whenever the user is considered "authenticated"
2014
+ * and contains the "restricted" application part.
2015
+ */
2016
+
2017
+ var _ref = process.env.NODE_ENV === "production" ? {
2018
+ name: "tlwzvn",
2019
+ styles: "flex-grow:1;display:flex;flex-direction:column;position:relative;>*:not(:first-of-type){flex-grow:1;display:flex;flex-direction:column;}"
2020
+ } : {
2021
+ name: "1y4p4ln-ApplicationShellAuthenticated",
2022
+ styles: "flex-grow:1;display:flex;flex-direction:column;position:relative;>*:not(:first-of-type){flex-grow:1;display:flex;flex-direction:column;};label:ApplicationShellAuthenticated;",
2023
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlYc0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHR5cGUgVEFwcGxpY2F0aW9uQ29udGV4dCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tc2hlbGwtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBET01BSU5TLCBMT0dPVVRfUkVBU09OUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IFRBc3luY0xvY2FsZURhdGFQcm9wcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgQXN5bmNMb2NhbGVEYXRhIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zTGlzdCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3JlYWN0LW5vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHtcbiAgcmVwb3J0RXJyb3JUb1NlbnRyeSxcbiAgU2VudHJ5VXNlclRyYWNrZXIsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NlbnRyeSc7XG5pbXBvcnQgeyBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLCBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgR3RtQXBwbGljYXRpb25UcmFja2VyIGZyb20gJy4uL2d0bS1hcHBsaWNhdGlvbi10cmFja2VyJztcbmltcG9ydCBHdG1Vc2VyVHJhY2tlciBmcm9tICcuLi9ndG0tdXNlci10cmFja2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBMb2FkaW5nTmF2QmFyIGZyb20gJy4uL25hdmJhci9sb2FkaW5nLW5hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiA8VHJhY2tGbj4oXG4gICAgZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PixcbiAgICB0cmFjazogVHJhY2tGblxuICApID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMjtcbiAgZ3JpZC1yb3c6IDM7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuICAgICAgICAgIGNvbnN0IHVzZXJMb2NhbGUgPSBnZXRCcm93c2VyTG9jYWxlKHdpbmRvdyk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHsvKlxuICAgICAgICAgICAgTk9URTogd2UgZG8gbm90IHdhbnQgdG8gbG9hZCB0aGUgbG9jYWxlIGRhdGEgYXMgbG9uZyBhcyB3ZSBkbyBub3RcbiAgICAgICAgICAgIGtub3cgdGhlIHVzZXIgc2V0dGluZy4gVGhpcyBpcyBpbXBvcnRhbnQgaW4gb3JkZXIgdG8gYXZvaWQgZmxhc2hpbmdcbiAgICAgICAgICAgIG9mIHRyYW5zbGF0ZWQgY29udGVudCBvbiBzdWJzZXF1ZW50IHJlLXJlbmRlcnMuXG4gICAgICAgICAgICBUaGVyZWZvcmUsIGFzIGxvbmcgYXMgdGhlcmUgaXMgbm8gbG9jYWxlLCB0aGUgY2hpbGRyZW4gc2hvdWxkIGNvbnNpZGVyIHVzaW5nIHRoZVxuICAgICAgICAgICAgYGlzTG9hZGluZ2AgcHJvcCB0byBkZWNpZGUgd2hhdCB0byByZW5kZXIuXG4gICAgICAgICAgKi99XG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bVVzZXJUcmFja2VyIHVzZXI9e3VzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bUFwcGxpY2F0aW9uVHJhY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25OYW1lPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmFwcGxpY2F0aW9uTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlckJ1c2luZXNzUm9sZT17dXNlcj8uYnVzaW5lc3NSb2xlID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gPFF1aWNrQWNjZXNzIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmV0Y2hQcm9qZWN0IHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNQcm9qZWN0TG9hZGluZywgcHJvamVjdCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJvamVjdExvYWRpbmcgfHwgIXByb2plY3QpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgbG9hZGluZyBuYXZiYXIgYXMgbG9uZyBhcyBhbGwgdGhlIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXNuJ3QgYmVlbiBsb2FkZWQsIG9yIGlmIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1VzZXIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ0xvY2FsZURhdGEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1Byb2plY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFsb2NhbGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nTmF2QmFyIC8+O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybCA/IERJTUVOU0lPTlMubmF2TWVudSA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBESU1FTlNJT05TLm5hdk1lbnVFeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbT1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgcGF0aD1cIi9hY2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgcmVuZGVyYCBmdW5jdGlvbiwgd2UgYXNzdW1lIGl0J3Mgb25lIG9mIHR3byBjYXNlczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuIFRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCB1c2UgYGNoaWxkcmVuYCBhbmQgdGhlcmVmb3JlIGltcGxlbWVudHMgdGhlIHJvdXRlcyBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSA8Um91dGVDYXRjaEFsbD4gKHRoaXMgaXMgdGhlIFwibGVnYWN5XCIgYmVoYXZpb3IpLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMi4gSXQncyB0aGUgYWNjb3VudCBhcHBsaWNhdGlvbiwgd2hpY2ggYWx3YXlzIHVzZXMgYHJlbmRlcmAgYW5kIHRoZXJlZm9yZSBzaG91bGQgcmVuZGVyIGFzIG5vcm1hbC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgY2hpbGRyZW5gIGZ1bmN0aW9uLCB3ZSBjYW4gYWx3YXlzIGFzc3VtZSB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpdCdzIGEgbm9ybWFsIEN1c3RvbSBBcHBsaWNhdGlvbiBhbmQgdGhhdCBpdCBzaG91bGQgdHJpZ2dlciBhIGZvcmNlIHJlbG9hZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucmVuZGVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Pntwcm9wcy5yZW5kZXIoKX08Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZUNhdGNoQWxsIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogUHJvamVjdCByb3V0ZXMgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17dHJ1ZX0gcGF0aD1cIi9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzUHJvamVjdEtleSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByZXZpb3VzUHJvamVjdEtleShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPy5kZWZhdWx0UHJvamVjdEtleSA/PyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyKSByZXR1cm4gPEFwcGxpY2F0aW9uTG9hZGVyIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1Byb2plY3RLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89e2AvJHtwcmV2aW91c1Byb2plY3RLZXl9YH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXtmYWxzZX0gcGF0aD1cIi86cHJvamVjdEtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9qZWN0Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */",
2024
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
2025
+ };
2026
+
2027
+ var _ref2 = process.env.NODE_ENV === "production" ? {
2028
+ name: "14w5yo3",
2029
+ styles: "position:relative;grid-row:3;display:flex;flex-direction:column"
2030
+ } : {
2031
+ name: "o2v7no-ApplicationShellAuthenticated",
2032
+ styles: "position:relative;grid-row:3;display:flex;flex-direction:column;label:ApplicationShellAuthenticated;",
2033
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThTa0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHR5cGUgVEFwcGxpY2F0aW9uQ29udGV4dCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tc2hlbGwtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBET01BSU5TLCBMT0dPVVRfUkVBU09OUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IFRBc3luY0xvY2FsZURhdGFQcm9wcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgQXN5bmNMb2NhbGVEYXRhIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zTGlzdCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3JlYWN0LW5vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHtcbiAgcmVwb3J0RXJyb3JUb1NlbnRyeSxcbiAgU2VudHJ5VXNlclRyYWNrZXIsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NlbnRyeSc7XG5pbXBvcnQgeyBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLCBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgR3RtQXBwbGljYXRpb25UcmFja2VyIGZyb20gJy4uL2d0bS1hcHBsaWNhdGlvbi10cmFja2VyJztcbmltcG9ydCBHdG1Vc2VyVHJhY2tlciBmcm9tICcuLi9ndG0tdXNlci10cmFja2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBMb2FkaW5nTmF2QmFyIGZyb20gJy4uL25hdmJhci9sb2FkaW5nLW5hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiA8VHJhY2tGbj4oXG4gICAgZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PixcbiAgICB0cmFjazogVHJhY2tGblxuICApID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMjtcbiAgZ3JpZC1yb3c6IDM7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuICAgICAgICAgIGNvbnN0IHVzZXJMb2NhbGUgPSBnZXRCcm93c2VyTG9jYWxlKHdpbmRvdyk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHsvKlxuICAgICAgICAgICAgTk9URTogd2UgZG8gbm90IHdhbnQgdG8gbG9hZCB0aGUgbG9jYWxlIGRhdGEgYXMgbG9uZyBhcyB3ZSBkbyBub3RcbiAgICAgICAgICAgIGtub3cgdGhlIHVzZXIgc2V0dGluZy4gVGhpcyBpcyBpbXBvcnRhbnQgaW4gb3JkZXIgdG8gYXZvaWQgZmxhc2hpbmdcbiAgICAgICAgICAgIG9mIHRyYW5zbGF0ZWQgY29udGVudCBvbiBzdWJzZXF1ZW50IHJlLXJlbmRlcnMuXG4gICAgICAgICAgICBUaGVyZWZvcmUsIGFzIGxvbmcgYXMgdGhlcmUgaXMgbm8gbG9jYWxlLCB0aGUgY2hpbGRyZW4gc2hvdWxkIGNvbnNpZGVyIHVzaW5nIHRoZVxuICAgICAgICAgICAgYGlzTG9hZGluZ2AgcHJvcCB0byBkZWNpZGUgd2hhdCB0byByZW5kZXIuXG4gICAgICAgICAgKi99XG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bVVzZXJUcmFja2VyIHVzZXI9e3VzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bUFwcGxpY2F0aW9uVHJhY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25OYW1lPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmFwcGxpY2F0aW9uTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlckJ1c2luZXNzUm9sZT17dXNlcj8uYnVzaW5lc3NSb2xlID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gPFF1aWNrQWNjZXNzIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmV0Y2hQcm9qZWN0IHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNQcm9qZWN0TG9hZGluZywgcHJvamVjdCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJvamVjdExvYWRpbmcgfHwgIXByb2plY3QpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgbG9hZGluZyBuYXZiYXIgYXMgbG9uZyBhcyBhbGwgdGhlIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXNuJ3QgYmVlbiBsb2FkZWQsIG9yIGlmIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1VzZXIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ0xvY2FsZURhdGEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1Byb2plY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFsb2NhbGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nTmF2QmFyIC8+O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybCA/IERJTUVOU0lPTlMubmF2TWVudSA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBESU1FTlNJT05TLm5hdk1lbnVFeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbT1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgcGF0aD1cIi9hY2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgcmVuZGVyYCBmdW5jdGlvbiwgd2UgYXNzdW1lIGl0J3Mgb25lIG9mIHR3byBjYXNlczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuIFRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCB1c2UgYGNoaWxkcmVuYCBhbmQgdGhlcmVmb3JlIGltcGxlbWVudHMgdGhlIHJvdXRlcyBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSA8Um91dGVDYXRjaEFsbD4gKHRoaXMgaXMgdGhlIFwibGVnYWN5XCIgYmVoYXZpb3IpLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMi4gSXQncyB0aGUgYWNjb3VudCBhcHBsaWNhdGlvbiwgd2hpY2ggYWx3YXlzIHVzZXMgYHJlbmRlcmAgYW5kIHRoZXJlZm9yZSBzaG91bGQgcmVuZGVyIGFzIG5vcm1hbC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgY2hpbGRyZW5gIGZ1bmN0aW9uLCB3ZSBjYW4gYWx3YXlzIGFzc3VtZSB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpdCdzIGEgbm9ybWFsIEN1c3RvbSBBcHBsaWNhdGlvbiBhbmQgdGhhdCBpdCBzaG91bGQgdHJpZ2dlciBhIGZvcmNlIHJlbG9hZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucmVuZGVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Pntwcm9wcy5yZW5kZXIoKX08Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZUNhdGNoQWxsIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogUHJvamVjdCByb3V0ZXMgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17dHJ1ZX0gcGF0aD1cIi9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzUHJvamVjdEtleSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByZXZpb3VzUHJvamVjdEtleShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPy5kZWZhdWx0UHJvamVjdEtleSA/PyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyKSByZXR1cm4gPEFwcGxpY2F0aW9uTG9hZGVyIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1Byb2plY3RLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89e2AvJHtwcmV2aW91c1Byb2plY3RLZXl9YH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXtmYWxzZX0gcGF0aD1cIi86cHJvamVjdEtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9qZWN0Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */",
2034
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
2035
+ };
2036
+
2037
+ var _ref3 = process.env.NODE_ENV === "production" ? {
2038
+ name: "fqjitq",
2039
+ styles: "grid-row:2;grid-column:1/3"
2040
+ } : {
2041
+ name: "1u7gg3q-ApplicationShellAuthenticated",
2042
+ styles: "grid-row:2;grid-column:1/3;label:ApplicationShellAuthenticated;",
2043
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtTa0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHR5cGUgVEFwcGxpY2F0aW9uQ29udGV4dCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tc2hlbGwtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBET01BSU5TLCBMT0dPVVRfUkVBU09OUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IFRBc3luY0xvY2FsZURhdGFQcm9wcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgQXN5bmNMb2NhbGVEYXRhIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zTGlzdCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3JlYWN0LW5vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHtcbiAgcmVwb3J0RXJyb3JUb1NlbnRyeSxcbiAgU2VudHJ5VXNlclRyYWNrZXIsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NlbnRyeSc7XG5pbXBvcnQgeyBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLCBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgR3RtQXBwbGljYXRpb25UcmFja2VyIGZyb20gJy4uL2d0bS1hcHBsaWNhdGlvbi10cmFja2VyJztcbmltcG9ydCBHdG1Vc2VyVHJhY2tlciBmcm9tICcuLi9ndG0tdXNlci10cmFja2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBMb2FkaW5nTmF2QmFyIGZyb20gJy4uL25hdmJhci9sb2FkaW5nLW5hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiA8VHJhY2tGbj4oXG4gICAgZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PixcbiAgICB0cmFjazogVHJhY2tGblxuICApID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMjtcbiAgZ3JpZC1yb3c6IDM7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuICAgICAgICAgIGNvbnN0IHVzZXJMb2NhbGUgPSBnZXRCcm93c2VyTG9jYWxlKHdpbmRvdyk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHsvKlxuICAgICAgICAgICAgTk9URTogd2UgZG8gbm90IHdhbnQgdG8gbG9hZCB0aGUgbG9jYWxlIGRhdGEgYXMgbG9uZyBhcyB3ZSBkbyBub3RcbiAgICAgICAgICAgIGtub3cgdGhlIHVzZXIgc2V0dGluZy4gVGhpcyBpcyBpbXBvcnRhbnQgaW4gb3JkZXIgdG8gYXZvaWQgZmxhc2hpbmdcbiAgICAgICAgICAgIG9mIHRyYW5zbGF0ZWQgY29udGVudCBvbiBzdWJzZXF1ZW50IHJlLXJlbmRlcnMuXG4gICAgICAgICAgICBUaGVyZWZvcmUsIGFzIGxvbmcgYXMgdGhlcmUgaXMgbm8gbG9jYWxlLCB0aGUgY2hpbGRyZW4gc2hvdWxkIGNvbnNpZGVyIHVzaW5nIHRoZVxuICAgICAgICAgICAgYGlzTG9hZGluZ2AgcHJvcCB0byBkZWNpZGUgd2hhdCB0byByZW5kZXIuXG4gICAgICAgICAgKi99XG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bVVzZXJUcmFja2VyIHVzZXI9e3VzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bUFwcGxpY2F0aW9uVHJhY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25OYW1lPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmFwcGxpY2F0aW9uTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlckJ1c2luZXNzUm9sZT17dXNlcj8uYnVzaW5lc3NSb2xlID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gPFF1aWNrQWNjZXNzIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmV0Y2hQcm9qZWN0IHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNQcm9qZWN0TG9hZGluZywgcHJvamVjdCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJvamVjdExvYWRpbmcgfHwgIXByb2plY3QpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgbG9hZGluZyBuYXZiYXIgYXMgbG9uZyBhcyBhbGwgdGhlIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXNuJ3QgYmVlbiBsb2FkZWQsIG9yIGlmIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1VzZXIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ0xvY2FsZURhdGEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1Byb2plY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFsb2NhbGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nTmF2QmFyIC8+O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybCA/IERJTUVOU0lPTlMubmF2TWVudSA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBESU1FTlNJT05TLm5hdk1lbnVFeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbT1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgcGF0aD1cIi9hY2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgcmVuZGVyYCBmdW5jdGlvbiwgd2UgYXNzdW1lIGl0J3Mgb25lIG9mIHR3byBjYXNlczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuIFRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCB1c2UgYGNoaWxkcmVuYCBhbmQgdGhlcmVmb3JlIGltcGxlbWVudHMgdGhlIHJvdXRlcyBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSA8Um91dGVDYXRjaEFsbD4gKHRoaXMgaXMgdGhlIFwibGVnYWN5XCIgYmVoYXZpb3IpLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMi4gSXQncyB0aGUgYWNjb3VudCBhcHBsaWNhdGlvbiwgd2hpY2ggYWx3YXlzIHVzZXMgYHJlbmRlcmAgYW5kIHRoZXJlZm9yZSBzaG91bGQgcmVuZGVyIGFzIG5vcm1hbC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgY2hpbGRyZW5gIGZ1bmN0aW9uLCB3ZSBjYW4gYWx3YXlzIGFzc3VtZSB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpdCdzIGEgbm9ybWFsIEN1c3RvbSBBcHBsaWNhdGlvbiBhbmQgdGhhdCBpdCBzaG91bGQgdHJpZ2dlciBhIGZvcmNlIHJlbG9hZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucmVuZGVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Pntwcm9wcy5yZW5kZXIoKX08Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZUNhdGNoQWxsIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogUHJvamVjdCByb3V0ZXMgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17dHJ1ZX0gcGF0aD1cIi9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzUHJvamVjdEtleSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByZXZpb3VzUHJvamVjdEtleShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPy5kZWZhdWx0UHJvamVjdEtleSA/PyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyKSByZXR1cm4gPEFwcGxpY2F0aW9uTG9hZGVyIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1Byb2plY3RLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89e2AvJHtwcmV2aW91c1Byb2plY3RLZXl9YH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXtmYWxzZX0gcGF0aD1cIi86cHJvamVjdEtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9qZWN0Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */",
2044
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
2045
+ };
2046
+
2047
+ var _ref4 = process.env.NODE_ENV === "production" ? {
2048
+ name: "8bdwu0",
2049
+ styles: "grid-row:1;grid-column:1/3"
2050
+ } : {
2051
+ name: "u4fwut-ApplicationShellAuthenticated",
2052
+ styles: "grid-row:1;grid-column:1/3;label:ApplicationShellAuthenticated;",
2053
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlPa0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHR5cGUgVEFwcGxpY2F0aW9uQ29udGV4dCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tc2hlbGwtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBET01BSU5TLCBMT0dPVVRfUkVBU09OUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IFRBc3luY0xvY2FsZURhdGFQcm9wcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgQXN5bmNMb2NhbGVEYXRhIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zTGlzdCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3JlYWN0LW5vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHtcbiAgcmVwb3J0RXJyb3JUb1NlbnRyeSxcbiAgU2VudHJ5VXNlclRyYWNrZXIsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NlbnRyeSc7XG5pbXBvcnQgeyBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLCBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgR3RtQXBwbGljYXRpb25UcmFja2VyIGZyb20gJy4uL2d0bS1hcHBsaWNhdGlvbi10cmFja2VyJztcbmltcG9ydCBHdG1Vc2VyVHJhY2tlciBmcm9tICcuLi9ndG0tdXNlci10cmFja2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBMb2FkaW5nTmF2QmFyIGZyb20gJy4uL25hdmJhci9sb2FkaW5nLW5hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiA8VHJhY2tGbj4oXG4gICAgZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PixcbiAgICB0cmFjazogVHJhY2tGblxuICApID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMjtcbiAgZ3JpZC1yb3c6IDM7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuICAgICAgICAgIGNvbnN0IHVzZXJMb2NhbGUgPSBnZXRCcm93c2VyTG9jYWxlKHdpbmRvdyk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHsvKlxuICAgICAgICAgICAgTk9URTogd2UgZG8gbm90IHdhbnQgdG8gbG9hZCB0aGUgbG9jYWxlIGRhdGEgYXMgbG9uZyBhcyB3ZSBkbyBub3RcbiAgICAgICAgICAgIGtub3cgdGhlIHVzZXIgc2V0dGluZy4gVGhpcyBpcyBpbXBvcnRhbnQgaW4gb3JkZXIgdG8gYXZvaWQgZmxhc2hpbmdcbiAgICAgICAgICAgIG9mIHRyYW5zbGF0ZWQgY29udGVudCBvbiBzdWJzZXF1ZW50IHJlLXJlbmRlcnMuXG4gICAgICAgICAgICBUaGVyZWZvcmUsIGFzIGxvbmcgYXMgdGhlcmUgaXMgbm8gbG9jYWxlLCB0aGUgY2hpbGRyZW4gc2hvdWxkIGNvbnNpZGVyIHVzaW5nIHRoZVxuICAgICAgICAgICAgYGlzTG9hZGluZ2AgcHJvcCB0byBkZWNpZGUgd2hhdCB0byByZW5kZXIuXG4gICAgICAgICAgKi99XG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bVVzZXJUcmFja2VyIHVzZXI9e3VzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bUFwcGxpY2F0aW9uVHJhY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25OYW1lPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmFwcGxpY2F0aW9uTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlckJ1c2luZXNzUm9sZT17dXNlcj8uYnVzaW5lc3NSb2xlID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gPFF1aWNrQWNjZXNzIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmV0Y2hQcm9qZWN0IHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNQcm9qZWN0TG9hZGluZywgcHJvamVjdCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJvamVjdExvYWRpbmcgfHwgIXByb2plY3QpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgbG9hZGluZyBuYXZiYXIgYXMgbG9uZyBhcyBhbGwgdGhlIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXNuJ3QgYmVlbiBsb2FkZWQsIG9yIGlmIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1VzZXIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ0xvY2FsZURhdGEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1Byb2plY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFsb2NhbGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nTmF2QmFyIC8+O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybCA/IERJTUVOU0lPTlMubmF2TWVudSA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBESU1FTlNJT05TLm5hdk1lbnVFeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbT1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgcGF0aD1cIi9hY2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgcmVuZGVyYCBmdW5jdGlvbiwgd2UgYXNzdW1lIGl0J3Mgb25lIG9mIHR3byBjYXNlczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuIFRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCB1c2UgYGNoaWxkcmVuYCBhbmQgdGhlcmVmb3JlIGltcGxlbWVudHMgdGhlIHJvdXRlcyBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSA8Um91dGVDYXRjaEFsbD4gKHRoaXMgaXMgdGhlIFwibGVnYWN5XCIgYmVoYXZpb3IpLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMi4gSXQncyB0aGUgYWNjb3VudCBhcHBsaWNhdGlvbiwgd2hpY2ggYWx3YXlzIHVzZXMgYHJlbmRlcmAgYW5kIHRoZXJlZm9yZSBzaG91bGQgcmVuZGVyIGFzIG5vcm1hbC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgY2hpbGRyZW5gIGZ1bmN0aW9uLCB3ZSBjYW4gYWx3YXlzIGFzc3VtZSB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpdCdzIGEgbm9ybWFsIEN1c3RvbSBBcHBsaWNhdGlvbiBhbmQgdGhhdCBpdCBzaG91bGQgdHJpZ2dlciBhIGZvcmNlIHJlbG9hZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucmVuZGVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Pntwcm9wcy5yZW5kZXIoKX08Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZUNhdGNoQWxsIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogUHJvamVjdCByb3V0ZXMgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17dHJ1ZX0gcGF0aD1cIi9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzUHJvamVjdEtleSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByZXZpb3VzUHJvamVjdEtleShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPy5kZWZhdWx0UHJvamVjdEtleSA/PyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyKSByZXR1cm4gPEFwcGxpY2F0aW9uTG9hZGVyIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1Byb2plY3RLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89e2AvJHtwcmV2aW91c1Byb2plY3RLZXl9YH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXtmYWxzZX0gcGF0aD1cIi86cHJvamVjdEtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9qZWN0Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */",
2054
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
2055
+ };
2056
+
2057
+ const ApplicationShellAuthenticated = props => {
2058
+ const applicationEnvironment = applicationShellConnectors.useApplicationContext(context => context.environment); // TODO: using this hook will subscribe the component to route updates.
2059
+ // This is currently useful for detecting a change in the project key
2060
+ // from URL ("/" --> "/:projectKey").
2061
+ // However, every route change will trigger a re-render. This is probably
2062
+ // ok-ish but we might want to look into a more performant solution.
2063
+
2064
+ const location = reactRouterDom.useLocation();
2065
+ const notificationsGlobalRef = react.useRef(null);
2066
+ const notificationsPageRef = react.useRef(null);
2067
+ const layoutRefs = react.useRef({
2068
+ notificationsGlobalRef,
2069
+ notificationsPageRef
2070
+ });
2071
+ return jsxRuntime.jsx(FetchUser, {
2072
+ children: _ref5 => {
2073
+ let isLoadingUser = _ref5.isLoading,
2074
+ user = _ref5.user,
2075
+ error = _ref5.error;
2076
+
2077
+ if (error) {
2078
+ // In case there is an unauthorized error, we redirect to the login page
2079
+ if (error.graphQLErrors && _Array$isArray__default["default"](error.graphQLErrors)) {
2080
+ const hasUnauthorizedError = getHasUnauthorizedError(error.graphQLErrors);
2081
+ const hasUserBeenDeletedError = getHasUserBeenDeletedError(error.graphQLErrors);
2082
+
2083
+ if (hasUnauthorizedError || hasUserBeenDeletedError) {
2084
+ let logoutReason;
2085
+ if (hasUnauthorizedError) logoutReason = constants$1.LOGOUT_REASONS.UNAUTHORIZED;else if (hasUserBeenDeletedError) logoutReason = constants$1.LOGOUT_REASONS.DELETED;
2086
+ return jsxRuntime.jsx(RedirectToLogout, {
2087
+ reason: logoutReason
2088
+ });
2089
+ }
2090
+ } // Since we do not know the locale of the user, we pick it from the
2091
+ // user's browser to attempt to match the language for the correct translations.
2092
+
2093
+
2094
+ const userLocale = getBrowserLocale(window);
2095
+ return jsxRuntime.jsx(i18n.AsyncLocaleData, {
2096
+ locale: userLocale,
2097
+ applicationMessages: props.applicationMessages,
2098
+ children: _ref6 => {
2099
+ let locale = _ref6.locale,
2100
+ messages = _ref6.messages;
2101
+ sentry.reportErrorToSentry(error, {});
2102
+ return jsxRuntime.jsx(ConfigureIntlProvider, {
2103
+ locale: locale,
2104
+ messages: messages,
2105
+ children: jsxRuntime.jsx(ErrorApologizer, {})
2106
+ });
2107
+ }
2108
+ });
2109
+ }
2110
+
2111
+ const projectKeyFromUrl = configureApollo.selectProjectKeyFromUrl(location.pathname);
2112
+ return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
2113
+ user: user,
2114
+ environment: applicationEnvironment,
2115
+ children: jsxRuntime.jsx(i18n.AsyncLocaleData, {
2116
+ locale: user === null || user === void 0 ? void 0 : user.language,
2117
+ applicationMessages: props.applicationMessages,
2118
+ children: _ref7 => {
2119
+ var _user$businessRole;
2120
+
2121
+ let isLoadingLocaleData = _ref7.isLoading,
2122
+ locale = _ref7.locale,
2123
+ messages = _ref7.messages;
2124
+ return jsxRuntime.jsx(ConfigureIntlProvider // We do not want to pass the language as long as the locale data
2125
+ // is not loaded.
2126
+ , _objectSpread$3(_objectSpread$3({}, isLoadingLocaleData ? {} : {
2127
+ locale,
2128
+ messages
2129
+ }), {}, {
2130
+ children: jsxRuntime.jsx(SetupFlopFlipProvider, {
2131
+ user: user,
2132
+ projectKey: projectKeyFromUrl,
2133
+ ldClientSideId: applicationEnvironment.ldClientSideId,
2134
+ flags: props.featureFlags,
2135
+ defaultFlags: props.defaultFeatureFlags,
2136
+ children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
2137
+ children: [jsxRuntime.jsx(ThemeSwitcher, {}), jsxRuntime.jsx(VersionTracker, {}), jsxRuntime.jsx(RequestsInFlightLoader, {}), jsxRuntime.jsx(sentry.SentryUserTracker, {
2138
+ user: user !== null && user !== void 0 ? user : undefined
2139
+ }), jsxRuntime.jsx(GtmUserTracker, {
2140
+ user: user
2141
+ }), jsxRuntime.jsx(GtmApplicationTracker, {
2142
+ applicationName: applicationEnvironment.applicationName,
2143
+ projectKey: projectKeyFromUrl,
2144
+ userBusinessRole: (_user$businessRole = user === null || user === void 0 ? void 0 : user.businessRole) !== null && _user$businessRole !== void 0 ? _user$businessRole : undefined
2145
+ }), jsxRuntime.jsxs("div", {
2146
+ css: /*#__PURE__*/react$1.css("height:100vh;display:grid;grid-template-rows:auto ", constants.DIMENSIONS.header, " 1fr;grid-template-columns:auto 1fr;" + (process.env.NODE_ENV === "production" ? "" : ";label:ApplicationShellAuthenticated;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThOZ0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHR5cGUgU3ludGhldGljRXZlbnQsXG4gIHVzZVJlZixcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHR5cGUgeyBBcG9sbG9FcnJvciB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFRGbGFncyB9IGZyb20gJ0BmbG9wZmxpcC90eXBlcyc7XG5pbXBvcnQgeyBSZWRpcmVjdCwgUm91dGUsIFN3aXRjaCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFBvcnRhbHNDb250YWluZXIgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHR5cGUgVEFwcGxpY2F0aW9uQ29udGV4dCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tc2hlbGwtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBET01BSU5TLCBMT0dPVVRfUkVBU09OUyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IFRBc3luY0xvY2FsZURhdGFQcm9wcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgQXN5bmNMb2NhbGVEYXRhIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zTGlzdCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3JlYWN0LW5vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHtcbiAgcmVwb3J0RXJyb3JUb1NlbnRyeSxcbiAgU2VudHJ5VXNlclRyYWNrZXIsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NlbnRyeSc7XG5pbXBvcnQgeyBESU1FTlNJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLCBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IENvbmZpZ3VyZUludGxQcm92aWRlciBmcm9tICcuLi9jb25maWd1cmUtaW50bC1wcm92aWRlcic7XG5pbXBvcnQgRXJyb3JBcG9sb2dpemVyIGZyb20gJy4uL2Vycm9yLWFwb2xvZ2l6ZXInO1xuaW1wb3J0IEZldGNoUHJvamVjdCBmcm9tICcuLi9mZXRjaC1wcm9qZWN0JztcbmltcG9ydCBGZXRjaFVzZXIgZnJvbSAnLi4vZmV0Y2gtdXNlcic7XG5pbXBvcnQgR3RtQXBwbGljYXRpb25UcmFja2VyIGZyb20gJy4uL2d0bS1hcHBsaWNhdGlvbi10cmFja2VyJztcbmltcG9ydCBHdG1Vc2VyVHJhY2tlciBmcm9tICcuLi9ndG0tdXNlci10cmFja2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBMb2FkaW5nTmF2QmFyIGZyb20gJy4uL25hdmJhci9sb2FkaW5nLW5hdmJhcic7XG5pbXBvcnQgUHJvamVjdENvbnRhaW5lciBmcm9tICcuLi9wcm9qZWN0LWNvbnRhaW5lcic7XG5pbXBvcnQgUHJvamVjdERhdGFMb2NhbGUgZnJvbSAnLi4vcHJvamVjdC1kYXRhLWxvY2FsZSc7XG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi4vcXVpY2stYWNjZXNzJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuaW1wb3J0IFZlcnNpb25UcmFja2VyIGZyb20gJy4uL3ZlcnNpb24tdHJhY2tlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiA8VHJhY2tGbj4oXG4gICAgZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PixcbiAgICB0cmFjazogVHJhY2tGblxuICApID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMjtcbiAgZ3JpZC1yb3c6IDM7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuICAgICAgICAgIGNvbnN0IHVzZXJMb2NhbGUgPSBnZXRCcm93c2VyTG9jYWxlKHdpbmRvdyk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHsvKlxuICAgICAgICAgICAgTk9URTogd2UgZG8gbm90IHdhbnQgdG8gbG9hZCB0aGUgbG9jYWxlIGRhdGEgYXMgbG9uZyBhcyB3ZSBkbyBub3RcbiAgICAgICAgICAgIGtub3cgdGhlIHVzZXIgc2V0dGluZy4gVGhpcyBpcyBpbXBvcnRhbnQgaW4gb3JkZXIgdG8gYXZvaWQgZmxhc2hpbmdcbiAgICAgICAgICAgIG9mIHRyYW5zbGF0ZWQgY29udGVudCBvbiBzdWJzZXF1ZW50IHJlLXJlbmRlcnMuXG4gICAgICAgICAgICBUaGVyZWZvcmUsIGFzIGxvbmcgYXMgdGhlcmUgaXMgbm8gbG9jYWxlLCB0aGUgY2hpbGRyZW4gc2hvdWxkIGNvbnNpZGVyIHVzaW5nIHRoZVxuICAgICAgICAgICAgYGlzTG9hZGluZ2AgcHJvcCB0byBkZWNpZGUgd2hhdCB0byByZW5kZXIuXG4gICAgICAgICAgKi99XG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxWZXJzaW9uVHJhY2tlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bVVzZXJUcmFja2VyIHVzZXI9e3VzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEd0bUFwcGxpY2F0aW9uVHJhY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25OYW1lPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmFwcGxpY2F0aW9uTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlckJ1c2luZXNzUm9sZT17dXNlcj8uYnVzaW5lc3NSb2xlID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gPFF1aWNrQWNjZXNzIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmV0Y2hQcm9qZWN0IHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNQcm9qZWN0TG9hZGluZywgcHJvamVjdCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUHJvamVjdExvYWRpbmcgfHwgIXByb2plY3QpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBwcm9qZWN0IGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3Igd2hlbiB0aGUgcHJvamVjdCBpcyBleHBpcmVkIG9yIHN1cHNlbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZFVzZVByb2plY3RDb250ZXh0ID0gIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LnN1c3BlbnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdC5zdXNwZW5zaW9uLmlzQWN0aXZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2plY3QuZXhwaXJ5ICYmIHByb2plY3QuZXhwaXJ5LmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNob3VsZFVzZVByb2plY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxRdWlja0FjY2VzcyAvPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdERhdGFMb2NhbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlcz17cHJvamVjdC5sYW5ndWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogZGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0RGF0YUxvY2FsZT17ZGF0YUxvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZVByb2plY3REYXRhTG9jYWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9qZWN0RGF0YUxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3REYXRhTG9jYWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwQmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbmRlciB0aGUgbG9hZGluZyBuYXZiYXIgYXMgbG9uZyBhcyBhbGwgdGhlIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXNuJ3QgYmVlbiBsb2FkZWQsIG9yIGlmIHRoZSBwcm9qZWN0IGRvZXMgbm90IGV4aXN0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1VzZXIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ0xvY2FsZURhdGEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZ1Byb2plY3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFsb2NhbGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxMb2FkaW5nTmF2QmFyIC8+O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybCA/IERJTUVOU0lPTlMubmF2TWVudSA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBESU1FTlNJT05TLm5hdk1lbnVFeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbT1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgcGF0aD1cIi9hY2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgcmVuZGVyYCBmdW5jdGlvbiwgd2UgYXNzdW1lIGl0J3Mgb25lIG9mIHR3byBjYXNlczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuIFRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCB1c2UgYGNoaWxkcmVuYCBhbmQgdGhlcmVmb3JlIGltcGxlbWVudHMgdGhlIHJvdXRlcyBpbmNsdWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSA8Um91dGVDYXRjaEFsbD4gKHRoaXMgaXMgdGhlIFwibGVnYWN5XCIgYmVoYXZpb3IpLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMi4gSXQncyB0aGUgYWNjb3VudCBhcHBsaWNhdGlvbiwgd2hpY2ggYWx3YXlzIHVzZXMgYHJlbmRlcmAgYW5kIHRoZXJlZm9yZSBzaG91bGQgcmVuZGVyIGFzIG5vcm1hbC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJbiBjYXNlIHRoZSBBcHBTaGVsbCB1c2VzIHRoZSBgY2hpbGRyZW5gIGZ1bmN0aW9uLCB3ZSBjYW4gYWx3YXlzIGFzc3VtZSB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpdCdzIGEgbm9ybWFsIEN1c3RvbSBBcHBsaWNhdGlvbiBhbmQgdGhhdCBpdCBzaG91bGQgdHJpZ2dlciBhIGZvcmNlIHJlbG9hZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMucmVuZGVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Pntwcm9wcy5yZW5kZXIoKX08Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZUNhdGNoQWxsIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogUHJvamVjdCByb3V0ZXMgKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17dHJ1ZX0gcGF0aD1cIi9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzUHJvamVjdEtleSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByZXZpb3VzUHJvamVjdEtleShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPy5kZWZhdWx0UHJvamVjdEtleSA/PyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyKSByZXR1cm4gPEFwcGxpY2F0aW9uTG9hZGVyIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1Byb2plY3RLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89e2AvJHtwcmV2aW91c1Byb2plY3RLZXl9YH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXtmYWxzZX0gcGF0aD1cIi86cHJvamVjdEtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9qZWN0Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICA8L1NldHVwRmxvcEZsaXBQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgIDwvQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgICB9fVxuICAgIDwvRmV0Y2hVc2VyPlxuICApO1xufTtcbkFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkLmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkJztcblxuZXhwb3J0IGRlZmF1bHQgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQ7XG4iXX0= */"),
2147
+ children: [jsxRuntime.jsx("div", {
2148
+ ref: notificationsGlobalRef,
2149
+ role: "region",
2150
+ "aria-live": "polite",
2151
+ css: _ref4,
2152
+ children: jsxRuntime.jsx(reactNotifications.NotificationsList, {
2153
+ domain: constants$1.DOMAINS.GLOBAL
2154
+ })
2155
+ }), jsxRuntime.jsx(reactRouterDom.Route, {
2156
+ children: () => {
2157
+ if (!projectKeyFromUrl) return jsxRuntime.jsx(QuickAccessTrigger, {});
2158
+ return jsxRuntime.jsx(FetchProject, {
2159
+ projectKey: projectKeyFromUrl,
2160
+ children: _ref8 => {
2161
+ let isProjectLoading = _ref8.isLoading,
2162
+ project = _ref8.project;
2163
+ if (isProjectLoading || !project) return null; // when used outside of a project context,
2164
+ // or when the project is expired or supsended
2165
+
2166
+ const shouldUseProjectContext = !(project.suspension && project.suspension.isActive || project.expiry && project.expiry.isActive);
2167
+ if (!shouldUseProjectContext) return jsxRuntime.jsx(QuickAccessTrigger, {});
2168
+ return jsxRuntime.jsx(ProjectDataLocale, {
2169
+ locales: project.languages,
2170
+ children: _ref9 => {
2171
+ let dataLocale = _ref9.locale,
2172
+ setProjectDataLocale = _ref9.setProjectDataLocale;
2173
+ return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
2174
+ user: user,
2175
+ project: project,
2176
+ projectDataLocale: dataLocale,
2177
+ environment: applicationEnvironment,
2178
+ children: jsxRuntime.jsx(QuickAccessTrigger, {
2179
+ onChangeProjectDataLocale: setProjectDataLocale
2180
+ })
2181
+ });
2182
+ }
2183
+ });
2184
+ }
2185
+ });
2186
+ }
2187
+ }), jsxRuntime.jsx("header", {
2188
+ css: _ref3,
2189
+ children: jsxRuntime.jsx(AppBar, {
2190
+ user: user,
2191
+ projectKeyFromUrl: projectKeyFromUrl
2192
+ })
2193
+ }), jsxRuntime.jsx("aside", {
2194
+ css: _ref2,
2195
+ children: (() => {
2196
+ // The <NavBar> should only be rendered within a project
2197
+ // context, therefore when there is a `projectKey`.
2198
+ // If there is no `projectKey` in the URL (e.g. `/account`
2199
+ // routes), we don't render it.
2200
+ // NOTE: we also "cache" the `projectKey` in localStorage
2201
+ // but this should only be used to "re-hydrate" the URL
2202
+ // location (e.g when you go to `/`, there should be a
2203
+ // redirect to `/:projectKey`). Therefore, we should not
2204
+ // rely on the value in localStorage to determine which
2205
+ // `projectKey` is currently used.
2206
+ if (!projectKeyFromUrl) return null;
2207
+ return jsxRuntime.jsx(FetchProject, {
2208
+ projectKey: projectKeyFromUrl,
2209
+ children: _ref10 => {
2210
+ let isLoadingProject = _ref10.isLoading,
2211
+ project = _ref10.project;
2212
+ // Render the loading navbar as long as all the data
2213
+ // hasn't been loaded, or if the project does not exist.
2214
+ if (isLoadingUser || isLoadingLocaleData || isLoadingProject || !locale || !project) return jsxRuntime.jsx(LoadingNavBar, {});
2215
+ return jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
2216
+ user: user,
2217
+ environment: applicationEnvironment // NOTE: do not pass the `project` into the application context.
2218
+ // The permissions for the Navbar are resolved separately, within
2219
+ // a different React context.
2220
+ ,
2221
+ children: jsxRuntime.jsx(Navbar, {
2222
+ applicationLocale: locale,
2223
+ projectKey: projectKeyFromUrl,
2224
+ project: project,
2225
+ environment: applicationEnvironment,
2226
+ onMenuItemClick: props.onMenuItemClick
2227
+ })
2228
+ });
2229
+ }
2230
+ });
2231
+ })()
2232
+ }), isLoadingUser || isLoadingLocaleData ? jsxRuntime.jsx(MainContainer, {
2233
+ role: "main",
2234
+ children: jsxRuntime.jsx(ApplicationLoader, {})
2235
+ }) : jsxRuntime.jsxs(MainContainer, {
2236
+ role: "main",
2237
+ children: [jsxRuntime.jsx("div", {
2238
+ ref: notificationsPageRef,
2239
+ children: jsxRuntime.jsx(reactNotifications.NotificationsList, {
2240
+ domain: constants$1.DOMAINS.PAGE
2241
+ })
2242
+ }), jsxRuntime.jsx(reactNotifications.NotificationsList, {
2243
+ domain: constants$1.DOMAINS.SIDE
2244
+ }), jsxRuntime.jsxs("div", {
2245
+ css: _ref,
2246
+ children: [jsxRuntime.jsx(applicationComponents.PortalsContainer // @ts-ignore
2247
+ , {
2248
+ ref: layoutRefs,
2249
+ offsetTop: constants.DIMENSIONS.header,
2250
+ offsetLeft: projectKeyFromUrl ? constants.DIMENSIONS.navMenu : '0px',
2251
+ offsetLeftOnExpandedMenu: projectKeyFromUrl ? constants.DIMENSIONS.navMenuExpanded : '0px'
2252
+ }), jsxRuntime.jsxs(reactRouterDom.Switch, {
2253
+ children: [jsxRuntime.jsx(reactRouterDom.Redirect, {
2254
+ from: "/profile",
2255
+ to: "/account/profile"
2256
+ }), jsxRuntime.jsx(reactRouterDom.Route, {
2257
+ path: "/account",
2258
+ children:
2259
+ /**
2260
+ * In case the AppShell uses the `render` function, we assume it's one of two cases:
2261
+ * 1. The application does not use `children` and therefore implements the routes including
2262
+ * the <RouteCatchAll> (this is the "legacy" behavior).
2263
+ * 2. It's the account application, which always uses `render` and therefore should render as normal.
2264
+ *
2265
+ * In case the AppShell uses the `children` function, we can always assume that
2266
+ * it's a normal Custom Application and that it should trigger a force reload.
2267
+ */
2268
+ props.render ? jsxRuntime.jsx(jsxRuntime.Fragment, {
2269
+ children: props.render()
2270
+ }) : jsxRuntime.jsx(configureApollo.RouteCatchAll, {})
2271
+ }), jsxRuntime.jsx(reactRouterDom.Route, {
2272
+ exact: true,
2273
+ path: "/",
2274
+ children: (() => {
2275
+ var _user$defaultProjectK;
2276
+
2277
+ const previousProjectKey = getPreviousProjectKey((_user$defaultProjectK = user === null || user === void 0 ? void 0 : user.defaultProjectKey) !== null && _user$defaultProjectK !== void 0 ? _user$defaultProjectK : undefined);
2278
+ /**
2279
+ * NOTE:
2280
+ * Given the user has not been loaded a loading spinner is shown.
2281
+ * Given the user was not working on a project previously nor has a default
2282
+ * project, the user will be prompted to create one.
2283
+ * Given the user was working on a project previously or has a default
2284
+ * project, the application will redirect to that project.
2285
+ */
2286
+
2287
+ if (!user) return jsxRuntime.jsx(ApplicationLoader, {});
2288
+ if (!previousProjectKey) return jsxRuntime.jsx(RedirectToProjectCreate, {});
2289
+ return jsxRuntime.jsx(reactRouterDom.Redirect, {
2290
+ to: "/".concat(previousProjectKey)
2291
+ });
2292
+ })()
2293
+ }), jsxRuntime.jsx(reactRouterDom.Route, {
2294
+ exact: false,
2295
+ path: "/:projectKey",
2296
+ children: jsxRuntime.jsx(ProjectContainer, {
2297
+ user: user,
2298
+ environment: applicationEnvironment,
2299
+ disableRoutePermissionCheck: props.disableRoutePermissionCheck // This effectively renders the
2300
+ // children, which is the application
2301
+ // specific part
2302
+ ,
2303
+ render: props.render,
2304
+ children: props.children
2305
+ })
2306
+ })]
2307
+ })]
2308
+ })]
2309
+ })]
2310
+ })]
2311
+ })
2312
+ })
2313
+ }));
2314
+ }
2315
+ })
2316
+ });
2317
+ }
2318
+ });
2319
+ };
2320
+ ApplicationShellAuthenticated.propTypes = process.env.NODE_ENV !== "production" ? {
2321
+ featureFlags: _pt__default["default"].any,
2322
+ defaultFeatureFlags: _pt__default["default"].any,
2323
+ onMenuItemClick: _pt__default["default"].func,
2324
+ disableRoutePermissionCheck: _pt__default["default"].bool,
2325
+ render: _pt__default["default"].func,
2326
+ children: _pt__default["default"].node
2327
+ } : {};
2328
+ ApplicationShellAuthenticated.displayName = 'ApplicationShellAuthenticated';
2329
+
2330
+ // https://github.com/Zizzamia/perfume.js#quick-start
2331
+ const mapMetricToLabel = metricName => {
2332
+ switch (metricName) {
2333
+ case 'storageEstimate':
2334
+ return 'storageEstimate';
2335
+
2336
+ case 'fp':
2337
+ return 'firstPaint';
2338
+
2339
+ case 'fcp':
2340
+ return 'firstContentfulPaint';
2341
+
2342
+ case 'fid':
2343
+ return 'firstInputDelay';
2344
+
2345
+ case 'lcp':
2346
+ return 'largestContentfulPaint';
2347
+
2348
+ case 'lcpFinal':
2349
+ return 'largestContentfulPaintFinal';
2350
+
2351
+ case 'cls':
2352
+ return 'cumulativeLayoutShift';
2353
+
2354
+ case 'clsFinal':
2355
+ return 'cumulativeLayoutShiftFinal';
2356
+
2357
+ case 'tbt':
2358
+ return 'totalBlockingTime';
2359
+
2360
+ case 'tbt5S':
2361
+ return 'totalBlockingTime5S';
2362
+
2363
+ case 'tbt10S':
2364
+ return 'totalBlockingTime10S';
2365
+
2366
+ case 'tbtFinal':
2367
+ return 'totalBlockingTimeFinal';
2368
+
2369
+ default:
2370
+ return metricName;
2371
+ }
2372
+ };
2373
+
2374
+ const trackPerformance = () => {
2375
+ new Perfume__default["default"]({
2376
+ analyticsTracker: _ref => {
2377
+ let metricName = _ref.metricName,
2378
+ data = _ref.data;
2379
+
2380
+ switch (metricName) {
2381
+ case 'fp':
2382
+ case 'fcp':
2383
+ case 'fid':
2384
+ case 'lcp':
2385
+ case 'lcpFinal':
2386
+ case 'cls':
2387
+ case 'clsFinal':
2388
+ case 'tbt':
2389
+ case 'tbt10S':
2390
+ case 'tbtFinal':
2391
+ {
2392
+ const paintValue = data;
2393
+ trackTiming({
2394
+ category: 'Loading Performance',
2395
+ variable: mapMetricToLabel(metricName),
2396
+ value: paintValue
2397
+ });
2398
+ break;
2399
+ }
2400
+ // Navigation Timing collects performance metrics for the life and
2401
+ // timings of a network request.
2402
+
2403
+ case 'navigationTiming':
2404
+ {
2405
+ const navigationTiming = data;
2406
+ trackTiming({
2407
+ category: 'Navigation Timing',
2408
+ variable: metricName,
2409
+ value: navigationTiming.fetchTime,
2410
+ label: 'Fetch time'
2411
+ });
2412
+ trackTiming({
2413
+ category: 'Navigation Timing',
2414
+ variable: metricName,
2415
+ value: navigationTiming.timeToFirstByte,
2416
+ label: 'Time To First Byte'
2417
+ });
2418
+ trackTiming({
2419
+ category: 'Navigation Timing',
2420
+ variable: metricName,
2421
+ value: navigationTiming.dnsLookupTime,
2422
+ label: 'DNS lookup time'
2423
+ });
2424
+ trackTiming({
2425
+ category: 'Navigation Timing',
2426
+ variable: metricName,
2427
+ value: navigationTiming.totalTime,
2428
+ label: 'Total time'
2429
+ });
2430
+ break;
2431
+ }
2432
+ // Resource Timing collects performance metrics for document-dependent resources.
2433
+ // Stuff like style sheets, scripts, images, et cetera. Perfume helps expose all
2434
+ // PerformanceResourceTiming entries and group data data consumption by Kb used.
2435
+ // https://zizzamia.github.io/perfume/#/resource-timing/
2436
+
2437
+ case 'dataConsumption':
2438
+ {
2439
+ const dataConsumption = data;
2440
+ trackTiming({
2441
+ category: 'Resource Timing',
2442
+ variable: metricName,
2443
+ value: dataConsumption.css,
2444
+ label: 'CSS'
2445
+ });
2446
+ trackTiming({
2447
+ category: 'Resource Timing',
2448
+ variable: metricName,
2449
+ value: dataConsumption.script,
2450
+ label: 'Script'
2451
+ });
2452
+ trackTiming({
2453
+ category: 'Resource Timing',
2454
+ variable: metricName,
2455
+ value: dataConsumption.script,
2456
+ label: 'Total '
2457
+ });
2458
+ break;
2459
+ }
2460
+ }
2461
+ }
2462
+ });
2463
+ };
2464
+
2465
+ trackPerformance();
2466
+
2467
+ const maxTitleCharLength = 24;
2468
+ const staticPaths = ['account', 'login'];
2469
+ const defaultProps$1 = {
2470
+ additionalParts: []
2471
+ };
2472
+
2473
+ const getPageTitle = (pathname, additionalParts) => {
2474
+ const _pathname$split = pathname.split('/'),
2475
+ _pathname$split2 = _slicedToArray(_pathname$split, 3),
2476
+ projectKeyOrStaticPath = _pathname$split2[1],
2477
+ entryPointUriPath = _pathname$split2[2];
2478
+
2479
+ const customTitleParts = _mapInstanceProperty__default["default"](additionalParts).call(additionalParts, titlePart => {
2480
+ if (titlePart.length <= maxTitleCharLength) {
2481
+ return titlePart;
2482
+ }
2483
+
2484
+ return [_sliceInstanceProperty__default["default"](titlePart).call(titlePart, 0, maxTitleCharLength / 2), _sliceInstanceProperty__default["default"](titlePart).call(titlePart, titlePart.length - maxTitleCharLength / 2)].join('...');
2485
+ });
2486
+
2487
+ if (_includesInstanceProperty__default["default"](staticPaths).call(staticPaths, projectKeyOrStaticPath)) {
2488
+ return [...(customTitleParts || []), upperFirst__default["default"](projectKeyOrStaticPath), 'Merchant Center'].join(' - ');
2489
+ }
2490
+
2491
+ return [...(customTitleParts || []), upperFirst__default["default"](entryPointUriPath), projectKeyOrStaticPath, 'Merchant Center'].join(' - ');
2492
+ };
2493
+
2494
+ const ApplicationPageTitle = props => {
2495
+ const location = reactRouterDom.useLocation();
2496
+ react.useLayoutEffect(() => {
2497
+ const pageTitle = getPageTitle(location.pathname, props.additionalParts);
2498
+ document.title = pageTitle;
2499
+ }, [location.pathname, props.additionalParts]);
2500
+ return null;
2501
+ };
2502
+
2503
+ ApplicationPageTitle.propTypes = {
2504
+ additionalParts: _pt__default["default"].arrayOf(_pt__default["default"].string).isRequired
2505
+ };
2506
+ ApplicationPageTitle.displayName = 'ApplicationPageTitle';
2507
+ ApplicationPageTitle.defaultProps = defaultProps$1;
2508
+
2509
+ function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2510
+
2511
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$2(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
2512
+
2513
+ const SuspendedRoute = props => jsxRuntime.jsx(reactRouterDom.Route, _objectSpread$2(_objectSpread$2({}, props), {}, {
2514
+ children: jsxRuntime.jsx(react.Suspense, {
2515
+ fallback: jsxRuntime.jsx(LoadingSpinner__default["default"], {}),
2516
+ children: props.children
2517
+ })
2518
+ }));
2519
+
2520
+ SuspendedRoute.displayName = 'SuspendedRoute';
2521
+
2522
+ var AmILoggedInQuery = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "AmILoggedIn" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "amILoggedIn" }, arguments: [], directives: [] }] } }], loc: { start: 0, end: 36, source: { body: "query AmILoggedIn {\n amILoggedIn\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
2523
+
2524
+ const AmILoggedIn = props => {
2525
+ // ...otherwise, we ping a "secured" endpoint in the MC API to see if there is
2526
+ // a valid access token. If we get an error, we assume that the user is not
2527
+ // authenticated. If we don't get any error, the access token sent with the cookie
2528
+ // is valid. We return null while the query is loading.
2529
+ const _useMcQuery = useMcQuery(AmILoggedInQuery, {
2530
+ context: {
2531
+ target: constants$1.GRAPHQL_TARGETS.MERCHANT_CENTER_BACKEND,
2532
+ skipTokenRetry: true
2533
+ },
2534
+ // NOTE: With `no-cache` the `useQuery` will not trigger a
2535
+ // re-render of the `AmILoggedIn` component. Relying on a default
2536
+ // fetch policy results in rendering the component without refetching the data
2537
+ // which as a result unmounts child components (such as an application).
2538
+ //
2539
+ // For example:
2540
+ // Given the user not authenticated
2541
+ // Then the first pass of useQuery returns an exptected error
2542
+ // Given the query is triggered again (through `useQuery`)
2543
+ // Then the component will re-render
2544
+ // Resulting in inconsistent data with the error not being defined
2545
+ fetchPolicy: 'no-cache',
2546
+ onCompleted: data => {
2547
+ if (!data) {
2548
+ // In case the request is 200 but there is no data, we assume
2549
+ // there are some errors.
2550
+ window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
2551
+ } else {
2552
+ // Even though the login page might set this flag, we just make sure that
2553
+ // we do it here as well. This will help in the future when we eventually
2554
+ // move the auth service to itw own domain, in which case the local storage
2555
+ // is not shared anymore.
2556
+ window.localStorage.setItem(constants.STORAGE_KEYS.IS_AUTHENTICATED, String(true));
2557
+ }
2558
+ },
2559
+ onError: () => {
2560
+ // The query fails without the `mcAccessToken`. In this case the caching
2561
+ // needs to be unset as otherwise the application will end up in a infinte
2562
+ // redirect loop.
2563
+ window.localStorage.removeItem(constants.STORAGE_KEYS.IS_AUTHENTICATED);
2564
+ }
2565
+ }),
2566
+ data = _useMcQuery.data,
2567
+ loading = _useMcQuery.loading,
2568
+ error = _useMcQuery.error;
2569
+
2570
+ if (error) {
2571
+ // No matter what error, we consider it as a failed authentication
2572
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
2573
+ children: props.render({
2574
+ isAuthenticated: false
2575
+ })
2576
+ });
2577
+ }
2578
+
2579
+ if (!loading && data && data.amILoggedIn) {
2580
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
2581
+ children: props.render({
2582
+ isAuthenticated: true
2583
+ })
2584
+ });
2585
+ }
2586
+
2587
+ return null;
2588
+ };
2589
+
2590
+ AmILoggedIn.displayName = 'AmILoggedIn';
2591
+
2592
+ const withoutProjectKeyClaim = scope => {
2593
+ var _context;
2594
+
2595
+ return _filterInstanceProperty__default["default"](_context = scope.split(' ')).call(_context, claim => !_startsWithInstanceProperty__default["default"](claim).call(claim, constants.OIDC_CLAIMS.PROJECT_KEY)).join(' ');
2596
+ };
2597
+
2598
+ const hasCachedAuthenticationState = () => {
2599
+ var _window$app$__DEVELOP, _window$app$__DEVELOP2;
2600
+
2601
+ if ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP !== void 0 && (_window$app$__DEVELOP2 = _window$app$__DEVELOP.oidc) !== null && _window$app$__DEVELOP2 !== void 0 && _window$app$__DEVELOP2.authorizeUrl) {
2602
+ try {
2603
+ var _window$app$__DEVELOP9, _window$app$__DEVELOP10, _window$app$__DEVELOP11, _window$app$__DEVELOP12, _window$app$__DEVELOP13, _window$app$__DEVELOP14;
2604
+
2605
+ const activeProjectKey = configureApollo.getActiveProjectKey();
2606
+
2607
+ if (activeProjectKey) {
2608
+ var _window$app$__DEVELOP3, _window$app$__DEVELOP4;
2609
+
2610
+ // GIVEN The application is not requesting a project key,
2611
+ // THEN we assume that the application does not need a project context.
2612
+ // GIVEN The application is not requesting a project key,
2613
+ // THEN we remove the cached project key.
2614
+ // This is the case of an application like `account`.
2615
+ if (!((_window$app$__DEVELOP3 = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP3 !== void 0 && (_window$app$__DEVELOP4 = _window$app$__DEVELOP3.oidc) !== null && _window$app$__DEVELOP4 !== void 0 && _window$app$__DEVELOP4.initialProjectKey)) {
2616
+ configureApollo.removeActiveProjectKey();
2617
+ }
2618
+ } else {
2619
+ var _window$app$__DEVELOP5, _window$app$__DEVELOP6;
2620
+
2621
+ if ((_window$app$__DEVELOP5 = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP5 !== void 0 && (_window$app$__DEVELOP6 = _window$app$__DEVELOP5.oidc) !== null && _window$app$__DEVELOP6 !== void 0 && _window$app$__DEVELOP6.initialProjectKey) {
2622
+ var _window$app$__DEVELOP7, _window$app$__DEVELOP8;
2623
+
2624
+ // Here we store the initial project key in local storage,
2625
+ // so that it gets picked up when we initiate the login flow.
2626
+ configureApollo.setActiveProjectKey((_window$app$__DEVELOP7 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP7 === void 0 ? void 0 : (_window$app$__DEVELOP8 = _window$app$__DEVELOP7.oidc) === null || _window$app$__DEVELOP8 === void 0 ? void 0 : _window$app$__DEVELOP8.initialProjectKey);
2627
+ }
2628
+ } // cachedScope is assumed to be the exact cached version of the `requestedScope`
2629
+ // if they don't match, then we know that one of the claims within the scope has changed
2630
+ // given a change, we need to force the user to log in, so that new values on respective claim
2631
+ // will apply for the given custom application
2632
+
2633
+
2634
+ const cachedScope = configureApollo.getSessionScope(); // Force the user to log in again
2635
+
2636
+ if (!cachedScope) {
2637
+ return false;
2638
+ } // Rebuild the requested OIDC scope to verify that it didn't change.
2639
+
2640
+
2641
+ const requestedScope = oidc.buildOidcScope({
2642
+ projectKey: activeProjectKey !== null && activeProjectKey !== void 0 ? activeProjectKey : undefined,
2643
+ oAuthScopes: (_window$app$__DEVELOP9 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP9 === void 0 ? void 0 : (_window$app$__DEVELOP10 = _window$app$__DEVELOP9.oidc) === null || _window$app$__DEVELOP10 === void 0 ? void 0 : _window$app$__DEVELOP10.oAuthScopes,
2644
+ additionalOAuthScopes: (_window$app$__DEVELOP11 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP11 === void 0 ? void 0 : (_window$app$__DEVELOP12 = _window$app$__DEVELOP11.oidc) === null || _window$app$__DEVELOP12 === void 0 ? void 0 : _window$app$__DEVELOP12.additionalOAuthScopes,
2645
+ teamId: (_window$app$__DEVELOP13 = window.app.__DEVELOPMENT__) === null || _window$app$__DEVELOP13 === void 0 ? void 0 : (_window$app$__DEVELOP14 = _window$app$__DEVELOP13.oidc) === null || _window$app$__DEVELOP14 === void 0 ? void 0 : _window$app$__DEVELOP14.teamId
2646
+ }); // Omit the project key from the check. This allows to switch projects
2647
+ // without having to log in again.
2648
+
2649
+ const cachedScopeWithoutProjectKey = withoutProjectKeyClaim(cachedScope);
2650
+ const requestedScopeWithoutProjectKey = withoutProjectKeyClaim(requestedScope); // Check that the session scope didn't change.
2651
+
2652
+ if (cachedScopeWithoutProjectKey === requestedScopeWithoutProjectKey) {
2653
+ return true;
2654
+ }
2655
+
2656
+ return false;
2657
+ } catch (err) {
2658
+ return false;
2659
+ }
2660
+ }
2661
+
2662
+ return window.localStorage.getItem(constants.STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
2663
+ };
2664
+
2665
+ const OidcCallback = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./oidc-callback-dc8682c0.cjs.dev.js'
2666
+ /* webpackChunkName: "oidc-callback" */
2667
+ ); }));
2668
+
2669
+ function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2670
+
2671
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$1(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$1(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
2672
+
2673
+ const Authenticated = props => {
2674
+ var _window$app$__DEVELOP, _window$app$__DEVELOP2;
2675
+
2676
+ // We attempt to see if the user was already authenticated by looking
2677
+ // at the "cached" flag in local storage.
2678
+ const cachedAuthenticationState = hasCachedAuthenticationState();
2679
+
2680
+ if (cachedAuthenticationState) {
2681
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
2682
+ children: props.render({
2683
+ isAuthenticated: true
2684
+ })
2685
+ });
2686
+ } // When using the OIDC workflow, we always return false, to trigger
2687
+ // the redirect to the login page.
2688
+
2689
+
2690
+ if ((_window$app$__DEVELOP = window.app.__DEVELOPMENT__) !== null && _window$app$__DEVELOP !== void 0 && (_window$app$__DEVELOP2 = _window$app$__DEVELOP.oidc) !== null && _window$app$__DEVELOP2 !== void 0 && _window$app$__DEVELOP2.authorizeUrl) {
2691
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
2692
+ children: props.render({
2693
+ isAuthenticated: false
2694
+ })
2695
+ });
2696
+ } // Fall back to check for cookie-based authentication.
2697
+
2698
+
2699
+ return jsxRuntime.jsx(AmILoggedIn, _objectSpread$1({}, props));
2700
+ };
2701
+
2702
+ Authenticated.displayName = 'Authenticated';
2703
+
2704
+ const AuthenticationRoutes = props => jsxRuntime.jsxs(reactRouterDom.Switch, {
2705
+ children: [jsxRuntime.jsx(SuspendedRoute, {
2706
+ path: "/account/oidc/callback",
2707
+ children: jsxRuntime.jsx(OidcCallback, {
2708
+ locale: props.locale,
2709
+ applicationMessages: props.applicationMessages
2710
+ })
2711
+ }), jsxRuntime.jsx(SuspendedRoute, {
2712
+ path: "/:projectKey/".concat(window.app.entryPointUriPath, "/oidc/callback"),
2713
+ children: jsxRuntime.jsx(OidcCallback, {
2714
+ locale: props.locale,
2715
+ applicationMessages: props.applicationMessages
2716
+ })
2717
+ }), jsxRuntime.jsx(reactRouterDom.Route, {
2718
+ children: jsxRuntime.jsx(Authenticated, _objectSpread$1({}, props))
2719
+ })]
2720
+ });
2721
+
2722
+ AuthenticationRoutes.displayName = 'AuthenticationRoutes';
2723
+
2724
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2725
+
2726
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
2727
+
2728
+ /**
2729
+ * NOTE:
2730
+ * This function try-catches around a `JSON.parse` and return
2731
+ * the parsed value whenever possible.
2732
+ *
2733
+ * This allows parsing most primitive values.
2734
+ *
2735
+ * - `JSON.parse('null')` => `null`
2736
+ * - `JSON.parse('1')` => `1`
2737
+ * - `JSON.parse('["a", "b"]')` => `['a', 'b']`
2738
+ */
2739
+ const getCoerceEnvironmentValue = environmentValueAsString => {
2740
+ // Return the value as-is if it's not a string.
2741
+ if (typeof environmentValueAsString !== 'string') {
2742
+ return environmentValueAsString;
2743
+ } // In case the value is a string, we try to parse it to attempt to extract
2744
+ // the primitive value, if the original value is indeed supposed to be a primitive.
2745
+ // For example, `'1'` is converted to a number, `'true'` is converted to a boolean, etc.
2746
+
2747
+
2748
+ try {
2749
+ // Strip out escaped quotes. This is mostly important to coerce an array of string
2750
+ // with escaped quotes.
2751
+ return JSON.parse(String(environmentValueAsString).replace(/(\\")/g, '"'));
2752
+ } catch (e) {
2753
+ return environmentValueAsString;
2754
+ }
2755
+ };
2756
+
2757
+ const shallowlyCoerceValues = uncoercedEnvironmentValues => {
2758
+ var _context;
2759
+
2760
+ return _reduceInstanceProperty__default["default"](_context = _Object$keys__default["default"](uncoercedEnvironmentValues)).call(_context, (coercedEnvironmentValues, key) => {
2761
+ const uncoercedEnvironmentValue = uncoercedEnvironmentValues[key];
2762
+ return _objectSpread(_objectSpread({}, coercedEnvironmentValues), {}, {
2763
+ [key]: getCoerceEnvironmentValue(uncoercedEnvironmentValue)
2764
+ });
2765
+ }, {});
2766
+ };
2767
+
2768
+ const useCoercedEnvironmentValues = environment => {
2769
+ const coercedEnvironmentValues = react.useMemo(() => shallowlyCoerceValues(environment), [environment]);
2770
+ return coercedEnvironmentValues;
2771
+ };
2772
+
2773
+ const ApplicationShellProvider = props => {
2774
+ const apolloClient = react.useMemo(() => {
2775
+ var _props$apolloClient;
2776
+
2777
+ return (_props$apolloClient = props.apolloClient) !== null && _props$apolloClient !== void 0 ? _props$apolloClient : configureApollo.createApolloClient();
2778
+ }, [props.apolloClient]);
2779
+ react.useEffect(() => {
2780
+ configureApollo.setCachedApolloClient(apolloClient);
2781
+ }, [apolloClient]);
2782
+ const coercedEnvironmentValues = useCoercedEnvironmentValues(props.environment);
2783
+ const browserLocale = getBrowserLocale(window);
2784
+ return jsxRuntime.jsx(react.Suspense, {
2785
+ fallback: jsxRuntime.jsx(ApplicationLoader, {}),
2786
+ children: jsxRuntime.jsx(ErrorBoundary, {
2787
+ children: jsxRuntime.jsx(applicationShellConnectors.ApplicationContextProvider, {
2788
+ environment: coercedEnvironmentValues,
2789
+ children: jsxRuntime.jsx(reactRedux.Provider, {
2790
+ store: configureApollo.internalReduxStore,
2791
+ children: jsxRuntime.jsx(react$2.ApolloProvider, {
2792
+ client: apolloClient,
2793
+ children: jsxRuntime.jsx(reactRouterDom.Router, {
2794
+ history: ApplicationShellProvider.history,
2795
+ children: jsxRuntime.jsxs(GtmBooter, {
2796
+ trackingEventList: props.trackingEventList || {},
2797
+ children: [jsxRuntime.jsx(ApplicationPageTitle, {}), jsxRuntime.jsx(AuthenticationRoutes, {
2798
+ locale: browserLocale,
2799
+ applicationMessages: props.applicationMessages,
2800
+ render: _ref => {
2801
+ let isAuthenticated = _ref.isAuthenticated;
2802
+ if (isAuthenticated) return props.children({
2803
+ isAuthenticated
2804
+ });
2805
+ return jsxRuntime.jsx(i18n.AsyncLocaleData, {
2806
+ locale: browserLocale,
2807
+ applicationMessages: props.applicationMessages,
2808
+ children: _ref2 => {
2809
+ let locale = _ref2.locale,
2810
+ messages = _ref2.messages;
2811
+ return jsxRuntime.jsx(ConfigureIntlProvider, {
2812
+ locale: locale,
2813
+ messages: messages,
2814
+ children: props.children({
2815
+ isAuthenticated
2816
+ })
2817
+ });
2818
+ }
2819
+ });
2820
+ }
2821
+ })]
2822
+ })
2823
+ })
2824
+ })
2825
+ })
2826
+ })
2827
+ })
2828
+ });
2829
+ };
2830
+
2831
+ ApplicationShellProvider.propTypes = process.env.NODE_ENV !== "production" ? {
2832
+ apolloClient: _pt__default["default"].any,
2833
+ trackingEventList: _pt__default["default"].any,
2834
+ children: _pt__default["default"].func.isRequired
2835
+ } : {};
2836
+ ApplicationShellProvider.displayName = 'ApplicationShellProvider'; // This is useful to inject a custom history object during tests
2837
+
2838
+ ApplicationShellProvider.history = history__default["default"];
2839
+
2840
+ const RedirectToLogin = /*#__PURE__*/react.lazy(() => Promise.resolve().then(function () { return require('./redirect-to-login-64230f67.cjs.dev.js'
2841
+ /* webpackChunkName: "redirect-to-login" */
2842
+ ); }));
2843
+
2844
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
2845
+ const styles = process.env.NODE_ENV === "production" ? {
2846
+ name: "1prreal",
2847
+ styles: "html,body{font-size:var(--font-size-for-body);height:100vh;}#app{height:100%;}"
2848
+ } : {
2849
+ name: "6fkj0f-styles",
2850
+ styles: "html,body{font-size:var(--font-size-for-body);height:100vh;}#app{height:100%;};label:styles;",
2851
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbC1zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdrQiIsImZpbGUiOiJnbG9iYWwtc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbS9tYXRlcmlhbHMvcmVzZXRzLmNzcyc7XG5pbXBvcnQgeyBHbG9iYWwsIGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuY29uc3Qgc3R5bGVzID0gY3NzYFxuICBodG1sLFxuICBib2R5IHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1mb3ItYm9keSk7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgfVxuXG4gICNhcHAge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuYDtcblxuY29uc3QgR2xvYmFsU3R5bGVzID0gKCkgPT4gPEdsb2JhbCBzdHlsZXM9e3N0eWxlc30gLz47XG5cbmV4cG9ydCBkZWZhdWx0IEdsb2JhbFN0eWxlcztcbiJdfQ== */",
2852
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
2853
+ };
2854
+
2855
+ const GlobalStyles = () => jsxRuntime.jsx(react$1.Global, {
2856
+ styles: styles
2857
+ });
2858
+
2859
+ const ApplicationShell = props => {
2860
+ react.useEffect(() => {
2861
+ var _props$onRegisterErro;
2862
+
2863
+ (_props$onRegisterErro = props.onRegisterErrorListeners) === null || _props$onRegisterErro === void 0 ? void 0 : _props$onRegisterErro.call(props, {
2864
+ dispatch: configureApollo.internalReduxStore.dispatch
2865
+ }); // eslint-disable-next-line react-hooks/exhaustive-deps
2866
+ }, []); // <-- run only once, when component mounts
2867
+
2868
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
2869
+ children: [jsxRuntime.jsx(GlobalStyles, {}), jsxRuntime.jsx(ApplicationShellProvider, {
2870
+ apolloClient: props.apolloClient,
2871
+ environment: props.environment,
2872
+ trackingEventList: props.trackingEventList,
2873
+ applicationMessages: props.applicationMessages,
2874
+ children: _ref => {
2875
+ let isAuthenticated = _ref.isAuthenticated;
2876
+
2877
+ if (isAuthenticated) {
2878
+ return jsxRuntime.jsxs(reactRouterDom.Switch, {
2879
+ children: [jsxRuntime.jsx(SuspendedRoute, {
2880
+ path: "/logout",
2881
+ children: jsxRuntime.jsx(RedirectToLogout, {})
2882
+ }), jsxRuntime.jsx(SuspendedRoute, {
2883
+ children: jsxRuntime.jsx(ApplicationShellAuthenticated, {
2884
+ defaultFeatureFlags: props.defaultFeatureFlags,
2885
+ featureFlags: props.featureFlags,
2886
+ render: props.render,
2887
+ applicationMessages: props.applicationMessages,
2888
+ onMenuItemClick: props.onMenuItemClick,
2889
+ disableRoutePermissionCheck: props.disableRoutePermissionCheck,
2890
+ children: props.children
2891
+ })
2892
+ })]
2893
+ });
2894
+ }
2895
+
2896
+ return jsxRuntime.jsx(RedirectToLogin, {});
2897
+ }
2898
+ })]
2899
+ });
2900
+ };
2901
+
2902
+ ApplicationShell.propTypes = process.env.NODE_ENV !== "production" ? {
2903
+ apolloClient: _pt__default["default"].any,
2904
+ featureFlags: _pt__default["default"].any,
2905
+ defaultFeatureFlags: _pt__default["default"].any,
2906
+ trackingEventList: _pt__default["default"].any,
2907
+ onRegisterErrorListeners: _pt__default["default"].func,
2908
+ onMenuItemClick: _pt__default["default"].func,
2909
+ disableRoutePermissionCheck: _pt__default["default"].bool,
2910
+ render: _pt__default["default"].func,
2911
+ children: _pt__default["default"].node
2912
+ } : {};
2913
+ ApplicationShell.displayName = 'ApplicationShell';
2914
+ ApplicationShell.version = configureApollo.applicationShellVersion;
2915
+
2916
+ const defaultProps = {
2917
+ shouldCleanUpOnUnmount: true
2918
+ };
2919
+
2920
+ const InjectReducers = props => {
2921
+ const _useState = react.useState(false),
2922
+ _useState2 = _slicedToArray(_useState, 2),
2923
+ areReducersInjected = _useState2[0],
2924
+ setAreReducersInjected = _useState2[1];
2925
+
2926
+ const store = reactRedux.useStore();
2927
+ react.useEffect(() => {
2928
+ store.injectReducers({
2929
+ id: props.id,
2930
+ reducers: props.reducers
2931
+ });
2932
+ setAreReducersInjected(true);
2933
+ return () => {
2934
+ if (props.shouldCleanUpOnUnmount) {
2935
+ store.removeReducers({
2936
+ id: props.id
2937
+ });
2938
+ }
2939
+ };
2940
+ }, [props.id, props.reducers, props.shouldCleanUpOnUnmount, store]); // Render children only when the plugin reducers have been injected
2941
+
2942
+ if (areReducersInjected) return jsxRuntime.jsx(jsxRuntime.Fragment, {
2943
+ children: props.children
2944
+ });
2945
+ return null;
2946
+ };
2947
+
2948
+ InjectReducers.propTypes = {
2949
+ id: _pt__default["default"].string.isRequired,
2950
+ reducers: _pt__default["default"].any.isRequired,
2951
+ shouldCleanUpOnUnmount: _pt__default["default"].bool.isRequired,
2952
+ children: _pt__default["default"].node.isRequired
2953
+ };
2954
+ InjectReducers.displayName = 'InjectReducers';
2955
+ InjectReducers.defaultProps = defaultProps;
2956
+
2957
+ const errorMessageIgnoreList = [/ResizeObserver loop limit exceeded/i]; // Ensure to initialize Sentry as soon as possible, so that we have the chance
2958
+ // of catching possible errors.
2959
+
2960
+ sentry.boot();
2961
+
2962
+ const makeErrorToCapture = error => {
2963
+ if (error instanceof Error) return error;
2964
+ if (error instanceof ErrorEvent) return new Error(error.message);
2965
+ return new Error(_JSON$stringify__default["default"](error.reason || 'Unhandled rejection without a reason'));
2966
+ };
2967
+
2968
+ const getErrorMessage = error => {
2969
+ if (typeof error === 'string') return error;
2970
+ const errorToCapture = makeErrorToCapture(error);
2971
+ return errorToCapture.message || errorToCapture.name;
2972
+ };
2973
+
2974
+ const shouldErrorBeTracked = error => {
2975
+ const errorMessage = getErrorMessage(error);
2976
+ return !_someInstanceProperty__default["default"](errorMessageIgnoreList).call(errorMessageIgnoreList, match => match.test(errorMessage));
2977
+ };
2978
+
2979
+ function setupGlobalErrorListener() {
2980
+ // Capture unhandled errors generated from rejected Promises.
2981
+ //
2982
+ // http://www.2ality.com/2016/04/unhandled-rejections.html
2983
+ // https://docs.getsentry.com/hosted/clients/javascript/usage/#promises
2984
+ //
2985
+ // Note: this currently works only in Chrome, and it might not be needed.
2986
+ // We just keep it here as a nice-to-have thing.
2987
+ window.addEventListener('unhandledrejection', event => {
2988
+ if (process.env.NODE_ENV !== 'production') // eslint-disable-next-line no-console
2989
+ console.warn('An uncaught promise has been rejected and not properly ' + 'handled. This is most likely a bug in the software. Please ensure ' + 'that the promise is correctly handled.');
2990
+
2991
+ if (shouldErrorBeTracked(event)) {
2992
+ const errorId = sentry.reportErrorToSentry(event);
2993
+ configureApollo.internalReduxStore.dispatch(actionsGlobal.showUnexpectedErrorNotification({
2994
+ errorId
2995
+ }));
2996
+ }
2997
+ }); // Capture normal global errors coming from non Promise code.
2998
+
2999
+ window.addEventListener('error', errorEvent => {
3000
+ if (shouldErrorBeTracked(errorEvent)) {
3001
+ const errorId = sentry.reportErrorToSentry(errorEvent);
3002
+ configureApollo.internalReduxStore.dispatch(actionsGlobal.showUnexpectedErrorNotification({
3003
+ errorId
3004
+ }));
3005
+ }
3006
+ });
3007
+ }
3008
+
3009
+ const GtmUserLogoutTracker = () => {
3010
+ react.useEffect(() => {
3011
+ // When the user is not logged in anymore (e.g. on logout) we still track
3012
+ // page views but without the user data in context.
3013
+ stopTrackingUser();
3014
+ }, []);
3015
+ return null;
3016
+ };
3017
+
3018
+ GtmUserLogoutTracker.displayName = 'GtmUserLogoutTracker';
3019
+
3020
+ exports.ApplicationLoader = ApplicationLoader;
3021
+ exports.ApplicationPageTitle = ApplicationPageTitle;
3022
+ exports.ApplicationShell = ApplicationShell;
3023
+ exports.ApplicationShellProvider = ApplicationShellProvider;
3024
+ exports.ButlerContainer = ButlerContainer;
3025
+ exports.ConfigureIntlProvider = ConfigureIntlProvider;
3026
+ exports.ErrorBoundary = ErrorBoundary;
3027
+ exports.Faded = Faded;
3028
+ exports.FetchProject = FetchProject;
3029
+ exports.GtmContext = GtmContext;
3030
+ exports.GtmUserLogoutTracker = GtmUserLogoutTracker;
3031
+ exports.IconSwitcher = IconSwitcher;
3032
+ exports.InjectReducers = InjectReducers;
3033
+ exports.MenuExpander = MenuExpander;
3034
+ exports.MenuGroup = MenuGroup;
3035
+ exports.MenuItem = MenuItem;
3036
+ exports.MenuItemDivider = MenuItemDivider;
3037
+ exports.MenuItemLink = MenuItemLink;
3038
+ exports.MenuLabel = MenuLabel;
3039
+ exports.NavBarLayout = NavBarLayout;
3040
+ exports.ProjectDataLocale = ProjectDataLocale;
3041
+ exports.ProjectSwitcher = ProjectSwitcher;
3042
+ exports.REQUESTS_IN_FLIGHT_LOADER_DOM_ID = REQUESTS_IN_FLIGHT_LOADER_DOM_ID;
3043
+ exports.RedirectToLogin = RedirectToLogin;
3044
+ exports.RedirectToProjectCreate = RedirectToProjectCreate;
3045
+ exports.RestrictedMenuItem = RestrictedMenuItem;
3046
+ exports.SetupFlopFlipProvider = SetupFlopFlipProvider;
3047
+ exports.SuspendedRoute = SuspendedRoute;
3048
+ exports.createApolloContextForProxyForwardTo = createApolloContextForProxyForwardTo;
3049
+ exports.pimIndexerStates = pimIndexerStates;
3050
+ exports.setupGlobalErrorListener = setupGlobalErrorListener;
3051
+ exports.trackingEvents = trackingEvents$1;
3052
+ exports.useMcLazyQuery = useMcLazyQuery;
3053
+ exports.useMcMutation = useMcMutation;
3054
+ exports.useMcQuery = useMcQuery;