@commercetools-frontend/application-shell 27.8.0 → 27.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commercetools-frontend-application-shell.cjs.dev.js +1 -1
- package/dist/commercetools-frontend-application-shell.cjs.prod.js +1 -1
- package/dist/commercetools-frontend-application-shell.esm.js +1 -1
- package/dist/{custom-view-dev-host-09ad216c.cjs.prod.js → custom-view-dev-host-48d2bc48.cjs.prod.js} +1 -1
- package/dist/{custom-view-dev-host-3652a0d6.esm.js → custom-view-dev-host-856878ae.esm.js} +1 -1
- package/dist/{custom-view-dev-host-fccf2c99.cjs.dev.js → custom-view-dev-host-a506643d.cjs.dev.js} +1 -1
- package/dist/{index-d0c30fac.cjs.prod.js → index-2e1b3109.cjs.prod.js} +34 -27
- package/dist/{index-2856f98e.esm.js → index-8202b8ac.esm.js} +45 -34
- package/dist/{index-70e88ad7.cjs.dev.js → index-c4358b17.cjs.dev.js} +44 -33
- package/dist/{oidc-callback-2d5be737.esm.js → oidc-callback-51b6c2c0.esm.js} +1 -1
- package/dist/{oidc-callback-60c1e8e8.cjs.prod.js → oidc-callback-cd36b191.cjs.prod.js} +1 -1
- package/dist/{oidc-callback-d8397df9.cjs.dev.js → oidc-callback-d8a01652.cjs.dev.js} +1 -1
- package/dist/{project-container-31a4f3c6.cjs.dev.js → project-container-289c1867.cjs.dev.js} +5 -5
- package/dist/{project-container-08fbe4b7.esm.js → project-container-cba9e7cb.esm.js} +5 -5
- package/dist/{project-container-e61a39a2.cjs.prod.js → project-container-ebc714c6.cjs.prod.js} +5 -5
- package/dist/{project-expired-324758a8.cjs.dev.js → project-expired-149df88a.cjs.dev.js} +2 -2
- package/dist/{project-expired-97aa9779.cjs.prod.js → project-expired-8a005b06.cjs.prod.js} +2 -2
- package/dist/{project-expired-bb3b8866.esm.js → project-expired-bcaaefdd.esm.js} +2 -2
- package/dist/{project-not-found-d2857df2.cjs.dev.js → project-not-found-3d54a0a9.cjs.dev.js} +2 -2
- package/dist/{project-not-found-4190bacf.cjs.prod.js → project-not-found-5289edf3.cjs.prod.js} +2 -2
- package/dist/{project-not-found-569f8569.esm.js → project-not-found-a816829d.esm.js} +2 -2
- package/dist/{project-not-initialized-fe8d8e96.esm.js → project-not-initialized-6f782586.esm.js} +2 -2
- package/dist/{project-not-initialized-c84c85da.cjs.prod.js → project-not-initialized-e3aa75cc.cjs.prod.js} +2 -2
- package/dist/{project-not-initialized-d60bab15.cjs.dev.js → project-not-initialized-f0debef3.cjs.dev.js} +2 -2
- package/dist/{project-suspended-4bb66583.esm.js → project-suspended-596a4e02.esm.js} +2 -2
- package/dist/{project-suspended-18333595.cjs.prod.js → project-suspended-d7af8cd7.cjs.prod.js} +2 -2
- package/dist/{project-suspended-f4900a38.cjs.dev.js → project-suspended-dbb8a967.cjs.dev.js} +2 -2
- package/dist/{redirect-to-logout-31d43a03.cjs.prod.js → redirect-to-logout-29e049ae.cjs.prod.js} +1 -1
- package/dist/{redirect-to-logout-0646ed18.cjs.dev.js → redirect-to-logout-6b536a7a.cjs.dev.js} +1 -1
- package/dist/{redirect-to-logout-0e2cfb93.esm.js → redirect-to-logout-e3a515f4.esm.js} +1 -1
- package/dist/{requests-in-flight-loader-17158914.esm.js → requests-in-flight-loader-22c2de59.esm.js} +1 -1
- package/dist/{requests-in-flight-loader-ab4d59f3.cjs.prod.js → requests-in-flight-loader-529103d5.cjs.prod.js} +1 -1
- package/dist/{requests-in-flight-loader-fb5d3f6f.cjs.dev.js → requests-in-flight-loader-ae82cf37.cjs.dev.js} +1 -1
- package/dist/{service-page-project-switcher-e221eba8.cjs.prod.js → service-page-project-switcher-baa2016f.cjs.prod.js} +1 -1
- package/dist/{service-page-project-switcher-cb63edbf.esm.js → service-page-project-switcher-c0306e45.esm.js} +1 -1
- package/dist/{service-page-project-switcher-a4d1d6de.cjs.dev.js → service-page-project-switcher-e339dd8e.cjs.dev.js} +1 -1
- package/package.json +16 -16
|
@@ -17,7 +17,7 @@ import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object
|
|
|
17
17
|
import { keyframes, css, Global } from '@emotion/react';
|
|
18
18
|
import { ProjectStamp, themesOverrides, PortalsContainer, PageUnauthorized, ModalPageTopBar } from '@commercetools-frontend/application-components';
|
|
19
19
|
import { useMcQuery, oidcStorage, useApplicationContext, selectProjectKeyFromUrl, selectUserLanguageFromStorage, ApplicationContextProvider, createApolloClient, setCachedApolloClient, CustomViewContextProvider } from '@commercetools-frontend/application-shell-connectors';
|
|
20
|
-
import { STORAGE_KEYS, GRAPHQL_TARGETS, featureFlags, LOGOUT_REASONS, DOMAINS, CUSTOM_VIEW_HOST_ENTRY_POINT_URI_PATH, CUSTOM_VIEWS_EVENTS_NAMES, CUSTOM_VIEWS_EVENTS_META } from '@commercetools-frontend/constants';
|
|
20
|
+
import { STORAGE_KEYS, GRAPHQL_TARGETS, featureFlags, LOGOUT_REASONS, DOMAINS, MC_MAIN_CONTAINER_PORTAL_ID, CUSTOM_VIEW_HOST_ENTRY_POINT_URI_PATH, CUSTOM_VIEWS_EVENTS_NAMES, CUSTOM_VIEWS_EVENTS_META } from '@commercetools-frontend/constants';
|
|
21
21
|
import { AsyncLocaleData } from '@commercetools-frontend/i18n';
|
|
22
22
|
import { NotificationsList } from '@commercetools-frontend/react-notifications';
|
|
23
23
|
import { reportErrorToSentry, SentryUserTracker, boot } from '@commercetools-frontend/sentry';
|
|
@@ -70,9 +70,9 @@ import _someInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instanc
|
|
|
70
70
|
import { showUnexpectedErrorNotification } from '@commercetools-frontend/actions-global';
|
|
71
71
|
|
|
72
72
|
// NOTE: This string will be replaced on build time with the package version.
|
|
73
|
-
var version = "27.
|
|
73
|
+
var version = "27.9.0";
|
|
74
74
|
|
|
75
|
-
const RequestsInFlightLoader = /*#__PURE__*/lazy(() => import('./requests-in-flight-loader-
|
|
75
|
+
const RequestsInFlightLoader = /*#__PURE__*/lazy(() => import('./requests-in-flight-loader-22c2de59.esm.js' /* webpackChunkName: "requests-in-flight-loader" */));
|
|
76
76
|
|
|
77
77
|
// Attempt to load the `projectKey` from localStorage
|
|
78
78
|
function selectProjectKeyFromLocalStorage() {
|
|
@@ -589,9 +589,9 @@ FetchUser.displayName = 'FetchUser';
|
|
|
589
589
|
|
|
590
590
|
const Navbar = /*#__PURE__*/lazy(() => import('./navbar-9eb6c972.esm.js' /* webpackChunkName: "navbar" */));
|
|
591
591
|
|
|
592
|
-
const ProjectContainer = /*#__PURE__*/lazy(() => import('./project-container-
|
|
592
|
+
const ProjectContainer = /*#__PURE__*/lazy(() => import('./project-container-cba9e7cb.esm.js' /* webpackChunkName: "project-container" */));
|
|
593
593
|
|
|
594
|
-
const RedirectToLogout = /*#__PURE__*/lazy(() => import('./redirect-to-logout-
|
|
594
|
+
const RedirectToLogout = /*#__PURE__*/lazy(() => import('./redirect-to-logout-e3a515f4.esm.js' /* webpackChunkName: "redirect-to-logout" */));
|
|
595
595
|
|
|
596
596
|
const RedirectToProjectCreate = /*#__PURE__*/lazy(() => import('./redirect-to-project-create-9249e554.esm.js' /* webpackChunkName: "redirect-to-project-create" */));
|
|
597
597
|
|
|
@@ -741,7 +741,7 @@ const MainContainer = /*#__PURE__*/_styled("main", process.env.NODE_ENV === "pro
|
|
|
741
741
|
styles: "grid-column:2/3;grid-row:3/4;min-width:0;overflow-x:hidden;overflow-y:scroll;display:flex;flex-direction:column;position:relative"
|
|
742
742
|
} : {
|
|
743
743
|
name: "evthls",
|
|
744
|
-
styles: "grid-column:2/3;grid-row:3/4;min-width:0;overflow-x:hidden;overflow-y:scroll;display:flex;flex-direction:column;position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJFd0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUywgTkFWQkFSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5IH0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGdldFByZXZpb3VzUHJvamVjdEtleSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBBcHBCYXIgZnJvbSAnLi4vYXBwLWJhcic7XG5pbXBvcnQgQXBwbGljYXRpb25Mb2FkZXIgZnJvbSAnLi4vYXBwbGljYXRpb24tbG9hZGVyJztcbmltcG9ydCB7IGdldEJyb3dzZXJMb2NhbGUgfSBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1wcm92aWRlci91dGlscyc7XG5pbXBvcnQgQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyLmFzeW5jJztcbmltcG9ydCBDb25maWd1cmVJbnRsUHJvdmlkZXIgZnJvbSAnLi4vY29uZmlndXJlLWludGwtcHJvdmlkZXInO1xuaW1wb3J0IEVycm9yQXBvbG9naXplciBmcm9tICcuLi9lcnJvci1hcG9sb2dpemVyJztcbmltcG9ydCBGZXRjaFByb2plY3QgZnJvbSAnLi4vZmV0Y2gtcHJvamVjdCc7XG5pbXBvcnQgRmV0Y2hVc2VyIGZyb20gJy4uL2ZldGNoLXVzZXInO1xuaW1wb3J0IE5hdkJhciBmcm9tICcuLi9uYXZiYXInO1xuaW1wb3J0IFByb2plY3RDb250YWluZXIgZnJvbSAnLi4vcHJvamVjdC1jb250YWluZXInO1xuaW1wb3J0IFJlZGlyZWN0VG9Mb2dvdXQgZnJvbSAnLi4vcmVkaXJlY3QtdG8tbG9nb3V0JztcbmltcG9ydCBSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSBmcm9tICcuLi9yZWRpcmVjdC10by1wcm9qZWN0LWNyZWF0ZSc7XG5pbXBvcnQgUmVxdWVzdHNJbkZsaWdodExvYWRlciBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyJztcbmltcG9ydCBSb3V0ZUNhdGNoQWxsIGZyb20gJy4uL3JvdXRlLWNhdGNoLWFsbCc7XG5pbXBvcnQgU2V0dXBGbG9wRmxpcFByb3ZpZGVyIGZyb20gJy4uL3NldHVwLWZsb3AtZmxpcC1wcm92aWRlcic7XG5pbXBvcnQgVGhlbWVTd2l0Y2hlciBmcm9tICcuLi90aGVtZS1zd2l0Y2hlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPzogYm9vbGVhbjtcbiAgcmVuZGVyPzogKCkgPT4gSlNYLkVsZW1lbnQ7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcblxuY29uc3QgZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IgPSAoZ3JhcGhRTEVycm9yczogQXBvbGxvRXJyb3JbJ2dyYXBoUUxFcnJvcnMnXSkgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSAmJlxuICAgICAgZ3FsRXJyb3IuZXh0ZW5zaW9ucy5jb2RlID09PSAnVU5BVVRIRU5USUNBVEVEJ1xuICApO1xuY29uc3QgZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSAoXG4gIGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ11cbikgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLm1lc3NhZ2UgJiZcbiAgICAgIC8vIE5PVEU6IFRoZSBDVFAgQVBJIGRvZXMgbm90IHByb3ZpZGUgYW4gZXJyb3IgY29kZSBpbiB0aGlzIGNhc2UuXG4gICAgICBncWxFcnJvci5tZXNzYWdlLmluY2x1ZGVzKCd3YXMgbm90IGZvdW5kLicpXG4gICk7XG5cbmV4cG9ydCBjb25zdCBNYWluQ29udGFpbmVyID0gc3R5bGVkLm1haW5gXG4gIGdyaWQtY29sdW1uOiAyLzM7XG4gIGdyaWQtcm93OiAzLzQ7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gIH0+KHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmLFxuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxGZXRjaFVzZXI+XG4gICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdVc2VyLCB1c2VyLCBlcnJvciB9KSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIC8vIEluIGNhc2UgdGhlcmUgaXMgYW4gdW5hdXRob3JpemVkIGVycm9yLCB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZVxuICAgICAgICAgIGlmIChlcnJvci5ncmFwaFFMRXJyb3JzICYmIEFycmF5LmlzQXJyYXkoZXJyb3IuZ3JhcGhRTEVycm9ycykpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VuYXV0aG9yaXplZEVycm9yID0gZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvciA9IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IgfHwgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgbGV0IGxvZ291dFJlYXNvbjpcbiAgICAgICAgICAgICAgICB8ICh0eXBlb2YgTE9HT1VUX1JFQVNPTlMpW2tleW9mIHR5cGVvZiBMT0dPVVRfUkVBU09OU11cbiAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLlVOQVVUSE9SSVpFRDtcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuREVMRVRFRDtcbiAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvTG9nb3V0IHJlYXNvbj17bG9nb3V0UmVhc29ufSAvPjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU2luY2Ugd2UgZG8gbm90IGtub3cgdGhlIGxvY2FsZSBvZiB0aGUgdXNlciwgd2UgcGljayBpdCBmcm9tIHRoZVxuICAgICAgICAgIC8vIHVzZXIncyBicm93c2VyIHRvIGF0dGVtcHQgdG8gbWF0Y2ggdGhlIGxhbmd1YWdlIGZvciB0aGUgY29ycmVjdCB0cmFuc2xhdGlvbnMuXG5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaXMgY3Qgc3RhZmYsIGFuZCBpZiBzbyBnZXQgbGFuZ3VhZ2Ugc2VsZWN0ZWQgdmlhIHN0YWZmIGJhciBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgY29uc3Qgc3RhZmZCYXJMYW5ndWFnZSA9XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ2NvbW1lcmNldG9vbHMnIHx8XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ21haWxvc2F1cidcbiAgICAgICAgICAgID8gc2VsZWN0VXNlckxhbmd1YWdlRnJvbVN0b3JhZ2UoKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ10gfCB1bmRlZmluZWQgPSB1c2VyXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgICAgIC8vIHNldCB0aGUgc3RhZmYgYmFyIGxhbmd1YWdlIGlmIGFwcGxpY2FibGVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IHN0YWZmQmFyTGFuZ3VhZ2UgPz8gdXNlci5sYW5ndWFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e25vcm1hbGl6ZWRVc2VyPy5sYW5ndWFnZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nTG9jYWxlRGF0YSwgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlclxuICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcGFzcyB0aGUgbGFuZ3VhZ2UgYXMgbG9uZyBhcyB0aGUgbG9jYWxlIGRhdGFcbiAgICAgICAgICAgICAgICAgIC8vIGlzIG5vdCBsb2FkZWQuXG4gICAgICAgICAgICAgICAgICB7Li4uKGlzTG9hZGluZ0xvY2FsZURhdGEgPyB7fSA6IHsgbG9jYWxlLCBtZXNzYWdlcyB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U2V0dXBGbG9wRmxpcFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBsb2NhbGU9e2xvY2FsZSA/PyAnZW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17bm9ybWFsaXplZFVzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICcyLzMnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsPXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMi80O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTG9hZGluZyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdVc2VyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdMb2NhbGVEYXRhIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdQcm9qZWN0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbG9jYWxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvamVjdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25NZW51SXRlbUNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Mb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17bm90aWZpY2F0aW9uc1BhZ2VSZWZ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5QQUdFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuU0lERX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSBiZWNhdXNlIHdlIGhhdmUgYW4gaW50ZXJtZWRpYXJ5IDxkaXY+IHdyYXBwaW5nIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Vmlldz4gY29tcG9uZW50IHRoYXQgaXMgdXNlZCB0byB3cmFwIGV2ZXJ5IGNvbnRlbnQtdmlldy4gVGhpcyBpbnRlcm1lZGlhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gaXMgc29sZWx5IHVzZWQgZm9yIGFkZGluZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgY29udGVudC12aWV3LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3dldmVyLCB0aGlzIGNvdWxkIGJlIGRvbmUgYnkgcGFzc2luZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgPFZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBsZXQgaXQgZG8gdGhlIGxheW91dCwgc28gd2UgY2FuIGF2b2lkIGxheWluZyBvdXIgZnJvbSB0aGUgb3V0c2lkZSBhcyB3ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbyBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAqOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvcnRhbHNDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2xheW91dFJlZnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFRvcD17RElNRU5TSU9OUy5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE5BVkJBUi53aWR0aExlZnROYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvbldoZW5FeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9eygpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFub3JtYWxpemVkVXNlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxBcHBsaWNhdGlvbkxvYWRlciAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNQcm9qZWN0S2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Qcm9qZWN0Q3JlYXRlIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0IHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBlZmZlY3RpdmVseSByZW5kZXJzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hpbGRyZW4sIHdoaWNoIGlzIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lmaWMgcGFydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXtwcm9wcy5yZW5kZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUHJvamVjdENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3dpdGNoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L01haW5Db250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uU2hlbGxTcGxpdHRlcj5cbiAgICAgICAgICAgICAgICAgIDwvU2V0dXBGbG9wRmxpcFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvQ29uZmlndXJlSW50bFByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgKTtcbiAgICAgIH19XG4gICAgPC9GZXRjaFVzZXI+XG4gICk7XG59O1xuQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQuZGlzcGxheU5hbWUgPSAnQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQnO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZDtcbiJdfQ== */",
|
|
744
|
+
styles: "grid-column:2/3;grid-row:3/4;min-width:0;overflow-x:hidden;overflow-y:scroll;display:flex;flex-direction:column;position:relative/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFd0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgRE9NQUlOUyxcbiAgTE9HT1VUX1JFQVNPTlMsXG4gIE1DX01BSU5fQ09OVEFJTkVSX1BPUlRBTF9JRCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEFzeW5jTG9jYWxlRGF0YVByb3BzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBBc3luY0xvY2FsZURhdGEgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNMaXN0IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcmVhY3Qtbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge1xuICByZXBvcnRFcnJvclRvU2VudHJ5LFxuICBTZW50cnlVc2VyVHJhY2tlcixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCB7IERJTUVOU0lPTlMsIE5BVkJBUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci5hc3luYyc7XG5pbXBvcnQgQ29uZmlndXJlSW50bFByb3ZpZGVyIGZyb20gJy4uL2NvbmZpZ3VyZS1pbnRsLXByb3ZpZGVyJztcbmltcG9ydCBFcnJvckFwb2xvZ2l6ZXIgZnJvbSAnLi4vZXJyb3ItYXBvbG9naXplcic7XG5pbXBvcnQgRmV0Y2hQcm9qZWN0IGZyb20gJy4uL2ZldGNoLXByb2plY3QnO1xuaW1wb3J0IEZldGNoVXNlciBmcm9tICcuLi9mZXRjaC11c2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBQcm9qZWN0Q29udGFpbmVyIGZyb20gJy4uL3Byb2plY3QtY29udGFpbmVyJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuXG50eXBlIFRBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRpb25Qcm9wcyA9IHtcbiAgZmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBkZWZhdWx0RmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBhcHBsaWNhdGlvbk1lc3NhZ2VzOiBUQXN5bmNMb2NhbGVEYXRhUHJvcHNbJ2FwcGxpY2F0aW9uTWVzc2FnZXMnXTtcbiAgb25NZW51SXRlbUNsaWNrPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMi8zO1xuICBncmlkLXJvdzogMy80O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuXG4gICAgICAgICAgY29uc3QgdXNlckxvY2FsZSA9IGdldEJyb3dzZXJMb2NhbGUod2luZG93KTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGN0IHN0YWZmLCBhbmQgaWYgc28gZ2V0IGxhbmd1YWdlIHNlbGVjdGVkIHZpYSBzdGFmZiBiYXIgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAgICAgIGNvbnN0IHN0YWZmQmFyTGFuZ3VhZ2UgPVxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdjb21tZXJjZXRvb2xzJyB8fFxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdtYWlsb3NhdXInXG4gICAgICAgICAgICA/IHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlKClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVc2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddIHwgdW5kZWZpbmVkID0gdXNlclxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgICAvLyBzZXQgdGhlIHN0YWZmIGJhciBsYW5ndWFnZSBpZiBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBzdGFmZkJhckxhbmd1YWdlID8/IHVzZXIubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgey8qXG4gICAgICAgICAgICBOT1RFOiB3ZSBkbyBub3Qgd2FudCB0byBsb2FkIHRoZSBsb2NhbGUgZGF0YSBhcyBsb25nIGFzIHdlIGRvIG5vdFxuICAgICAgICAgICAga25vdyB0aGUgdXNlciBzZXR0aW5nLiBUaGlzIGlzIGltcG9ydGFudCBpbiBvcmRlciB0byBhdm9pZCBmbGFzaGluZ1xuICAgICAgICAgICAgb2YgdHJhbnNsYXRlZCBjb250ZW50IG9uIHN1YnNlcXVlbnQgcmUtcmVuZGVycy5cbiAgICAgICAgICAgIFRoZXJlZm9yZSwgYXMgbG9uZyBhcyB0aGVyZSBpcyBubyBsb2NhbGUsIHRoZSBjaGlsZHJlbiBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhlXG4gICAgICAgICAgICBgaXNMb2FkaW5nYCBwcm9wIHRvIGRlY2lkZSB3aGF0IHRvIHJlbmRlci5cbiAgICAgICAgICAqL31cbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXtub3JtYWxpemVkVXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvblNoZWxsU3BsaXR0ZXIgbG9jYWxlPXtsb2NhbGUgPz8gJ2VuJ30+XG4gICAgICAgICAgICAgICAgICAgICAgPFRoZW1lU3dpdGNoZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB7LyogTk9URTogdGhlIHJlcXVlc3RzIGluIGZsaWdodCBsb2FkZXIgd2lsbCByZW5kZXIgYSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgc3Bpbm5lciBpbnRvIHRoZSBBcHBCYXIuICovfVxuICAgICAgICAgICAgICAgICAgICAgIDxSZXF1ZXN0c0luRmxpZ2h0TG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbnRyeVVzZXJUcmFja2VyIHVzZXI9e25vcm1hbGl6ZWRVc2VyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25vdGlmaWNhdGlvbnNHbG9iYWxSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYWJvdmUtdG9wLW5hdmlnYXRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLkdMT0JBTH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogJzIvMyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDIvNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgPE5hdkJhcj4gc2hvdWxkIG9ubHkgYmUgcmVuZGVyZWQgd2l0aGluIGEgcHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRleHQsIHRoZXJlZm9yZSB3aGVuIHRoZXJlIGlzIGEgYHByb2plY3RLZXlgLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGBwcm9qZWN0S2V5YCBpbiB0aGUgVVJMIChlLmcuIGAvYWNjb3VudGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZXMpLCB3ZSBkb24ndCByZW5kZXIgaXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogd2UgYWxzbyBcImNhY2hlXCIgdGhlIGBwcm9qZWN0S2V5YCBpbiBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHRvIFwicmUtaHlkcmF0ZVwiIHRoZSBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2NhdGlvbiAoZS5nIHdoZW4geW91IGdvIHRvIGAvYCwgdGhlcmUgc2hvdWxkIGJlIGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byBgLzpwcm9qZWN0S2V5YCkuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbHkgb24gdGhlIHZhbHVlIGluIGxvY2FsU3RvcmFnZSB0byBkZXRlcm1pbmUgd2hpY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgcHJvamVjdEtleWAgaXMgY3VycmVudGx5IHVzZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0S2V5RnJvbVVybCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGZXRjaFByb2plY3QgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LCBwcm9qZWN0IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTkFWQkFSLndpZHRoTGVmdE5hdmlnYXRpb25XaGVuRXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXsoKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89XCIvYWNjb3VudC9wcm9maWxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPVwiL2FjY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGByZW5kZXJgIGZ1bmN0aW9uLCB3ZSBhc3N1bWUgaXQncyBvbmUgb2YgdHdvIGNhc2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMS4gVGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IHVzZSBgY2hpbGRyZW5gIGFuZCB0aGVyZWZvcmUgaW1wbGVtZW50cyB0aGUgcm91dGVzIGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIDxSb3V0ZUNhdGNoQWxsPiAodGhpcyBpcyB0aGUgXCJsZWdhY3lcIiBiZWhhdmlvcikuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAyLiBJdCdzIHRoZSBhY2NvdW50IGFwcGxpY2F0aW9uLCB3aGljaCBhbHdheXMgdXNlcyBgcmVuZGVyYCBhbmQgdGhlcmVmb3JlIHNob3VsZCByZW5kZXIgYXMgbm9ybWFsLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGBjaGlsZHJlbmAgZnVuY3Rpb24sIHdlIGNhbiBhbHdheXMgYXNzdW1lIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGl0J3MgYSBub3JtYWwgQ3VzdG9tIEFwcGxpY2F0aW9uIGFuZCB0aGF0IGl0IHNob3VsZCB0cmlnZ2VyIGEgZm9yY2UgcmVsb2FkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5yZW5kZXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+e3Byb3BzLnJlbmRlcigpfTwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlQ2F0Y2hBbGwgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBQcm9qZWN0IHJvdXRlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXt0cnVlfSBwYXRoPVwiL1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRVc2VyPy5kZWZhdWx0UHJvamVjdEtleSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTk9URTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgaGFzIG5vdCBiZWVuIGxvYWRlZCBhIGxvYWRpbmcgc3Bpbm5lciBpcyBzaG93bi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIG5vdCB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG5vciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSB1c2VyIHdpbGwgYmUgcHJvbXB0ZWQgdG8gY3JlYXRlIG9uZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgb3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWRpcmVjdCB0byB0aGF0IHByb2plY3QuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbm9ybWFsaXplZFVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz17YC8ke3ByZXZpb3VzUHJvamVjdEtleX1gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e2ZhbHNlfSBwYXRoPVwiLzpwcm9qZWN0S2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByb2plY3RDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17TUNfTUFJTl9DT05UQUlORVJfUE9SVEFMX0lEfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyPlxuICAgICAgICAgICAgICAgICAgPC9TZXR1cEZsb3BGbGlwUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0FzeW5jTG9jYWxlRGF0YT5cbiAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0ZldGNoVXNlcj5cbiAgKTtcbn07XG5BcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZC5kaXNwbGF5TmFtZSA9ICdBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZCc7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkO1xuIl19 */",
|
|
745
745
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
746
746
|
});
|
|
747
747
|
|
|
@@ -750,35 +750,43 @@ const MainContainer = /*#__PURE__*/_styled("main", process.env.NODE_ENV === "pro
|
|
|
750
750
|
* and contains the "restricted" application part.
|
|
751
751
|
*/
|
|
752
752
|
var _ref = process.env.NODE_ENV === "production" ? {
|
|
753
|
+
name: "26rdb6",
|
|
754
|
+
styles: "position:sticky;bottom:0;z-index:9999;pointer-events:none"
|
|
755
|
+
} : {
|
|
756
|
+
name: "1dh3m8l-ApplicationShellAuthenticated",
|
|
757
|
+
styles: "position:sticky;bottom:0;z-index:9999;pointer-events:none;label:ApplicationShellAuthenticated;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9ic0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgRE9NQUlOUyxcbiAgTE9HT1VUX1JFQVNPTlMsXG4gIE1DX01BSU5fQ09OVEFJTkVSX1BPUlRBTF9JRCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEFzeW5jTG9jYWxlRGF0YVByb3BzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBBc3luY0xvY2FsZURhdGEgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNMaXN0IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcmVhY3Qtbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge1xuICByZXBvcnRFcnJvclRvU2VudHJ5LFxuICBTZW50cnlVc2VyVHJhY2tlcixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCB7IERJTUVOU0lPTlMsIE5BVkJBUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci5hc3luYyc7XG5pbXBvcnQgQ29uZmlndXJlSW50bFByb3ZpZGVyIGZyb20gJy4uL2NvbmZpZ3VyZS1pbnRsLXByb3ZpZGVyJztcbmltcG9ydCBFcnJvckFwb2xvZ2l6ZXIgZnJvbSAnLi4vZXJyb3ItYXBvbG9naXplcic7XG5pbXBvcnQgRmV0Y2hQcm9qZWN0IGZyb20gJy4uL2ZldGNoLXByb2plY3QnO1xuaW1wb3J0IEZldGNoVXNlciBmcm9tICcuLi9mZXRjaC11c2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBQcm9qZWN0Q29udGFpbmVyIGZyb20gJy4uL3Byb2plY3QtY29udGFpbmVyJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuXG50eXBlIFRBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRpb25Qcm9wcyA9IHtcbiAgZmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBkZWZhdWx0RmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBhcHBsaWNhdGlvbk1lc3NhZ2VzOiBUQXN5bmNMb2NhbGVEYXRhUHJvcHNbJ2FwcGxpY2F0aW9uTWVzc2FnZXMnXTtcbiAgb25NZW51SXRlbUNsaWNrPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMi8zO1xuICBncmlkLXJvdzogMy80O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuXG4gICAgICAgICAgY29uc3QgdXNlckxvY2FsZSA9IGdldEJyb3dzZXJMb2NhbGUod2luZG93KTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGN0IHN0YWZmLCBhbmQgaWYgc28gZ2V0IGxhbmd1YWdlIHNlbGVjdGVkIHZpYSBzdGFmZiBiYXIgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAgICAgIGNvbnN0IHN0YWZmQmFyTGFuZ3VhZ2UgPVxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdjb21tZXJjZXRvb2xzJyB8fFxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdtYWlsb3NhdXInXG4gICAgICAgICAgICA/IHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlKClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVc2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddIHwgdW5kZWZpbmVkID0gdXNlclxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgICAvLyBzZXQgdGhlIHN0YWZmIGJhciBsYW5ndWFnZSBpZiBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBzdGFmZkJhckxhbmd1YWdlID8/IHVzZXIubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgey8qXG4gICAgICAgICAgICBOT1RFOiB3ZSBkbyBub3Qgd2FudCB0byBsb2FkIHRoZSBsb2NhbGUgZGF0YSBhcyBsb25nIGFzIHdlIGRvIG5vdFxuICAgICAgICAgICAga25vdyB0aGUgdXNlciBzZXR0aW5nLiBUaGlzIGlzIGltcG9ydGFudCBpbiBvcmRlciB0byBhdm9pZCBmbGFzaGluZ1xuICAgICAgICAgICAgb2YgdHJhbnNsYXRlZCBjb250ZW50IG9uIHN1YnNlcXVlbnQgcmUtcmVuZGVycy5cbiAgICAgICAgICAgIFRoZXJlZm9yZSwgYXMgbG9uZyBhcyB0aGVyZSBpcyBubyBsb2NhbGUsIHRoZSBjaGlsZHJlbiBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhlXG4gICAgICAgICAgICBgaXNMb2FkaW5nYCBwcm9wIHRvIGRlY2lkZSB3aGF0IHRvIHJlbmRlci5cbiAgICAgICAgICAqL31cbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXtub3JtYWxpemVkVXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvblNoZWxsU3BsaXR0ZXIgbG9jYWxlPXtsb2NhbGUgPz8gJ2VuJ30+XG4gICAgICAgICAgICAgICAgICAgICAgPFRoZW1lU3dpdGNoZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB7LyogTk9URTogdGhlIHJlcXVlc3RzIGluIGZsaWdodCBsb2FkZXIgd2lsbCByZW5kZXIgYSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgc3Bpbm5lciBpbnRvIHRoZSBBcHBCYXIuICovfVxuICAgICAgICAgICAgICAgICAgICAgIDxSZXF1ZXN0c0luRmxpZ2h0TG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbnRyeVVzZXJUcmFja2VyIHVzZXI9e25vcm1hbGl6ZWRVc2VyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25vdGlmaWNhdGlvbnNHbG9iYWxSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYWJvdmUtdG9wLW5hdmlnYXRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLkdMT0JBTH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogJzIvMyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDIvNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgPE5hdkJhcj4gc2hvdWxkIG9ubHkgYmUgcmVuZGVyZWQgd2l0aGluIGEgcHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRleHQsIHRoZXJlZm9yZSB3aGVuIHRoZXJlIGlzIGEgYHByb2plY3RLZXlgLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGBwcm9qZWN0S2V5YCBpbiB0aGUgVVJMIChlLmcuIGAvYWNjb3VudGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZXMpLCB3ZSBkb24ndCByZW5kZXIgaXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogd2UgYWxzbyBcImNhY2hlXCIgdGhlIGBwcm9qZWN0S2V5YCBpbiBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHRvIFwicmUtaHlkcmF0ZVwiIHRoZSBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2NhdGlvbiAoZS5nIHdoZW4geW91IGdvIHRvIGAvYCwgdGhlcmUgc2hvdWxkIGJlIGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byBgLzpwcm9qZWN0S2V5YCkuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbHkgb24gdGhlIHZhbHVlIGluIGxvY2FsU3RvcmFnZSB0byBkZXRlcm1pbmUgd2hpY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgcHJvamVjdEtleWAgaXMgY3VycmVudGx5IHVzZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0S2V5RnJvbVVybCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGZXRjaFByb2plY3QgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LCBwcm9qZWN0IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTkFWQkFSLndpZHRoTGVmdE5hdmlnYXRpb25XaGVuRXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXsoKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89XCIvYWNjb3VudC9wcm9maWxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPVwiL2FjY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGByZW5kZXJgIGZ1bmN0aW9uLCB3ZSBhc3N1bWUgaXQncyBvbmUgb2YgdHdvIGNhc2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMS4gVGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IHVzZSBgY2hpbGRyZW5gIGFuZCB0aGVyZWZvcmUgaW1wbGVtZW50cyB0aGUgcm91dGVzIGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIDxSb3V0ZUNhdGNoQWxsPiAodGhpcyBpcyB0aGUgXCJsZWdhY3lcIiBiZWhhdmlvcikuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAyLiBJdCdzIHRoZSBhY2NvdW50IGFwcGxpY2F0aW9uLCB3aGljaCBhbHdheXMgdXNlcyBgcmVuZGVyYCBhbmQgdGhlcmVmb3JlIHNob3VsZCByZW5kZXIgYXMgbm9ybWFsLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGBjaGlsZHJlbmAgZnVuY3Rpb24sIHdlIGNhbiBhbHdheXMgYXNzdW1lIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGl0J3MgYSBub3JtYWwgQ3VzdG9tIEFwcGxpY2F0aW9uIGFuZCB0aGF0IGl0IHNob3VsZCB0cmlnZ2VyIGEgZm9yY2UgcmVsb2FkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5yZW5kZXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+e3Byb3BzLnJlbmRlcigpfTwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlQ2F0Y2hBbGwgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBQcm9qZWN0IHJvdXRlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXt0cnVlfSBwYXRoPVwiL1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRVc2VyPy5kZWZhdWx0UHJvamVjdEtleSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTk9URTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgaGFzIG5vdCBiZWVuIGxvYWRlZCBhIGxvYWRpbmcgc3Bpbm5lciBpcyBzaG93bi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIG5vdCB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG5vciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSB1c2VyIHdpbGwgYmUgcHJvbXB0ZWQgdG8gY3JlYXRlIG9uZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgb3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWRpcmVjdCB0byB0aGF0IHByb2plY3QuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbm9ybWFsaXplZFVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz17YC8ke3ByZXZpb3VzUHJvamVjdEtleX1gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e2ZhbHNlfSBwYXRoPVwiLzpwcm9qZWN0S2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByb2plY3RDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17TUNfTUFJTl9DT05UQUlORVJfUE9SVEFMX0lEfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyPlxuICAgICAgICAgICAgICAgICAgPC9TZXR1cEZsb3BGbGlwUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0FzeW5jTG9jYWxlRGF0YT5cbiAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0ZldGNoVXNlcj5cbiAgKTtcbn07XG5BcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZC5kaXNwbGF5TmFtZSA9ICdBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZCc7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkO1xuIl19 */",
|
|
758
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
759
|
+
};
|
|
760
|
+
var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
753
761
|
name: "tlwzvn",
|
|
754
762
|
styles: "flex-grow:1;display:flex;flex-direction:column;position:relative;>*:not(:first-of-type){flex-grow:1;display:flex;flex-direction:column;}"
|
|
755
763
|
} : {
|
|
756
764
|
name: "1y4p4ln-ApplicationShellAuthenticated",
|
|
757
|
-
styles: "flex-grow:1;display:flex;flex-direction:column;position:relative;>*:not(:first-of-type){flex-grow:1;display:flex;flex-direction:column;};label:ApplicationShellAuthenticated;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFVc0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUywgTkFWQkFSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5IH0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGdldFByZXZpb3VzUHJvamVjdEtleSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBBcHBCYXIgZnJvbSAnLi4vYXBwLWJhcic7XG5pbXBvcnQgQXBwbGljYXRpb25Mb2FkZXIgZnJvbSAnLi4vYXBwbGljYXRpb24tbG9hZGVyJztcbmltcG9ydCB7IGdldEJyb3dzZXJMb2NhbGUgfSBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1wcm92aWRlci91dGlscyc7XG5pbXBvcnQgQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyLmFzeW5jJztcbmltcG9ydCBDb25maWd1cmVJbnRsUHJvdmlkZXIgZnJvbSAnLi4vY29uZmlndXJlLWludGwtcHJvdmlkZXInO1xuaW1wb3J0IEVycm9yQXBvbG9naXplciBmcm9tICcuLi9lcnJvci1hcG9sb2dpemVyJztcbmltcG9ydCBGZXRjaFByb2plY3QgZnJvbSAnLi4vZmV0Y2gtcHJvamVjdCc7XG5pbXBvcnQgRmV0Y2hVc2VyIGZyb20gJy4uL2ZldGNoLXVzZXInO1xuaW1wb3J0IE5hdkJhciBmcm9tICcuLi9uYXZiYXInO1xuaW1wb3J0IFByb2plY3RDb250YWluZXIgZnJvbSAnLi4vcHJvamVjdC1jb250YWluZXInO1xuaW1wb3J0IFJlZGlyZWN0VG9Mb2dvdXQgZnJvbSAnLi4vcmVkaXJlY3QtdG8tbG9nb3V0JztcbmltcG9ydCBSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSBmcm9tICcuLi9yZWRpcmVjdC10by1wcm9qZWN0LWNyZWF0ZSc7XG5pbXBvcnQgUmVxdWVzdHNJbkZsaWdodExvYWRlciBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyJztcbmltcG9ydCBSb3V0ZUNhdGNoQWxsIGZyb20gJy4uL3JvdXRlLWNhdGNoLWFsbCc7XG5pbXBvcnQgU2V0dXBGbG9wRmxpcFByb3ZpZGVyIGZyb20gJy4uL3NldHVwLWZsb3AtZmxpcC1wcm92aWRlcic7XG5pbXBvcnQgVGhlbWVTd2l0Y2hlciBmcm9tICcuLi90aGVtZS1zd2l0Y2hlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPzogYm9vbGVhbjtcbiAgcmVuZGVyPzogKCkgPT4gSlNYLkVsZW1lbnQ7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcblxuY29uc3QgZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IgPSAoZ3JhcGhRTEVycm9yczogQXBvbGxvRXJyb3JbJ2dyYXBoUUxFcnJvcnMnXSkgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSAmJlxuICAgICAgZ3FsRXJyb3IuZXh0ZW5zaW9ucy5jb2RlID09PSAnVU5BVVRIRU5USUNBVEVEJ1xuICApO1xuY29uc3QgZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSAoXG4gIGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ11cbikgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLm1lc3NhZ2UgJiZcbiAgICAgIC8vIE5PVEU6IFRoZSBDVFAgQVBJIGRvZXMgbm90IHByb3ZpZGUgYW4gZXJyb3IgY29kZSBpbiB0aGlzIGNhc2UuXG4gICAgICBncWxFcnJvci5tZXNzYWdlLmluY2x1ZGVzKCd3YXMgbm90IGZvdW5kLicpXG4gICk7XG5cbmV4cG9ydCBjb25zdCBNYWluQ29udGFpbmVyID0gc3R5bGVkLm1haW5gXG4gIGdyaWQtY29sdW1uOiAyLzM7XG4gIGdyaWQtcm93OiAzLzQ7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gIH0+KHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmLFxuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxGZXRjaFVzZXI+XG4gICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdVc2VyLCB1c2VyLCBlcnJvciB9KSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIC8vIEluIGNhc2UgdGhlcmUgaXMgYW4gdW5hdXRob3JpemVkIGVycm9yLCB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZVxuICAgICAgICAgIGlmIChlcnJvci5ncmFwaFFMRXJyb3JzICYmIEFycmF5LmlzQXJyYXkoZXJyb3IuZ3JhcGhRTEVycm9ycykpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VuYXV0aG9yaXplZEVycm9yID0gZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvciA9IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IgfHwgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgbGV0IGxvZ291dFJlYXNvbjpcbiAgICAgICAgICAgICAgICB8ICh0eXBlb2YgTE9HT1VUX1JFQVNPTlMpW2tleW9mIHR5cGVvZiBMT0dPVVRfUkVBU09OU11cbiAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLlVOQVVUSE9SSVpFRDtcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuREVMRVRFRDtcbiAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvTG9nb3V0IHJlYXNvbj17bG9nb3V0UmVhc29ufSAvPjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU2luY2Ugd2UgZG8gbm90IGtub3cgdGhlIGxvY2FsZSBvZiB0aGUgdXNlciwgd2UgcGljayBpdCBmcm9tIHRoZVxuICAgICAgICAgIC8vIHVzZXIncyBicm93c2VyIHRvIGF0dGVtcHQgdG8gbWF0Y2ggdGhlIGxhbmd1YWdlIGZvciB0aGUgY29ycmVjdCB0cmFuc2xhdGlvbnMuXG5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaXMgY3Qgc3RhZmYsIGFuZCBpZiBzbyBnZXQgbGFuZ3VhZ2Ugc2VsZWN0ZWQgdmlhIHN0YWZmIGJhciBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgY29uc3Qgc3RhZmZCYXJMYW5ndWFnZSA9XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ2NvbW1lcmNldG9vbHMnIHx8XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ21haWxvc2F1cidcbiAgICAgICAgICAgID8gc2VsZWN0VXNlckxhbmd1YWdlRnJvbVN0b3JhZ2UoKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ10gfCB1bmRlZmluZWQgPSB1c2VyXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgICAgIC8vIHNldCB0aGUgc3RhZmYgYmFyIGxhbmd1YWdlIGlmIGFwcGxpY2FibGVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IHN0YWZmQmFyTGFuZ3VhZ2UgPz8gdXNlci5sYW5ndWFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e25vcm1hbGl6ZWRVc2VyPy5sYW5ndWFnZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nTG9jYWxlRGF0YSwgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlclxuICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcGFzcyB0aGUgbGFuZ3VhZ2UgYXMgbG9uZyBhcyB0aGUgbG9jYWxlIGRhdGFcbiAgICAgICAgICAgICAgICAgIC8vIGlzIG5vdCBsb2FkZWQuXG4gICAgICAgICAgICAgICAgICB7Li4uKGlzTG9hZGluZ0xvY2FsZURhdGEgPyB7fSA6IHsgbG9jYWxlLCBtZXNzYWdlcyB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U2V0dXBGbG9wRmxpcFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBsb2NhbGU9e2xvY2FsZSA/PyAnZW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17bm9ybWFsaXplZFVzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICcyLzMnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsPXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMi80O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTG9hZGluZyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdVc2VyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdMb2NhbGVEYXRhIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdQcm9qZWN0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbG9jYWxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvamVjdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25NZW51SXRlbUNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Mb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17bm90aWZpY2F0aW9uc1BhZ2VSZWZ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5QQUdFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuU0lERX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSBiZWNhdXNlIHdlIGhhdmUgYW4gaW50ZXJtZWRpYXJ5IDxkaXY+IHdyYXBwaW5nIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Vmlldz4gY29tcG9uZW50IHRoYXQgaXMgdXNlZCB0byB3cmFwIGV2ZXJ5IGNvbnRlbnQtdmlldy4gVGhpcyBpbnRlcm1lZGlhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gaXMgc29sZWx5IHVzZWQgZm9yIGFkZGluZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgY29udGVudC12aWV3LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3dldmVyLCB0aGlzIGNvdWxkIGJlIGRvbmUgYnkgcGFzc2luZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgPFZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBsZXQgaXQgZG8gdGhlIGxheW91dCwgc28gd2UgY2FuIGF2b2lkIGxheWluZyBvdXIgZnJvbSB0aGUgb3V0c2lkZSBhcyB3ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbyBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAqOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvcnRhbHNDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2xheW91dFJlZnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFRvcD17RElNRU5TSU9OUy5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE5BVkJBUi53aWR0aExlZnROYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvbldoZW5FeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9eygpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFub3JtYWxpemVkVXNlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxBcHBsaWNhdGlvbkxvYWRlciAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNQcm9qZWN0S2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Qcm9qZWN0Q3JlYXRlIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0IHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBlZmZlY3RpdmVseSByZW5kZXJzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hpbGRyZW4sIHdoaWNoIGlzIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lmaWMgcGFydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXtwcm9wcy5yZW5kZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUHJvamVjdENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3dpdGNoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L01haW5Db250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uU2hlbGxTcGxpdHRlcj5cbiAgICAgICAgICAgICAgICAgIDwvU2V0dXBGbG9wRmxpcFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvQ29uZmlndXJlSW50bFByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgKTtcbiAgICAgIH19XG4gICAgPC9GZXRjaFVzZXI+XG4gICk7XG59O1xuQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQuZGlzcGxheU5hbWUgPSAnQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQnO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZDtcbiJdfQ== */",
|
|
765
|
+
styles: "flex-grow:1;display:flex;flex-direction:column;position:relative;>*:not(:first-of-type){flex-grow:1;display:flex;flex-direction:column;};label:ApplicationShellAuthenticated;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlVc0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgRE9NQUlOUyxcbiAgTE9HT1VUX1JFQVNPTlMsXG4gIE1DX01BSU5fQ09OVEFJTkVSX1BPUlRBTF9JRCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEFzeW5jTG9jYWxlRGF0YVByb3BzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBBc3luY0xvY2FsZURhdGEgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNMaXN0IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcmVhY3Qtbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge1xuICByZXBvcnRFcnJvclRvU2VudHJ5LFxuICBTZW50cnlVc2VyVHJhY2tlcixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCB7IERJTUVOU0lPTlMsIE5BVkJBUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci5hc3luYyc7XG5pbXBvcnQgQ29uZmlndXJlSW50bFByb3ZpZGVyIGZyb20gJy4uL2NvbmZpZ3VyZS1pbnRsLXByb3ZpZGVyJztcbmltcG9ydCBFcnJvckFwb2xvZ2l6ZXIgZnJvbSAnLi4vZXJyb3ItYXBvbG9naXplcic7XG5pbXBvcnQgRmV0Y2hQcm9qZWN0IGZyb20gJy4uL2ZldGNoLXByb2plY3QnO1xuaW1wb3J0IEZldGNoVXNlciBmcm9tICcuLi9mZXRjaC11c2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBQcm9qZWN0Q29udGFpbmVyIGZyb20gJy4uL3Byb2plY3QtY29udGFpbmVyJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuXG50eXBlIFRBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRpb25Qcm9wcyA9IHtcbiAgZmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBkZWZhdWx0RmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBhcHBsaWNhdGlvbk1lc3NhZ2VzOiBUQXN5bmNMb2NhbGVEYXRhUHJvcHNbJ2FwcGxpY2F0aW9uTWVzc2FnZXMnXTtcbiAgb25NZW51SXRlbUNsaWNrPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMi8zO1xuICBncmlkLXJvdzogMy80O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuXG4gICAgICAgICAgY29uc3QgdXNlckxvY2FsZSA9IGdldEJyb3dzZXJMb2NhbGUod2luZG93KTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGN0IHN0YWZmLCBhbmQgaWYgc28gZ2V0IGxhbmd1YWdlIHNlbGVjdGVkIHZpYSBzdGFmZiBiYXIgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAgICAgIGNvbnN0IHN0YWZmQmFyTGFuZ3VhZ2UgPVxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdjb21tZXJjZXRvb2xzJyB8fFxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdtYWlsb3NhdXInXG4gICAgICAgICAgICA/IHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlKClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVc2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddIHwgdW5kZWZpbmVkID0gdXNlclxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgICAvLyBzZXQgdGhlIHN0YWZmIGJhciBsYW5ndWFnZSBpZiBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBzdGFmZkJhckxhbmd1YWdlID8/IHVzZXIubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgey8qXG4gICAgICAgICAgICBOT1RFOiB3ZSBkbyBub3Qgd2FudCB0byBsb2FkIHRoZSBsb2NhbGUgZGF0YSBhcyBsb25nIGFzIHdlIGRvIG5vdFxuICAgICAgICAgICAga25vdyB0aGUgdXNlciBzZXR0aW5nLiBUaGlzIGlzIGltcG9ydGFudCBpbiBvcmRlciB0byBhdm9pZCBmbGFzaGluZ1xuICAgICAgICAgICAgb2YgdHJhbnNsYXRlZCBjb250ZW50IG9uIHN1YnNlcXVlbnQgcmUtcmVuZGVycy5cbiAgICAgICAgICAgIFRoZXJlZm9yZSwgYXMgbG9uZyBhcyB0aGVyZSBpcyBubyBsb2NhbGUsIHRoZSBjaGlsZHJlbiBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhlXG4gICAgICAgICAgICBgaXNMb2FkaW5nYCBwcm9wIHRvIGRlY2lkZSB3aGF0IHRvIHJlbmRlci5cbiAgICAgICAgICAqL31cbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXtub3JtYWxpemVkVXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvblNoZWxsU3BsaXR0ZXIgbG9jYWxlPXtsb2NhbGUgPz8gJ2VuJ30+XG4gICAgICAgICAgICAgICAgICAgICAgPFRoZW1lU3dpdGNoZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB7LyogTk9URTogdGhlIHJlcXVlc3RzIGluIGZsaWdodCBsb2FkZXIgd2lsbCByZW5kZXIgYSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgc3Bpbm5lciBpbnRvIHRoZSBBcHBCYXIuICovfVxuICAgICAgICAgICAgICAgICAgICAgIDxSZXF1ZXN0c0luRmxpZ2h0TG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbnRyeVVzZXJUcmFja2VyIHVzZXI9e25vcm1hbGl6ZWRVc2VyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25vdGlmaWNhdGlvbnNHbG9iYWxSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYWJvdmUtdG9wLW5hdmlnYXRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLkdMT0JBTH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogJzIvMyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDIvNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgPE5hdkJhcj4gc2hvdWxkIG9ubHkgYmUgcmVuZGVyZWQgd2l0aGluIGEgcHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRleHQsIHRoZXJlZm9yZSB3aGVuIHRoZXJlIGlzIGEgYHByb2plY3RLZXlgLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGBwcm9qZWN0S2V5YCBpbiB0aGUgVVJMIChlLmcuIGAvYWNjb3VudGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZXMpLCB3ZSBkb24ndCByZW5kZXIgaXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogd2UgYWxzbyBcImNhY2hlXCIgdGhlIGBwcm9qZWN0S2V5YCBpbiBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHRvIFwicmUtaHlkcmF0ZVwiIHRoZSBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2NhdGlvbiAoZS5nIHdoZW4geW91IGdvIHRvIGAvYCwgdGhlcmUgc2hvdWxkIGJlIGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byBgLzpwcm9qZWN0S2V5YCkuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbHkgb24gdGhlIHZhbHVlIGluIGxvY2FsU3RvcmFnZSB0byBkZXRlcm1pbmUgd2hpY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgcHJvamVjdEtleWAgaXMgY3VycmVudGx5IHVzZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0S2V5RnJvbVVybCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGZXRjaFByb2plY3QgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LCBwcm9qZWN0IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTkFWQkFSLndpZHRoTGVmdE5hdmlnYXRpb25XaGVuRXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXsoKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89XCIvYWNjb3VudC9wcm9maWxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPVwiL2FjY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGByZW5kZXJgIGZ1bmN0aW9uLCB3ZSBhc3N1bWUgaXQncyBvbmUgb2YgdHdvIGNhc2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMS4gVGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IHVzZSBgY2hpbGRyZW5gIGFuZCB0aGVyZWZvcmUgaW1wbGVtZW50cyB0aGUgcm91dGVzIGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIDxSb3V0ZUNhdGNoQWxsPiAodGhpcyBpcyB0aGUgXCJsZWdhY3lcIiBiZWhhdmlvcikuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAyLiBJdCdzIHRoZSBhY2NvdW50IGFwcGxpY2F0aW9uLCB3aGljaCBhbHdheXMgdXNlcyBgcmVuZGVyYCBhbmQgdGhlcmVmb3JlIHNob3VsZCByZW5kZXIgYXMgbm9ybWFsLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGBjaGlsZHJlbmAgZnVuY3Rpb24sIHdlIGNhbiBhbHdheXMgYXNzdW1lIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGl0J3MgYSBub3JtYWwgQ3VzdG9tIEFwcGxpY2F0aW9uIGFuZCB0aGF0IGl0IHNob3VsZCB0cmlnZ2VyIGEgZm9yY2UgcmVsb2FkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5yZW5kZXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+e3Byb3BzLnJlbmRlcigpfTwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlQ2F0Y2hBbGwgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBQcm9qZWN0IHJvdXRlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXt0cnVlfSBwYXRoPVwiL1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRVc2VyPy5kZWZhdWx0UHJvamVjdEtleSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTk9URTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgaGFzIG5vdCBiZWVuIGxvYWRlZCBhIGxvYWRpbmcgc3Bpbm5lciBpcyBzaG93bi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIG5vdCB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG5vciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSB1c2VyIHdpbGwgYmUgcHJvbXB0ZWQgdG8gY3JlYXRlIG9uZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgb3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWRpcmVjdCB0byB0aGF0IHByb2plY3QuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbm9ybWFsaXplZFVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz17YC8ke3ByZXZpb3VzUHJvamVjdEtleX1gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e2ZhbHNlfSBwYXRoPVwiLzpwcm9qZWN0S2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByb2plY3RDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17TUNfTUFJTl9DT05UQUlORVJfUE9SVEFMX0lEfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyPlxuICAgICAgICAgICAgICAgICAgPC9TZXR1cEZsb3BGbGlwUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0FzeW5jTG9jYWxlRGF0YT5cbiAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0ZldGNoVXNlcj5cbiAgKTtcbn07XG5BcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZC5kaXNwbGF5TmFtZSA9ICdBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZCc7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkO1xuIl19 */",
|
|
758
766
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
759
767
|
};
|
|
760
|
-
var
|
|
768
|
+
var _ref3 = process.env.NODE_ENV === "production" ? {
|
|
761
769
|
name: "lzrvov",
|
|
762
770
|
styles: "grid-column:1/2;grid-row:2/4;overflow:hidden"
|
|
763
771
|
} : {
|
|
764
772
|
name: "b768-ApplicationShellAuthenticated",
|
|
765
|
-
styles: "grid-column:1/2;grid-row:2/4;overflow:hidden;label:ApplicationShellAuthenticated;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNRa0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUywgTkFWQkFSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5IH0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGdldFByZXZpb3VzUHJvamVjdEtleSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBBcHBCYXIgZnJvbSAnLi4vYXBwLWJhcic7XG5pbXBvcnQgQXBwbGljYXRpb25Mb2FkZXIgZnJvbSAnLi4vYXBwbGljYXRpb24tbG9hZGVyJztcbmltcG9ydCB7IGdldEJyb3dzZXJMb2NhbGUgfSBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1wcm92aWRlci91dGlscyc7XG5pbXBvcnQgQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyLmFzeW5jJztcbmltcG9ydCBDb25maWd1cmVJbnRsUHJvdmlkZXIgZnJvbSAnLi4vY29uZmlndXJlLWludGwtcHJvdmlkZXInO1xuaW1wb3J0IEVycm9yQXBvbG9naXplciBmcm9tICcuLi9lcnJvci1hcG9sb2dpemVyJztcbmltcG9ydCBGZXRjaFByb2plY3QgZnJvbSAnLi4vZmV0Y2gtcHJvamVjdCc7XG5pbXBvcnQgRmV0Y2hVc2VyIGZyb20gJy4uL2ZldGNoLXVzZXInO1xuaW1wb3J0IE5hdkJhciBmcm9tICcuLi9uYXZiYXInO1xuaW1wb3J0IFByb2plY3RDb250YWluZXIgZnJvbSAnLi4vcHJvamVjdC1jb250YWluZXInO1xuaW1wb3J0IFJlZGlyZWN0VG9Mb2dvdXQgZnJvbSAnLi4vcmVkaXJlY3QtdG8tbG9nb3V0JztcbmltcG9ydCBSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSBmcm9tICcuLi9yZWRpcmVjdC10by1wcm9qZWN0LWNyZWF0ZSc7XG5pbXBvcnQgUmVxdWVzdHNJbkZsaWdodExvYWRlciBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyJztcbmltcG9ydCBSb3V0ZUNhdGNoQWxsIGZyb20gJy4uL3JvdXRlLWNhdGNoLWFsbCc7XG5pbXBvcnQgU2V0dXBGbG9wRmxpcFByb3ZpZGVyIGZyb20gJy4uL3NldHVwLWZsb3AtZmxpcC1wcm92aWRlcic7XG5pbXBvcnQgVGhlbWVTd2l0Y2hlciBmcm9tICcuLi90aGVtZS1zd2l0Y2hlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPzogYm9vbGVhbjtcbiAgcmVuZGVyPzogKCkgPT4gSlNYLkVsZW1lbnQ7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcblxuY29uc3QgZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IgPSAoZ3JhcGhRTEVycm9yczogQXBvbGxvRXJyb3JbJ2dyYXBoUUxFcnJvcnMnXSkgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSAmJlxuICAgICAgZ3FsRXJyb3IuZXh0ZW5zaW9ucy5jb2RlID09PSAnVU5BVVRIRU5USUNBVEVEJ1xuICApO1xuY29uc3QgZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSAoXG4gIGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ11cbikgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLm1lc3NhZ2UgJiZcbiAgICAgIC8vIE5PVEU6IFRoZSBDVFAgQVBJIGRvZXMgbm90IHByb3ZpZGUgYW4gZXJyb3IgY29kZSBpbiB0aGlzIGNhc2UuXG4gICAgICBncWxFcnJvci5tZXNzYWdlLmluY2x1ZGVzKCd3YXMgbm90IGZvdW5kLicpXG4gICk7XG5cbmV4cG9ydCBjb25zdCBNYWluQ29udGFpbmVyID0gc3R5bGVkLm1haW5gXG4gIGdyaWQtY29sdW1uOiAyLzM7XG4gIGdyaWQtcm93OiAzLzQ7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gIH0+KHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmLFxuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxGZXRjaFVzZXI+XG4gICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdVc2VyLCB1c2VyLCBlcnJvciB9KSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIC8vIEluIGNhc2UgdGhlcmUgaXMgYW4gdW5hdXRob3JpemVkIGVycm9yLCB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZVxuICAgICAgICAgIGlmIChlcnJvci5ncmFwaFFMRXJyb3JzICYmIEFycmF5LmlzQXJyYXkoZXJyb3IuZ3JhcGhRTEVycm9ycykpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VuYXV0aG9yaXplZEVycm9yID0gZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvciA9IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IgfHwgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgbGV0IGxvZ291dFJlYXNvbjpcbiAgICAgICAgICAgICAgICB8ICh0eXBlb2YgTE9HT1VUX1JFQVNPTlMpW2tleW9mIHR5cGVvZiBMT0dPVVRfUkVBU09OU11cbiAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLlVOQVVUSE9SSVpFRDtcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuREVMRVRFRDtcbiAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvTG9nb3V0IHJlYXNvbj17bG9nb3V0UmVhc29ufSAvPjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU2luY2Ugd2UgZG8gbm90IGtub3cgdGhlIGxvY2FsZSBvZiB0aGUgdXNlciwgd2UgcGljayBpdCBmcm9tIHRoZVxuICAgICAgICAgIC8vIHVzZXIncyBicm93c2VyIHRvIGF0dGVtcHQgdG8gbWF0Y2ggdGhlIGxhbmd1YWdlIGZvciB0aGUgY29ycmVjdCB0cmFuc2xhdGlvbnMuXG5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaXMgY3Qgc3RhZmYsIGFuZCBpZiBzbyBnZXQgbGFuZ3VhZ2Ugc2VsZWN0ZWQgdmlhIHN0YWZmIGJhciBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgY29uc3Qgc3RhZmZCYXJMYW5ndWFnZSA9XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ2NvbW1lcmNldG9vbHMnIHx8XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ21haWxvc2F1cidcbiAgICAgICAgICAgID8gc2VsZWN0VXNlckxhbmd1YWdlRnJvbVN0b3JhZ2UoKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ10gfCB1bmRlZmluZWQgPSB1c2VyXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgICAgIC8vIHNldCB0aGUgc3RhZmYgYmFyIGxhbmd1YWdlIGlmIGFwcGxpY2FibGVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IHN0YWZmQmFyTGFuZ3VhZ2UgPz8gdXNlci5sYW5ndWFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e25vcm1hbGl6ZWRVc2VyPy5sYW5ndWFnZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nTG9jYWxlRGF0YSwgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlclxuICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcGFzcyB0aGUgbGFuZ3VhZ2UgYXMgbG9uZyBhcyB0aGUgbG9jYWxlIGRhdGFcbiAgICAgICAgICAgICAgICAgIC8vIGlzIG5vdCBsb2FkZWQuXG4gICAgICAgICAgICAgICAgICB7Li4uKGlzTG9hZGluZ0xvY2FsZURhdGEgPyB7fSA6IHsgbG9jYWxlLCBtZXNzYWdlcyB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U2V0dXBGbG9wRmxpcFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBsb2NhbGU9e2xvY2FsZSA/PyAnZW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17bm9ybWFsaXplZFVzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICcyLzMnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsPXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMi80O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTG9hZGluZyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdVc2VyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdMb2NhbGVEYXRhIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdQcm9qZWN0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbG9jYWxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvamVjdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25NZW51SXRlbUNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Mb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17bm90aWZpY2F0aW9uc1BhZ2VSZWZ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5QQUdFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuU0lERX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSBiZWNhdXNlIHdlIGhhdmUgYW4gaW50ZXJtZWRpYXJ5IDxkaXY+IHdyYXBwaW5nIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Vmlldz4gY29tcG9uZW50IHRoYXQgaXMgdXNlZCB0byB3cmFwIGV2ZXJ5IGNvbnRlbnQtdmlldy4gVGhpcyBpbnRlcm1lZGlhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gaXMgc29sZWx5IHVzZWQgZm9yIGFkZGluZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgY29udGVudC12aWV3LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3dldmVyLCB0aGlzIGNvdWxkIGJlIGRvbmUgYnkgcGFzc2luZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgPFZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBsZXQgaXQgZG8gdGhlIGxheW91dCwgc28gd2UgY2FuIGF2b2lkIGxheWluZyBvdXIgZnJvbSB0aGUgb3V0c2lkZSBhcyB3ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbyBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAqOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvcnRhbHNDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2xheW91dFJlZnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFRvcD17RElNRU5TSU9OUy5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE5BVkJBUi53aWR0aExlZnROYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvbldoZW5FeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9eygpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFub3JtYWxpemVkVXNlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxBcHBsaWNhdGlvbkxvYWRlciAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNQcm9qZWN0S2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Qcm9qZWN0Q3JlYXRlIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0IHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBlZmZlY3RpdmVseSByZW5kZXJzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hpbGRyZW4sIHdoaWNoIGlzIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lmaWMgcGFydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXtwcm9wcy5yZW5kZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUHJvamVjdENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3dpdGNoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L01haW5Db250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uU2hlbGxTcGxpdHRlcj5cbiAgICAgICAgICAgICAgICAgIDwvU2V0dXBGbG9wRmxpcFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvQ29uZmlndXJlSW50bFByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgKTtcbiAgICAgIH19XG4gICAgPC9GZXRjaFVzZXI+XG4gICk7XG59O1xuQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQuZGlzcGxheU5hbWUgPSAnQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQnO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZDtcbiJdfQ== */",
|
|
773
|
+
styles: "grid-column:1/2;grid-row:2/4;overflow:hidden;label:ApplicationShellAuthenticated;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBRa0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgRE9NQUlOUyxcbiAgTE9HT1VUX1JFQVNPTlMsXG4gIE1DX01BSU5fQ09OVEFJTkVSX1BPUlRBTF9JRCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEFzeW5jTG9jYWxlRGF0YVByb3BzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBBc3luY0xvY2FsZURhdGEgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNMaXN0IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcmVhY3Qtbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge1xuICByZXBvcnRFcnJvclRvU2VudHJ5LFxuICBTZW50cnlVc2VyVHJhY2tlcixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCB7IERJTUVOU0lPTlMsIE5BVkJBUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci5hc3luYyc7XG5pbXBvcnQgQ29uZmlndXJlSW50bFByb3ZpZGVyIGZyb20gJy4uL2NvbmZpZ3VyZS1pbnRsLXByb3ZpZGVyJztcbmltcG9ydCBFcnJvckFwb2xvZ2l6ZXIgZnJvbSAnLi4vZXJyb3ItYXBvbG9naXplcic7XG5pbXBvcnQgRmV0Y2hQcm9qZWN0IGZyb20gJy4uL2ZldGNoLXByb2plY3QnO1xuaW1wb3J0IEZldGNoVXNlciBmcm9tICcuLi9mZXRjaC11c2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBQcm9qZWN0Q29udGFpbmVyIGZyb20gJy4uL3Byb2plY3QtY29udGFpbmVyJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuXG50eXBlIFRBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRpb25Qcm9wcyA9IHtcbiAgZmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBkZWZhdWx0RmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBhcHBsaWNhdGlvbk1lc3NhZ2VzOiBUQXN5bmNMb2NhbGVEYXRhUHJvcHNbJ2FwcGxpY2F0aW9uTWVzc2FnZXMnXTtcbiAgb25NZW51SXRlbUNsaWNrPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMi8zO1xuICBncmlkLXJvdzogMy80O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuXG4gICAgICAgICAgY29uc3QgdXNlckxvY2FsZSA9IGdldEJyb3dzZXJMb2NhbGUod2luZG93KTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGN0IHN0YWZmLCBhbmQgaWYgc28gZ2V0IGxhbmd1YWdlIHNlbGVjdGVkIHZpYSBzdGFmZiBiYXIgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAgICAgIGNvbnN0IHN0YWZmQmFyTGFuZ3VhZ2UgPVxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdjb21tZXJjZXRvb2xzJyB8fFxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdtYWlsb3NhdXInXG4gICAgICAgICAgICA/IHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlKClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVc2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddIHwgdW5kZWZpbmVkID0gdXNlclxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgICAvLyBzZXQgdGhlIHN0YWZmIGJhciBsYW5ndWFnZSBpZiBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBzdGFmZkJhckxhbmd1YWdlID8/IHVzZXIubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgey8qXG4gICAgICAgICAgICBOT1RFOiB3ZSBkbyBub3Qgd2FudCB0byBsb2FkIHRoZSBsb2NhbGUgZGF0YSBhcyBsb25nIGFzIHdlIGRvIG5vdFxuICAgICAgICAgICAga25vdyB0aGUgdXNlciBzZXR0aW5nLiBUaGlzIGlzIGltcG9ydGFudCBpbiBvcmRlciB0byBhdm9pZCBmbGFzaGluZ1xuICAgICAgICAgICAgb2YgdHJhbnNsYXRlZCBjb250ZW50IG9uIHN1YnNlcXVlbnQgcmUtcmVuZGVycy5cbiAgICAgICAgICAgIFRoZXJlZm9yZSwgYXMgbG9uZyBhcyB0aGVyZSBpcyBubyBsb2NhbGUsIHRoZSBjaGlsZHJlbiBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhlXG4gICAgICAgICAgICBgaXNMb2FkaW5nYCBwcm9wIHRvIGRlY2lkZSB3aGF0IHRvIHJlbmRlci5cbiAgICAgICAgICAqL31cbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXtub3JtYWxpemVkVXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvblNoZWxsU3BsaXR0ZXIgbG9jYWxlPXtsb2NhbGUgPz8gJ2VuJ30+XG4gICAgICAgICAgICAgICAgICAgICAgPFRoZW1lU3dpdGNoZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB7LyogTk9URTogdGhlIHJlcXVlc3RzIGluIGZsaWdodCBsb2FkZXIgd2lsbCByZW5kZXIgYSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgc3Bpbm5lciBpbnRvIHRoZSBBcHBCYXIuICovfVxuICAgICAgICAgICAgICAgICAgICAgIDxSZXF1ZXN0c0luRmxpZ2h0TG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbnRyeVVzZXJUcmFja2VyIHVzZXI9e25vcm1hbGl6ZWRVc2VyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25vdGlmaWNhdGlvbnNHbG9iYWxSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYWJvdmUtdG9wLW5hdmlnYXRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLkdMT0JBTH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogJzIvMyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDIvNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgPE5hdkJhcj4gc2hvdWxkIG9ubHkgYmUgcmVuZGVyZWQgd2l0aGluIGEgcHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRleHQsIHRoZXJlZm9yZSB3aGVuIHRoZXJlIGlzIGEgYHByb2plY3RLZXlgLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGBwcm9qZWN0S2V5YCBpbiB0aGUgVVJMIChlLmcuIGAvYWNjb3VudGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZXMpLCB3ZSBkb24ndCByZW5kZXIgaXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogd2UgYWxzbyBcImNhY2hlXCIgdGhlIGBwcm9qZWN0S2V5YCBpbiBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHRvIFwicmUtaHlkcmF0ZVwiIHRoZSBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2NhdGlvbiAoZS5nIHdoZW4geW91IGdvIHRvIGAvYCwgdGhlcmUgc2hvdWxkIGJlIGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byBgLzpwcm9qZWN0S2V5YCkuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbHkgb24gdGhlIHZhbHVlIGluIGxvY2FsU3RvcmFnZSB0byBkZXRlcm1pbmUgd2hpY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgcHJvamVjdEtleWAgaXMgY3VycmVudGx5IHVzZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0S2V5RnJvbVVybCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGZXRjaFByb2plY3QgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LCBwcm9qZWN0IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTkFWQkFSLndpZHRoTGVmdE5hdmlnYXRpb25XaGVuRXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXsoKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89XCIvYWNjb3VudC9wcm9maWxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPVwiL2FjY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGByZW5kZXJgIGZ1bmN0aW9uLCB3ZSBhc3N1bWUgaXQncyBvbmUgb2YgdHdvIGNhc2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMS4gVGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IHVzZSBgY2hpbGRyZW5gIGFuZCB0aGVyZWZvcmUgaW1wbGVtZW50cyB0aGUgcm91dGVzIGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIDxSb3V0ZUNhdGNoQWxsPiAodGhpcyBpcyB0aGUgXCJsZWdhY3lcIiBiZWhhdmlvcikuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAyLiBJdCdzIHRoZSBhY2NvdW50IGFwcGxpY2F0aW9uLCB3aGljaCBhbHdheXMgdXNlcyBgcmVuZGVyYCBhbmQgdGhlcmVmb3JlIHNob3VsZCByZW5kZXIgYXMgbm9ybWFsLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGBjaGlsZHJlbmAgZnVuY3Rpb24sIHdlIGNhbiBhbHdheXMgYXNzdW1lIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGl0J3MgYSBub3JtYWwgQ3VzdG9tIEFwcGxpY2F0aW9uIGFuZCB0aGF0IGl0IHNob3VsZCB0cmlnZ2VyIGEgZm9yY2UgcmVsb2FkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5yZW5kZXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+e3Byb3BzLnJlbmRlcigpfTwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlQ2F0Y2hBbGwgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBQcm9qZWN0IHJvdXRlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXt0cnVlfSBwYXRoPVwiL1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRVc2VyPy5kZWZhdWx0UHJvamVjdEtleSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTk9URTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgaGFzIG5vdCBiZWVuIGxvYWRlZCBhIGxvYWRpbmcgc3Bpbm5lciBpcyBzaG93bi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIG5vdCB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG5vciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSB1c2VyIHdpbGwgYmUgcHJvbXB0ZWQgdG8gY3JlYXRlIG9uZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgb3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWRpcmVjdCB0byB0aGF0IHByb2plY3QuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbm9ybWFsaXplZFVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz17YC8ke3ByZXZpb3VzUHJvamVjdEtleX1gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e2ZhbHNlfSBwYXRoPVwiLzpwcm9qZWN0S2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByb2plY3RDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17TUNfTUFJTl9DT05UQUlORVJfUE9SVEFMX0lEfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyPlxuICAgICAgICAgICAgICAgICAgPC9TZXR1cEZsb3BGbGlwUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0FzeW5jTG9jYWxlRGF0YT5cbiAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0ZldGNoVXNlcj5cbiAgKTtcbn07XG5BcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZC5kaXNwbGF5TmFtZSA9ICdBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZCc7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkO1xuIl19 */",
|
|
766
774
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
767
775
|
};
|
|
768
|
-
var
|
|
776
|
+
var _ref4 = process.env.NODE_ENV === "production" ? {
|
|
769
777
|
name: "tjbz3t",
|
|
770
778
|
styles: "grid-row:'2/3';grid-column:'2/3'"
|
|
771
779
|
} : {
|
|
772
780
|
name: "arpkii-ApplicationShellAuthenticated",
|
|
773
|
-
styles: "grid-row:'2/3';grid-column:'2/3';label:ApplicationShellAuthenticated;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBQa0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUywgTkFWQkFSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5IH0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGdldFByZXZpb3VzUHJvamVjdEtleSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBBcHBCYXIgZnJvbSAnLi4vYXBwLWJhcic7XG5pbXBvcnQgQXBwbGljYXRpb25Mb2FkZXIgZnJvbSAnLi4vYXBwbGljYXRpb24tbG9hZGVyJztcbmltcG9ydCB7IGdldEJyb3dzZXJMb2NhbGUgfSBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1wcm92aWRlci91dGlscyc7XG5pbXBvcnQgQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyLmFzeW5jJztcbmltcG9ydCBDb25maWd1cmVJbnRsUHJvdmlkZXIgZnJvbSAnLi4vY29uZmlndXJlLWludGwtcHJvdmlkZXInO1xuaW1wb3J0IEVycm9yQXBvbG9naXplciBmcm9tICcuLi9lcnJvci1hcG9sb2dpemVyJztcbmltcG9ydCBGZXRjaFByb2plY3QgZnJvbSAnLi4vZmV0Y2gtcHJvamVjdCc7XG5pbXBvcnQgRmV0Y2hVc2VyIGZyb20gJy4uL2ZldGNoLXVzZXInO1xuaW1wb3J0IE5hdkJhciBmcm9tICcuLi9uYXZiYXInO1xuaW1wb3J0IFByb2plY3RDb250YWluZXIgZnJvbSAnLi4vcHJvamVjdC1jb250YWluZXInO1xuaW1wb3J0IFJlZGlyZWN0VG9Mb2dvdXQgZnJvbSAnLi4vcmVkaXJlY3QtdG8tbG9nb3V0JztcbmltcG9ydCBSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSBmcm9tICcuLi9yZWRpcmVjdC10by1wcm9qZWN0LWNyZWF0ZSc7XG5pbXBvcnQgUmVxdWVzdHNJbkZsaWdodExvYWRlciBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyJztcbmltcG9ydCBSb3V0ZUNhdGNoQWxsIGZyb20gJy4uL3JvdXRlLWNhdGNoLWFsbCc7XG5pbXBvcnQgU2V0dXBGbG9wRmxpcFByb3ZpZGVyIGZyb20gJy4uL3NldHVwLWZsb3AtZmxpcC1wcm92aWRlcic7XG5pbXBvcnQgVGhlbWVTd2l0Y2hlciBmcm9tICcuLi90aGVtZS1zd2l0Y2hlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPzogYm9vbGVhbjtcbiAgcmVuZGVyPzogKCkgPT4gSlNYLkVsZW1lbnQ7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcblxuY29uc3QgZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IgPSAoZ3JhcGhRTEVycm9yczogQXBvbGxvRXJyb3JbJ2dyYXBoUUxFcnJvcnMnXSkgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSAmJlxuICAgICAgZ3FsRXJyb3IuZXh0ZW5zaW9ucy5jb2RlID09PSAnVU5BVVRIRU5USUNBVEVEJ1xuICApO1xuY29uc3QgZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSAoXG4gIGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ11cbikgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLm1lc3NhZ2UgJiZcbiAgICAgIC8vIE5PVEU6IFRoZSBDVFAgQVBJIGRvZXMgbm90IHByb3ZpZGUgYW4gZXJyb3IgY29kZSBpbiB0aGlzIGNhc2UuXG4gICAgICBncWxFcnJvci5tZXNzYWdlLmluY2x1ZGVzKCd3YXMgbm90IGZvdW5kLicpXG4gICk7XG5cbmV4cG9ydCBjb25zdCBNYWluQ29udGFpbmVyID0gc3R5bGVkLm1haW5gXG4gIGdyaWQtY29sdW1uOiAyLzM7XG4gIGdyaWQtcm93OiAzLzQ7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gIH0+KHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmLFxuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxGZXRjaFVzZXI+XG4gICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdVc2VyLCB1c2VyLCBlcnJvciB9KSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIC8vIEluIGNhc2UgdGhlcmUgaXMgYW4gdW5hdXRob3JpemVkIGVycm9yLCB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZVxuICAgICAgICAgIGlmIChlcnJvci5ncmFwaFFMRXJyb3JzICYmIEFycmF5LmlzQXJyYXkoZXJyb3IuZ3JhcGhRTEVycm9ycykpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VuYXV0aG9yaXplZEVycm9yID0gZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvciA9IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IgfHwgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgbGV0IGxvZ291dFJlYXNvbjpcbiAgICAgICAgICAgICAgICB8ICh0eXBlb2YgTE9HT1VUX1JFQVNPTlMpW2tleW9mIHR5cGVvZiBMT0dPVVRfUkVBU09OU11cbiAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLlVOQVVUSE9SSVpFRDtcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuREVMRVRFRDtcbiAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvTG9nb3V0IHJlYXNvbj17bG9nb3V0UmVhc29ufSAvPjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU2luY2Ugd2UgZG8gbm90IGtub3cgdGhlIGxvY2FsZSBvZiB0aGUgdXNlciwgd2UgcGljayBpdCBmcm9tIHRoZVxuICAgICAgICAgIC8vIHVzZXIncyBicm93c2VyIHRvIGF0dGVtcHQgdG8gbWF0Y2ggdGhlIGxhbmd1YWdlIGZvciB0aGUgY29ycmVjdCB0cmFuc2xhdGlvbnMuXG5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaXMgY3Qgc3RhZmYsIGFuZCBpZiBzbyBnZXQgbGFuZ3VhZ2Ugc2VsZWN0ZWQgdmlhIHN0YWZmIGJhciBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgY29uc3Qgc3RhZmZCYXJMYW5ndWFnZSA9XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ2NvbW1lcmNldG9vbHMnIHx8XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ21haWxvc2F1cidcbiAgICAgICAgICAgID8gc2VsZWN0VXNlckxhbmd1YWdlRnJvbVN0b3JhZ2UoKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ10gfCB1bmRlZmluZWQgPSB1c2VyXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgICAgIC8vIHNldCB0aGUgc3RhZmYgYmFyIGxhbmd1YWdlIGlmIGFwcGxpY2FibGVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IHN0YWZmQmFyTGFuZ3VhZ2UgPz8gdXNlci5sYW5ndWFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e25vcm1hbGl6ZWRVc2VyPy5sYW5ndWFnZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nTG9jYWxlRGF0YSwgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlclxuICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcGFzcyB0aGUgbGFuZ3VhZ2UgYXMgbG9uZyBhcyB0aGUgbG9jYWxlIGRhdGFcbiAgICAgICAgICAgICAgICAgIC8vIGlzIG5vdCBsb2FkZWQuXG4gICAgICAgICAgICAgICAgICB7Li4uKGlzTG9hZGluZ0xvY2FsZURhdGEgPyB7fSA6IHsgbG9jYWxlLCBtZXNzYWdlcyB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U2V0dXBGbG9wRmxpcFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBsb2NhbGU9e2xvY2FsZSA/PyAnZW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17bm9ybWFsaXplZFVzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICcyLzMnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsPXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMi80O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTG9hZGluZyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdVc2VyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdMb2NhbGVEYXRhIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdQcm9qZWN0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbG9jYWxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvamVjdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25NZW51SXRlbUNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Mb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17bm90aWZpY2F0aW9uc1BhZ2VSZWZ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5QQUdFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuU0lERX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSBiZWNhdXNlIHdlIGhhdmUgYW4gaW50ZXJtZWRpYXJ5IDxkaXY+IHdyYXBwaW5nIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Vmlldz4gY29tcG9uZW50IHRoYXQgaXMgdXNlZCB0byB3cmFwIGV2ZXJ5IGNvbnRlbnQtdmlldy4gVGhpcyBpbnRlcm1lZGlhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gaXMgc29sZWx5IHVzZWQgZm9yIGFkZGluZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgY29udGVudC12aWV3LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3dldmVyLCB0aGlzIGNvdWxkIGJlIGRvbmUgYnkgcGFzc2luZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgPFZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBsZXQgaXQgZG8gdGhlIGxheW91dCwgc28gd2UgY2FuIGF2b2lkIGxheWluZyBvdXIgZnJvbSB0aGUgb3V0c2lkZSBhcyB3ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbyBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAqOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvcnRhbHNDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2xheW91dFJlZnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFRvcD17RElNRU5TSU9OUy5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE5BVkJBUi53aWR0aExlZnROYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvbldoZW5FeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9eygpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFub3JtYWxpemVkVXNlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxBcHBsaWNhdGlvbkxvYWRlciAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNQcm9qZWN0S2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Qcm9qZWN0Q3JlYXRlIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0IHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBlZmZlY3RpdmVseSByZW5kZXJzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hpbGRyZW4sIHdoaWNoIGlzIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lmaWMgcGFydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXtwcm9wcy5yZW5kZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUHJvamVjdENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3dpdGNoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L01haW5Db250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uU2hlbGxTcGxpdHRlcj5cbiAgICAgICAgICAgICAgICAgIDwvU2V0dXBGbG9wRmxpcFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvQ29uZmlndXJlSW50bFByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgKTtcbiAgICAgIH19XG4gICAgPC9GZXRjaFVzZXI+XG4gICk7XG59O1xuQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQuZGlzcGxheU5hbWUgPSAnQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQnO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZDtcbiJdfQ== */",
|
|
781
|
+
styles: "grid-row:'2/3';grid-column:'2/3';label:ApplicationShellAuthenticated;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThQa0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgRE9NQUlOUyxcbiAgTE9HT1VUX1JFQVNPTlMsXG4gIE1DX01BSU5fQ09OVEFJTkVSX1BPUlRBTF9JRCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEFzeW5jTG9jYWxlRGF0YVByb3BzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBBc3luY0xvY2FsZURhdGEgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNMaXN0IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcmVhY3Qtbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge1xuICByZXBvcnRFcnJvclRvU2VudHJ5LFxuICBTZW50cnlVc2VyVHJhY2tlcixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCB7IERJTUVOU0lPTlMsIE5BVkJBUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci5hc3luYyc7XG5pbXBvcnQgQ29uZmlndXJlSW50bFByb3ZpZGVyIGZyb20gJy4uL2NvbmZpZ3VyZS1pbnRsLXByb3ZpZGVyJztcbmltcG9ydCBFcnJvckFwb2xvZ2l6ZXIgZnJvbSAnLi4vZXJyb3ItYXBvbG9naXplcic7XG5pbXBvcnQgRmV0Y2hQcm9qZWN0IGZyb20gJy4uL2ZldGNoLXByb2plY3QnO1xuaW1wb3J0IEZldGNoVXNlciBmcm9tICcuLi9mZXRjaC11c2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBQcm9qZWN0Q29udGFpbmVyIGZyb20gJy4uL3Byb2plY3QtY29udGFpbmVyJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuXG50eXBlIFRBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRpb25Qcm9wcyA9IHtcbiAgZmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBkZWZhdWx0RmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBhcHBsaWNhdGlvbk1lc3NhZ2VzOiBUQXN5bmNMb2NhbGVEYXRhUHJvcHNbJ2FwcGxpY2F0aW9uTWVzc2FnZXMnXTtcbiAgb25NZW51SXRlbUNsaWNrPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMi8zO1xuICBncmlkLXJvdzogMy80O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuXG4gICAgICAgICAgY29uc3QgdXNlckxvY2FsZSA9IGdldEJyb3dzZXJMb2NhbGUod2luZG93KTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGN0IHN0YWZmLCBhbmQgaWYgc28gZ2V0IGxhbmd1YWdlIHNlbGVjdGVkIHZpYSBzdGFmZiBiYXIgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAgICAgIGNvbnN0IHN0YWZmQmFyTGFuZ3VhZ2UgPVxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdjb21tZXJjZXRvb2xzJyB8fFxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdtYWlsb3NhdXInXG4gICAgICAgICAgICA/IHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlKClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVc2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddIHwgdW5kZWZpbmVkID0gdXNlclxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgICAvLyBzZXQgdGhlIHN0YWZmIGJhciBsYW5ndWFnZSBpZiBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBzdGFmZkJhckxhbmd1YWdlID8/IHVzZXIubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgey8qXG4gICAgICAgICAgICBOT1RFOiB3ZSBkbyBub3Qgd2FudCB0byBsb2FkIHRoZSBsb2NhbGUgZGF0YSBhcyBsb25nIGFzIHdlIGRvIG5vdFxuICAgICAgICAgICAga25vdyB0aGUgdXNlciBzZXR0aW5nLiBUaGlzIGlzIGltcG9ydGFudCBpbiBvcmRlciB0byBhdm9pZCBmbGFzaGluZ1xuICAgICAgICAgICAgb2YgdHJhbnNsYXRlZCBjb250ZW50IG9uIHN1YnNlcXVlbnQgcmUtcmVuZGVycy5cbiAgICAgICAgICAgIFRoZXJlZm9yZSwgYXMgbG9uZyBhcyB0aGVyZSBpcyBubyBsb2NhbGUsIHRoZSBjaGlsZHJlbiBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhlXG4gICAgICAgICAgICBgaXNMb2FkaW5nYCBwcm9wIHRvIGRlY2lkZSB3aGF0IHRvIHJlbmRlci5cbiAgICAgICAgICAqL31cbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXtub3JtYWxpemVkVXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvblNoZWxsU3BsaXR0ZXIgbG9jYWxlPXtsb2NhbGUgPz8gJ2VuJ30+XG4gICAgICAgICAgICAgICAgICAgICAgPFRoZW1lU3dpdGNoZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB7LyogTk9URTogdGhlIHJlcXVlc3RzIGluIGZsaWdodCBsb2FkZXIgd2lsbCByZW5kZXIgYSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgc3Bpbm5lciBpbnRvIHRoZSBBcHBCYXIuICovfVxuICAgICAgICAgICAgICAgICAgICAgIDxSZXF1ZXN0c0luRmxpZ2h0TG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbnRyeVVzZXJUcmFja2VyIHVzZXI9e25vcm1hbGl6ZWRVc2VyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25vdGlmaWNhdGlvbnNHbG9iYWxSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYWJvdmUtdG9wLW5hdmlnYXRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLkdMT0JBTH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogJzIvMyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDIvNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgPE5hdkJhcj4gc2hvdWxkIG9ubHkgYmUgcmVuZGVyZWQgd2l0aGluIGEgcHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRleHQsIHRoZXJlZm9yZSB3aGVuIHRoZXJlIGlzIGEgYHByb2plY3RLZXlgLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGBwcm9qZWN0S2V5YCBpbiB0aGUgVVJMIChlLmcuIGAvYWNjb3VudGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZXMpLCB3ZSBkb24ndCByZW5kZXIgaXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogd2UgYWxzbyBcImNhY2hlXCIgdGhlIGBwcm9qZWN0S2V5YCBpbiBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHRvIFwicmUtaHlkcmF0ZVwiIHRoZSBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2NhdGlvbiAoZS5nIHdoZW4geW91IGdvIHRvIGAvYCwgdGhlcmUgc2hvdWxkIGJlIGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byBgLzpwcm9qZWN0S2V5YCkuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbHkgb24gdGhlIHZhbHVlIGluIGxvY2FsU3RvcmFnZSB0byBkZXRlcm1pbmUgd2hpY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgcHJvamVjdEtleWAgaXMgY3VycmVudGx5IHVzZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0S2V5RnJvbVVybCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGZXRjaFByb2plY3QgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LCBwcm9qZWN0IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTkFWQkFSLndpZHRoTGVmdE5hdmlnYXRpb25XaGVuRXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXsoKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89XCIvYWNjb3VudC9wcm9maWxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPVwiL2FjY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGByZW5kZXJgIGZ1bmN0aW9uLCB3ZSBhc3N1bWUgaXQncyBvbmUgb2YgdHdvIGNhc2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMS4gVGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IHVzZSBgY2hpbGRyZW5gIGFuZCB0aGVyZWZvcmUgaW1wbGVtZW50cyB0aGUgcm91dGVzIGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIDxSb3V0ZUNhdGNoQWxsPiAodGhpcyBpcyB0aGUgXCJsZWdhY3lcIiBiZWhhdmlvcikuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAyLiBJdCdzIHRoZSBhY2NvdW50IGFwcGxpY2F0aW9uLCB3aGljaCBhbHdheXMgdXNlcyBgcmVuZGVyYCBhbmQgdGhlcmVmb3JlIHNob3VsZCByZW5kZXIgYXMgbm9ybWFsLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGBjaGlsZHJlbmAgZnVuY3Rpb24sIHdlIGNhbiBhbHdheXMgYXNzdW1lIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGl0J3MgYSBub3JtYWwgQ3VzdG9tIEFwcGxpY2F0aW9uIGFuZCB0aGF0IGl0IHNob3VsZCB0cmlnZ2VyIGEgZm9yY2UgcmVsb2FkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5yZW5kZXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+e3Byb3BzLnJlbmRlcigpfTwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlQ2F0Y2hBbGwgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBQcm9qZWN0IHJvdXRlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXt0cnVlfSBwYXRoPVwiL1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRVc2VyPy5kZWZhdWx0UHJvamVjdEtleSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTk9URTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgaGFzIG5vdCBiZWVuIGxvYWRlZCBhIGxvYWRpbmcgc3Bpbm5lciBpcyBzaG93bi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIG5vdCB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG5vciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSB1c2VyIHdpbGwgYmUgcHJvbXB0ZWQgdG8gY3JlYXRlIG9uZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgb3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWRpcmVjdCB0byB0aGF0IHByb2plY3QuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbm9ybWFsaXplZFVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz17YC8ke3ByZXZpb3VzUHJvamVjdEtleX1gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e2ZhbHNlfSBwYXRoPVwiLzpwcm9qZWN0S2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByb2plY3RDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17TUNfTUFJTl9DT05UQUlORVJfUE9SVEFMX0lEfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyPlxuICAgICAgICAgICAgICAgICAgPC9TZXR1cEZsb3BGbGlwUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0FzeW5jTG9jYWxlRGF0YT5cbiAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0ZldGNoVXNlcj5cbiAgKTtcbn07XG5BcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZC5kaXNwbGF5TmFtZSA9ICdBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZCc7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkO1xuIl19 */",
|
|
774
782
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
775
783
|
};
|
|
776
|
-
var
|
|
784
|
+
var _ref5 = process.env.NODE_ENV === "production" ? {
|
|
777
785
|
name: "8bdwu0",
|
|
778
786
|
styles: "grid-row:1;grid-column:1/3"
|
|
779
787
|
} : {
|
|
780
788
|
name: "u4fwut-ApplicationShellAuthenticated",
|
|
781
|
-
styles: "grid-row:1;grid-column:1/3;label:ApplicationShellAuthenticated;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdQa0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUywgTkFWQkFSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5IH0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGdldFByZXZpb3VzUHJvamVjdEtleSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBBcHBCYXIgZnJvbSAnLi4vYXBwLWJhcic7XG5pbXBvcnQgQXBwbGljYXRpb25Mb2FkZXIgZnJvbSAnLi4vYXBwbGljYXRpb24tbG9hZGVyJztcbmltcG9ydCB7IGdldEJyb3dzZXJMb2NhbGUgfSBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1wcm92aWRlci91dGlscyc7XG5pbXBvcnQgQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyLmFzeW5jJztcbmltcG9ydCBDb25maWd1cmVJbnRsUHJvdmlkZXIgZnJvbSAnLi4vY29uZmlndXJlLWludGwtcHJvdmlkZXInO1xuaW1wb3J0IEVycm9yQXBvbG9naXplciBmcm9tICcuLi9lcnJvci1hcG9sb2dpemVyJztcbmltcG9ydCBGZXRjaFByb2plY3QgZnJvbSAnLi4vZmV0Y2gtcHJvamVjdCc7XG5pbXBvcnQgRmV0Y2hVc2VyIGZyb20gJy4uL2ZldGNoLXVzZXInO1xuaW1wb3J0IE5hdkJhciBmcm9tICcuLi9uYXZiYXInO1xuaW1wb3J0IFByb2plY3RDb250YWluZXIgZnJvbSAnLi4vcHJvamVjdC1jb250YWluZXInO1xuaW1wb3J0IFJlZGlyZWN0VG9Mb2dvdXQgZnJvbSAnLi4vcmVkaXJlY3QtdG8tbG9nb3V0JztcbmltcG9ydCBSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSBmcm9tICcuLi9yZWRpcmVjdC10by1wcm9qZWN0LWNyZWF0ZSc7XG5pbXBvcnQgUmVxdWVzdHNJbkZsaWdodExvYWRlciBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyJztcbmltcG9ydCBSb3V0ZUNhdGNoQWxsIGZyb20gJy4uL3JvdXRlLWNhdGNoLWFsbCc7XG5pbXBvcnQgU2V0dXBGbG9wRmxpcFByb3ZpZGVyIGZyb20gJy4uL3NldHVwLWZsb3AtZmxpcC1wcm92aWRlcic7XG5pbXBvcnQgVGhlbWVTd2l0Y2hlciBmcm9tICcuLi90aGVtZS1zd2l0Y2hlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPzogYm9vbGVhbjtcbiAgcmVuZGVyPzogKCkgPT4gSlNYLkVsZW1lbnQ7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcblxuY29uc3QgZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IgPSAoZ3JhcGhRTEVycm9yczogQXBvbGxvRXJyb3JbJ2dyYXBoUUxFcnJvcnMnXSkgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSAmJlxuICAgICAgZ3FsRXJyb3IuZXh0ZW5zaW9ucy5jb2RlID09PSAnVU5BVVRIRU5USUNBVEVEJ1xuICApO1xuY29uc3QgZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSAoXG4gIGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ11cbikgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLm1lc3NhZ2UgJiZcbiAgICAgIC8vIE5PVEU6IFRoZSBDVFAgQVBJIGRvZXMgbm90IHByb3ZpZGUgYW4gZXJyb3IgY29kZSBpbiB0aGlzIGNhc2UuXG4gICAgICBncWxFcnJvci5tZXNzYWdlLmluY2x1ZGVzKCd3YXMgbm90IGZvdW5kLicpXG4gICk7XG5cbmV4cG9ydCBjb25zdCBNYWluQ29udGFpbmVyID0gc3R5bGVkLm1haW5gXG4gIGdyaWQtY29sdW1uOiAyLzM7XG4gIGdyaWQtcm93OiAzLzQ7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gIH0+KHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmLFxuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxGZXRjaFVzZXI+XG4gICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdVc2VyLCB1c2VyLCBlcnJvciB9KSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIC8vIEluIGNhc2UgdGhlcmUgaXMgYW4gdW5hdXRob3JpemVkIGVycm9yLCB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZVxuICAgICAgICAgIGlmIChlcnJvci5ncmFwaFFMRXJyb3JzICYmIEFycmF5LmlzQXJyYXkoZXJyb3IuZ3JhcGhRTEVycm9ycykpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VuYXV0aG9yaXplZEVycm9yID0gZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvciA9IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IgfHwgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgbGV0IGxvZ291dFJlYXNvbjpcbiAgICAgICAgICAgICAgICB8ICh0eXBlb2YgTE9HT1VUX1JFQVNPTlMpW2tleW9mIHR5cGVvZiBMT0dPVVRfUkVBU09OU11cbiAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLlVOQVVUSE9SSVpFRDtcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuREVMRVRFRDtcbiAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvTG9nb3V0IHJlYXNvbj17bG9nb3V0UmVhc29ufSAvPjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU2luY2Ugd2UgZG8gbm90IGtub3cgdGhlIGxvY2FsZSBvZiB0aGUgdXNlciwgd2UgcGljayBpdCBmcm9tIHRoZVxuICAgICAgICAgIC8vIHVzZXIncyBicm93c2VyIHRvIGF0dGVtcHQgdG8gbWF0Y2ggdGhlIGxhbmd1YWdlIGZvciB0aGUgY29ycmVjdCB0cmFuc2xhdGlvbnMuXG5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaXMgY3Qgc3RhZmYsIGFuZCBpZiBzbyBnZXQgbGFuZ3VhZ2Ugc2VsZWN0ZWQgdmlhIHN0YWZmIGJhciBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgY29uc3Qgc3RhZmZCYXJMYW5ndWFnZSA9XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ2NvbW1lcmNldG9vbHMnIHx8XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ21haWxvc2F1cidcbiAgICAgICAgICAgID8gc2VsZWN0VXNlckxhbmd1YWdlRnJvbVN0b3JhZ2UoKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ10gfCB1bmRlZmluZWQgPSB1c2VyXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgICAgIC8vIHNldCB0aGUgc3RhZmYgYmFyIGxhbmd1YWdlIGlmIGFwcGxpY2FibGVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IHN0YWZmQmFyTGFuZ3VhZ2UgPz8gdXNlci5sYW5ndWFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e25vcm1hbGl6ZWRVc2VyPy5sYW5ndWFnZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nTG9jYWxlRGF0YSwgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlclxuICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcGFzcyB0aGUgbGFuZ3VhZ2UgYXMgbG9uZyBhcyB0aGUgbG9jYWxlIGRhdGFcbiAgICAgICAgICAgICAgICAgIC8vIGlzIG5vdCBsb2FkZWQuXG4gICAgICAgICAgICAgICAgICB7Li4uKGlzTG9hZGluZ0xvY2FsZURhdGEgPyB7fSA6IHsgbG9jYWxlLCBtZXNzYWdlcyB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U2V0dXBGbG9wRmxpcFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBsb2NhbGU9e2xvY2FsZSA/PyAnZW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17bm9ybWFsaXplZFVzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICcyLzMnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsPXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMi80O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTG9hZGluZyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdVc2VyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdMb2NhbGVEYXRhIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdQcm9qZWN0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbG9jYWxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvamVjdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25NZW51SXRlbUNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Mb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17bm90aWZpY2F0aW9uc1BhZ2VSZWZ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5QQUdFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuU0lERX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSBiZWNhdXNlIHdlIGhhdmUgYW4gaW50ZXJtZWRpYXJ5IDxkaXY+IHdyYXBwaW5nIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Vmlldz4gY29tcG9uZW50IHRoYXQgaXMgdXNlZCB0byB3cmFwIGV2ZXJ5IGNvbnRlbnQtdmlldy4gVGhpcyBpbnRlcm1lZGlhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gaXMgc29sZWx5IHVzZWQgZm9yIGFkZGluZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgY29udGVudC12aWV3LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3dldmVyLCB0aGlzIGNvdWxkIGJlIGRvbmUgYnkgcGFzc2luZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgPFZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBsZXQgaXQgZG8gdGhlIGxheW91dCwgc28gd2UgY2FuIGF2b2lkIGxheWluZyBvdXIgZnJvbSB0aGUgb3V0c2lkZSBhcyB3ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbyBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAqOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvcnRhbHNDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2xheW91dFJlZnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFRvcD17RElNRU5TSU9OUy5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE5BVkJBUi53aWR0aExlZnROYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvbldoZW5FeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9eygpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFub3JtYWxpemVkVXNlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxBcHBsaWNhdGlvbkxvYWRlciAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNQcm9qZWN0S2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Qcm9qZWN0Q3JlYXRlIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0IHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBlZmZlY3RpdmVseSByZW5kZXJzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hpbGRyZW4sIHdoaWNoIGlzIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lmaWMgcGFydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXtwcm9wcy5yZW5kZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUHJvamVjdENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3dpdGNoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L01haW5Db250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uU2hlbGxTcGxpdHRlcj5cbiAgICAgICAgICAgICAgICAgIDwvU2V0dXBGbG9wRmxpcFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvQ29uZmlndXJlSW50bFByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgKTtcbiAgICAgIH19XG4gICAgPC9GZXRjaFVzZXI+XG4gICk7XG59O1xuQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQuZGlzcGxheU5hbWUgPSAnQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQnO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZDtcbiJdfQ== */",
|
|
789
|
+
styles: "grid-row:1;grid-column:1/3;label:ApplicationShellAuthenticated;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Qa0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgRE9NQUlOUyxcbiAgTE9HT1VUX1JFQVNPTlMsXG4gIE1DX01BSU5fQ09OVEFJTkVSX1BPUlRBTF9JRCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEFzeW5jTG9jYWxlRGF0YVByb3BzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBBc3luY0xvY2FsZURhdGEgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNMaXN0IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcmVhY3Qtbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge1xuICByZXBvcnRFcnJvclRvU2VudHJ5LFxuICBTZW50cnlVc2VyVHJhY2tlcixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCB7IERJTUVOU0lPTlMsIE5BVkJBUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci5hc3luYyc7XG5pbXBvcnQgQ29uZmlndXJlSW50bFByb3ZpZGVyIGZyb20gJy4uL2NvbmZpZ3VyZS1pbnRsLXByb3ZpZGVyJztcbmltcG9ydCBFcnJvckFwb2xvZ2l6ZXIgZnJvbSAnLi4vZXJyb3ItYXBvbG9naXplcic7XG5pbXBvcnQgRmV0Y2hQcm9qZWN0IGZyb20gJy4uL2ZldGNoLXByb2plY3QnO1xuaW1wb3J0IEZldGNoVXNlciBmcm9tICcuLi9mZXRjaC11c2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBQcm9qZWN0Q29udGFpbmVyIGZyb20gJy4uL3Byb2plY3QtY29udGFpbmVyJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuXG50eXBlIFRBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRpb25Qcm9wcyA9IHtcbiAgZmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBkZWZhdWx0RmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBhcHBsaWNhdGlvbk1lc3NhZ2VzOiBUQXN5bmNMb2NhbGVEYXRhUHJvcHNbJ2FwcGxpY2F0aW9uTWVzc2FnZXMnXTtcbiAgb25NZW51SXRlbUNsaWNrPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMi8zO1xuICBncmlkLXJvdzogMy80O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuXG4gICAgICAgICAgY29uc3QgdXNlckxvY2FsZSA9IGdldEJyb3dzZXJMb2NhbGUod2luZG93KTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGN0IHN0YWZmLCBhbmQgaWYgc28gZ2V0IGxhbmd1YWdlIHNlbGVjdGVkIHZpYSBzdGFmZiBiYXIgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAgICAgIGNvbnN0IHN0YWZmQmFyTGFuZ3VhZ2UgPVxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdjb21tZXJjZXRvb2xzJyB8fFxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdtYWlsb3NhdXInXG4gICAgICAgICAgICA/IHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlKClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVc2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddIHwgdW5kZWZpbmVkID0gdXNlclxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgICAvLyBzZXQgdGhlIHN0YWZmIGJhciBsYW5ndWFnZSBpZiBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBzdGFmZkJhckxhbmd1YWdlID8/IHVzZXIubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgey8qXG4gICAgICAgICAgICBOT1RFOiB3ZSBkbyBub3Qgd2FudCB0byBsb2FkIHRoZSBsb2NhbGUgZGF0YSBhcyBsb25nIGFzIHdlIGRvIG5vdFxuICAgICAgICAgICAga25vdyB0aGUgdXNlciBzZXR0aW5nLiBUaGlzIGlzIGltcG9ydGFudCBpbiBvcmRlciB0byBhdm9pZCBmbGFzaGluZ1xuICAgICAgICAgICAgb2YgdHJhbnNsYXRlZCBjb250ZW50IG9uIHN1YnNlcXVlbnQgcmUtcmVuZGVycy5cbiAgICAgICAgICAgIFRoZXJlZm9yZSwgYXMgbG9uZyBhcyB0aGVyZSBpcyBubyBsb2NhbGUsIHRoZSBjaGlsZHJlbiBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhlXG4gICAgICAgICAgICBgaXNMb2FkaW5nYCBwcm9wIHRvIGRlY2lkZSB3aGF0IHRvIHJlbmRlci5cbiAgICAgICAgICAqL31cbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXtub3JtYWxpemVkVXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvblNoZWxsU3BsaXR0ZXIgbG9jYWxlPXtsb2NhbGUgPz8gJ2VuJ30+XG4gICAgICAgICAgICAgICAgICAgICAgPFRoZW1lU3dpdGNoZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB7LyogTk9URTogdGhlIHJlcXVlc3RzIGluIGZsaWdodCBsb2FkZXIgd2lsbCByZW5kZXIgYSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgc3Bpbm5lciBpbnRvIHRoZSBBcHBCYXIuICovfVxuICAgICAgICAgICAgICAgICAgICAgIDxSZXF1ZXN0c0luRmxpZ2h0TG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbnRyeVVzZXJUcmFja2VyIHVzZXI9e25vcm1hbGl6ZWRVc2VyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25vdGlmaWNhdGlvbnNHbG9iYWxSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYWJvdmUtdG9wLW5hdmlnYXRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLkdMT0JBTH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogJzIvMyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDIvNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgPE5hdkJhcj4gc2hvdWxkIG9ubHkgYmUgcmVuZGVyZWQgd2l0aGluIGEgcHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRleHQsIHRoZXJlZm9yZSB3aGVuIHRoZXJlIGlzIGEgYHByb2plY3RLZXlgLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGBwcm9qZWN0S2V5YCBpbiB0aGUgVVJMIChlLmcuIGAvYWNjb3VudGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZXMpLCB3ZSBkb24ndCByZW5kZXIgaXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogd2UgYWxzbyBcImNhY2hlXCIgdGhlIGBwcm9qZWN0S2V5YCBpbiBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHRvIFwicmUtaHlkcmF0ZVwiIHRoZSBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2NhdGlvbiAoZS5nIHdoZW4geW91IGdvIHRvIGAvYCwgdGhlcmUgc2hvdWxkIGJlIGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byBgLzpwcm9qZWN0S2V5YCkuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbHkgb24gdGhlIHZhbHVlIGluIGxvY2FsU3RvcmFnZSB0byBkZXRlcm1pbmUgd2hpY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgcHJvamVjdEtleWAgaXMgY3VycmVudGx5IHVzZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0S2V5RnJvbVVybCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGZXRjaFByb2plY3QgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LCBwcm9qZWN0IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTkFWQkFSLndpZHRoTGVmdE5hdmlnYXRpb25XaGVuRXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXsoKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89XCIvYWNjb3VudC9wcm9maWxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPVwiL2FjY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGByZW5kZXJgIGZ1bmN0aW9uLCB3ZSBhc3N1bWUgaXQncyBvbmUgb2YgdHdvIGNhc2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMS4gVGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IHVzZSBgY2hpbGRyZW5gIGFuZCB0aGVyZWZvcmUgaW1wbGVtZW50cyB0aGUgcm91dGVzIGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIDxSb3V0ZUNhdGNoQWxsPiAodGhpcyBpcyB0aGUgXCJsZWdhY3lcIiBiZWhhdmlvcikuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAyLiBJdCdzIHRoZSBhY2NvdW50IGFwcGxpY2F0aW9uLCB3aGljaCBhbHdheXMgdXNlcyBgcmVuZGVyYCBhbmQgdGhlcmVmb3JlIHNob3VsZCByZW5kZXIgYXMgbm9ybWFsLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGBjaGlsZHJlbmAgZnVuY3Rpb24sIHdlIGNhbiBhbHdheXMgYXNzdW1lIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGl0J3MgYSBub3JtYWwgQ3VzdG9tIEFwcGxpY2F0aW9uIGFuZCB0aGF0IGl0IHNob3VsZCB0cmlnZ2VyIGEgZm9yY2UgcmVsb2FkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5yZW5kZXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+e3Byb3BzLnJlbmRlcigpfTwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlQ2F0Y2hBbGwgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBQcm9qZWN0IHJvdXRlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXt0cnVlfSBwYXRoPVwiL1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRVc2VyPy5kZWZhdWx0UHJvamVjdEtleSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTk9URTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgaGFzIG5vdCBiZWVuIGxvYWRlZCBhIGxvYWRpbmcgc3Bpbm5lciBpcyBzaG93bi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIG5vdCB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG5vciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSB1c2VyIHdpbGwgYmUgcHJvbXB0ZWQgdG8gY3JlYXRlIG9uZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgb3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWRpcmVjdCB0byB0aGF0IHByb2plY3QuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbm9ybWFsaXplZFVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz17YC8ke3ByZXZpb3VzUHJvamVjdEtleX1gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e2ZhbHNlfSBwYXRoPVwiLzpwcm9qZWN0S2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByb2plY3RDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17TUNfTUFJTl9DT05UQUlORVJfUE9SVEFMX0lEfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyPlxuICAgICAgICAgICAgICAgICAgPC9TZXR1cEZsb3BGbGlwUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0FzeW5jTG9jYWxlRGF0YT5cbiAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0ZldGNoVXNlcj5cbiAgKTtcbn07XG5BcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZC5kaXNwbGF5TmFtZSA9ICdBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZCc7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkO1xuIl19 */",
|
|
782
790
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
|
|
783
791
|
};
|
|
784
792
|
const ApplicationShellAuthenticated = props => {
|
|
@@ -796,10 +804,10 @@ const ApplicationShellAuthenticated = props => {
|
|
|
796
804
|
notificationsPageRef
|
|
797
805
|
});
|
|
798
806
|
return jsx(FetchUser, {
|
|
799
|
-
children:
|
|
800
|
-
let isLoadingUser =
|
|
801
|
-
user =
|
|
802
|
-
error =
|
|
807
|
+
children: _ref6 => {
|
|
808
|
+
let isLoadingUser = _ref6.isLoading,
|
|
809
|
+
user = _ref6.user,
|
|
810
|
+
error = _ref6.error;
|
|
803
811
|
if (error) {
|
|
804
812
|
// In case there is an unauthorized error, we redirect to the login page
|
|
805
813
|
if (error.graphQLErrors && _Array$isArray(error.graphQLErrors)) {
|
|
@@ -820,9 +828,9 @@ const ApplicationShellAuthenticated = props => {
|
|
|
820
828
|
return jsx(AsyncLocaleData, {
|
|
821
829
|
locale: userLocale,
|
|
822
830
|
applicationMessages: props.applicationMessages,
|
|
823
|
-
children:
|
|
824
|
-
let locale =
|
|
825
|
-
messages =
|
|
831
|
+
children: _ref7 => {
|
|
832
|
+
let locale = _ref7.locale,
|
|
833
|
+
messages = _ref7.messages;
|
|
826
834
|
reportErrorToSentry(error, {});
|
|
827
835
|
return jsx(ConfigureIntlProvider, {
|
|
828
836
|
locale: locale,
|
|
@@ -846,10 +854,10 @@ const ApplicationShellAuthenticated = props => {
|
|
|
846
854
|
children: jsx(AsyncLocaleData, {
|
|
847
855
|
locale: normalizedUser?.language,
|
|
848
856
|
applicationMessages: props.applicationMessages,
|
|
849
|
-
children:
|
|
850
|
-
let isLoadingLocaleData =
|
|
851
|
-
locale =
|
|
852
|
-
messages =
|
|
857
|
+
children: _ref8 => {
|
|
858
|
+
let isLoadingLocaleData = _ref8.isLoading,
|
|
859
|
+
locale = _ref8.locale,
|
|
860
|
+
messages = _ref8.messages;
|
|
853
861
|
return jsx(ConfigureIntlProvider
|
|
854
862
|
// We do not want to pass the language as long as the locale data
|
|
855
863
|
// is not loaded.
|
|
@@ -868,25 +876,25 @@ const ApplicationShellAuthenticated = props => {
|
|
|
868
876
|
children: [jsx(ThemeSwitcher, {}), jsx(RequestsInFlightLoader, {}), jsx(SentryUserTracker, {
|
|
869
877
|
user: normalizedUser
|
|
870
878
|
}), jsxs("div", {
|
|
871
|
-
css: /*#__PURE__*/css("height:100vh;display:grid;grid-template-rows:auto ", DIMENSIONS.header, " 1fr;grid-template-columns:min-content 1fr;" + (process.env.NODE_ENV === "production" ? "" : ";label:ApplicationShellAuthenticated;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFPZ0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRE9NQUlOUywgTE9HT1VUX1JFQVNPTlMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUgeyBUQXN5bmNMb2NhbGVEYXRhUHJvcHMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IEFzeW5jTG9jYWxlRGF0YSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2kxOG4nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc0xpc3QgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9yZWFjdC1ub3RpZmljYXRpb25zJztcbmltcG9ydCB7XG4gIHJlcG9ydEVycm9yVG9TZW50cnksXG4gIFNlbnRyeVVzZXJUcmFja2VyLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9zZW50cnknO1xuaW1wb3J0IHsgRElNRU5TSU9OUywgTkFWQkFSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5IH0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL21jJztcbmltcG9ydCB7IGdldFByZXZpb3VzUHJvamVjdEtleSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBBcHBCYXIgZnJvbSAnLi4vYXBwLWJhcic7XG5pbXBvcnQgQXBwbGljYXRpb25Mb2FkZXIgZnJvbSAnLi4vYXBwbGljYXRpb24tbG9hZGVyJztcbmltcG9ydCB7IGdldEJyb3dzZXJMb2NhbGUgfSBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1wcm92aWRlci91dGlscyc7XG5pbXBvcnQgQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyL2FwcGxpY2F0aW9uLXNoZWxsLXNwbGl0dGVyLmFzeW5jJztcbmltcG9ydCBDb25maWd1cmVJbnRsUHJvdmlkZXIgZnJvbSAnLi4vY29uZmlndXJlLWludGwtcHJvdmlkZXInO1xuaW1wb3J0IEVycm9yQXBvbG9naXplciBmcm9tICcuLi9lcnJvci1hcG9sb2dpemVyJztcbmltcG9ydCBGZXRjaFByb2plY3QgZnJvbSAnLi4vZmV0Y2gtcHJvamVjdCc7XG5pbXBvcnQgRmV0Y2hVc2VyIGZyb20gJy4uL2ZldGNoLXVzZXInO1xuaW1wb3J0IE5hdkJhciBmcm9tICcuLi9uYXZiYXInO1xuaW1wb3J0IFByb2plY3RDb250YWluZXIgZnJvbSAnLi4vcHJvamVjdC1jb250YWluZXInO1xuaW1wb3J0IFJlZGlyZWN0VG9Mb2dvdXQgZnJvbSAnLi4vcmVkaXJlY3QtdG8tbG9nb3V0JztcbmltcG9ydCBSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSBmcm9tICcuLi9yZWRpcmVjdC10by1wcm9qZWN0LWNyZWF0ZSc7XG5pbXBvcnQgUmVxdWVzdHNJbkZsaWdodExvYWRlciBmcm9tICcuLi9yZXF1ZXN0cy1pbi1mbGlnaHQtbG9hZGVyJztcbmltcG9ydCBSb3V0ZUNhdGNoQWxsIGZyb20gJy4uL3JvdXRlLWNhdGNoLWFsbCc7XG5pbXBvcnQgU2V0dXBGbG9wRmxpcFByb3ZpZGVyIGZyb20gJy4uL3NldHVwLWZsb3AtZmxpcC1wcm92aWRlcic7XG5pbXBvcnQgVGhlbWVTd2l0Y2hlciBmcm9tICcuLi90aGVtZS1zd2l0Y2hlcic7XG5cbnR5cGUgVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzID0ge1xuICBmZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGRlZmF1bHRGZWF0dXJlRmxhZ3M/OiBURmxhZ3M7XG4gIGFwcGxpY2F0aW9uTWVzc2FnZXM6IFRBc3luY0xvY2FsZURhdGFQcm9wc1snYXBwbGljYXRpb25NZXNzYWdlcyddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4gdm9pZDtcbiAgZGlzYWJsZVJvdXRlUGVybWlzc2lvbkNoZWNrPzogYm9vbGVhbjtcbiAgcmVuZGVyPzogKCkgPT4gSlNYLkVsZW1lbnQ7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcblxuY29uc3QgZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IgPSAoZ3JhcGhRTEVycm9yczogQXBvbGxvRXJyb3JbJ2dyYXBoUUxFcnJvcnMnXSkgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSAmJlxuICAgICAgZ3FsRXJyb3IuZXh0ZW5zaW9ucy5jb2RlID09PSAnVU5BVVRIRU5USUNBVEVEJ1xuICApO1xuY29uc3QgZ2V0SGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSAoXG4gIGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ11cbikgPT5cbiAgZ3JhcGhRTEVycm9ycy5maW5kKFxuICAgIChncWxFcnJvcikgPT5cbiAgICAgIGdxbEVycm9yLm1lc3NhZ2UgJiZcbiAgICAgIC8vIE5PVEU6IFRoZSBDVFAgQVBJIGRvZXMgbm90IHByb3ZpZGUgYW4gZXJyb3IgY29kZSBpbiB0aGlzIGNhc2UuXG4gICAgICBncWxFcnJvci5tZXNzYWdlLmluY2x1ZGVzKCd3YXMgbm90IGZvdW5kLicpXG4gICk7XG5cbmV4cG9ydCBjb25zdCBNYWluQ29udGFpbmVyID0gc3R5bGVkLm1haW5gXG4gIGdyaWQtY29sdW1uOiAyLzM7XG4gIGdyaWQtcm93OiAzLzQ7XG5cbiAgLypcbiAgICBBbGxvdyB0aGUgdGhpcyBmbGV4IGNoaWxkIHRvIGdyb3cgc21hbGxlciB0aGFuIGl0cyBzbWFsbGVzdCBjb250ZW50LlxuICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4gdGhlcmUgaXMgYSByZWFsbHkgd2lkZSB0ZXh0IGluc2lkZSB0aGF0IHdvdWxkIHN0cmV0Y2hcbiAgICB0aGlzIG5vZGUgdG8gYmUgd2lkZXIgdGhhbiB0aGUgcGFyZW50LlxuICAqL1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gIC8qXG4gICAgbGF5b3V0IHRoZSBjaGlsZHJlbi4gVGhlcmUgd2lsbCBhbHdheXMgYmUgdGhlIHBhZ2UgYW5kIHNpZGUgbm90aWZpY2F0aW9uXG4gICAgYWJvdXQgdGhlIGFjdHVhbCBjb250ZW50LiBUaGUgY29udGVudCBzaG91bGQgc3RyZXRjaCB0byBmaWxsIHRoZSByZXN0IG9mXG4gICAgdGhlIHBhZ2UuXG4gICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLypcbiAgICBzZXQgcG9zaXRpb24gdG8gcmVsYXRpdmUgdG8gbGF5b3V0IG5vdGlmaWNhdGlvbnMgYW5kIG1vZGFsc1xuICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlbmRlcmVkIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGNvbnNpZGVyZWQgXCJhdXRoZW50aWNhdGVkXCJcbiAqIGFuZCBjb250YWlucyB0aGUgXCJyZXN0cmljdGVkXCIgYXBwbGljYXRpb24gcGFydC5cbiAqL1xuXG5leHBvcnQgY29uc3QgQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQgPSAoXG4gIHByb3BzOiBUQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0aW9uUHJvcHNcbikgPT4ge1xuICBjb25zdCBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0gdXNlQXBwbGljYXRpb25Db250ZXh0KFxuICAgIChjb250ZXh0KSA9PiBjb250ZXh0LmVudmlyb25tZW50XG4gICkgYXMgVEFwcGxpY2F0aW9uQ29udGV4dDx7fT5bJ2Vudmlyb25tZW50J107XG4gIC8vIFRPRE86IHVzaW5nIHRoaXMgaG9vayB3aWxsIHN1YnNjcmliZSB0aGUgY29tcG9uZW50IHRvIHJvdXRlIHVwZGF0ZXMuXG4gIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGEgY2hhbmdlIGluIHRoZSBwcm9qZWN0IGtleVxuICAvLyBmcm9tIFVSTCAoXCIvXCIgLS0+IFwiLzpwcm9qZWN0S2V5XCIpLlxuICAvLyBIb3dldmVyLCBldmVyeSByb3V0ZSBjaGFuZ2Ugd2lsbCB0cmlnZ2VyIGEgcmUtcmVuZGVyLiBUaGlzIGlzIHByb2JhYmx5XG4gIC8vIG9rLWlzaCBidXQgd2UgbWlnaHQgd2FudCB0byBsb29rIGludG8gYSBtb3JlIHBlcmZvcm1hbnQgc29sdXRpb24uXG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcblxuICBjb25zdCBub3RpZmljYXRpb25zR2xvYmFsUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1BhZ2VSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsYXlvdXRSZWZzID0gdXNlUmVmPHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gIH0+KHtcbiAgICBub3RpZmljYXRpb25zR2xvYmFsUmVmLFxuICAgIG5vdGlmaWNhdGlvbnNQYWdlUmVmLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxGZXRjaFVzZXI+XG4gICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdVc2VyLCB1c2VyLCBlcnJvciB9KSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIC8vIEluIGNhc2UgdGhlcmUgaXMgYW4gdW5hdXRob3JpemVkIGVycm9yLCB3ZSByZWRpcmVjdCB0byB0aGUgbG9naW4gcGFnZVxuICAgICAgICAgIGlmIChlcnJvci5ncmFwaFFMRXJyb3JzICYmIEFycmF5LmlzQXJyYXkoZXJyb3IuZ3JhcGhRTEVycm9ycykpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VuYXV0aG9yaXplZEVycm9yID0gZ2V0SGFzVW5hdXRob3JpemVkRXJyb3IoXG4gICAgICAgICAgICAgIGVycm9yLmdyYXBoUUxFcnJvcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBoYXNVc2VyQmVlbkRlbGV0ZWRFcnJvciA9IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoaGFzVW5hdXRob3JpemVkRXJyb3IgfHwgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgbGV0IGxvZ291dFJlYXNvbjpcbiAgICAgICAgICAgICAgICB8ICh0eXBlb2YgTE9HT1VUX1JFQVNPTlMpW2tleW9mIHR5cGVvZiBMT0dPVVRfUkVBU09OU11cbiAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLlVOQVVUSE9SSVpFRDtcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaGFzVXNlckJlZW5EZWxldGVkRXJyb3IpXG4gICAgICAgICAgICAgICAgbG9nb3V0UmVhc29uID0gTE9HT1VUX1JFQVNPTlMuREVMRVRFRDtcbiAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvTG9nb3V0IHJlYXNvbj17bG9nb3V0UmVhc29ufSAvPjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU2luY2Ugd2UgZG8gbm90IGtub3cgdGhlIGxvY2FsZSBvZiB0aGUgdXNlciwgd2UgcGljayBpdCBmcm9tIHRoZVxuICAgICAgICAgIC8vIHVzZXIncyBicm93c2VyIHRvIGF0dGVtcHQgdG8gbWF0Y2ggdGhlIGxhbmd1YWdlIGZvciB0aGUgY29ycmVjdCB0cmFuc2xhdGlvbnMuXG5cbiAgICAgICAgICBjb25zdCB1c2VyTG9jYWxlID0gZ2V0QnJvd3NlckxvY2FsZSh3aW5kb3cpO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXt1c2VyTG9jYWxlfVxuICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1lc3NhZ2VzPXtwcm9wcy5hcHBsaWNhdGlvbk1lc3NhZ2VzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7KHsgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVwb3J0RXJyb3JUb1NlbnRyeShlcnJvciwge30pO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8Q29uZmlndXJlSW50bFByb3ZpZGVyIGxvY2FsZT17bG9jYWxlfSBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JBcG9sb2dpemVyIC8+XG4gICAgICAgICAgICAgICAgICA8L0NvbmZpZ3VyZUludGxQcm92aWRlcj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByb2plY3RLZXlGcm9tVXJsID0gc2VsZWN0UHJvamVjdEtleUZyb21VcmwobG9jYXRpb24ucGF0aG5hbWUpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaXMgY3Qgc3RhZmYsIGFuZCBpZiBzbyBnZXQgbGFuZ3VhZ2Ugc2VsZWN0ZWQgdmlhIHN0YWZmIGJhciBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgY29uc3Qgc3RhZmZCYXJMYW5ndWFnZSA9XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ2NvbW1lcmNldG9vbHMnIHx8XG4gICAgICAgICAgdXNlcj8ubGF1bmNoZGFya2x5VHJhY2tpbmdHcm91cCA9PT0gJ21haWxvc2F1cidcbiAgICAgICAgICAgID8gc2VsZWN0VXNlckxhbmd1YWdlRnJvbVN0b3JhZ2UoKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFVzZXI6IFRGZXRjaExvZ2dlZEluVXNlclF1ZXJ5Wyd1c2VyJ10gfCB1bmRlZmluZWQgPSB1c2VyXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgICAgIC8vIHNldCB0aGUgc3RhZmYgYmFyIGxhbmd1YWdlIGlmIGFwcGxpY2FibGVcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IHN0YWZmQmFyTGFuZ3VhZ2UgPz8gdXNlci5sYW5ndWFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxBcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlclxuICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LypcbiAgICAgICAgICAgIE5PVEU6IHdlIGRvIG5vdCB3YW50IHRvIGxvYWQgdGhlIGxvY2FsZSBkYXRhIGFzIGxvbmcgYXMgd2UgZG8gbm90XG4gICAgICAgICAgICBrbm93IHRoZSB1c2VyIHNldHRpbmcuIFRoaXMgaXMgaW1wb3J0YW50IGluIG9yZGVyIHRvIGF2b2lkIGZsYXNoaW5nXG4gICAgICAgICAgICBvZiB0cmFuc2xhdGVkIGNvbnRlbnQgb24gc3Vic2VxdWVudCByZS1yZW5kZXJzLlxuICAgICAgICAgICAgVGhlcmVmb3JlLCBhcyBsb25nIGFzIHRoZXJlIGlzIG5vIGxvY2FsZSwgdGhlIGNoaWxkcmVuIHNob3VsZCBjb25zaWRlciB1c2luZyB0aGVcbiAgICAgICAgICAgIGBpc0xvYWRpbmdgIHByb3AgdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyLlxuICAgICAgICAgICovfVxuICAgICAgICAgICAgPEFzeW5jTG9jYWxlRGF0YVxuICAgICAgICAgICAgICBsb2NhbGU9e25vcm1hbGl6ZWRVc2VyPy5sYW5ndWFnZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nTG9jYWxlRGF0YSwgbG9jYWxlLCBtZXNzYWdlcyB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlclxuICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcGFzcyB0aGUgbGFuZ3VhZ2UgYXMgbG9uZyBhcyB0aGUgbG9jYWxlIGRhdGFcbiAgICAgICAgICAgICAgICAgIC8vIGlzIG5vdCBsb2FkZWQuXG4gICAgICAgICAgICAgICAgICB7Li4uKGlzTG9hZGluZ0xvY2FsZURhdGEgPyB7fSA6IHsgbG9jYWxlLCBtZXNzYWdlcyB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U2V0dXBGbG9wRmxpcFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgbGRDbGllbnRTaWRlSWQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnQubGRDbGllbnRTaWRlSWR9XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzPXtwcm9wcy5mZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGbGFncz17cHJvcHMuZGVmYXVsdEZlYXR1cmVGbGFnc31cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBsb2NhbGU9e2xvY2FsZSA/PyAnZW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGhlbWVTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgICAgICAgIHsvKiBOT1RFOiB0aGUgcmVxdWVzdHMgaW4gZmxpZ2h0IGxvYWRlciB3aWxsIHJlbmRlciBhIGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICBzcGlubmVyIGludG8gdGhlIEFwcEJhci4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgPFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VudHJ5VXNlclRyYWNrZXIgdXNlcj17bm9ybWFsaXplZFVzZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAke0RJTUVOU0lPTlMuaGVhZGVyfSAxZnI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bm90aWZpY2F0aW9uc0dsb2JhbFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhYm92ZS10b3AtbmF2aWdhdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuR0xPQkFMfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6ICcyLzMnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsPXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMi80O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSA8TmF2QmFyPiBzaG91bGQgb25seSBiZSByZW5kZXJlZCB3aXRoaW4gYSBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGV4dCwgdGhlcmVmb3JlIHdoZW4gdGhlcmUgaXMgYSBgcHJvamVjdEtleWAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYHByb2plY3RLZXlgIGluIHRoZSBVUkwgKGUuZy4gYC9hY2NvdW50YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdXRlcyksIHdlIGRvbid0IHJlbmRlciBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBhbHNvIFwiY2FjaGVcIiB0aGUgYHByb2plY3RLZXlgIGluIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gXCJyZS1oeWRyYXRlXCIgdGhlIFVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvY2F0aW9uIChlLmcgd2hlbiB5b3UgZ28gdG8gYC9gLCB0aGVyZSBzaG91bGQgYmUgYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGAvOnByb2plY3RLZXlgKS4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVseSBvbiB0aGUgdmFsdWUgaW4gbG9jYWxTdG9yYWdlIHRvIGRldGVybWluZSB3aGljaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBwcm9qZWN0S2V5YCBpcyBjdXJyZW50bHkgdXNlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2plY3RLZXlGcm9tVXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZldGNoUHJvamVjdCBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ1Byb2plY3QsIHByb2plY3QgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTG9hZGluZyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdVc2VyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdMb2NhbGVEYXRhIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmdQcm9qZWN0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbG9jYWxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvamVjdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBkbyBub3QgcGFzcyB0aGUgYHByb2plY3RgIGludG8gdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIE5hdmJhciBhcmUgcmVzb2x2ZWQgc2VwYXJhdGVseSwgd2l0aGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IFJlYWN0IGNvbnRleHQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb2plY3RLZXlGcm9tVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9e3Byb2plY3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25NZW51SXRlbUNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZldGNoUHJvamVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1VzZXIgfHwgaXNMb2FkaW5nTG9jYWxlRGF0YSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXBwbGljYXRpb25Mb2FkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9NYWluQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPE1haW5Db250YWluZXIgcm9sZT1cIm1haW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHJlZj17bm90aWZpY2F0aW9uc1BhZ2VSZWZ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0IGRvbWFpbj17RE9NQUlOUy5QQUdFfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuU0lERX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBvbmx5IG5lY2Vzc2FyeSBiZWNhdXNlIHdlIGhhdmUgYW4gaW50ZXJtZWRpYXJ5IDxkaXY+IHdyYXBwaW5nIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Vmlldz4gY29tcG9uZW50IHRoYXQgaXMgdXNlZCB0byB3cmFwIGV2ZXJ5IGNvbnRlbnQtdmlldy4gVGhpcyBpbnRlcm1lZGlhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gaXMgc29sZWx5IHVzZWQgZm9yIGFkZGluZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgY29udGVudC12aWV3LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIb3dldmVyLCB0aGlzIGNvdWxkIGJlIGRvbmUgYnkgcGFzc2luZyB0aGUgdHJhY2tpbmcgY29udGV4dCB0byB0aGUgPFZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBsZXQgaXQgZG8gdGhlIGxheW91dCwgc28gd2UgY2FuIGF2b2lkIGxheWluZyBvdXIgZnJvbSB0aGUgb3V0c2lkZSBhcyB3ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbyBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAqOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvcnRhbHNDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e2xheW91dFJlZnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFRvcD17RElNRU5TSU9OUy5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RLZXlGcm9tVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE5BVkJBUi53aWR0aExlZnROYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0TGVmdE9uRXhwYW5kZWRNZW51PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvbldoZW5FeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXI9eygpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz1cIi9hY2NvdW50L3Byb2ZpbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIHBhdGg9XCIvYWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYHJlbmRlcmAgZnVuY3Rpb24sIHdlIGFzc3VtZSBpdCdzIG9uZSBvZiB0d28gY2FzZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIGBjaGlsZHJlbmAgYW5kIHRoZXJlZm9yZSBpbXBsZW1lbnRzIHRoZSByb3V0ZXMgaW5jbHVkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgPFJvdXRlQ2F0Y2hBbGw+ICh0aGlzIGlzIHRoZSBcImxlZ2FjeVwiIGJlaGF2aW9yKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIEl0J3MgdGhlIGFjY291bnQgYXBwbGljYXRpb24sIHdoaWNoIGFsd2F5cyB1c2VzIGByZW5kZXJgIGFuZCB0aGVyZWZvcmUgc2hvdWxkIHJlbmRlciBhcyBub3JtYWwuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSW4gY2FzZSB0aGUgQXBwU2hlbGwgdXNlcyB0aGUgYGNoaWxkcmVuYCBmdW5jdGlvbiwgd2UgY2FuIGFsd2F5cyBhc3N1bWUgdGhhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXQncyBhIG5vcm1hbCBDdXN0b20gQXBwbGljYXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIHRyaWdnZXIgYSBmb3JjZSByZWxvYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnJlbmRlciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD57cHJvcHMucmVuZGVyKCl9PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGVDYXRjaEFsbCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIFByb2plY3Qgcm91dGVzICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e3RydWV9IHBhdGg9XCIvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1Byb2plY3RLZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmV2aW91c1Byb2plY3RLZXkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFVzZXI/LmRlZmF1bHRQcm9qZWN0S2V5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOT1RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciBoYXMgbm90IGJlZW4gbG9hZGVkIGEgbG9hZGluZyBzcGlubmVyIGlzIHNob3duLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgbm90IHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgbm9yIGhhcyBhIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgcHJvamVjdCwgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjcmVhdGUgb25lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBHaXZlbiB0aGUgdXNlciB3YXMgd29ya2luZyBvbiBhIHByb2plY3QgcHJldmlvdXNseSBvciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcHJvamVjdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFub3JtYWxpemVkVXNlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxBcHBsaWNhdGlvbkxvYWRlciAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNQcm9qZWN0S2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFJlZGlyZWN0VG9Qcm9qZWN0Q3JlYXRlIC8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0IHRvPXtgLyR7cHJldmlvdXNQcm9qZWN0S2V5fWB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBleGFjdD17ZmFsc2V9IHBhdGg9XCIvOnByb2plY3RLZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UHJvamVjdENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcj17bm9ybWFsaXplZFVzZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBlZmZlY3RpdmVseSByZW5kZXJzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hpbGRyZW4sIHdoaWNoIGlzIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lmaWMgcGFydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXtwcm9wcy5yZW5kZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUHJvamVjdENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Sb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3dpdGNoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L01haW5Db250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L0FwcGxpY2F0aW9uU2hlbGxTcGxpdHRlcj5cbiAgICAgICAgICAgICAgICAgIDwvU2V0dXBGbG9wRmxpcFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvQ29uZmlndXJlSW50bFByb3ZpZGVyPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Bc3luY0xvY2FsZURhdGE+XG4gICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgKTtcbiAgICAgIH19XG4gICAgPC9GZXRjaFVzZXI+XG4gICk7XG59O1xuQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQuZGlzcGxheU5hbWUgPSAnQXBwbGljYXRpb25TaGVsbEF1dGhlbnRpY2F0ZWQnO1xuXG5leHBvcnQgZGVmYXVsdCBBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZDtcbiJdfQ== */"),
|
|
879
|
+
css: /*#__PURE__*/css("height:100vh;display:grid;grid-template-rows:auto ", DIMENSIONS.header, " 1fr;grid-template-columns:min-content 1fr;" + (process.env.NODE_ENV === "production" ? "" : ";label:ApplicationShellAuthenticated;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLXNoZWxsLWF1dGhlbnRpY2F0ZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlPZ0MiLCJmaWxlIjoiYXBwbGljYXRpb24tc2hlbGwtYXV0aGVudGljYXRlZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU1gsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbiAgdHlwZSBTeW50aGV0aWNFdmVudCxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgdHlwZSB7IEFwb2xsb0Vycm9yIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgVEZsYWdzIH0gZnJvbSAnQGZsb3BmbGlwL3R5cGVzJztcbmltcG9ydCB7IFJlZGlyZWN0LCBSb3V0ZSwgU3dpdGNoLCB1c2VMb2NhdGlvbiB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgUG9ydGFsc0NvbnRhaW5lciB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXIsXG4gIHNlbGVjdFByb2plY3RLZXlGcm9tVXJsLFxuICB1c2VBcHBsaWNhdGlvbkNvbnRleHQsXG4gIHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlLFxuICB0eXBlIFRBcHBsaWNhdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgRE9NQUlOUyxcbiAgTE9HT1VUX1JFQVNPTlMsXG4gIE1DX01BSU5fQ09OVEFJTkVSX1BPUlRBTF9JRCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgVEFzeW5jTG9jYWxlRGF0YVByb3BzIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvaTE4bic7XG5pbXBvcnQgeyBBc3luY0xvY2FsZURhdGEgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9pMThuJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNMaXN0IH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcmVhY3Qtbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQge1xuICByZXBvcnRFcnJvclRvU2VudHJ5LFxuICBTZW50cnlVc2VyVHJhY2tlcixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvc2VudHJ5JztcbmltcG9ydCB7IERJTUVOU0lPTlMsIE5BVkJBUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeSB9IGZyb20gJy4uLy4uL3R5cGVzL2dlbmVyYXRlZC9tYyc7XG5pbXBvcnQgeyBnZXRQcmV2aW91c1Byb2plY3RLZXkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJy4uL2FwcC1iYXInO1xuaW1wb3J0IEFwcGxpY2F0aW9uTG9hZGVyIGZyb20gJy4uL2FwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRCcm93c2VyTG9jYWxlIH0gZnJvbSAnLi4vYXBwbGljYXRpb24tc2hlbGwtcHJvdmlkZXIvdXRpbHMnO1xuaW1wb3J0IEFwcGxpY2F0aW9uU2hlbGxTcGxpdHRlciBmcm9tICcuLi9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci9hcHBsaWNhdGlvbi1zaGVsbC1zcGxpdHRlci5hc3luYyc7XG5pbXBvcnQgQ29uZmlndXJlSW50bFByb3ZpZGVyIGZyb20gJy4uL2NvbmZpZ3VyZS1pbnRsLXByb3ZpZGVyJztcbmltcG9ydCBFcnJvckFwb2xvZ2l6ZXIgZnJvbSAnLi4vZXJyb3ItYXBvbG9naXplcic7XG5pbXBvcnQgRmV0Y2hQcm9qZWN0IGZyb20gJy4uL2ZldGNoLXByb2plY3QnO1xuaW1wb3J0IEZldGNoVXNlciBmcm9tICcuLi9mZXRjaC11c2VyJztcbmltcG9ydCBOYXZCYXIgZnJvbSAnLi4vbmF2YmFyJztcbmltcG9ydCBQcm9qZWN0Q29udGFpbmVyIGZyb20gJy4uL3Byb2plY3QtY29udGFpbmVyJztcbmltcG9ydCBSZWRpcmVjdFRvTG9nb3V0IGZyb20gJy4uL3JlZGlyZWN0LXRvLWxvZ291dCc7XG5pbXBvcnQgUmVkaXJlY3RUb1Byb2plY3RDcmVhdGUgZnJvbSAnLi4vcmVkaXJlY3QtdG8tcHJvamVjdC1jcmVhdGUnO1xuaW1wb3J0IFJlcXVlc3RzSW5GbGlnaHRMb2FkZXIgZnJvbSAnLi4vcmVxdWVzdHMtaW4tZmxpZ2h0LWxvYWRlcic7XG5pbXBvcnQgUm91dGVDYXRjaEFsbCBmcm9tICcuLi9yb3V0ZS1jYXRjaC1hbGwnO1xuaW1wb3J0IFNldHVwRmxvcEZsaXBQcm92aWRlciBmcm9tICcuLi9zZXR1cC1mbG9wLWZsaXAtcHJvdmlkZXInO1xuaW1wb3J0IFRoZW1lU3dpdGNoZXIgZnJvbSAnLi4vdGhlbWUtc3dpdGNoZXInO1xuXG50eXBlIFRBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRpb25Qcm9wcyA9IHtcbiAgZmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBkZWZhdWx0RmVhdHVyZUZsYWdzPzogVEZsYWdzO1xuICBhcHBsaWNhdGlvbk1lc3NhZ2VzOiBUQXN5bmNMb2NhbGVEYXRhUHJvcHNbJ2FwcGxpY2F0aW9uTWVzc2FnZXMnXTtcbiAgb25NZW51SXRlbUNsaWNrPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHZvaWQ7XG4gIGRpc2FibGVSb3V0ZVBlcm1pc3Npb25DaGVjaz86IGJvb2xlYW47XG4gIHJlbmRlcj86ICgpID0+IEpTWC5FbGVtZW50O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IGdldEhhc1VuYXV0aG9yaXplZEVycm9yID0gKGdyYXBoUUxFcnJvcnM6IEFwb2xsb0Vycm9yWydncmFwaFFMRXJyb3JzJ10pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5leHRlbnNpb25zICYmXG4gICAgICBncWxFcnJvci5leHRlbnNpb25zLmNvZGUgJiZcbiAgICAgIGdxbEVycm9yLmV4dGVuc2lvbnMuY29kZSA9PT0gJ1VOQVVUSEVOVElDQVRFRCdcbiAgKTtcbmNvbnN0IGdldEhhc1VzZXJCZWVuRGVsZXRlZEVycm9yID0gKFxuICBncmFwaFFMRXJyb3JzOiBBcG9sbG9FcnJvclsnZ3JhcGhRTEVycm9ycyddXG4pID0+XG4gIGdyYXBoUUxFcnJvcnMuZmluZChcbiAgICAoZ3FsRXJyb3IpID0+XG4gICAgICBncWxFcnJvci5tZXNzYWdlICYmXG4gICAgICAvLyBOT1RFOiBUaGUgQ1RQIEFQSSBkb2VzIG5vdCBwcm92aWRlIGFuIGVycm9yIGNvZGUgaW4gdGhpcyBjYXNlLlxuICAgICAgZ3FsRXJyb3IubWVzc2FnZS5pbmNsdWRlcygnd2FzIG5vdCBmb3VuZC4nKVxuICApO1xuXG5leHBvcnQgY29uc3QgTWFpbkNvbnRhaW5lciA9IHN0eWxlZC5tYWluYFxuICBncmlkLWNvbHVtbjogMi8zO1xuICBncmlkLXJvdzogMy80O1xuXG4gIC8qXG4gICAgQWxsb3cgdGhlIHRoaXMgZmxleCBjaGlsZCB0byBncm93IHNtYWxsZXIgdGhhbiBpdHMgc21hbGxlc3QgY29udGVudC5cbiAgICBUaGlzIGlzIG5lZWRlZCB3aGVuIHRoZXJlIGlzIGEgcmVhbGx5IHdpZGUgdGV4dCBpbnNpZGUgdGhhdCB3b3VsZCBzdHJldGNoXG4gICAgdGhpcyBub2RlIHRvIGJlIHdpZGVyIHRoYW4gdGhlIHBhcmVudC5cbiAgKi9cbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAvKlxuICAgIGxheW91dCB0aGUgY2hpbGRyZW4uIFRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoZSBwYWdlIGFuZCBzaWRlIG5vdGlmaWNhdGlvblxuICAgIGFib3V0IHRoZSBhY3R1YWwgY29udGVudC4gVGhlIGNvbnRlbnQgc2hvdWxkIHN0cmV0Y2ggdG8gZmlsbCB0aGUgcmVzdCBvZlxuICAgIHRoZSBwYWdlLlxuICAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8qXG4gICAgc2V0IHBvc2l0aW9uIHRvIHJlbGF0aXZlIHRvIGxheW91dCBub3RpZmljYXRpb25zIGFuZCBtb2RhbHNcbiAgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZW5kZXJlZCB3aGVuZXZlciB0aGUgdXNlciBpcyBjb25zaWRlcmVkIFwiYXV0aGVudGljYXRlZFwiXG4gKiBhbmQgY29udGFpbnMgdGhlIFwicmVzdHJpY3RlZFwiIGFwcGxpY2F0aW9uIHBhcnQuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkID0gKFxuICBwcm9wczogVEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGlvblByb3BzXG4pID0+IHtcbiAgY29uc3QgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dChcbiAgICAoY29udGV4dCkgPT4gY29udGV4dC5lbnZpcm9ubWVudFxuICApIGFzIFRBcHBsaWNhdGlvbkNvbnRleHQ8e30+WydlbnZpcm9ubWVudCddO1xuICAvLyBUT0RPOiB1c2luZyB0aGlzIGhvb2sgd2lsbCBzdWJzY3JpYmUgdGhlIGNvbXBvbmVudCB0byByb3V0ZSB1cGRhdGVzLlxuICAvLyBUaGlzIGlzIGN1cnJlbnRseSB1c2VmdWwgZm9yIGRldGVjdGluZyBhIGNoYW5nZSBpbiB0aGUgcHJvamVjdCBrZXlcbiAgLy8gZnJvbSBVUkwgKFwiL1wiIC0tPiBcIi86cHJvamVjdEtleVwiKS5cbiAgLy8gSG93ZXZlciwgZXZlcnkgcm91dGUgY2hhbmdlIHdpbGwgdHJpZ2dlciBhIHJlLXJlbmRlci4gVGhpcyBpcyBwcm9iYWJseVxuICAvLyBvay1pc2ggYnV0IHdlIG1pZ2h0IHdhbnQgdG8gbG9vayBpbnRvIGEgbW9yZSBwZXJmb3JtYW50IHNvbHV0aW9uLlxuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG5cbiAgY29uc3Qgbm90aWZpY2F0aW9uc0dsb2JhbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNQYWdlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3QgbGF5b3V0UmVmcyA9IHVzZVJlZjx7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD47XG4gICAgbm90aWZpY2F0aW9uc1BhZ2VSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+O1xuICB9Pih7XG4gICAgbm90aWZpY2F0aW9uc0dsb2JhbFJlZixcbiAgICBub3RpZmljYXRpb25zUGFnZVJlZixcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmV0Y2hVc2VyPlxuICAgICAgeyh7IGlzTG9hZGluZzogaXNMb2FkaW5nVXNlciwgdXNlciwgZXJyb3IgfSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGFuIHVuYXV0aG9yaXplZCBlcnJvciwgd2UgcmVkaXJlY3QgdG8gdGhlIGxvZ2luIHBhZ2VcbiAgICAgICAgICBpZiAoZXJyb3IuZ3JhcGhRTEVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmdyYXBoUUxFcnJvcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVbmF1dGhvcml6ZWRFcnJvciA9IGdldEhhc1VuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgICAgICBlcnJvci5ncmFwaFFMRXJyb3JzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgaGFzVXNlckJlZW5EZWxldGVkRXJyb3IgPSBnZXRIYXNVc2VyQmVlbkRlbGV0ZWRFcnJvcihcbiAgICAgICAgICAgICAgZXJyb3IuZ3JhcGhRTEVycm9yc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhhc1VuYXV0aG9yaXplZEVycm9yIHx8IGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKSB7XG4gICAgICAgICAgICAgIGxldCBsb2dvdXRSZWFzb246XG4gICAgICAgICAgICAgICAgfCAodHlwZW9mIExPR09VVF9SRUFTT05TKVtrZXlvZiB0eXBlb2YgTE9HT1VUX1JFQVNPTlNdXG4gICAgICAgICAgICAgICAgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGlmIChoYXNVbmF1dGhvcml6ZWRFcnJvcilcbiAgICAgICAgICAgICAgICBsb2dvdXRSZWFzb24gPSBMT0dPVVRfUkVBU09OUy5VTkFVVEhPUklaRUQ7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGhhc1VzZXJCZWVuRGVsZXRlZEVycm9yKVxuICAgICAgICAgICAgICAgIGxvZ291dFJlYXNvbiA9IExPR09VVF9SRUFTT05TLkRFTEVURUQ7XG4gICAgICAgICAgICAgIHJldHVybiA8UmVkaXJlY3RUb0xvZ291dCByZWFzb249e2xvZ291dFJlYXNvbn0gLz47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBrbm93IHRoZSBsb2NhbGUgb2YgdGhlIHVzZXIsIHdlIHBpY2sgaXQgZnJvbSB0aGVcbiAgICAgICAgICAvLyB1c2VyJ3MgYnJvd3NlciB0byBhdHRlbXB0IHRvIG1hdGNoIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvcnJlY3QgdHJhbnNsYXRpb25zLlxuXG4gICAgICAgICAgY29uc3QgdXNlckxvY2FsZSA9IGdldEJyb3dzZXJMb2NhbGUod2luZG93KTtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8QXN5bmNMb2NhbGVEYXRhXG4gICAgICAgICAgICAgIGxvY2FsZT17dXNlckxvY2FsZX1cbiAgICAgICAgICAgICAgYXBwbGljYXRpb25NZXNzYWdlcz17cHJvcHMuYXBwbGljYXRpb25NZXNzYWdlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgeyh7IGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yVG9TZW50cnkoZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPENvbmZpZ3VyZUludGxQcm92aWRlciBsb2NhbGU9e2xvY2FsZX0gbWVzc2FnZXM9e21lc3NhZ2VzfT5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yQXBvbG9naXplciAvPlxuICAgICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvQXN5bmNMb2NhbGVEYXRhPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9qZWN0S2V5RnJvbVVybCA9IHNlbGVjdFByb2plY3RLZXlGcm9tVXJsKGxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGN0IHN0YWZmLCBhbmQgaWYgc28gZ2V0IGxhbmd1YWdlIHNlbGVjdGVkIHZpYSBzdGFmZiBiYXIgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAgICAgIGNvbnN0IHN0YWZmQmFyTGFuZ3VhZ2UgPVxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdjb21tZXJjZXRvb2xzJyB8fFxuICAgICAgICAgIHVzZXI/LmxhdW5jaGRhcmtseVRyYWNraW5nR3JvdXAgPT09ICdtYWlsb3NhdXInXG4gICAgICAgICAgICA/IHNlbGVjdFVzZXJMYW5ndWFnZUZyb21TdG9yYWdlKClcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVc2VyOiBURmV0Y2hMb2dnZWRJblVzZXJRdWVyeVsndXNlciddIHwgdW5kZWZpbmVkID0gdXNlclxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgICAvLyBzZXQgdGhlIHN0YWZmIGJhciBsYW5ndWFnZSBpZiBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBzdGFmZkJhckxhbmd1YWdlID8/IHVzZXIubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8QXBwbGljYXRpb25Db250ZXh0UHJvdmlkZXJcbiAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgey8qXG4gICAgICAgICAgICBOT1RFOiB3ZSBkbyBub3Qgd2FudCB0byBsb2FkIHRoZSBsb2NhbGUgZGF0YSBhcyBsb25nIGFzIHdlIGRvIG5vdFxuICAgICAgICAgICAga25vdyB0aGUgdXNlciBzZXR0aW5nLiBUaGlzIGlzIGltcG9ydGFudCBpbiBvcmRlciB0byBhdm9pZCBmbGFzaGluZ1xuICAgICAgICAgICAgb2YgdHJhbnNsYXRlZCBjb250ZW50IG9uIHN1YnNlcXVlbnQgcmUtcmVuZGVycy5cbiAgICAgICAgICAgIFRoZXJlZm9yZSwgYXMgbG9uZyBhcyB0aGVyZSBpcyBubyBsb2NhbGUsIHRoZSBjaGlsZHJlbiBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhlXG4gICAgICAgICAgICBgaXNMb2FkaW5nYCBwcm9wIHRvIGRlY2lkZSB3aGF0IHRvIHJlbmRlci5cbiAgICAgICAgICAqL31cbiAgICAgICAgICAgIDxBc3luY0xvY2FsZURhdGFcbiAgICAgICAgICAgICAgbG9jYWxlPXtub3JtYWxpemVkVXNlcj8ubGFuZ3VhZ2V9XG4gICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWVzc2FnZXM9e3Byb3BzLmFwcGxpY2F0aW9uTWVzc2FnZXN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsoeyBpc0xvYWRpbmc6IGlzTG9hZGluZ0xvY2FsZURhdGEsIGxvY2FsZSwgbWVzc2FnZXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxDb25maWd1cmVJbnRsUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHBhc3MgdGhlIGxhbmd1YWdlIGFzIGxvbmcgYXMgdGhlIGxvY2FsZSBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyBpcyBub3QgbG9hZGVkLlxuICAgICAgICAgICAgICAgICAgey4uLihpc0xvYWRpbmdMb2NhbGVEYXRhID8ge30gOiB7IGxvY2FsZSwgbWVzc2FnZXMgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFNldHVwRmxvcEZsaXBQcm92aWRlclxuICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgIGxkQ2xpZW50U2lkZUlkPXthcHBsaWNhdGlvbkVudmlyb25tZW50LmxkQ2xpZW50U2lkZUlkfVxuICAgICAgICAgICAgICAgICAgICBmbGFncz17cHJvcHMuZmVhdHVyZUZsYWdzfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmxhZ3M9e3Byb3BzLmRlZmF1bHRGZWF0dXJlRmxhZ3N9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBcHBsaWNhdGlvblNoZWxsU3BsaXR0ZXIgbG9jYWxlPXtsb2NhbGUgPz8gJ2VuJ30+XG4gICAgICAgICAgICAgICAgICAgICAgPFRoZW1lU3dpdGNoZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB7LyogTk9URTogdGhlIHJlcXVlc3RzIGluIGZsaWdodCBsb2FkZXIgd2lsbCByZW5kZXIgYSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgc3Bpbm5lciBpbnRvIHRoZSBBcHBCYXIuICovfVxuICAgICAgICAgICAgICAgICAgICAgIDxSZXF1ZXN0c0luRmxpZ2h0TG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbnRyeVVzZXJUcmFja2VyIHVzZXI9e25vcm1hbGl6ZWRVc2VyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gJHtESU1FTlNJT05TLmhlYWRlcn0gMWZyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e25vdGlmaWNhdGlvbnNHbG9iYWxSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMS8zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYWJvdmUtdG9wLW5hdmlnYXRpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLkdMT0JBTH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8aGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAnMi8zJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogJzIvMyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxBcHBCYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXtub3JtYWxpemVkVXNlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybD17cHJvamVjdEtleUZyb21Vcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGFzaWRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDIvNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgPE5hdkJhcj4gc2hvdWxkIG9ubHkgYmUgcmVuZGVyZWQgd2l0aGluIGEgcHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRleHQsIHRoZXJlZm9yZSB3aGVuIHRoZXJlIGlzIGEgYHByb2plY3RLZXlgLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGBwcm9qZWN0S2V5YCBpbiB0aGUgVVJMIChlLmcuIGAvYWNjb3VudGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZXMpLCB3ZSBkb24ndCByZW5kZXIgaXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogd2UgYWxzbyBcImNhY2hlXCIgdGhlIGBwcm9qZWN0S2V5YCBpbiBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHRvIFwicmUtaHlkcmF0ZVwiIHRoZSBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2NhdGlvbiAoZS5nIHdoZW4geW91IGdvIHRvIGAvYCwgdGhlcmUgc2hvdWxkIGJlIGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byBgLzpwcm9qZWN0S2V5YCkuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIG5vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbHkgb24gdGhlIHZhbHVlIGluIGxvY2FsU3RvcmFnZSB0byBkZXRlcm1pbmUgd2hpY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgcHJvamVjdEtleWAgaXMgY3VycmVudGx5IHVzZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0S2V5RnJvbVVybCkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGZXRjaFByb2plY3QgcHJvamVjdEtleT17cHJvamVjdEtleUZyb21Vcmx9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgaXNMb2FkaW5nOiBpc0xvYWRpbmdQcm9qZWN0LCBwcm9qZWN0IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xvYWRpbmcgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nVXNlciB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nTG9jYWxlRGF0YSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nUHJvamVjdCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWxvY2FsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2plY3Q7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudD17YXBwbGljYXRpb25FbnZpcm9ubWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG8gbm90IHBhc3MgdGhlIGBwcm9qZWN0YCBpbnRvIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcGVybWlzc2lvbnMgZm9yIHRoZSBOYXZiYXIgYXJlIHJlc29sdmVkIHNlcGFyYXRlbHksIHdpdGhpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCBSZWFjdCBjb250ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2QmFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5PXtwcm9qZWN0S2V5RnJvbVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXtwcm9qZWN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50PXthcHBsaWNhdGlvbkVudmlyb25tZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUl0ZW1DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BcHBsaWNhdGlvbkNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GZXRjaFByb2plY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXNpZGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdVc2VyIHx8IGlzTG9hZGluZ0xvY2FsZURhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTG9hZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNYWluQ29udGFpbmVyIHJvbGU9XCJtYWluXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiByZWY9e25vdGlmaWNhdGlvbnNQYWdlUmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zTGlzdCBkb21haW49e0RPTUFJTlMuUEFHRX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3QgZG9tYWluPXtET01BSU5TLlNJREV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBoYXZlIGFuIGludGVybWVkaWFyeSA8ZGl2PiB3cmFwcGluZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFZpZXc+IGNvbXBvbmVudCB0aGF0IGlzIHVzZWQgdG8gd3JhcCBldmVyeSBjb250ZW50LXZpZXcuIFRoaXMgaW50ZXJtZWRpYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+IGlzIHNvbGVseSB1c2VkIGZvciBhZGRpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIGNvbnRlbnQtdmlldy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG93ZXZlciwgdGhpcyBjb3VsZCBiZSBkb25lIGJ5IHBhc3NpbmcgdGhlIHRyYWNraW5nIGNvbnRleHQgdG8gdGhlIDxWaWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGV0IGl0IGRvIHRoZSBsYXlvdXQsIHNvIHdlIGNhbiBhdm9pZCBsYXlpbmcgb3VyIGZyb20gdGhlIG91dHNpZGUgYXMgd2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gKjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb3J0YWxzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXtsYXlvdXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3A9e0RJTUVOU0lPTlMuaGVhZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRMZWZ0PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0S2V5RnJvbVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOQVZCQVIud2lkdGhMZWZ0TmF2aWdhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldExlZnRPbkV4cGFuZGVkTWVudT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdEtleUZyb21VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gTkFWQkFSLndpZHRoTGVmdE5hdmlnYXRpb25XaGVuRXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTd2l0Y2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9XCIvcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyPXsoKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVkaXJlY3QgdG89XCIvYWNjb3VudC9wcm9maWxlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSb3V0ZSBwYXRoPVwiL2FjY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGByZW5kZXJgIGZ1bmN0aW9uLCB3ZSBhc3N1bWUgaXQncyBvbmUgb2YgdHdvIGNhc2VzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMS4gVGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IHVzZSBgY2hpbGRyZW5gIGFuZCB0aGVyZWZvcmUgaW1wbGVtZW50cyB0aGUgcm91dGVzIGluY2x1ZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlIDxSb3V0ZUNhdGNoQWxsPiAodGhpcyBpcyB0aGUgXCJsZWdhY3lcIiBiZWhhdmlvcikuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAyLiBJdCdzIHRoZSBhY2NvdW50IGFwcGxpY2F0aW9uLCB3aGljaCBhbHdheXMgdXNlcyBgcmVuZGVyYCBhbmQgdGhlcmVmb3JlIHNob3VsZCByZW5kZXIgYXMgbm9ybWFsLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEluIGNhc2UgdGhlIEFwcFNoZWxsIHVzZXMgdGhlIGBjaGlsZHJlbmAgZnVuY3Rpb24sIHdlIGNhbiBhbHdheXMgYXNzdW1lIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGl0J3MgYSBub3JtYWwgQ3VzdG9tIEFwcGxpY2F0aW9uIGFuZCB0aGF0IGl0IHNob3VsZCB0cmlnZ2VyIGEgZm9yY2UgcmVsb2FkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5yZW5kZXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+e3Byb3BzLnJlbmRlcigpfTwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlQ2F0Y2hBbGwgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBQcm9qZWN0IHJvdXRlcyAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdXRlIGV4YWN0PXt0cnVlfSBwYXRoPVwiL1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQcm9qZWN0S2V5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJldmlvdXNQcm9qZWN0S2V5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRVc2VyPy5kZWZhdWx0UHJvamVjdEtleSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTk9URTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgaGFzIG5vdCBiZWVuIGxvYWRlZCBhIGxvYWRpbmcgc3Bpbm5lciBpcyBzaG93bi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIG5vdCB3b3JraW5nIG9uIGEgcHJvamVjdCBwcmV2aW91c2x5IG5vciBoYXMgYSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgIHByb2plY3QsIHRoZSB1c2VyIHdpbGwgYmUgcHJvbXB0ZWQgdG8gY3JlYXRlIG9uZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgR2l2ZW4gdGhlIHVzZXIgd2FzIHdvcmtpbmcgb24gYSBwcm9qZWN0IHByZXZpb3VzbHkgb3IgaGFzIGEgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICBwcm9qZWN0LCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWRpcmVjdCB0byB0aGF0IHByb2plY3QuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbm9ybWFsaXplZFVzZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8QXBwbGljYXRpb25Mb2FkZXIgLz47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzUHJvamVjdEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxSZWRpcmVjdFRvUHJvamVjdENyZWF0ZSAvPjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdCB0bz17YC8ke3ByZXZpb3VzUHJvamVjdEtleX1gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1JvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Um91dGUgZXhhY3Q9e2ZhbHNlfSBwYXRoPVwiLzpwcm9qZWN0S2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByb2plY3RDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI9e25vcm1hbGl6ZWRVc2VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ9e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5kaXNhYmxlUm91dGVQZXJtaXNzaW9uQ2hlY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVuZGVycyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoaWxkcmVuLCB3aGljaCBpcyB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmljIHBhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcj17cHJvcHMucmVuZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2plY3RDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm91dGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N3aXRjaD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17TUNfTUFJTl9DT05UQUlORVJfUE9SVEFMX0lEfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFpbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvQXBwbGljYXRpb25TaGVsbFNwbGl0dGVyPlxuICAgICAgICAgICAgICAgICAgPC9TZXR1cEZsb3BGbGlwUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9Db25maWd1cmVJbnRsUHJvdmlkZXI+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0FzeW5jTG9jYWxlRGF0YT5cbiAgICAgICAgICA8L0FwcGxpY2F0aW9uQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0ZldGNoVXNlcj5cbiAgKTtcbn07XG5BcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZC5kaXNwbGF5TmFtZSA9ICdBcHBsaWNhdGlvblNoZWxsQXV0aGVudGljYXRlZCc7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcGxpY2F0aW9uU2hlbGxBdXRoZW50aWNhdGVkO1xuIl19 */"),
|
|
872
880
|
children: [jsxs("div", {
|
|
873
881
|
ref: notificationsGlobalRef,
|
|
874
882
|
role: "region",
|
|
875
883
|
"aria-live": "polite",
|
|
876
|
-
css:
|
|
884
|
+
css: _ref5,
|
|
877
885
|
children: [jsx("div", {
|
|
878
886
|
id: "above-top-navigation"
|
|
879
887
|
}), jsx(NotificationsList, {
|
|
880
888
|
domain: DOMAINS.GLOBAL
|
|
881
889
|
})]
|
|
882
890
|
}), jsx("header", {
|
|
883
|
-
css:
|
|
891
|
+
css: _ref4,
|
|
884
892
|
children: jsx(AppBar, {
|
|
885
893
|
user: normalizedUser,
|
|
886
894
|
projectKeyFromUrl: projectKeyFromUrl
|
|
887
895
|
})
|
|
888
896
|
}), jsx("aside", {
|
|
889
|
-
css:
|
|
897
|
+
css: _ref3,
|
|
890
898
|
children: (() => {
|
|
891
899
|
// The <NavBar> should only be rendered within a project
|
|
892
900
|
// context, therefore when there is a `projectKey`.
|
|
@@ -901,9 +909,9 @@ const ApplicationShellAuthenticated = props => {
|
|
|
901
909
|
if (!projectKeyFromUrl) return null;
|
|
902
910
|
return jsx(FetchProject, {
|
|
903
911
|
projectKey: projectKeyFromUrl,
|
|
904
|
-
children:
|
|
905
|
-
let isLoadingProject =
|
|
906
|
-
project =
|
|
912
|
+
children: _ref9 => {
|
|
913
|
+
let isLoadingProject = _ref9.isLoading,
|
|
914
|
+
project = _ref9.project;
|
|
907
915
|
const isLoading = isLoadingUser || isLoadingLocaleData || isLoadingProject || !locale || !project;
|
|
908
916
|
return jsx(ApplicationContextProvider, {
|
|
909
917
|
user: normalizedUser,
|
|
@@ -937,7 +945,7 @@ const ApplicationShellAuthenticated = props => {
|
|
|
937
945
|
}), jsx(NotificationsList, {
|
|
938
946
|
domain: DOMAINS.SIDE
|
|
939
947
|
}), jsxs("div", {
|
|
940
|
-
css:
|
|
948
|
+
css: _ref2,
|
|
941
949
|
children: [jsx(PortalsContainer
|
|
942
950
|
// @ts-ignore
|
|
943
951
|
, {
|
|
@@ -1002,6 +1010,9 @@ const ApplicationShellAuthenticated = props => {
|
|
|
1002
1010
|
})
|
|
1003
1011
|
})]
|
|
1004
1012
|
})]
|
|
1013
|
+
}), jsx("div", {
|
|
1014
|
+
id: MC_MAIN_CONTAINER_PORTAL_ID,
|
|
1015
|
+
css: _ref
|
|
1005
1016
|
})]
|
|
1006
1017
|
})]
|
|
1007
1018
|
})]
|
|
@@ -1220,7 +1231,7 @@ const hasCachedAuthenticationState = () => {
|
|
|
1220
1231
|
return window.localStorage.getItem(STORAGE_KEYS.IS_AUTHENTICATED) === 'true';
|
|
1221
1232
|
};
|
|
1222
1233
|
|
|
1223
|
-
const OidcCallback = /*#__PURE__*/lazy(() => import('./oidc-callback-
|
|
1234
|
+
const OidcCallback = /*#__PURE__*/lazy(() => import('./oidc-callback-51b6c2c0.esm.js' /* webpackChunkName: "oidc-callback" */));
|
|
1224
1235
|
|
|
1225
1236
|
function ownKeys$4(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1226
1237
|
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys$4(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys$4(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -1490,7 +1501,7 @@ const ApplicationShell = props => {
|
|
|
1490
1501
|
ApplicationShell.displayName = 'ApplicationShell';
|
|
1491
1502
|
ApplicationShell.version = version;
|
|
1492
1503
|
|
|
1493
|
-
const CustomViewDevHost = /*#__PURE__*/lazy(() => import('./custom-view-dev-host-
|
|
1504
|
+
const CustomViewDevHost = /*#__PURE__*/lazy(() => import('./custom-view-dev-host-856878ae.esm.js' /* webpackChunkName: "custom-view-dev-host" */));
|
|
1494
1505
|
|
|
1495
1506
|
function CustomViewFlopFlipProvider(props) {
|
|
1496
1507
|
const adapterArgs = useMemo(() => ({
|