@commercetools-frontend/application-shell 21.20.1 → 21.20.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{application-entry-point-00b3448b.esm.js → application-entry-point-1aca41cb.esm.js} +2 -2
- package/dist/{application-entry-point-02e7becc.cjs.prod.js → application-entry-point-b0366ae4.cjs.prod.js} +2 -2
- package/dist/{application-entry-point-b7581f58.cjs.dev.js → application-entry-point-d4366e21.cjs.dev.js} +2 -2
- package/dist/box-d849ea03.cjs.prod.js +34 -0
- package/dist/box-dd9e7e68.esm.js +21 -0
- package/dist/box-fdb2ccb6.cjs.dev.js +34 -0
- package/dist/cart-167fea3b.esm.js +21 -0
- package/dist/cart-ad0aba9b.cjs.prod.js +34 -0
- package/dist/cart-b92f3a8e.cjs.dev.js +34 -0
- package/dist/commercetools-frontend-application-shell.cjs.dev.js +4 -4
- package/dist/commercetools-frontend-application-shell.cjs.prod.js +4 -4
- package/dist/commercetools-frontend-application-shell.esm.js +4 -4
- package/dist/connected-square-4743b7de.esm.js +21 -0
- package/dist/connected-square-abf36852.cjs.prod.js +34 -0
- package/dist/connected-square-ac52014f.cjs.dev.js +34 -0
- package/dist/{constants-41338dec.cjs.dev.js → constants-22e3b93b.cjs.dev.js} +1 -1
- package/dist/{constants-0d48a7ae.esm.js → constants-84bfc123.esm.js} +1 -1
- package/dist/{constants-9ffc458b.cjs.prod.js → constants-d3b01ef6.cjs.prod.js} +1 -1
- package/dist/declarations/src/components/navbar/compiled/navbar.css.json.d.ts +1 -1
- package/dist/declarations/src/components/navbar/legacy-icons/box.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/cart.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/connected-square.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/gear.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/heart.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/list-with-search.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/paperclip.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/plugin.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/rocket.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/speedometer.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/star.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/tag-multi.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/tree-structure.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/user-filled.d.ts +2 -0
- package/dist/declarations/src/components/navbar/legacy-icons/world.d.ts +2 -0
- package/dist/declarations/src/components/navbar/navbar.d.ts +1 -1
- package/dist/declarations/src/components/navbar/use-navbar-state-manager.d.ts +3 -2
- package/dist/declarations/src/constants.d.ts +1 -1
- package/dist/declarations/src/types/generated/proxy.d.ts +0 -1
- package/dist/gear-28ff4f04.cjs.dev.js +34 -0
- package/dist/gear-6f8c30e3.cjs.prod.js +34 -0
- package/dist/gear-8418cd46.esm.js +21 -0
- package/dist/heart-33cd94c6.cjs.prod.js +34 -0
- package/dist/heart-48c28091.esm.js +21 -0
- package/dist/heart-fb31cf30.cjs.dev.js +34 -0
- package/dist/{index-df03ccb2.cjs.prod.js → index-0640c1a3.cjs.prod.js} +210 -131
- package/dist/{index-68548adf.cjs.dev.js → index-38d6bc43.cjs.dev.js} +211 -132
- package/dist/{index-207f5c81.esm.js → index-c828d4d5.esm.js} +199 -120
- package/dist/list-with-search-34cd926c.cjs.dev.js +34 -0
- package/dist/list-with-search-a0b22169.cjs.prod.js +34 -0
- package/dist/list-with-search-c154a56e.esm.js +21 -0
- package/dist/{oidc-a2126dac.cjs.dev.js → oidc-6c75da08.cjs.dev.js} +1 -1
- package/dist/{oidc-4c509f49.esm.js → oidc-78a9ec10.esm.js} +1 -1
- package/dist/{oidc-d13fc045.cjs.prod.js → oidc-8f79eea8.cjs.prod.js} +1 -1
- package/dist/paperclip-18785dda.esm.js +21 -0
- package/dist/paperclip-2cd45b86.cjs.dev.js +34 -0
- package/dist/paperclip-b1b806ab.cjs.prod.js +34 -0
- package/dist/plugin-53c047bb.esm.js +21 -0
- package/dist/plugin-7cb7827e.cjs.dev.js +34 -0
- package/dist/plugin-e97ae3e6.cjs.prod.js +34 -0
- package/dist/{project-expired-ee249410.esm.js → project-expired-70751095.esm.js} +5 -5
- package/dist/{project-expired-d0249e2f.cjs.prod.js → project-expired-90f6bbf5.cjs.prod.js} +5 -5
- package/dist/{project-expired-d023f40e.cjs.dev.js → project-expired-fb5f83a9.cjs.dev.js} +5 -5
- package/dist/{project-not-found-7692aaa6.cjs.prod.js → project-not-found-9dbfe0c4.cjs.prod.js} +5 -5
- package/dist/{project-not-found-ed9156ef.esm.js → project-not-found-eda93717.esm.js} +5 -5
- package/dist/{project-not-found-a5a71075.cjs.dev.js → project-not-found-eee8530b.cjs.dev.js} +5 -5
- package/dist/{project-not-initialized-2a5bfaa8.cjs.dev.js → project-not-initialized-2cf57a32.cjs.dev.js} +5 -5
- package/dist/{project-not-initialized-60ff7512.cjs.prod.js → project-not-initialized-9cd511ca.cjs.prod.js} +5 -5
- package/dist/{project-not-initialized-bd37966e.esm.js → project-not-initialized-ffc72a7b.esm.js} +5 -5
- package/dist/{project-suspended-a9542758.cjs.prod.js → project-suspended-0fdbcf50.cjs.prod.js} +5 -5
- package/dist/{project-suspended-cdfacb79.esm.js → project-suspended-a2836938.esm.js} +5 -5
- package/dist/{project-suspended-decfe5cf.cjs.dev.js → project-suspended-c63e2c55.cjs.dev.js} +5 -5
- package/dist/{quick-access-bce69ccc.cjs.prod.js → quick-access-1c9b4a9b.cjs.prod.js} +4 -4
- package/dist/{quick-access-5db0d976.esm.js → quick-access-1d95646e.esm.js} +4 -4
- package/dist/{quick-access-4cb36c6f.cjs.dev.js → quick-access-adb93f12.cjs.dev.js} +4 -4
- package/dist/rocket-37c1aa11.cjs.dev.js +34 -0
- package/dist/rocket-b2dbda7f.cjs.prod.js +34 -0
- package/dist/rocket-ba116b5e.esm.js +21 -0
- package/dist/{service-page-project-switcher-99549f6d.cjs.dev.js → service-page-project-switcher-0955a880.cjs.dev.js} +1 -1
- package/dist/{service-page-project-switcher-b816f019.cjs.prod.js → service-page-project-switcher-bbdbeafb.cjs.prod.js} +1 -1
- package/dist/{service-page-project-switcher-f5cda3e7.esm.js → service-page-project-switcher-c2c4aee2.esm.js} +1 -1
- package/dist/speedometer-13b393fb.cjs.dev.js +34 -0
- package/dist/speedometer-1e69fd13.cjs.prod.js +34 -0
- package/dist/speedometer-c1b94505.esm.js +21 -0
- package/dist/star-ab4be629.cjs.prod.js +34 -0
- package/dist/star-da9123e0.esm.js +21 -0
- package/dist/star-e165111e.cjs.dev.js +34 -0
- package/dist/tag-multi-5f498a7d.cjs.dev.js +34 -0
- package/dist/tag-multi-c650b738.esm.js +21 -0
- package/dist/tag-multi-fb817131.cjs.prod.js +34 -0
- package/dist/tree-structure-6af6fc3a.esm.js +21 -0
- package/dist/tree-structure-779fcc36.cjs.prod.js +34 -0
- package/dist/tree-structure-ed6cdff8.cjs.dev.js +34 -0
- package/dist/user-filled-384a2eaf.cjs.prod.js +34 -0
- package/dist/user-filled-41729d77.esm.js +21 -0
- package/dist/user-filled-53d2eae0.cjs.dev.js +34 -0
- package/dist/world-12528632.cjs.prod.js +34 -0
- package/dist/world-6471d9f6.cjs.dev.js +34 -0
- package/dist/world-d91df1ee.esm.js +21 -0
- package/package.json +27 -27
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.dev.js +2 -2
- package/ssr/dist/commercetools-frontend-application-shell-ssr.cjs.prod.js +2 -2
- package/ssr/dist/commercetools-frontend-application-shell-ssr.esm.js +2 -2
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.dev.js +2 -2
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.cjs.prod.js +2 -2
- package/test-utils/dist/commercetools-frontend-application-shell-test-utils.esm.js +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var applicationEntryPoint = require('./application-entry-point-
|
|
3
|
+
var applicationEntryPoint = require('./application-entry-point-d4366e21.cjs.dev.js');
|
|
4
4
|
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
5
5
|
var _styled = require('@emotion/styled/base');
|
|
6
6
|
var _pt = require('prop-types');
|
|
@@ -24,7 +24,7 @@ var applicationShellConnectors = require('@commercetools-frontend/application-sh
|
|
|
24
24
|
var applicationComponents = require('@commercetools-frontend/application-components');
|
|
25
25
|
var reactNotifications = require('@commercetools-frontend/react-notifications');
|
|
26
26
|
var i18n = require('@commercetools-frontend/i18n');
|
|
27
|
-
var constants = require('./constants-
|
|
27
|
+
var constants = require('./constants-22e3b93b.cjs.dev.js');
|
|
28
28
|
var uuid = require('uuid');
|
|
29
29
|
var _URL = require('@babel/runtime-corejs3/core-js-stable/url');
|
|
30
30
|
var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
|
|
@@ -38,7 +38,7 @@ var reactRedux = require('react-redux');
|
|
|
38
38
|
var history = require('@commercetools-frontend/browser-history');
|
|
39
39
|
var reactIntl = require('react-intl');
|
|
40
40
|
var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
|
|
41
|
-
var oidc = require('./oidc-
|
|
41
|
+
var oidc = require('./oidc-6c75da08.cjs.dev.js');
|
|
42
42
|
var qss = require('qss');
|
|
43
43
|
var jwtDecode = require('jwt-decode');
|
|
44
44
|
var FailedAuthenticationSVG = require('@commercetools-frontend/assets/images/locked-diamond.svg');
|
|
@@ -1456,7 +1456,7 @@ FetchProject.displayName = 'FetchProject';
|
|
|
1456
1456
|
function ownKeys$a(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
1457
1457
|
|
|
1458
1458
|
function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$a(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$a(Object(source))).call(_context4, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
1459
|
-
var FetchApplicationsMenu = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchApplicationsMenu" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "applicationsMenu" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "navBar" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "
|
|
1459
|
+
var FetchApplicationsMenu = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchApplicationsMenu" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "applicationsMenu" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "navBar" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "icon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "featureToggle" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "menuVisibility" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "dataFences" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "type" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "actionRights" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "submenu" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "featureToggle" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "menuVisibility" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "actionRights" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "dataFences" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "group" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "name" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "type" }, arguments: [], directives: [] }] } }] } }] } }, { kind: "Field", name: { kind: "Name", value: "appBar" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "featureToggle" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }] } }] } }] } }], loc: { start: 0, end: 823, source: { body: "query FetchApplicationsMenu {\n applicationsMenu {\n navBar {\n key\n uriPath\n icon\n labelAllLocales {\n locale\n value\n }\n featureToggle\n menuVisibility\n permissions\n dataFences {\n group\n name\n type\n }\n actionRights {\n group\n name\n }\n submenu {\n key\n uriPath\n labelAllLocales {\n locale\n value\n }\n featureToggle\n menuVisibility\n permissions\n actionRights {\n group\n name\n }\n dataFences {\n group\n name\n type\n }\n }\n }\n appBar {\n key\n uriPath\n labelAllLocales {\n locale\n value\n }\n featureToggle\n permissions\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
|
|
1460
1460
|
var supportedLocales = ['en', 'de', 'es', 'fr-FR', 'zh-CN', 'ja'];
|
|
1461
1461
|
var defaultApiUrl$1 = window.location.origin;
|
|
1462
1462
|
|
|
@@ -1505,7 +1505,6 @@ var mapApplicationMenuConfigToGraqhQLQueryResult = function mapApplicationMenuCo
|
|
|
1505
1505
|
__typename: 'ApplicationsMenu',
|
|
1506
1506
|
navBar: menuLinks ? [{
|
|
1507
1507
|
__typename: 'NavbarMenu',
|
|
1508
|
-
shouldRenderDivider: false,
|
|
1509
1508
|
key: entryPointUriPath,
|
|
1510
1509
|
uriPath: entryPointUriPath,
|
|
1511
1510
|
icon: menuLinks.icon,
|
|
@@ -2480,19 +2479,19 @@ LocaleSwitcher.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
2480
2479
|
} : {};
|
|
2481
2480
|
|
|
2482
2481
|
var ProjectNotFound = /*#__PURE__*/react.lazy(function () {
|
|
2483
|
-
return Promise.resolve().then(function () { return require('./project-not-found-
|
|
2482
|
+
return Promise.resolve().then(function () { return require('./project-not-found-eee8530b.cjs.dev.js'
|
|
2484
2483
|
/* webpackChunkName: "project-not-found" */
|
|
2485
2484
|
); });
|
|
2486
2485
|
});
|
|
2487
2486
|
|
|
2488
2487
|
var ProjectExpired = /*#__PURE__*/react.lazy(function () {
|
|
2489
|
-
return Promise.resolve().then(function () { return require('./project-expired-
|
|
2488
|
+
return Promise.resolve().then(function () { return require('./project-expired-fb5f83a9.cjs.dev.js'
|
|
2490
2489
|
/* webpackChunkName: "project-expired" */
|
|
2491
2490
|
); });
|
|
2492
2491
|
});
|
|
2493
2492
|
|
|
2494
2493
|
var ProjectNotInitialized = /*#__PURE__*/react.lazy(function () {
|
|
2495
|
-
return Promise.resolve().then(function () { return require('./project-not-initialized-
|
|
2494
|
+
return Promise.resolve().then(function () { return require('./project-not-initialized-2cf57a32.cjs.dev.js'
|
|
2496
2495
|
/* webpackChunkName: "project-not-initialized" */
|
|
2497
2496
|
); });
|
|
2498
2497
|
});
|
|
@@ -2539,7 +2538,7 @@ var RedirectToProjectCreate = function RedirectToProjectCreate() {
|
|
|
2539
2538
|
RedirectToProjectCreate.displayName = 'RedirectToProjectCreate';
|
|
2540
2539
|
|
|
2541
2540
|
var ProjectSuspended = /*#__PURE__*/react.lazy(function () {
|
|
2542
|
-
return Promise.resolve().then(function () { return require('./project-suspended-
|
|
2541
|
+
return Promise.resolve().then(function () { return require('./project-suspended-c63e2c55.cjs.dev.js'
|
|
2543
2542
|
/* webpackChunkName: "project-suspended" */
|
|
2544
2543
|
); });
|
|
2545
2544
|
});
|
|
@@ -2898,8 +2897,10 @@ SetupFlopFlipProvider.displayName = 'SetupFlopFlipProvider';
|
|
|
2898
2897
|
|
|
2899
2898
|
var ThemeSwitcher = function ThemeSwitcher() {
|
|
2900
2899
|
var isNewThemeEnabled = reactBroadcast.useFeatureToggle(UI_REDESIGN);
|
|
2900
|
+
var theme = isNewThemeEnabled ? 'test' : 'default';
|
|
2901
2901
|
return jsxRuntime.jsx(designSystem.ThemeProvider, {
|
|
2902
|
-
theme:
|
|
2902
|
+
theme: theme,
|
|
2903
|
+
themeOverrides: applicationComponents.themesOverrides[theme]
|
|
2903
2904
|
});
|
|
2904
2905
|
};
|
|
2905
2906
|
|
|
@@ -2957,7 +2958,7 @@ function nonNullable(value) {
|
|
|
2957
2958
|
|
|
2958
2959
|
function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2959
2960
|
|
|
2960
|
-
function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var
|
|
2961
|
+
function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context7, _context8; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context7 = ownKeys$4(Object(source), !0)).call(_context7, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context8 = ownKeys$4(Object(source))).call(_context8, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
2961
2962
|
var FetchProjectExtensionsNavbar = { kind: "Document", definitions: [{ kind: "OperationDefinition", operation: "query", name: { kind: "Name", value: "FetchProjectExtensionsNavbar" }, variableDefinitions: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "projectExtension" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "applications" }, arguments: [{ kind: "Argument", name: { kind: "Name", value: "where" }, value: { kind: "ObjectValue", fields: [{ kind: "ObjectField", name: { kind: "Name", value: "isActive" }, value: { kind: "BooleanValue", value: true } }] } }], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "navbarMenu" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "icon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "featureToggle" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "submenu" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "key" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "featureToggle" }, arguments: [], directives: [] }] } }] } }] } }, { kind: "Field", name: { kind: "Name", value: "installedApplications" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "application" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "entryPointUriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "icon" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "mainMenuLink" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultLabel" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "submenuLinks" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "uriPath" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "permissions" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "defaultLabel" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "labelAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }] } }] } }] } }] } }], loc: { start: 0, end: 984, source: { body: "query FetchProjectExtensionsNavbar {\n projectExtension {\n id\n applications(where: { isActive: true }) {\n id\n navbarMenu {\n id\n key\n uriPath\n icon\n labelAllLocales {\n locale\n value\n }\n featureToggle\n permissions\n submenu {\n id\n key\n uriPath\n labelAllLocales {\n locale\n value\n }\n permissions\n featureToggle\n }\n }\n }\n installedApplications {\n application {\n id\n entryPointUriPath\n icon\n mainMenuLink {\n id\n permissions\n defaultLabel\n labelAllLocales {\n locale\n value\n }\n }\n submenuLinks {\n id\n uriPath\n permissions\n defaultLabel\n labelAllLocales {\n locale\n value\n }\n }\n }\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
|
|
2962
2963
|
|
|
2963
2964
|
var getInitialState = function getInitialState(isForcedMenuOpen) {
|
|
@@ -3007,7 +3008,7 @@ var reducer = function reducer(state, action) {
|
|
|
3007
3008
|
};
|
|
3008
3009
|
|
|
3009
3010
|
var useNavbarStateManager = function useNavbarStateManager(props) {
|
|
3010
|
-
var _context, _context2, _context4, _context5
|
|
3011
|
+
var _context, _context2, _context4, _context5;
|
|
3011
3012
|
|
|
3012
3013
|
var navBarNode = react.useRef(null);
|
|
3013
3014
|
var applicationsNavBarMenu = useApplicationsMenu('navBar', {
|
|
@@ -3056,8 +3057,7 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
|
|
|
3056
3057
|
}),
|
|
3057
3058
|
menuVisibility: undefined,
|
|
3058
3059
|
actionRights: undefined,
|
|
3059
|
-
dataFences: undefined
|
|
3060
|
-
shouldRenderDivider: false
|
|
3060
|
+
dataFences: undefined
|
|
3061
3061
|
};
|
|
3062
3062
|
})).call(_context, nonNullable) : [];
|
|
3063
3063
|
var organizationCustomAppsMenu = projectExtensionsQuery && projectExtensionsQuery.projectExtension && projectExtensionsQuery.projectExtension.installedApplications ? _filterInstanceProperty__default["default"](_context4 = _mapInstanceProperty__default["default"](_context5 = projectExtensionsQuery.projectExtension.installedApplications).call(_context5, function (installedApplication) {
|
|
@@ -3079,7 +3079,6 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
|
|
|
3079
3079
|
menuVisibility: undefined,
|
|
3080
3080
|
actionRights: undefined,
|
|
3081
3081
|
dataFences: undefined,
|
|
3082
|
-
shouldRenderDivider: false,
|
|
3083
3082
|
submenu: _mapInstanceProperty__default["default"](_context6 = application.submenuLinks || []).call(_context6, function (submenuLink) {
|
|
3084
3083
|
return {
|
|
3085
3084
|
key: submenuLink.id,
|
|
@@ -3179,15 +3178,17 @@ var useNavbarStateManager = function useNavbarStateManager(props) {
|
|
|
3179
3178
|
|
|
3180
3179
|
window.localStorage.setItem(constants.STORAGE_KEYS.IS_FORCED_MENU_OPEN, String(!state.isMenuOpen));
|
|
3181
3180
|
}, [state.activeItemIndex, state.isMenuOpen]);
|
|
3181
|
+
var allInternalApplicationsNavbarMenu = applicationsNavBarMenu || [];
|
|
3182
3182
|
|
|
3183
|
-
var
|
|
3183
|
+
var allCustomApplicationsNavbarMenu = _concatInstanceProperty__default["default"](legacyCustomAppsMenu).call(legacyCustomAppsMenu, organizationCustomAppsMenu);
|
|
3184
3184
|
|
|
3185
3185
|
return _objectSpread$4(_objectSpread$4({}, state), {}, {
|
|
3186
3186
|
navBarNode: navBarNode,
|
|
3187
3187
|
handleToggleItem: handleToggleItem,
|
|
3188
3188
|
handleToggleMenu: handleToggleMenu,
|
|
3189
3189
|
shouldCloseMenuFly: shouldCloseMenuFly,
|
|
3190
|
-
|
|
3190
|
+
allInternalApplicationsNavbarMenu: allInternalApplicationsNavbarMenu,
|
|
3191
|
+
allCustomApplicationsNavbarMenu: allCustomApplicationsNavbarMenu
|
|
3191
3192
|
});
|
|
3192
3193
|
};
|
|
3193
3194
|
|
|
@@ -3215,21 +3216,20 @@ function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default["d
|
|
|
3215
3216
|
|
|
3216
3217
|
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context11, _context12; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context11 = ownKeys$3(Object(source), !0)).call(_context11, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context12 = ownKeys$3(Object(source))).call(_context12, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
|
|
3217
3218
|
var compiledStyles = {
|
|
3218
|
-
"global": ":root {\n\n /* Left navigation */\n}\n\n/* Left Nav */\n\n.navbar-mod__left-navigation___n7yUt {\n display: flex;\n flex-grow: 1;\n width: 64px;\n z-index: 19999;\n background: var(--color-accent);\n}\n\n.navbar-mod__list___RCV3J {\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 0;\n}\n\n.body__menu-open .navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.navbar-mod__list-item___MjK6t {\n width: 64px;\n height:
|
|
3219
|
+
"global": ":root {\n\n /* Left navigation */\n}\n\n/* Left Nav */\n\n.navbar-mod__left-navigation___n7yUt {\n display: flex;\n flex-grow: 1;\n width: 64px;\n z-index: 19999;\n background: var(--color-accent);\n}\n\n.navbar-mod__list___RCV3J {\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 0;\n}\n\n.body__menu-open .navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.navbar-mod__list-item___MjK6t {\n width: 64px;\n height: 56px;\n background: var(--color-accent);\n margin: 0;\n list-style: none;\n cursor: pointer;\n}\n\n.navbar-mod__item-link___X2Ina {\n color: var(--color-surface);\n padding: var(--spacing-m);\n width: 100%;\n position: relative;\n display: block;\n}\n\n.navbar-mod__item__active___lo1sr .navbar-mod__item-link___X2Ina {\n padding-right: var(--spacing-l);\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon___bLsep {\n width: 24px;\n height: 24px;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n flex: 1;\n font-weight: 500;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-nav-bar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-nav-bar-link);\n color: var(--color-surface);\n display: none;\n opacity: 0;\n transition: all 0.25s ease-in-out;\n text-align: left;\n text-decoration: none;\n}\n\n.navbar-mod__expander___jyAUi {\n border-top: 1px solid var(--color-neutral-40);\n height: 50px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n}\n\n.navbar-mod__expander___jyAUi:hover {\n background: transparent !important;\n}\n\n.navbar-mod__expand-icon___BtmRa {\n align-items: center;\n border-radius: 32px;\n cursor: pointer;\n display: flex;\n height: 24px;\n justify-content: center;\n transform: translateX(0) rotateZ(0deg);\n width: 24px;\n}\n\n.navbar-mod__item--bottom___eW7nh {\n position: absolute;\n bottom: 50px;\n}\n\n.navbar-mod__list-item___MjK6t:hover {\n background-color: var(--color-accent-30);\n}\n\n.navbar-mod__item__active___lo1sr .navbar-mod__title___eRWUj {\n opacity: 1;\n display: block;\n transition: all 0.2s ease;\n}\n\n.navbar-mod__item_menu-open___zk0zh {\n height: auto !important;\n}\n\n/* NO SUBMENU */\n\n.navbar-mod__item__no-submenu___0lmiH,\n.navbar-mod__item_menu-collapsed___cluyY {\n height: 56px !important;\n}\n\n.navbar-mod__item_menu-collapsed___cluyY .navbar-mod__item-link___X2Ina {\n text-align: center;\n}\n\n.navbar-mod__item__no-submenu___0lmiH .navbar-mod__title___eRWUj {\n border-bottom: 0;\n}\n\n.navbar-mod__item__no-submenu___0lmiH .navbar-mod__sublist___os1s7 {\n padding-top: 40px;\n}\n\n/* left-nav open */\n\n.body__menu-open .navbar-mod__title___eRWUj {\n color: var(--color-surface);\n font-weight: 500;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-nav-bar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-nav-bar-link);\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt {\n box-shadow: 6px 0 10px rgba(0, 0, 0, 0.16);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t {\n height: auto;\n min-height: 56px;\n max-height: 0;\n transition: max-height 0.15s ease-out;\n overflow: hidden;\n}\n\n.body__menu-open .navbar-mod__left-navigation___n7yUt,\n.body__menu-open .navbar-mod__list-item___MjK6t {\n width: 245px;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t .navbar-mod__title___eRWUj {\n display: block;\n opacity: 1;\n margin-left: var(--spacing-m);\n color: var(--color-surface);\n}\n\n.body__menu-open .navbar-mod__expand-icon___BtmRa {\n transform: translateX(0) rotateZ(180deg);\n}\n\n.body__menu-open .navbar-mod__item__active___lo1sr {\n max-height: 500px;\n transition: max-height 0.25s ease-in;\n}\n\n.body__menu-open .navbar-mod__sublist___os1s7 {\n position: relative;\n z-index: 1;\n left: 0;\n margin: 0 0 0 calc(\n 24px + var(--spacing-m) + 4px + 4px\n );\n padding: var(--spacing-m) 0 0;\n background-color: transparent;\n}\n\n.body__menu-open .navbar-mod__sublist___os1s7.navbar-mod__sublist-no-children___Dy-h- {\n border: 0;\n}\n\n.body__menu-open .navbar-mod__title-copy___o2y1q {\n font-weight: 400;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-nav-bar-link);\n color: white;\n text-decoration: none;\n transition: all 0.15s ease;\n}\n\n.body__menu-open .navbar-mod__title-copy___o2y1q:hover {\n color: var(--color-primary-40);\n}\n\n.body__menu-open .navbar-mod__expander___jyAUi {\n min-height: 50px;\n justify-content: flex-end;\n padding: var(--spacing-m);\n}\n\n/* Second level menu */\n\n.navbar-mod__sublist___os1s7 {\n padding: 55px var(--spacing-l) var(--spacing-m);\n font-weight: 400;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-nav-bar-link);\n position: absolute;\n background-color: var(--color-accent-30);\n top: 0;\n left: 64px;\n z-index: -1;\n list-style: none;\n opacity: 0.01;\n visibility: hidden;\n}\n\n.navbar-mod__sublist__inactive___kJvf- {\n /* empty block */\n}\n\n.navbar-mod__sublist-item___gafkS {\n padding: var(--spacing-s) 0 0;\n}\n\n.navbar-mod__sublist-item___gafkS:first-of-type {\n padding: 0;\n}\n\n.navbar-mod__sublist-item___gafkS:hover {\n color: var(--color-primary-40);\n}\n\n.navbar-mod__text___ccHEu {\n font-weight: 400;\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n font-size: var(--font-size-for-nav-bar-link);\n /* stylelint-disable-next-line csstools/value-no-unknown-custom-properties */\n line-height: var(--line-height-for-nav-bar-link);\n}\n\n.navbar-mod__text-link___dhtj6 {\n color: white;\n text-decoration: none;\n transition: all 0.15s ease;\n}\n\n.navbar-mod__text-link___dhtj6:hover {\n color: var(--color-primary-40);\n}\n\n/* Item active */\n\n.navbar-mod__item__active___lo1sr {\n background: var(--color-accent-30);\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n width: calc(\n 205px + 64px -\n var(--spacing-m) * 2\n );\n justify-content: flex-start;\n}\n\n.navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n width: calc(24px + 4px * 2);\n display: flex;\n justify-content: center;\n align-self: flex-start;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__item-icon-text___a-8JY {\n justify-content: flex-start;\n display: flex;\n width: 100%;\n}\n\n.navbar-mod__fixed-menu___42tD9 .navbar-mod__list-item___MjK6t .navbar-mod__icon-container___w3FtA {\n /* empty block */\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n position: relative;\n width: auto;\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n margin-left: 40px;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY .navbar-mod__title___eRWUj {\n margin-left: var(--spacing-m);\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__item-icon-text___a-8JY {\n margin-left: 0;\n}\n\n.navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__sublist___os1s7 {\n width: 205px;\n}\n\n.body__menu-open .navbar-mod__list-item___MjK6t.navbar-mod__item__active___lo1sr .navbar-mod__sublist___os1s7 {\n width: calc(100% - calc(\n 24px + var(--spacing-m) + 4px + 4px\n ));\n}\n\n.navbar-mod__sublist-expanded__active___240JK,\n.navbar-mod__sublist-collapsed__active___-9vYh {\n opacity: 1;\n visibility: visible;\n text-align: left;\n}\n\n.navbar-mod__highlighted___oJWkA {\n color: var(--color-primary-40) !important;\n}\n\n.navbar-mod__hidden___TQLSs {\n display: none;\n}\n\n.navbar-mod__divider___TpVzu {\n border-top: 1px solid var(--color-neutral-40);\n}\n\n.navbar-mod__loading-dot-container___G2LVb {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.navbar-mod__scrollable-menu___64pxJ {\n flex: 1 1 0;\n}\n\n.navbar-mod__fixed-menu___42tD9 {\n flex: 0 0 0;\n}\n",
|
|
3219
3220
|
"jsonMap": {
|
|
3220
3221
|
"left-navigation": "navbar-mod__left-navigation___n7yUt",
|
|
3221
3222
|
"list": "navbar-mod__list___RCV3J",
|
|
3222
3223
|
"scrollable-menu": "navbar-mod__scrollable-menu___64pxJ",
|
|
3223
3224
|
"list-item": "navbar-mod__list-item___MjK6t",
|
|
3224
3225
|
"item-link": "navbar-mod__item-link___X2Ina",
|
|
3226
|
+
"item__active": "navbar-mod__item__active___lo1sr",
|
|
3225
3227
|
"item-icon-text": "navbar-mod__item-icon-text___a-8JY",
|
|
3226
3228
|
"icon": "navbar-mod__icon___bLsep",
|
|
3227
3229
|
"title": "navbar-mod__title___eRWUj",
|
|
3228
|
-
"title-user-voice": "navbar-mod__title-user-voice___oOLj8 navbar-mod__title___eRWUj",
|
|
3229
3230
|
"expander": "navbar-mod__expander___jyAUi",
|
|
3230
3231
|
"expand-icon": "navbar-mod__expand-icon___BtmRa",
|
|
3231
3232
|
"item--bottom": "navbar-mod__item--bottom___eW7nh",
|
|
3232
|
-
"item__active": "navbar-mod__item__active___lo1sr",
|
|
3233
3233
|
"item_menu-open": "navbar-mod__item_menu-open___zk0zh",
|
|
3234
3234
|
"item__no-submenu": "navbar-mod__item__no-submenu___0lmiH",
|
|
3235
3235
|
"item_menu-collapsed": "navbar-mod__item_menu-collapsed___cluyY",
|
|
@@ -3240,19 +3240,77 @@ var compiledStyles = {
|
|
|
3240
3240
|
"sublist-item": "navbar-mod__sublist-item___gafkS",
|
|
3241
3241
|
"text": "navbar-mod__text___ccHEu",
|
|
3242
3242
|
"text-link": "navbar-mod__text-link___dhtj6",
|
|
3243
|
-
"
|
|
3243
|
+
"icon-container": "navbar-mod__icon-container___w3FtA",
|
|
3244
|
+
"fixed-menu": "navbar-mod__fixed-menu___42tD9",
|
|
3244
3245
|
"sublist-expanded__active": "navbar-mod__sublist-expanded__active___240JK",
|
|
3245
3246
|
"sublist-collapsed__active": "navbar-mod__sublist-collapsed__active___-9vYh",
|
|
3246
3247
|
"highlighted": "navbar-mod__highlighted___oJWkA",
|
|
3247
3248
|
"hidden": "navbar-mod__hidden___TQLSs",
|
|
3248
|
-
"divider
|
|
3249
|
-
"
|
|
3250
|
-
"loading-dot-container": "navbar-mod__loading-dot-container___G2LVb",
|
|
3251
|
-
"fixed-menu": "navbar-mod__fixed-menu___42tD9"
|
|
3249
|
+
"divider": "navbar-mod__divider___TpVzu",
|
|
3250
|
+
"loading-dot-container": "navbar-mod__loading-dot-container___G2LVb"
|
|
3252
3251
|
}
|
|
3253
3252
|
};
|
|
3254
3253
|
var styles$1 = compiledStyles.jsonMap;
|
|
3255
3254
|
|
|
3255
|
+
/*
|
|
3256
|
+
<DataMenu data={[]}>
|
|
3257
|
+
<MenuGroup>
|
|
3258
|
+
<MenuItem>
|
|
3259
|
+
<MenuItemLink linkTo="/foo">(icon) Products</MenuItemLink>
|
|
3260
|
+
<MenuGroup>
|
|
3261
|
+
<MenuItemLink linkTo="/foo/new">Add product</MenuItemLink>
|
|
3262
|
+
</MenuGroup>
|
|
3263
|
+
</MenuItem>
|
|
3264
|
+
</MenuGroup>
|
|
3265
|
+
<MenuExpander/>
|
|
3266
|
+
</DataMenu>
|
|
3267
|
+
*/
|
|
3268
|
+
var HeartIcon = /*#__PURE__*/react.lazy(function () {
|
|
3269
|
+
return Promise.resolve().then(function () { return require('./heart-fb31cf30.cjs.dev.js'); });
|
|
3270
|
+
});
|
|
3271
|
+
var PaperclipIcon = /*#__PURE__*/react.lazy(function () {
|
|
3272
|
+
return Promise.resolve().then(function () { return require('./paperclip-2cd45b86.cjs.dev.js'); });
|
|
3273
|
+
});
|
|
3274
|
+
var PluginIcon = /*#__PURE__*/react.lazy(function () {
|
|
3275
|
+
return Promise.resolve().then(function () { return require('./plugin-7cb7827e.cjs.dev.js'); });
|
|
3276
|
+
});
|
|
3277
|
+
var RocketIcon = /*#__PURE__*/react.lazy(function () {
|
|
3278
|
+
return Promise.resolve().then(function () { return require('./rocket-37c1aa11.cjs.dev.js'); });
|
|
3279
|
+
});
|
|
3280
|
+
var StarIcon = /*#__PURE__*/react.lazy(function () {
|
|
3281
|
+
return Promise.resolve().then(function () { return require('./star-e165111e.cjs.dev.js'); });
|
|
3282
|
+
});
|
|
3283
|
+
var ConnectedSquareIcon = /*#__PURE__*/react.lazy(function () {
|
|
3284
|
+
return Promise.resolve().then(function () { return require('./connected-square-ac52014f.cjs.dev.js'); });
|
|
3285
|
+
});
|
|
3286
|
+
var WorldIcon = /*#__PURE__*/react.lazy(function () {
|
|
3287
|
+
return Promise.resolve().then(function () { return require('./world-6471d9f6.cjs.dev.js'); });
|
|
3288
|
+
});
|
|
3289
|
+
var TreeStructureIcon = /*#__PURE__*/react.lazy(function () {
|
|
3290
|
+
return Promise.resolve().then(function () { return require('./tree-structure-ed6cdff8.cjs.dev.js'); });
|
|
3291
|
+
});
|
|
3292
|
+
var UserFilledIcon = /*#__PURE__*/react.lazy(function () {
|
|
3293
|
+
return Promise.resolve().then(function () { return require('./user-filled-53d2eae0.cjs.dev.js'); });
|
|
3294
|
+
});
|
|
3295
|
+
var SpeedometerIcon = /*#__PURE__*/react.lazy(function () {
|
|
3296
|
+
return Promise.resolve().then(function () { return require('./speedometer-13b393fb.cjs.dev.js'); });
|
|
3297
|
+
});
|
|
3298
|
+
var TagMultiIcon = /*#__PURE__*/react.lazy(function () {
|
|
3299
|
+
return Promise.resolve().then(function () { return require('./tag-multi-5f498a7d.cjs.dev.js'); });
|
|
3300
|
+
});
|
|
3301
|
+
var CartIcon = /*#__PURE__*/react.lazy(function () {
|
|
3302
|
+
return Promise.resolve().then(function () { return require('./cart-b92f3a8e.cjs.dev.js'); });
|
|
3303
|
+
});
|
|
3304
|
+
var BoxIcon = /*#__PURE__*/react.lazy(function () {
|
|
3305
|
+
return Promise.resolve().then(function () { return require('./box-fdb2ccb6.cjs.dev.js'); });
|
|
3306
|
+
});
|
|
3307
|
+
var GearIcon = /*#__PURE__*/react.lazy(function () {
|
|
3308
|
+
return Promise.resolve().then(function () { return require('./gear-28ff4f04.cjs.dev.js'); });
|
|
3309
|
+
});
|
|
3310
|
+
var ListWithSearchIcon = /*#__PURE__*/react.lazy(function () {
|
|
3311
|
+
return Promise.resolve().then(function () { return require('./list-with-search-34cd926c.cjs.dev.js'); });
|
|
3312
|
+
});
|
|
3313
|
+
|
|
3256
3314
|
// The icon is expected to be the `svg` document as a string.
|
|
3257
3315
|
// For backwards compatibility purposes, we still support the legacy "icon name",
|
|
3258
3316
|
// which we then map to one of the pre-defined icons.
|
|
@@ -3269,53 +3327,54 @@ var IconSwitcher = function IconSwitcher(_ref) {
|
|
|
3269
3327
|
|
|
3270
3328
|
|
|
3271
3329
|
switch (icon) {
|
|
3272
|
-
//
|
|
3330
|
+
// Legacy application icons
|
|
3331
|
+
// TODO: To be removed once MC applications icons updates are published
|
|
3273
3332
|
case 'TreeStructureIcon':
|
|
3274
|
-
return jsxRuntime.jsx(
|
|
3333
|
+
return jsxRuntime.jsx(TreeStructureIcon, _objectSpread$3({}, iconProps));
|
|
3275
3334
|
|
|
3276
3335
|
case 'UserFilledIcon':
|
|
3277
|
-
return jsxRuntime.jsx(
|
|
3336
|
+
return jsxRuntime.jsx(UserFilledIcon, _objectSpread$3({}, iconProps));
|
|
3278
3337
|
|
|
3279
3338
|
case 'SpeedometerIcon':
|
|
3280
|
-
return jsxRuntime.jsx(
|
|
3339
|
+
return jsxRuntime.jsx(SpeedometerIcon, _objectSpread$3({}, iconProps));
|
|
3281
3340
|
|
|
3282
3341
|
case 'TagMultiIcon':
|
|
3283
|
-
return jsxRuntime.jsx(
|
|
3342
|
+
return jsxRuntime.jsx(TagMultiIcon, _objectSpread$3({}, iconProps));
|
|
3284
3343
|
|
|
3285
3344
|
case 'CartIcon':
|
|
3286
|
-
return jsxRuntime.jsx(
|
|
3345
|
+
return jsxRuntime.jsx(CartIcon, _objectSpread$3({}, iconProps));
|
|
3287
3346
|
|
|
3288
3347
|
case 'BoxIcon':
|
|
3289
|
-
return jsxRuntime.jsx(
|
|
3348
|
+
return jsxRuntime.jsx(BoxIcon, _objectSpread$3({}, iconProps));
|
|
3290
3349
|
|
|
3291
3350
|
case 'GearIcon':
|
|
3292
|
-
return jsxRuntime.jsx(
|
|
3351
|
+
return jsxRuntime.jsx(GearIcon, _objectSpread$3({}, iconProps));
|
|
3293
3352
|
|
|
3294
3353
|
case 'ListWithSearchIcon':
|
|
3295
|
-
return jsxRuntime.jsx(
|
|
3354
|
+
return jsxRuntime.jsx(ListWithSearchIcon, _objectSpread$3({}, iconProps));
|
|
3296
3355
|
// Custom application icons set
|
|
3297
3356
|
|
|
3298
3357
|
case 'HeartIcon':
|
|
3299
|
-
return jsxRuntime.jsx(
|
|
3358
|
+
return jsxRuntime.jsx(HeartIcon, _objectSpread$3({}, iconProps));
|
|
3300
3359
|
|
|
3301
3360
|
case 'PaperclipIcon':
|
|
3302
|
-
return jsxRuntime.jsx(
|
|
3361
|
+
return jsxRuntime.jsx(PaperclipIcon, _objectSpread$3({}, iconProps));
|
|
3303
3362
|
|
|
3304
3363
|
case 'PluginIcon':
|
|
3305
|
-
return jsxRuntime.jsx(
|
|
3364
|
+
return jsxRuntime.jsx(PluginIcon, _objectSpread$3({}, iconProps));
|
|
3306
3365
|
|
|
3307
3366
|
case 'RocketIcon':
|
|
3308
|
-
return jsxRuntime.jsx(
|
|
3367
|
+
return jsxRuntime.jsx(RocketIcon, _objectSpread$3({}, iconProps));
|
|
3309
3368
|
|
|
3310
3369
|
case 'StarIcon':
|
|
3311
|
-
return jsxRuntime.jsx(
|
|
3370
|
+
return jsxRuntime.jsx(StarIcon, _objectSpread$3({}, iconProps));
|
|
3312
3371
|
|
|
3313
3372
|
case 'ConnectedSquareIcon':
|
|
3314
|
-
return jsxRuntime.jsx(
|
|
3373
|
+
return jsxRuntime.jsx(ConnectedSquareIcon, _objectSpread$3({}, iconProps));
|
|
3315
3374
|
// For backwards compatibility
|
|
3316
3375
|
|
|
3317
3376
|
case 'WorldIcon':
|
|
3318
|
-
return jsxRuntime.jsx(
|
|
3377
|
+
return jsxRuntime.jsx(WorldIcon, _objectSpread$3({}, iconProps));
|
|
3319
3378
|
|
|
3320
3379
|
default:
|
|
3321
3380
|
return jsxRuntime.jsx("img", {
|
|
@@ -3345,7 +3404,7 @@ var MenuExpander = function MenuExpander(props) {
|
|
|
3345
3404
|
},
|
|
3346
3405
|
className: styles$1['expand-icon'],
|
|
3347
3406
|
"data-testid": "menu-expander",
|
|
3348
|
-
children: jsxRuntime.jsx(icons.
|
|
3407
|
+
children: jsxRuntime.jsx(icons.ArrowRightIcon, {
|
|
3349
3408
|
color: "surface",
|
|
3350
3409
|
size: "big"
|
|
3351
3410
|
})
|
|
@@ -3451,15 +3510,11 @@ MenuItemLink.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
3451
3510
|
useFullRedirectsForLinks: _pt__default["default"].bool
|
|
3452
3511
|
} : {};
|
|
3453
3512
|
MenuItemLink.displayName = 'MenuItemLink';
|
|
3454
|
-
MenuItemLink.defaultProps = menuItemLinkDefaultProps;
|
|
3455
|
-
// the settings plugin from the other ones
|
|
3513
|
+
MenuItemLink.defaultProps = menuItemLinkDefaultProps;
|
|
3456
3514
|
|
|
3457
3515
|
var MenuItemDivider = function MenuItemDivider() {
|
|
3458
3516
|
return jsxRuntime.jsx("div", {
|
|
3459
|
-
className: styles$1
|
|
3460
|
-
children: jsxRuntime.jsx("div", {
|
|
3461
|
-
className: styles$1['divider-second-item']
|
|
3462
|
-
})
|
|
3517
|
+
className: styles$1.divider
|
|
3463
3518
|
});
|
|
3464
3519
|
};
|
|
3465
3520
|
|
|
@@ -3533,9 +3588,9 @@ RestrictedMenuItem.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
3533
3588
|
} : {};
|
|
3534
3589
|
RestrictedMenuItem.displayName = 'RestrictedMenuItem';
|
|
3535
3590
|
RestrictedMenuItem.defaultProps = restrictedMenuItemDefaultProps;
|
|
3536
|
-
var getIconColor = function getIconColor(isActive
|
|
3591
|
+
var getIconColor = function getIconColor(isActive) {
|
|
3537
3592
|
if (isActive) return 'primary40';
|
|
3538
|
-
return
|
|
3593
|
+
return 'surface';
|
|
3539
3594
|
};
|
|
3540
3595
|
|
|
3541
3596
|
var getMenuVisibilitiesOfSubmenus = function getMenuVisibilitiesOfSubmenus(menu) {
|
|
@@ -3599,86 +3654,87 @@ var ApplicationMenu = function ApplicationMenu(props) {
|
|
|
3599
3654
|
!props.isMenuOpen || // 2. When there is no submenu
|
|
3600
3655
|
!hasSubmenu || // 3. When the submenu group is active/visible
|
|
3601
3656
|
props.isActive;
|
|
3602
|
-
return jsxRuntime.
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3657
|
+
return jsxRuntime.jsx(RestrictedMenuItem, {
|
|
3658
|
+
keyOfMenuItem: props.menu.key,
|
|
3659
|
+
featureToggle: (_props$menu$featureTo = props.menu.featureToggle) !== null && _props$menu$featureTo !== void 0 ? _props$menu$featureTo : undefined,
|
|
3660
|
+
permissions: props.menu.permissions,
|
|
3661
|
+
actionRights: (_props$menu$actionRig = props.menu.actionRights) !== null && _props$menu$actionRig !== void 0 ? _props$menu$actionRig : undefined,
|
|
3662
|
+
dataFences: (_props$menu$dataFence = props.menu.dataFences) !== null && _props$menu$dataFence !== void 0 ? _props$menu$dataFence : undefined,
|
|
3663
|
+
projectPermissions: props.projectPermissions,
|
|
3664
|
+
menuVisibilities: props.menuVisibilities,
|
|
3665
|
+
namesOfMenuVisibilities: namesOfMenuVisibilitiesOfAllSubmenus,
|
|
3666
|
+
children: jsxRuntime.jsxs(MenuItem, {
|
|
3667
|
+
hasSubmenu: hasSubmenu,
|
|
3668
|
+
isActive: props.isActive,
|
|
3669
|
+
isMenuOpen: props.isMenuOpen,
|
|
3670
|
+
onClick: props.handleToggleItem,
|
|
3671
|
+
onMouseEnter: props.isMenuOpen ? undefined : props.handleToggleItem,
|
|
3672
|
+
onMouseLeave: props.isMenuOpen ? undefined : props.shouldCloseMenuFly,
|
|
3673
|
+
children: [jsxRuntime.jsx(MenuItemLink, {
|
|
3674
|
+
linkTo: isMainMenuItemALink ? _concatInstanceProperty__default["default"](_context6 = "/".concat(props.projectKey, "/")).call(_context6, props.menu.uriPath) : undefined,
|
|
3675
|
+
useFullRedirectsForLinks: props.useFullRedirectsForLinks,
|
|
3676
|
+
onClick: props.onMenuItemClick,
|
|
3677
|
+
children: jsxRuntime.jsxs("div", {
|
|
3678
|
+
className: styles$1['item-icon-text'],
|
|
3679
|
+
children: [jsxRuntime.jsx("div", {
|
|
3680
|
+
className: styles$1['icon-container'],
|
|
3681
|
+
children: jsxRuntime.jsx("div", {
|
|
3626
3682
|
className: styles$1.icon,
|
|
3627
3683
|
children: jsxRuntime.jsx(IconSwitcher, {
|
|
3628
3684
|
icon: props.menu.icon,
|
|
3629
3685
|
size: "scale",
|
|
3630
|
-
color: getIconColor(props.isActive || isMainMenuRouteActive
|
|
3631
|
-
})
|
|
3632
|
-
}), jsxRuntime.jsx("div", {
|
|
3633
|
-
className: styles$1.title,
|
|
3634
|
-
"aria-owns": "group-".concat(props.menu.key),
|
|
3635
|
-
children: jsxRuntime.jsx(MenuLabel, {
|
|
3636
|
-
labelAllLocales: props.menu.labelAllLocales,
|
|
3637
|
-
defaultLabel: props.menu.defaultLabel,
|
|
3638
|
-
applicationLocale: props.applicationLocale
|
|
3686
|
+
color: getIconColor(props.isActive || isMainMenuRouteActive)
|
|
3639
3687
|
})
|
|
3640
|
-
})
|
|
3641
|
-
})
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3688
|
+
})
|
|
3689
|
+
}), jsxRuntime.jsx("div", {
|
|
3690
|
+
className: styles$1.title,
|
|
3691
|
+
"aria-owns": "group-".concat(props.menu.key),
|
|
3692
|
+
children: jsxRuntime.jsx(MenuLabel, {
|
|
3693
|
+
labelAllLocales: props.menu.labelAllLocales,
|
|
3694
|
+
defaultLabel: props.menu.defaultLabel,
|
|
3695
|
+
applicationLocale: props.applicationLocale
|
|
3696
|
+
})
|
|
3697
|
+
})]
|
|
3698
|
+
})
|
|
3699
|
+
}), jsxRuntime.jsx(MenuGroup, {
|
|
3700
|
+
id: props.menu.key,
|
|
3701
|
+
level: 2,
|
|
3702
|
+
isActive: props.isActive,
|
|
3703
|
+
isExpanded: props.isMenuOpen,
|
|
3704
|
+
children: hasSubmenu ? _mapInstanceProperty__default["default"](_context7 = props.menu.submenu).call(_context7, function (submenu) {
|
|
3705
|
+
var _context8, _submenu$featureToggl, _submenu$actionRights, _submenu$dataFences, _context9;
|
|
3706
|
+
|
|
3707
|
+
return jsxRuntime.jsx(RestrictedMenuItem, {
|
|
3708
|
+
keyOfMenuItem: submenu.key,
|
|
3709
|
+
featureToggle: (_submenu$featureToggl = submenu.featureToggle) !== null && _submenu$featureToggl !== void 0 ? _submenu$featureToggl : undefined,
|
|
3710
|
+
permissions: submenu.permissions,
|
|
3711
|
+
actionRights: (_submenu$actionRights = submenu.actionRights) !== null && _submenu$actionRights !== void 0 ? _submenu$actionRights : undefined,
|
|
3712
|
+
dataFences: (_submenu$dataFences = submenu.dataFences) !== null && _submenu$dataFences !== void 0 ? _submenu$dataFences : undefined,
|
|
3713
|
+
projectPermissions: props.projectPermissions,
|
|
3714
|
+
menuVisibilities: props.menuVisibilities,
|
|
3715
|
+
namesOfMenuVisibilities: submenu.menuVisibility ? [submenu.menuVisibility] : undefined,
|
|
3716
|
+
children: jsxRuntime.jsx("li", {
|
|
3717
|
+
className: styles$1['sublist-item'],
|
|
3718
|
+
children: jsxRuntime.jsx("div", {
|
|
3719
|
+
className: styles$1.text,
|
|
3720
|
+
children: jsxRuntime.jsx(MenuItemLink, {
|
|
3721
|
+
linkTo: _concatInstanceProperty__default["default"](_context9 = "/".concat(props.projectKey, "/")).call(_context9, submenu.uriPath),
|
|
3722
|
+
exactMatch: true,
|
|
3723
|
+
useFullRedirectsForLinks: props.useFullRedirectsForLinks,
|
|
3724
|
+
onClick: props.onMenuItemClick,
|
|
3725
|
+
children: jsxRuntime.jsx(MenuLabel, {
|
|
3726
|
+
labelAllLocales: submenu.labelAllLocales,
|
|
3727
|
+
defaultLabel: submenu.defaultLabel,
|
|
3728
|
+
applicationLocale: props.applicationLocale
|
|
3673
3729
|
})
|
|
3674
3730
|
})
|
|
3675
3731
|
})
|
|
3676
|
-
}
|
|
3677
|
-
})
|
|
3678
|
-
})
|
|
3679
|
-
})
|
|
3680
|
-
}
|
|
3681
|
-
});
|
|
3732
|
+
})
|
|
3733
|
+
}, _concatInstanceProperty__default["default"](_context8 = "".concat(props.menu.key, "-submenu-")).call(_context8, submenu.key));
|
|
3734
|
+
}) : null
|
|
3735
|
+
})]
|
|
3736
|
+
})
|
|
3737
|
+
}, props.menu.key);
|
|
3682
3738
|
};
|
|
3683
3739
|
|
|
3684
3740
|
ApplicationMenu.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
@@ -3704,7 +3760,7 @@ ApplicationMenu.displayName = 'ApplicationMenu';
|
|
|
3704
3760
|
var NavBarLayout = /*#__PURE__*/react.forwardRef(function (props, ref) {
|
|
3705
3761
|
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
3706
3762
|
children: [jsxRuntime.jsx(react$2.Global, {
|
|
3707
|
-
styles: /*#__PURE__*/react$2.css(compiledStyles.global, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:NavBarLayout;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa2xCbUIiLCJmaWxlIjoibmF2YmFyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUm91dGVDb21wb25lbnRQcm9wcyB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHR5cGUge1xuICBUQXBwbGljYXRpb25Db250ZXh0LFxuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHR5cGUgeyBURmV0Y2hQcm9qZWN0UXVlcnkgfSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvbWMnO1xuaW1wb3J0IHR5cGUge1xuICBURGF0YUZlbmNlLFxuICBUQWN0aW9uUmlnaHQsXG4gIFRMb2NhbGl6ZWRGaWVsZCxcbiAgVE5hdmJhck1lbnUsXG4gIFRCYXNlTWVudSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL3Byb3h5JztcbmltcG9ydCB0eXBlIHsgVEZsYWdWYXJpYXRpb24gfSBmcm9tICdAZmxvcGZsaXAvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBmb3J3YXJkUmVmLFxuICBNb3VzZUV2ZW50SGFuZGxlcixcbiAgUmVhY3ROb2RlLFxuICBTeW50aGV0aWNFdmVudCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7IE5hdkxpbmssIG1hdGNoUGF0aCwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IHVzZUZsYWdWYXJpYXRpb24gfSBmcm9tICdAZmxvcGZsaXAvcmVhY3QtYnJvYWRjYXN0JztcbmltcG9ydCB7IEdsb2JhbCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge1xuICBCYWNrSWNvbixcbiAgVHJlZVN0cnVjdHVyZUljb24sXG4gIFVzZXJGaWxsZWRJY29uLFxuICBTcGVlZG9tZXRlckljb24sXG4gIFRhZ011bHRpSWNvbixcbiAgQ2FydEljb24sXG4gIEJveEljb24sXG4gIEdlYXJJY29uLFxuICBTdXBwb3J0SWNvbixcbiAgV29ybGRJY29uLFxuICBIZWFydEljb24sXG4gIFBhcGVyY2xpcEljb24sXG4gIFBsdWdpbkljb24sXG4gIFJvY2tldEljb24sXG4gIFN0YXJJY29uLFxuICBDb25uZWN0ZWRTcXVhcmVJY29uLFxuICBMaXN0V2l0aFNlYXJjaEljb24sXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2ljb25zJztcbmltcG9ydCBJbmxpbmVTdmcgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMvaW5saW5lLXN2Zyc7XG5pbXBvcnQgTWlzc2luZ0ltYWdlU3ZnIGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2Fzc2V0cy9pbWFnZXMvZGlhZ29uYWwtbGluZS5zdmcnO1xuaW1wb3J0IHtcbiAgTk9fVkFMVUVfRkFMTEJBQ0ssXG4gIFNVUFBPUlRfUE9SVEFMX1VSTCxcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZUFsbEFwcGxpZWRBY3Rpb25SaWdodHMsXG4gIG5vcm1hbGl6ZUFsbEFwcGxpZWREYXRhRmVuY2VzLFxuICBub3JtYWxpemVBbGxBcHBsaWVkTWVudVZpc2liaWxpdGllcyxcbiAgbm9ybWFsaXplQWxsQXBwbGllZFBlcm1pc3Npb25zLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9hcHBsaWNhdGlvbi1zaGVsbC1jb25uZWN0b3JzJztcbmltcG9ydCB7IFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvcGVybWlzc2lvbnMnO1xuaW1wb3J0IHsgbG9jYXRpb24gfSBmcm9tICcuLi8uLi91dGlscy9sb2NhdGlvbic7XG5pbXBvcnQgeyBHdG1Db250ZXh0IH0gZnJvbSAnLi4vZ3RtLWJvb3Rlcic7XG5pbXBvcnQgTG9hZGluZ1BsYWNlaG9sZGVyIGZyb20gJy4uL2xvYWRpbmctcGxhY2Vob2xkZXInO1xuaW1wb3J0IG1lc3NhZ2VzIGZyb20gJy4vbWVzc2FnZXMnO1xuaW1wb3J0IHVzZUxvYWRpbmdNZW51TGF5b3V0RWZmZWN0IGZyb20gJy4vdXNlLWxvYWRpbmctbWVudS1sYXlvdXQtZWZmZWN0JztcbmltcG9ydCB1c2VOYXZiYXJTdGF0ZU1hbmFnZXIgZnJvbSAnLi91c2UtbmF2YmFyLXN0YXRlLW1hbmFnZXInO1xuaW1wb3J0IG5vbk51bGxhYmxlIGZyb20gJy4vbm9uLW51bGxhYmxlJztcbmltcG9ydCB0cmFja2luZ0V2ZW50cyBmcm9tICcuL3RyYWNraW5nLWV2ZW50cyc7XG4vLyBodHRwczovL2JhYmVsanMuaW8vYmxvZy8yMDE3LzA5LzExL3plcm8tY29uZmlnLXdpdGgtYmFiZWwtbWFjcm9zXG5pbXBvcnQgY29tcGlsZWRTdHlsZXMgZnJvbSAvKiBwcmV2YWwgKi8gJy4vbmF2YmFyLnN0eWxlcyc7XG5cbmNvbnN0IHN0eWxlcyA9IGNvbXBpbGVkU3R5bGVzLmpzb25NYXA7XG5cbnR5cGUgVFByb2plY3RQZXJtaXNzaW9ucyA9IHtcbiAgcGVybWlzc2lvbnM6IFROb3JtYWxpemVkUGVybWlzc2lvbnMgfCBudWxsO1xuICBhY3Rpb25SaWdodHM6IFROb3JtYWxpemVkQWN0aW9uUmlnaHRzIHwgbnVsbDtcbiAgZGF0YUZlbmNlczogVE5vcm1hbGl6ZWREYXRhRmVuY2VzIHwgbnVsbDtcbn07XG5cbi8qXG48RGF0YU1lbnUgZGF0YT17W119PlxuICA8TWVudUdyb3VwPlxuICAgIDxNZW51SXRlbT5cbiAgICAgIDxNZW51SXRlbUxpbmsgbGlua1RvPVwiL2Zvb1wiPihpY29uKSBQcm9kdWN0czwvTWVudUl0ZW1MaW5rPlxuICAgICAgPE1lbnVHcm91cD5cbiAgICAgICAgPE1lbnVJdGVtTGluayBsaW5rVG89XCIvZm9vL25ld1wiPkFkZCBwcm9kdWN0PC9NZW51SXRlbUxpbms+XG4gICAgICA8L01lbnVHcm91cD5cbiAgICA8L01lbnVJdGVtPlxuICA8L01lbnVHcm91cD5cbiAgPE1lbnVFeHBhbmRlci8+XG48L0RhdGFNZW51PlxuKi9cblxudHlwZSBJY29uUHJvcHMgPSBQYXJhbWV0ZXJzPHR5cGVvZiBCYWNrSWNvbj5bMF07XG50eXBlIEljb25Td2l0Y2hlclByb3BzID0geyBpY29uOiBzdHJpbmcgfSAmIEljb25Qcm9wcztcbi8vIFRoZSBpY29uIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBgc3ZnYCBkb2N1bWVudCBhcyBhIHN0cmluZy5cbi8vIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcywgd2Ugc3RpbGwgc3VwcG9ydCB0aGUgbGVnYWN5IFwiaWNvbiBuYW1lXCIsXG4vLyB3aGljaCB3ZSB0aGVuIG1hcCB0byBvbmUgb2YgdGhlIHByZS1kZWZpbmVkIGljb25zLlxuLy8gRXZlbnR1YWxseSwgd2Ugd2FudCB0byBnZXQgcmlkIG9mIHRoaXMgXCJzd2l0Y2hcIiBsb2dpYy5cbmNvbnN0IEljb25Td2l0Y2hlciA9ICh7IGljb24sIC4uLmljb25Qcm9wcyB9OiBJY29uU3dpdGNoZXJQcm9wcykgPT4ge1xuICBpZiAoaWNvbi5pbmNsdWRlcygnPHN2ZycpKSB7XG4gICAgcmV0dXJuIDxJbmxpbmVTdmcgZGF0YT17aWNvbn0gey4uLmljb25Qcm9wc30gLz47XG4gIH1cbiAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcHMgdXNpbmcgdGhlIFwiaWNvbiBuYW1lXCIuXG4gIHN3aXRjaCAoaWNvbikge1xuICAgIC8vIEFwcGxpY2F0aW9uIGljb25zXG4gICAgY2FzZSAnVHJlZVN0cnVjdHVyZUljb24nOlxuICAgICAgcmV0dXJuIDxUcmVlU3RydWN0dXJlSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdVc2VyRmlsbGVkSWNvbic6XG4gICAgICByZXR1cm4gPFVzZXJGaWxsZWRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1NwZWVkb21ldGVySWNvbic6XG4gICAgICByZXR1cm4gPFNwZWVkb21ldGVySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdUYWdNdWx0aUljb24nOlxuICAgICAgcmV0dXJuIDxUYWdNdWx0aUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ2FydEljb24nOlxuICAgICAgcmV0dXJuIDxDYXJ0SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdCb3hJY29uJzpcbiAgICAgIHJldHVybiA8Qm94SWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdHZWFySWNvbic6XG4gICAgICByZXR1cm4gPEdlYXJJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0xpc3RXaXRoU2VhcmNoSWNvbic6XG4gICAgICByZXR1cm4gPExpc3RXaXRoU2VhcmNoSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICAvLyBDdXN0b20gYXBwbGljYXRpb24gaWNvbnMgc2V0XG4gICAgY2FzZSAnSGVhcnRJY29uJzpcbiAgICAgIHJldHVybiA8SGVhcnRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1BhcGVyY2xpcEljb24nOlxuICAgICAgcmV0dXJuIDxQYXBlcmNsaXBJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1BsdWdpbkljb24nOlxuICAgICAgcmV0dXJuIDxQbHVnaW5JY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1JvY2tldEljb24nOlxuICAgICAgcmV0dXJuIDxSb2NrZXRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1N0YXJJY29uJzpcbiAgICAgIHJldHVybiA8U3Rhckljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ29ubmVjdGVkU3F1YXJlSWNvbic6XG4gICAgICByZXR1cm4gPENvbm5lY3RlZFNxdWFyZUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgY2FzZSAnV29ybGRJY29uJzpcbiAgICAgIHJldHVybiA8V29ybGRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gPGltZyBzcmM9e01pc3NpbmdJbWFnZVN2Z30gYWx0PVwibWlzc2luZyBpY29uXCIgLz47XG4gIH1cbn07XG5JY29uU3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnSWNvblN3aXRjaGVyJztcblxudHlwZSBNZW51RXhwYW5kZXJQcm9wcyA9IHtcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGlzTWVudU9wZW46IGJvb2xlYW47XG59O1xuY29uc3QgTWVudUV4cGFuZGVyID0gKHByb3BzOiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICBjb25zdCBndG1UcmFja2luZyA9IHVzZUNvbnRleHQoR3RtQ29udGV4dCk7XG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICBrZXk9XCJleHBhbmRlclwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoc3R5bGVzWydsaXN0LWl0ZW0nXSwgc3R5bGVzLmV4cGFuZGVyLCB7XG4gICAgICAgIFtzdHlsZXMuaGlkZGVuXTogIXByb3BzLmlzVmlzaWJsZSxcbiAgICAgIH0pfVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBhY3Rpb24sIGNhdGVnb3J5LCBsYWJlbCB9ID1cbiAgICAgICAgICAgIHRyYWNraW5nRXZlbnRzW1xuICAgICAgICAgICAgICBwcm9wcy5pc01lbnVPcGVuID8gJ2NvbGxhcHNlTWFpbk5hdicgOiAnZXhwYW5kTWFpbk5hdidcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgZ3RtVHJhY2tpbmcudHJhY2soYWN0aW9uLCBjYXRlZ29yeSwgbGFiZWwpO1xuICAgICAgICAgIHByb3BzLm9uQ2xpY2soZXZlbnQpO1xuICAgICAgICB9fVxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1snZXhwYW5kLWljb24nXX1cbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJtZW51LWV4cGFuZGVyXCJcbiAgICAgID5cbiAgICAgICAgey8qXG4gICAgICAgICAgRklYTUU6IGRlZmluZSBob3ZlciBlZmZlY3QuXG4gICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2NvbW1lcmNldG9vbHMvbWVyY2hhbnQtY2VudGVyLWZyb250ZW5kL2lzc3Vlcy8yMjE2XG4gICAgICAgICovfVxuICAgICAgICA8QmFja0ljb24gY29sb3I9XCJzdXJmYWNlXCIgc2l6ZT1cImJpZ1wiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICApO1xufTtcbk1lbnVFeHBhbmRlci5kaXNwbGF5TmFtZSA9ICdNZW51RXhwYW5kZXInO1xuXG50eXBlIE1lbnVHcm91cFByb3BzID0ge1xuICBpZDogc3RyaW5nO1xuICBsZXZlbDogMSB8IDI7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcbmNvbnN0IE1lbnVHcm91cCA9IChwcm9wczogTWVudUdyb3VwUHJvcHMpID0+IHtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgcHJvcHMuaXNFeHBhbmRlZDtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmICFwcm9wcy5pc0V4cGFuZGVkO1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgaWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICBkYXRhLXRlc3RpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9e1xuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkIHx8XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkXG4gICAgICB9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgIHsgW3N0eWxlcy5saXN0XTogcHJvcHMubGV2ZWwgPT09IDEgfSxcbiAgICAgICAgeyBbc3R5bGVzLnN1Ymxpc3RdOiBwcm9wcy5sZXZlbCA9PT0gMiB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1uby1jaGlsZHJlbiddXTogcHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmNoaWxkcmVuLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1leHBhbmRlZF9fYWN0aXZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmUnXV06XG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc3VibGlzdF9faW5hY3RpdmVdOiAhaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvdWw+XG4gICk7XG59O1xuTWVudUdyb3VwLmRpc3BsYXlOYW1lID0gJ01lbnVHcm91cCc7XG5cbnR5cGUgTWVudUl0ZW1Qcm9wcyA9IHtcbiAgaGFzU3VibWVudTogYm9vbGVhbjtcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG4gIGlzTWVudU9wZW46IGJvb2xlYW47XG4gIG9uQ2xpY2s6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgb25Nb3VzZUVudGVyPzogTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBvbk1vdXNlTGVhdmU/OiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xuY29uc3QgTWVudUl0ZW0gPSAocHJvcHM6IE1lbnVJdGVtUHJvcHMpID0+IChcbiAgPGxpXG4gICAgcm9sZT1cIm1lbnUtaXRlbVwiXG4gICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHtcbiAgICAgIFtzdHlsZXMuaXRlbV9fYWN0aXZlXTogcHJvcHMuaXNBY3RpdmUsXG4gICAgICBbc3R5bGVzWydpdGVtX21lbnUtY29sbGFwc2VkJ11dOiAhcHJvcHMuaXNNZW51T3BlbixcbiAgICAgIFtzdHlsZXNbJ2l0ZW1fX25vLXN1Ym1lbnUnXV06ICFwcm9wcy5oYXNTdWJtZW51LFxuICAgIH0pfVxuICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXJ9XG4gICAgb25Nb3VzZUxlYXZlPXtwcm9wcy5vbk1vdXNlTGVhdmV9XG4gID5cbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICA8L2xpPlxuKTtcbk1lbnVJdGVtLmRpc3BsYXlOYW1lID0gJ01lbnVJdGVtJztcblxudHlwZSBNZW51SXRlbUxpbmtQcm9wcyA9IHtcbiAgbGlua1RvPzogc3RyaW5nO1xuICBleGFjdE1hdGNoOiBib29sZWFuO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBvbkNsaWNrPzogPFRyYWNrRm4+KFxuICAgIGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4sXG4gICAgdHJhY2s6IFRyYWNrRm5cbiAgKSA9PiB2b2lkO1xuICB1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3M/OiBib29sZWFuO1xufTtcbmNvbnN0IG1lbnVJdGVtTGlua0RlZmF1bHRQcm9wczogUGljazxNZW51SXRlbUxpbmtQcm9wcywgJ2V4YWN0TWF0Y2gnPiA9IHtcbiAgZXhhY3RNYXRjaDogZmFsc2UsXG59O1xuY29uc3QgTWVudUl0ZW1MaW5rID0gKHByb3BzOiBNZW51SXRlbUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCBndG1UcmFja2luZyA9IHVzZUNvbnRleHQoR3RtQ29udGV4dCk7XG4gIGNvbnN0IHJlZGlyZWN0VG8gPSAodGFyZ2V0VXJsOiBzdHJpbmcpID0+IGxvY2F0aW9uLnJlcGxhY2UodGFyZ2V0VXJsKTtcbiAgaWYgKHByb3BzLmxpbmtUbykge1xuICAgIHJldHVybiAoXG4gICAgICA8TmF2TGlua1xuICAgICAgICB0bz17cHJvcHMubGlua1RvfVxuICAgICAgICBleGFjdD17cHJvcHMuZXhhY3RNYXRjaH1cbiAgICAgICAgYWN0aXZlQ2xhc3NOYW1lPXtzdHlsZXMuaGlnaGxpZ2h0ZWR9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWyd0ZXh0LWxpbmsnXX1cbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHByb3BzLmxpbmtUbyAmJiBwcm9wcy51c2VGdWxsUmVkaXJlY3RzRm9yTGlua3MpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZWRpcmVjdFRvKHByb3BzLmxpbmtUbyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5vbkNsaWNrKSB7XG4gICAgICAgICAgICBldmVudC5wZXJzaXN0KCk7XG4gICAgICAgICAgICBwcm9wcy5vbkNsaWNrPHR5cGVvZiBndG1UcmFja2luZy50cmFjaz4oZXZlbnQsIGd0bVRyYWNraW5nLnRyYWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvTmF2TGluaz5cbiAgICApO1xuICB9XG4gIHJldHVybiA8Pntwcm9wcy5jaGlsZHJlbn08Lz47XG59O1xuTWVudUl0ZW1MaW5rLmRpc3BsYXlOYW1lID0gJ01lbnVJdGVtTGluayc7XG5NZW51SXRlbUxpbmsuZGVmYXVsdFByb3BzID0gbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzO1xuXG4vLyBUaGlzIGNvbXBvbmVudCBqdXN0IHJlbmRlciB0d28gZGl2cyB3aXRoIGJvcmRlcnMgaW4gb3JkZXIgdG8gZGlmZmVyZW50aWF0ZVxuLy8gdGhlIHNldHRpbmdzIHBsdWdpbiBmcm9tIHRoZSBvdGhlciBvbmVzXG5jb25zdCBNZW51SXRlbURpdmlkZXIgPSAoKSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2RpdmlkZXItZmlyc3QtaXRlbSddfT5cbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydkaXZpZGVyLXNlY29uZC1pdGVtJ119IC8+XG4gIDwvZGl2PlxuKTtcbk1lbnVJdGVtRGl2aWRlci5kaXNwbGF5TmFtZSA9ICdNZW51SXRlbURpdmlkZXInO1xuXG5jb25zdCBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbiA9IChcbiAgbWVudVZpc2liaWxpdGllcz86IFROb3JtYWxpemVkTWVudVZpc2liaWxpdGllcyB8IG51bGwsXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW11cbikgPT5cbiAgQXJyYXkuaXNBcnJheShuYW1lc09mTWVudVZpc2liaWxpdGllcykgJiZcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXMubGVuZ3RoID4gMCAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5ldmVyeShcbiAgICAobmFtZU9mTWVudVZpc2liaWxpdHkpID0+XG4gICAgICBtZW51VmlzaWJpbGl0aWVzICYmIG1lbnVWaXNpYmlsaXRpZXNbbmFtZU9mTWVudVZpc2liaWxpdHldID09PSB0cnVlXG4gICk7XG5cbnR5cGUgUmVzdHJpY3RlZE1lbnVJdGVtUHJvcHMgPSB7XG4gIGZlYXR1cmVUb2dnbGU/OiBzdHJpbmc7XG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPzogc3RyaW5nW107XG4gIHByb2plY3RQZXJtaXNzaW9uczogVFByb2plY3RQZXJtaXNzaW9ucztcbiAgbWVudVZpc2liaWxpdGllczogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbDtcbiAga2V5T2ZNZW51SXRlbTogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gIGFjdGlvblJpZ2h0cz86IFRBY3Rpb25SaWdodFtdO1xuICBkYXRhRmVuY2VzPzogVERhdGFGZW5jZVtdO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcbnR5cGUgVExvbmdMaXZlZEZsYWcgPSB7XG4gIHZhbHVlOiBib29sZWFuO1xuICByZWFzb24/OiBzdHJpbmc7XG59O1xuY29uc3QgcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzOiBQaWNrPFxuICBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyxcbiAgJ3Blcm1pc3Npb25zJ1xuPiA9IHtcbiAgcGVybWlzc2lvbnM6IFtdLFxufTtcbmZ1bmN0aW9uIGlzTG9uZ0xpdmVkRmxhZyhcbiAgZmxhZzogVEZsYWdWYXJpYXRpb24gfCBUTG9uZ0xpdmVkRmxhZ1xuKTogZmxhZyBpcyBUTG9uZ0xpdmVkRmxhZyB7XG4gIHJldHVybiB0eXBlb2YgKGZsYWcgYXMgVExvbmdMaXZlZEZsYWcpPy52YWx1ZSA9PT0gJ2Jvb2xlYW4nO1xufVxuY29uc3QgUmVzdHJpY3RlZE1lbnVJdGVtID0gKHByb3BzOiBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcykgPT4ge1xuICAvLyBOT1RFOiBDdXN0b20gYXBwbGljYXRpb24gYXJlIGFjdGl2YXRlZC9kZWFjdGl2YXRlZCB3aGlsZSB0aGVpclxuICAvLyB2aXNpYmlsaXR5IGlzIG5vdCBjb250cm9sbGVkIHZpYSBhIHZpc2liaWlsaXR5IG92ZXJ3cml0ZS5cbiAgY29uc3QgZmxhZ1ZhcmlhdGlvbiA9IHVzZUZsYWdWYXJpYXRpb24ocHJvcHMuZmVhdHVyZVRvZ2dsZSk7XG4gIGlmIChcbiAgICBpc0V2ZXJ5TWVudVZpc2liaWxpdHlTZXRUb0hpZGRlbihcbiAgICAgIHByb3BzLm1lbnVWaXNpYmlsaXRpZXMsXG4gICAgICBwcm9wcy5uYW1lc09mTWVudVZpc2liaWxpdGllc1xuICAgIClcbiAgKVxuICAgIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHBlcm1pc3Npb25zV3JhcHBlciA9XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMucGVybWlzc2lvbnMpICYmIHByb3BzLnBlcm1pc3Npb25zLmxlbmd0aCA+IDApIHx8XG4gICAgKEFycmF5LmlzQXJyYXkocHJvcHMuZGF0YUZlbmNlcykgJiYgcHJvcHMuZGF0YUZlbmNlcy5sZW5ndGggPiAwKSA/IChcbiAgICAgIDxSZXN0cmljdGVkQnlQZXJtaXNzaW9uc1xuICAgICAgICBwZXJtaXNzaW9ucz17cHJvcHMucGVybWlzc2lvbnN9XG4gICAgICAgIGFjdGlvblJpZ2h0cz17cHJvcHMuYWN0aW9uUmlnaHRzfVxuICAgICAgICBkYXRhRmVuY2VzPXtwcm9wcy5kYXRhRmVuY2VzfVxuICAgICAgICBzZWxlY3REYXRhRmVuY2VEYXRhPXsoZGVtYW5kZWREYXRhRmVuY2UpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGRlbWFuZGVkRGF0YUZlbmNlLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0b3JlJzpcbiAgICAgICAgICAgICAgcmV0dXJuIGRlbWFuZGVkRGF0YUZlbmNlLmFjdHVhbERhdGFGZW5jZVZhbHVlcztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgLy8gQWx3YXlzIGNoZWNrIHRoYXQgc29tZSBvZiB0aGUgZ2l2ZW4gcGVybWlzc2lvbnMgbWF0Y2guXG4gICAgICAgIHNob3VsZE1hdGNoU29tZVBlcm1pc3Npb25zPXt0cnVlfVxuICAgICAgICBwcm9qZWN0UGVybWlzc2lvbnM9e3Byb3BzLnByb2plY3RQZXJtaXNzaW9uc31cbiAgICAgID5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9SZXN0cmljdGVkQnlQZXJtaXNzaW9ucz5cbiAgICApIDogKFxuICAgICAgPD57cHJvcHMuY2hpbGRyZW59PC8+XG4gICAgKTtcblxuICBpZiAocHJvcHMuZmVhdHVyZVRvZ2dsZSkge1xuICAgIC8vIEEgcmVndWxhciBzaG9ydC1saXZlZCBmZWF0dXJlIHRvZ2dsZVxuICAgIGlmIChmbGFnVmFyaWF0aW9uID09PSB0cnVlKSByZXR1cm4gcGVybWlzc2lvbnNXcmFwcGVyO1xuICAgIC8vIEEgbG9uZy1saXZlZCBmZWF0dXJlIHRvZ2dsZSB3aXRoIGB7IHZhbHVlOiBib29sZWFuLCBzdHJpbmc6IHJlYXNvbiB9YFxuICAgIGlmIChpc0xvbmdMaXZlZEZsYWcoZmxhZ1ZhcmlhdGlvbikgJiYgZmxhZ1ZhcmlhdGlvbi52YWx1ZSA9PT0gdHJ1ZSlcbiAgICAgIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG59O1xuUmVzdHJpY3RlZE1lbnVJdGVtLmRpc3BsYXlOYW1lID0gJ1Jlc3RyaWN0ZWRNZW51SXRlbSc7XG5SZXN0cmljdGVkTWVudUl0ZW0uZGVmYXVsdFByb3BzID0gcmVzdHJpY3RlZE1lbnVJdGVtRGVmYXVsdFByb3BzO1xuXG5leHBvcnQgY29uc3QgZ2V0SWNvbkNvbG9yID0gKFxuICBpc0FjdGl2ZTogYm9vbGVhbixcbiAgaXNBbHRlcm5hdGl2ZVRoZW1lOiBib29sZWFuXG4pID0+IHtcbiAgaWYgKGlzQWN0aXZlKSByZXR1cm4gJ3ByaW1hcnk0MCc7XG4gIHJldHVybiBpc0FsdGVybmF0aXZlVGhlbWUgPyAnbmV1dHJhbDYwJyA6ICdzdXJmYWNlJztcbn07XG5cbmNvbnN0IGdldE1lbnVWaXNpYmlsaXRpZXNPZlN1Ym1lbnVzID0gKG1lbnU6IFROYXZiYXJNZW51KSA9PlxuICBtZW51LnN1Ym1lbnUubWFwKChzdWJtZW51KSA9PiBzdWJtZW51Lm1lbnVWaXNpYmlsaXR5KS5maWx0ZXIobm9uTnVsbGFibGUpO1xuY29uc3QgZ2V0TWVudVZpc2liaWxpdHlPZk1haW5tZW51ID0gKG1lbnU6IFROYXZiYXJNZW51KSA9PlxuICBtZW51Lm1lbnVWaXNpYmlsaXR5ID8gW21lbnUubWVudVZpc2liaWxpdHldIDogW107XG5cbnR5cGUgTWVudUxhYmVsUHJvcHMgPSB7XG4gIGxhYmVsQWxsTG9jYWxlczogVExvY2FsaXplZEZpZWxkW107XG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbn07XG5jb25zdCBNZW51TGFiZWwgPSAocHJvcHM6IE1lbnVMYWJlbFByb3BzKSA9PiB7XG4gIGNvbnN0IGxvY2FsaXplZExhYmVsID0gcHJvcHMubGFiZWxBbGxMb2NhbGVzLmZpbmQoKGxvYykgPT5cbiAgICBwcm9wcy5hcHBsaWNhdGlvbkxvY2FsZS5zdGFydHNXaXRoKGxvYy5sb2NhbGUpXG4gICk7XG4gIGlmIChsb2NhbGl6ZWRMYWJlbCkgcmV0dXJuIDw+e2xvY2FsaXplZExhYmVsLnZhbHVlfTwvPjtcbiAgaWYgKHByb3BzLmRlZmF1bHRMYWJlbCkgcmV0dXJuIDw+e3Byb3BzLmRlZmF1bHRMYWJlbH08Lz47XG4gIHJldHVybiA8PntOT19WQUxVRV9GQUxMQkFDS308Lz47XG59O1xuXG50eXBlIFRNZW51V2l0aERlZmF1bHRMYWJlbCA9IFROYXZiYXJNZW51ICYge1xuICAvLyBkZXJpdmVzIGZyb20gYHByb2plY3RFeHRlbnNpb25zUXVlcnkuaW5zdGFsbGVkQXBwbGljYXRpb25zLmFwcGxpY2F0aW9uLm1haW5NZW51TGlua2BcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nO1xufTtcbnR5cGUgVFN1Ym1lbnVXaXRoRGVmYXVsdExhYmVsID0gVEJhc2VNZW51ICYge1xuICAvLyBkZXJpdmVzIGZyb20gYHByb2plY3RFeHRlbnNpb25zUXVlcnkuaW5zdGFsbGVkQXBwbGljYXRpb25zLmFwcGxpY2F0aW9uLm1haW5NZW51TGlua2BcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nO1xufTtcblxudHlwZSBBcHBsaWNhdGlvbk1lbnVQcm9wcyA9IHtcbiAgbG9jYXRpb246IFJvdXRlQ29tcG9uZW50UHJvcHNbJ2xvY2F0aW9uJ107XG4gIG1lbnU6IFRNZW51V2l0aERlZmF1bHRMYWJlbDtcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG4gIGlzTWVudU9wZW46IGJvb2xlYW47XG4gIHNob3VsZENsb3NlTWVudUZseTogTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBwcm9qZWN0UGVybWlzc2lvbnM6IFRQcm9qZWN0UGVybWlzc2lvbnM7XG4gIG1lbnVWaXNpYmlsaXRpZXM6IFROb3JtYWxpemVkTWVudVZpc2liaWxpdGllcyB8IG51bGw7XG4gIGhhbmRsZVRvZ2dsZUl0ZW06ICgpID0+IHZvaWQ7XG4gIGFwcGxpY2F0aW9uTG9jYWxlOiBzdHJpbmc7XG4gIHByb2plY3RLZXk6IHN0cmluZztcbiAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzOiBib29sZWFuO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiBNZW51SXRlbUxpbmtQcm9wc1snb25DbGljayddO1xufTtcbmNvbnN0IEFwcGxpY2F0aW9uTWVudSA9IChwcm9wczogQXBwbGljYXRpb25NZW51UHJvcHMpID0+IHtcbiAgY29uc3QgaXNNYWluTWVudVJvdXRlQWN0aXZlID0gQm9vbGVhbihcbiAgICBtYXRjaFBhdGgocHJvcHMubG9jYXRpb24ucGF0aG5hbWUsIHtcbiAgICAgIHBhdGg6IGAvJHtwcm9wcy5wcm9qZWN0S2V5fS8ke3Byb3BzLm1lbnUudXJpUGF0aH1gLFxuICAgICAgZXhhY3Q6IGZhbHNlLFxuICAgICAgc3RyaWN0OiBmYWxzZSxcbiAgICB9KVxuICApO1xuICBjb25zdCBoYXNTdWJtZW51ID1cbiAgICBBcnJheS5pc0FycmF5KHByb3BzLm1lbnUuc3VibWVudSkgJiYgcHJvcHMubWVudS5zdWJtZW51Lmxlbmd0aCA+IDA7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBPbiBmaXJzdCByZW5kZXIsIGNoZWNrIHdoaWNoIG1lbnUgaXMgYWN0aXZlIGZvciB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBhbmQgZXhwYW5kXG4gICAgLy8gdGhlIHN1Ym1lbnUgYXV0b21hdGljYWxseSB1bmxlc3MgdGhlIGFsbCBuYXZiYXIgaXMgY29sbGFwc2VkIG9yIHRoZXJlIGFyZSBubyBzdWJtZW51IGxpbmtzLlxuICAgIGlmIChwcm9wcy5pc01lbnVPcGVuICYmIGlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSAmJiBoYXNTdWJtZW51KSB7XG4gICAgICBwcm9wcy5oYW5kbGVUb2dnbGVJdGVtKCk7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW3Byb3BzLmlzTWVudU9wZW5dKTsgLy8gPC0tIChyZSlydW4gdGhpcyBvbmx5IHdoZW4gdGhlIGFsbCBtZW51IGV4cGFuZHNcblxuICBjb25zdCBuYW1lc09mTWVudVZpc2liaWxpdGllc09mQWxsU3VibWVudXMgPSBoYXNTdWJtZW51XG4gICAgPyBnZXRNZW51VmlzaWJpbGl0aWVzT2ZTdWJtZW51cyhwcm9wcy5tZW51KVxuICAgIDogZ2V0TWVudVZpc2liaWxpdHlPZk1haW5tZW51KHByb3BzLm1lbnUpO1xuXG4gIGNvbnN0IGlzTWFpbk1lbnVJdGVtQUxpbmsgPVxuICAgIC8vIDEuIFdoZW4gdGhlIG5hdmJhciBpcyBjb2xsYXBzZWRcbiAgICAhcHJvcHMuaXNNZW51T3BlbiB8fFxuICAgIC8vIDIuIFdoZW4gdGhlcmUgaXMgbm8gc3VibWVudVxuICAgICFoYXNTdWJtZW51IHx8XG4gICAgLy8gMy4gV2hlbiB0aGUgc3VibWVudSBncm91cCBpcyBhY3RpdmUvdmlzaWJsZVxuICAgIHByb3BzLmlzQWN0aXZlO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtwcm9wcy5tZW51LnNob3VsZFJlbmRlckRpdmlkZXIgJiYgPE1lbnVJdGVtRGl2aWRlciAvPn1cblxuICAgICAgPFJlc3RyaWN0ZWRNZW51SXRlbVxuICAgICAgICBrZXk9e3Byb3BzLm1lbnUua2V5fVxuICAgICAgICBrZXlPZk1lbnVJdGVtPXtwcm9wcy5tZW51LmtleX1cbiAgICAgICAgZmVhdHVyZVRvZ2dsZT17cHJvcHMubWVudS5mZWF0dXJlVG9nZ2xlID8/IHVuZGVmaW5lZH1cbiAgICAgICAgcGVybWlzc2lvbnM9e3Byb3BzLm1lbnUucGVybWlzc2lvbnN9XG4gICAgICAgIGFjdGlvblJpZ2h0cz17cHJvcHMubWVudS5hY3Rpb25SaWdodHMgPz8gdW5kZWZpbmVkfVxuICAgICAgICBkYXRhRmVuY2VzPXtwcm9wcy5tZW51LmRhdGFGZW5jZXMgPz8gdW5kZWZpbmVkfVxuICAgICAgICBwcm9qZWN0UGVybWlzc2lvbnM9e3Byb3BzLnByb2plY3RQZXJtaXNzaW9uc31cbiAgICAgICAgbWVudVZpc2liaWxpdGllcz17cHJvcHMubWVudVZpc2liaWxpdGllc31cbiAgICAgICAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM9e25hbWVzT2ZNZW51VmlzaWJpbGl0aWVzT2ZBbGxTdWJtZW51c31cbiAgICAgID5cbiAgICAgICAgPE1lbnVJdGVtXG4gICAgICAgICAgaGFzU3VibWVudT17aGFzU3VibWVudX1cbiAgICAgICAgICBpc0FjdGl2ZT17cHJvcHMuaXNBY3RpdmV9XG4gICAgICAgICAgaXNNZW51T3Blbj17cHJvcHMuaXNNZW51T3Blbn1cbiAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5oYW5kbGVUb2dnbGVJdGVtfVxuICAgICAgICAgIG9uTW91c2VFbnRlcj17cHJvcHMuaXNNZW51T3BlbiA/IHVuZGVmaW5lZCA6IHByb3BzLmhhbmRsZVRvZ2dsZUl0ZW19XG4gICAgICAgICAgb25Nb3VzZUxlYXZlPXtwcm9wcy5pc01lbnVPcGVuID8gdW5kZWZpbmVkIDogcHJvcHMuc2hvdWxkQ2xvc2VNZW51Rmx5fVxuICAgICAgICA+XG4gICAgICAgICAgPE1lbnVJdGVtTGlua1xuICAgICAgICAgICAgbGlua1RvPXtcbiAgICAgICAgICAgICAgaXNNYWluTWVudUl0ZW1BTGlua1xuICAgICAgICAgICAgICAgID8gYC8ke3Byb3BzLnByb2plY3RLZXl9LyR7cHJvcHMubWVudS51cmlQYXRofWBcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPXtwcm9wcy51c2VGdWxsUmVkaXJlY3RzRm9yTGlua3N9XG4gICAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1pY29uLXRleHQnXX0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuaWNvbn0+XG4gICAgICAgICAgICAgICAgPEljb25Td2l0Y2hlclxuICAgICAgICAgICAgICAgICAgaWNvbj17cHJvcHMubWVudS5pY29ufVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNjYWxlXCJcbiAgICAgICAgICAgICAgICAgIGNvbG9yPXtnZXRJY29uQ29sb3IoXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmlzQWN0aXZlIHx8IGlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgQm9vbGVhbihwcm9wcy5tZW51LnNob3VsZFJlbmRlckRpdmlkZXIpXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMudGl0bGV9XG4gICAgICAgICAgICAgICAgYXJpYS1vd25zPXtgZ3JvdXAtJHtwcm9wcy5tZW51LmtleX1gfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPE1lbnVMYWJlbFxuICAgICAgICAgICAgICAgICAgbGFiZWxBbGxMb2NhbGVzPXtwcm9wcy5tZW51LmxhYmVsQWxsTG9jYWxlc31cbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYWJlbD17cHJvcHMubWVudS5kZWZhdWx0TGFiZWx9XG4gICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17cHJvcHMuYXBwbGljYXRpb25Mb2NhbGV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L01lbnVJdGVtTGluaz5cbiAgICAgICAgICA8TWVudUdyb3VwXG4gICAgICAgICAgICBpZD17cHJvcHMubWVudS5rZXl9XG4gICAgICAgICAgICBsZXZlbD17Mn1cbiAgICAgICAgICAgIGlzQWN0aXZlPXtwcm9wcy5pc0FjdGl2ZX1cbiAgICAgICAgICAgIGlzRXhwYW5kZWQ9e3Byb3BzLmlzTWVudU9wZW59XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2hhc1N1Ym1lbnVcbiAgICAgICAgICAgICAgPyBwcm9wcy5tZW51LnN1Ym1lbnUubWFwKChzdWJtZW51OiBUU3VibWVudVdpdGhEZWZhdWx0TGFiZWwpID0+IChcbiAgICAgICAgICAgICAgICAgIDxSZXN0cmljdGVkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgJHtwcm9wcy5tZW51LmtleX0tc3VibWVudS0ke3N1Ym1lbnUua2V5fWB9XG4gICAgICAgICAgICAgICAgICAgIGtleU9mTWVudUl0ZW09e3N1Ym1lbnUua2V5fVxuICAgICAgICAgICAgICAgICAgICBmZWF0dXJlVG9nZ2xlPXtzdWJtZW51LmZlYXR1cmVUb2dnbGUgPz8gdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9ucz17c3VibWVudS5wZXJtaXNzaW9uc31cbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uUmlnaHRzPXtzdWJtZW51LmFjdGlvblJpZ2h0cyA/PyB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFGZW5jZXM9e3N1Ym1lbnUuZGF0YUZlbmNlcyA/PyB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgICAgICAgICAgICAgICBtZW51VmlzaWJpbGl0aWVzPXtwcm9wcy5tZW51VmlzaWJpbGl0aWVzfVxuICAgICAgICAgICAgICAgICAgICBuYW1lc09mTWVudVZpc2liaWxpdGllcz17XG4gICAgICAgICAgICAgICAgICAgICAgc3VibWVudS5tZW51VmlzaWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBbc3VibWVudS5tZW51VmlzaWJpbGl0eV1cbiAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT17c3R5bGVzWydzdWJsaXN0LWl0ZW0nXX0+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50ZXh0fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbUxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua1RvPXtgLyR7cHJvcHMucHJvamVjdEtleX0vJHtzdWJtZW51LnVyaVBhdGh9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3RNYXRjaD17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy51c2VGdWxsUmVkaXJlY3RzRm9yTGlua3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51TGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbEFsbExvY2FsZXM9e3N1Ym1lbnUubGFiZWxBbGxMb2NhbGVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYWJlbD17c3VibWVudS5kZWZhdWx0TGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e3Byb3BzLmFwcGxpY2F0aW9uTG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NZW51SXRlbUxpbms+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICA8L1Jlc3RyaWN0ZWRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICA6IG51bGx9XG4gICAgICAgICAgPC9NZW51R3JvdXA+XG4gICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICA8L1Jlc3RyaWN0ZWRNZW51SXRlbT5cbiAgICA8Lz5cbiAgKTtcbn07XG5BcHBsaWNhdGlvbk1lbnUuZGlzcGxheU5hbWUgPSAnQXBwbGljYXRpb25NZW51JztcblxudHlwZSBOYXZCYXJMYXlvdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn07XG5jb25zdCBOYXZCYXJMYXlvdXQgPSBmb3J3YXJkUmVmPEhUTUxFbGVtZW50LCBOYXZCYXJMYXlvdXRQcm9wcz4oXG4gIChwcm9wcywgcmVmKSA9PiAoXG4gICAgPD5cbiAgICAgIDxHbG9iYWxcbiAgICAgICAgc3R5bGVzPXtjc3NgXG4gICAgICAgICAgJHtjb21waWxlZFN0eWxlcy5nbG9iYWx9XG4gICAgICAgIGB9XG4gICAgICAvPlxuICAgICAgPG5hdlxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbJ2xlZnQtbmF2aWdhdGlvbiddfVxuICAgICAgICBkYXRhLXRlc3Q9XCJsZWZ0LW5hdmlnYXRpb25cIlxuICAgICAgICBkYXRhLXRlc3RpZD1cImxlZnQtbmF2aWdhdGlvblwiXG4gICAgICAgIGRhdGEtdHJhY2stY29tcG9uZW50PVwiTmF2aWdhdGlvblwiXG4gICAgICA+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvbmF2PlxuICAgIDwvPlxuICApXG4pO1xuTmF2QmFyTGF5b3V0LmRpc3BsYXlOYW1lID0gJ05hdkJhckxheW91dCc7XG5cbnR5cGUgTmF2YmFyUHJvcHM8QWRkaXRpb25hbEVudmlyb25tZW50UHJvcGVydGllcyBleHRlbmRzIHt9PiA9IHtcbiAgYXBwbGljYXRpb25Mb2NhbGU6IHN0cmluZztcbiAgcHJvamVjdEtleTogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogVEFwcGxpY2F0aW9uQ29udGV4dDxBZGRpdGlvbmFsRW52aXJvbm1lbnRQcm9wZXJ0aWVzPlsnZW52aXJvbm1lbnQnXTtcbiAgcHJvamVjdDogVEZldGNoUHJvamVjdFF1ZXJ5Wydwcm9qZWN0J107XG4gIG9uTWVudUl0ZW1DbGljaz86IE1lbnVJdGVtTGlua1Byb3BzWydvbkNsaWNrJ107XG59O1xuY29uc3QgTmF2QmFyID0gPEFkZGl0aW9uYWxFbnZpcm9ubWVudFByb3BlcnRpZXMgZXh0ZW5kcyB7fT4oXG4gIHByb3BzOiBOYXZiYXJQcm9wczxBZGRpdGlvbmFsRW52aXJvbm1lbnRQcm9wZXJ0aWVzPlxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBuYXZCYXJOb2RlLFxuICAgIGlzTWVudU9wZW4sXG4gICAgaXNFeHBhbmRlclZpc2libGUsXG4gICAgYWN0aXZlSXRlbUluZGV4LFxuICAgIGhhbmRsZVRvZ2dsZUl0ZW0sXG4gICAgaGFuZGxlVG9nZ2xlTWVudSxcbiAgICBzaG91bGRDbG9zZU1lbnVGbHksXG4gICAgYWxsQXBwbGljYXRpb25OYXZiYXJNZW51LFxuICB9ID0gdXNlTmF2YmFyU3RhdGVNYW5hZ2VyKHtcbiAgICBlbnZpcm9ubWVudDogcHJvcHMuZW52aXJvbm1lbnQsXG4gIH0pO1xuICBjb25zdCB1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3MgPSBCb29sZWFuKFxuICAgIHByb3BzLmVudmlyb25tZW50LnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rc1xuICApO1xuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG4gIGNvbnN0IGd0bVRyYWNraW5nID0gdXNlQ29udGV4dChHdG1Db250ZXh0KTtcblxuICBjb25zdCBwcm9qZWN0UGVybWlzc2lvbnM6IFRQcm9qZWN0UGVybWlzc2lvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBwZXJtaXNzaW9uczogbm9ybWFsaXplQWxsQXBwbGllZFBlcm1pc3Npb25zKFxuICAgICAgICBwcm9wcy5wcm9qZWN0Py5hbGxQZXJtaXNzaW9uc0ZvckFsbEFwcGxpY2F0aW9ucy5hbGxBcHBsaWVkUGVybWlzc2lvbnNcbiAgICAgICksXG4gICAgICBhY3Rpb25SaWdodHM6IG5vcm1hbGl6ZUFsbEFwcGxpZWRBY3Rpb25SaWdodHMoXG4gICAgICAgIHByb3BzLnByb2plY3Q/LmFsbFBlcm1pc3Npb25zRm9yQWxsQXBwbGljYXRpb25zLmFsbEFwcGxpZWRBY3Rpb25SaWdodHNcbiAgICAgICksXG4gICAgICBkYXRhRmVuY2VzOiBub3JtYWxpemVBbGxBcHBsaWVkRGF0YUZlbmNlcyhcbiAgICAgICAgcHJvcHMucHJvamVjdD8uYWxsUGVybWlzc2lvbnNGb3JBbGxBcHBsaWNhdGlvbnMuYWxsQXBwbGllZERhdGFGZW5jZXNcbiAgICAgICksXG4gICAgfSksXG4gICAgW3Byb3BzLnByb2plY3RdXG4gICk7XG4gIGNvbnN0IG1lbnVWaXNpYmlsaXRpZXMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBub3JtYWxpemVBbGxBcHBsaWVkTWVudVZpc2liaWxpdGllcyhcbiAgICAgICAgcHJvcHMucHJvamVjdD8uYWxsUGVybWlzc2lvbnNGb3JBbGxBcHBsaWNhdGlvbnNcbiAgICAgICAgICAuYWxsQXBwbGllZE1lbnVWaXNpYmlsaXRpZXNcbiAgICAgICksXG4gICAgW3Byb3BzLnByb2plY3RdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8TmF2QmFyTGF5b3V0IHJlZj17bmF2QmFyTm9kZX0+XG4gICAgICA8TWVudUdyb3VwIGlkPVwibWFpblwiIGxldmVsPXsxfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snc2Nyb2xsYWJsZS1tZW51J119PlxuICAgICAgICAgIHthbGxBcHBsaWNhdGlvbk5hdmJhck1lbnUubWFwKChtZW51KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZW51VHlwZSA9ICdzY3JvbGxhYmxlJztcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IGAke21lbnVUeXBlfS0ke21lbnUua2V5fWA7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8QXBwbGljYXRpb25NZW51XG4gICAgICAgICAgICAgICAga2V5PXttZW51LmtleX1cbiAgICAgICAgICAgICAgICBsb2NhdGlvbj17bG9jYXRpb259XG4gICAgICAgICAgICAgICAgbWVudT17bWVudX1cbiAgICAgICAgICAgICAgICBpc0FjdGl2ZT17YWN0aXZlSXRlbUluZGV4ID09PSBpdGVtSW5kZXh9XG4gICAgICAgICAgICAgICAgaGFuZGxlVG9nZ2xlSXRlbT17KCkgPT4gaGFuZGxlVG9nZ2xlSXRlbShpdGVtSW5kZXgpfVxuICAgICAgICAgICAgICAgIGlzTWVudU9wZW49e2lzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgc2hvdWxkQ2xvc2VNZW51Rmx5PXtzaG91bGRDbG9zZU1lbnVGbHl9XG4gICAgICAgICAgICAgICAgcHJvamVjdFBlcm1pc3Npb25zPXtwcm9qZWN0UGVybWlzc2lvbnN9XG4gICAgICAgICAgICAgICAgbWVudVZpc2liaWxpdGllcz17bWVudVZpc2liaWxpdGllc31cbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17cHJvcHMuYXBwbGljYXRpb25Mb2NhbGV9XG4gICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvcHMucHJvamVjdEtleX1cbiAgICAgICAgICAgICAgICB1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3M9e3VzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rc31cbiAgICAgICAgICAgICAgICBvbk1lbnVJdGVtQ2xpY2s9e3Byb3BzLm9uTWVudUl0ZW1DbGlja31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydmaXhlZC1tZW51J119PlxuICAgICAgICAgIDxNZW51SXRlbVxuICAgICAgICAgICAgaGFzU3VibWVudT17ZmFsc2V9XG4gICAgICAgICAgICBpc0FjdGl2ZT17ZmFsc2V9XG4gICAgICAgICAgICBpc01lbnVPcGVuPXtpc01lbnVPcGVufVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBndG1UcmFja2luZy50cmFjayhcbiAgICAgICAgICAgICAgICB0cmFja2luZ0V2ZW50cy5nb1RvU3VwcG9ydC5hY3Rpb24sXG4gICAgICAgICAgICAgICAgdHJhY2tpbmdFdmVudHMuZ29Ub1N1cHBvcnQuY2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgdHJhY2tpbmdFdmVudHMuZ29Ub1N1cHBvcnQubGFiZWxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaGFuZGxlVG9nZ2xlSXRlbSgnZml4ZWQtc3VwcG9ydCcpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VFbnRlcj17XG4gICAgICAgICAgICAgIGlzTWVudU9wZW4gPyB1bmRlZmluZWQgOiAoKSA9PiBoYW5kbGVUb2dnbGVJdGVtKCdmaXhlZC1zdXBwb3J0JylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17aXNNZW51T3BlbiA/IHVuZGVmaW5lZCA6IHNob3VsZENsb3NlTWVudUZseX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBocmVmPXtTVVBQT1JUX1BPUlRBTF9VUkx9XG4gICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWljb24tdGV4dCddfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmljb259PlxuICAgICAgICAgICAgICAgICAgPFN1cHBvcnRJY29uXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzY2FsZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPXtnZXRJY29uQ29sb3IoXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlSXRlbUluZGV4ID09PSAnZml4ZWQtc3VwcG9ydCcsXG4gICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnRpdGxlfT5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlc1snTmF2QmFyLk1DU3VwcG9ydC50aXRsZSddfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgIDxNZW51RXhwYW5kZXJcbiAgICAgICAgICAgIGlzVmlzaWJsZT17aXNFeHBhbmRlclZpc2libGV9XG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVUb2dnbGVNZW51fVxuICAgICAgICAgICAgaXNNZW51T3Blbj17aXNNZW51T3Blbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvTWVudUdyb3VwPlxuICAgIDwvTmF2QmFyTGF5b3V0PlxuICApO1xufTtcbk5hdkJhci5kaXNwbGF5TmFtZSA9ICdOYXZCYXInO1xuXG5leHBvcnQgZGVmYXVsdCBOYXZCYXI7XG5cbmV4cG9ydCBjb25zdCBMb2FkaW5nTmF2QmFyID0gKCkgPT4ge1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICB1c2VMb2FkaW5nTWVudUxheW91dEVmZmVjdCgpO1xuICByZXR1cm4gKFxuICAgIDxOYXZCYXJMYXlvdXQgcmVmPXtyZWZ9PlxuICAgICAgPE1lbnVHcm91cCBpZD1cIm1haW5cIiBsZXZlbD17MX0+XG4gICAgICAgIDw+XG4gICAgICAgICAge0FycmF5LmZyb20obmV3IEFycmF5KDUpKS5tYXAoKF8sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgaGFzU3VibWVudT17ZmFsc2V9XG4gICAgICAgICAgICAgIGlzTWVudU9wZW49e2ZhbHNlfVxuICAgICAgICAgICAgICBpc0FjdGl2ZT17ZmFsc2V9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsb2FkaW5nLWRvdC1jb250YWluZXInXX1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17YGRvdC1jb250YWluZXItJHtpbmRleH1gfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPExvYWRpbmdQbGFjZWhvbGRlciBzaGFwZT1cImRvdFwiIHNpemU9XCJtXCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICkpfVxuICAgICAgICA8Lz5cbiAgICAgIDwvTWVudUdyb3VwPlxuICAgIDwvTmF2QmFyTGF5b3V0PlxuICApO1xufTtcbkxvYWRpbmdOYXZCYXIuZGlzcGxheU5hbWUgPSAnTG9hZGluZ05hdkJhcic7XG4iXX0= */")
|
|
3763
|
+
styles: /*#__PURE__*/react$2.css(compiledStyles.global, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:NavBarLayout;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5hdmJhci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeWtCbUIiLCJmaWxlIjoibmF2YmFyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUm91dGVDb21wb25lbnRQcm9wcyB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHR5cGUge1xuICBUQXBwbGljYXRpb25Db250ZXh0LFxuICBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMsXG4gIFROb3JtYWxpemVkUGVybWlzc2lvbnMsXG4gIFROb3JtYWxpemVkQWN0aW9uUmlnaHRzLFxuICBUTm9ybWFsaXplZERhdGFGZW5jZXMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHR5cGUgeyBURmV0Y2hQcm9qZWN0UXVlcnkgfSBmcm9tICcuLi8uLi90eXBlcy9nZW5lcmF0ZWQvbWMnO1xuaW1wb3J0IHR5cGUge1xuICBURGF0YUZlbmNlLFxuICBUQWN0aW9uUmlnaHQsXG4gIFRMb2NhbGl6ZWRGaWVsZCxcbiAgVE5hdmJhck1lbnUsXG4gIFRCYXNlTWVudSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvZ2VuZXJhdGVkL3Byb3h5JztcbmltcG9ydCB0eXBlIHsgVEZsYWdWYXJpYXRpb24gfSBmcm9tICdAZmxvcGZsaXAvdHlwZXMnO1xuaW1wb3J0IHtcbiAgZm9yd2FyZFJlZixcbiAgbGF6eSxcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIFJlYWN0Tm9kZSxcbiAgU3ludGhldGljRXZlbnQsXG4gIHVzZUNvbnRleHQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgeyBOYXZMaW5rLCBtYXRjaFBhdGgsIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyB1c2VGbGFnVmFyaWF0aW9uIH0gZnJvbSAnQGZsb3BmbGlwL3JlYWN0LWJyb2FkY2FzdCc7XG5pbXBvcnQgeyBHbG9iYWwsIGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtcbiAgQXJyb3dSaWdodEljb24sXG4gIEJhY2tJY29uLFxuICBTdXBwb3J0SWNvbixcbn0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvaWNvbnMnO1xuaW1wb3J0IElubGluZVN2ZyBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pY29ucy9pbmxpbmUtc3ZnJztcbmltcG9ydCBNaXNzaW5nSW1hZ2VTdmcgZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXNzZXRzL2ltYWdlcy9kaWFnb25hbC1saW5lLnN2Zyc7XG5pbXBvcnQge1xuICBOT19WQUxVRV9GQUxMQkFDSyxcbiAgU1VQUE9SVF9QT1JUQUxfVVJMLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgbm9ybWFsaXplQWxsQXBwbGllZEFjdGlvblJpZ2h0cyxcbiAgbm9ybWFsaXplQWxsQXBwbGllZERhdGFGZW5jZXMsXG4gIG5vcm1hbGl6ZUFsbEFwcGxpZWRNZW51VmlzaWJpbGl0aWVzLFxuICBub3JtYWxpemVBbGxBcHBsaWVkUGVybWlzc2lvbnMsXG59IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgUmVzdHJpY3RlZEJ5UGVybWlzc2lvbnMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBsb2NhdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2F0aW9uJztcbmltcG9ydCB7IEd0bUNvbnRleHQgfSBmcm9tICcuLi9ndG0tYm9vdGVyJztcbmltcG9ydCBMb2FkaW5nUGxhY2Vob2xkZXIgZnJvbSAnLi4vbG9hZGluZy1wbGFjZWhvbGRlcic7XG5pbXBvcnQgbWVzc2FnZXMgZnJvbSAnLi9tZXNzYWdlcyc7XG5pbXBvcnQgdXNlTG9hZGluZ01lbnVMYXlvdXRFZmZlY3QgZnJvbSAnLi91c2UtbG9hZGluZy1tZW51LWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHVzZU5hdmJhclN0YXRlTWFuYWdlciBmcm9tICcuL3VzZS1uYXZiYXItc3RhdGUtbWFuYWdlcic7XG5pbXBvcnQgbm9uTnVsbGFibGUgZnJvbSAnLi9ub24tbnVsbGFibGUnO1xuaW1wb3J0IHRyYWNraW5nRXZlbnRzIGZyb20gJy4vdHJhY2tpbmctZXZlbnRzJztcbi8vIGh0dHBzOi8vYmFiZWxqcy5pby9ibG9nLzIwMTcvMDkvMTEvemVyby1jb25maWctd2l0aC1iYWJlbC1tYWNyb3NcbmltcG9ydCBjb21waWxlZFN0eWxlcyBmcm9tIC8qIHByZXZhbCAqLyAnLi9uYXZiYXIuc3R5bGVzJztcblxuY29uc3Qgc3R5bGVzID0gY29tcGlsZWRTdHlsZXMuanNvbk1hcDtcblxudHlwZSBUUHJvamVjdFBlcm1pc3Npb25zID0ge1xuICBwZXJtaXNzaW9uczogVE5vcm1hbGl6ZWRQZXJtaXNzaW9ucyB8IG51bGw7XG4gIGFjdGlvblJpZ2h0czogVE5vcm1hbGl6ZWRBY3Rpb25SaWdodHMgfCBudWxsO1xuICBkYXRhRmVuY2VzOiBUTm9ybWFsaXplZERhdGFGZW5jZXMgfCBudWxsO1xufTtcblxuLypcbjxEYXRhTWVudSBkYXRhPXtbXX0+XG4gIDxNZW51R3JvdXA+XG4gICAgPE1lbnVJdGVtPlxuICAgICAgPE1lbnVJdGVtTGluayBsaW5rVG89XCIvZm9vXCI+KGljb24pIFByb2R1Y3RzPC9NZW51SXRlbUxpbms+XG4gICAgICA8TWVudUdyb3VwPlxuICAgICAgICA8TWVudUl0ZW1MaW5rIGxpbmtUbz1cIi9mb28vbmV3XCI+QWRkIHByb2R1Y3Q8L01lbnVJdGVtTGluaz5cbiAgICAgIDwvTWVudUdyb3VwPlxuICAgIDwvTWVudUl0ZW0+XG4gIDwvTWVudUdyb3VwPlxuICA8TWVudUV4cGFuZGVyLz5cbjwvRGF0YU1lbnU+XG4qL1xuXG5jb25zdCBIZWFydEljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvaGVhcnQnKSk7XG5jb25zdCBQYXBlcmNsaXBJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3BhcGVyY2xpcCcpKTtcbmNvbnN0IFBsdWdpbkljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvcGx1Z2luJykpO1xuY29uc3QgUm9ja2V0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9yb2NrZXQnKSk7XG5jb25zdCBTdGFySWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9zdGFyJykpO1xuY29uc3QgQ29ubmVjdGVkU3F1YXJlSWNvbiA9IGxhenkoXG4gICgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvY29ubmVjdGVkLXNxdWFyZScpXG4pO1xuY29uc3QgV29ybGRJY29uID0gbGF6eSgoKSA9PiBpbXBvcnQoJy4vbGVnYWN5LWljb25zL3dvcmxkJykpO1xuY29uc3QgVHJlZVN0cnVjdHVyZUljb24gPSBsYXp5KCgpID0+IGltcG9ydCgnLi9sZWdhY3ktaWNvbnMvdHJlZS1zdHJ1Y3R1cmUnKSk7XG5jb25zdCBVc2VyRmlsbGVkSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy91c2VyLWZpbGxlZCcpKTtcbmNvbnN0IFNwZWVkb21ldGVySWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9zcGVlZG9tZXRlcicpKTtcbmNvbnN0IFRhZ011bHRpSWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy90YWctbXVsdGknKSk7XG5jb25zdCBDYXJ0SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9jYXJ0JykpO1xuY29uc3QgQm94SWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9ib3gnKSk7XG5jb25zdCBHZWFySWNvbiA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9nZWFyJykpO1xuY29uc3QgTGlzdFdpdGhTZWFyY2hJY29uID0gbGF6eShcbiAgKCkgPT4gaW1wb3J0KCcuL2xlZ2FjeS1pY29ucy9saXN0LXdpdGgtc2VhcmNoJylcbik7XG5cbnR5cGUgSWNvblByb3BzID0gUGFyYW1ldGVyczx0eXBlb2YgQmFja0ljb24+WzBdO1xudHlwZSBJY29uU3dpdGNoZXJQcm9wcyA9IHsgaWNvbjogc3RyaW5nIH0gJiBJY29uUHJvcHM7XG4vLyBUaGUgaWNvbiBpcyBleHBlY3RlZCB0byBiZSB0aGUgYHN2Z2AgZG9jdW1lbnQgYXMgYSBzdHJpbmcuXG4vLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcHVycG9zZXMsIHdlIHN0aWxsIHN1cHBvcnQgdGhlIGxlZ2FjeSBcImljb24gbmFtZVwiLFxuLy8gd2hpY2ggd2UgdGhlbiBtYXAgdG8gb25lIG9mIHRoZSBwcmUtZGVmaW5lZCBpY29ucy5cbi8vIEV2ZW50dWFsbHksIHdlIHdhbnQgdG8gZ2V0IHJpZCBvZiB0aGlzIFwic3dpdGNoXCIgbG9naWMuXG5jb25zdCBJY29uU3dpdGNoZXIgPSAoeyBpY29uLCAuLi5pY29uUHJvcHMgfTogSWNvblN3aXRjaGVyUHJvcHMpID0+IHtcbiAgaWYgKGljb24uaW5jbHVkZXMoJzxzdmcnKSkge1xuICAgIHJldHVybiA8SW5saW5lU3ZnIGRhdGE9e2ljb259IHsuLi5pY29uUHJvcHN9IC8+O1xuICB9XG4gIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBhcHBzIHVzaW5nIHRoZSBcImljb24gbmFtZVwiLlxuICBzd2l0Y2ggKGljb24pIHtcbiAgICAvLyBMZWdhY3kgYXBwbGljYXRpb24gaWNvbnNcbiAgICAvLyBUT0RPOiBUbyBiZSByZW1vdmVkIG9uY2UgTUMgYXBwbGljYXRpb25zIGljb25zIHVwZGF0ZXMgYXJlIHB1Ymxpc2hlZFxuICAgIGNhc2UgJ1RyZWVTdHJ1Y3R1cmVJY29uJzpcbiAgICAgIHJldHVybiA8VHJlZVN0cnVjdHVyZUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnVXNlckZpbGxlZEljb24nOlxuICAgICAgcmV0dXJuIDxVc2VyRmlsbGVkSWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdTcGVlZG9tZXRlckljb24nOlxuICAgICAgcmV0dXJuIDxTcGVlZG9tZXRlckljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnVGFnTXVsdGlJY29uJzpcbiAgICAgIHJldHVybiA8VGFnTXVsdGlJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ0NhcnRJY29uJzpcbiAgICAgIHJldHVybiA8Q2FydEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQm94SWNvbic6XG4gICAgICByZXR1cm4gPEJveEljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnR2Vhckljb24nOlxuICAgICAgcmV0dXJuIDxHZWFySWNvbiB7Li4uaWNvblByb3BzfSAvPjtcbiAgICBjYXNlICdMaXN0V2l0aFNlYXJjaEljb24nOlxuICAgICAgcmV0dXJuIDxMaXN0V2l0aFNlYXJjaEljb24gey4uLmljb25Qcm9wc30gLz47XG5cbiAgICAvLyBDdXN0b20gYXBwbGljYXRpb24gaWNvbnMgc2V0XG4gICAgY2FzZSAnSGVhcnRJY29uJzpcbiAgICAgIHJldHVybiA8SGVhcnRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1BhcGVyY2xpcEljb24nOlxuICAgICAgcmV0dXJuIDxQYXBlcmNsaXBJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1BsdWdpbkljb24nOlxuICAgICAgcmV0dXJuIDxQbHVnaW5JY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1JvY2tldEljb24nOlxuICAgICAgcmV0dXJuIDxSb2NrZXRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGNhc2UgJ1N0YXJJY29uJzpcbiAgICAgIHJldHVybiA8U3Rhckljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgY2FzZSAnQ29ubmVjdGVkU3F1YXJlSWNvbic6XG4gICAgICByZXR1cm4gPENvbm5lY3RlZFNxdWFyZUljb24gey4uLmljb25Qcm9wc30gLz47XG4gICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgY2FzZSAnV29ybGRJY29uJzpcbiAgICAgIHJldHVybiA8V29ybGRJY29uIHsuLi5pY29uUHJvcHN9IC8+O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gPGltZyBzcmM9e01pc3NpbmdJbWFnZVN2Z30gYWx0PVwibWlzc2luZyBpY29uXCIgLz47XG4gIH1cbn07XG5JY29uU3dpdGNoZXIuZGlzcGxheU5hbWUgPSAnSWNvblN3aXRjaGVyJztcblxudHlwZSBNZW51RXhwYW5kZXJQcm9wcyA9IHtcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICBvbkNsaWNrOiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIGlzTWVudU9wZW46IGJvb2xlYW47XG59O1xuY29uc3QgTWVudUV4cGFuZGVyID0gKHByb3BzOiBNZW51RXhwYW5kZXJQcm9wcykgPT4ge1xuICBjb25zdCBndG1UcmFja2luZyA9IHVzZUNvbnRleHQoR3RtQ29udGV4dCk7XG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICBrZXk9XCJleHBhbmRlclwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoc3R5bGVzWydsaXN0LWl0ZW0nXSwgc3R5bGVzLmV4cGFuZGVyLCB7XG4gICAgICAgIFtzdHlsZXMuaGlkZGVuXTogIXByb3BzLmlzVmlzaWJsZSxcbiAgICAgIH0pfVxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBhY3Rpb24sIGNhdGVnb3J5LCBsYWJlbCB9ID1cbiAgICAgICAgICAgIHRyYWNraW5nRXZlbnRzW1xuICAgICAgICAgICAgICBwcm9wcy5pc01lbnVPcGVuID8gJ2NvbGxhcHNlTWFpbk5hdicgOiAnZXhwYW5kTWFpbk5hdidcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgZ3RtVHJhY2tpbmcudHJhY2soYWN0aW9uLCBjYXRlZ29yeSwgbGFiZWwpO1xuICAgICAgICAgIHByb3BzLm9uQ2xpY2soZXZlbnQpO1xuICAgICAgICB9fVxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1snZXhwYW5kLWljb24nXX1cbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJtZW51LWV4cGFuZGVyXCJcbiAgICAgID5cbiAgICAgICAgey8qXG4gICAgICAgICAgRklYTUU6IGRlZmluZSBob3ZlciBlZmZlY3QuXG4gICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2NvbW1lcmNldG9vbHMvbWVyY2hhbnQtY2VudGVyLWZyb250ZW5kL2lzc3Vlcy8yMjE2XG4gICAgICAgICovfVxuICAgICAgICA8QXJyb3dSaWdodEljb24gY29sb3I9XCJzdXJmYWNlXCIgc2l6ZT1cImJpZ1wiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICApO1xufTtcbk1lbnVFeHBhbmRlci5kaXNwbGF5TmFtZSA9ICdNZW51RXhwYW5kZXInO1xuXG50eXBlIE1lbnVHcm91cFByb3BzID0ge1xuICBpZDogc3RyaW5nO1xuICBsZXZlbDogMSB8IDI7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcbmNvbnN0IE1lbnVHcm91cCA9IChwcm9wczogTWVudUdyb3VwUHJvcHMpID0+IHtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCA9XG4gICAgcHJvcHMubGV2ZWwgPT09IDIgJiYgcHJvcHMuaXNBY3RpdmUgJiYgcHJvcHMuaXNFeHBhbmRlZDtcbiAgY29uc3QgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQgPVxuICAgIHByb3BzLmxldmVsID09PSAyICYmIHByb3BzLmlzQWN0aXZlICYmICFwcm9wcy5pc0V4cGFuZGVkO1xuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgaWQ9e2Bncm91cC0ke3Byb3BzLmlkfWB9XG4gICAgICBkYXRhLXRlc3RpZD17YGdyb3VwLSR7cHJvcHMuaWR9YH1cbiAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgIGFyaWEtZXhwYW5kZWQ9e1xuICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUV4cGFuZGVkIHx8XG4gICAgICAgIGlzU3VibGlzdEFjdGl2ZVdoaWxlSXNNZW51Q29sbGFwc2VkXG4gICAgICB9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgIHsgW3N0eWxlcy5saXN0XTogcHJvcHMubGV2ZWwgPT09IDEgfSxcbiAgICAgICAgeyBbc3R5bGVzLnN1Ymxpc3RdOiBwcm9wcy5sZXZlbCA9PT0gMiB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1uby1jaGlsZHJlbiddXTogcHJvcHMubGV2ZWwgPT09IDIgJiYgIXByb3BzLmNoaWxkcmVuLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlc1snc3VibGlzdC1leHBhbmRlZF9fYWN0aXZlJ11dOlxuICAgICAgICAgICAgaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVFeHBhbmRlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXNbJ3N1Ymxpc3QtY29sbGFwc2VkX19hY3RpdmUnXV06XG4gICAgICAgICAgICBpc1N1Ymxpc3RBY3RpdmVXaGlsZUlzTWVudUNvbGxhcHNlZCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc3VibGlzdF9faW5hY3RpdmVdOiAhaXNTdWJsaXN0QWN0aXZlV2hpbGVJc01lbnVDb2xsYXBzZWQsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvdWw+XG4gICk7XG59O1xuTWVudUdyb3VwLmRpc3BsYXlOYW1lID0gJ01lbnVHcm91cCc7XG5cbnR5cGUgTWVudUl0ZW1Qcm9wcyA9IHtcbiAgaGFzU3VibWVudTogYm9vbGVhbjtcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG4gIGlzTWVudU9wZW46IGJvb2xlYW47XG4gIG9uQ2xpY2s6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgb25Nb3VzZUVudGVyPzogTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICBvbk1vdXNlTGVhdmU/OiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xuY29uc3QgTWVudUl0ZW0gPSAocHJvcHM6IE1lbnVJdGVtUHJvcHMpID0+IChcbiAgPGxpXG4gICAgcm9sZT1cIm1lbnUtaXRlbVwiXG4gICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKHN0eWxlc1snbGlzdC1pdGVtJ10sIHtcbiAgICAgIFtzdHlsZXMuaXRlbV9fYWN0aXZlXTogcHJvcHMuaXNBY3RpdmUsXG4gICAgICBbc3R5bGVzWydpdGVtX21lbnUtY29sbGFwc2VkJ11dOiAhcHJvcHMuaXNNZW51T3BlbixcbiAgICAgIFtzdHlsZXNbJ2l0ZW1fX25vLXN1Ym1lbnUnXV06ICFwcm9wcy5oYXNTdWJtZW51LFxuICAgIH0pfVxuICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgb25Nb3VzZUVudGVyPXtwcm9wcy5vbk1vdXNlRW50ZXJ9XG4gICAgb25Nb3VzZUxlYXZlPXtwcm9wcy5vbk1vdXNlTGVhdmV9XG4gID5cbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWxpbmsnXX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICA8L2xpPlxuKTtcbk1lbnVJdGVtLmRpc3BsYXlOYW1lID0gJ01lbnVJdGVtJztcblxudHlwZSBNZW51SXRlbUxpbmtQcm9wcyA9IHtcbiAgbGlua1RvPzogc3RyaW5nO1xuICBleGFjdE1hdGNoOiBib29sZWFuO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBvbkNsaWNrPzogPFRyYWNrRm4+KFxuICAgIGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4sXG4gICAgdHJhY2s6IFRyYWNrRm5cbiAgKSA9PiB2b2lkO1xuICB1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3M/OiBib29sZWFuO1xufTtcbmNvbnN0IG1lbnVJdGVtTGlua0RlZmF1bHRQcm9wczogUGljazxNZW51SXRlbUxpbmtQcm9wcywgJ2V4YWN0TWF0Y2gnPiA9IHtcbiAgZXhhY3RNYXRjaDogZmFsc2UsXG59O1xuY29uc3QgTWVudUl0ZW1MaW5rID0gKHByb3BzOiBNZW51SXRlbUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCBndG1UcmFja2luZyA9IHVzZUNvbnRleHQoR3RtQ29udGV4dCk7XG4gIGNvbnN0IHJlZGlyZWN0VG8gPSAodGFyZ2V0VXJsOiBzdHJpbmcpID0+IGxvY2F0aW9uLnJlcGxhY2UodGFyZ2V0VXJsKTtcbiAgaWYgKHByb3BzLmxpbmtUbykge1xuICAgIHJldHVybiAoXG4gICAgICA8TmF2TGlua1xuICAgICAgICB0bz17cHJvcHMubGlua1RvfVxuICAgICAgICBleGFjdD17cHJvcHMuZXhhY3RNYXRjaH1cbiAgICAgICAgYWN0aXZlQ2xhc3NOYW1lPXtzdHlsZXMuaGlnaGxpZ2h0ZWR9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWyd0ZXh0LWxpbmsnXX1cbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHByb3BzLmxpbmtUbyAmJiBwcm9wcy51c2VGdWxsUmVkaXJlY3RzRm9yTGlua3MpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICByZWRpcmVjdFRvKHByb3BzLmxpbmtUbyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5vbkNsaWNrKSB7XG4gICAgICAgICAgICBldmVudC5wZXJzaXN0KCk7XG4gICAgICAgICAgICBwcm9wcy5vbkNsaWNrPHR5cGVvZiBndG1UcmFja2luZy50cmFjaz4oZXZlbnQsIGd0bVRyYWNraW5nLnRyYWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvTmF2TGluaz5cbiAgICApO1xuICB9XG4gIHJldHVybiA8Pntwcm9wcy5jaGlsZHJlbn08Lz47XG59O1xuTWVudUl0ZW1MaW5rLmRpc3BsYXlOYW1lID0gJ01lbnVJdGVtTGluayc7XG5NZW51SXRlbUxpbmsuZGVmYXVsdFByb3BzID0gbWVudUl0ZW1MaW5rRGVmYXVsdFByb3BzO1xuXG5jb25zdCBNZW51SXRlbURpdmlkZXIgPSAoKSA9PiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmRpdmlkZXJ9IC8+O1xuTWVudUl0ZW1EaXZpZGVyLmRpc3BsYXlOYW1lID0gJ01lbnVJdGVtRGl2aWRlcic7XG5cbmNvbnN0IGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuID0gKFxuICBtZW51VmlzaWJpbGl0aWVzPzogVE5vcm1hbGl6ZWRNZW51VmlzaWJpbGl0aWVzIHwgbnVsbCxcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXVxuKSA9PlxuICBBcnJheS5pc0FycmF5KG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzKSAmJlxuICBuYW1lc09mTWVudVZpc2liaWxpdGllcy5sZW5ndGggPiAwICYmXG4gIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzLmV2ZXJ5KFxuICAgIChuYW1lT2ZNZW51VmlzaWJpbGl0eSkgPT5cbiAgICAgIG1lbnVWaXNpYmlsaXRpZXMgJiYgbWVudVZpc2liaWxpdGllc1tuYW1lT2ZNZW51VmlzaWJpbGl0eV0gPT09IHRydWVcbiAgKTtcblxudHlwZSBSZXN0cmljdGVkTWVudUl0ZW1Qcm9wcyA9IHtcbiAgZmVhdHVyZVRvZ2dsZT86IHN0cmluZztcbiAgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXM/OiBzdHJpbmdbXTtcbiAgcHJvamVjdFBlcm1pc3Npb25zOiBUUHJvamVjdFBlcm1pc3Npb25zO1xuICBtZW51VmlzaWJpbGl0aWVzOiBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMgfCBudWxsO1xuICBrZXlPZk1lbnVJdGVtOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgYWN0aW9uUmlnaHRzPzogVEFjdGlvblJpZ2h0W107XG4gIGRhdGFGZW5jZXM/OiBURGF0YUZlbmNlW107XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xudHlwZSBUTG9uZ0xpdmVkRmxhZyA9IHtcbiAgdmFsdWU6IGJvb2xlYW47XG4gIHJlYXNvbj86IHN0cmluZztcbn07XG5jb25zdCByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM6IFBpY2s8XG4gIFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzLFxuICAncGVybWlzc2lvbnMnXG4+ID0ge1xuICBwZXJtaXNzaW9uczogW10sXG59O1xuZnVuY3Rpb24gaXNMb25nTGl2ZWRGbGFnKFxuICBmbGFnOiBURmxhZ1ZhcmlhdGlvbiB8IFRMb25nTGl2ZWRGbGFnXG4pOiBmbGFnIGlzIFRMb25nTGl2ZWRGbGFnIHtcbiAgcmV0dXJuIHR5cGVvZiAoZmxhZyBhcyBUTG9uZ0xpdmVkRmxhZyk/LnZhbHVlID09PSAnYm9vbGVhbic7XG59XG5jb25zdCBSZXN0cmljdGVkTWVudUl0ZW0gPSAocHJvcHM6IFJlc3RyaWN0ZWRNZW51SXRlbVByb3BzKSA9PiB7XG4gIC8vIE5PVEU6IEN1c3RvbSBhcHBsaWNhdGlvbiBhcmUgYWN0aXZhdGVkL2RlYWN0aXZhdGVkIHdoaWxlIHRoZWlyXG4gIC8vIHZpc2liaWxpdHkgaXMgbm90IGNvbnRyb2xsZWQgdmlhIGEgdmlzaWJpaWxpdHkgb3ZlcndyaXRlLlxuICBjb25zdCBmbGFnVmFyaWF0aW9uID0gdXNlRmxhZ1ZhcmlhdGlvbihwcm9wcy5mZWF0dXJlVG9nZ2xlKTtcbiAgaWYgKFxuICAgIGlzRXZlcnlNZW51VmlzaWJpbGl0eVNldFRvSGlkZGVuKFxuICAgICAgcHJvcHMubWVudVZpc2liaWxpdGllcyxcbiAgICAgIHByb3BzLm5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzXG4gICAgKVxuICApXG4gICAgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgcGVybWlzc2lvbnNXcmFwcGVyID1cbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5wZXJtaXNzaW9ucykgJiYgcHJvcHMucGVybWlzc2lvbnMubGVuZ3RoID4gMCkgfHxcbiAgICAoQXJyYXkuaXNBcnJheShwcm9wcy5kYXRhRmVuY2VzKSAmJiBwcm9wcy5kYXRhRmVuY2VzLmxlbmd0aCA+IDApID8gKFxuICAgICAgPFJlc3RyaWN0ZWRCeVBlcm1pc3Npb25zXG4gICAgICAgIHBlcm1pc3Npb25zPXtwcm9wcy5wZXJtaXNzaW9uc31cbiAgICAgICAgYWN0aW9uUmlnaHRzPXtwcm9wcy5hY3Rpb25SaWdodHN9XG4gICAgICAgIGRhdGFGZW5jZXM9e3Byb3BzLmRhdGFGZW5jZXN9XG4gICAgICAgIHNlbGVjdERhdGFGZW5jZURhdGE9eyhkZW1hbmRlZERhdGFGZW5jZSkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoZGVtYW5kZWREYXRhRmVuY2UudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnc3RvcmUnOlxuICAgICAgICAgICAgICByZXR1cm4gZGVtYW5kZWREYXRhRmVuY2UuYWN0dWFsRGF0YUZlbmNlVmFsdWVzO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAvLyBBbHdheXMgY2hlY2sgdGhhdCBzb21lIG9mIHRoZSBnaXZlbiBwZXJtaXNzaW9ucyBtYXRjaC5cbiAgICAgICAgc2hvdWxkTWF0Y2hTb21lUGVybWlzc2lvbnM9e3RydWV9XG4gICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L1Jlc3RyaWN0ZWRCeVBlcm1pc3Npb25zPlxuICAgICkgOiAoXG4gICAgICA8Pntwcm9wcy5jaGlsZHJlbn08Lz5cbiAgICApO1xuXG4gIGlmIChwcm9wcy5mZWF0dXJlVG9nZ2xlKSB7XG4gICAgLy8gQSByZWd1bGFyIHNob3J0LWxpdmVkIGZlYXR1cmUgdG9nZ2xlXG4gICAgaWYgKGZsYWdWYXJpYXRpb24gPT09IHRydWUpIHJldHVybiBwZXJtaXNzaW9uc1dyYXBwZXI7XG4gICAgLy8gQSBsb25nLWxpdmVkIGZlYXR1cmUgdG9nZ2xlIHdpdGggYHsgdmFsdWU6IGJvb2xlYW4sIHN0cmluZzogcmVhc29uIH1gXG4gICAgaWYgKGlzTG9uZ0xpdmVkRmxhZyhmbGFnVmFyaWF0aW9uKSAmJiBmbGFnVmFyaWF0aW9uLnZhbHVlID09PSB0cnVlKVxuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHBlcm1pc3Npb25zV3JhcHBlcjtcbn07XG5SZXN0cmljdGVkTWVudUl0ZW0uZGlzcGxheU5hbWUgPSAnUmVzdHJpY3RlZE1lbnVJdGVtJztcblJlc3RyaWN0ZWRNZW51SXRlbS5kZWZhdWx0UHJvcHMgPSByZXN0cmljdGVkTWVudUl0ZW1EZWZhdWx0UHJvcHM7XG5cbmV4cG9ydCBjb25zdCBnZXRJY29uQ29sb3IgPSAoaXNBY3RpdmU6IGJvb2xlYW4pID0+IHtcbiAgaWYgKGlzQWN0aXZlKSByZXR1cm4gJ3ByaW1hcnk0MCc7XG4gIHJldHVybiAnc3VyZmFjZSc7XG59O1xuXG5jb25zdCBnZXRNZW51VmlzaWJpbGl0aWVzT2ZTdWJtZW51cyA9IChtZW51OiBUTmF2YmFyTWVudSkgPT5cbiAgbWVudS5zdWJtZW51Lm1hcCgoc3VibWVudSkgPT4gc3VibWVudS5tZW51VmlzaWJpbGl0eSkuZmlsdGVyKG5vbk51bGxhYmxlKTtcbmNvbnN0IGdldE1lbnVWaXNpYmlsaXR5T2ZNYWlubWVudSA9IChtZW51OiBUTmF2YmFyTWVudSkgPT5cbiAgbWVudS5tZW51VmlzaWJpbGl0eSA/IFttZW51Lm1lbnVWaXNpYmlsaXR5XSA6IFtdO1xuXG50eXBlIE1lbnVMYWJlbFByb3BzID0ge1xuICBsYWJlbEFsbExvY2FsZXM6IFRMb2NhbGl6ZWRGaWVsZFtdO1xuICBkZWZhdWx0TGFiZWw/OiBzdHJpbmc7XG4gIGFwcGxpY2F0aW9uTG9jYWxlOiBzdHJpbmc7XG59O1xuY29uc3QgTWVudUxhYmVsID0gKHByb3BzOiBNZW51TGFiZWxQcm9wcykgPT4ge1xuICBjb25zdCBsb2NhbGl6ZWRMYWJlbCA9IHByb3BzLmxhYmVsQWxsTG9jYWxlcy5maW5kKChsb2MpID0+XG4gICAgcHJvcHMuYXBwbGljYXRpb25Mb2NhbGUuc3RhcnRzV2l0aChsb2MubG9jYWxlKVxuICApO1xuICBpZiAobG9jYWxpemVkTGFiZWwpIHJldHVybiA8Pntsb2NhbGl6ZWRMYWJlbC52YWx1ZX08Lz47XG4gIGlmIChwcm9wcy5kZWZhdWx0TGFiZWwpIHJldHVybiA8Pntwcm9wcy5kZWZhdWx0TGFiZWx9PC8+O1xuICByZXR1cm4gPD57Tk9fVkFMVUVfRkFMTEJBQ0t9PC8+O1xufTtcblxudHlwZSBUTWVudVdpdGhEZWZhdWx0TGFiZWwgPSBUTmF2YmFyTWVudSAmIHtcbiAgLy8gZGVyaXZlcyBmcm9tIGBwcm9qZWN0RXh0ZW5zaW9uc1F1ZXJ5Lmluc3RhbGxlZEFwcGxpY2F0aW9ucy5hcHBsaWNhdGlvbi5tYWluTWVudUxpbmtgXG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbn07XG50eXBlIFRTdWJtZW51V2l0aERlZmF1bHRMYWJlbCA9IFRCYXNlTWVudSAmIHtcbiAgLy8gZGVyaXZlcyBmcm9tIGBwcm9qZWN0RXh0ZW5zaW9uc1F1ZXJ5Lmluc3RhbGxlZEFwcGxpY2F0aW9ucy5hcHBsaWNhdGlvbi5tYWluTWVudUxpbmtgXG4gIGRlZmF1bHRMYWJlbD86IHN0cmluZztcbn07XG5cbnR5cGUgQXBwbGljYXRpb25NZW51UHJvcHMgPSB7XG4gIGxvY2F0aW9uOiBSb3V0ZUNvbXBvbmVudFByb3BzWydsb2NhdGlvbiddO1xuICBtZW51OiBUTWVudVdpdGhEZWZhdWx0TGFiZWw7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBpc01lbnVPcGVuOiBib29sZWFuO1xuICBzaG91bGRDbG9zZU1lbnVGbHk6IE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcbiAgcHJvamVjdFBlcm1pc3Npb25zOiBUUHJvamVjdFBlcm1pc3Npb25zO1xuICBtZW51VmlzaWJpbGl0aWVzOiBUTm9ybWFsaXplZE1lbnVWaXNpYmlsaXRpZXMgfCBudWxsO1xuICBoYW5kbGVUb2dnbGVJdGVtOiAoKSA9PiB2b2lkO1xuICBhcHBsaWNhdGlvbkxvY2FsZTogc3RyaW5nO1xuICBwcm9qZWN0S2V5OiBzdHJpbmc7XG4gIHVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rczogYm9vbGVhbjtcbiAgb25NZW51SXRlbUNsaWNrPzogTWVudUl0ZW1MaW5rUHJvcHNbJ29uQ2xpY2snXTtcbn07XG5jb25zdCBBcHBsaWNhdGlvbk1lbnUgPSAocHJvcHM6IEFwcGxpY2F0aW9uTWVudVByb3BzKSA9PiB7XG4gIGNvbnN0IGlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSA9IEJvb2xlYW4oXG4gICAgbWF0Y2hQYXRoKHByb3BzLmxvY2F0aW9uLnBhdGhuYW1lLCB7XG4gICAgICBwYXRoOiBgLyR7cHJvcHMucHJvamVjdEtleX0vJHtwcm9wcy5tZW51LnVyaVBhdGh9YCxcbiAgICAgIGV4YWN0OiBmYWxzZSxcbiAgICAgIHN0cmljdDogZmFsc2UsXG4gICAgfSlcbiAgKTtcbiAgY29uc3QgaGFzU3VibWVudSA9XG4gICAgQXJyYXkuaXNBcnJheShwcm9wcy5tZW51LnN1Ym1lbnUpICYmIHByb3BzLm1lbnUuc3VibWVudS5sZW5ndGggPiAwO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gT24gZmlyc3QgcmVuZGVyLCBjaGVjayB3aGljaCBtZW51IGlzIGFjdGl2ZSBmb3IgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gYW5kIGV4cGFuZFxuICAgIC8vIHRoZSBzdWJtZW51IGF1dG9tYXRpY2FsbHkgdW5sZXNzIHRoZSBhbGwgbmF2YmFyIGlzIGNvbGxhcHNlZCBvciB0aGVyZSBhcmUgbm8gc3VibWVudSBsaW5rcy5cbiAgICBpZiAocHJvcHMuaXNNZW51T3BlbiAmJiBpc01haW5NZW51Um91dGVBY3RpdmUgJiYgaGFzU3VibWVudSkge1xuICAgICAgcHJvcHMuaGFuZGxlVG9nZ2xlSXRlbSgpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtwcm9wcy5pc01lbnVPcGVuXSk7IC8vIDwtLSAocmUpcnVuIHRoaXMgb25seSB3aGVuIHRoZSBhbGwgbWVudSBleHBhbmRzXG5cbiAgY29uc3QgbmFtZXNPZk1lbnVWaXNpYmlsaXRpZXNPZkFsbFN1Ym1lbnVzID0gaGFzU3VibWVudVxuICAgID8gZ2V0TWVudVZpc2liaWxpdGllc09mU3VibWVudXMocHJvcHMubWVudSlcbiAgICA6IGdldE1lbnVWaXNpYmlsaXR5T2ZNYWlubWVudShwcm9wcy5tZW51KTtcblxuICBjb25zdCBpc01haW5NZW51SXRlbUFMaW5rID1cbiAgICAvLyAxLiBXaGVuIHRoZSBuYXZiYXIgaXMgY29sbGFwc2VkXG4gICAgIXByb3BzLmlzTWVudU9wZW4gfHxcbiAgICAvLyAyLiBXaGVuIHRoZXJlIGlzIG5vIHN1Ym1lbnVcbiAgICAhaGFzU3VibWVudSB8fFxuICAgIC8vIDMuIFdoZW4gdGhlIHN1Ym1lbnUgZ3JvdXAgaXMgYWN0aXZlL3Zpc2libGVcbiAgICBwcm9wcy5pc0FjdGl2ZTtcblxuICByZXR1cm4gKFxuICAgIDxSZXN0cmljdGVkTWVudUl0ZW1cbiAgICAgIGtleT17cHJvcHMubWVudS5rZXl9XG4gICAgICBrZXlPZk1lbnVJdGVtPXtwcm9wcy5tZW51LmtleX1cbiAgICAgIGZlYXR1cmVUb2dnbGU9e3Byb3BzLm1lbnUuZmVhdHVyZVRvZ2dsZSA/PyB1bmRlZmluZWR9XG4gICAgICBwZXJtaXNzaW9ucz17cHJvcHMubWVudS5wZXJtaXNzaW9uc31cbiAgICAgIGFjdGlvblJpZ2h0cz17cHJvcHMubWVudS5hY3Rpb25SaWdodHMgPz8gdW5kZWZpbmVkfVxuICAgICAgZGF0YUZlbmNlcz17cHJvcHMubWVudS5kYXRhRmVuY2VzID8/IHVuZGVmaW5lZH1cbiAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgbWVudVZpc2liaWxpdGllcz17cHJvcHMubWVudVZpc2liaWxpdGllc31cbiAgICAgIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPXtuYW1lc09mTWVudVZpc2liaWxpdGllc09mQWxsU3VibWVudXN9XG4gICAgPlxuICAgICAgPE1lbnVJdGVtXG4gICAgICAgIGhhc1N1Ym1lbnU9e2hhc1N1Ym1lbnV9XG4gICAgICAgIGlzQWN0aXZlPXtwcm9wcy5pc0FjdGl2ZX1cbiAgICAgICAgaXNNZW51T3Blbj17cHJvcHMuaXNNZW51T3Blbn1cbiAgICAgICAgb25DbGljaz17cHJvcHMuaGFuZGxlVG9nZ2xlSXRlbX1cbiAgICAgICAgb25Nb3VzZUVudGVyPXtwcm9wcy5pc01lbnVPcGVuID8gdW5kZWZpbmVkIDogcHJvcHMuaGFuZGxlVG9nZ2xlSXRlbX1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXtwcm9wcy5pc01lbnVPcGVuID8gdW5kZWZpbmVkIDogcHJvcHMuc2hvdWxkQ2xvc2VNZW51Rmx5fVxuICAgICAgPlxuICAgICAgICA8TWVudUl0ZW1MaW5rXG4gICAgICAgICAgbGlua1RvPXtcbiAgICAgICAgICAgIGlzTWFpbk1lbnVJdGVtQUxpbmtcbiAgICAgICAgICAgICAgPyBgLyR7cHJvcHMucHJvamVjdEtleX0vJHtwcm9wcy5tZW51LnVyaVBhdGh9YFxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICB1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3M9e3Byb3BzLnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rc31cbiAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzWydpdGVtLWljb24tdGV4dCddfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbJ2ljb24tY29udGFpbmVyJ119PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmljb259PlxuICAgICAgICAgICAgICAgIDxJY29uU3dpdGNoZXJcbiAgICAgICAgICAgICAgICAgIGljb249e3Byb3BzLm1lbnUuaWNvbn1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzY2FsZVwiXG4gICAgICAgICAgICAgICAgICBjb2xvcj17Z2V0SWNvbkNvbG9yKHByb3BzLmlzQWN0aXZlIHx8IGlzTWFpbk1lbnVSb3V0ZUFjdGl2ZSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudGl0bGV9IGFyaWEtb3ducz17YGdyb3VwLSR7cHJvcHMubWVudS5rZXl9YH0+XG4gICAgICAgICAgICAgIDxNZW51TGFiZWxcbiAgICAgICAgICAgICAgICBsYWJlbEFsbExvY2FsZXM9e3Byb3BzLm1lbnUubGFiZWxBbGxMb2NhbGVzfVxuICAgICAgICAgICAgICAgIGRlZmF1bHRMYWJlbD17cHJvcHMubWVudS5kZWZhdWx0TGFiZWx9XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e3Byb3BzLmFwcGxpY2F0aW9uTG9jYWxlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvTWVudUl0ZW1MaW5rPlxuICAgICAgICA8TWVudUdyb3VwXG4gICAgICAgICAgaWQ9e3Byb3BzLm1lbnUua2V5fVxuICAgICAgICAgIGxldmVsPXsyfVxuICAgICAgICAgIGlzQWN0aXZlPXtwcm9wcy5pc0FjdGl2ZX1cbiAgICAgICAgICBpc0V4cGFuZGVkPXtwcm9wcy5pc01lbnVPcGVufVxuICAgICAgICA+XG4gICAgICAgICAge2hhc1N1Ym1lbnVcbiAgICAgICAgICAgID8gcHJvcHMubWVudS5zdWJtZW51Lm1hcCgoc3VibWVudTogVFN1Ym1lbnVXaXRoRGVmYXVsdExhYmVsKSA9PiAoXG4gICAgICAgICAgICAgICAgPFJlc3RyaWN0ZWRNZW51SXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXtgJHtwcm9wcy5tZW51LmtleX0tc3VibWVudS0ke3N1Ym1lbnUua2V5fWB9XG4gICAgICAgICAgICAgICAgICBrZXlPZk1lbnVJdGVtPXtzdWJtZW51LmtleX1cbiAgICAgICAgICAgICAgICAgIGZlYXR1cmVUb2dnbGU9e3N1Ym1lbnUuZmVhdHVyZVRvZ2dsZSA/PyB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICBwZXJtaXNzaW9ucz17c3VibWVudS5wZXJtaXNzaW9uc31cbiAgICAgICAgICAgICAgICAgIGFjdGlvblJpZ2h0cz17c3VibWVudS5hY3Rpb25SaWdodHMgPz8gdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgZGF0YUZlbmNlcz17c3VibWVudS5kYXRhRmVuY2VzID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvcHMucHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgICAgICAgICAgICAgbWVudVZpc2liaWxpdGllcz17cHJvcHMubWVudVZpc2liaWxpdGllc31cbiAgICAgICAgICAgICAgICAgIG5hbWVzT2ZNZW51VmlzaWJpbGl0aWVzPXtcbiAgICAgICAgICAgICAgICAgICAgc3VibWVudS5tZW51VmlzaWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgID8gW3N1Ym1lbnUubWVudVZpc2liaWxpdHldXG4gICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPXtzdHlsZXNbJ3N1Ymxpc3QtaXRlbSddfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50ZXh0fT5cbiAgICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW1MaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rVG89e2AvJHtwcm9wcy5wcm9qZWN0S2V5fS8ke3N1Ym1lbnUudXJpUGF0aH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3RNYXRjaD17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rcz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rc1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17cHJvcHMub25NZW51SXRlbUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51TGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxBbGxMb2NhbGVzPXtzdWJtZW51LmxhYmVsQWxsTG9jYWxlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExhYmVsPXtzdWJtZW51LmRlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e3Byb3BzLmFwcGxpY2F0aW9uTG9jYWxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtTGluaz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvUmVzdHJpY3RlZE1lbnVJdGVtPlxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgOiBudWxsfVxuICAgICAgICA8L01lbnVHcm91cD5cbiAgICAgIDwvTWVudUl0ZW0+XG4gICAgPC9SZXN0cmljdGVkTWVudUl0ZW0+XG4gICk7XG59O1xuQXBwbGljYXRpb25NZW51LmRpc3BsYXlOYW1lID0gJ0FwcGxpY2F0aW9uTWVudSc7XG5cbnR5cGUgTmF2QmFyTGF5b3V0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59O1xuY29uc3QgTmF2QmFyTGF5b3V0ID0gZm9yd2FyZFJlZjxIVE1MRWxlbWVudCwgTmF2QmFyTGF5b3V0UHJvcHM+KFxuICAocHJvcHMsIHJlZikgPT4gKFxuICAgIDw+XG4gICAgICA8R2xvYmFsXG4gICAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAgICR7Y29tcGlsZWRTdHlsZXMuZ2xvYmFsfVxuICAgICAgICBgfVxuICAgICAgLz5cbiAgICAgIDxuYXZcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzWydsZWZ0LW5hdmlnYXRpb24nXX1cbiAgICAgICAgZGF0YS10ZXN0PVwibGVmdC1uYXZpZ2F0aW9uXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJsZWZ0LW5hdmlnYXRpb25cIlxuICAgICAgICBkYXRhLXRyYWNrLWNvbXBvbmVudD1cIk5hdmlnYXRpb25cIlxuICAgICAgPlxuICAgICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgICA8L25hdj5cbiAgICA8Lz5cbiAgKVxuKTtcbk5hdkJhckxheW91dC5kaXNwbGF5TmFtZSA9ICdOYXZCYXJMYXlvdXQnO1xuXG50eXBlIE5hdmJhclByb3BzPEFkZGl0aW9uYWxFbnZpcm9ubWVudFByb3BlcnRpZXMgZXh0ZW5kcyB7fT4gPSB7XG4gIGFwcGxpY2F0aW9uTG9jYWxlOiBzdHJpbmc7XG4gIHByb2plY3RLZXk6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IFRBcHBsaWNhdGlvbkNvbnRleHQ8QWRkaXRpb25hbEVudmlyb25tZW50UHJvcGVydGllcz5bJ2Vudmlyb25tZW50J107XG4gIHByb2plY3Q6IFRGZXRjaFByb2plY3RRdWVyeVsncHJvamVjdCddO1xuICBvbk1lbnVJdGVtQ2xpY2s/OiBNZW51SXRlbUxpbmtQcm9wc1snb25DbGljayddO1xufTtcbmNvbnN0IE5hdkJhciA9IDxBZGRpdGlvbmFsRW52aXJvbm1lbnRQcm9wZXJ0aWVzIGV4dGVuZHMge30+KFxuICBwcm9wczogTmF2YmFyUHJvcHM8QWRkaXRpb25hbEVudmlyb25tZW50UHJvcGVydGllcz5cbikgPT4ge1xuICBjb25zdCB7XG4gICAgbmF2QmFyTm9kZSxcbiAgICBpc01lbnVPcGVuLFxuICAgIGlzRXhwYW5kZXJWaXNpYmxlLFxuICAgIGFjdGl2ZUl0ZW1JbmRleCxcbiAgICBoYW5kbGVUb2dnbGVJdGVtLFxuICAgIGhhbmRsZVRvZ2dsZU1lbnUsXG4gICAgc2hvdWxkQ2xvc2VNZW51Rmx5LFxuICAgIGFsbEludGVybmFsQXBwbGljYXRpb25zTmF2YmFyTWVudSxcbiAgICBhbGxDdXN0b21BcHBsaWNhdGlvbnNOYXZiYXJNZW51LFxuICB9ID0gdXNlTmF2YmFyU3RhdGVNYW5hZ2VyKHtcbiAgICBlbnZpcm9ubWVudDogcHJvcHMuZW52aXJvbm1lbnQsXG4gIH0pO1xuICBjb25zdCB1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3MgPSBCb29sZWFuKFxuICAgIHByb3BzLmVudmlyb25tZW50LnVzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rc1xuICApO1xuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG4gIGNvbnN0IGd0bVRyYWNraW5nID0gdXNlQ29udGV4dChHdG1Db250ZXh0KTtcblxuICBjb25zdCBwcm9qZWN0UGVybWlzc2lvbnM6IFRQcm9qZWN0UGVybWlzc2lvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBwZXJtaXNzaW9uczogbm9ybWFsaXplQWxsQXBwbGllZFBlcm1pc3Npb25zKFxuICAgICAgICBwcm9wcy5wcm9qZWN0Py5hbGxQZXJtaXNzaW9uc0ZvckFsbEFwcGxpY2F0aW9ucy5hbGxBcHBsaWVkUGVybWlzc2lvbnNcbiAgICAgICksXG4gICAgICBhY3Rpb25SaWdodHM6IG5vcm1hbGl6ZUFsbEFwcGxpZWRBY3Rpb25SaWdodHMoXG4gICAgICAgIHByb3BzLnByb2plY3Q/LmFsbFBlcm1pc3Npb25zRm9yQWxsQXBwbGljYXRpb25zLmFsbEFwcGxpZWRBY3Rpb25SaWdodHNcbiAgICAgICksXG4gICAgICBkYXRhRmVuY2VzOiBub3JtYWxpemVBbGxBcHBsaWVkRGF0YUZlbmNlcyhcbiAgICAgICAgcHJvcHMucHJvamVjdD8uYWxsUGVybWlzc2lvbnNGb3JBbGxBcHBsaWNhdGlvbnMuYWxsQXBwbGllZERhdGFGZW5jZXNcbiAgICAgICksXG4gICAgfSksXG4gICAgW3Byb3BzLnByb2plY3RdXG4gICk7XG4gIGNvbnN0IG1lbnVWaXNpYmlsaXRpZXMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBub3JtYWxpemVBbGxBcHBsaWVkTWVudVZpc2liaWxpdGllcyhcbiAgICAgICAgcHJvcHMucHJvamVjdD8uYWxsUGVybWlzc2lvbnNGb3JBbGxBcHBsaWNhdGlvbnNcbiAgICAgICAgICAuYWxsQXBwbGllZE1lbnVWaXNpYmlsaXRpZXNcbiAgICAgICksXG4gICAgW3Byb3BzLnByb2plY3RdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8TmF2QmFyTGF5b3V0IHJlZj17bmF2QmFyTm9kZX0+XG4gICAgICA8TWVudUdyb3VwIGlkPVwibWFpblwiIGxldmVsPXsxfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snc2Nyb2xsYWJsZS1tZW51J119PlxuICAgICAgICAgIHthbGxJbnRlcm5hbEFwcGxpY2F0aW9uc05hdmJhck1lbnUubWFwKChtZW51KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZW51VHlwZSA9ICdzY3JvbGxhYmxlJztcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IGAke21lbnVUeXBlfS0ke21lbnUua2V5fWA7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8QXBwbGljYXRpb25NZW51XG4gICAgICAgICAgICAgICAga2V5PXttZW51LmtleX1cbiAgICAgICAgICAgICAgICBsb2NhdGlvbj17bG9jYXRpb259XG4gICAgICAgICAgICAgICAgbWVudT17bWVudX1cbiAgICAgICAgICAgICAgICBpc0FjdGl2ZT17YWN0aXZlSXRlbUluZGV4ID09PSBpdGVtSW5kZXh9XG4gICAgICAgICAgICAgICAgaGFuZGxlVG9nZ2xlSXRlbT17KCkgPT4gaGFuZGxlVG9nZ2xlSXRlbShpdGVtSW5kZXgpfVxuICAgICAgICAgICAgICAgIGlzTWVudU9wZW49e2lzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgc2hvdWxkQ2xvc2VNZW51Rmx5PXtzaG91bGRDbG9zZU1lbnVGbHl9XG4gICAgICAgICAgICAgICAgcHJvamVjdFBlcm1pc3Npb25zPXtwcm9qZWN0UGVybWlzc2lvbnN9XG4gICAgICAgICAgICAgICAgbWVudVZpc2liaWxpdGllcz17bWVudVZpc2liaWxpdGllc31cbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkxvY2FsZT17cHJvcHMuYXBwbGljYXRpb25Mb2NhbGV9XG4gICAgICAgICAgICAgICAgcHJvamVjdEtleT17cHJvcHMucHJvamVjdEtleX1cbiAgICAgICAgICAgICAgICB1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3M9e3VzZUZ1bGxSZWRpcmVjdHNGb3JMaW5rc31cbiAgICAgICAgICAgICAgICBvbk1lbnVJdGVtQ2xpY2s9e3Byb3BzLm9uTWVudUl0ZW1DbGlja31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgICAgPE1lbnVJdGVtRGl2aWRlciAvPlxuICAgICAgICAgIHthbGxDdXN0b21BcHBsaWNhdGlvbnNOYXZiYXJNZW51Lm1hcCgobWVudSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVudVR5cGUgPSAnc2Nyb2xsYWJsZSc7XG4gICAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSBgJHttZW51VHlwZX0tJHttZW51LmtleX1gO1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPEFwcGxpY2F0aW9uTWVudVxuICAgICAgICAgICAgICAgIGtleT17bWVudS5rZXl9XG4gICAgICAgICAgICAgICAgbG9jYXRpb249e2xvY2F0aW9ufVxuICAgICAgICAgICAgICAgIG1lbnU9e21lbnV9XG4gICAgICAgICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZUl0ZW1JbmRleCA9PT0gaXRlbUluZGV4fVxuICAgICAgICAgICAgICAgIGhhbmRsZVRvZ2dsZUl0ZW09eygpID0+IGhhbmRsZVRvZ2dsZUl0ZW0oaXRlbUluZGV4KX1cbiAgICAgICAgICAgICAgICBpc01lbnVPcGVuPXtpc01lbnVPcGVufVxuICAgICAgICAgICAgICAgIHNob3VsZENsb3NlTWVudUZseT17c2hvdWxkQ2xvc2VNZW51Rmx5fVxuICAgICAgICAgICAgICAgIHByb2plY3RQZXJtaXNzaW9ucz17cHJvamVjdFBlcm1pc3Npb25zfVxuICAgICAgICAgICAgICAgIG1lbnVWaXNpYmlsaXRpZXM9e21lbnVWaXNpYmlsaXRpZXN9XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25Mb2NhbGU9e3Byb3BzLmFwcGxpY2F0aW9uTG9jYWxlfVxuICAgICAgICAgICAgICAgIHByb2plY3RLZXk9e3Byb3BzLnByb2plY3RLZXl9XG4gICAgICAgICAgICAgICAgdXNlRnVsbFJlZGlyZWN0c0ZvckxpbmtzPXt1c2VGdWxsUmVkaXJlY3RzRm9yTGlua3N9XG4gICAgICAgICAgICAgICAgb25NZW51SXRlbUNsaWNrPXtwcm9wcy5vbk1lbnVJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snZml4ZWQtbWVudSddfT5cbiAgICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgIGhhc1N1Ym1lbnU9e2ZhbHNlfVxuICAgICAgICAgICAgaXNBY3RpdmU9e2ZhbHNlfVxuICAgICAgICAgICAgaXNNZW51T3Blbj17aXNNZW51T3Blbn1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgZ3RtVHJhY2tpbmcudHJhY2soXG4gICAgICAgICAgICAgICAgdHJhY2tpbmdFdmVudHMuZ29Ub1N1cHBvcnQuYWN0aW9uLFxuICAgICAgICAgICAgICAgIHRyYWNraW5nRXZlbnRzLmdvVG9TdXBwb3J0LmNhdGVnb3J5LFxuICAgICAgICAgICAgICAgIHRyYWNraW5nRXZlbnRzLmdvVG9TdXBwb3J0LmxhYmVsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGhhbmRsZVRvZ2dsZUl0ZW0oJ2ZpeGVkLXN1cHBvcnQnKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbk1vdXNlRW50ZXI9e1xuICAgICAgICAgICAgICBpc01lbnVPcGVuID8gdW5kZWZpbmVkIDogKCkgPT4gaGFuZGxlVG9nZ2xlSXRlbSgnZml4ZWQtc3VwcG9ydCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbk1vdXNlTGVhdmU9e2lzTWVudU9wZW4gPyB1bmRlZmluZWQgOiBzaG91bGRDbG9zZU1lbnVGbHl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj17U1VQUE9SVF9QT1JUQUxfVVJMfVxuICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaXRlbS1pY29uLXRleHQnXX0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1snaWNvbi1jb250YWluZXInXX0+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmljb259PlxuICAgICAgICAgICAgICAgICAgICA8U3VwcG9ydEljb25cbiAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic2NhbGVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtnZXRJY29uQ29sb3IoYWN0aXZlSXRlbUluZGV4ID09PSAnZml4ZWQtc3VwcG9ydCcpfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50aXRsZX0+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXNbJ05hdkJhci5NQ1N1cHBvcnQudGl0bGUnXX0gLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICA8TWVudUV4cGFuZGVyXG4gICAgICAgICAgICBpc1Zpc2libGU9e2lzRXhwYW5kZXJWaXNpYmxlfVxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlTWVudX1cbiAgICAgICAgICAgIGlzTWVudU9wZW49e2lzTWVudU9wZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L01lbnVHcm91cD5cbiAgICA8L05hdkJhckxheW91dD5cbiAgKTtcbn07XG5OYXZCYXIuZGlzcGxheU5hbWUgPSAnTmF2QmFyJztcblxuZXhwb3J0IGRlZmF1bHQgTmF2QmFyO1xuXG5leHBvcnQgY29uc3QgTG9hZGluZ05hdkJhciA9ICgpID0+IHtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgdXNlTG9hZGluZ01lbnVMYXlvdXRFZmZlY3QoKTtcbiAgcmV0dXJuIChcbiAgICA8TmF2QmFyTGF5b3V0IHJlZj17cmVmfT5cbiAgICAgIDxNZW51R3JvdXAgaWQ9XCJtYWluXCIgbGV2ZWw9ezF9PlxuICAgICAgICA8PlxuICAgICAgICAgIHtBcnJheS5mcm9tKG5ldyBBcnJheSg1KSkubWFwKChfLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPE1lbnVJdGVtXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgIGhhc1N1Ym1lbnU9e2ZhbHNlfVxuICAgICAgICAgICAgICBpc01lbnVPcGVuPXtmYWxzZX1cbiAgICAgICAgICAgICAgaXNBY3RpdmU9e2ZhbHNlfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB1bmRlZmluZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1snbG9hZGluZy1kb3QtY29udGFpbmVyJ119XG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2Bkb3QtY29udGFpbmVyLSR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxMb2FkaW5nUGxhY2Vob2xkZXIgc2hhcGU9XCJkb3RcIiBzaXplPVwibVwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC8+XG4gICAgICA8L01lbnVHcm91cD5cbiAgICA8L05hdkJhckxheW91dD5cbiAgKTtcbn07XG5Mb2FkaW5nTmF2QmFyLmRpc3BsYXlOYW1lID0gJ0xvYWRpbmdOYXZCYXInO1xuIl19 */")
|
|
3708
3764
|
}), jsxRuntime.jsx("nav", {
|
|
3709
3765
|
ref: ref,
|
|
3710
3766
|
className: styles$1['left-navigation'],
|
|
@@ -3728,7 +3784,8 @@ var NavBar = function NavBar(props) {
|
|
|
3728
3784
|
_handleToggleItem = _useNavbarStateManage.handleToggleItem,
|
|
3729
3785
|
handleToggleMenu = _useNavbarStateManage.handleToggleMenu,
|
|
3730
3786
|
shouldCloseMenuFly = _useNavbarStateManage.shouldCloseMenuFly,
|
|
3731
|
-
|
|
3787
|
+
allInternalApplicationsNavbarMenu = _useNavbarStateManage.allInternalApplicationsNavbarMenu,
|
|
3788
|
+
allCustomApplicationsNavbarMenu = _useNavbarStateManage.allCustomApplicationsNavbarMenu;
|
|
3732
3789
|
|
|
3733
3790
|
var useFullRedirectsForLinks = Boolean(props.environment.useFullRedirectsForLinks);
|
|
3734
3791
|
var location = reactRouterDom.useLocation();
|
|
@@ -3752,9 +3809,9 @@ var NavBar = function NavBar(props) {
|
|
|
3752
3809
|
children: jsxRuntime.jsxs(MenuGroup, {
|
|
3753
3810
|
id: "main",
|
|
3754
3811
|
level: 1,
|
|
3755
|
-
children: [jsxRuntime.
|
|
3812
|
+
children: [jsxRuntime.jsxs("div", {
|
|
3756
3813
|
className: styles$1['scrollable-menu'],
|
|
3757
|
-
children: _mapInstanceProperty__default["default"](
|
|
3814
|
+
children: [_mapInstanceProperty__default["default"](allInternalApplicationsNavbarMenu).call(allInternalApplicationsNavbarMenu, function (menu) {
|
|
3758
3815
|
var menuType = 'scrollable';
|
|
3759
3816
|
var itemIndex = "".concat(menuType, "-").concat(menu.key);
|
|
3760
3817
|
return jsxRuntime.jsx(ApplicationMenu, {
|
|
@@ -3773,7 +3830,26 @@ var NavBar = function NavBar(props) {
|
|
|
3773
3830
|
useFullRedirectsForLinks: useFullRedirectsForLinks,
|
|
3774
3831
|
onMenuItemClick: props.onMenuItemClick
|
|
3775
3832
|
}, menu.key);
|
|
3776
|
-
})
|
|
3833
|
+
}), jsxRuntime.jsx(MenuItemDivider, {}), _mapInstanceProperty__default["default"](allCustomApplicationsNavbarMenu).call(allCustomApplicationsNavbarMenu, function (menu) {
|
|
3834
|
+
var menuType = 'scrollable';
|
|
3835
|
+
var itemIndex = "".concat(menuType, "-").concat(menu.key);
|
|
3836
|
+
return jsxRuntime.jsx(ApplicationMenu, {
|
|
3837
|
+
location: location,
|
|
3838
|
+
menu: menu,
|
|
3839
|
+
isActive: activeItemIndex === itemIndex,
|
|
3840
|
+
handleToggleItem: function handleToggleItem() {
|
|
3841
|
+
return _handleToggleItem(itemIndex);
|
|
3842
|
+
},
|
|
3843
|
+
isMenuOpen: isMenuOpen,
|
|
3844
|
+
shouldCloseMenuFly: shouldCloseMenuFly,
|
|
3845
|
+
projectPermissions: projectPermissions,
|
|
3846
|
+
menuVisibilities: menuVisibilities,
|
|
3847
|
+
applicationLocale: props.applicationLocale,
|
|
3848
|
+
projectKey: props.projectKey,
|
|
3849
|
+
useFullRedirectsForLinks: useFullRedirectsForLinks,
|
|
3850
|
+
onMenuItemClick: props.onMenuItemClick
|
|
3851
|
+
}, menu.key);
|
|
3852
|
+
})]
|
|
3777
3853
|
}), jsxRuntime.jsxs("div", {
|
|
3778
3854
|
className: styles$1['fixed-menu'],
|
|
3779
3855
|
children: [jsxRuntime.jsx(MenuItem, {
|
|
@@ -3796,10 +3872,13 @@ var NavBar = function NavBar(props) {
|
|
|
3796
3872
|
children: jsxRuntime.jsxs("div", {
|
|
3797
3873
|
className: styles$1['item-icon-text'],
|
|
3798
3874
|
children: [jsxRuntime.jsx("div", {
|
|
3799
|
-
className: styles$1
|
|
3800
|
-
children: jsxRuntime.jsx(
|
|
3801
|
-
|
|
3802
|
-
|
|
3875
|
+
className: styles$1['icon-container'],
|
|
3876
|
+
children: jsxRuntime.jsx("div", {
|
|
3877
|
+
className: styles$1.icon,
|
|
3878
|
+
children: jsxRuntime.jsx(icons.SupportIcon, {
|
|
3879
|
+
size: "scale",
|
|
3880
|
+
color: getIconColor(activeItemIndex === 'fixed-support')
|
|
3881
|
+
})
|
|
3803
3882
|
})
|
|
3804
3883
|
}), jsxRuntime.jsx("div", {
|
|
3805
3884
|
className: styles$1.title,
|
|
@@ -3893,7 +3972,7 @@ var pimIndexerStates = {
|
|
|
3893
3972
|
};
|
|
3894
3973
|
|
|
3895
3974
|
var QuickAccess = /*#__PURE__*/react.lazy(function () {
|
|
3896
|
-
return Promise.resolve().then(function () { return require('./quick-access-
|
|
3975
|
+
return Promise.resolve().then(function () { return require('./quick-access-adb93f12.cjs.dev.js'
|
|
3897
3976
|
/* webpackChunkName: "quick-access" */
|
|
3898
3977
|
); });
|
|
3899
3978
|
});
|