@commercetools-frontend/application-shell 22.41.0 → 22.42.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.
- package/dist/{application-entry-point-654951a6.cjs.prod.js → application-entry-point-25a893ee.cjs.prod.js} +1 -1
- package/dist/{application-entry-point-83140459.cjs.dev.js → application-entry-point-66e4e42e.cjs.dev.js} +1 -1
- package/dist/{application-entry-point-bf13611d.esm.js → application-entry-point-87fc1d21.esm.js} +1 -1
- package/dist/commercetools-frontend-application-shell.cjs.dev.js +2 -2
- package/dist/commercetools-frontend-application-shell.cjs.prod.js +2 -2
- package/dist/commercetools-frontend-application-shell.esm.js +2 -2
- package/dist/{custom-view-dev-host-1a076246.esm.js → custom-view-dev-host-3ccfb343.esm.js} +2 -2
- package/dist/{custom-view-dev-host-8b6d255d.cjs.prod.js → custom-view-dev-host-4ec4868f.cjs.prod.js} +2 -2
- package/dist/{custom-view-dev-host-25fa9b32.cjs.dev.js → custom-view-dev-host-bf85cd4b.cjs.dev.js} +2 -2
- package/dist/declarations/src/components/app-bar/app-bar.d.ts +1 -1
- package/dist/declarations/src/components/application-entry-point/application-entry-point.d.ts +1 -1
- package/dist/declarations/src/components/application-loader/application-loader.d.ts +1 -1
- package/dist/declarations/src/components/application-shell/application-shell.d.ts +1 -1
- package/dist/declarations/src/components/application-shell/global-styles.d.ts +1 -1
- package/dist/declarations/src/components/application-shell-authenticated/application-shell-authenticated.d.ts +1 -1
- package/dist/declarations/src/components/application-shell-provider/application-shell-provider.d.ts +1 -1
- package/dist/declarations/src/components/authenticated/am-i-logged-in.d.ts +1 -1
- package/dist/declarations/src/components/authenticated/authenticated.d.ts +1 -1
- package/dist/declarations/src/components/authenticated/oidc-callback-error-page.d.ts +1 -1
- package/dist/declarations/src/components/authenticated/oidc-callback.async.d.ts +1 -1
- package/dist/declarations/src/components/authenticated/oidc-callback.d.ts +1 -1
- package/dist/declarations/src/components/back-to-project/back-to-project.d.ts +1 -1
- package/dist/declarations/src/components/configure-intl-provider/configure-intl-provider.d.ts +1 -1
- package/dist/declarations/src/components/custom-view-dev-host/custom-view-dev-host.d.ts +1 -1
- package/dist/declarations/src/components/custom-view-dev-host/index.d.ts +1 -1
- package/dist/declarations/src/components/custom-view-flop-flip-provider/custom-view-flop-flip-provider.d.ts +1 -1
- package/dist/declarations/src/components/custom-view-shell/custom-view-shell.d.ts +1 -1
- package/dist/declarations/src/components/custom-view-shell-authenticated/custom-view-shell-authenticated.d.ts +1 -1
- package/dist/declarations/src/components/error-apologizer/error-apologizer.d.ts +1 -1
- package/dist/declarations/src/components/error-apologizer/index.d.ts +1 -1
- package/dist/declarations/src/components/error-boundary/error-boundary.d.ts +1 -1
- package/dist/declarations/src/components/fetch-project/fetch-project.d.ts +1 -1
- package/dist/declarations/src/components/fetch-user/fetch-user.d.ts +1 -1
- package/dist/declarations/src/components/inject-reducers/inject-reducers.d.ts +1 -1
- package/dist/declarations/src/components/locale-switcher/locale-switcher.d.ts +2 -2
- package/dist/declarations/src/components/navbar/index.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/box.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/cart.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/connected-square.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/gear.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/heart.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/list-with-search.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/paperclip.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/plugin.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/rocket.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/speedometer.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/star.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/tag-multi.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/tree-structure.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/user-filled.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/world.d.ts +1 -1
- package/dist/declarations/src/components/navbar/menu-items.d.ts +7 -7
- package/dist/declarations/src/components/navbar/navbar-skeleton.d.ts +1 -1
- package/dist/declarations/src/components/navbar/navbar-skeleton.styles.d.ts +1 -1
- package/dist/declarations/src/components/navbar/navbar.d.ts +2 -2
- package/dist/declarations/src/components/project-container/index.d.ts +1 -1
- package/dist/declarations/src/components/project-container/project-container.d.ts +1 -1
- package/dist/declarations/src/components/project-data-locale/project-data-locale.d.ts +1 -1
- package/dist/declarations/src/components/project-expired/index.d.ts +1 -1
- package/dist/declarations/src/components/project-expired/project-expired.d.ts +1 -1
- package/dist/declarations/src/components/project-not-found/index.d.ts +1 -1
- package/dist/declarations/src/components/project-not-found/project-not-found.d.ts +1 -1
- package/dist/declarations/src/components/project-not-initialized/index.d.ts +1 -1
- package/dist/declarations/src/components/project-not-initialized/project-not-initialized.d.ts +1 -1
- package/dist/declarations/src/components/project-suspended/index.d.ts +1 -1
- package/dist/declarations/src/components/project-suspended/project-suspended.d.ts +1 -1
- package/dist/declarations/src/components/project-switcher/project-switcher.d.ts +3 -3
- package/dist/declarations/src/components/quick-access/butler/butler.d.ts +1 -1
- package/dist/declarations/src/components/quick-access/butler-command/butler-command.d.ts +1 -1
- package/dist/declarations/src/components/quick-access/index.d.ts +1 -1
- package/dist/declarations/src/components/quick-access/quick-access.d.ts +1 -1
- package/dist/declarations/src/components/redirect-to-logout/index.d.ts +1 -1
- package/dist/declarations/src/components/redirect-to-logout/redirect-to-logout.d.ts +1 -1
- package/dist/declarations/src/components/redirect-to-project-create/index.d.ts +1 -1
- package/dist/declarations/src/components/redirect-to-project-create/redirect-to-project-create.d.ts +1 -1
- package/dist/declarations/src/components/route-catch-all/index.d.ts +1 -1
- package/dist/declarations/src/components/route-catch-all/route-catch-all.d.ts +1 -1
- package/dist/declarations/src/components/service-page-project-switcher/service-page-project-switcher.d.ts +1 -1
- package/dist/declarations/src/components/setup-flop-flip-provider/setup-flop-flip-provider.d.ts +1 -1
- package/dist/declarations/src/components/suspended-route/suspended-route.d.ts +1 -1
- package/dist/declarations/src/components/theme-switcher/theme-switcher.d.ts +1 -1
- package/dist/declarations/src/components/user-settings-menu/index.d.ts +1 -1
- package/dist/declarations/src/components/user-settings-menu/user-settings-menu.d.ts +3 -3
- package/dist/{index-c64b43a5.cjs.prod.js → index-023e774c.cjs.prod.js} +9 -9
- package/dist/{index-b1476d46.cjs.dev.js → index-0459c0f4.cjs.dev.js} +2 -2
- package/dist/{index-514ff122.cjs.dev.js → index-39f8c188.cjs.dev.js} +22 -33
- package/dist/{index-6172ab5f.esm.js → index-3c94f141.esm.js} +22 -33
- package/dist/{index-b6081c20.esm.js → index-a5d2d010.esm.js} +2 -2
- package/dist/{index-91985d64.cjs.prod.js → index-b76590b3.cjs.prod.js} +2 -2
- package/dist/{navbar-89151faf.cjs.dev.js → navbar-362b1d3e.cjs.dev.js} +10 -20
- package/dist/{navbar-2ed5f379.esm.js → navbar-8df97694.esm.js} +10 -20
- package/dist/{oidc-callback-84111585.cjs.prod.js → oidc-callback-212459fa.cjs.prod.js} +2 -2
- package/dist/{oidc-callback-d2853632.esm.js → oidc-callback-32e2afb3.esm.js} +2 -2
- package/dist/{oidc-callback-9f6d9ebc.cjs.dev.js → oidc-callback-d21b9a5f.cjs.dev.js} +2 -2
- package/dist/{project-container-9f9b6c9b.cjs.dev.js → project-container-1c8c06f0.cjs.dev.js} +7 -7
- package/dist/{project-container-de39b8cc.cjs.prod.js → project-container-4fab3046.cjs.prod.js} +7 -7
- package/dist/{project-container-553d0fc4.esm.js → project-container-6e489a04.esm.js} +7 -7
- package/dist/{project-expired-2779847b.esm.js → project-expired-024922f9.esm.js} +3 -3
- package/dist/{project-expired-6e265773.cjs.dev.js → project-expired-51a1f8aa.cjs.dev.js} +3 -3
- package/dist/{project-expired-5968daae.cjs.prod.js → project-expired-a10ac3c9.cjs.prod.js} +3 -3
- package/dist/{project-not-found-4a089503.cjs.prod.js → project-not-found-94294685.cjs.prod.js} +3 -3
- package/dist/{project-not-found-f1335266.cjs.dev.js → project-not-found-c530e3e7.cjs.dev.js} +3 -3
- package/dist/{project-not-found-6065128e.esm.js → project-not-found-f48cc44f.esm.js} +3 -3
- package/dist/{project-not-initialized-ba0a2f8f.cjs.prod.js → project-not-initialized-12478ddc.cjs.prod.js} +3 -3
- package/dist/{project-not-initialized-62af0df0.esm.js → project-not-initialized-4266ba02.esm.js} +3 -3
- package/dist/{project-not-initialized-67bfaea7.cjs.dev.js → project-not-initialized-f636635a.cjs.dev.js} +3 -3
- package/dist/{project-suspended-d829c27b.cjs.dev.js → project-suspended-1abc3ee8.cjs.dev.js} +3 -3
- package/dist/{project-suspended-8bc7b733.esm.js → project-suspended-8cec0e5e.esm.js} +3 -3
- package/dist/{project-suspended-f357e4aa.cjs.prod.js → project-suspended-a9fb7efc.cjs.prod.js} +3 -3
- package/dist/{quick-access-e3d6b1b3.esm.js → quick-access-3b947bd6.esm.js} +5 -8
- package/dist/{quick-access-2be07c72.cjs.prod.js → quick-access-81600341.cjs.prod.js} +2 -2
- package/dist/{quick-access-e971c562.cjs.dev.js → quick-access-84581e18.cjs.dev.js} +5 -8
- package/dist/{redirect-to-logout-076de118.esm.js → redirect-to-logout-72c5a03b.esm.js} +2 -2
- package/dist/{redirect-to-logout-40570b13.cjs.prod.js → redirect-to-logout-bcf6d8a4.cjs.prod.js} +2 -2
- package/dist/{redirect-to-logout-f7314e8b.cjs.dev.js → redirect-to-logout-d1b92009.cjs.dev.js} +2 -2
- package/dist/{requests-in-flight-loader-ef1092fd.cjs.prod.js → requests-in-flight-loader-2eae2e1d.cjs.prod.js} +2 -2
- package/dist/{requests-in-flight-loader-2b426c07.cjs.dev.js → requests-in-flight-loader-6ee6f9c7.cjs.dev.js} +2 -2
- package/dist/{requests-in-flight-loader-094596d8.esm.js → requests-in-flight-loader-c2f75764.esm.js} +2 -2
- package/dist/{service-page-project-switcher-bcaa888c.cjs.prod.js → service-page-project-switcher-4b87cdeb.cjs.prod.js} +1 -1
- package/dist/{service-page-project-switcher-4ff31118.cjs.dev.js → service-page-project-switcher-93642d5f.cjs.dev.js} +2 -3
- package/dist/service-page-project-switcher-9865cb98.esm.js +39 -0
- package/dist/{user-settings-menu-dc94ceb2.esm.js → user-settings-menu-1977193f.esm.js} +2 -4
- package/dist/{user-settings-menu-a0813186.cjs.dev.js → user-settings-menu-d5bab46b.cjs.dev.js} +2 -4
- package/package.json +33 -33
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +2 -2
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +2 -2
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +2 -2
- package/dist/service-page-project-switcher-48e97042.esm.js +0 -40
|
@@ -36,11 +36,11 @@ import { customProperties, designTokens } from '@commercetools-uikit/design-syst
|
|
|
36
36
|
import { AngleThinRightIcon, SearchIcon } from '@commercetools-uikit/icons';
|
|
37
37
|
import LoadingSpinner from '@commercetools-uikit/loading-spinner';
|
|
38
38
|
import { jsxs, jsx } from '@emotion/react/jsx-runtime';
|
|
39
|
-
import { B as ButlerContainer, p as pimIndexerStates } from './index-
|
|
39
|
+
import { B as ButlerContainer, p as pimIndexerStates } from './index-3c94f141.esm.js';
|
|
40
40
|
import _Promise from '@babel/runtime-corejs3/core-js-stable/promise';
|
|
41
41
|
import _reduceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/reduce';
|
|
42
42
|
import _findInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/find';
|
|
43
|
-
import './index-
|
|
43
|
+
import './index-a5d2d010.esm.js';
|
|
44
44
|
import '@babel/runtime-corejs3/core-js-stable/object/entries';
|
|
45
45
|
import '@babel/runtime-corejs3/core-js-stable/reflect/has';
|
|
46
46
|
import '@reduxjs/toolkit';
|
|
@@ -93,8 +93,7 @@ var _ref$1 = process.env.NODE_ENV === "production" ? {
|
|
|
93
93
|
styles: "align-self:center;>*{display:block;}"
|
|
94
94
|
} : {
|
|
95
95
|
name: "1qkkrpz-ButlerCommand",
|
|
96
|
-
styles: "align-self:center;>*{display:block;};label:ButlerCommand;",
|
|
97
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb21tYW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRGdCIiwiZmlsZSI6ImJ1dGxlci1jb21tYW5kLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdXNlRXZlbnRIYW5kbGVyIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgY3VzdG9tUHJvcGVydGllcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgQW5nbGVUaGluUmlnaHRJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG50eXBlIFByb3BzID0ge1xuICBjb21tYW5kOiBDb21tYW5kO1xuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvbk1vdXNlRW50ZXI6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50Pjtcbn07XG5cbmNvbnN0IEJ1dGxlckNvbW1hbmQgPSAocHJvcHM6IFByb3BzKSA9PiAoXG4gIDxkaXZcbiAgICBrZXk9e3Byb3BzLmNvbW1hbmQuaWR9XG4gICAgZGF0YS10ZXN0aWQ9e2BxdWljay1hY2Nlc3MtcmVzdWx0KCR7cHJvcHMuY29tbWFuZC5pZH0pYH1cbiAgICBhcmlhLWN1cnJlbnQ9e3Byb3BzLmlzU2VsZWN0ZWQgPT09IHRydWUgPyAndHJ1ZScgOiAnZmFsc2UnfVxuICAgIGNzcz17Y3NzYFxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDAgJHtjdXN0b21Qcm9wZXJ0aWVzLnNwYWNpbmdNfTtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICR7cHJvcHMuaXNTZWxlY3RlZCA9PT0gdHJ1ZVxuICAgICAgICA/IGBcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvckFjY2VudH07XG4gICAgICAgICAgICBjb2xvcjogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yU3VyZmFjZX07XG4gICAgICAgICAgYFxuICAgICAgICA6ICcnfVxuICAgIGB9XG4gICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXJ9XG4gICAgb25DbGljaz17cHJvcHMub25DbGlja31cbiAgPlxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBmbGV4OiAxIGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY29tbWFuZC50ZXh0fVxuICAgIDwvZGl2PlxuICAgIHsoKEFycmF5LmlzQXJyYXkocHJvcHMuY29tbWFuZC5zdWJDb21tYW5kcykgJiZcbiAgICAgIHByb3BzLmNvbW1hbmQuc3ViQ29tbWFuZHMubGVuZ3RoID4gMCkgfHxcbiAgICAgIHR5cGVvZiBwcm9wcy5jb21tYW5kLnN1YkNvbW1hbmRzID09PSAnZnVuY3Rpb24nKSAmJiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8QW5nbGVUaGluUmlnaHRJY29uXG4gICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgY29sb3I9e3Byb3BzLmlzU2VsZWN0ZWQgPyAnc3VyZmFjZScgOiAnbmV1dHJhbDYwJ31cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICl9XG4gIDwvZGl2PlxuKTtcblxuQnV0bGVyQ29tbWFuZC5kaXNwbGF5TmFtZSA9ICdCdXRsZXJDb21tYW5kJztcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyQ29tbWFuZDtcbiJdfQ== */",
|
|
96
|
+
styles: "align-self:center;>*{display:block;};label:ButlerCommand;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb21tYW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRGdCIiwiZmlsZSI6ImJ1dGxlci1jb21tYW5kLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdXNlRXZlbnRIYW5kbGVyIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgY3VzdG9tUHJvcGVydGllcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgQW5nbGVUaGluUmlnaHRJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG50eXBlIFByb3BzID0ge1xuICBjb21tYW5kOiBDb21tYW5kO1xuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvbk1vdXNlRW50ZXI6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50Pjtcbn07XG5cbmNvbnN0IEJ1dGxlckNvbW1hbmQgPSAocHJvcHM6IFByb3BzKSA9PiAoXG4gIDxkaXZcbiAgICBrZXk9e3Byb3BzLmNvbW1hbmQuaWR9XG4gICAgZGF0YS10ZXN0aWQ9e2BxdWljay1hY2Nlc3MtcmVzdWx0KCR7cHJvcHMuY29tbWFuZC5pZH0pYH1cbiAgICBhcmlhLWN1cnJlbnQ9e3Byb3BzLmlzU2VsZWN0ZWQgPT09IHRydWUgPyAndHJ1ZScgOiAnZmFsc2UnfVxuICAgIGNzcz17Y3NzYFxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDAgJHtjdXN0b21Qcm9wZXJ0aWVzLnNwYWNpbmdNfTtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICR7cHJvcHMuaXNTZWxlY3RlZCA9PT0gdHJ1ZVxuICAgICAgICA/IGBcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvckFjY2VudH07XG4gICAgICAgICAgICBjb2xvcjogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yU3VyZmFjZX07XG4gICAgICAgICAgYFxuICAgICAgICA6ICcnfVxuICAgIGB9XG4gICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXJ9XG4gICAgb25DbGljaz17cHJvcHMub25DbGlja31cbiAgPlxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBmbGV4OiAxIGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY29tbWFuZC50ZXh0fVxuICAgIDwvZGl2PlxuICAgIHsoKEFycmF5LmlzQXJyYXkocHJvcHMuY29tbWFuZC5zdWJDb21tYW5kcykgJiZcbiAgICAgIHByb3BzLmNvbW1hbmQuc3ViQ29tbWFuZHMubGVuZ3RoID4gMCkgfHxcbiAgICAgIHR5cGVvZiBwcm9wcy5jb21tYW5kLnN1YkNvbW1hbmRzID09PSAnZnVuY3Rpb24nKSAmJiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8QW5nbGVUaGluUmlnaHRJY29uXG4gICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgY29sb3I9e3Byb3BzLmlzU2VsZWN0ZWQgPyAnc3VyZmFjZScgOiAnbmV1dHJhbDYwJ31cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICl9XG4gIDwvZGl2PlxuKTtcblxuQnV0bGVyQ29tbWFuZC5kaXNwbGF5TmFtZSA9ICdCdXRsZXJDb21tYW5kJztcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyQ29tbWFuZDtcbiJdfQ== */",
|
|
98
97
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
99
98
|
};
|
|
100
99
|
var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
@@ -102,8 +101,7 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
|
102
101
|
styles: "flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis"
|
|
103
102
|
} : {
|
|
104
103
|
name: "zq3ooq-ButlerCommand",
|
|
105
|
-
styles: "flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;label:ButlerCommand;",
|
|
106
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb21tYW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQ2MiLCJmaWxlIjoiYnV0bGVyLWNvbW1hbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW91c2VFdmVudEhhbmRsZXIgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBjdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBBbmdsZVRoaW5SaWdodEljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgdHlwZSB7IENvbW1hbmQgfSBmcm9tICcuLi90eXBlcyc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNvbW1hbmQ6IENvbW1hbmQ7XG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uTW91c2VFbnRlcjogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuY29uc3QgQnV0bGVyQ29tbWFuZCA9IChwcm9wczogUHJvcHMpID0+IChcbiAgPGRpdlxuICAgIGtleT17cHJvcHMuY29tbWFuZC5pZH1cbiAgICBkYXRhLXRlc3RpZD17YHF1aWNrLWFjY2Vzcy1yZXN1bHQoJHtwcm9wcy5jb21tYW5kLmlkfSlgfVxuICAgIGFyaWEtY3VycmVudD17cHJvcHMuaXNTZWxlY3RlZCA9PT0gdHJ1ZSA/ICd0cnVlJyA6ICdmYWxzZSd9XG4gICAgY3NzPXtjc3NgXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZzogMCAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZ019O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgJHtwcm9wcy5pc1NlbGVjdGVkID09PSB0cnVlXG4gICAgICAgID8gYFxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICAgIGNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBgXG4gICAgICAgIDogJyd9XG4gICAgYH1cbiAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlcn1cbiAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICA+XG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGZsZXg6IDEgYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBgfVxuICAgID5cbiAgICAgIHtwcm9wcy5jb21tYW5kLnRleHR9XG4gICAgPC9kaXY+XG4gICAgeygoQXJyYXkuaXNBcnJheShwcm9wcy5jb21tYW5kLnN1YkNvbW1hbmRzKSAmJlxuICAgICAgcHJvcHMuY29tbWFuZC5zdWJDb21tYW5kcy5sZW5ndGggPiAwKSB8fFxuICAgICAgdHlwZW9mIHByb3BzLmNvbW1hbmQuc3ViQ29tbWFuZHMgPT09ICdmdW5jdGlvbicpICYmIChcbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxBbmdsZVRoaW5SaWdodEljb25cbiAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICBjb2xvcj17cHJvcHMuaXNTZWxlY3RlZCA/ICdzdXJmYWNlJyA6ICduZXV0cmFsNjAnfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKX1cbiAgPC9kaXY+XG4pO1xuXG5CdXRsZXJDb21tYW5kLmRpc3BsYXlOYW1lID0gJ0J1dGxlckNvbW1hbmQnO1xuXG5leHBvcnQgZGVmYXVsdCBCdXRsZXJDb21tYW5kO1xuIl19 */",
|
|
104
|
+
styles: "flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;label:ButlerCommand;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb21tYW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQ2MiLCJmaWxlIjoiYnV0bGVyLWNvbW1hbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW91c2VFdmVudEhhbmRsZXIgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBjdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBBbmdsZVRoaW5SaWdodEljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgdHlwZSB7IENvbW1hbmQgfSBmcm9tICcuLi90eXBlcyc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNvbW1hbmQ6IENvbW1hbmQ7XG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uTW91c2VFbnRlcjogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuY29uc3QgQnV0bGVyQ29tbWFuZCA9IChwcm9wczogUHJvcHMpID0+IChcbiAgPGRpdlxuICAgIGtleT17cHJvcHMuY29tbWFuZC5pZH1cbiAgICBkYXRhLXRlc3RpZD17YHF1aWNrLWFjY2Vzcy1yZXN1bHQoJHtwcm9wcy5jb21tYW5kLmlkfSlgfVxuICAgIGFyaWEtY3VycmVudD17cHJvcHMuaXNTZWxlY3RlZCA9PT0gdHJ1ZSA/ICd0cnVlJyA6ICdmYWxzZSd9XG4gICAgY3NzPXtjc3NgXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZzogMCAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZ019O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgJHtwcm9wcy5pc1NlbGVjdGVkID09PSB0cnVlXG4gICAgICAgID8gYFxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICAgIGNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBgXG4gICAgICAgIDogJyd9XG4gICAgYH1cbiAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlcn1cbiAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICA+XG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGZsZXg6IDEgYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBgfVxuICAgID5cbiAgICAgIHtwcm9wcy5jb21tYW5kLnRleHR9XG4gICAgPC9kaXY+XG4gICAgeygoQXJyYXkuaXNBcnJheShwcm9wcy5jb21tYW5kLnN1YkNvbW1hbmRzKSAmJlxuICAgICAgcHJvcHMuY29tbWFuZC5zdWJDb21tYW5kcy5sZW5ndGggPiAwKSB8fFxuICAgICAgdHlwZW9mIHByb3BzLmNvbW1hbmQuc3ViQ29tbWFuZHMgPT09ICdmdW5jdGlvbicpICYmIChcbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxBbmdsZVRoaW5SaWdodEljb25cbiAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICBjb2xvcj17cHJvcHMuaXNTZWxlY3RlZCA/ICdzdXJmYWNlJyA6ICduZXV0cmFsNjAnfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKX1cbiAgPC9kaXY+XG4pO1xuXG5CdXRsZXJDb21tYW5kLmRpc3BsYXlOYW1lID0gJ0J1dGxlckNvbW1hbmQnO1xuXG5leHBvcnQgZGVmYXVsdCBCdXRsZXJDb21tYW5kO1xuIl19 */",
|
|
107
105
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
108
106
|
};
|
|
109
107
|
const ButlerCommand = props => jsxs("div", {
|
|
@@ -525,8 +523,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
525
523
|
styles: "display:flex"
|
|
526
524
|
} : {
|
|
527
525
|
name: "vnvgom-Butler",
|
|
528
|
-
styles: "display:flex;label:Butler;",
|
|
529
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ25Ca0IiLCJmaWxlIjoiYnV0bGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIEtleWJvYXJkRXZlbnQsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50LFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcywgQ2xhc3NOYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIHVpS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBTZWFyY2hJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgQnV0bGVyQ29tbWFuZCBmcm9tICcuLi9idXRsZXItY29tbWFuZCc7XG5pbXBvcnQgQnV0bGVyQ29udGFpbmVyIGZyb20gJy4uL2J1dGxlci1jb250YWluZXInO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZCxcbiAgU2VhcmNoVGV4dCxcbiAgU2VsZWN0ZWRSZXN1bHQsXG4gIFN0YWNrLFxuICBIaXN0b3J5RW50cnksXG59IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgaXNTZWxlY3RBbGxDb21ibyA9IChldmVudDogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgZXZlbnQua2V5ID09PSAnYScgJiZcbiAgZXZlbnQubWV0YUtleSAmJlxuICAhZXZlbnQuY3RybEtleSAmJlxuICAhZXZlbnQuYWx0S2V5ICYmXG4gICFldmVudC5zaGlmdEtleTtcblxuY29uc3QgaXNDbG9zZUNvbWJvID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICBldmVudC5rZXkgPT09ICdFc2NhcGUnICYmXG4gICFldmVudC5tZXRhS2V5ICYmXG4gICFldmVudC5jdHJsS2V5ICYmXG4gICFldmVudC5hbHRLZXkgJiZcbiAgIWV2ZW50LnNoaWZ0S2V5O1xuXG5jb25zdCBnZXRQbGF0Zm9ybSA9ICgpID0+IHtcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdXaW4nKSkgcmV0dXJuICd3aW5kb3dzJztcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdNYWMnKSkgcmV0dXJuICdtYWNvcyc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnWDExJykpIHJldHVybiAndW5peCc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnTGludXgnKSkgcmV0dXJuICdsaW51eCc7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBoYXNOZXdXaW5kb3dNb2RpZmllciA9IChcbiAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgTW91c2VFdmVudDxIVE1MRWxlbWVudD5cbikgPT4ge1xuICBjb25zdCBwbGF0Zm9ybSA9IGdldFBsYXRmb3JtKCk7XG4gIHN3aXRjaCAocGxhdGZvcm0pIHtcbiAgICBjYXNlICdtYWNvcyc6XG4gICAgICByZXR1cm4gZXZlbnQubWV0YUtleTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV2ZW50LmN0cmxLZXk7XG4gIH1cbn07XG5cbmNvbnN0IHNoYWtlQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tLFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDE0JSxcbiAgNDIlLFxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTNweCwgMCwgMCk7XG4gIH1cblxuICAyOCUsXG4gIDU2JSxcbiAgODQlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDNweCwgMCwgMCk7XG4gIH1cbmA7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogYm9vbGVhbjtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0O1xuICBzZWxlY3RlZFJlc3VsdDogU2VsZWN0ZWRSZXN1bHQ7XG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IGJvb2xlYW47XG4gIHJlc3VsdHM6IENvbW1hbmRbXTtcbiAgc3RhY2s6IFN0YWNrW107XG59O1xudHlwZSBBY3Rpb24gPVxuICB8IHsgdHlwZTogJ25ldHdvcmtFcnJvcic7IHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ2xvYWRpbmcnOyBwYXlsb2FkOiBib29sZWFuIH1cbiAgfCB7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCc7IHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH1cbiAgfCB7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JztcbiAgICAgIHBheWxvYWQ6IHsgc2VhcmNoVGV4dDogU2VhcmNoVGV4dDsgcmVzdWx0czogQ29tbWFuZFtdIH07XG4gICAgfVxuICB8IHsgdHlwZTogJ3NldE5leHRDb21tYW5kcyc7IHBheWxvYWQ6IHsgcmVzdWx0czogQ29tbWFuZFtdIH0gfVxuICB8IHtcbiAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnO1xuICAgICAgcGF5bG9hZDogeyBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0OyByZXN1bHRzOiBDb21tYW5kW10gfTtcbiAgICB9XG4gIHwgeyB0eXBlOiAnc2VhcmNoVGV4dCc7IHBheWxvYWQ6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOyBwYXlsb2FkOiBDb21tYW5kW10gfVxuICB8IHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfVxuICB8IHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9XG4gIHwgeyB0eXBlOiAncmVzZXQnIH07XG5jb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIHNlYXJjaFRleHQ6ICcnLFxuICBzZWxlY3RlZFJlc3VsdDogLTEsXG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IHRydWUsXG4gIHJlc3VsdHM6IFtdLFxuICBzdGFjazogW10sXG59O1xuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnbmV0d29ya0Vycm9yJzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBoYXNOZXR3b3JrRXJyb3I6IGFjdGlvbi5wYXlsb2FkIH07XG4gICAgY2FzZSAnbG9hZGluZyc6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgaXNMb2FkaW5nOiBhY3Rpb24ucGF5bG9hZCB9O1xuICAgIGNhc2UgJ3NlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQgfTtcbiAgICBjYXNlICdpbmNyZW1lbnRTZWxlY3RlZFJlc3VsdCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6XG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IHN0YXRlLnJlc3VsdHMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0ICsgMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDpcbiAgICAgICAgICBzdGF0ZS5zZWxlY3RlZFJlc3VsdCA8IDFcbiAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0IC0gMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNlbGVjdGVkUmVzdWx0OiAwLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZC5zZWFyY2hUZXh0LFxuICAgICAgICByZXN1bHRzOiBhY3Rpb24ucGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICBzdGFjazogW10sXG4gICAgICAgIC8vIFRoZSBoaXN0b3J5IGRvZXMgbm90IGdldCBjaGFuZ2VkIGhlcmUsIGl0IHdpbGwgYmUgY2hhbmdlZCBhbG9uZ1xuICAgICAgICAvLyB3aXRoIHRoZSByZWd1bGFyIGZsb3cuXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldE5leHRDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc3RhY2s6IFtcbiAgICAgICAgICAuLi5zdGF0ZS5zdGFjayxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgcmVzdWx0czogc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdWx0OiBzdGF0ZS5zZWxlY3RlZFJlc3VsdCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogMCxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLnJlc3VsdHMsXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldFByZXZDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VhcmNoVGV4dDogYWN0aW9uLnBheWxvYWQuc2VhcmNoVGV4dCxcbiAgICAgICAgcmVzdWx0czogYWN0aW9uLnBheWxvYWQucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6IDAsXG4gICAgICAgIGVuYWJsZUhpc3Rvcnk6IGZhbHNlLFxuICAgICAgICAvLyBvbWl0IGxhc3QgaXRlbVxuICAgICAgICBzdGFjazogc3RhdGUuc3RhY2suc2xpY2UoMCwgLTEpLFxuICAgICAgfTtcbiAgICBjYXNlICdzZWFyY2hUZXh0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgLy8gY2xlYXIgbmV0d29yayBlcnJvciB3aGVuIHNlYXJjaCB0ZXh0IGlzIGNsZWFyZWQsIHNvIHRoYXQgdXNlcnNcbiAgICAgICAgLy8gYXJlIHRlbXB0ZWQgdG8gcmV0cnlcbiAgICAgICAgaGFzTmV0d29ya0Vycm9yOiBhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwICYmIHN0YXRlLmhhc05ldHdvcmtFcnJvcixcbiAgICAgIH07XG4gICAgY2FzZSAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCA/IDAgOiAtMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogdHJ1ZSxcbiAgICAgICAgc3RhY2s6IFtdLFxuICAgICAgfTtcbiAgICBjYXNlICdyZXNldFNlYXJjaFRleHQnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlYXJjaFRleHQ6ICcnLCByZXN1bHRzOiBbXSwgc2VsZWN0ZWRSZXN1bHQ6IC0xIH07XG4gICAgY2FzZSAncmVzZXRSZXN1bHRzV2hlbkNsb3NpbmcnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlbGVjdGVkUmVzdWx0OiAtMSwgZW5hYmxlSGlzdG9yeTogdHJ1ZSB9O1xuICAgIGNhc2UgJ3Jlc2V0JzpcbiAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdO1xuICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlOiAoaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdKSA9PiB2b2lkO1xuICBzZWFyY2g6IChzZWFyY2hUZXh0OiBTZWFyY2hUZXh0KSA9PiBQcm9taXNlPENvbW1hbmRbXT47XG4gIGdldE5leHRDb21tYW5kczogKGNvbW1hbmQ6IENvbW1hbmQpID0+IFByb21pc2U8Q29tbWFuZFtdPjtcbiAgZXhlY3V0ZUNvbW1hbmQ6IChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBjbGFzc05hbWVTaGFrZUFuaW1hdGlvbjogc3RyaW5nO1xufTtcbmNvbnN0IEJ1dGxlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyPFxuICAgIChwcmV2U3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbikgPT4gU3RhdGVcbiAgPihyZWR1Y2VyLCBpbml0aWFsU3RhdGUpO1xuXG4gIGNvbnN0IHNob3VsZFNlbGVjdEZpZWxkVGV4dCA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IGlzTmV3V2luZG93Q29tYm8gPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBza2lwTmV4dFNlbGVjdGlvbiA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHNlYXJjaENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IHNldEhhc05ldHdvcmtFcnJvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICduZXR3b3JrRXJyb3InLCBwYXlsb2FkOiB0cnVlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHVuc2V0SGFzTmV0d29ya0Vycm9yID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ25ldHdvcmtFcnJvcicsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHNldElzTG9hZGluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdsb2FkaW5nJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgfSwgW10pO1xuICBjb25zdCB1bnNldElzTG9hZGluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdsb2FkaW5nJywgcGF5bG9hZDogZmFsc2UgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBEZXN0cnVjdHVyZSBmdW5jdGlvbnMgZnJvbSBwcm9wcyB0byByZWZlcmVuY2UgdGhlbSBpbiB0aGUgaG9vayBkZXBlbmRlbmN5IGxpc3RcbiAgY29uc3Qge1xuICAgIHNlYXJjaDogc2VhcmNoRnJvbVBhcmVudCxcbiAgICBvbkNsb3NlOiBvbkNsb3NlRnJvbVBhcmVudCxcbiAgICBleGVjdXRlQ29tbWFuZDogZXhlY3V0ZUNvbW1hbmRGcm9tUGFyZW50LFxuICAgIG9uSGlzdG9yeUVudHJpZXNDaGFuZ2U6IG9uSGlzdG9yeUVudHJpZXNDaGFuZ2VGcm9tUGFyZW50LFxuICAgIGdldE5leHRDb21tYW5kczogZ2V0TmV4dENvbW1hbmRzRnJvbVBhcmVudCxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHNoYWtlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChzZWFyY2hDb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgc2VhcmNoQ29udGFpbmVyUmVmLmN1cnJlbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lU2hha2VBbmltYXRpb25cbiAgICAgICk7XG4gICAgICAvLyAtPiB0cmlnZ2VyaW5nIHJlZmxvd1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZvaWRcbiAgICAgIHZvaWQgc2VhcmNoQ29udGFpbmVyUmVmLmN1cnJlbnQub2Zmc2V0V2lkdGg7XG4gICAgICBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5jbGFzc0xpc3QuYWRkKHByb3BzLmNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uKTtcbiAgICB9XG4gIH0sIFtwcm9wcy5jbGFzc05hbWVTaGFrZUFuaW1hdGlvbl0pO1xuXG4gIGNvbnN0IGV4ZWN1dGUgPSB1c2VDYWxsYmFjayhcbiAgICAoY29tbWFuZCwgbWV0YSkgPT4ge1xuICAgICAgLy8gT25seSBtYWluIGVudHJpZXMgZ2V0IGFkZGVkIHRvIGhpc3RvcnksIHNvIHdoZW4gYSBzdWJjb21tYW5kIGlzIGV4ZWN1dGVkLFxuICAgICAgLy8gd2UgYWRkIHRoZSBtYWluIGNvbW1hbmQgb2YgaXQgdG8gdGhlIGhpc3RvcnkgKHRoZSB0b3AtbGV2ZWwgY29tbWFuZCkuXG4gICAgICAvL1xuICAgICAgLy8gVGhlIGtleSB0byBpZGVudGlmeSBoaXN0b3J5IGVudHJpZXMgYnkgaXMgYWx3YXlzIHRoZSBzZWFyY2hUZXh0XG4gICAgICAvLyBUaGVyZSB3aWxsIG5ldmVyIGJlIHR3byBoaXN0b3J5IGVudHJpZXMgd2l0aCB0aGUgc2FtZSBzZWFyY2hUZXh0XG4gICAgICBjb25zdCBlbnRyeSA9XG4gICAgICAgIHN0YXRlLnN0YWNrLmxlbmd0aCA9PT0gMFxuICAgICAgICAgID8gLy8gVGhlIHN0YWNrIGlzIGVtcHR5LCBzbyB3ZSBhcmUgZXhlY3V0aW5nIGEgdG9wLWxldmVsIGNvbW1hbmRcbiAgICAgICAgICAgIHsgc2VhcmNoVGV4dDogc3RhdGUuc2VhcmNoVGV4dCwgcmVzdWx0czogc3RhdGUucmVzdWx0cyB9XG4gICAgICAgICAgOiAvLyBXZSBhcmUgZXhlY3V0aW5nIGEgc3ViY29tbWFuZCwgc28gd2UgZ2V0IHRoZSB0b3AtbGV2ZWwgY29tbWFuZCBmb3IgaXQsXG4gICAgICAgICAgICAvLyB3aGljaCBpcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBzdGFjay5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogc3RhdGUuc3RhY2tbMF0uc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogc3RhdGUuc3RhY2tbMF0ucmVzdWx0cyxcbiAgICAgICAgICAgIH07XG5cbiAgICAgIC8vIEFkZCB0aGUgZW50cnkgdG8gdGhlIGhpc3RvcnksIHdoaWxlIGV4Y2x1ZGluZyBhbnkgZWFybGllciBoaXN0b3J5IGVudHJ5XG4gICAgICAvLyB3aXRoIHRoZSBzYW1lIHNlYXJjaCB0ZXh0LiBUaGlzIGVmZmVjdGl2ZWx5IFwibW92ZXNcIiB0aGF0IGVudHJ5IHRvIHRoZVxuICAgICAgLy8gdG9wIG9mIHRoZSBoaXN0b3J5ICh3aXRoIHRoZSBtb3N0IHJlY2VudCByZXN1bHRzKSwgb3IgYXBwZW5kcyBhIG5ldyBlbnRyeVxuICAgICAgLy8gd2hlbiBpdCBkaWRuJ3QgZXhpc3QgYmVmb3JlLlxuICAgICAgb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQoW1xuICAgICAgICAuLi5wcm9wcy5oaXN0b3J5RW50cmllcy5maWx0ZXIoXG4gICAgICAgICAgKGNvbW1hbmQpID0+IGNvbW1hbmQuc2VhcmNoVGV4dCAhPT0gZW50cnkuc2VhcmNoVGV4dFxuICAgICAgICApLFxuICAgICAgICBlbnRyeSxcbiAgICAgIF0pO1xuXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldFNlYXJjaFRleHQnIH0pO1xuXG4gICAgICBvbkNsb3NlRnJvbVBhcmVudCgpO1xuXG4gICAgICBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQoY29tbWFuZCwgbWV0YSk7XG4gICAgfSxcbiAgICBbXG4gICAgICBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQsXG4gICAgICBvbkNsb3NlRnJvbVBhcmVudCxcbiAgICAgIG9uSGlzdG9yeUVudHJpZXNDaGFuZ2VGcm9tUGFyZW50LFxuICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMsXG4gICAgICBzdGF0ZS5yZXN1bHRzLFxuICAgICAgc3RhdGUuc2VhcmNoVGV4dCxcbiAgICAgIHN0YXRlLnN0YWNrLFxuICAgIF1cbiAgKTtcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrPEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnRpbmcgY3Vyc29yIGp1bXBzIGNhbiBvbmx5IGhhcHBlbiBpbiBvbktleURvd24sIGJ1dCBub3QgaW4gb25LZXlVcFxuICAgICAgZXZlbnQucGVyc2lzdCgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIGtub3cgd2hlbiB0aGUgdXNlciBwcmVzc2VzIGNtZCtlbnRlciAoY21kIGJlaW5nIGEgbWV0YSBrZXkpLlxuICAgICAgLy8gV2UgYXJlIG9ubHkgdG9sZCBhYm91dCB0aGlzIGluIGtleURvd24sIGJ1dCBub3QgaW4ga2V5VXAsIHNvIHdlIG5lZWRcbiAgICAgIC8vIHRvIGhhbmRsZSBpdCBoZXJlXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGhhc05ld1dpbmRvd01vZGlmaWVyKGV2ZW50KSkge1xuICAgICAgICBpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEF2b2lkIHNlbGVjdGluZyB0aGUgd2hvbGUgcGFnZSB3aGVuIHVzZXIgc2VsZWN0ZXMgZXZlcnl0aGluZyB3aXRoXG4gICAgICAvLyBhIGtleWJvYXJkIHNob3J0Y3V0LiBUaGVyZSBpcyBwcm9iYWJseSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcyB0aG91Z2guXG4gICAgICAvLyBUaGlzIHByZXZlbnRzIHRoZSB3aG9sZSBwYWdlIGZyb20gYmVpbmcgc2VsZWN0ZWQgaW4gY2FzZSB0aGUgdXNlclxuICAgICAgLy8gMSkgb3BlbnMgdGhlIHNlYXJjaCBib3hcbiAgICAgIC8vIDIpIHR5cGVzIGludG8gaXRcbiAgICAgIC8vIDMpIHNlbGVjdHMgYWxsIHRleHQgdXNpbmcgY21kK2FcbiAgICAgIC8vIDQpIGNsb3NlcyB0aGUgc2VhcmNoIGJveCB3aXRoIGVzY1xuICAgICAgLy8gV2l0aG91dCB0aGlzIGhhbmRsaW5nLCB0aGUgd2hvbGUgcGFnZSB3b3VsZCBub3cgYmUgc2VsZWN0ZWRcbiAgICAgIGlmIChpc1NlbGVjdEFsbENvbWJvKGV2ZW50KSkge1xuICAgICAgICAvLyBUaGlzIHN0b3BzIHRoZSBicm93c2VyIGZyb20gc2VsZWN0aW5nIGFueXRoaW5nXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzZWFyY2hJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgLy8gVGhpcyBzZWxlY3RzIHRoZSB0ZXh0IGluIHRoZSBzZWFyY2ggaW5wdXRcbiAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGF2b2lkIGludGVyZmVyaW5nIHdpdGggb3RoZXIga2V5IGNvbWJpbmF0aW9ucyB1c2luZyBtb2RpZmllciBrZXlzXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQubWV0YUtleSlcbiAgICAgICAgcmV0dXJuO1xuICAgICAgaWYgKGlzQ2xvc2VDb21ibyhldmVudCkpIHJldHVybjtcblxuICAgICAgLy8gc2tpcCBuZXh0IG1vdXNlRW50ZXIgdG8gYXZvaWQgc2V0dGluZyBzZWxlY3RlZFJlc3VsdCB3aGVuIGN1cnNvciBqdXN0XG4gICAgICAvLyBoYXBwZW5zIHRvIGJlIHdoZXJlIHRoZSByZXN1bHRzIHdpbGwgcG9wIHVwXG4gICAgICBza2lwTmV4dFNlbGVjdGlvbi5jdXJyZW50ID0gdHJ1ZTtcblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIHRvIGVuZCBvZiB0ZXh0IGlucHV0XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ2luY3JlbWVudFNlbGVjdGVkUmVzdWx0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIC8vIGJyb3dzZSB0aHJvdWdoIGhpc3RvcnlcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgKHN0YXRlLnNlbGVjdGVkUmVzdWx0IDwgMSAmJiBzdGF0ZS5lbmFibGVIaXN0b3J5KVxuICAgICAgICApIHtcbiAgICAgICAgICBzaG91bGRTZWxlY3RGaWVsZFRleHQuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9XG4gICAgICAgICAgICBzdGF0ZS5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICA/IC8vIFdoZW4gZ29pbmcgYmFjayB0aGUgZmlyc3Qgc3RlcFxuICAgICAgICAgICAgICAgIC0xXG4gICAgICAgICAgICAgIDogLy8gV2hlbiBnb2luZyBiYWNrIG1vcmUgdGhhbiBvbmUgc3RlcFxuICAgICAgICAgICAgICAgIHByb3BzLmhpc3RvcnlFbnRyaWVzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgIChjb21tYW5kKSA9PiBjb21tYW5kLnNlYXJjaFRleHQgPT09IHN0YXRlLnNlYXJjaFRleHRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgIC8vIFBpY2sgdGhlIHByZXZpb3VzIGNvbW1hbmQgZnJvbSB0aGUgaGlzdG9yeVxuICAgICAgICAgIGNvbnN0IHByZXZDb21tYW5kID1cbiAgICAgICAgICAgIHNlbGVjdGVkSW5kZXggPT09IC0xXG4gICAgICAgICAgICAgID8gLy8gcHJldmlvdXMgY29tbWFuZCBvbiB0b3Agb2YgdGhlIGhpc3Rvcnkgd2hlbiBnb2luZyBiYWNrIG9uXG4gICAgICAgICAgICAgICAgLy8gZmlyc3Qgc3RlcFxuICAgICAgICAgICAgICAgIGxhc3QocHJvcHMuaGlzdG9yeUVudHJpZXMpXG4gICAgICAgICAgICAgIDogLy8gcHJldmlvdXMgY29tbWFuZCBpcyBkZWVwZXIgZG93blxuICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGhpc3RvcnkgZG9lcyBub3QgZXhpc3QgKG5lZ2F0aXZlIGluZGV4KSwgdGhlblxuICAgICAgICAgICAgICAgIC8vIHRoaXMgaW1wbGljaXRseSByZXR1cm5zIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIHByb3BzLmhpc3RvcnlFbnRyaWVzW3NlbGVjdGVkSW5kZXggLSAxXTtcbiAgICAgICAgICAvLyBTa2lwIHdoZW4gbm8gcHJldmlvdXMgZW50cnkgZXhpc3RzIGluIHRoZSBoaXN0b3J5XG4gICAgICAgICAgaWYgKCFwcmV2Q29tbWFuZCkgcmV0dXJuO1xuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcHJldkNvbW1hbmQuc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogcHJldkNvbW1hbmQucmVzdWx0cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20ganVtcGluZyB0byBiZWdpbm5pbmcgb2YgdGV4dCBpbnB1dFxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RlZFJlc3VsdCA+IC0xKSB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBzdGF0ZS5yZXN1bHRzW3N0YXRlLnNlbGVjdGVkUmVzdWx0XTtcbiAgICAgICAgICBjb25zdCBzZWFyY2hUZXh0ID0gc3RhdGUuc2VhcmNoVGV4dDtcbiAgICAgICAgICBjb25zdCBpc0N1cnNvckF0RW5kID1cbiAgICAgICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQgJiZcbiAgICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0O1xuXG4gICAgICAgICAgY29uc3QgaXNFdmVyeXRoaW5nU2VsZWN0ZWQgPVxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCAmJlxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCAmJlxuICAgICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kO1xuXG4gICAgICAgICAgLy8gb25seSBhbGxvdyBkaXZpbmcgaW4gd2hlbiBjdXJzb3IgaXMgYXQgZW5kIG9mIGlucHV0IG9yIHdoZW5cbiAgICAgICAgICAvLyB0aGUgY29tcGxldGUgdGV4dCBpcyBzZWxlY3RlZCAod2hlbiBicm93c2luZyB0aHJvdWdoIGhpc3RvcnkpXG4gICAgICAgICAgaWYgKCFpc0N1cnNvckF0RW5kICYmICFpc0V2ZXJ5dGhpbmdTZWxlY3RlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IoKTtcblxuICAgICAgICAgIC8vIE5PVEU6IHNpbmNlIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIFwibmV4dCBjb21tYW5kXCIsIHdoaWNoIGlzIGFuIGFzeW5jIG9wZXJhdGlvbixcbiAgICAgICAgICAvLyB3ZSB1c2UgYSBJSUZFIHRvIHByb2Nlc3MgdGhhdCBhbmQgZXZlbnR1YWxseSB1cGRhdGUgdGhlIHN0YXRlLlxuICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29tbWFuZCkge1xuICAgICAgICAgICAgICBjb25zdCBuZXh0Q29tbWFuZHMgPSBhd2FpdCBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50KGNvbW1hbmQpO1xuICAgICAgICAgICAgICAvLyBhdm9pZCBtb3ZpbmcgY3Vyc29yIHdoZW4gdGhlcmUgYXJlIHN1Yi1vcHRpb25zXG4gICAgICAgICAgICAgIGlmIChuZXh0Q29tbWFuZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgc2VhcmNoIHRleHQgaGFzIG5vdCBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgbG9hZGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHJlc3VsdHMsIG90aGVyd2lzZSB3ZSdkIGludGVycnVwdCB0aGUgdXNlci5cbiAgICAgICAgICAgICAgICAvLyBUaHJvdyBhd2F5IHRoZSByZXN1bHRzIGluIGNhc2UgdGhlIHNlYXJjaCB0ZXh0IGhhcyBjaGFuZ2VkLlxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5zZWFyY2hUZXh0ID09PSBzZWFyY2hUZXh0KSB7XG4gICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXROZXh0Q29tbWFuZHMnLFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiB7IHJlc3VsdHM6IG5leHRDb21tYW5kcyB9LFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2hha2UoKTtcbiAgICAgICAgICB9KSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgICAgIC8vIGdvIGxlZnQgaW4gc3RhY2tcbiAgICAgICAgICBjb25zdCBwcmV2Q29tbWFuZCA9IGxhc3Qoc3RhdGUuc3RhY2spO1xuXG4gICAgICAgICAgLy8gZG8gbm90aGluZyB3aGVuIHdlIGNhbid0IGdvIGxlZnQgYW55bW9yZVxuICAgICAgICAgIGlmICghcHJldkNvbW1hbmQpIHJldHVybjtcblxuICAgICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20ganVtcGluZyBhIGNoYXIgdG8gdGhlIGxlZnQgaW4gdGV4dCBpbnB1dFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnc2V0UHJldkNvbW1hbmRzJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcHJldkNvbW1hbmQuc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogcHJldkNvbW1hbmQucmVzdWx0cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50LFxuICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMsXG4gICAgICBzaGFrZSxcbiAgICAgIHN0YXRlLFxuICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IsXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVLZXlVcCA9IHVzZUNhbGxiYWNrPEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIHNldHRpbmcgdGhlIHNlbGVjdGlvbiBjYW4gb25seSBoYXBwZW4gaW4gb25LZXlVcFxuICAgICAgaWYgKHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgICAgIGlucHV0LnNlbGVjdCgpO1xuICAgICAgICBzaG91bGRTZWxlY3RGaWVsZFRleHQuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQua2V5ICE9PSAnRW50ZXInICYmICFpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQpIHJldHVybiB0cnVlO1xuXG4gICAgICAvLyBVc2VyIGp1c3QgdHJpZ2dlcmVkIHRoZSBzZWFyY2hcbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RlZFJlc3VsdCA9PT0gLTEpIHJldHVybiB0cnVlO1xuXG4gICAgICAvLyBVc2VyIGhhZCBzb21ldGhpbmcgc2VsZWN0ZWQgYW5kIHdhbnRzIHRvIGdvIHRoZXJlXG4gICAgICBleGVjdXRlKHN0YXRlLnJlc3VsdHNbc3RhdGUuc2VsZWN0ZWRSZXN1bHRdLCB7XG4gICAgICAgIG9wZW5Jbk5ld1RhYjogaXNOZXdXaW5kb3dDb21iby5jdXJyZW50LFxuICAgICAgfSk7XG5cbiAgICAgIGlzTmV3V2luZG93Q29tYm8uY3VycmVudCA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBbZXhlY3V0ZSwgc3RhdGUucmVzdWx0cywgc3RhdGUuc2VsZWN0ZWRSZXN1bHRdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrPENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50Pj4oXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKHNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldCcgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnc2VhcmNoVGV4dCcsIHBheWxvYWQ6IHNlYXJjaFRleHQgfSk7XG5cbiAgICAgIC8vIEEgc2VhcmNoIHZpYSBuZXR3b3JrIGlzIG9ubHkgdHJpZ2dlcmVkIHdoZW4gdGhlcmVcbiAgICAgIC8vIGFyZSBtb3JlIHRoYW4gdGhyZWUgY2hhcmFjdGVycy4gU28gbm8gZmFsc2UgbG9hZGluZ1xuICAgICAgLy8gaW5kaWNhdGlvbiBpcyBnaXZlbi5cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKS5sZW5ndGggPiAzKSB7XG4gICAgICAgIHNldElzTG9hZGluZygpO1xuICAgICAgfVxuXG4gICAgICBzZWFyY2hGcm9tUGFyZW50KHNlYXJjaFRleHQpLnRoZW4oXG4gICAgICAgIChhc3luY1Jlc3VsdHM6IENvbW1hbmRbXSkgPT4ge1xuICAgICAgICAgIHVuc2V0SGFzTmV0d29ya0Vycm9yKCk7XG4gICAgICAgICAgdW5zZXRJc0xvYWRpbmcoKTtcblxuICAgICAgICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShhc3luY1Jlc3VsdHMsIHtcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgeyBuYW1lOiAndGV4dCcsIHdlaWdodDogMC42IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2tleXdvcmRzJywgd2VpZ2h0OiAwLjQgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBtaW5NYXRjaENoYXJMZW5ndGg6IDIsXG4gICAgICAgICAgICBpbmNsdWRlU2NvcmU6IHRydWUsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHRzID0gZnVzZVxuICAgICAgICAgICAgLnNlYXJjaChzZWFyY2hUZXh0KVxuICAgICAgICAgICAgLy8gRmlsdGVyIG91dCByZXN1bHRzIHdpdGggYSBtYXRjaGluZyBzY29yZSBvdmVyIDAuNzVcbiAgICAgICAgICAgIC5maWx0ZXIoKHJlc3VsdCkgPT4gKHJlc3VsdC5zY29yZSA/IHJlc3VsdC5zY29yZSA8IDAuNzUgOiBmYWxzZSkpXG4gICAgICAgICAgICAvLyBLZWVwIGEgbWF4aW1hbCBvZiA5IHJlc3VsdHNcbiAgICAgICAgICAgIC5zbGljZSgwLCA5KTtcblxuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXRTZWFyY2hUZXh0UmVzdWx0cycsXG4gICAgICAgICAgICBwYXlsb2FkOiBzZWFyY2hSZXN1bHRzLm1hcCgocmVzdWx0KSA9PiByZXN1bHQuaXRlbSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB1bnNldElzTG9hZGluZygpO1xuICAgICAgICAgIHNldEhhc05ldHdvcmtFcnJvcigpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgW1xuICAgICAgc2VhcmNoRnJvbVBhcmVudCxcbiAgICAgIHNldEhhc05ldHdvcmtFcnJvcixcbiAgICAgIHNldElzTG9hZGluZyxcbiAgICAgIHVuc2V0SGFzTmV0d29ya0Vycm9yLFxuICAgICAgdW5zZXRJc0xvYWRpbmcsXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVDb250YWluZXJDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldFJlc3VsdHNXaGVuQ2xvc2luZycgfSk7XG4gICAgb25DbG9zZUZyb21QYXJlbnQoKTtcbiAgfSwgW29uQ2xvc2VGcm9tUGFyZW50XSk7XG5cbiAgY29uc3QgY3JlYXRlQ29tbWFuZE1vdXNlRW50ZXJIYW5kbGVyID0gdXNlQ2FsbGJhY2s8XG4gICAgKGluZGV4OiBudW1iZXIpID0+IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PlxuICA+KFxuICAgIChpbmRleCkgPT4gKCkgPT4ge1xuICAgICAgLy8gSW4gY2FzZSB0aGUgY3Vyc29yIGhhcHBlbmVkIHRvIGJlIGluIGEgbG9jYXRpb24gd2hlcmUgYVxuICAgICAgLy8gcmVzdWx0IHdvdWxkIGFwcGVhciwgaXQgd291bGQgdHJpZ2dlciBvbk1vdXNlRW50ZXIgYW5kIHRoZVxuICAgICAgLy8gcmVzdWx0IHdvdWxkIGJlIHNlbGVjdGVkIGltbWVkaWF0ZWx5LiBUaGlzIGlzIG5vdCBzb21ldGhpbmdcbiAgICAgIC8vIGEgdXNlciB3b3VsZCBleHBlY3QsIGhlbmNlIHdlIHByZXZlbnQgaXQgZnJvbSBoYXBwZW5pbmcuXG4gICAgICAvLyBUaGUgdXNlciBoYXMgdG8gbW92ZSB0aGUgY3Vyc29yIHRvIGFuIG9wdGlvbiBleHBsaWNpdGx5IGZvclxuICAgICAgLy8gaXQgdG8gYmVjb21lIGFjdGl2ZS4gSG93ZXZlciwgdGhlIHVzZXIgY2FuIGFsd2F5cyBjbGljayBhbmRcbiAgICAgIC8vIHRoYXQgYWN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkLlxuICAgICAgaWYgKHNraXBOZXh0U2VsZWN0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgc2tpcE5leHRTZWxlY3Rpb24uY3VycmVudCA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHNldHMgdGhlIHNlbGVjdGVkIHJlc3VsdCwgbWFpbmx5IGZvciB0aGUgaG92ZXIgZWZmZWN0XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCcsIHBheWxvYWQ6IGluZGV4IH0pO1xuICAgIH0sXG4gICAgW11cbiAgKTtcbiAgY29uc3QgY3JlYXRlQ29tbWFuZENsaWNrSGFuZGxlciA9IHVzZUNhbGxiYWNrPFxuICAgIChjb21tYW5kOiBDb21tYW5kKSA9PiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD5cbiAgPihcbiAgICAoY29tbWFuZCkgPT4gKGV2ZW50KSA9PiB7XG4gICAgICBleGVjdXRlKGNvbW1hbmQsIHtcbiAgICAgICAgb3BlbkluTmV3VGFiOiBoYXNOZXdXaW5kb3dNb2RpZmllcihldmVudCksXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtleGVjdXRlXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEJ1dGxlckNvbnRhaW5lclxuICAgICAgb25DbGljaz17aGFuZGxlQ29udGFpbmVyQ2xpY2t9XG4gICAgICBkYXRhLXRlc3RpZD1cInF1aWNrLWFjY2Vzc1wiXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3NlYXJjaENvbnRhaW5lclJlZn1cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAke3VpS2l0RGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG5cbiAgICAgICAgICAvKiBvbmUgbW9yZSB0aGFuIGFwcC1iYXIgKDIwMDAwKSBhbmQgb25lIG1vcmUgdGhhbiB0aGUgb3ZlcmxheSAoMjAwMDEpICovXG4gICAgICAgICAgei1pbmRleDogMjAwMDI7XG4gICAgICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgICAgIG1hcmdpbjogNDBweCBhdXRvO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggLThweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAke3N0YXRlLmhhc05ldHdvcmtFcnJvclxuICAgICAgICAgICAgPyAnMCdcbiAgICAgICAgICAgIDogdWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICBgfVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBBdm9pZCBjbG9zaW5nIHdoZW4gdGhlIHNlYXJjaENvbnRhaW5lciBpdHNlbGYgaXMgY2xpY2tlZFxuICAgICAgICAgIC8vIElmIHdlIGRvbid0IGRvIHRoaXMsIHRoZW4gdGhlIG92ZXJsYXkgd2lsbCBjbG9zZSB3aGVuIGUuZy5cbiAgICAgICAgICAvLyB0aGUgc2VhcmNoIGlucHV0IGlzIGNsaWNrZWQuXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBodG1sRm9yPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ019O1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFNlYXJjaEljb24gY29sb3I9XCJuZXV0cmFsNjBcIiAvPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInF1aWNrLWFjY2Vzcy1zZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgcmVmPXtzZWFyY2hJbnB1dFJlZn1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpbnRsLmZvcm1hdE1lc3NhZ2UobWVzc2FnZXMuaW5wdXRQbGFjZWhvZGVyKX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ019XG4gICAgICAgICAgICAgICAgJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX0gJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU31cbiAgICAgICAgICAgICAgICAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbDYwfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYH1cbiAgICAgICAgICAgIHZhbHVlPXtzdGF0ZS5zZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgIG9uS2V5VXA9e2hhbmRsZUtleVVwfVxuICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICB7c3RhdGUuaXNMb2FkaW5nICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0ZS5oYXNOZXR3b3JrRXJyb3IpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHt1aUtpdERlc2lnblRva2Vucy5mb250U2l6ZTIwfTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1hzfTtcbiAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLm9mZmxpbmV9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChzdGF0ZS5yZXN1bHRzLmxlbmd0aCA9PT0gMCAmJiBzdGF0ZS5zZWFyY2hUZXh0LnRyaW0oKS5sZW5ndGggPiAwKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbH07XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclNvbGlkfTtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6ICR7dWlLaXREZXNpZ25Ub2tlbnMuZm9udFNpemUyMH07XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdYc307XG4gICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5ub1Jlc3VsdHN9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBzdGF0ZS5yZXN1bHRzLm1hcCgoY29tbWFuZCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxCdXRsZXJDb21tYW5kXG4gICAgICAgICAgICAgIGtleT17Y29tbWFuZC5pZH1cbiAgICAgICAgICAgICAgY29tbWFuZD17Y29tbWFuZH1cbiAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IGluZGV4fVxuICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9e2NyZWF0ZUNvbW1hbmRNb3VzZUVudGVySGFuZGxlcihpbmRleCl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2NyZWF0ZUNvbW1hbmRDbGlja0hhbmRsZXIoY29tbWFuZCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpO1xuICAgICAgICB9KSgpfVxuICAgICAgPC9kaXY+XG4gICAgPC9CdXRsZXJDb250YWluZXI+XG4gICk7XG59O1xuQnV0bGVyLmRpc3BsYXlOYW1lID0gJ0J1dGxlcic7XG5cbmNvbnN0IEJ1dGxlcldpdGhBbmltYXRpb24gPSAocHJvcHM6IE9taXQ8UHJvcHMsICdjbGFzc05hbWVTaGFrZUFuaW1hdGlvbic+KSA9PiAoXG4gIDxDbGFzc05hbWVzPlxuICAgIHsoeyBjc3MgfSkgPT4gKFxuICAgICAgPEJ1dGxlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIGNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uPXtjc3NgXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjQ1cztcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiAke3NoYWtlQW5pbWF0aW9ufTtcbiAgICAgICAgYH1cbiAgICAgIC8+XG4gICAgKX1cbiAgPC9DbGFzc05hbWVzPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyV2l0aEFuaW1hdGlvbjtcbiJdfQ== */",
|
|
526
|
+
styles: "display:flex;label:Butler;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ25Ca0IiLCJmaWxlIjoiYnV0bGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIEtleWJvYXJkRXZlbnQsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50LFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcywgQ2xhc3NOYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIHVpS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBTZWFyY2hJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgQnV0bGVyQ29tbWFuZCBmcm9tICcuLi9idXRsZXItY29tbWFuZCc7XG5pbXBvcnQgQnV0bGVyQ29udGFpbmVyIGZyb20gJy4uL2J1dGxlci1jb250YWluZXInO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZCxcbiAgU2VhcmNoVGV4dCxcbiAgU2VsZWN0ZWRSZXN1bHQsXG4gIFN0YWNrLFxuICBIaXN0b3J5RW50cnksXG59IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgaXNTZWxlY3RBbGxDb21ibyA9IChldmVudDogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgZXZlbnQua2V5ID09PSAnYScgJiZcbiAgZXZlbnQubWV0YUtleSAmJlxuICAhZXZlbnQuY3RybEtleSAmJlxuICAhZXZlbnQuYWx0S2V5ICYmXG4gICFldmVudC5zaGlmdEtleTtcblxuY29uc3QgaXNDbG9zZUNvbWJvID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICBldmVudC5rZXkgPT09ICdFc2NhcGUnICYmXG4gICFldmVudC5tZXRhS2V5ICYmXG4gICFldmVudC5jdHJsS2V5ICYmXG4gICFldmVudC5hbHRLZXkgJiZcbiAgIWV2ZW50LnNoaWZ0S2V5O1xuXG5jb25zdCBnZXRQbGF0Zm9ybSA9ICgpID0+IHtcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdXaW4nKSkgcmV0dXJuICd3aW5kb3dzJztcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdNYWMnKSkgcmV0dXJuICdtYWNvcyc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnWDExJykpIHJldHVybiAndW5peCc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnTGludXgnKSkgcmV0dXJuICdsaW51eCc7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBoYXNOZXdXaW5kb3dNb2RpZmllciA9IChcbiAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgTW91c2VFdmVudDxIVE1MRWxlbWVudD5cbikgPT4ge1xuICBjb25zdCBwbGF0Zm9ybSA9IGdldFBsYXRmb3JtKCk7XG4gIHN3aXRjaCAocGxhdGZvcm0pIHtcbiAgICBjYXNlICdtYWNvcyc6XG4gICAgICByZXR1cm4gZXZlbnQubWV0YUtleTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV2ZW50LmN0cmxLZXk7XG4gIH1cbn07XG5cbmNvbnN0IHNoYWtlQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tLFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDE0JSxcbiAgNDIlLFxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTNweCwgMCwgMCk7XG4gIH1cblxuICAyOCUsXG4gIDU2JSxcbiAgODQlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDNweCwgMCwgMCk7XG4gIH1cbmA7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogYm9vbGVhbjtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0O1xuICBzZWxlY3RlZFJlc3VsdDogU2VsZWN0ZWRSZXN1bHQ7XG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IGJvb2xlYW47XG4gIHJlc3VsdHM6IENvbW1hbmRbXTtcbiAgc3RhY2s6IFN0YWNrW107XG59O1xudHlwZSBBY3Rpb24gPVxuICB8IHsgdHlwZTogJ25ldHdvcmtFcnJvcic7IHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ2xvYWRpbmcnOyBwYXlsb2FkOiBib29sZWFuIH1cbiAgfCB7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCc7IHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH1cbiAgfCB7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JztcbiAgICAgIHBheWxvYWQ6IHsgc2VhcmNoVGV4dDogU2VhcmNoVGV4dDsgcmVzdWx0czogQ29tbWFuZFtdIH07XG4gICAgfVxuICB8IHsgdHlwZTogJ3NldE5leHRDb21tYW5kcyc7IHBheWxvYWQ6IHsgcmVzdWx0czogQ29tbWFuZFtdIH0gfVxuICB8IHtcbiAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnO1xuICAgICAgcGF5bG9hZDogeyBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0OyByZXN1bHRzOiBDb21tYW5kW10gfTtcbiAgICB9XG4gIHwgeyB0eXBlOiAnc2VhcmNoVGV4dCc7IHBheWxvYWQ6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOyBwYXlsb2FkOiBDb21tYW5kW10gfVxuICB8IHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfVxuICB8IHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9XG4gIHwgeyB0eXBlOiAncmVzZXQnIH07XG5jb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIHNlYXJjaFRleHQ6ICcnLFxuICBzZWxlY3RlZFJlc3VsdDogLTEsXG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IHRydWUsXG4gIHJlc3VsdHM6IFtdLFxuICBzdGFjazogW10sXG59O1xuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnbmV0d29ya0Vycm9yJzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBoYXNOZXR3b3JrRXJyb3I6IGFjdGlvbi5wYXlsb2FkIH07XG4gICAgY2FzZSAnbG9hZGluZyc6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgaXNMb2FkaW5nOiBhY3Rpb24ucGF5bG9hZCB9O1xuICAgIGNhc2UgJ3NlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQgfTtcbiAgICBjYXNlICdpbmNyZW1lbnRTZWxlY3RlZFJlc3VsdCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6XG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IHN0YXRlLnJlc3VsdHMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0ICsgMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDpcbiAgICAgICAgICBzdGF0ZS5zZWxlY3RlZFJlc3VsdCA8IDFcbiAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0IC0gMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNlbGVjdGVkUmVzdWx0OiAwLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZC5zZWFyY2hUZXh0LFxuICAgICAgICByZXN1bHRzOiBhY3Rpb24ucGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICBzdGFjazogW10sXG4gICAgICAgIC8vIFRoZSBoaXN0b3J5IGRvZXMgbm90IGdldCBjaGFuZ2VkIGhlcmUsIGl0IHdpbGwgYmUgY2hhbmdlZCBhbG9uZ1xuICAgICAgICAvLyB3aXRoIHRoZSByZWd1bGFyIGZsb3cuXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldE5leHRDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc3RhY2s6IFtcbiAgICAgICAgICAuLi5zdGF0ZS5zdGFjayxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgcmVzdWx0czogc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdWx0OiBzdGF0ZS5zZWxlY3RlZFJlc3VsdCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogMCxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLnJlc3VsdHMsXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldFByZXZDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VhcmNoVGV4dDogYWN0aW9uLnBheWxvYWQuc2VhcmNoVGV4dCxcbiAgICAgICAgcmVzdWx0czogYWN0aW9uLnBheWxvYWQucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6IDAsXG4gICAgICAgIGVuYWJsZUhpc3Rvcnk6IGZhbHNlLFxuICAgICAgICAvLyBvbWl0IGxhc3QgaXRlbVxuICAgICAgICBzdGFjazogc3RhdGUuc3RhY2suc2xpY2UoMCwgLTEpLFxuICAgICAgfTtcbiAgICBjYXNlICdzZWFyY2hUZXh0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgLy8gY2xlYXIgbmV0d29yayBlcnJvciB3aGVuIHNlYXJjaCB0ZXh0IGlzIGNsZWFyZWQsIHNvIHRoYXQgdXNlcnNcbiAgICAgICAgLy8gYXJlIHRlbXB0ZWQgdG8gcmV0cnlcbiAgICAgICAgaGFzTmV0d29ya0Vycm9yOiBhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwICYmIHN0YXRlLmhhc05ldHdvcmtFcnJvcixcbiAgICAgIH07XG4gICAgY2FzZSAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCA/IDAgOiAtMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogdHJ1ZSxcbiAgICAgICAgc3RhY2s6IFtdLFxuICAgICAgfTtcbiAgICBjYXNlICdyZXNldFNlYXJjaFRleHQnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlYXJjaFRleHQ6ICcnLCByZXN1bHRzOiBbXSwgc2VsZWN0ZWRSZXN1bHQ6IC0xIH07XG4gICAgY2FzZSAncmVzZXRSZXN1bHRzV2hlbkNsb3NpbmcnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlbGVjdGVkUmVzdWx0OiAtMSwgZW5hYmxlSGlzdG9yeTogdHJ1ZSB9O1xuICAgIGNhc2UgJ3Jlc2V0JzpcbiAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdO1xuICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlOiAoaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdKSA9PiB2b2lkO1xuICBzZWFyY2g6IChzZWFyY2hUZXh0OiBTZWFyY2hUZXh0KSA9PiBQcm9taXNlPENvbW1hbmRbXT47XG4gIGdldE5leHRDb21tYW5kczogKGNvbW1hbmQ6IENvbW1hbmQpID0+IFByb21pc2U8Q29tbWFuZFtdPjtcbiAgZXhlY3V0ZUNvbW1hbmQ6IChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBjbGFzc05hbWVTaGFrZUFuaW1hdGlvbjogc3RyaW5nO1xufTtcbmNvbnN0IEJ1dGxlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyPFxuICAgIChwcmV2U3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbikgPT4gU3RhdGVcbiAgPihyZWR1Y2VyLCBpbml0aWFsU3RhdGUpO1xuXG4gIGNvbnN0IHNob3VsZFNlbGVjdEZpZWxkVGV4dCA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IGlzTmV3V2luZG93Q29tYm8gPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBza2lwTmV4dFNlbGVjdGlvbiA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHNlYXJjaENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IHNldEhhc05ldHdvcmtFcnJvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICduZXR3b3JrRXJyb3InLCBwYXlsb2FkOiB0cnVlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHVuc2V0SGFzTmV0d29ya0Vycm9yID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ25ldHdvcmtFcnJvcicsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHNldElzTG9hZGluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdsb2FkaW5nJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgfSwgW10pO1xuICBjb25zdCB1bnNldElzTG9hZGluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdsb2FkaW5nJywgcGF5bG9hZDogZmFsc2UgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBEZXN0cnVjdHVyZSBmdW5jdGlvbnMgZnJvbSBwcm9wcyB0byByZWZlcmVuY2UgdGhlbSBpbiB0aGUgaG9vayBkZXBlbmRlbmN5IGxpc3RcbiAgY29uc3Qge1xuICAgIHNlYXJjaDogc2VhcmNoRnJvbVBhcmVudCxcbiAgICBvbkNsb3NlOiBvbkNsb3NlRnJvbVBhcmVudCxcbiAgICBleGVjdXRlQ29tbWFuZDogZXhlY3V0ZUNvbW1hbmRGcm9tUGFyZW50LFxuICAgIG9uSGlzdG9yeUVudHJpZXNDaGFuZ2U6IG9uSGlzdG9yeUVudHJpZXNDaGFuZ2VGcm9tUGFyZW50LFxuICAgIGdldE5leHRDb21tYW5kczogZ2V0TmV4dENvbW1hbmRzRnJvbVBhcmVudCxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHNoYWtlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChzZWFyY2hDb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgc2VhcmNoQ29udGFpbmVyUmVmLmN1cnJlbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lU2hha2VBbmltYXRpb25cbiAgICAgICk7XG4gICAgICAvLyAtPiB0cmlnZ2VyaW5nIHJlZmxvd1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZvaWRcbiAgICAgIHZvaWQgc2VhcmNoQ29udGFpbmVyUmVmLmN1cnJlbnQub2Zmc2V0V2lkdGg7XG4gICAgICBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5jbGFzc0xpc3QuYWRkKHByb3BzLmNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uKTtcbiAgICB9XG4gIH0sIFtwcm9wcy5jbGFzc05hbWVTaGFrZUFuaW1hdGlvbl0pO1xuXG4gIGNvbnN0IGV4ZWN1dGUgPSB1c2VDYWxsYmFjayhcbiAgICAoY29tbWFuZCwgbWV0YSkgPT4ge1xuICAgICAgLy8gT25seSBtYWluIGVudHJpZXMgZ2V0IGFkZGVkIHRvIGhpc3RvcnksIHNvIHdoZW4gYSBzdWJjb21tYW5kIGlzIGV4ZWN1dGVkLFxuICAgICAgLy8gd2UgYWRkIHRoZSBtYWluIGNvbW1hbmQgb2YgaXQgdG8gdGhlIGhpc3RvcnkgKHRoZSB0b3AtbGV2ZWwgY29tbWFuZCkuXG4gICAgICAvL1xuICAgICAgLy8gVGhlIGtleSB0byBpZGVudGlmeSBoaXN0b3J5IGVudHJpZXMgYnkgaXMgYWx3YXlzIHRoZSBzZWFyY2hUZXh0XG4gICAgICAvLyBUaGVyZSB3aWxsIG5ldmVyIGJlIHR3byBoaXN0b3J5IGVudHJpZXMgd2l0aCB0aGUgc2FtZSBzZWFyY2hUZXh0XG4gICAgICBjb25zdCBlbnRyeSA9XG4gICAgICAgIHN0YXRlLnN0YWNrLmxlbmd0aCA9PT0gMFxuICAgICAgICAgID8gLy8gVGhlIHN0YWNrIGlzIGVtcHR5LCBzbyB3ZSBhcmUgZXhlY3V0aW5nIGEgdG9wLWxldmVsIGNvbW1hbmRcbiAgICAgICAgICAgIHsgc2VhcmNoVGV4dDogc3RhdGUuc2VhcmNoVGV4dCwgcmVzdWx0czogc3RhdGUucmVzdWx0cyB9XG4gICAgICAgICAgOiAvLyBXZSBhcmUgZXhlY3V0aW5nIGEgc3ViY29tbWFuZCwgc28gd2UgZ2V0IHRoZSB0b3AtbGV2ZWwgY29tbWFuZCBmb3IgaXQsXG4gICAgICAgICAgICAvLyB3aGljaCBpcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBzdGFjay5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogc3RhdGUuc3RhY2tbMF0uc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogc3RhdGUuc3RhY2tbMF0ucmVzdWx0cyxcbiAgICAgICAgICAgIH07XG5cbiAgICAgIC8vIEFkZCB0aGUgZW50cnkgdG8gdGhlIGhpc3RvcnksIHdoaWxlIGV4Y2x1ZGluZyBhbnkgZWFybGllciBoaXN0b3J5IGVudHJ5XG4gICAgICAvLyB3aXRoIHRoZSBzYW1lIHNlYXJjaCB0ZXh0LiBUaGlzIGVmZmVjdGl2ZWx5IFwibW92ZXNcIiB0aGF0IGVudHJ5IHRvIHRoZVxuICAgICAgLy8gdG9wIG9mIHRoZSBoaXN0b3J5ICh3aXRoIHRoZSBtb3N0IHJlY2VudCByZXN1bHRzKSwgb3IgYXBwZW5kcyBhIG5ldyBlbnRyeVxuICAgICAgLy8gd2hlbiBpdCBkaWRuJ3QgZXhpc3QgYmVmb3JlLlxuICAgICAgb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQoW1xuICAgICAgICAuLi5wcm9wcy5oaXN0b3J5RW50cmllcy5maWx0ZXIoXG4gICAgICAgICAgKGNvbW1hbmQpID0+IGNvbW1hbmQuc2VhcmNoVGV4dCAhPT0gZW50cnkuc2VhcmNoVGV4dFxuICAgICAgICApLFxuICAgICAgICBlbnRyeSxcbiAgICAgIF0pO1xuXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldFNlYXJjaFRleHQnIH0pO1xuXG4gICAgICBvbkNsb3NlRnJvbVBhcmVudCgpO1xuXG4gICAgICBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQoY29tbWFuZCwgbWV0YSk7XG4gICAgfSxcbiAgICBbXG4gICAgICBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQsXG4gICAgICBvbkNsb3NlRnJvbVBhcmVudCxcbiAgICAgIG9uSGlzdG9yeUVudHJpZXNDaGFuZ2VGcm9tUGFyZW50LFxuICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMsXG4gICAgICBzdGF0ZS5yZXN1bHRzLFxuICAgICAgc3RhdGUuc2VhcmNoVGV4dCxcbiAgICAgIHN0YXRlLnN0YWNrLFxuICAgIF1cbiAgKTtcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrPEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnRpbmcgY3Vyc29yIGp1bXBzIGNhbiBvbmx5IGhhcHBlbiBpbiBvbktleURvd24sIGJ1dCBub3QgaW4gb25LZXlVcFxuICAgICAgZXZlbnQucGVyc2lzdCgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIGtub3cgd2hlbiB0aGUgdXNlciBwcmVzc2VzIGNtZCtlbnRlciAoY21kIGJlaW5nIGEgbWV0YSBrZXkpLlxuICAgICAgLy8gV2UgYXJlIG9ubHkgdG9sZCBhYm91dCB0aGlzIGluIGtleURvd24sIGJ1dCBub3QgaW4ga2V5VXAsIHNvIHdlIG5lZWRcbiAgICAgIC8vIHRvIGhhbmRsZSBpdCBoZXJlXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGhhc05ld1dpbmRvd01vZGlmaWVyKGV2ZW50KSkge1xuICAgICAgICBpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEF2b2lkIHNlbGVjdGluZyB0aGUgd2hvbGUgcGFnZSB3aGVuIHVzZXIgc2VsZWN0ZXMgZXZlcnl0aGluZyB3aXRoXG4gICAgICAvLyBhIGtleWJvYXJkIHNob3J0Y3V0LiBUaGVyZSBpcyBwcm9iYWJseSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcyB0aG91Z2guXG4gICAgICAvLyBUaGlzIHByZXZlbnRzIHRoZSB3aG9sZSBwYWdlIGZyb20gYmVpbmcgc2VsZWN0ZWQgaW4gY2FzZSB0aGUgdXNlclxuICAgICAgLy8gMSkgb3BlbnMgdGhlIHNlYXJjaCBib3hcbiAgICAgIC8vIDIpIHR5cGVzIGludG8gaXRcbiAgICAgIC8vIDMpIHNlbGVjdHMgYWxsIHRleHQgdXNpbmcgY21kK2FcbiAgICAgIC8vIDQpIGNsb3NlcyB0aGUgc2VhcmNoIGJveCB3aXRoIGVzY1xuICAgICAgLy8gV2l0aG91dCB0aGlzIGhhbmRsaW5nLCB0aGUgd2hvbGUgcGFnZSB3b3VsZCBub3cgYmUgc2VsZWN0ZWRcbiAgICAgIGlmIChpc1NlbGVjdEFsbENvbWJvKGV2ZW50KSkge1xuICAgICAgICAvLyBUaGlzIHN0b3BzIHRoZSBicm93c2VyIGZyb20gc2VsZWN0aW5nIGFueXRoaW5nXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzZWFyY2hJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgLy8gVGhpcyBzZWxlY3RzIHRoZSB0ZXh0IGluIHRoZSBzZWFyY2ggaW5wdXRcbiAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGF2b2lkIGludGVyZmVyaW5nIHdpdGggb3RoZXIga2V5IGNvbWJpbmF0aW9ucyB1c2luZyBtb2RpZmllciBrZXlzXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQubWV0YUtleSlcbiAgICAgICAgcmV0dXJuO1xuICAgICAgaWYgKGlzQ2xvc2VDb21ibyhldmVudCkpIHJldHVybjtcblxuICAgICAgLy8gc2tpcCBuZXh0IG1vdXNlRW50ZXIgdG8gYXZvaWQgc2V0dGluZyBzZWxlY3RlZFJlc3VsdCB3aGVuIGN1cnNvciBqdXN0XG4gICAgICAvLyBoYXBwZW5zIHRvIGJlIHdoZXJlIHRoZSByZXN1bHRzIHdpbGwgcG9wIHVwXG4gICAgICBza2lwTmV4dFNlbGVjdGlvbi5jdXJyZW50ID0gdHJ1ZTtcblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIHRvIGVuZCBvZiB0ZXh0IGlucHV0XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ2luY3JlbWVudFNlbGVjdGVkUmVzdWx0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIC8vIGJyb3dzZSB0aHJvdWdoIGhpc3RvcnlcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgKHN0YXRlLnNlbGVjdGVkUmVzdWx0IDwgMSAmJiBzdGF0ZS5lbmFibGVIaXN0b3J5KVxuICAgICAgICApIHtcbiAgICAgICAgICBzaG91bGRTZWxlY3RGaWVsZFRleHQuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9XG4gICAgICAgICAgICBzdGF0ZS5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICA/IC8vIFdoZW4gZ29pbmcgYmFjayB0aGUgZmlyc3Qgc3RlcFxuICAgICAgICAgICAgICAgIC0xXG4gICAgICAgICAgICAgIDogLy8gV2hlbiBnb2luZyBiYWNrIG1vcmUgdGhhbiBvbmUgc3RlcFxuICAgICAgICAgICAgICAgIHByb3BzLmhpc3RvcnlFbnRyaWVzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgIChjb21tYW5kKSA9PiBjb21tYW5kLnNlYXJjaFRleHQgPT09IHN0YXRlLnNlYXJjaFRleHRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgIC8vIFBpY2sgdGhlIHByZXZpb3VzIGNvbW1hbmQgZnJvbSB0aGUgaGlzdG9yeVxuICAgICAgICAgIGNvbnN0IHByZXZDb21tYW5kID1cbiAgICAgICAgICAgIHNlbGVjdGVkSW5kZXggPT09IC0xXG4gICAgICAgICAgICAgID8gLy8gcHJldmlvdXMgY29tbWFuZCBvbiB0b3Agb2YgdGhlIGhpc3Rvcnkgd2hlbiBnb2luZyBiYWNrIG9uXG4gICAgICAgICAgICAgICAgLy8gZmlyc3Qgc3RlcFxuICAgICAgICAgICAgICAgIGxhc3QocHJvcHMuaGlzdG9yeUVudHJpZXMpXG4gICAgICAgICAgICAgIDogLy8gcHJldmlvdXMgY29tbWFuZCBpcyBkZWVwZXIgZG93blxuICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGhpc3RvcnkgZG9lcyBub3QgZXhpc3QgKG5lZ2F0aXZlIGluZGV4KSwgdGhlblxuICAgICAgICAgICAgICAgIC8vIHRoaXMgaW1wbGljaXRseSByZXR1cm5zIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIHByb3BzLmhpc3RvcnlFbnRyaWVzW3NlbGVjdGVkSW5kZXggLSAxXTtcbiAgICAgICAgICAvLyBTa2lwIHdoZW4gbm8gcHJldmlvdXMgZW50cnkgZXhpc3RzIGluIHRoZSBoaXN0b3J5XG4gICAgICAgICAgaWYgKCFwcmV2Q29tbWFuZCkgcmV0dXJuO1xuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcHJldkNvbW1hbmQuc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogcHJldkNvbW1hbmQucmVzdWx0cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20ganVtcGluZyB0byBiZWdpbm5pbmcgb2YgdGV4dCBpbnB1dFxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RlZFJlc3VsdCA+IC0xKSB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBzdGF0ZS5yZXN1bHRzW3N0YXRlLnNlbGVjdGVkUmVzdWx0XTtcbiAgICAgICAgICBjb25zdCBzZWFyY2hUZXh0ID0gc3RhdGUuc2VhcmNoVGV4dDtcbiAgICAgICAgICBjb25zdCBpc0N1cnNvckF0RW5kID1cbiAgICAgICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQgJiZcbiAgICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0O1xuXG4gICAgICAgICAgY29uc3QgaXNFdmVyeXRoaW5nU2VsZWN0ZWQgPVxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCAmJlxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCAmJlxuICAgICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kO1xuXG4gICAgICAgICAgLy8gb25seSBhbGxvdyBkaXZpbmcgaW4gd2hlbiBjdXJzb3IgaXMgYXQgZW5kIG9mIGlucHV0IG9yIHdoZW5cbiAgICAgICAgICAvLyB0aGUgY29tcGxldGUgdGV4dCBpcyBzZWxlY3RlZCAod2hlbiBicm93c2luZyB0aHJvdWdoIGhpc3RvcnkpXG4gICAgICAgICAgaWYgKCFpc0N1cnNvckF0RW5kICYmICFpc0V2ZXJ5dGhpbmdTZWxlY3RlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IoKTtcblxuICAgICAgICAgIC8vIE5PVEU6IHNpbmNlIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIFwibmV4dCBjb21tYW5kXCIsIHdoaWNoIGlzIGFuIGFzeW5jIG9wZXJhdGlvbixcbiAgICAgICAgICAvLyB3ZSB1c2UgYSBJSUZFIHRvIHByb2Nlc3MgdGhhdCBhbmQgZXZlbnR1YWxseSB1cGRhdGUgdGhlIHN0YXRlLlxuICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29tbWFuZCkge1xuICAgICAgICAgICAgICBjb25zdCBuZXh0Q29tbWFuZHMgPSBhd2FpdCBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50KGNvbW1hbmQpO1xuICAgICAgICAgICAgICAvLyBhdm9pZCBtb3ZpbmcgY3Vyc29yIHdoZW4gdGhlcmUgYXJlIHN1Yi1vcHRpb25zXG4gICAgICAgICAgICAgIGlmIChuZXh0Q29tbWFuZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgc2VhcmNoIHRleHQgaGFzIG5vdCBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgbG9hZGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHJlc3VsdHMsIG90aGVyd2lzZSB3ZSdkIGludGVycnVwdCB0aGUgdXNlci5cbiAgICAgICAgICAgICAgICAvLyBUaHJvdyBhd2F5IHRoZSByZXN1bHRzIGluIGNhc2UgdGhlIHNlYXJjaCB0ZXh0IGhhcyBjaGFuZ2VkLlxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5zZWFyY2hUZXh0ID09PSBzZWFyY2hUZXh0KSB7XG4gICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXROZXh0Q29tbWFuZHMnLFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiB7IHJlc3VsdHM6IG5leHRDb21tYW5kcyB9LFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2hha2UoKTtcbiAgICAgICAgICB9KSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgICAgIC8vIGdvIGxlZnQgaW4gc3RhY2tcbiAgICAgICAgICBjb25zdCBwcmV2Q29tbWFuZCA9IGxhc3Qoc3RhdGUuc3RhY2spO1xuXG4gICAgICAgICAgLy8gZG8gbm90aGluZyB3aGVuIHdlIGNhbid0IGdvIGxlZnQgYW55bW9yZVxuICAgICAgICAgIGlmICghcHJldkNvbW1hbmQpIHJldHVybjtcblxuICAgICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20ganVtcGluZyBhIGNoYXIgdG8gdGhlIGxlZnQgaW4gdGV4dCBpbnB1dFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnc2V0UHJldkNvbW1hbmRzJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcHJldkNvbW1hbmQuc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogcHJldkNvbW1hbmQucmVzdWx0cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50LFxuICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMsXG4gICAgICBzaGFrZSxcbiAgICAgIHN0YXRlLFxuICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IsXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVLZXlVcCA9IHVzZUNhbGxiYWNrPEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIHNldHRpbmcgdGhlIHNlbGVjdGlvbiBjYW4gb25seSBoYXBwZW4gaW4gb25LZXlVcFxuICAgICAgaWYgKHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgICAgIGlucHV0LnNlbGVjdCgpO1xuICAgICAgICBzaG91bGRTZWxlY3RGaWVsZFRleHQuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQua2V5ICE9PSAnRW50ZXInICYmICFpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQpIHJldHVybiB0cnVlO1xuXG4gICAgICAvLyBVc2VyIGp1c3QgdHJpZ2dlcmVkIHRoZSBzZWFyY2hcbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RlZFJlc3VsdCA9PT0gLTEpIHJldHVybiB0cnVlO1xuXG4gICAgICAvLyBVc2VyIGhhZCBzb21ldGhpbmcgc2VsZWN0ZWQgYW5kIHdhbnRzIHRvIGdvIHRoZXJlXG4gICAgICBleGVjdXRlKHN0YXRlLnJlc3VsdHNbc3RhdGUuc2VsZWN0ZWRSZXN1bHRdLCB7XG4gICAgICAgIG9wZW5Jbk5ld1RhYjogaXNOZXdXaW5kb3dDb21iby5jdXJyZW50LFxuICAgICAgfSk7XG5cbiAgICAgIGlzTmV3V2luZG93Q29tYm8uY3VycmVudCA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBbZXhlY3V0ZSwgc3RhdGUucmVzdWx0cywgc3RhdGUuc2VsZWN0ZWRSZXN1bHRdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrPENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50Pj4oXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKHNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldCcgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnc2VhcmNoVGV4dCcsIHBheWxvYWQ6IHNlYXJjaFRleHQgfSk7XG5cbiAgICAgIC8vIEEgc2VhcmNoIHZpYSBuZXR3b3JrIGlzIG9ubHkgdHJpZ2dlcmVkIHdoZW4gdGhlcmVcbiAgICAgIC8vIGFyZSBtb3JlIHRoYW4gdGhyZWUgY2hhcmFjdGVycy4gU28gbm8gZmFsc2UgbG9hZGluZ1xuICAgICAgLy8gaW5kaWNhdGlvbiBpcyBnaXZlbi5cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKS5sZW5ndGggPiAzKSB7XG4gICAgICAgIHNldElzTG9hZGluZygpO1xuICAgICAgfVxuXG4gICAgICBzZWFyY2hGcm9tUGFyZW50KHNlYXJjaFRleHQpLnRoZW4oXG4gICAgICAgIChhc3luY1Jlc3VsdHM6IENvbW1hbmRbXSkgPT4ge1xuICAgICAgICAgIHVuc2V0SGFzTmV0d29ya0Vycm9yKCk7XG4gICAgICAgICAgdW5zZXRJc0xvYWRpbmcoKTtcblxuICAgICAgICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShhc3luY1Jlc3VsdHMsIHtcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgeyBuYW1lOiAndGV4dCcsIHdlaWdodDogMC42IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2tleXdvcmRzJywgd2VpZ2h0OiAwLjQgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBtaW5NYXRjaENoYXJMZW5ndGg6IDIsXG4gICAgICAgICAgICBpbmNsdWRlU2NvcmU6IHRydWUsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHRzID0gZnVzZVxuICAgICAgICAgICAgLnNlYXJjaChzZWFyY2hUZXh0KVxuICAgICAgICAgICAgLy8gRmlsdGVyIG91dCByZXN1bHRzIHdpdGggYSBtYXRjaGluZyBzY29yZSBvdmVyIDAuNzVcbiAgICAgICAgICAgIC5maWx0ZXIoKHJlc3VsdCkgPT4gKHJlc3VsdC5zY29yZSA/IHJlc3VsdC5zY29yZSA8IDAuNzUgOiBmYWxzZSkpXG4gICAgICAgICAgICAvLyBLZWVwIGEgbWF4aW1hbCBvZiA5IHJlc3VsdHNcbiAgICAgICAgICAgIC5zbGljZSgwLCA5KTtcblxuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXRTZWFyY2hUZXh0UmVzdWx0cycsXG4gICAgICAgICAgICBwYXlsb2FkOiBzZWFyY2hSZXN1bHRzLm1hcCgocmVzdWx0KSA9PiByZXN1bHQuaXRlbSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB1bnNldElzTG9hZGluZygpO1xuICAgICAgICAgIHNldEhhc05ldHdvcmtFcnJvcigpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgW1xuICAgICAgc2VhcmNoRnJvbVBhcmVudCxcbiAgICAgIHNldEhhc05ldHdvcmtFcnJvcixcbiAgICAgIHNldElzTG9hZGluZyxcbiAgICAgIHVuc2V0SGFzTmV0d29ya0Vycm9yLFxuICAgICAgdW5zZXRJc0xvYWRpbmcsXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVDb250YWluZXJDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldFJlc3VsdHNXaGVuQ2xvc2luZycgfSk7XG4gICAgb25DbG9zZUZyb21QYXJlbnQoKTtcbiAgfSwgW29uQ2xvc2VGcm9tUGFyZW50XSk7XG5cbiAgY29uc3QgY3JlYXRlQ29tbWFuZE1vdXNlRW50ZXJIYW5kbGVyID0gdXNlQ2FsbGJhY2s8XG4gICAgKGluZGV4OiBudW1iZXIpID0+IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PlxuICA+KFxuICAgIChpbmRleCkgPT4gKCkgPT4ge1xuICAgICAgLy8gSW4gY2FzZSB0aGUgY3Vyc29yIGhhcHBlbmVkIHRvIGJlIGluIGEgbG9jYXRpb24gd2hlcmUgYVxuICAgICAgLy8gcmVzdWx0IHdvdWxkIGFwcGVhciwgaXQgd291bGQgdHJpZ2dlciBvbk1vdXNlRW50ZXIgYW5kIHRoZVxuICAgICAgLy8gcmVzdWx0IHdvdWxkIGJlIHNlbGVjdGVkIGltbWVkaWF0ZWx5LiBUaGlzIGlzIG5vdCBzb21ldGhpbmdcbiAgICAgIC8vIGEgdXNlciB3b3VsZCBleHBlY3QsIGhlbmNlIHdlIHByZXZlbnQgaXQgZnJvbSBoYXBwZW5pbmcuXG4gICAgICAvLyBUaGUgdXNlciBoYXMgdG8gbW92ZSB0aGUgY3Vyc29yIHRvIGFuIG9wdGlvbiBleHBsaWNpdGx5IGZvclxuICAgICAgLy8gaXQgdG8gYmVjb21lIGFjdGl2ZS4gSG93ZXZlciwgdGhlIHVzZXIgY2FuIGFsd2F5cyBjbGljayBhbmRcbiAgICAgIC8vIHRoYXQgYWN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkLlxuICAgICAgaWYgKHNraXBOZXh0U2VsZWN0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgc2tpcE5leHRTZWxlY3Rpb24uY3VycmVudCA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHNldHMgdGhlIHNlbGVjdGVkIHJlc3VsdCwgbWFpbmx5IGZvciB0aGUgaG92ZXIgZWZmZWN0XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCcsIHBheWxvYWQ6IGluZGV4IH0pO1xuICAgIH0sXG4gICAgW11cbiAgKTtcbiAgY29uc3QgY3JlYXRlQ29tbWFuZENsaWNrSGFuZGxlciA9IHVzZUNhbGxiYWNrPFxuICAgIChjb21tYW5kOiBDb21tYW5kKSA9PiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD5cbiAgPihcbiAgICAoY29tbWFuZCkgPT4gKGV2ZW50KSA9PiB7XG4gICAgICBleGVjdXRlKGNvbW1hbmQsIHtcbiAgICAgICAgb3BlbkluTmV3VGFiOiBoYXNOZXdXaW5kb3dNb2RpZmllcihldmVudCksXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtleGVjdXRlXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEJ1dGxlckNvbnRhaW5lclxuICAgICAgb25DbGljaz17aGFuZGxlQ29udGFpbmVyQ2xpY2t9XG4gICAgICBkYXRhLXRlc3RpZD1cInF1aWNrLWFjY2Vzc1wiXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3NlYXJjaENvbnRhaW5lclJlZn1cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAke3VpS2l0RGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG5cbiAgICAgICAgICAvKiBvbmUgbW9yZSB0aGFuIGFwcC1iYXIgKDIwMDAwKSBhbmQgb25lIG1vcmUgdGhhbiB0aGUgb3ZlcmxheSAoMjAwMDEpICovXG4gICAgICAgICAgei1pbmRleDogMjAwMDI7XG4gICAgICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgICAgIG1hcmdpbjogNDBweCBhdXRvO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggLThweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAke3N0YXRlLmhhc05ldHdvcmtFcnJvclxuICAgICAgICAgICAgPyAnMCdcbiAgICAgICAgICAgIDogdWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICBgfVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBBdm9pZCBjbG9zaW5nIHdoZW4gdGhlIHNlYXJjaENvbnRhaW5lciBpdHNlbGYgaXMgY2xpY2tlZFxuICAgICAgICAgIC8vIElmIHdlIGRvbid0IGRvIHRoaXMsIHRoZW4gdGhlIG92ZXJsYXkgd2lsbCBjbG9zZSB3aGVuIGUuZy5cbiAgICAgICAgICAvLyB0aGUgc2VhcmNoIGlucHV0IGlzIGNsaWNrZWQuXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBodG1sRm9yPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ019O1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFNlYXJjaEljb24gY29sb3I9XCJuZXV0cmFsNjBcIiAvPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInF1aWNrLWFjY2Vzcy1zZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgcmVmPXtzZWFyY2hJbnB1dFJlZn1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpbnRsLmZvcm1hdE1lc3NhZ2UobWVzc2FnZXMuaW5wdXRQbGFjZWhvZGVyKX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ019XG4gICAgICAgICAgICAgICAgJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX0gJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU31cbiAgICAgICAgICAgICAgICAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbDYwfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYH1cbiAgICAgICAgICAgIHZhbHVlPXtzdGF0ZS5zZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgIG9uS2V5VXA9e2hhbmRsZUtleVVwfVxuICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICB7c3RhdGUuaXNMb2FkaW5nICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0ZS5oYXNOZXR3b3JrRXJyb3IpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHt1aUtpdERlc2lnblRva2Vucy5mb250U2l6ZTIwfTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1hzfTtcbiAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLm9mZmxpbmV9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChzdGF0ZS5yZXN1bHRzLmxlbmd0aCA9PT0gMCAmJiBzdGF0ZS5zZWFyY2hUZXh0LnRyaW0oKS5sZW5ndGggPiAwKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbH07XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclNvbGlkfTtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6ICR7dWlLaXREZXNpZ25Ub2tlbnMuZm9udFNpemUyMH07XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdYc307XG4gICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5ub1Jlc3VsdHN9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBzdGF0ZS5yZXN1bHRzLm1hcCgoY29tbWFuZCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxCdXRsZXJDb21tYW5kXG4gICAgICAgICAgICAgIGtleT17Y29tbWFuZC5pZH1cbiAgICAgICAgICAgICAgY29tbWFuZD17Y29tbWFuZH1cbiAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IGluZGV4fVxuICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9e2NyZWF0ZUNvbW1hbmRNb3VzZUVudGVySGFuZGxlcihpbmRleCl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2NyZWF0ZUNvbW1hbmRDbGlja0hhbmRsZXIoY29tbWFuZCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpO1xuICAgICAgICB9KSgpfVxuICAgICAgPC9kaXY+XG4gICAgPC9CdXRsZXJDb250YWluZXI+XG4gICk7XG59O1xuQnV0bGVyLmRpc3BsYXlOYW1lID0gJ0J1dGxlcic7XG5cbmNvbnN0IEJ1dGxlcldpdGhBbmltYXRpb24gPSAocHJvcHM6IE9taXQ8UHJvcHMsICdjbGFzc05hbWVTaGFrZUFuaW1hdGlvbic+KSA9PiAoXG4gIDxDbGFzc05hbWVzPlxuICAgIHsoeyBjc3MgfSkgPT4gKFxuICAgICAgPEJ1dGxlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIGNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uPXtjc3NgXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjQ1cztcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiAke3NoYWtlQW5pbWF0aW9ufTtcbiAgICAgICAgYH1cbiAgICAgIC8+XG4gICAgKX1cbiAgPC9DbGFzc05hbWVzPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyV2l0aEFuaW1hdGlvbjtcbiJdfQ== */",
|
|
530
527
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
531
528
|
};
|
|
532
529
|
const Butler = props => {
|
|
@@ -38,11 +38,11 @@ var designSystem = require('@commercetools-uikit/design-system');
|
|
|
38
38
|
var icons = require('@commercetools-uikit/icons');
|
|
39
39
|
var LoadingSpinner = require('@commercetools-uikit/loading-spinner');
|
|
40
40
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
41
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
41
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-023e774c.cjs.prod.js');
|
|
42
42
|
var _Promise = require('@babel/runtime-corejs3/core-js-stable/promise');
|
|
43
43
|
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
44
44
|
var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
|
|
45
|
-
require('./index-
|
|
45
|
+
require('./index-b76590b3.cjs.prod.js');
|
|
46
46
|
require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
47
47
|
require('@babel/runtime-corejs3/core-js-stable/reflect/has');
|
|
48
48
|
require('@reduxjs/toolkit');
|
|
@@ -38,11 +38,11 @@ var designSystem = require('@commercetools-uikit/design-system');
|
|
|
38
38
|
var icons = require('@commercetools-uikit/icons');
|
|
39
39
|
var LoadingSpinner = require('@commercetools-uikit/loading-spinner');
|
|
40
40
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
41
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
41
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-39f8c188.cjs.dev.js');
|
|
42
42
|
var _Promise = require('@babel/runtime-corejs3/core-js-stable/promise');
|
|
43
43
|
var _reduceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
44
44
|
var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
|
|
45
|
-
require('./index-
|
|
45
|
+
require('./index-0459c0f4.cjs.dev.js');
|
|
46
46
|
require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
47
47
|
require('@babel/runtime-corejs3/core-js-stable/reflect/has');
|
|
48
48
|
require('@reduxjs/toolkit');
|
|
@@ -122,8 +122,7 @@ var _ref$1 = process.env.NODE_ENV === "production" ? {
|
|
|
122
122
|
styles: "align-self:center;>*{display:block;}"
|
|
123
123
|
} : {
|
|
124
124
|
name: "1qkkrpz-ButlerCommand",
|
|
125
|
-
styles: "align-self:center;>*{display:block;};label:ButlerCommand;",
|
|
126
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb21tYW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRGdCIiwiZmlsZSI6ImJ1dGxlci1jb21tYW5kLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdXNlRXZlbnRIYW5kbGVyIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgY3VzdG9tUHJvcGVydGllcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgQW5nbGVUaGluUmlnaHRJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG50eXBlIFByb3BzID0ge1xuICBjb21tYW5kOiBDb21tYW5kO1xuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvbk1vdXNlRW50ZXI6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50Pjtcbn07XG5cbmNvbnN0IEJ1dGxlckNvbW1hbmQgPSAocHJvcHM6IFByb3BzKSA9PiAoXG4gIDxkaXZcbiAgICBrZXk9e3Byb3BzLmNvbW1hbmQuaWR9XG4gICAgZGF0YS10ZXN0aWQ9e2BxdWljay1hY2Nlc3MtcmVzdWx0KCR7cHJvcHMuY29tbWFuZC5pZH0pYH1cbiAgICBhcmlhLWN1cnJlbnQ9e3Byb3BzLmlzU2VsZWN0ZWQgPT09IHRydWUgPyAndHJ1ZScgOiAnZmFsc2UnfVxuICAgIGNzcz17Y3NzYFxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDAgJHtjdXN0b21Qcm9wZXJ0aWVzLnNwYWNpbmdNfTtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICR7cHJvcHMuaXNTZWxlY3RlZCA9PT0gdHJ1ZVxuICAgICAgICA/IGBcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvckFjY2VudH07XG4gICAgICAgICAgICBjb2xvcjogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yU3VyZmFjZX07XG4gICAgICAgICAgYFxuICAgICAgICA6ICcnfVxuICAgIGB9XG4gICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXJ9XG4gICAgb25DbGljaz17cHJvcHMub25DbGlja31cbiAgPlxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBmbGV4OiAxIGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY29tbWFuZC50ZXh0fVxuICAgIDwvZGl2PlxuICAgIHsoKEFycmF5LmlzQXJyYXkocHJvcHMuY29tbWFuZC5zdWJDb21tYW5kcykgJiZcbiAgICAgIHByb3BzLmNvbW1hbmQuc3ViQ29tbWFuZHMubGVuZ3RoID4gMCkgfHxcbiAgICAgIHR5cGVvZiBwcm9wcy5jb21tYW5kLnN1YkNvbW1hbmRzID09PSAnZnVuY3Rpb24nKSAmJiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8QW5nbGVUaGluUmlnaHRJY29uXG4gICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgY29sb3I9e3Byb3BzLmlzU2VsZWN0ZWQgPyAnc3VyZmFjZScgOiAnbmV1dHJhbDYwJ31cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICl9XG4gIDwvZGl2PlxuKTtcblxuQnV0bGVyQ29tbWFuZC5kaXNwbGF5TmFtZSA9ICdCdXRsZXJDb21tYW5kJztcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyQ29tbWFuZDtcbiJdfQ== */",
|
|
125
|
+
styles: "align-self:center;>*{display:block;};label:ButlerCommand;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb21tYW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRGdCIiwiZmlsZSI6ImJ1dGxlci1jb21tYW5kLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdXNlRXZlbnRIYW5kbGVyIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgY3VzdG9tUHJvcGVydGllcyB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2Rlc2lnbi1zeXN0ZW0nO1xuaW1wb3J0IHsgQW5nbGVUaGluUmlnaHRJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG50eXBlIFByb3BzID0ge1xuICBjb21tYW5kOiBDb21tYW5kO1xuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgb25DbGljazogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvbk1vdXNlRW50ZXI6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50Pjtcbn07XG5cbmNvbnN0IEJ1dGxlckNvbW1hbmQgPSAocHJvcHM6IFByb3BzKSA9PiAoXG4gIDxkaXZcbiAgICBrZXk9e3Byb3BzLmNvbW1hbmQuaWR9XG4gICAgZGF0YS10ZXN0aWQ9e2BxdWljay1hY2Nlc3MtcmVzdWx0KCR7cHJvcHMuY29tbWFuZC5pZH0pYH1cbiAgICBhcmlhLWN1cnJlbnQ9e3Byb3BzLmlzU2VsZWN0ZWQgPT09IHRydWUgPyAndHJ1ZScgOiAnZmFsc2UnfVxuICAgIGNzcz17Y3NzYFxuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDAgJHtjdXN0b21Qcm9wZXJ0aWVzLnNwYWNpbmdNfTtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICR7cHJvcHMuaXNTZWxlY3RlZCA9PT0gdHJ1ZVxuICAgICAgICA/IGBcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvckFjY2VudH07XG4gICAgICAgICAgICBjb2xvcjogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yU3VyZmFjZX07XG4gICAgICAgICAgYFxuICAgICAgICA6ICcnfVxuICAgIGB9XG4gICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXJ9XG4gICAgb25DbGljaz17cHJvcHMub25DbGlja31cbiAgPlxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBmbGV4OiAxIGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgYH1cbiAgICA+XG4gICAgICB7cHJvcHMuY29tbWFuZC50ZXh0fVxuICAgIDwvZGl2PlxuICAgIHsoKEFycmF5LmlzQXJyYXkocHJvcHMuY29tbWFuZC5zdWJDb21tYW5kcykgJiZcbiAgICAgIHByb3BzLmNvbW1hbmQuc3ViQ29tbWFuZHMubGVuZ3RoID4gMCkgfHxcbiAgICAgIHR5cGVvZiBwcm9wcy5jb21tYW5kLnN1YkNvbW1hbmRzID09PSAnZnVuY3Rpb24nKSAmJiAoXG4gICAgICA8ZGl2XG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICBgfVxuICAgICAgPlxuICAgICAgICA8QW5nbGVUaGluUmlnaHRJY29uXG4gICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgY29sb3I9e3Byb3BzLmlzU2VsZWN0ZWQgPyAnc3VyZmFjZScgOiAnbmV1dHJhbDYwJ31cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICl9XG4gIDwvZGl2PlxuKTtcblxuQnV0bGVyQ29tbWFuZC5kaXNwbGF5TmFtZSA9ICdCdXRsZXJDb21tYW5kJztcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyQ29tbWFuZDtcbiJdfQ== */",
|
|
127
126
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
128
127
|
};
|
|
129
128
|
var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
@@ -131,8 +130,7 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
|
131
130
|
styles: "flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis"
|
|
132
131
|
} : {
|
|
133
132
|
name: "zq3ooq-ButlerCommand",
|
|
134
|
-
styles: "flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;label:ButlerCommand;",
|
|
135
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb21tYW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQ2MiLCJmaWxlIjoiYnV0bGVyLWNvbW1hbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW91c2VFdmVudEhhbmRsZXIgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBjdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBBbmdsZVRoaW5SaWdodEljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgdHlwZSB7IENvbW1hbmQgfSBmcm9tICcuLi90eXBlcyc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNvbW1hbmQ6IENvbW1hbmQ7XG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uTW91c2VFbnRlcjogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuY29uc3QgQnV0bGVyQ29tbWFuZCA9IChwcm9wczogUHJvcHMpID0+IChcbiAgPGRpdlxuICAgIGtleT17cHJvcHMuY29tbWFuZC5pZH1cbiAgICBkYXRhLXRlc3RpZD17YHF1aWNrLWFjY2Vzcy1yZXN1bHQoJHtwcm9wcy5jb21tYW5kLmlkfSlgfVxuICAgIGFyaWEtY3VycmVudD17cHJvcHMuaXNTZWxlY3RlZCA9PT0gdHJ1ZSA/ICd0cnVlJyA6ICdmYWxzZSd9XG4gICAgY3NzPXtjc3NgXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZzogMCAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZ019O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgJHtwcm9wcy5pc1NlbGVjdGVkID09PSB0cnVlXG4gICAgICAgID8gYFxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICAgIGNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBgXG4gICAgICAgIDogJyd9XG4gICAgYH1cbiAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlcn1cbiAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICA+XG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGZsZXg6IDEgYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBgfVxuICAgID5cbiAgICAgIHtwcm9wcy5jb21tYW5kLnRleHR9XG4gICAgPC9kaXY+XG4gICAgeygoQXJyYXkuaXNBcnJheShwcm9wcy5jb21tYW5kLnN1YkNvbW1hbmRzKSAmJlxuICAgICAgcHJvcHMuY29tbWFuZC5zdWJDb21tYW5kcy5sZW5ndGggPiAwKSB8fFxuICAgICAgdHlwZW9mIHByb3BzLmNvbW1hbmQuc3ViQ29tbWFuZHMgPT09ICdmdW5jdGlvbicpICYmIChcbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxBbmdsZVRoaW5SaWdodEljb25cbiAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICBjb2xvcj17cHJvcHMuaXNTZWxlY3RlZCA/ICdzdXJmYWNlJyA6ICduZXV0cmFsNjAnfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKX1cbiAgPC9kaXY+XG4pO1xuXG5CdXRsZXJDb21tYW5kLmRpc3BsYXlOYW1lID0gJ0J1dGxlckNvbW1hbmQnO1xuXG5leHBvcnQgZGVmYXVsdCBCdXRsZXJDb21tYW5kO1xuIl19 */",
|
|
133
|
+
styles: "flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;label:ButlerCommand;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci1jb21tYW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQ2MiLCJmaWxlIjoiYnV0bGVyLWNvbW1hbmQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW91c2VFdmVudEhhbmRsZXIgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBjdXN0b21Qcm9wZXJ0aWVzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBBbmdsZVRoaW5SaWdodEljb24gfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucyc7XG5pbXBvcnQgdHlwZSB7IENvbW1hbmQgfSBmcm9tICcuLi90eXBlcyc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNvbW1hbmQ6IENvbW1hbmQ7XG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uTW91c2VFbnRlcjogTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuY29uc3QgQnV0bGVyQ29tbWFuZCA9IChwcm9wczogUHJvcHMpID0+IChcbiAgPGRpdlxuICAgIGtleT17cHJvcHMuY29tbWFuZC5pZH1cbiAgICBkYXRhLXRlc3RpZD17YHF1aWNrLWFjY2Vzcy1yZXN1bHQoJHtwcm9wcy5jb21tYW5kLmlkfSlgfVxuICAgIGFyaWEtY3VycmVudD17cHJvcHMuaXNTZWxlY3RlZCA9PT0gdHJ1ZSA/ICd0cnVlJyA6ICdmYWxzZSd9XG4gICAgY3NzPXtjc3NgXG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZzogMCAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZ019O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgJHtwcm9wcy5pc1NlbGVjdGVkID09PSB0cnVlXG4gICAgICAgID8gYFxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtjdXN0b21Qcm9wZXJ0aWVzLmNvbG9yQWNjZW50fTtcbiAgICAgICAgICAgIGNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICBgXG4gICAgICAgIDogJyd9XG4gICAgYH1cbiAgICBvbk1vdXNlRW50ZXI9e3Byb3BzLm9uTW91c2VFbnRlcn1cbiAgICBvbkNsaWNrPXtwcm9wcy5vbkNsaWNrfVxuICA+XG4gICAgPGRpdlxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGZsZXg6IDEgYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICBgfVxuICAgID5cbiAgICAgIHtwcm9wcy5jb21tYW5kLnRleHR9XG4gICAgPC9kaXY+XG4gICAgeygoQXJyYXkuaXNBcnJheShwcm9wcy5jb21tYW5kLnN1YkNvbW1hbmRzKSAmJlxuICAgICAgcHJvcHMuY29tbWFuZC5zdWJDb21tYW5kcy5sZW5ndGggPiAwKSB8fFxuICAgICAgdHlwZW9mIHByb3BzLmNvbW1hbmQuc3ViQ29tbWFuZHMgPT09ICdmdW5jdGlvbicpICYmIChcbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxBbmdsZVRoaW5SaWdodEljb25cbiAgICAgICAgICBzaXplPVwibWVkaXVtXCJcbiAgICAgICAgICBjb2xvcj17cHJvcHMuaXNTZWxlY3RlZCA/ICdzdXJmYWNlJyA6ICduZXV0cmFsNjAnfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKX1cbiAgPC9kaXY+XG4pO1xuXG5CdXRsZXJDb21tYW5kLmRpc3BsYXlOYW1lID0gJ0J1dGxlckNvbW1hbmQnO1xuXG5leHBvcnQgZGVmYXVsdCBCdXRsZXJDb21tYW5kO1xuIl19 */",
|
|
136
134
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
137
135
|
};
|
|
138
136
|
const ButlerCommand = props => jsxRuntime.jsxs("div", {
|
|
@@ -554,8 +552,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
554
552
|
styles: "display:flex"
|
|
555
553
|
} : {
|
|
556
554
|
name: "vnvgom-Butler",
|
|
557
|
-
styles: "display:flex;label:Butler;",
|
|
558
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ25Ca0IiLCJmaWxlIjoiYnV0bGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIEtleWJvYXJkRXZlbnQsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50LFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcywgQ2xhc3NOYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIHVpS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBTZWFyY2hJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgQnV0bGVyQ29tbWFuZCBmcm9tICcuLi9idXRsZXItY29tbWFuZCc7XG5pbXBvcnQgQnV0bGVyQ29udGFpbmVyIGZyb20gJy4uL2J1dGxlci1jb250YWluZXInO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZCxcbiAgU2VhcmNoVGV4dCxcbiAgU2VsZWN0ZWRSZXN1bHQsXG4gIFN0YWNrLFxuICBIaXN0b3J5RW50cnksXG59IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgaXNTZWxlY3RBbGxDb21ibyA9IChldmVudDogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgZXZlbnQua2V5ID09PSAnYScgJiZcbiAgZXZlbnQubWV0YUtleSAmJlxuICAhZXZlbnQuY3RybEtleSAmJlxuICAhZXZlbnQuYWx0S2V5ICYmXG4gICFldmVudC5zaGlmdEtleTtcblxuY29uc3QgaXNDbG9zZUNvbWJvID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICBldmVudC5rZXkgPT09ICdFc2NhcGUnICYmXG4gICFldmVudC5tZXRhS2V5ICYmXG4gICFldmVudC5jdHJsS2V5ICYmXG4gICFldmVudC5hbHRLZXkgJiZcbiAgIWV2ZW50LnNoaWZ0S2V5O1xuXG5jb25zdCBnZXRQbGF0Zm9ybSA9ICgpID0+IHtcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdXaW4nKSkgcmV0dXJuICd3aW5kb3dzJztcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdNYWMnKSkgcmV0dXJuICdtYWNvcyc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnWDExJykpIHJldHVybiAndW5peCc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnTGludXgnKSkgcmV0dXJuICdsaW51eCc7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBoYXNOZXdXaW5kb3dNb2RpZmllciA9IChcbiAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgTW91c2VFdmVudDxIVE1MRWxlbWVudD5cbikgPT4ge1xuICBjb25zdCBwbGF0Zm9ybSA9IGdldFBsYXRmb3JtKCk7XG4gIHN3aXRjaCAocGxhdGZvcm0pIHtcbiAgICBjYXNlICdtYWNvcyc6XG4gICAgICByZXR1cm4gZXZlbnQubWV0YUtleTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV2ZW50LmN0cmxLZXk7XG4gIH1cbn07XG5cbmNvbnN0IHNoYWtlQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tLFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDE0JSxcbiAgNDIlLFxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTNweCwgMCwgMCk7XG4gIH1cblxuICAyOCUsXG4gIDU2JSxcbiAgODQlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDNweCwgMCwgMCk7XG4gIH1cbmA7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogYm9vbGVhbjtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0O1xuICBzZWxlY3RlZFJlc3VsdDogU2VsZWN0ZWRSZXN1bHQ7XG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IGJvb2xlYW47XG4gIHJlc3VsdHM6IENvbW1hbmRbXTtcbiAgc3RhY2s6IFN0YWNrW107XG59O1xudHlwZSBBY3Rpb24gPVxuICB8IHsgdHlwZTogJ25ldHdvcmtFcnJvcic7IHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ2xvYWRpbmcnOyBwYXlsb2FkOiBib29sZWFuIH1cbiAgfCB7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCc7IHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH1cbiAgfCB7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JztcbiAgICAgIHBheWxvYWQ6IHsgc2VhcmNoVGV4dDogU2VhcmNoVGV4dDsgcmVzdWx0czogQ29tbWFuZFtdIH07XG4gICAgfVxuICB8IHsgdHlwZTogJ3NldE5leHRDb21tYW5kcyc7IHBheWxvYWQ6IHsgcmVzdWx0czogQ29tbWFuZFtdIH0gfVxuICB8IHtcbiAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnO1xuICAgICAgcGF5bG9hZDogeyBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0OyByZXN1bHRzOiBDb21tYW5kW10gfTtcbiAgICB9XG4gIHwgeyB0eXBlOiAnc2VhcmNoVGV4dCc7IHBheWxvYWQ6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOyBwYXlsb2FkOiBDb21tYW5kW10gfVxuICB8IHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfVxuICB8IHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9XG4gIHwgeyB0eXBlOiAncmVzZXQnIH07XG5jb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIHNlYXJjaFRleHQ6ICcnLFxuICBzZWxlY3RlZFJlc3VsdDogLTEsXG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IHRydWUsXG4gIHJlc3VsdHM6IFtdLFxuICBzdGFjazogW10sXG59O1xuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnbmV0d29ya0Vycm9yJzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBoYXNOZXR3b3JrRXJyb3I6IGFjdGlvbi5wYXlsb2FkIH07XG4gICAgY2FzZSAnbG9hZGluZyc6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgaXNMb2FkaW5nOiBhY3Rpb24ucGF5bG9hZCB9O1xuICAgIGNhc2UgJ3NlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQgfTtcbiAgICBjYXNlICdpbmNyZW1lbnRTZWxlY3RlZFJlc3VsdCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6XG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IHN0YXRlLnJlc3VsdHMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0ICsgMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDpcbiAgICAgICAgICBzdGF0ZS5zZWxlY3RlZFJlc3VsdCA8IDFcbiAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0IC0gMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNlbGVjdGVkUmVzdWx0OiAwLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZC5zZWFyY2hUZXh0LFxuICAgICAgICByZXN1bHRzOiBhY3Rpb24ucGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICBzdGFjazogW10sXG4gICAgICAgIC8vIFRoZSBoaXN0b3J5IGRvZXMgbm90IGdldCBjaGFuZ2VkIGhlcmUsIGl0IHdpbGwgYmUgY2hhbmdlZCBhbG9uZ1xuICAgICAgICAvLyB3aXRoIHRoZSByZWd1bGFyIGZsb3cuXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldE5leHRDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc3RhY2s6IFtcbiAgICAgICAgICAuLi5zdGF0ZS5zdGFjayxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgcmVzdWx0czogc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdWx0OiBzdGF0ZS5zZWxlY3RlZFJlc3VsdCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogMCxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLnJlc3VsdHMsXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldFByZXZDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VhcmNoVGV4dDogYWN0aW9uLnBheWxvYWQuc2VhcmNoVGV4dCxcbiAgICAgICAgcmVzdWx0czogYWN0aW9uLnBheWxvYWQucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6IDAsXG4gICAgICAgIGVuYWJsZUhpc3Rvcnk6IGZhbHNlLFxuICAgICAgICAvLyBvbWl0IGxhc3QgaXRlbVxuICAgICAgICBzdGFjazogc3RhdGUuc3RhY2suc2xpY2UoMCwgLTEpLFxuICAgICAgfTtcbiAgICBjYXNlICdzZWFyY2hUZXh0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgLy8gY2xlYXIgbmV0d29yayBlcnJvciB3aGVuIHNlYXJjaCB0ZXh0IGlzIGNsZWFyZWQsIHNvIHRoYXQgdXNlcnNcbiAgICAgICAgLy8gYXJlIHRlbXB0ZWQgdG8gcmV0cnlcbiAgICAgICAgaGFzTmV0d29ya0Vycm9yOiBhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwICYmIHN0YXRlLmhhc05ldHdvcmtFcnJvcixcbiAgICAgIH07XG4gICAgY2FzZSAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCA/IDAgOiAtMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogdHJ1ZSxcbiAgICAgICAgc3RhY2s6IFtdLFxuICAgICAgfTtcbiAgICBjYXNlICdyZXNldFNlYXJjaFRleHQnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlYXJjaFRleHQ6ICcnLCByZXN1bHRzOiBbXSwgc2VsZWN0ZWRSZXN1bHQ6IC0xIH07XG4gICAgY2FzZSAncmVzZXRSZXN1bHRzV2hlbkNsb3NpbmcnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlbGVjdGVkUmVzdWx0OiAtMSwgZW5hYmxlSGlzdG9yeTogdHJ1ZSB9O1xuICAgIGNhc2UgJ3Jlc2V0JzpcbiAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdO1xuICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlOiAoaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdKSA9PiB2b2lkO1xuICBzZWFyY2g6IChzZWFyY2hUZXh0OiBTZWFyY2hUZXh0KSA9PiBQcm9taXNlPENvbW1hbmRbXT47XG4gIGdldE5leHRDb21tYW5kczogKGNvbW1hbmQ6IENvbW1hbmQpID0+IFByb21pc2U8Q29tbWFuZFtdPjtcbiAgZXhlY3V0ZUNvbW1hbmQ6IChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBjbGFzc05hbWVTaGFrZUFuaW1hdGlvbjogc3RyaW5nO1xufTtcbmNvbnN0IEJ1dGxlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyPFxuICAgIChwcmV2U3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbikgPT4gU3RhdGVcbiAgPihyZWR1Y2VyLCBpbml0aWFsU3RhdGUpO1xuXG4gIGNvbnN0IHNob3VsZFNlbGVjdEZpZWxkVGV4dCA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IGlzTmV3V2luZG93Q29tYm8gPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBza2lwTmV4dFNlbGVjdGlvbiA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHNlYXJjaENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IHNldEhhc05ldHdvcmtFcnJvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICduZXR3b3JrRXJyb3InLCBwYXlsb2FkOiB0cnVlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHVuc2V0SGFzTmV0d29ya0Vycm9yID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ25ldHdvcmtFcnJvcicsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHNldElzTG9hZGluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdsb2FkaW5nJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgfSwgW10pO1xuICBjb25zdCB1bnNldElzTG9hZGluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdsb2FkaW5nJywgcGF5bG9hZDogZmFsc2UgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBEZXN0cnVjdHVyZSBmdW5jdGlvbnMgZnJvbSBwcm9wcyB0byByZWZlcmVuY2UgdGhlbSBpbiB0aGUgaG9vayBkZXBlbmRlbmN5IGxpc3RcbiAgY29uc3Qge1xuICAgIHNlYXJjaDogc2VhcmNoRnJvbVBhcmVudCxcbiAgICBvbkNsb3NlOiBvbkNsb3NlRnJvbVBhcmVudCxcbiAgICBleGVjdXRlQ29tbWFuZDogZXhlY3V0ZUNvbW1hbmRGcm9tUGFyZW50LFxuICAgIG9uSGlzdG9yeUVudHJpZXNDaGFuZ2U6IG9uSGlzdG9yeUVudHJpZXNDaGFuZ2VGcm9tUGFyZW50LFxuICAgIGdldE5leHRDb21tYW5kczogZ2V0TmV4dENvbW1hbmRzRnJvbVBhcmVudCxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHNoYWtlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChzZWFyY2hDb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgc2VhcmNoQ29udGFpbmVyUmVmLmN1cnJlbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lU2hha2VBbmltYXRpb25cbiAgICAgICk7XG4gICAgICAvLyAtPiB0cmlnZ2VyaW5nIHJlZmxvd1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZvaWRcbiAgICAgIHZvaWQgc2VhcmNoQ29udGFpbmVyUmVmLmN1cnJlbnQub2Zmc2V0V2lkdGg7XG4gICAgICBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5jbGFzc0xpc3QuYWRkKHByb3BzLmNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uKTtcbiAgICB9XG4gIH0sIFtwcm9wcy5jbGFzc05hbWVTaGFrZUFuaW1hdGlvbl0pO1xuXG4gIGNvbnN0IGV4ZWN1dGUgPSB1c2VDYWxsYmFjayhcbiAgICAoY29tbWFuZCwgbWV0YSkgPT4ge1xuICAgICAgLy8gT25seSBtYWluIGVudHJpZXMgZ2V0IGFkZGVkIHRvIGhpc3RvcnksIHNvIHdoZW4gYSBzdWJjb21tYW5kIGlzIGV4ZWN1dGVkLFxuICAgICAgLy8gd2UgYWRkIHRoZSBtYWluIGNvbW1hbmQgb2YgaXQgdG8gdGhlIGhpc3RvcnkgKHRoZSB0b3AtbGV2ZWwgY29tbWFuZCkuXG4gICAgICAvL1xuICAgICAgLy8gVGhlIGtleSB0byBpZGVudGlmeSBoaXN0b3J5IGVudHJpZXMgYnkgaXMgYWx3YXlzIHRoZSBzZWFyY2hUZXh0XG4gICAgICAvLyBUaGVyZSB3aWxsIG5ldmVyIGJlIHR3byBoaXN0b3J5IGVudHJpZXMgd2l0aCB0aGUgc2FtZSBzZWFyY2hUZXh0XG4gICAgICBjb25zdCBlbnRyeSA9XG4gICAgICAgIHN0YXRlLnN0YWNrLmxlbmd0aCA9PT0gMFxuICAgICAgICAgID8gLy8gVGhlIHN0YWNrIGlzIGVtcHR5LCBzbyB3ZSBhcmUgZXhlY3V0aW5nIGEgdG9wLWxldmVsIGNvbW1hbmRcbiAgICAgICAgICAgIHsgc2VhcmNoVGV4dDogc3RhdGUuc2VhcmNoVGV4dCwgcmVzdWx0czogc3RhdGUucmVzdWx0cyB9XG4gICAgICAgICAgOiAvLyBXZSBhcmUgZXhlY3V0aW5nIGEgc3ViY29tbWFuZCwgc28gd2UgZ2V0IHRoZSB0b3AtbGV2ZWwgY29tbWFuZCBmb3IgaXQsXG4gICAgICAgICAgICAvLyB3aGljaCBpcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBzdGFjay5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogc3RhdGUuc3RhY2tbMF0uc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogc3RhdGUuc3RhY2tbMF0ucmVzdWx0cyxcbiAgICAgICAgICAgIH07XG5cbiAgICAgIC8vIEFkZCB0aGUgZW50cnkgdG8gdGhlIGhpc3RvcnksIHdoaWxlIGV4Y2x1ZGluZyBhbnkgZWFybGllciBoaXN0b3J5IGVudHJ5XG4gICAgICAvLyB3aXRoIHRoZSBzYW1lIHNlYXJjaCB0ZXh0LiBUaGlzIGVmZmVjdGl2ZWx5IFwibW92ZXNcIiB0aGF0IGVudHJ5IHRvIHRoZVxuICAgICAgLy8gdG9wIG9mIHRoZSBoaXN0b3J5ICh3aXRoIHRoZSBtb3N0IHJlY2VudCByZXN1bHRzKSwgb3IgYXBwZW5kcyBhIG5ldyBlbnRyeVxuICAgICAgLy8gd2hlbiBpdCBkaWRuJ3QgZXhpc3QgYmVmb3JlLlxuICAgICAgb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQoW1xuICAgICAgICAuLi5wcm9wcy5oaXN0b3J5RW50cmllcy5maWx0ZXIoXG4gICAgICAgICAgKGNvbW1hbmQpID0+IGNvbW1hbmQuc2VhcmNoVGV4dCAhPT0gZW50cnkuc2VhcmNoVGV4dFxuICAgICAgICApLFxuICAgICAgICBlbnRyeSxcbiAgICAgIF0pO1xuXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldFNlYXJjaFRleHQnIH0pO1xuXG4gICAgICBvbkNsb3NlRnJvbVBhcmVudCgpO1xuXG4gICAgICBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQoY29tbWFuZCwgbWV0YSk7XG4gICAgfSxcbiAgICBbXG4gICAgICBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQsXG4gICAgICBvbkNsb3NlRnJvbVBhcmVudCxcbiAgICAgIG9uSGlzdG9yeUVudHJpZXNDaGFuZ2VGcm9tUGFyZW50LFxuICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMsXG4gICAgICBzdGF0ZS5yZXN1bHRzLFxuICAgICAgc3RhdGUuc2VhcmNoVGV4dCxcbiAgICAgIHN0YXRlLnN0YWNrLFxuICAgIF1cbiAgKTtcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrPEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnRpbmcgY3Vyc29yIGp1bXBzIGNhbiBvbmx5IGhhcHBlbiBpbiBvbktleURvd24sIGJ1dCBub3QgaW4gb25LZXlVcFxuICAgICAgZXZlbnQucGVyc2lzdCgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIGtub3cgd2hlbiB0aGUgdXNlciBwcmVzc2VzIGNtZCtlbnRlciAoY21kIGJlaW5nIGEgbWV0YSBrZXkpLlxuICAgICAgLy8gV2UgYXJlIG9ubHkgdG9sZCBhYm91dCB0aGlzIGluIGtleURvd24sIGJ1dCBub3QgaW4ga2V5VXAsIHNvIHdlIG5lZWRcbiAgICAgIC8vIHRvIGhhbmRsZSBpdCBoZXJlXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGhhc05ld1dpbmRvd01vZGlmaWVyKGV2ZW50KSkge1xuICAgICAgICBpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEF2b2lkIHNlbGVjdGluZyB0aGUgd2hvbGUgcGFnZSB3aGVuIHVzZXIgc2VsZWN0ZXMgZXZlcnl0aGluZyB3aXRoXG4gICAgICAvLyBhIGtleWJvYXJkIHNob3J0Y3V0LiBUaGVyZSBpcyBwcm9iYWJseSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcyB0aG91Z2guXG4gICAgICAvLyBUaGlzIHByZXZlbnRzIHRoZSB3aG9sZSBwYWdlIGZyb20gYmVpbmcgc2VsZWN0ZWQgaW4gY2FzZSB0aGUgdXNlclxuICAgICAgLy8gMSkgb3BlbnMgdGhlIHNlYXJjaCBib3hcbiAgICAgIC8vIDIpIHR5cGVzIGludG8gaXRcbiAgICAgIC8vIDMpIHNlbGVjdHMgYWxsIHRleHQgdXNpbmcgY21kK2FcbiAgICAgIC8vIDQpIGNsb3NlcyB0aGUgc2VhcmNoIGJveCB3aXRoIGVzY1xuICAgICAgLy8gV2l0aG91dCB0aGlzIGhhbmRsaW5nLCB0aGUgd2hvbGUgcGFnZSB3b3VsZCBub3cgYmUgc2VsZWN0ZWRcbiAgICAgIGlmIChpc1NlbGVjdEFsbENvbWJvKGV2ZW50KSkge1xuICAgICAgICAvLyBUaGlzIHN0b3BzIHRoZSBicm93c2VyIGZyb20gc2VsZWN0aW5nIGFueXRoaW5nXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzZWFyY2hJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgLy8gVGhpcyBzZWxlY3RzIHRoZSB0ZXh0IGluIHRoZSBzZWFyY2ggaW5wdXRcbiAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGF2b2lkIGludGVyZmVyaW5nIHdpdGggb3RoZXIga2V5IGNvbWJpbmF0aW9ucyB1c2luZyBtb2RpZmllciBrZXlzXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQubWV0YUtleSlcbiAgICAgICAgcmV0dXJuO1xuICAgICAgaWYgKGlzQ2xvc2VDb21ibyhldmVudCkpIHJldHVybjtcblxuICAgICAgLy8gc2tpcCBuZXh0IG1vdXNlRW50ZXIgdG8gYXZvaWQgc2V0dGluZyBzZWxlY3RlZFJlc3VsdCB3aGVuIGN1cnNvciBqdXN0XG4gICAgICAvLyBoYXBwZW5zIHRvIGJlIHdoZXJlIHRoZSByZXN1bHRzIHdpbGwgcG9wIHVwXG4gICAgICBza2lwTmV4dFNlbGVjdGlvbi5jdXJyZW50ID0gdHJ1ZTtcblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIHRvIGVuZCBvZiB0ZXh0IGlucHV0XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ2luY3JlbWVudFNlbGVjdGVkUmVzdWx0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIC8vIGJyb3dzZSB0aHJvdWdoIGhpc3RvcnlcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgKHN0YXRlLnNlbGVjdGVkUmVzdWx0IDwgMSAmJiBzdGF0ZS5lbmFibGVIaXN0b3J5KVxuICAgICAgICApIHtcbiAgICAgICAgICBzaG91bGRTZWxlY3RGaWVsZFRleHQuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9XG4gICAgICAgICAgICBzdGF0ZS5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICA/IC8vIFdoZW4gZ29pbmcgYmFjayB0aGUgZmlyc3Qgc3RlcFxuICAgICAgICAgICAgICAgIC0xXG4gICAgICAgICAgICAgIDogLy8gV2hlbiBnb2luZyBiYWNrIG1vcmUgdGhhbiBvbmUgc3RlcFxuICAgICAgICAgICAgICAgIHByb3BzLmhpc3RvcnlFbnRyaWVzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgIChjb21tYW5kKSA9PiBjb21tYW5kLnNlYXJjaFRleHQgPT09IHN0YXRlLnNlYXJjaFRleHRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgIC8vIFBpY2sgdGhlIHByZXZpb3VzIGNvbW1hbmQgZnJvbSB0aGUgaGlzdG9yeVxuICAgICAgICAgIGNvbnN0IHByZXZDb21tYW5kID1cbiAgICAgICAgICAgIHNlbGVjdGVkSW5kZXggPT09IC0xXG4gICAgICAgICAgICAgID8gLy8gcHJldmlvdXMgY29tbWFuZCBvbiB0b3Agb2YgdGhlIGhpc3Rvcnkgd2hlbiBnb2luZyBiYWNrIG9uXG4gICAgICAgICAgICAgICAgLy8gZmlyc3Qgc3RlcFxuICAgICAgICAgICAgICAgIGxhc3QocHJvcHMuaGlzdG9yeUVudHJpZXMpXG4gICAgICAgICAgICAgIDogLy8gcHJldmlvdXMgY29tbWFuZCBpcyBkZWVwZXIgZG93blxuICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGhpc3RvcnkgZG9lcyBub3QgZXhpc3QgKG5lZ2F0aXZlIGluZGV4KSwgdGhlblxuICAgICAgICAgICAgICAgIC8vIHRoaXMgaW1wbGljaXRseSByZXR1cm5zIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIHByb3BzLmhpc3RvcnlFbnRyaWVzW3NlbGVjdGVkSW5kZXggLSAxXTtcbiAgICAgICAgICAvLyBTa2lwIHdoZW4gbm8gcHJldmlvdXMgZW50cnkgZXhpc3RzIGluIHRoZSBoaXN0b3J5XG4gICAgICAgICAgaWYgKCFwcmV2Q29tbWFuZCkgcmV0dXJuO1xuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcHJldkNvbW1hbmQuc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogcHJldkNvbW1hbmQucmVzdWx0cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20ganVtcGluZyB0byBiZWdpbm5pbmcgb2YgdGV4dCBpbnB1dFxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RlZFJlc3VsdCA+IC0xKSB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBzdGF0ZS5yZXN1bHRzW3N0YXRlLnNlbGVjdGVkUmVzdWx0XTtcbiAgICAgICAgICBjb25zdCBzZWFyY2hUZXh0ID0gc3RhdGUuc2VhcmNoVGV4dDtcbiAgICAgICAgICBjb25zdCBpc0N1cnNvckF0RW5kID1cbiAgICAgICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQgJiZcbiAgICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0O1xuXG4gICAgICAgICAgY29uc3QgaXNFdmVyeXRoaW5nU2VsZWN0ZWQgPVxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCAmJlxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCAmJlxuICAgICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kO1xuXG4gICAgICAgICAgLy8gb25seSBhbGxvdyBkaXZpbmcgaW4gd2hlbiBjdXJzb3IgaXMgYXQgZW5kIG9mIGlucHV0IG9yIHdoZW5cbiAgICAgICAgICAvLyB0aGUgY29tcGxldGUgdGV4dCBpcyBzZWxlY3RlZCAod2hlbiBicm93c2luZyB0aHJvdWdoIGhpc3RvcnkpXG4gICAgICAgICAgaWYgKCFpc0N1cnNvckF0RW5kICYmICFpc0V2ZXJ5dGhpbmdTZWxlY3RlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IoKTtcblxuICAgICAgICAgIC8vIE5PVEU6IHNpbmNlIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIFwibmV4dCBjb21tYW5kXCIsIHdoaWNoIGlzIGFuIGFzeW5jIG9wZXJhdGlvbixcbiAgICAgICAgICAvLyB3ZSB1c2UgYSBJSUZFIHRvIHByb2Nlc3MgdGhhdCBhbmQgZXZlbnR1YWxseSB1cGRhdGUgdGhlIHN0YXRlLlxuICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29tbWFuZCkge1xuICAgICAgICAgICAgICBjb25zdCBuZXh0Q29tbWFuZHMgPSBhd2FpdCBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50KGNvbW1hbmQpO1xuICAgICAgICAgICAgICAvLyBhdm9pZCBtb3ZpbmcgY3Vyc29yIHdoZW4gdGhlcmUgYXJlIHN1Yi1vcHRpb25zXG4gICAgICAgICAgICAgIGlmIChuZXh0Q29tbWFuZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgc2VhcmNoIHRleHQgaGFzIG5vdCBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgbG9hZGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHJlc3VsdHMsIG90aGVyd2lzZSB3ZSdkIGludGVycnVwdCB0aGUgdXNlci5cbiAgICAgICAgICAgICAgICAvLyBUaHJvdyBhd2F5IHRoZSByZXN1bHRzIGluIGNhc2UgdGhlIHNlYXJjaCB0ZXh0IGhhcyBjaGFuZ2VkLlxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5zZWFyY2hUZXh0ID09PSBzZWFyY2hUZXh0KSB7XG4gICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXROZXh0Q29tbWFuZHMnLFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiB7IHJlc3VsdHM6IG5leHRDb21tYW5kcyB9LFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2hha2UoKTtcbiAgICAgICAgICB9KSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgICAgIC8vIGdvIGxlZnQgaW4gc3RhY2tcbiAgICAgICAgICBjb25zdCBwcmV2Q29tbWFuZCA9IGxhc3Qoc3RhdGUuc3RhY2spO1xuXG4gICAgICAgICAgLy8gZG8gbm90aGluZyB3aGVuIHdlIGNhbid0IGdvIGxlZnQgYW55bW9yZVxuICAgICAgICAgIGlmICghcHJldkNvbW1hbmQpIHJldHVybjtcblxuICAgICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20ganVtcGluZyBhIGNoYXIgdG8gdGhlIGxlZnQgaW4gdGV4dCBpbnB1dFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnc2V0UHJldkNvbW1hbmRzJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcHJldkNvbW1hbmQuc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogcHJldkNvbW1hbmQucmVzdWx0cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50LFxuICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMsXG4gICAgICBzaGFrZSxcbiAgICAgIHN0YXRlLFxuICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IsXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVLZXlVcCA9IHVzZUNhbGxiYWNrPEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIHNldHRpbmcgdGhlIHNlbGVjdGlvbiBjYW4gb25seSBoYXBwZW4gaW4gb25LZXlVcFxuICAgICAgaWYgKHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgICAgIGlucHV0LnNlbGVjdCgpO1xuICAgICAgICBzaG91bGRTZWxlY3RGaWVsZFRleHQuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQua2V5ICE9PSAnRW50ZXInICYmICFpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQpIHJldHVybiB0cnVlO1xuXG4gICAgICAvLyBVc2VyIGp1c3QgdHJpZ2dlcmVkIHRoZSBzZWFyY2hcbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RlZFJlc3VsdCA9PT0gLTEpIHJldHVybiB0cnVlO1xuXG4gICAgICAvLyBVc2VyIGhhZCBzb21ldGhpbmcgc2VsZWN0ZWQgYW5kIHdhbnRzIHRvIGdvIHRoZXJlXG4gICAgICBleGVjdXRlKHN0YXRlLnJlc3VsdHNbc3RhdGUuc2VsZWN0ZWRSZXN1bHRdLCB7XG4gICAgICAgIG9wZW5Jbk5ld1RhYjogaXNOZXdXaW5kb3dDb21iby5jdXJyZW50LFxuICAgICAgfSk7XG5cbiAgICAgIGlzTmV3V2luZG93Q29tYm8uY3VycmVudCA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBbZXhlY3V0ZSwgc3RhdGUucmVzdWx0cywgc3RhdGUuc2VsZWN0ZWRSZXN1bHRdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrPENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50Pj4oXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKHNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldCcgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnc2VhcmNoVGV4dCcsIHBheWxvYWQ6IHNlYXJjaFRleHQgfSk7XG5cbiAgICAgIC8vIEEgc2VhcmNoIHZpYSBuZXR3b3JrIGlzIG9ubHkgdHJpZ2dlcmVkIHdoZW4gdGhlcmVcbiAgICAgIC8vIGFyZSBtb3JlIHRoYW4gdGhyZWUgY2hhcmFjdGVycy4gU28gbm8gZmFsc2UgbG9hZGluZ1xuICAgICAgLy8gaW5kaWNhdGlvbiBpcyBnaXZlbi5cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKS5sZW5ndGggPiAzKSB7XG4gICAgICAgIHNldElzTG9hZGluZygpO1xuICAgICAgfVxuXG4gICAgICBzZWFyY2hGcm9tUGFyZW50KHNlYXJjaFRleHQpLnRoZW4oXG4gICAgICAgIChhc3luY1Jlc3VsdHM6IENvbW1hbmRbXSkgPT4ge1xuICAgICAgICAgIHVuc2V0SGFzTmV0d29ya0Vycm9yKCk7XG4gICAgICAgICAgdW5zZXRJc0xvYWRpbmcoKTtcblxuICAgICAgICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShhc3luY1Jlc3VsdHMsIHtcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgeyBuYW1lOiAndGV4dCcsIHdlaWdodDogMC42IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2tleXdvcmRzJywgd2VpZ2h0OiAwLjQgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBtaW5NYXRjaENoYXJMZW5ndGg6IDIsXG4gICAgICAgICAgICBpbmNsdWRlU2NvcmU6IHRydWUsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHRzID0gZnVzZVxuICAgICAgICAgICAgLnNlYXJjaChzZWFyY2hUZXh0KVxuICAgICAgICAgICAgLy8gRmlsdGVyIG91dCByZXN1bHRzIHdpdGggYSBtYXRjaGluZyBzY29yZSBvdmVyIDAuNzVcbiAgICAgICAgICAgIC5maWx0ZXIoKHJlc3VsdCkgPT4gKHJlc3VsdC5zY29yZSA/IHJlc3VsdC5zY29yZSA8IDAuNzUgOiBmYWxzZSkpXG4gICAgICAgICAgICAvLyBLZWVwIGEgbWF4aW1hbCBvZiA5IHJlc3VsdHNcbiAgICAgICAgICAgIC5zbGljZSgwLCA5KTtcblxuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXRTZWFyY2hUZXh0UmVzdWx0cycsXG4gICAgICAgICAgICBwYXlsb2FkOiBzZWFyY2hSZXN1bHRzLm1hcCgocmVzdWx0KSA9PiByZXN1bHQuaXRlbSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB1bnNldElzTG9hZGluZygpO1xuICAgICAgICAgIHNldEhhc05ldHdvcmtFcnJvcigpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgW1xuICAgICAgc2VhcmNoRnJvbVBhcmVudCxcbiAgICAgIHNldEhhc05ldHdvcmtFcnJvcixcbiAgICAgIHNldElzTG9hZGluZyxcbiAgICAgIHVuc2V0SGFzTmV0d29ya0Vycm9yLFxuICAgICAgdW5zZXRJc0xvYWRpbmcsXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVDb250YWluZXJDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldFJlc3VsdHNXaGVuQ2xvc2luZycgfSk7XG4gICAgb25DbG9zZUZyb21QYXJlbnQoKTtcbiAgfSwgW29uQ2xvc2VGcm9tUGFyZW50XSk7XG5cbiAgY29uc3QgY3JlYXRlQ29tbWFuZE1vdXNlRW50ZXJIYW5kbGVyID0gdXNlQ2FsbGJhY2s8XG4gICAgKGluZGV4OiBudW1iZXIpID0+IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PlxuICA+KFxuICAgIChpbmRleCkgPT4gKCkgPT4ge1xuICAgICAgLy8gSW4gY2FzZSB0aGUgY3Vyc29yIGhhcHBlbmVkIHRvIGJlIGluIGEgbG9jYXRpb24gd2hlcmUgYVxuICAgICAgLy8gcmVzdWx0IHdvdWxkIGFwcGVhciwgaXQgd291bGQgdHJpZ2dlciBvbk1vdXNlRW50ZXIgYW5kIHRoZVxuICAgICAgLy8gcmVzdWx0IHdvdWxkIGJlIHNlbGVjdGVkIGltbWVkaWF0ZWx5LiBUaGlzIGlzIG5vdCBzb21ldGhpbmdcbiAgICAgIC8vIGEgdXNlciB3b3VsZCBleHBlY3QsIGhlbmNlIHdlIHByZXZlbnQgaXQgZnJvbSBoYXBwZW5pbmcuXG4gICAgICAvLyBUaGUgdXNlciBoYXMgdG8gbW92ZSB0aGUgY3Vyc29yIHRvIGFuIG9wdGlvbiBleHBsaWNpdGx5IGZvclxuICAgICAgLy8gaXQgdG8gYmVjb21lIGFjdGl2ZS4gSG93ZXZlciwgdGhlIHVzZXIgY2FuIGFsd2F5cyBjbGljayBhbmRcbiAgICAgIC8vIHRoYXQgYWN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkLlxuICAgICAgaWYgKHNraXBOZXh0U2VsZWN0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgc2tpcE5leHRTZWxlY3Rpb24uY3VycmVudCA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHNldHMgdGhlIHNlbGVjdGVkIHJlc3VsdCwgbWFpbmx5IGZvciB0aGUgaG92ZXIgZWZmZWN0XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCcsIHBheWxvYWQ6IGluZGV4IH0pO1xuICAgIH0sXG4gICAgW11cbiAgKTtcbiAgY29uc3QgY3JlYXRlQ29tbWFuZENsaWNrSGFuZGxlciA9IHVzZUNhbGxiYWNrPFxuICAgIChjb21tYW5kOiBDb21tYW5kKSA9PiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD5cbiAgPihcbiAgICAoY29tbWFuZCkgPT4gKGV2ZW50KSA9PiB7XG4gICAgICBleGVjdXRlKGNvbW1hbmQsIHtcbiAgICAgICAgb3BlbkluTmV3VGFiOiBoYXNOZXdXaW5kb3dNb2RpZmllcihldmVudCksXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtleGVjdXRlXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEJ1dGxlckNvbnRhaW5lclxuICAgICAgb25DbGljaz17aGFuZGxlQ29udGFpbmVyQ2xpY2t9XG4gICAgICBkYXRhLXRlc3RpZD1cInF1aWNrLWFjY2Vzc1wiXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3NlYXJjaENvbnRhaW5lclJlZn1cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAke3VpS2l0RGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG5cbiAgICAgICAgICAvKiBvbmUgbW9yZSB0aGFuIGFwcC1iYXIgKDIwMDAwKSBhbmQgb25lIG1vcmUgdGhhbiB0aGUgb3ZlcmxheSAoMjAwMDEpICovXG4gICAgICAgICAgei1pbmRleDogMjAwMDI7XG4gICAgICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgICAgIG1hcmdpbjogNDBweCBhdXRvO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggLThweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAke3N0YXRlLmhhc05ldHdvcmtFcnJvclxuICAgICAgICAgICAgPyAnMCdcbiAgICAgICAgICAgIDogdWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICBgfVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBBdm9pZCBjbG9zaW5nIHdoZW4gdGhlIHNlYXJjaENvbnRhaW5lciBpdHNlbGYgaXMgY2xpY2tlZFxuICAgICAgICAgIC8vIElmIHdlIGRvbid0IGRvIHRoaXMsIHRoZW4gdGhlIG92ZXJsYXkgd2lsbCBjbG9zZSB3aGVuIGUuZy5cbiAgICAgICAgICAvLyB0aGUgc2VhcmNoIGlucHV0IGlzIGNsaWNrZWQuXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBodG1sRm9yPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ019O1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFNlYXJjaEljb24gY29sb3I9XCJuZXV0cmFsNjBcIiAvPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInF1aWNrLWFjY2Vzcy1zZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgcmVmPXtzZWFyY2hJbnB1dFJlZn1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpbnRsLmZvcm1hdE1lc3NhZ2UobWVzc2FnZXMuaW5wdXRQbGFjZWhvZGVyKX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ019XG4gICAgICAgICAgICAgICAgJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX0gJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU31cbiAgICAgICAgICAgICAgICAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbDYwfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYH1cbiAgICAgICAgICAgIHZhbHVlPXtzdGF0ZS5zZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgIG9uS2V5VXA9e2hhbmRsZUtleVVwfVxuICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICB7c3RhdGUuaXNMb2FkaW5nICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0ZS5oYXNOZXR3b3JrRXJyb3IpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHt1aUtpdERlc2lnblRva2Vucy5mb250U2l6ZTIwfTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1hzfTtcbiAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLm9mZmxpbmV9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChzdGF0ZS5yZXN1bHRzLmxlbmd0aCA9PT0gMCAmJiBzdGF0ZS5zZWFyY2hUZXh0LnRyaW0oKS5sZW5ndGggPiAwKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbH07XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclNvbGlkfTtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6ICR7dWlLaXREZXNpZ25Ub2tlbnMuZm9udFNpemUyMH07XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdYc307XG4gICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5ub1Jlc3VsdHN9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBzdGF0ZS5yZXN1bHRzLm1hcCgoY29tbWFuZCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxCdXRsZXJDb21tYW5kXG4gICAgICAgICAgICAgIGtleT17Y29tbWFuZC5pZH1cbiAgICAgICAgICAgICAgY29tbWFuZD17Y29tbWFuZH1cbiAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IGluZGV4fVxuICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9e2NyZWF0ZUNvbW1hbmRNb3VzZUVudGVySGFuZGxlcihpbmRleCl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2NyZWF0ZUNvbW1hbmRDbGlja0hhbmRsZXIoY29tbWFuZCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpO1xuICAgICAgICB9KSgpfVxuICAgICAgPC9kaXY+XG4gICAgPC9CdXRsZXJDb250YWluZXI+XG4gICk7XG59O1xuQnV0bGVyLmRpc3BsYXlOYW1lID0gJ0J1dGxlcic7XG5cbmNvbnN0IEJ1dGxlcldpdGhBbmltYXRpb24gPSAocHJvcHM6IE9taXQ8UHJvcHMsICdjbGFzc05hbWVTaGFrZUFuaW1hdGlvbic+KSA9PiAoXG4gIDxDbGFzc05hbWVzPlxuICAgIHsoeyBjc3MgfSkgPT4gKFxuICAgICAgPEJ1dGxlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIGNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uPXtjc3NgXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjQ1cztcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiAke3NoYWtlQW5pbWF0aW9ufTtcbiAgICAgICAgYH1cbiAgICAgIC8+XG4gICAgKX1cbiAgPC9DbGFzc05hbWVzPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyV2l0aEFuaW1hdGlvbjtcbiJdfQ== */",
|
|
555
|
+
styles: "display:flex;label:Butler;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dGxlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ25Ca0IiLCJmaWxlIjoiYnV0bGVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnRIYW5kbGVyLFxuICBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIEtleWJvYXJkRXZlbnQsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50LFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcywgQ2xhc3NOYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgZGVzaWduVG9rZW5zIGFzIHVpS2l0RGVzaWduVG9rZW5zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvZGVzaWduLXN5c3RlbSc7XG5pbXBvcnQgeyBTZWFyY2hJY29uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgQnV0bGVyQ29tbWFuZCBmcm9tICcuLi9idXRsZXItY29tbWFuZCc7XG5pbXBvcnQgQnV0bGVyQ29udGFpbmVyIGZyb20gJy4uL2J1dGxlci1jb250YWluZXInO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbWFuZCxcbiAgU2VhcmNoVGV4dCxcbiAgU2VsZWN0ZWRSZXN1bHQsXG4gIFN0YWNrLFxuICBIaXN0b3J5RW50cnksXG59IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgaXNTZWxlY3RBbGxDb21ibyA9IChldmVudDogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgZXZlbnQua2V5ID09PSAnYScgJiZcbiAgZXZlbnQubWV0YUtleSAmJlxuICAhZXZlbnQuY3RybEtleSAmJlxuICAhZXZlbnQuYWx0S2V5ICYmXG4gICFldmVudC5zaGlmdEtleTtcblxuY29uc3QgaXNDbG9zZUNvbWJvID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICBldmVudC5rZXkgPT09ICdFc2NhcGUnICYmXG4gICFldmVudC5tZXRhS2V5ICYmXG4gICFldmVudC5jdHJsS2V5ICYmXG4gICFldmVudC5hbHRLZXkgJiZcbiAgIWV2ZW50LnNoaWZ0S2V5O1xuXG5jb25zdCBnZXRQbGF0Zm9ybSA9ICgpID0+IHtcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdXaW4nKSkgcmV0dXJuICd3aW5kb3dzJztcbiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluY2x1ZGVzKCdNYWMnKSkgcmV0dXJuICdtYWNvcyc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnWDExJykpIHJldHVybiAndW5peCc7XG4gIGlmIChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmNsdWRlcygnTGludXgnKSkgcmV0dXJuICdsaW51eCc7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBoYXNOZXdXaW5kb3dNb2RpZmllciA9IChcbiAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgTW91c2VFdmVudDxIVE1MRWxlbWVudD5cbikgPT4ge1xuICBjb25zdCBwbGF0Zm9ybSA9IGdldFBsYXRmb3JtKCk7XG4gIHN3aXRjaCAocGxhdGZvcm0pIHtcbiAgICBjYXNlICdtYWNvcyc6XG4gICAgICByZXR1cm4gZXZlbnQubWV0YUtleTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV2ZW50LmN0cmxLZXk7XG4gIH1cbn07XG5cbmNvbnN0IHNoYWtlQW5pbWF0aW9uID0ga2V5ZnJhbWVzYFxuICBmcm9tLFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDE0JSxcbiAgNDIlLFxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTNweCwgMCwgMCk7XG4gIH1cblxuICAyOCUsXG4gIDU2JSxcbiAgODQlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDNweCwgMCwgMCk7XG4gIH1cbmA7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogYm9vbGVhbjtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0O1xuICBzZWxlY3RlZFJlc3VsdDogU2VsZWN0ZWRSZXN1bHQ7XG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IGJvb2xlYW47XG4gIHJlc3VsdHM6IENvbW1hbmRbXTtcbiAgc3RhY2s6IFN0YWNrW107XG59O1xudHlwZSBBY3Rpb24gPVxuICB8IHsgdHlwZTogJ25ldHdvcmtFcnJvcic7IHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ2xvYWRpbmcnOyBwYXlsb2FkOiBib29sZWFuIH1cbiAgfCB7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCc7IHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnaW5jcmVtZW50U2VsZWN0ZWRSZXN1bHQnIH1cbiAgfCB7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JztcbiAgICAgIHBheWxvYWQ6IHsgc2VhcmNoVGV4dDogU2VhcmNoVGV4dDsgcmVzdWx0czogQ29tbWFuZFtdIH07XG4gICAgfVxuICB8IHsgdHlwZTogJ3NldE5leHRDb21tYW5kcyc7IHBheWxvYWQ6IHsgcmVzdWx0czogQ29tbWFuZFtdIH0gfVxuICB8IHtcbiAgICAgIHR5cGU6ICdzZXRQcmV2Q29tbWFuZHMnO1xuICAgICAgcGF5bG9hZDogeyBzZWFyY2hUZXh0OiBTZWFyY2hUZXh0OyByZXN1bHRzOiBDb21tYW5kW10gfTtcbiAgICB9XG4gIHwgeyB0eXBlOiAnc2VhcmNoVGV4dCc7IHBheWxvYWQ6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOyBwYXlsb2FkOiBDb21tYW5kW10gfVxuICB8IHsgdHlwZTogJ3Jlc2V0U2VhcmNoVGV4dCcgfVxuICB8IHsgdHlwZTogJ3Jlc2V0UmVzdWx0c1doZW5DbG9zaW5nJyB9XG4gIHwgeyB0eXBlOiAncmVzZXQnIH07XG5jb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gIGhhc05ldHdvcmtFcnJvcjogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIHNlYXJjaFRleHQ6ICcnLFxuICBzZWxlY3RlZFJlc3VsdDogLTEsXG4gIC8vIFVzZWQgZm9yIFVYIHdoZW4gYnJvd3NpbmcgdGhyb3VnaCBoaXN0b3J5XG4gIGVuYWJsZUhpc3Rvcnk6IHRydWUsXG4gIHJlc3VsdHM6IFtdLFxuICBzdGFjazogW10sXG59O1xuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnbmV0d29ya0Vycm9yJzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBoYXNOZXR3b3JrRXJyb3I6IGFjdGlvbi5wYXlsb2FkIH07XG4gICAgY2FzZSAnbG9hZGluZyc6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgaXNMb2FkaW5nOiBhY3Rpb24ucGF5bG9hZCB9O1xuICAgIGNhc2UgJ3NlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQgfTtcbiAgICBjYXNlICdpbmNyZW1lbnRTZWxlY3RlZFJlc3VsdCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6XG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IHN0YXRlLnJlc3VsdHMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0ICsgMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ2RlY3JlbWVudFNlbGVjdGVkUmVzdWx0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDpcbiAgICAgICAgICBzdGF0ZS5zZWxlY3RlZFJlc3VsdCA8IDFcbiAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVzdWx0IC0gMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICB9O1xuICAgIGNhc2UgJ3BpY2tDb21tYW5kRnJvbUhpc3RvcnknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNlbGVjdGVkUmVzdWx0OiAwLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZC5zZWFyY2hUZXh0LFxuICAgICAgICByZXN1bHRzOiBhY3Rpb24ucGF5bG9hZC5yZXN1bHRzLFxuICAgICAgICBzdGFjazogW10sXG4gICAgICAgIC8vIFRoZSBoaXN0b3J5IGRvZXMgbm90IGdldCBjaGFuZ2VkIGhlcmUsIGl0IHdpbGwgYmUgY2hhbmdlZCBhbG9uZ1xuICAgICAgICAvLyB3aXRoIHRoZSByZWd1bGFyIGZsb3cuXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldE5leHRDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc3RhY2s6IFtcbiAgICAgICAgICAuLi5zdGF0ZS5zdGFjayxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiBzdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgcmVzdWx0czogc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdWx0OiBzdGF0ZS5zZWxlY3RlZFJlc3VsdCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogMCxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogZmFsc2UsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLnJlc3VsdHMsXG4gICAgICB9O1xuICAgIGNhc2UgJ3NldFByZXZDb21tYW5kcyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VhcmNoVGV4dDogYWN0aW9uLnBheWxvYWQuc2VhcmNoVGV4dCxcbiAgICAgICAgcmVzdWx0czogYWN0aW9uLnBheWxvYWQucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRSZXN1bHQ6IDAsXG4gICAgICAgIGVuYWJsZUhpc3Rvcnk6IGZhbHNlLFxuICAgICAgICAvLyBvbWl0IGxhc3QgaXRlbVxuICAgICAgICBzdGFjazogc3RhdGUuc3RhY2suc2xpY2UoMCwgLTEpLFxuICAgICAgfTtcbiAgICBjYXNlICdzZWFyY2hUZXh0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWFyY2hUZXh0OiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgLy8gY2xlYXIgbmV0d29yayBlcnJvciB3aGVuIHNlYXJjaCB0ZXh0IGlzIGNsZWFyZWQsIHNvIHRoYXQgdXNlcnNcbiAgICAgICAgLy8gYXJlIHRlbXB0ZWQgdG8gcmV0cnlcbiAgICAgICAgaGFzTmV0d29ya0Vycm9yOiBhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwICYmIHN0YXRlLmhhc05ldHdvcmtFcnJvcixcbiAgICAgIH07XG4gICAgY2FzZSAnc2V0U2VhcmNoVGV4dFJlc3VsdHMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICBzZWxlY3RlZFJlc3VsdDogYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCA/IDAgOiAtMSxcbiAgICAgICAgZW5hYmxlSGlzdG9yeTogdHJ1ZSxcbiAgICAgICAgc3RhY2s6IFtdLFxuICAgICAgfTtcbiAgICBjYXNlICdyZXNldFNlYXJjaFRleHQnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlYXJjaFRleHQ6ICcnLCByZXN1bHRzOiBbXSwgc2VsZWN0ZWRSZXN1bHQ6IC0xIH07XG4gICAgY2FzZSAncmVzZXRSZXN1bHRzV2hlbkNsb3NpbmcnOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHNlbGVjdGVkUmVzdWx0OiAtMSwgZW5hYmxlSGlzdG9yeTogdHJ1ZSB9O1xuICAgIGNhc2UgJ3Jlc2V0JzpcbiAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdO1xuICBvbkhpc3RvcnlFbnRyaWVzQ2hhbmdlOiAoaGlzdG9yeUVudHJpZXM6IEhpc3RvcnlFbnRyeVtdKSA9PiB2b2lkO1xuICBzZWFyY2g6IChzZWFyY2hUZXh0OiBTZWFyY2hUZXh0KSA9PiBQcm9taXNlPENvbW1hbmRbXT47XG4gIGdldE5leHRDb21tYW5kczogKGNvbW1hbmQ6IENvbW1hbmQpID0+IFByb21pc2U8Q29tbWFuZFtdPjtcbiAgZXhlY3V0ZUNvbW1hbmQ6IChjb21tYW5kOiBDb21tYW5kLCBtZXRhOiB7IG9wZW5Jbk5ld1RhYjogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBjbGFzc05hbWVTaGFrZUFuaW1hdGlvbjogc3RyaW5nO1xufTtcbmNvbnN0IEJ1dGxlciA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyPFxuICAgIChwcmV2U3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbikgPT4gU3RhdGVcbiAgPihyZWR1Y2VyLCBpbml0aWFsU3RhdGUpO1xuXG4gIGNvbnN0IHNob3VsZFNlbGVjdEZpZWxkVGV4dCA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IGlzTmV3V2luZG93Q29tYm8gPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBza2lwTmV4dFNlbGVjdGlvbiA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHNlYXJjaENvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IHNldEhhc05ldHdvcmtFcnJvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICduZXR3b3JrRXJyb3InLCBwYXlsb2FkOiB0cnVlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHVuc2V0SGFzTmV0d29ya0Vycm9yID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogJ25ldHdvcmtFcnJvcicsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICB9LCBbXSk7XG4gIGNvbnN0IHNldElzTG9hZGluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdsb2FkaW5nJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgfSwgW10pO1xuICBjb25zdCB1bnNldElzTG9hZGluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdsb2FkaW5nJywgcGF5bG9hZDogZmFsc2UgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBEZXN0cnVjdHVyZSBmdW5jdGlvbnMgZnJvbSBwcm9wcyB0byByZWZlcmVuY2UgdGhlbSBpbiB0aGUgaG9vayBkZXBlbmRlbmN5IGxpc3RcbiAgY29uc3Qge1xuICAgIHNlYXJjaDogc2VhcmNoRnJvbVBhcmVudCxcbiAgICBvbkNsb3NlOiBvbkNsb3NlRnJvbVBhcmVudCxcbiAgICBleGVjdXRlQ29tbWFuZDogZXhlY3V0ZUNvbW1hbmRGcm9tUGFyZW50LFxuICAgIG9uSGlzdG9yeUVudHJpZXNDaGFuZ2U6IG9uSGlzdG9yeUVudHJpZXNDaGFuZ2VGcm9tUGFyZW50LFxuICAgIGdldE5leHRDb21tYW5kczogZ2V0TmV4dENvbW1hbmRzRnJvbVBhcmVudCxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHNoYWtlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChzZWFyY2hDb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgc2VhcmNoQ29udGFpbmVyUmVmLmN1cnJlbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lU2hha2VBbmltYXRpb25cbiAgICAgICk7XG4gICAgICAvLyAtPiB0cmlnZ2VyaW5nIHJlZmxvd1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZvaWRcbiAgICAgIHZvaWQgc2VhcmNoQ29udGFpbmVyUmVmLmN1cnJlbnQub2Zmc2V0V2lkdGg7XG4gICAgICBzZWFyY2hDb250YWluZXJSZWYuY3VycmVudC5jbGFzc0xpc3QuYWRkKHByb3BzLmNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uKTtcbiAgICB9XG4gIH0sIFtwcm9wcy5jbGFzc05hbWVTaGFrZUFuaW1hdGlvbl0pO1xuXG4gIGNvbnN0IGV4ZWN1dGUgPSB1c2VDYWxsYmFjayhcbiAgICAoY29tbWFuZCwgbWV0YSkgPT4ge1xuICAgICAgLy8gT25seSBtYWluIGVudHJpZXMgZ2V0IGFkZGVkIHRvIGhpc3RvcnksIHNvIHdoZW4gYSBzdWJjb21tYW5kIGlzIGV4ZWN1dGVkLFxuICAgICAgLy8gd2UgYWRkIHRoZSBtYWluIGNvbW1hbmQgb2YgaXQgdG8gdGhlIGhpc3RvcnkgKHRoZSB0b3AtbGV2ZWwgY29tbWFuZCkuXG4gICAgICAvL1xuICAgICAgLy8gVGhlIGtleSB0byBpZGVudGlmeSBoaXN0b3J5IGVudHJpZXMgYnkgaXMgYWx3YXlzIHRoZSBzZWFyY2hUZXh0XG4gICAgICAvLyBUaGVyZSB3aWxsIG5ldmVyIGJlIHR3byBoaXN0b3J5IGVudHJpZXMgd2l0aCB0aGUgc2FtZSBzZWFyY2hUZXh0XG4gICAgICBjb25zdCBlbnRyeSA9XG4gICAgICAgIHN0YXRlLnN0YWNrLmxlbmd0aCA9PT0gMFxuICAgICAgICAgID8gLy8gVGhlIHN0YWNrIGlzIGVtcHR5LCBzbyB3ZSBhcmUgZXhlY3V0aW5nIGEgdG9wLWxldmVsIGNvbW1hbmRcbiAgICAgICAgICAgIHsgc2VhcmNoVGV4dDogc3RhdGUuc2VhcmNoVGV4dCwgcmVzdWx0czogc3RhdGUucmVzdWx0cyB9XG4gICAgICAgICAgOiAvLyBXZSBhcmUgZXhlY3V0aW5nIGEgc3ViY29tbWFuZCwgc28gd2UgZ2V0IHRoZSB0b3AtbGV2ZWwgY29tbWFuZCBmb3IgaXQsXG4gICAgICAgICAgICAvLyB3aGljaCBpcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBzdGFjay5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogc3RhdGUuc3RhY2tbMF0uc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogc3RhdGUuc3RhY2tbMF0ucmVzdWx0cyxcbiAgICAgICAgICAgIH07XG5cbiAgICAgIC8vIEFkZCB0aGUgZW50cnkgdG8gdGhlIGhpc3RvcnksIHdoaWxlIGV4Y2x1ZGluZyBhbnkgZWFybGllciBoaXN0b3J5IGVudHJ5XG4gICAgICAvLyB3aXRoIHRoZSBzYW1lIHNlYXJjaCB0ZXh0LiBUaGlzIGVmZmVjdGl2ZWx5IFwibW92ZXNcIiB0aGF0IGVudHJ5IHRvIHRoZVxuICAgICAgLy8gdG9wIG9mIHRoZSBoaXN0b3J5ICh3aXRoIHRoZSBtb3N0IHJlY2VudCByZXN1bHRzKSwgb3IgYXBwZW5kcyBhIG5ldyBlbnRyeVxuICAgICAgLy8gd2hlbiBpdCBkaWRuJ3QgZXhpc3QgYmVmb3JlLlxuICAgICAgb25IaXN0b3J5RW50cmllc0NoYW5nZUZyb21QYXJlbnQoW1xuICAgICAgICAuLi5wcm9wcy5oaXN0b3J5RW50cmllcy5maWx0ZXIoXG4gICAgICAgICAgKGNvbW1hbmQpID0+IGNvbW1hbmQuc2VhcmNoVGV4dCAhPT0gZW50cnkuc2VhcmNoVGV4dFxuICAgICAgICApLFxuICAgICAgICBlbnRyeSxcbiAgICAgIF0pO1xuXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldFNlYXJjaFRleHQnIH0pO1xuXG4gICAgICBvbkNsb3NlRnJvbVBhcmVudCgpO1xuXG4gICAgICBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQoY29tbWFuZCwgbWV0YSk7XG4gICAgfSxcbiAgICBbXG4gICAgICBleGVjdXRlQ29tbWFuZEZyb21QYXJlbnQsXG4gICAgICBvbkNsb3NlRnJvbVBhcmVudCxcbiAgICAgIG9uSGlzdG9yeUVudHJpZXNDaGFuZ2VGcm9tUGFyZW50LFxuICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMsXG4gICAgICBzdGF0ZS5yZXN1bHRzLFxuICAgICAgc3RhdGUuc2VhcmNoVGV4dCxcbiAgICAgIHN0YXRlLnN0YWNrLFxuICAgIF1cbiAgKTtcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrPEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnRpbmcgY3Vyc29yIGp1bXBzIGNhbiBvbmx5IGhhcHBlbiBpbiBvbktleURvd24sIGJ1dCBub3QgaW4gb25LZXlVcFxuICAgICAgZXZlbnQucGVyc2lzdCgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIGtub3cgd2hlbiB0aGUgdXNlciBwcmVzc2VzIGNtZCtlbnRlciAoY21kIGJlaW5nIGEgbWV0YSBrZXkpLlxuICAgICAgLy8gV2UgYXJlIG9ubHkgdG9sZCBhYm91dCB0aGlzIGluIGtleURvd24sIGJ1dCBub3QgaW4ga2V5VXAsIHNvIHdlIG5lZWRcbiAgICAgIC8vIHRvIGhhbmRsZSBpdCBoZXJlXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGhhc05ld1dpbmRvd01vZGlmaWVyKGV2ZW50KSkge1xuICAgICAgICBpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEF2b2lkIHNlbGVjdGluZyB0aGUgd2hvbGUgcGFnZSB3aGVuIHVzZXIgc2VsZWN0ZXMgZXZlcnl0aGluZyB3aXRoXG4gICAgICAvLyBhIGtleWJvYXJkIHNob3J0Y3V0LiBUaGVyZSBpcyBwcm9iYWJseSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcyB0aG91Z2guXG4gICAgICAvLyBUaGlzIHByZXZlbnRzIHRoZSB3aG9sZSBwYWdlIGZyb20gYmVpbmcgc2VsZWN0ZWQgaW4gY2FzZSB0aGUgdXNlclxuICAgICAgLy8gMSkgb3BlbnMgdGhlIHNlYXJjaCBib3hcbiAgICAgIC8vIDIpIHR5cGVzIGludG8gaXRcbiAgICAgIC8vIDMpIHNlbGVjdHMgYWxsIHRleHQgdXNpbmcgY21kK2FcbiAgICAgIC8vIDQpIGNsb3NlcyB0aGUgc2VhcmNoIGJveCB3aXRoIGVzY1xuICAgICAgLy8gV2l0aG91dCB0aGlzIGhhbmRsaW5nLCB0aGUgd2hvbGUgcGFnZSB3b3VsZCBub3cgYmUgc2VsZWN0ZWRcbiAgICAgIGlmIChpc1NlbGVjdEFsbENvbWJvKGV2ZW50KSkge1xuICAgICAgICAvLyBUaGlzIHN0b3BzIHRoZSBicm93c2VyIGZyb20gc2VsZWN0aW5nIGFueXRoaW5nXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzZWFyY2hJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgLy8gVGhpcyBzZWxlY3RzIHRoZSB0ZXh0IGluIHRoZSBzZWFyY2ggaW5wdXRcbiAgICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGF2b2lkIGludGVyZmVyaW5nIHdpdGggb3RoZXIga2V5IGNvbWJpbmF0aW9ucyB1c2luZyBtb2RpZmllciBrZXlzXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQubWV0YUtleSlcbiAgICAgICAgcmV0dXJuO1xuICAgICAgaWYgKGlzQ2xvc2VDb21ibyhldmVudCkpIHJldHVybjtcblxuICAgICAgLy8gc2tpcCBuZXh0IG1vdXNlRW50ZXIgdG8gYXZvaWQgc2V0dGluZyBzZWxlY3RlZFJlc3VsdCB3aGVuIGN1cnNvciBqdXN0XG4gICAgICAvLyBoYXBwZW5zIHRvIGJlIHdoZXJlIHRoZSByZXN1bHRzIHdpbGwgcG9wIHVwXG4gICAgICBza2lwTmV4dFNlbGVjdGlvbi5jdXJyZW50ID0gdHJ1ZTtcblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgLy8gcHJldmVudCBjdXJzb3IgZnJvbSBqdW1waW5nIHRvIGVuZCBvZiB0ZXh0IGlucHV0XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ2luY3JlbWVudFNlbGVjdGVkUmVzdWx0JyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICAgIC8vIGJyb3dzZSB0aHJvdWdoIGhpc3RvcnlcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgKHN0YXRlLnNlbGVjdGVkUmVzdWx0IDwgMSAmJiBzdGF0ZS5lbmFibGVIaXN0b3J5KVxuICAgICAgICApIHtcbiAgICAgICAgICBzaG91bGRTZWxlY3RGaWVsZFRleHQuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9XG4gICAgICAgICAgICBzdGF0ZS5zZWFyY2hUZXh0Lmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICA/IC8vIFdoZW4gZ29pbmcgYmFjayB0aGUgZmlyc3Qgc3RlcFxuICAgICAgICAgICAgICAgIC0xXG4gICAgICAgICAgICAgIDogLy8gV2hlbiBnb2luZyBiYWNrIG1vcmUgdGhhbiBvbmUgc3RlcFxuICAgICAgICAgICAgICAgIHByb3BzLmhpc3RvcnlFbnRyaWVzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgIChjb21tYW5kKSA9PiBjb21tYW5kLnNlYXJjaFRleHQgPT09IHN0YXRlLnNlYXJjaFRleHRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgIC8vIFBpY2sgdGhlIHByZXZpb3VzIGNvbW1hbmQgZnJvbSB0aGUgaGlzdG9yeVxuICAgICAgICAgIGNvbnN0IHByZXZDb21tYW5kID1cbiAgICAgICAgICAgIHNlbGVjdGVkSW5kZXggPT09IC0xXG4gICAgICAgICAgICAgID8gLy8gcHJldmlvdXMgY29tbWFuZCBvbiB0b3Agb2YgdGhlIGhpc3Rvcnkgd2hlbiBnb2luZyBiYWNrIG9uXG4gICAgICAgICAgICAgICAgLy8gZmlyc3Qgc3RlcFxuICAgICAgICAgICAgICAgIGxhc3QocHJvcHMuaGlzdG9yeUVudHJpZXMpXG4gICAgICAgICAgICAgIDogLy8gcHJldmlvdXMgY29tbWFuZCBpcyBkZWVwZXIgZG93blxuICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGhpc3RvcnkgZG9lcyBub3QgZXhpc3QgKG5lZ2F0aXZlIGluZGV4KSwgdGhlblxuICAgICAgICAgICAgICAgIC8vIHRoaXMgaW1wbGljaXRseSByZXR1cm5zIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIHByb3BzLmhpc3RvcnlFbnRyaWVzW3NlbGVjdGVkSW5kZXggLSAxXTtcbiAgICAgICAgICAvLyBTa2lwIHdoZW4gbm8gcHJldmlvdXMgZW50cnkgZXhpc3RzIGluIHRoZSBoaXN0b3J5XG4gICAgICAgICAgaWYgKCFwcmV2Q29tbWFuZCkgcmV0dXJuO1xuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdwaWNrQ29tbWFuZEZyb21IaXN0b3J5JyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcHJldkNvbW1hbmQuc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogcHJldkNvbW1hbmQucmVzdWx0cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20ganVtcGluZyB0byBiZWdpbm5pbmcgb2YgdGV4dCBpbnB1dFxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdkZWNyZW1lbnRTZWxlY3RlZFJlc3VsdCcgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RlZFJlc3VsdCA+IC0xKSB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBzdGF0ZS5yZXN1bHRzW3N0YXRlLnNlbGVjdGVkUmVzdWx0XTtcbiAgICAgICAgICBjb25zdCBzZWFyY2hUZXh0ID0gc3RhdGUuc2VhcmNoVGV4dDtcbiAgICAgICAgICBjb25zdCBpc0N1cnNvckF0RW5kID1cbiAgICAgICAgICAgIHNlYXJjaElucHV0UmVmLmN1cnJlbnQgJiZcbiAgICAgICAgICAgIHN0YXRlLnNlYXJjaFRleHQubGVuZ3RoID09PSBzZWFyY2hJbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0O1xuXG4gICAgICAgICAgY29uc3QgaXNFdmVyeXRoaW5nU2VsZWN0ZWQgPVxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCAmJlxuICAgICAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCAmJlxuICAgICAgICAgICAgc3RhdGUuc2VhcmNoVGV4dC5sZW5ndGggPT09IHNlYXJjaElucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kO1xuXG4gICAgICAgICAgLy8gb25seSBhbGxvdyBkaXZpbmcgaW4gd2hlbiBjdXJzb3IgaXMgYXQgZW5kIG9mIGlucHV0IG9yIHdoZW5cbiAgICAgICAgICAvLyB0aGUgY29tcGxldGUgdGV4dCBpcyBzZWxlY3RlZCAod2hlbiBicm93c2luZyB0aHJvdWdoIGhpc3RvcnkpXG4gICAgICAgICAgaWYgKCFpc0N1cnNvckF0RW5kICYmICFpc0V2ZXJ5dGhpbmdTZWxlY3RlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IoKTtcblxuICAgICAgICAgIC8vIE5PVEU6IHNpbmNlIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIFwibmV4dCBjb21tYW5kXCIsIHdoaWNoIGlzIGFuIGFzeW5jIG9wZXJhdGlvbixcbiAgICAgICAgICAvLyB3ZSB1c2UgYSBJSUZFIHRvIHByb2Nlc3MgdGhhdCBhbmQgZXZlbnR1YWxseSB1cGRhdGUgdGhlIHN0YXRlLlxuICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29tbWFuZCkge1xuICAgICAgICAgICAgICBjb25zdCBuZXh0Q29tbWFuZHMgPSBhd2FpdCBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50KGNvbW1hbmQpO1xuICAgICAgICAgICAgICAvLyBhdm9pZCBtb3ZpbmcgY3Vyc29yIHdoZW4gdGhlcmUgYXJlIHN1Yi1vcHRpb25zXG4gICAgICAgICAgICAgIGlmIChuZXh0Q29tbWFuZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgc2VhcmNoIHRleHQgaGFzIG5vdCBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgbG9hZGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHJlc3VsdHMsIG90aGVyd2lzZSB3ZSdkIGludGVycnVwdCB0aGUgdXNlci5cbiAgICAgICAgICAgICAgICAvLyBUaHJvdyBhd2F5IHRoZSByZXN1bHRzIGluIGNhc2UgdGhlIHNlYXJjaCB0ZXh0IGhhcyBjaGFuZ2VkLlxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5zZWFyY2hUZXh0ID09PSBzZWFyY2hUZXh0KSB7XG4gICAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXROZXh0Q29tbWFuZHMnLFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiB7IHJlc3VsdHM6IG5leHRDb21tYW5kcyB9LFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2hha2UoKTtcbiAgICAgICAgICB9KSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgICAgIC8vIGdvIGxlZnQgaW4gc3RhY2tcbiAgICAgICAgICBjb25zdCBwcmV2Q29tbWFuZCA9IGxhc3Qoc3RhdGUuc3RhY2spO1xuXG4gICAgICAgICAgLy8gZG8gbm90aGluZyB3aGVuIHdlIGNhbid0IGdvIGxlZnQgYW55bW9yZVxuICAgICAgICAgIGlmICghcHJldkNvbW1hbmQpIHJldHVybjtcblxuICAgICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20ganVtcGluZyBhIGNoYXIgdG8gdGhlIGxlZnQgaW4gdGV4dCBpbnB1dFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiAnc2V0UHJldkNvbW1hbmRzJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgc2VhcmNoVGV4dDogcHJldkNvbW1hbmQuc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAgcmVzdWx0czogcHJldkNvbW1hbmQucmVzdWx0cyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBnZXROZXh0Q29tbWFuZHNGcm9tUGFyZW50LFxuICAgICAgcHJvcHMuaGlzdG9yeUVudHJpZXMsXG4gICAgICBzaGFrZSxcbiAgICAgIHN0YXRlLFxuICAgICAgdW5zZXRIYXNOZXR3b3JrRXJyb3IsXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVLZXlVcCA9IHVzZUNhbGxiYWNrPEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+PihcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIHNldHRpbmcgdGhlIHNlbGVjdGlvbiBjYW4gb25seSBoYXBwZW4gaW4gb25LZXlVcFxuICAgICAgaWYgKHNob3VsZFNlbGVjdEZpZWxkVGV4dC5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgICAgIGlucHV0LnNlbGVjdCgpO1xuICAgICAgICBzaG91bGRTZWxlY3RGaWVsZFRleHQuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQua2V5ICE9PSAnRW50ZXInICYmICFpc05ld1dpbmRvd0NvbWJvLmN1cnJlbnQpIHJldHVybiB0cnVlO1xuXG4gICAgICAvLyBVc2VyIGp1c3QgdHJpZ2dlcmVkIHRoZSBzZWFyY2hcbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RlZFJlc3VsdCA9PT0gLTEpIHJldHVybiB0cnVlO1xuXG4gICAgICAvLyBVc2VyIGhhZCBzb21ldGhpbmcgc2VsZWN0ZWQgYW5kIHdhbnRzIHRvIGdvIHRoZXJlXG4gICAgICBleGVjdXRlKHN0YXRlLnJlc3VsdHNbc3RhdGUuc2VsZWN0ZWRSZXN1bHRdLCB7XG4gICAgICAgIG9wZW5Jbk5ld1RhYjogaXNOZXdXaW5kb3dDb21iby5jdXJyZW50LFxuICAgICAgfSk7XG5cbiAgICAgIGlzTmV3V2luZG93Q29tYm8uY3VycmVudCA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBbZXhlY3V0ZSwgc3RhdGUucmVzdWx0cywgc3RhdGUuc2VsZWN0ZWRSZXN1bHRdXG4gICk7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrPENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50Pj4oXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKHNlYXJjaFRleHQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldCcgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnc2VhcmNoVGV4dCcsIHBheWxvYWQ6IHNlYXJjaFRleHQgfSk7XG5cbiAgICAgIC8vIEEgc2VhcmNoIHZpYSBuZXR3b3JrIGlzIG9ubHkgdHJpZ2dlcmVkIHdoZW4gdGhlcmVcbiAgICAgIC8vIGFyZSBtb3JlIHRoYW4gdGhyZWUgY2hhcmFjdGVycy4gU28gbm8gZmFsc2UgbG9hZGluZ1xuICAgICAgLy8gaW5kaWNhdGlvbiBpcyBnaXZlbi5cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKS5sZW5ndGggPiAzKSB7XG4gICAgICAgIHNldElzTG9hZGluZygpO1xuICAgICAgfVxuXG4gICAgICBzZWFyY2hGcm9tUGFyZW50KHNlYXJjaFRleHQpLnRoZW4oXG4gICAgICAgIChhc3luY1Jlc3VsdHM6IENvbW1hbmRbXSkgPT4ge1xuICAgICAgICAgIHVuc2V0SGFzTmV0d29ya0Vycm9yKCk7XG4gICAgICAgICAgdW5zZXRJc0xvYWRpbmcoKTtcblxuICAgICAgICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShhc3luY1Jlc3VsdHMsIHtcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgeyBuYW1lOiAndGV4dCcsIHdlaWdodDogMC42IH0sXG4gICAgICAgICAgICAgIHsgbmFtZTogJ2tleXdvcmRzJywgd2VpZ2h0OiAwLjQgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBtaW5NYXRjaENoYXJMZW5ndGg6IDIsXG4gICAgICAgICAgICBpbmNsdWRlU2NvcmU6IHRydWUsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHRzID0gZnVzZVxuICAgICAgICAgICAgLnNlYXJjaChzZWFyY2hUZXh0KVxuICAgICAgICAgICAgLy8gRmlsdGVyIG91dCByZXN1bHRzIHdpdGggYSBtYXRjaGluZyBzY29yZSBvdmVyIDAuNzVcbiAgICAgICAgICAgIC5maWx0ZXIoKHJlc3VsdCkgPT4gKHJlc3VsdC5zY29yZSA/IHJlc3VsdC5zY29yZSA8IDAuNzUgOiBmYWxzZSkpXG4gICAgICAgICAgICAvLyBLZWVwIGEgbWF4aW1hbCBvZiA5IHJlc3VsdHNcbiAgICAgICAgICAgIC5zbGljZSgwLCA5KTtcblxuICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXRTZWFyY2hUZXh0UmVzdWx0cycsXG4gICAgICAgICAgICBwYXlsb2FkOiBzZWFyY2hSZXN1bHRzLm1hcCgocmVzdWx0KSA9PiByZXN1bHQuaXRlbSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB1bnNldElzTG9hZGluZygpO1xuICAgICAgICAgIHNldEhhc05ldHdvcmtFcnJvcigpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgW1xuICAgICAgc2VhcmNoRnJvbVBhcmVudCxcbiAgICAgIHNldEhhc05ldHdvcmtFcnJvcixcbiAgICAgIHNldElzTG9hZGluZyxcbiAgICAgIHVuc2V0SGFzTmV0d29ya0Vycm9yLFxuICAgICAgdW5zZXRJc0xvYWRpbmcsXG4gICAgXVxuICApO1xuICBjb25zdCBoYW5kbGVDb250YWluZXJDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldFJlc3VsdHNXaGVuQ2xvc2luZycgfSk7XG4gICAgb25DbG9zZUZyb21QYXJlbnQoKTtcbiAgfSwgW29uQ2xvc2VGcm9tUGFyZW50XSk7XG5cbiAgY29uc3QgY3JlYXRlQ29tbWFuZE1vdXNlRW50ZXJIYW5kbGVyID0gdXNlQ2FsbGJhY2s8XG4gICAgKGluZGV4OiBudW1iZXIpID0+IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PlxuICA+KFxuICAgIChpbmRleCkgPT4gKCkgPT4ge1xuICAgICAgLy8gSW4gY2FzZSB0aGUgY3Vyc29yIGhhcHBlbmVkIHRvIGJlIGluIGEgbG9jYXRpb24gd2hlcmUgYVxuICAgICAgLy8gcmVzdWx0IHdvdWxkIGFwcGVhciwgaXQgd291bGQgdHJpZ2dlciBvbk1vdXNlRW50ZXIgYW5kIHRoZVxuICAgICAgLy8gcmVzdWx0IHdvdWxkIGJlIHNlbGVjdGVkIGltbWVkaWF0ZWx5LiBUaGlzIGlzIG5vdCBzb21ldGhpbmdcbiAgICAgIC8vIGEgdXNlciB3b3VsZCBleHBlY3QsIGhlbmNlIHdlIHByZXZlbnQgaXQgZnJvbSBoYXBwZW5pbmcuXG4gICAgICAvLyBUaGUgdXNlciBoYXMgdG8gbW92ZSB0aGUgY3Vyc29yIHRvIGFuIG9wdGlvbiBleHBsaWNpdGx5IGZvclxuICAgICAgLy8gaXQgdG8gYmVjb21lIGFjdGl2ZS4gSG93ZXZlciwgdGhlIHVzZXIgY2FuIGFsd2F5cyBjbGljayBhbmRcbiAgICAgIC8vIHRoYXQgYWN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkLlxuICAgICAgaWYgKHNraXBOZXh0U2VsZWN0aW9uLmN1cnJlbnQpIHtcbiAgICAgICAgc2tpcE5leHRTZWxlY3Rpb24uY3VycmVudCA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHNldHMgdGhlIHNlbGVjdGVkIHJlc3VsdCwgbWFpbmx5IGZvciB0aGUgaG92ZXIgZWZmZWN0XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdzZWxlY3RlZFJlc3VsdCcsIHBheWxvYWQ6IGluZGV4IH0pO1xuICAgIH0sXG4gICAgW11cbiAgKTtcbiAgY29uc3QgY3JlYXRlQ29tbWFuZENsaWNrSGFuZGxlciA9IHVzZUNhbGxiYWNrPFxuICAgIChjb21tYW5kOiBDb21tYW5kKSA9PiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD5cbiAgPihcbiAgICAoY29tbWFuZCkgPT4gKGV2ZW50KSA9PiB7XG4gICAgICBleGVjdXRlKGNvbW1hbmQsIHtcbiAgICAgICAgb3BlbkluTmV3VGFiOiBoYXNOZXdXaW5kb3dNb2RpZmllcihldmVudCksXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtleGVjdXRlXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEJ1dGxlckNvbnRhaW5lclxuICAgICAgb25DbGljaz17aGFuZGxlQ29udGFpbmVyQ2xpY2t9XG4gICAgICBkYXRhLXRlc3RpZD1cInF1aWNrLWFjY2Vzc1wiXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3NlYXJjaENvbnRhaW5lclJlZn1cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclN1cmZhY2V9O1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAke3VpS2l0RGVzaWduVG9rZW5zLmJvcmRlclJhZGl1czR9O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG5cbiAgICAgICAgICAvKiBvbmUgbW9yZSB0aGFuIGFwcC1iYXIgKDIwMDAwKSBhbmQgb25lIG1vcmUgdGhhbiB0aGUgb3ZlcmxheSAoMjAwMDEpICovXG4gICAgICAgICAgei1pbmRleDogMjAwMDI7XG4gICAgICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgICAgIG1hcmdpbjogNDBweCBhdXRvO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggMzBweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggLThweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAke3N0YXRlLmhhc05ldHdvcmtFcnJvclxuICAgICAgICAgICAgPyAnMCdcbiAgICAgICAgICAgIDogdWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICBgfVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBBdm9pZCBjbG9zaW5nIHdoZW4gdGhlIHNlYXJjaENvbnRhaW5lciBpdHNlbGYgaXMgY2xpY2tlZFxuICAgICAgICAgIC8vIElmIHdlIGRvbid0IGRvIHRoaXMsIHRoZW4gdGhlIG92ZXJsYXkgd2lsbCBjbG9zZSB3aGVuIGUuZy5cbiAgICAgICAgICAvLyB0aGUgc2VhcmNoIGlucHV0IGlzIGNsaWNrZWQuXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBgfVxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBodG1sRm9yPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ019O1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFNlYXJjaEljb24gY29sb3I9XCJuZXV0cmFsNjBcIiAvPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInF1aWNrLWFjY2Vzcy1zZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgcmVmPXtzZWFyY2hJbnB1dFJlZn1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpbnRsLmZvcm1hdE1lc3NhZ2UobWVzc2FnZXMuaW5wdXRQbGFjZWhvZGVyKX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ019XG4gICAgICAgICAgICAgICAgJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nTX0gJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU31cbiAgICAgICAgICAgICAgICAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdTfTtcbiAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbDYwfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYH1cbiAgICAgICAgICAgIHZhbHVlPXtzdGF0ZS5zZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgIG9uS2V5VXA9e2hhbmRsZUtleVVwfVxuICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwicXVpY2stYWNjZXNzLXNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICB7c3RhdGUuaXNMb2FkaW5nICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1N9O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHt1aUtpdERlc2lnblRva2Vucy5zcGFjaW5nU307XG4gICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0ZS5oYXNOZXR3b3JrRXJyb3IpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JFcnJvcn07XG4gICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICR7dWlLaXREZXNpZ25Ub2tlbnMuY29sb3JTdXJmYWNlfTtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHt1aUtpdERlc2lnblRva2Vucy5mb250U2l6ZTIwfTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICR7dWlLaXREZXNpZ25Ub2tlbnMuc3BhY2luZ1hzfTtcbiAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLm9mZmxpbmV9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChzdGF0ZS5yZXN1bHRzLmxlbmd0aCA9PT0gMCAmJiBzdGF0ZS5zZWFyY2hUZXh0LnRyaW0oKS5sZW5ndGggPiAwKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAke3VpS2l0RGVzaWduVG9rZW5zLmNvbG9yTmV1dHJhbH07XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHt1aUtpdERlc2lnblRva2Vucy5jb2xvclNvbGlkfTtcbiAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6ICR7dWlLaXREZXNpZ25Ub2tlbnMuZm9udFNpemUyMH07XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAke3VpS2l0RGVzaWduVG9rZW5zLnNwYWNpbmdYc307XG4gICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlcy5ub1Jlc3VsdHN9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBzdGF0ZS5yZXN1bHRzLm1hcCgoY29tbWFuZCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxCdXRsZXJDb21tYW5kXG4gICAgICAgICAgICAgIGtleT17Y29tbWFuZC5pZH1cbiAgICAgICAgICAgICAgY29tbWFuZD17Y29tbWFuZH1cbiAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c3RhdGUuc2VsZWN0ZWRSZXN1bHQgPT09IGluZGV4fVxuICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9e2NyZWF0ZUNvbW1hbmRNb3VzZUVudGVySGFuZGxlcihpbmRleCl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2NyZWF0ZUNvbW1hbmRDbGlja0hhbmRsZXIoY29tbWFuZCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpO1xuICAgICAgICB9KSgpfVxuICAgICAgPC9kaXY+XG4gICAgPC9CdXRsZXJDb250YWluZXI+XG4gICk7XG59O1xuQnV0bGVyLmRpc3BsYXlOYW1lID0gJ0J1dGxlcic7XG5cbmNvbnN0IEJ1dGxlcldpdGhBbmltYXRpb24gPSAocHJvcHM6IE9taXQ8UHJvcHMsICdjbGFzc05hbWVTaGFrZUFuaW1hdGlvbic+KSA9PiAoXG4gIDxDbGFzc05hbWVzPlxuICAgIHsoeyBjc3MgfSkgPT4gKFxuICAgICAgPEJ1dGxlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIGNsYXNzTmFtZVNoYWtlQW5pbWF0aW9uPXtjc3NgXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjQ1cztcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiAke3NoYWtlQW5pbWF0aW9ufTtcbiAgICAgICAgYH1cbiAgICAgIC8+XG4gICAgKX1cbiAgPC9DbGFzc05hbWVzPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQnV0bGVyV2l0aEFuaW1hdGlvbjtcbiJdfQ== */",
|
|
559
556
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
560
557
|
};
|
|
561
558
|
const Butler = props => {
|
|
@@ -11,7 +11,7 @@ import { useLocation } from 'react-router-dom';
|
|
|
11
11
|
import { LOGOUT_REASONS } from '@commercetools-frontend/constants';
|
|
12
12
|
import { u as useIsServedByProxy } from './use-is-served-by-proxy-a383da4b.esm.js';
|
|
13
13
|
import { g as getMcOrigin } from './get-mc-origin-fecfee07.esm.js';
|
|
14
|
-
import { R as RedirectToLogin } from './index-
|
|
14
|
+
import { R as RedirectToLogin } from './index-3c94f141.esm.js';
|
|
15
15
|
import { R as Redirector } from './redirector-76670a54.esm.js';
|
|
16
16
|
import { jsx } from '@emotion/react/jsx-runtime';
|
|
17
17
|
import '@commercetools-frontend/application-shell-connectors';
|
|
@@ -20,7 +20,7 @@ import '@babel/runtime-corejs3/core-js-stable/url';
|
|
|
20
20
|
import '@babel/runtime-corejs3/core-js-stable/instance/reverse';
|
|
21
21
|
import 'prop-types';
|
|
22
22
|
import 'react';
|
|
23
|
-
import './index-
|
|
23
|
+
import './index-a5d2d010.esm.js';
|
|
24
24
|
import '@babel/runtime-corejs3/core-js-stable/instance/reduce';
|
|
25
25
|
import '@babel/runtime-corejs3/core-js-stable/object/entries';
|
|
26
26
|
import '@babel/runtime-corejs3/core-js-stable/reflect/has';
|
package/dist/{redirect-to-logout-40570b13.cjs.prod.js → redirect-to-logout-bcf6d8a4.cjs.prod.js}
RENAMED
|
@@ -13,7 +13,7 @@ var reactRouterDom = require('react-router-dom');
|
|
|
13
13
|
var constants = require('@commercetools-frontend/constants');
|
|
14
14
|
var useIsServedByProxy = require('./use-is-served-by-proxy-480e8de8.cjs.prod.js');
|
|
15
15
|
var getMcOrigin = require('./get-mc-origin-8f7a578c.cjs.prod.js');
|
|
16
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
16
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-023e774c.cjs.prod.js');
|
|
17
17
|
var redirector = require('./redirector-01f35da8.cjs.prod.js');
|
|
18
18
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
19
19
|
require('@commercetools-frontend/application-shell-connectors');
|
|
@@ -22,7 +22,7 @@ require('@babel/runtime-corejs3/core-js-stable/url');
|
|
|
22
22
|
require('@babel/runtime-corejs3/core-js-stable/instance/reverse');
|
|
23
23
|
require('prop-types');
|
|
24
24
|
require('react');
|
|
25
|
-
require('./index-
|
|
25
|
+
require('./index-b76590b3.cjs.prod.js');
|
|
26
26
|
require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
27
27
|
require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
28
28
|
require('@babel/runtime-corejs3/core-js-stable/reflect/has');
|
package/dist/{redirect-to-logout-f7314e8b.cjs.dev.js → redirect-to-logout-d1b92009.cjs.dev.js}
RENAMED
|
@@ -13,7 +13,7 @@ var reactRouterDom = require('react-router-dom');
|
|
|
13
13
|
var constants = require('@commercetools-frontend/constants');
|
|
14
14
|
var useIsServedByProxy = require('./use-is-served-by-proxy-28f19a6f.cjs.dev.js');
|
|
15
15
|
var getMcOrigin = require('./get-mc-origin-a86dff20.cjs.dev.js');
|
|
16
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
16
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-39f8c188.cjs.dev.js');
|
|
17
17
|
var redirector = require('./redirector-98dfc5f0.cjs.dev.js');
|
|
18
18
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
19
19
|
require('@commercetools-frontend/application-shell-connectors');
|
|
@@ -22,7 +22,7 @@ require('@babel/runtime-corejs3/core-js-stable/url');
|
|
|
22
22
|
require('@babel/runtime-corejs3/core-js-stable/instance/reverse');
|
|
23
23
|
require('prop-types');
|
|
24
24
|
require('react');
|
|
25
|
-
require('./index-
|
|
25
|
+
require('./index-0459c0f4.cjs.dev.js');
|
|
26
26
|
require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
27
27
|
require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
28
28
|
require('@babel/runtime-corejs3/core-js-stable/reflect/has');
|
|
@@ -13,12 +13,12 @@ var ReactDOM = require('react-dom');
|
|
|
13
13
|
var reactIntl = require('react-intl');
|
|
14
14
|
var reactRedux = require('react-redux');
|
|
15
15
|
var LoadingSpinner = require('@commercetools-uikit/loading-spinner');
|
|
16
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
16
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-023e774c.cjs.prod.js');
|
|
17
17
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
18
18
|
require('prop-types');
|
|
19
19
|
require('react');
|
|
20
20
|
require('react-router-dom');
|
|
21
|
-
require('./index-
|
|
21
|
+
require('./index-b76590b3.cjs.prod.js');
|
|
22
22
|
require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
23
23
|
require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
24
24
|
require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
|
@@ -13,12 +13,12 @@ var ReactDOM = require('react-dom');
|
|
|
13
13
|
var reactIntl = require('react-intl');
|
|
14
14
|
var reactRedux = require('react-redux');
|
|
15
15
|
var LoadingSpinner = require('@commercetools-uikit/loading-spinner');
|
|
16
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
16
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-39f8c188.cjs.dev.js');
|
|
17
17
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
18
18
|
require('prop-types');
|
|
19
19
|
require('react');
|
|
20
20
|
require('react-router-dom');
|
|
21
|
-
require('./index-
|
|
21
|
+
require('./index-0459c0f4.cjs.dev.js');
|
|
22
22
|
require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
23
23
|
require('@babel/runtime-corejs3/core-js-stable/instance/reduce');
|
|
24
24
|
require('@babel/runtime-corejs3/core-js-stable/object/entries');
|
package/dist/{requests-in-flight-loader-094596d8.esm.js → requests-in-flight-loader-c2f75764.esm.js}
RENAMED
|
@@ -11,12 +11,12 @@ import ReactDOM from 'react-dom';
|
|
|
11
11
|
import { defineMessages, FormattedMessage } from 'react-intl';
|
|
12
12
|
import { useSelector } from 'react-redux';
|
|
13
13
|
import LoadingSpinner from '@commercetools-uikit/loading-spinner';
|
|
14
|
-
import { c as REQUESTS_IN_FLIGHT_LOADER_DOM_ID } from './index-
|
|
14
|
+
import { c as REQUESTS_IN_FLIGHT_LOADER_DOM_ID } from './index-3c94f141.esm.js';
|
|
15
15
|
import { jsx } from '@emotion/react/jsx-runtime';
|
|
16
16
|
import 'prop-types';
|
|
17
17
|
import 'react';
|
|
18
18
|
import 'react-router-dom';
|
|
19
|
-
import './index-
|
|
19
|
+
import './index-a5d2d010.esm.js';
|
|
20
20
|
import '@babel/runtime-corejs3/helpers/slicedToArray';
|
|
21
21
|
import '@babel/runtime-corejs3/core-js-stable/instance/reduce';
|
|
22
22
|
import '@babel/runtime-corejs3/core-js-stable/object/entries';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _styled = require('@emotion/styled/base');
|
|
4
4
|
var reactRouterDom = require('react-router-dom');
|
|
5
5
|
var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
|
|
6
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
6
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-023e774c.cjs.prod.js');
|
|
7
7
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
8
8
|
|
|
9
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _styled = require('@emotion/styled/base');
|
|
4
4
|
var reactRouterDom = require('react-router-dom');
|
|
5
5
|
var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
|
|
6
|
-
var dist_commercetoolsFrontendApplicationShell = require('./index-
|
|
6
|
+
var dist_commercetoolsFrontendApplicationShell = require('./index-39f8c188.cjs.dev.js');
|
|
7
7
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
8
8
|
|
|
9
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
@@ -21,8 +21,7 @@ const Container = /*#__PURE__*/_styled__default["default"]("div", process.env.NO
|
|
|
21
21
|
styles: "width:200px;text-align:left;margin:0 auto"
|
|
22
22
|
} : {
|
|
23
23
|
name: "no8ssc",
|
|
24
|
-
styles: "width:200px;text-align:left;margin:0 auto",
|
|
25
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlcnZpY2UtcGFnZS1wcm9qZWN0LXN3aXRjaGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTNEIiLCJmaWxlIjoic2VydmljZS1wYWdlLXByb2plY3Qtc3dpdGNoZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyB1c2VBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCBQcm9qZWN0U3dpdGNoZXIgZnJvbSAnLi4vcHJvamVjdC1zd2l0Y2hlcic7XG5cbnR5cGUgUGFyYW1zID0ge1xuICBwcm9qZWN0S2V5OiBzdHJpbmc7XG59O1xuXG5jb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjAwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbjogMCBhdXRvO1xuYDtcblxuZXhwb3J0IGNvbnN0IFNlcnZpY2VQYWdlUHJvamVjdFN3aXRjaGVyID0gKCkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSB1c2VQYXJhbXM8UGFyYW1zPigpO1xuICBjb25zdCBudW1iZXJPZlByb2plY3RzID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiAoY29udGV4dC51c2VyICYmIGNvbnRleHQudXNlci5wcm9qZWN0cy50b3RhbCkgfHwgMFxuICApO1xuICBpZiAobnVtYmVyT2ZQcm9qZWN0cyA9PT0gMCkgcmV0dXJuIG51bGw7XG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lcj5cbiAgICAgIDxQcm9qZWN0U3dpdGNoZXJcbiAgICAgICAgLy8gSW4gdGhpcyBjYXNlIGl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjaGVjayBpZiB0aGUgYHByb2plY3RLZXlgIHBhcmFtXG4gICAgICAgIC8vIGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIHByb2plY3RzLiBJbiBzdWNoIGNhc2VcbiAgICAgICAgLy8gdGhlIGRyb3Bkb3duIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgYnV0IG5vIHByb2plY3Qgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICAgICAgLy8gVGhpcyBpcyBmaW5lIGJlY2FzZSB0aGUgdXNlciBoYXMgc3RpbGwgdGhlIHBvc3NpYmlsaXR5IHRvIFwic3dpdGNoXCJcbiAgICAgICAgLy8gdG8gYSBwcm9qZWN0LlxuICAgICAgICBwcm9qZWN0S2V5PXtwYXJhbXMucHJvamVjdEtleX1cbiAgICAgIC8+XG4gICAgPC9Db250YWluZXI+XG4gICk7XG59O1xuU2VydmljZVBhZ2VQcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnU2VydmljZVBhZ2VQcm9qZWN0U3dpdGNoZXInO1xuXG5leHBvcnQgZGVmYXVsdCBTZXJ2aWNlUGFnZVByb2plY3RTd2l0Y2hlcjtcbiJdfQ== */",
|
|
24
|
+
styles: "width:200px;text-align:left;margin:0 auto/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlcnZpY2UtcGFnZS1wcm9qZWN0LXN3aXRjaGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTNEIiLCJmaWxlIjoic2VydmljZS1wYWdlLXByb2plY3Qtc3dpdGNoZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyB1c2VBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCBQcm9qZWN0U3dpdGNoZXIgZnJvbSAnLi4vcHJvamVjdC1zd2l0Y2hlcic7XG5cbnR5cGUgUGFyYW1zID0ge1xuICBwcm9qZWN0S2V5OiBzdHJpbmc7XG59O1xuXG5jb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjAwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbjogMCBhdXRvO1xuYDtcblxuZXhwb3J0IGNvbnN0IFNlcnZpY2VQYWdlUHJvamVjdFN3aXRjaGVyID0gKCkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSB1c2VQYXJhbXM8UGFyYW1zPigpO1xuICBjb25zdCBudW1iZXJPZlByb2plY3RzID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiAoY29udGV4dC51c2VyICYmIGNvbnRleHQudXNlci5wcm9qZWN0cy50b3RhbCkgfHwgMFxuICApO1xuICBpZiAobnVtYmVyT2ZQcm9qZWN0cyA9PT0gMCkgcmV0dXJuIG51bGw7XG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lcj5cbiAgICAgIDxQcm9qZWN0U3dpdGNoZXJcbiAgICAgICAgLy8gSW4gdGhpcyBjYXNlIGl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjaGVjayBpZiB0aGUgYHByb2plY3RLZXlgIHBhcmFtXG4gICAgICAgIC8vIGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIHByb2plY3RzLiBJbiBzdWNoIGNhc2VcbiAgICAgICAgLy8gdGhlIGRyb3Bkb3duIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgYnV0IG5vIHByb2plY3Qgd2lsbCBiZSBzZWxlY3RlZC5cbiAgICAgICAgLy8gVGhpcyBpcyBmaW5lIGJlY2FzZSB0aGUgdXNlciBoYXMgc3RpbGwgdGhlIHBvc3NpYmlsaXR5IHRvIFwic3dpdGNoXCJcbiAgICAgICAgLy8gdG8gYSBwcm9qZWN0LlxuICAgICAgICBwcm9qZWN0S2V5PXtwYXJhbXMucHJvamVjdEtleX1cbiAgICAgIC8+XG4gICAgPC9Db250YWluZXI+XG4gICk7XG59O1xuU2VydmljZVBhZ2VQcm9qZWN0U3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnU2VydmljZVBhZ2VQcm9qZWN0U3dpdGNoZXInO1xuXG5leHBvcnQgZGVmYXVsdCBTZXJ2aWNlUGFnZVByb2plY3RTd2l0Y2hlcjtcbiJdfQ== */",
|
|
26
25
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
27
26
|
});
|
|
28
27
|
const ServicePageProjectSwitcher = () => {
|