@projectcor/maia-components 2.11.59-3 → 2.11.59-5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/lib/App.js +2 -6
  2. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +3 -11
  3. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +2 -2
  4. package/lib/components/atoms/icons/index.js +1 -2
  5. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +2 -2
  6. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +11 -6
  7. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +30 -19
  8. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +2 -2
  9. package/lib/components/molecules/AbmSection/index.js +1 -2
  10. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +8 -16
  11. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +13 -16
  12. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +2 -2
  13. package/lib/components/molecules/ChatAIModal/constants.js +2 -6
  14. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +2 -2
  15. package/lib/components/molecules/ChatFooter/ChatFooter.js +1 -1
  16. package/lib/components/molecules/Sidebar/Sidebar.js +37 -59
  17. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +11 -15
  18. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +50 -264
  19. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +4 -4
  20. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +2 -10
  21. package/lib/hooks/useAgentModel/useCreateAgent.js +10 -11
  22. package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -12
  23. package/lib/hooks/useContextMentions.js +6 -16
  24. package/lib/hooks/useMentionAllowedTypes.js +6 -38
  25. package/lib/hooks/useMentionPopover.js +16 -30
  26. package/lib/lang/br/index.js +1 -249
  27. package/lib/lang/en/index.js +1 -249
  28. package/lib/lang/es/index.js +1 -249
  29. package/lib/lang/fr/index.js +2 -251
  30. package/lib/services/maia/Agents/createAgent.js +1 -1
  31. package/lib/services/maia/Agents/getAgentById.js +2 -3
  32. package/lib/services/maia/Agents/getAgentModels.js +8 -3
  33. package/lib/services/maia/Agents/updateAgent.js +1 -1
  34. package/lib/services/maia/Orchestrator/orchestrator.js +2 -1
  35. package/lib/types/Chat.js +1 -1
  36. package/lib/types/agent.js +1 -1
  37. package/lib/types/agentModal.js +1 -1
  38. package/package.json +1 -1
  39. package/lib/components/atoms/icons/RocketIcon.js +0 -31
  40. package/lib/components/atoms/icons/WrenchIcon.js +0 -42
  41. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.js +0 -510
  42. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.styles.js +0 -234
  43. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/catalog.js +0 -437
  44. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/index.js +0 -3
  45. package/lib/components/molecules/AbmSection/AbmSkillsSection.styles.js +0 -80
  46. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.interface.js +0 -2
  47. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.js +0 -722
  48. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.styles.js +0 -165
  49. package/lib/components/molecules/AbmSection/AbmTriggersSection/index.js +0 -2
  50. package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.js +0 -486
  51. package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.styles.js +0 -184
  52. package/lib/components/molecules/ChatAIMyRoutines/index.js +0 -2
  53. package/lib/components/molecules/SchedulesPage/SchedulesPage.js +0 -610
  54. package/lib/components/molecules/SchedulesPage/index.js +0 -2
  55. package/lib/components/molecules/SkillsPage/SkillsPage.js +0 -708
  56. package/lib/components/molecules/SkillsPage/index.js +0 -2
  57. package/lib/components/molecules/maiaSectionModalStyles.js +0 -91
  58. package/lib/components/molecules/maiaSectionUiTokens.js +0 -31
  59. package/lib/dev/DevAbmAgentModal.js +0 -114
  60. package/lib/dev/mocks/abmModalMocks.js +0 -193
  61. package/lib/services/maia/Agents/connectors.js +0 -110
  62. package/lib/services/maia/Agents/skills.js +0 -164
  63. package/lib/services/maia/Schedules/createSchedule.js +0 -39
  64. package/lib/services/maia/Schedules/deleteSchedule.js +0 -36
  65. package/lib/services/maia/Schedules/getMySchedules.js +0 -55
  66. package/lib/services/maia/Schedules/getSchedules.js +0 -58
  67. package/lib/services/maia/Schedules/index.js +0 -5
  68. package/lib/types/agentSkill.js +0 -2
  69. package/lib/types/attachment.js +0 -2
@@ -17,12 +17,11 @@ import { MenuDots } from '@projectcor/icons/lib/components/MenuDots';
17
17
  import { Pencil } from '@projectcor/icons/lib/components/Pencil';
18
18
  import { Trash } from '@projectcor/icons/lib/components/Trash';
19
19
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
20
- import { Clock } from '@projectcor/icons/lib/components/Clock';
21
20
  import { EmptyHistoryIcon } from '../../atoms/icons/EmptyHistory';
22
- import { ErrorState, MAIAIcon, MaiaStoreIcon, MyAgentsNavIcon, NewChat, SkillsNavIcon } from '../../atoms/icons';
23
21
  import { useResizeListener } from '../../../hooks/useResize';
24
22
  import { useChats } from '../../../hooks/useChats';
25
23
  import { SidebarChatsSkeleton } from './Sidebar.skeleton';
24
+ import { ErrorState, MAIAIcon, MaiaStoreIcon, MyAgentsNavIcon, SkillsNavIcon, NewChat } from '../../atoms/icons';
26
25
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
27
26
  import { useT } from '../../../hooks/useT';
28
27
  import { OptionItem } from '../../atoms/CardMenu/CardMenu';
@@ -37,7 +36,7 @@ import { mapCORLang } from '../../../lang/utils';
37
36
  import { formatChatListTitleMentions } from '../../../utils/renderContextMentions';
38
37
  import { getAgentDisplayName } from '../../../utils/agentDisplayName';
39
38
  import { SCLHCWrapper, SCLHCWrapperAgent, SCLHCWrapperAgentText, SCLHCWrapperButtonActions, SCLHCWrapperContent, SCLHCWrapperTitle, SCSWrapperCollapsedButton, SCSWrapperNewChatIcon } from './Sidebar.styles';
40
- import { SCSSidebarRoot, SCSSidebarToolbar, SCSSidebarBody, SCSSidebarOpenPanel, SCSSidebarAgentsBlock, SCSSidebarAgentsActions, SCSSidebarMaiakerNavButton, SCSSidebarMaiakerNavLabel, SCSSidebarConversationsHeading, SCSSidebarChatsScroll, SCSSidebarErrorStateColumn, SCSSidebarErrorStateTop, SCSSidebarErrorBanner, SCSSidebarErrorBannerIconWrap, SCSSidebarErrorBannerMessage, SCSSidebarLoadingArea, SCSSidebarLoadMoreRow, SCSSidebarEmptyChats, SCSSidebarEmptyChatsText, SCSSidebarChatsFooter, SCSSidebarFooterActions, SCSSidebarAgentsHeading, SCSSidebarAgentsHeadingText } from './Sidebar.layout.styles';
39
+ import { SCSSidebarRoot, SCSSidebarToolbar, SCSSidebarBody, SCSSidebarOpenPanel, SCSSidebarAgentsBlock, SCSSidebarAgentsActions, SCSSidebarMaiakerNavButton, SCSSidebarMaiakerNavLabel, SCSSidebarConversationsHeading, SCSSidebarChatsScroll, SCSSidebarErrorStateColumn, SCSSidebarErrorStateTop, SCSSidebarErrorBanner, SCSSidebarErrorBannerIconWrap, SCSSidebarErrorBannerMessage, SCSSidebarLoadingArea, SCSSidebarLoadMoreRow, SCSSidebarEmptyChats, SCSSidebarEmptyChatsText, SCSSidebarChatsFooter, SCSSidebarFooterActions } from './Sidebar.layout.styles';
41
40
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
42
41
  var actions = {
43
42
  edit: function edit(props) {
@@ -199,7 +198,6 @@ export var Sidebar = function Sidebar(_ref3) {
199
198
  } : _ref3$onError,
200
199
  handleGoToHome = _ref3.handleGoToHome,
201
200
  handleOpenMarketplace = _ref3.handleOpenMarketplace,
202
- handleOpenMyRoutines = _ref3.handleOpenMyRoutines,
203
201
  handleOpenSkills = _ref3.handleOpenSkills,
204
202
  showNewChat = _ref3.showNewChat,
205
203
  refetchChats = _ref3.refetchChats,
@@ -253,10 +251,8 @@ export var Sidebar = function Sidebar(_ref3) {
253
251
  var canViewAgents = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.view) && hasMultiAgentsFeatureAccess;
254
252
  var canViewSkills = canViewAgents;
255
253
  var showMarketplaceSidebarButton = !!canCreateAgents && !!window.MAIA_MARKETPLACE_MAIAKER;
256
- var showMyRoutinesButton = !!canViewAgents && !!handleOpenMyRoutines;
257
- var showMySkillsButton = !!canViewSkills && !!handleOpenSkills;
258
- var agentNavButtonCount = (showMarketplaceSidebarButton ? 1 : 0) + (canViewAgents ? 1 : 0) + (showMyRoutinesButton ? 1 : 0) + (showMySkillsButton ? 1 : 0);
259
- var showAgentsNavBlock = showMarketplaceSidebarButton || canViewAgents || showMySkillsButton;
254
+ var agentNavButtonCount = (showMarketplaceSidebarButton ? 1 : 0) + (canViewAgents ? 1 : 0) + (canViewSkills ? 1 : 0);
255
+ var showAgentsNavBlock = showMarketplaceSidebarButton || canViewAgents || canViewSkills;
260
256
  useEffect(function () {
261
257
  if (resetSelectedChatRef) {
262
258
  resetSelectedChatRef.current = function () {
@@ -497,55 +493,38 @@ export var Sidebar = function Sidebar(_ref3) {
497
493
  $isOpen: isOpen,
498
494
  children: [isOpen ? /*#__PURE__*/_jsxs(SCSSidebarOpenPanel, {
499
495
  children: [/*#__PURE__*/_jsxs(SCSSidebarAgentsBlock, {
500
- children: [showAgentsNavBlock ? /*#__PURE__*/_jsxs(_Fragment, {
501
- children: [/*#__PURE__*/_jsx(SCSSidebarAgentsHeading, {
502
- children: /*#__PURE__*/_jsx(SCSSidebarAgentsHeadingText, {
503
- children: t('conversations.agentsSectionTitle')
504
- })
505
- }), /*#__PURE__*/_jsxs(SCSSidebarAgentsActions, {
506
- children: [showMarketplaceSidebarButton ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
507
- type: "button",
508
- onClick: function onClick() {
509
- eventAmplitude(EVENTS.aiChatMpOpen);
510
- handleOpenCreateAgent();
511
- },
512
- $active: agentsNavActive === 'maiaker',
513
- children: [/*#__PURE__*/_jsx(MaiaStoreIcon, {
514
- size: 16
515
- }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
516
- children: t('conversations.maiakerNav')
517
- })]
518
- }) : null, canViewAgents ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
519
- type: "button",
520
- onClick: handleOpenMarketplace,
521
- $active: agentsNavActive === 'myAgents',
522
- children: [/*#__PURE__*/_jsx(MyAgentsNavIcon, {
523
- size: 16
524
- }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
525
- children: t('conversations.myAgentsNav')
526
- })]
527
- }) : null, showMyRoutinesButton ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
528
- type: "button",
529
- onClick: handleOpenMyRoutines,
530
- $active: agentsNavActive === 'myRoutines',
531
- children: [/*#__PURE__*/_jsx(Clock, {
532
- width: "16px",
533
- height: "16px",
534
- color: "currentColor"
535
- }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
536
- children: t('conversations.myRoutinesNav')
537
- })]
538
- }) : null, showMySkillsButton ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
539
- type: "button",
540
- onClick: handleOpenSkills,
541
- $active: agentsNavActive === 'mySkills',
542
- children: [/*#__PURE__*/_jsx(SkillsNavIcon, {
543
- size: 16
544
- }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
545
- children: t('conversations.mySkillsNav')
546
- })]
547
- }) : null]
548
- })]
496
+ children: [showAgentsNavBlock ? /*#__PURE__*/_jsxs(SCSSidebarAgentsActions, {
497
+ children: [showMarketplaceSidebarButton ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
498
+ type: "button",
499
+ onClick: function onClick() {
500
+ eventAmplitude(EVENTS.aiChatMpOpen);
501
+ handleOpenCreateAgent();
502
+ },
503
+ $active: agentsNavActive === 'maiaker',
504
+ children: [/*#__PURE__*/_jsx(MaiaStoreIcon, {
505
+ size: 16
506
+ }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
507
+ children: t('conversations.maiakerNav')
508
+ })]
509
+ }) : null, canViewAgents ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
510
+ type: "button",
511
+ onClick: handleOpenMarketplace,
512
+ $active: agentsNavActive === 'myAgents',
513
+ children: [/*#__PURE__*/_jsx(MyAgentsNavIcon, {
514
+ size: 16
515
+ }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
516
+ children: t('conversations.myAgentsNav')
517
+ })]
518
+ }) : null, canViewSkills ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
519
+ type: "button",
520
+ onClick: handleOpenSkills,
521
+ $active: agentsNavActive === 'mySkills',
522
+ children: [/*#__PURE__*/_jsx(SkillsNavIcon, {
523
+ size: 16
524
+ }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
525
+ children: t('conversations.mySkillsNav')
526
+ })]
527
+ }) : null]
549
528
  }) : null, /*#__PURE__*/_jsx(SCSSidebarConversationsHeading, {
550
529
  children: t('conversations.title')
551
530
  })]
@@ -554,7 +533,6 @@ export var Sidebar = function Sidebar(_ref3) {
554
533
  $hasChats: chats.length > 0,
555
534
  $offsetVariant: hasError ? 'error' : 'default',
556
535
  $agentNavButtonCount: agentNavButtonCount,
557
- $hasFeedback: !!selectedAgent,
558
536
  children: hasError && !chats.length ? /*#__PURE__*/_jsxs(SCSSidebarErrorStateColumn, {
559
537
  children: [/*#__PURE__*/_jsx(SCSSidebarErrorStateTop, {
560
538
  children: /*#__PURE__*/_jsx(ErrorState, {})
@@ -618,4 +596,4 @@ export var Sidebar = function Sidebar(_ref3) {
618
596
  })]
619
597
  });
620
598
  };
621
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkNVQnV0dG9uIiwiTWVudURvdHMiLCJQZW5jaWwiLCJUcmFzaCIsIlRvb2x0aXAiLCJDbG9jayIsIkVtcHR5SGlzdG9yeUljb24iLCJFcnJvclN0YXRlIiwiTUFJQUljb24iLCJNYWlhU3RvcmVJY29uIiwiTXlBZ2VudHNOYXZJY29uIiwiTmV3Q2hhdCIsIlNraWxsc05hdkljb24iLCJ1c2VSZXNpemVMaXN0ZW5lciIsInVzZUNoYXRzIiwiU2lkZWJhckNoYXRzU2tlbGV0b24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsInVzZVQiLCJPcHRpb25JdGVtIiwiRWRpdFF1ZXN0aW9uTW9kYWwiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiRXJyb3JJY29uIiwidXNlVXNlciIsIkZlZWRiYWNrQnV0dG9uIiwidXNlR2xvYmFsQ29udGV4dCIsImZldGNoTWFpYSIsIm1hcENPUkxhbmciLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJnZXRBZ2VudERpc3BsYXlOYW1lIiwiU0NMSENXcmFwcGVyIiwiU0NMSENXcmFwcGVyQWdlbnQiLCJTQ0xIQ1dyYXBwZXJBZ2VudFRleHQiLCJTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zIiwiU0NMSENXcmFwcGVyQ29udGVudCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiIsIlNDU1dyYXBwZXJOZXdDaGF0SWNvbiIsIlNDU1NpZGViYXJSb290IiwiU0NTU2lkZWJhclRvb2xiYXIiLCJTQ1NTaWRlYmFyQm9keSIsIlNDU1NpZGViYXJPcGVuUGFuZWwiLCJTQ1NTaWRlYmFyQWdlbnRzQmxvY2siLCJTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucyIsIlNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uIiwiU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCIsIlNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyIsIlNDU1NpZGViYXJDaGF0c1Njcm9sbCIsIlNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uIiwiU0NTU2lkZWJhckVycm9yU3RhdGVUb3AiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXIiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UiLCJTQ1NTaWRlYmFyTG9hZGluZ0FyZWEiLCJTQ1NTaWRlYmFyTG9hZE1vcmVSb3ciLCJTQ1NTaWRlYmFyRW1wdHlDaGF0cyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCIsIlNDU1NpZGViYXJDaGF0c0Zvb3RlciIsIlNDU1NpZGViYXJGb290ZXJBY3Rpb25zIiwiU0NTU2lkZWJhckFnZW50c0hlYWRpbmciLCJTQ1NTaWRlYmFyQWdlbnRzSGVhZGluZ1RleHQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsIkxpc3RIaXN0b3J5Q2hhdCIsIl9yZWYiLCJjaGF0Iiwib25DbGljayIsImlzTW9kYWxPcGVuIiwib25PcGVuTW9kYWwiLCJvbkNsb3NlTW9kYWwiLCJoYW5kbGVycyIsImlzU2VsZWN0ZWQiLCJpbmRleCIsInRleHRSZWYiLCJhZ2VudFJlZiIsImRpc3BsYXlUaXRsZSIsInRpdGxlIiwiZGlzcGxheUFnZW50IiwiYWdlbnRUeXBlIiwiYWdlbnQiLCJjb250ZXh0TmFtZSIsInByb2plY3ROYW1lIiwiY2xpZW50TmFtZSIsIl91c2VSZXNpemVMaXN0ZW5lciIsInNob3dUb29sdGlwIiwiX3VzZVJlc2l6ZUxpc3RlbmVyMiIsInNob3dUb29sdGlwQWdlbnQiLCJfdXNlVCIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJhY3Rpb24iLCJzZXRBY3Rpb24iLCJtZW51SXRlbXMiLCJsYWJlbCIsIm9uQ2xpY2tJdGVtIiwiY2hhdElkIiwiSWNvbiIsImV2ZW50S2V5IiwicG1BaU1lbnVFZGl0IiwicG1BaU1lbnVEZWxldGUiLCJoYW5kbGVDb25maXJtQWN0aW9uIiwiY2hhdERhdGEiLCJoYW5kbGVVcGRhdGVDaGF0IiwiaGFuZGxlRGVsZXRlQ2hhdCIsImNoaWxkcmVuIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIiRpbmRleCIsInJlZiIsImNvbmNhdCIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGUiLCJmb250U2l6ZSIsImVtb2ppIiwiaWNvbk9ubHkiLCJzaXplIiwidmFyaWFudCIsImV2ZW50IiwiaWQiLCJwb3NpdGlvbiIsInRvcCIsInJpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiekluZGV4IiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJtaW5XaWR0aCIsIm1hcCIsIl9yZWYyIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJvbkNsb3NlIiwiaGFuZGxlU2V0SXNPcGVuTW9kYWwiLCJTaWRlYmFyIiwiX3JlZjMiLCJfdXNlciRwZXJtaXNzaW9ucyIsIm9uR29Ub0NoYXQiLCJfcmVmMyRvbkVycm9yIiwib25FcnJvciIsImhhbmRsZUdvVG9Ib21lIiwiaGFuZGxlT3Blbk1hcmtldHBsYWNlIiwiaGFuZGxlT3Blbk15Um91dGluZXMiLCJoYW5kbGVPcGVuU2tpbGxzIiwic2hvd05ld0NoYXQiLCJyZWZldGNoQ2hhdHMiLCJoYW5kbGVTZXRSZWZldGNoQ2hhdHMiLCJoYXNFcnJvciIsInJlc2V0U2VsZWN0ZWRDaGF0UmVmIiwiX3JlZjMkYWdlbnRzTmF2QWN0aXZlIiwiYWdlbnRzTmF2QWN0aXZlIiwiX3VzZVQyIiwiaTE4biIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNPcGVuIiwic2V0SXNPcGVuIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc09wZW5Nb2RhbCIsInNldElzT3Blbk1vZGFsIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZWxlY3RlZENoYXQiLCJzZXRTZWxlY3RlZENoYXQiLCJjaGF0c0ZldGNoZWRSZWYiLCJwZW5kaW5nU2Vzc2lvbnNSZWZldGNoUmVmIiwiY2hhdHNDb250YWluZXJSZWYiLCJzaG91bGRGZXRjaFNlc3Npb25zIiwidXNlciIsImV2ZW50QW1wbGl0dWRlIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RlZEFnZW50Iiwic2VsZWN0QWdlbnQiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50IiwiX3VzZUNoYXRzIiwibG9hZGluZ0NoYXRzIiwiY2hhdHMiLCJkZWxldGVDaGF0IiwidXBkYXRlQ2hhdCIsImZldGNoQ2hhdHMiLCJsaW1pdCIsIm9mZnNldCIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50cyIsImNyZWF0ZSIsImhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2VzcyIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjYW5WaWV3QWdlbnRzIiwidmlldyIsImNhblZpZXdTa2lsbHMiLCJzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uIiwiTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSIiwic2hvd015Um91dGluZXNCdXR0b24iLCJzaG93TXlTa2lsbHNCdXR0b24iLCJhZ2VudE5hdkJ1dHRvbkNvdW50Iiwic2hvd0FnZW50c05hdkJsb2NrIiwiY3VycmVudCIsIl9yZWY0IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlT3Blbk1vZGFsIiwiaGFuZGxlQ2xvc2VNb2RhbCIsImhhbmRsZUNsaWNrT3V0c2lkZSIsInRhcmdldCIsImNsb3Nlc3QiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlVG9nZ2xlU2lkZWJhciIsImhhbmRsZU9wZW5DcmVhdGVBZ2VudCIsIl9yZWY1IiwiX2NhbGxlZTIiLCJyZXNwb25zZSIsImRhdGEiLCJtYWlha2VyQWdlbnQiLCJfdCIsIl9jb250ZXh0MiIsInBhdGgiLCJsYW5ndWFnZSIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwiZmluZCIsInR5cGUiLCJlbnRpdHkiLCJhYnJ1cHQiLCJoYW5kbGVTY3JvbGwiLCJfY2hhdHNDb250YWluZXJSZWYkY3UiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc0F0Qm90dG9tIiwiY29udGFpbmVyIiwiaGFuZGxlTmV3Q2hhdCIsIl9yZWY2IiwiX2NhbGxlZTMiLCJfY29udGV4dDMiLCJoYW5kbGVSZWZldGNoU2Vzc2lvbiIsInNob3dOZXdDaGF0QnV0dG9uIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsIiRpc09wZW4iLCJjb2xvciIsImFpQ2hhdE1wT3BlbiIsIiRhY3RpdmUiLCIkaGFzQ2hhdHMiLCJsZW5ndGgiLCIkb2Zmc2V0VmFyaWFudCIsIiRhZ2VudE5hdkJ1dHRvbkNvdW50IiwiJGhhc0ZlZWRiYWNrIiwiY291bnQiLCIkanVzdGlmeUJldHdlZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvU2lkZWJhci9TaWRlYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvdyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgTXV0YWJsZVJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGV2cm9uRG91YmxlTGVmdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3VibGVMZWZ0J1xuaW1wb3J0IHsgQ1VCdXR0b24gfSBmcm9tICdAcHJvamVjdGNvci9idXR0b24vbGliL2NvbXBvbmVudHMvQ1VCdXR0b24nXG5pbXBvcnQgeyBNZW51RG90cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL01lbnVEb3RzJ1xuaW1wb3J0IHsgUGVuY2lsIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGVuY2lsJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuXG5pbXBvcnQgeyBDbG9jayB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nsb2NrJ1xuaW1wb3J0IHsgRW1wdHlIaXN0b3J5SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0VtcHR5SGlzdG9yeSdcbmltcG9ydCB7IEVycm9yU3RhdGUsIE1BSUFJY29uLCBNYWlhU3RvcmVJY29uLCBNeUFnZW50c05hdkljb24sIE5ld0NoYXQsIFNraWxsc05hdkljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgdXNlQ2hhdHMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VDaGF0cydcbmltcG9ydCB7IFNpZGViYXJDaGF0c1NrZWxldG9uIH0gZnJvbSAnLi9TaWRlYmFyLnNrZWxldG9uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBPcHRpb25JdGVtIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2FyZE1lbnUvQ2FyZE1lbnUnXG5pbXBvcnQgeyBFZGl0UXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9FZGl0UXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0Vycm9ySWNvbidcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgRmVlZGJhY2tCdXR0b24gfSBmcm9tICcuLi8uLi9hdG9tcy9GZWVkYmFja0J1dHRvbidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9jbGllbnQnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IGdldEFnZW50RGlzcGxheU5hbWUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHtcbiAgU0NMSENXcmFwcGVyLFxuICBTQ0xIQ1dyYXBwZXJBZ2VudCxcbiAgU0NMSENXcmFwcGVyQWdlbnRUZXh0LFxuICBTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zLFxuICBTQ0xIQ1dyYXBwZXJDb250ZW50LFxuICBTQ0xIQ1dyYXBwZXJUaXRsZSxcbiAgU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbixcbiAgU0NTV3JhcHBlck5ld0NoYXRJY29uLFxufSBmcm9tICcuL1NpZGViYXIuc3R5bGVzJ1xuaW1wb3J0IHtcbiAgU0NTU2lkZWJhclJvb3QsXG4gIFNDU1NpZGViYXJUb29sYmFyLFxuICBTQ1NTaWRlYmFyQm9keSxcbiAgU0NTU2lkZWJhck9wZW5QYW5lbCxcbiAgU0NTU2lkZWJhckFnZW50c0Jsb2NrLFxuICBTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucyxcbiAgU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24sXG4gIFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWwsXG4gIFNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyxcbiAgU0NTU2lkZWJhckNoYXRzU2Nyb2xsLFxuICBTQ1NTaWRlYmFyRXJyb3JTdGF0ZUNvbHVtbixcbiAgU0NTU2lkZWJhckVycm9yU3RhdGVUb3AsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lcixcbiAgU0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXAsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UsXG4gIFNDU1NpZGViYXJMb2FkaW5nQXJlYSxcbiAgU0NTU2lkZWJhckxvYWRNb3JlUm93LFxuICBTQ1NTaWRlYmFyRW1wdHlDaGF0cyxcbiAgU0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0LFxuICBTQ1NTaWRlYmFyQ2hhdHNGb290ZXIsXG4gIFNDU1NpZGViYXJGb290ZXJBY3Rpb25zLFxuICBTQ1NTaWRlYmFyQWdlbnRzSGVhZGluZyxcbiAgU0NTU2lkZWJhckFnZW50c0hlYWRpbmdUZXh0LFxufSBmcm9tICcuL1NpZGViYXIubGF5b3V0LnN0eWxlcydcblxuY29uc3QgYWN0aW9ucyA9IHtcbiAgZWRpdDogKHByb3BzOiBhbnkpID0+IDxFZGl0UXVlc3Rpb25Nb2RhbCB7Li4ucHJvcHN9IC8+LFxuICBkZWxldGU6IChwcm9wczogYW55KSA9PiA8RGVsZXRlUXVlc3Rpb25Nb2RhbCB7Li4ucHJvcHN9IC8+LFxufVxuXG4vKiogQWJyZXZpYSBcImVzcGVjaWFsaXN0YVwiL1wiZXNwZWNpYWxpc3RcIiDihpIgXCJFc3AuXCIgKEVTL1BUKSB5IFwic3BlY2lhbGlzdFwiIOKGkiBcIlNwZWMuXCIgKEVOKSBlbiBlbCBub21icmUgZGVsIGFnZW50ZS4gKi9cbmNvbnN0IExpc3RIaXN0b3J5Q2hhdCA9ICh7XG4gIGNoYXQsXG4gIG9uQ2xpY2ssXG4gIGlzTW9kYWxPcGVuLFxuICBvbk9wZW5Nb2RhbCxcbiAgb25DbG9zZU1vZGFsLFxuICBoYW5kbGVycyxcbiAgaXNTZWxlY3RlZCxcbiAgaW5kZXgsXG59OiB7XG4gIGNoYXQ6IGFueVxuICBvbkNsaWNrOiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIGlzTW9kYWxPcGVuOiBib29sZWFuXG4gIG9uT3Blbk1vZGFsOiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25DbG9zZU1vZGFsOiAoKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiB7XG4gICAgaGFuZGxlRGVsZXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICAgIGhhbmRsZVVwZGF0ZUNoYXQ6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgfVxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIGluZGV4OiBudW1iZXJcbn0pID0+IHtcbiAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgYWdlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGRpc3BsYXlUaXRsZSA9IHVzZU1lbW8oKCkgPT4gZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zKGNoYXQudGl0bGUpLCBbY2hhdC50aXRsZV0pXG4gIGNvbnN0IGRpc3BsYXlBZ2VudCA9IGdldEFnZW50RGlzcGxheU5hbWUoY2hhdC5hZ2VudFR5cGUsIGNoYXQuYWdlbnQpXG4gIGNvbnN0IGNvbnRleHROYW1lID0gY2hhdC5wcm9qZWN0TmFtZSB8fCBjaGF0LmNsaWVudE5hbWVcbiAgY29uc3QgeyBzaG93VG9vbHRpcCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZiwgW2Rpc3BsYXlUaXRsZV0pXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXA6IHNob3dUb29sdGlwQWdlbnQgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKGFnZW50UmVmLCBbY2hhdC5hZ2VudF0pXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IFthY3Rpb24sIHNldEFjdGlvbl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IG1lbnVJdGVtcyA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LnJlbmFtZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2VkaXQnKVxuICAgICAgICBvbk9wZW5Nb2RhbChjaGF0SWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogUGVuY2lsLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudUVkaXQsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LmRlbGV0ZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2RlbGV0ZScpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBUcmFzaCxcbiAgICAgIGV2ZW50S2V5OiBFVkVOVFMucG1BaU1lbnVEZWxldGUsXG4gICAgfSxcbiAgXVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1BY3Rpb24gPSAoY2hhdERhdGE6IGFueSkgPT4ge1xuICAgIGlmIChhY3Rpb24gPT09ICdlZGl0Jykge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlVXBkYXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlRGVsZXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9XG4gICAgc2V0QWN0aW9uKG51bGwpXG4gICAgb25DbG9zZU1vZGFsKClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTQ0xIQ1dyYXBwZXJDb250ZW50XG4gICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBvbkNsaWNrKGNoYXQpXG4gICAgICAgIH19XG4gICAgICAgIGtleT17YGNvbnZlcnNhdGlvbi0ke2NoYXQuc2Vzc2lvbkV4dGVybmFsSWR9YH1cbiAgICAgICAgaXNNb2RhbE9wZW49e2lzTW9kYWxPcGVufVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgICAkaW5kZXg9e2luZGV4fVxuICAgICAgPlxuICAgICAgICA8U0NMSENXcmFwcGVyPlxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcCA/IGRpc3BsYXlUaXRsZSA6ICcnfT5cbiAgICAgICAgICAgIDxTQ0xIQ1dyYXBwZXJUaXRsZSByZWY9e3RleHRSZWZ9PntkaXNwbGF5VGl0bGUgfHwgdCgnY29udmVyc2F0aW9ucy5lbXB0eUxhYmVsJyl9PC9TQ0xIQ1dyYXBwZXJUaXRsZT5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUb29sdGlwQWdlbnQgPyBkaXNwbGF5QWdlbnQgKyAoY29udGV4dE5hbWUgPyBgIC0gJHtjb250ZXh0TmFtZX1gIDogJycpIDogJyd9PlxuICAgICAgICAgICAgPFNDTEhDV3JhcHBlckFnZW50PlxuICAgICAgICAgICAgICB7Y2hhdC5hZ2VudFR5cGUgPT09ICdjbG9uZScgPyAoXG4gICAgICAgICAgICAgICAgPE1BSUFJY29uIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzE0cHgnIH19PntjaGF0LmVtb2ppfTwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnRUZXh0IHJlZj17YWdlbnRSZWZ9PlxuICAgICAgICAgICAgICAgIHtkaXNwbGF5QWdlbnR9XG4gICAgICAgICAgICAgICAge2NvbnRleHROYW1lICYmIGAgLSAke2NvbnRleHROYW1lfWB9XG4gICAgICAgICAgICAgIDwvU0NMSENXcmFwcGVyQWdlbnRUZXh0PlxuICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJBZ2VudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvU0NMSENXcmFwcGVyPlxuICAgICAgICA8U0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucz5cbiAgICAgICAgICA8Q1VCdXR0b25cbiAgICAgICAgICAgIGljb25Pbmx5XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICBvbk9wZW5Nb2RhbChjaGF0LmlkKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TWVudURvdHMgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAge2lzTW9kYWxPcGVuICYmICFhY3Rpb24gJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBkYXRhLW1vZGFsLWNvbnRhaW5lclxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIHRvcDogJzMycHgnLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiAnMTZweCcsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMTAwMCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgyMjQsIDIyNCwgMjI0LCAxKScsXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICcxMjRweCcsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHttZW51SXRlbXMubWFwKCh7IGxhYmVsLCBvbkNsaWNrSXRlbSwgSWNvbiwgZXZlbnRLZXkgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxPcHRpb25JdGVtXG4gICAgICAgICAgICAgICAgICBrZXk9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGlja0l0ZW0oY2hhdC5pZCl9XG4gICAgICAgICAgICAgICAgICBJY29uPXtJY29ufVxuICAgICAgICAgICAgICAgICAgZXZlbnRLZXk9e2V2ZW50S2V5fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zPlxuICAgICAgPC9TQ0xIQ1dyYXBwZXJDb250ZW50PlxuICAgICAgeyEhYWN0aW9uICYmXG4gICAgICAgIGFjdGlvbnNbYWN0aW9uXSh7XG4gICAgICAgICAgb25DbG9zZTogKCkgPT4ge1xuICAgICAgICAgICAgb25DbG9zZU1vZGFsKClcbiAgICAgICAgICAgIHNldEFjdGlvbihudWxsKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2hhdCxcbiAgICAgICAgICBoYW5kbGVyczoge1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbixcbiAgICAgICAgICAgIGhhbmRsZVNldElzT3Blbk1vZGFsOiBvbkNsb3NlTW9kYWwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSl9XG4gICAgPC8+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFNpZGViYXIgPSAoe1xuICBvbkdvVG9DaGF0LFxuICBvbkVycm9yID0gKCkgPT4gbnVsbCxcbiAgaGFuZGxlR29Ub0hvbWUsXG4gIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSxcbiAgaGFuZGxlT3Blbk15Um91dGluZXMsXG4gIGhhbmRsZU9wZW5Ta2lsbHMsXG4gIHNob3dOZXdDaGF0LFxuICByZWZldGNoQ2hhdHMsXG4gIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyxcbiAgaGFzRXJyb3IsXG4gIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLFxuICBhZ2VudHNOYXZBY3RpdmUgPSBudWxsLFxufToge1xuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcjogKCkgPT4gdm9pZFxuICBoYW5kbGVHb1RvSG9tZTogKCkgPT4gdm9pZFxuICBoYW5kbGVPcGVuTWFya2V0cGxhY2U6ICgpID0+IHZvaWRcbiAgaGFuZGxlT3Blbk15Um91dGluZXM/OiAoKSA9PiB2b2lkXG4gIGhhbmRsZU9wZW5Ta2lsbHM/OiAoKSA9PiB2b2lkXG4gIHNob3dOZXdDaGF0OiBib29sZWFuXG4gIHJlZmV0Y2hDaGF0czogYm9vbGVhblxuICBoYW5kbGVTZXRSZWZldGNoQ2hhdHM6IChyZWZldGNoOiBib29sZWFuKSA9PiB2b2lkXG4gIGhhc0Vycm9yOiBib29sZWFuXG4gIHJlc2V0U2VsZWN0ZWRDaGF0UmVmPzogTXV0YWJsZVJlZk9iamVjdDwoKCkgPT4gdm9pZCkgfCBudWxsPlxuICAvKiogUmVzYWx0YSBNYWlha2VyLCBNaXMgYWdlbnRlcywgTWlzIHJ1dGluYXMgbyBNaXMgU2tpbGxzICovXG4gIGFnZW50c05hdkFjdGl2ZT86ICdtYWlha2VyJyB8ICdteUFnZW50cycgfCAnbXlSb3V0aW5lcycgfCAnbXlTa2lsbHMnIHwgbnVsbFxufSkgPT4ge1xuICBjb25zdCB7IHQsIGkxOG4gfSA9IHVzZVQoKVxuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc09wZW5Nb2RhbCwgc2V0SXNPcGVuTW9kYWxdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3NlbGVjdGVkQ2hhdCwgc2V0U2VsZWN0ZWRDaGF0XSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGNoYXRzRmV0Y2hlZFJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgcGVuZGluZ1Nlc3Npb25zUmVmZXRjaFJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgY2hhdHNDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHNob3VsZEZldGNoU2Vzc2lvbnMgPSBpc09wZW5cbiAgY29uc3QgdXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBhZ2VudDogc2VsZWN0ZWRBZ2VudCwgc2VsZWN0QWdlbnQsIHNldFByb2plY3QsIHNldENsaWVudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHtcbiAgICBsb2FkaW5nQ2hhdHMsXG4gICAgY2hhdHMsXG4gICAgZGVsZXRlQ2hhdCxcbiAgICB1cGRhdGVDaGF0LFxuICAgIGZldGNoQ2hhdHMsXG4gICAgbGltaXQsXG4gICAgb2Zmc2V0LFxuICAgIGhhc01vcmVDaGF0cyxcbiAgICBsb2FkTW9yZUNoYXRzLFxuICAgIGlzTG9hZGluZ01vcmVDaGF0cyxcbiAgfSA9IHVzZUNoYXRzKHtcbiAgICBvbkVycm9yLFxuICB9KVxuXG4gIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXI/LnBlcm1pc3Npb25zPy5haV9hZ2VudHNcbiAgY29uc3QgY2FuQ3JlYXRlQWdlbnRzID0gISF1c2VyUGVybWlzc2lvbnM/LmNyZWF0ZVxuICBjb25zdCBoYXNNdWx0aUFnZW50c0ZlYXR1cmVBY2Nlc3MgPSAhIXdpbmRvdy5NQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTXG4gIGNvbnN0IGNhblZpZXdBZ2VudHMgPSAhIXVzZXJQZXJtaXNzaW9ucz8udmlldyAmJiBoYXNNdWx0aUFnZW50c0ZlYXR1cmVBY2Nlc3NcbiAgY29uc3QgY2FuVmlld1NraWxscyA9IGNhblZpZXdBZ2VudHNcbiAgY29uc3Qgc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA9ICEhY2FuQ3JlYXRlQWdlbnRzICYmICEhd2luZG93Lk1BSUFfTUFSS0VUUExBQ0VfTUFJQUtFUlxuICBjb25zdCBzaG93TXlSb3V0aW5lc0J1dHRvbiA9ICEhY2FuVmlld0FnZW50cyAmJiAhIWhhbmRsZU9wZW5NeVJvdXRpbmVzXG4gIGNvbnN0IHNob3dNeVNraWxsc0J1dHRvbiA9ICEhY2FuVmlld1NraWxscyAmJiAhIWhhbmRsZU9wZW5Ta2lsbHNcbiAgY29uc3QgYWdlbnROYXZCdXR0b25Db3VudCA9ICgoc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA/IDEgOiAwKSArXG4gICAgKGNhblZpZXdBZ2VudHMgPyAxIDogMCkgK1xuICAgIChzaG93TXlSb3V0aW5lc0J1dHRvbiA/IDEgOiAwKSArXG4gICAgKHNob3dNeVNraWxsc0J1dHRvbiA/IDEgOiAwKSkgYXMgMCB8IDEgfCAyIHwgMyB8IDRcbiAgY29uc3Qgc2hvd0FnZW50c05hdkJsb2NrID0gc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiB8fCBjYW5WaWV3QWdlbnRzIHx8IHNob3dNeVNraWxsc0J1dHRvblxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmKSB7XG4gICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50ID0gKCkgPT4gc2V0U2VsZWN0ZWRDaGF0KG51bGwpXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYpIHtcbiAgICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtyZXNldFNlbGVjdGVkQ2hhdFJlZl0pXG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQ2hhdCA9IGFzeW5jIChjaGF0OiBhbnkpID0+IHtcbiAgICBkZWxldGVDaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICBjb25zdCBoYW5kbGVVcGRhdGVDaGF0ID0gKGNoYXQ6IGFueSkgPT4ge1xuICAgIHVwZGF0ZUNoYXQoY2hhdClcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3Blbk1vZGFsID0gKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGlzT3Blbk1vZGFsICYmIGlzT3Blbk1vZGFsICE9PSBjaGF0SWQpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKGNoYXRJZClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZU1vZGFsID0gKCkgPT4ge1xuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKGlzT3Blbk1vZGFsICYmICEoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmNsb3Nlc3QoJ1tkYXRhLW1vZGFsLWNvbnRhaW5lcl0nKSkge1xuICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbaXNPcGVuTW9kYWxdKVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZVNpZGViYXIgPSAoKSA9PiB7XG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH1cbiAgICBzZXRJc09wZW4ocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5DcmVhdGVBZ2VudCA9IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmbGFuZz0ke21hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSl9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICBjb25zdCBtYWlha2VyQWdlbnQgPSAoZGF0YS5kYXRhIHx8IFtdKS5maW5kKChhZ2VudDogYW55KSA9PiBhZ2VudC50eXBlID09PSAnY2xvbmUnICYmIGFnZW50LmVudGl0eSA9PT0gJ2dsb2JhbCcpXG5cbiAgICAgIGlmICghbWFpYWtlckFnZW50KSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2VsZWN0QWdlbnQobWFpYWtlckFnZW50KVxuICAgICAgaGFuZGxlR29Ub0hvbWUoKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yKClcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2hvdWxkRmV0Y2hTZXNzaW9ucykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmICghY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAocGVuZGluZ1Nlc3Npb25zUmVmZXRjaFJlZi5jdXJyZW50IHx8IHJlZmV0Y2hDaGF0cykge1xuICAgICAgcGVuZGluZ1Nlc3Npb25zUmVmZXRjaFJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGZldGNoQ2hhdHMoeyBsaW1pdCwgb2Zmc2V0IH0pXG4gICAgICBpZiAocmVmZXRjaENoYXRzKSB7XG4gICAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyhmYWxzZSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzaG91bGRGZXRjaFNlc3Npb25zLCByZWZldGNoQ2hhdHMsIGhhbmRsZVNldFJlZmV0Y2hDaGF0cywgZmV0Y2hDaGF0cywgbGltaXQsIG9mZnNldF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnQgfHwgIWhhc01vcmVDaGF0cyB8fCBpc0xvYWRpbmdNb3JlQ2hhdHMgfHwgaGFzRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY2hhdHNDb250YWluZXJSZWYuY3VycmVudFxuICAgICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMFxuXG4gICAgICBpZiAoaXNBdEJvdHRvbSkge1xuICAgICAgICBsb2FkTW9yZUNoYXRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hhc01vcmVDaGF0cywgaXNMb2FkaW5nTW9yZUNoYXRzLCBsb2FkTW9yZUNoYXRzLCBoYXNFcnJvcl0pXG5cbiAgY29uc3QgaGFuZGxlTmV3Q2hhdCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIHNldFNlbGVjdGVkQ2hhdChudWxsKVxuICAgIGlmIChzaG91bGRGZXRjaFNlc3Npb25zKSB7XG4gICAgICBhd2FpdCBmZXRjaENoYXRzKHsgbGltaXQsIG9mZnNldDogMCB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBwZW5kaW5nU2Vzc2lvbnNSZWZldGNoUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgfVxuICAgIGhhbmRsZUdvVG9Ib21lKClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlUmVmZXRjaFNlc3Npb24gPSAoKSA9PiB7XG4gICAgICBpZiAoc2hvdWxkRmV0Y2hTZXNzaW9ucykge1xuICAgICAgICBmZXRjaENoYXRzKHsgbGltaXQ6IDIwLCBvZmZzZXQ6IDAgfSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBwZW5kaW5nU2Vzc2lvbnNSZWZldGNoUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdyZWZldGNoLXNlc3Npb24nLCBoYW5kbGVSZWZldGNoU2Vzc2lvbilcbiAgICB9XG4gIH0sIFtzaG91bGRGZXRjaFNlc3Npb25zLCBmZXRjaENoYXRzXSlcblxuICBjb25zdCBzaG93TmV3Q2hhdEJ1dHRvbiA9XG4gICAgIXNob3dOZXdDaGF0ICYmXG4gICAgIWhhc0Vycm9yICYmXG4gICAgIWxvYWRpbmdDaGF0cyAmJlxuICAgICgodXNlclBlcm1pc3Npb25zPy52aWV3ICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaXNfZGVsZXRlZCAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcykgfHxcbiAgICAgICghdXNlclBlcm1pc3Npb25zPy52aWV3ICYmXG4gICAgICAgICFzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkICYmXG4gICAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zICYmXG4gICAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcykpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTU2lkZWJhclJvb3QgJGlzT3Blbj17aXNPcGVufT5cbiAgICAgIDxTQ1NTaWRlYmFyVG9vbGJhciAkaXNPcGVuPXtpc09wZW59PlxuICAgICAgICA8VG9vbHRpcCB0aXRsZT17aXNPcGVuID8gdCgnY29udmVyc2F0aW9ucy5jb2xsYXBzZScpIDogdCgnY29udmVyc2F0aW9ucy5leHBhbmQnKX0+XG4gICAgICAgICAgPFNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24gb25DbGljaz17aGFuZGxlVG9nZ2xlU2lkZWJhcn0gaXNPcGVuPXtpc09wZW59PlxuICAgICAgICAgICAgPENoZXZyb25Eb3VibGVMZWZ0IGNvbG9yPVwicmdiYSgxMDIsIDEwMiwgMTAyLCAxKVwiIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICA8L1NDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3Nob3dOZXdDaGF0QnV0dG9uID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0+XG4gICAgICAgICAgICA8U0NTV3JhcHBlck5ld0NoYXRJY29uIG9uQ2xpY2s9e2hhbmRsZU5ld0NoYXR9PlxuICAgICAgICAgICAgICA8TmV3Q2hhdCB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICA8L1NDU1dyYXBwZXJOZXdDaGF0SWNvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ1NTaWRlYmFyVG9vbGJhcj5cbiAgICAgIDxTQ1NTaWRlYmFyQm9keSAkaXNPcGVuPXtpc09wZW59PlxuICAgICAgICB7aXNPcGVuID8gKFxuICAgICAgICAgIDxTQ1NTaWRlYmFyT3BlblBhbmVsPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJBZ2VudHNCbG9jaz5cbiAgICAgICAgICAgICAge3Nob3dBZ2VudHNOYXZCbG9jayA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJBZ2VudHNIZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0hlYWRpbmdUZXh0Pnt0KCdjb252ZXJzYXRpb25zLmFnZW50c1NlY3Rpb25UaXRsZScpfTwvU0NTU2lkZWJhckFnZW50c0hlYWRpbmdUZXh0PlxuICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzSGVhZGluZz5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgICAge3Nob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdE1wT3BlbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdtYWlha2VyJ31cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWFpYVN0b3JlSWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm1haWFrZXJOYXYnKX08L1NDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIHtjYW5WaWV3QWdlbnRzID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVPcGVuTWFya2V0cGxhY2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPE15QWdlbnRzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm15QWdlbnRzTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICB7c2hvd015Um91dGluZXNCdXR0b24gPyAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU9wZW5NeVJvdXRpbmVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbXlSb3V0aW5lcyd9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPENsb2NrIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiBjb2xvcj1cImN1cnJlbnRDb2xvclwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD57dCgnY29udmVyc2F0aW9ucy5teVJvdXRpbmVzTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICB7c2hvd015U2tpbGxzQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVPcGVuU2tpbGxzfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbXlTa2lsbHMnfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTa2lsbHNOYXZJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubXlTa2lsbHNOYXYnKX08L1NDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJBZ2VudHNBY3Rpb25zPlxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZz57dCgnY29udmVyc2F0aW9ucy50aXRsZScpfTwvU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nPlxuICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQmxvY2s+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckNoYXRzU2Nyb2xsXG4gICAgICAgICAgICAgIHJlZj17Y2hhdHNDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICRoYXNDaGF0cz17Y2hhdHMubGVuZ3RoID4gMH1cbiAgICAgICAgICAgICAgJG9mZnNldFZhcmlhbnQ9e2hhc0Vycm9yID8gJ2Vycm9yJyA6ICdkZWZhdWx0J31cbiAgICAgICAgICAgICAgJGFnZW50TmF2QnV0dG9uQ291bnQ9e2FnZW50TmF2QnV0dG9uQ291bnR9XG4gICAgICAgICAgICAgICRoYXNGZWVkYmFjaz17ISFzZWxlY3RlZEFnZW50fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aGFzRXJyb3IgJiYgIWNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVUb3A+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvclN0YXRlIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlVG9wPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICApIDogbG9hZGluZ0NoYXRzID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTG9hZGluZ0FyZWE+XG4gICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJMb2FkaW5nQXJlYT5cbiAgICAgICAgICAgICAgKSA6IGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2NoYXRzLm1hcCgoY2hhdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8TGlzdEhpc3RvcnlDaGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGF0PXtjaGF0fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2hhdERhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkQ2hhdChjaGF0RGF0YS5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Hb1RvQ2hhdChjaGF0RGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01vZGFsT3Blbj17aXNPcGVuTW9kYWwgPT09IGNoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk9wZW5Nb2RhbD17aGFuZGxlT3Blbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZU1vZGFsPXtoYW5kbGVDbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGVsZXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlVXBkYXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZENoYXQgPT09IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICB7aXNMb2FkaW5nTW9yZUNoYXRzICYmIChcbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJMb2FkTW9yZVJvdz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gY291bnQ9ezJ9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckxvYWRNb3JlUm93PlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVtcHR5Q2hhdHM+XG4gICAgICAgICAgICAgICAgICA8RW1wdHlIaXN0b3J5SWNvbiAvPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dD57dCgnY29udmVyc2F0aW9ucy5lbXB0eScpfTwvU0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0PlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVtcHR5Q2hhdHM+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDU1NpZGViYXJDaGF0c1Njcm9sbD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ2hhdHNGb290ZXI+XG4gICAgICAgICAgICAgIHtoYXNFcnJvciAmJiBjaGF0cy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9ySWNvbiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPnt0KCdjb252ZXJzYXRpb25zLmVycm9yJyl9PC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckNoYXRzRm9vdGVyPlxuICAgICAgICAgIDwvU0NTU2lkZWJhck9wZW5QYW5lbD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyAkaXNPcGVuPXtpc09wZW59ICRqdXN0aWZ5QmV0d2Vlbj17ISFzZWxlY3RlZEFnZW50fT5cbiAgICAgICAgICB7c2VsZWN0ZWRBZ2VudCA/IDxGZWVkYmFja0J1dHRvbiBzZWxlY3RlZEFnZW50PXtzZWxlY3RlZEFnZW50fSBpc09wZW49e2lzT3Blbn0gLz4gOiBudWxsfVxuICAgICAgICA8L1NDU1NpZGViYXJGb290ZXJBY3Rpb25zPlxuICAgICAgPC9TQ1NTaWRlYmFyQm9keT5cbiAgICA8L1NDU1NpZGViYXJSb290PlxuICApXG59XG4iXSwi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
599
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkNVQnV0dG9uIiwiTWVudURvdHMiLCJQZW5jaWwiLCJUcmFzaCIsIlRvb2x0aXAiLCJFbXB0eUhpc3RvcnlJY29uIiwidXNlUmVzaXplTGlzdGVuZXIiLCJ1c2VDaGF0cyIsIlNpZGViYXJDaGF0c1NrZWxldG9uIiwiRXJyb3JTdGF0ZSIsIk1BSUFJY29uIiwiTWFpYVN0b3JlSWNvbiIsIk15QWdlbnRzTmF2SWNvbiIsIlNraWxsc05hdkljb24iLCJOZXdDaGF0IiwiRVZFTlRTIiwidXNlRXZlbnQiLCJ1c2VUIiwiT3B0aW9uSXRlbSIsIkVkaXRRdWVzdGlvbk1vZGFsIiwiRGVsZXRlUXVlc3Rpb25Nb2RhbCIsIkVycm9ySWNvbiIsInVzZVVzZXIiLCJGZWVkYmFja0J1dHRvbiIsInVzZUdsb2JhbENvbnRleHQiLCJmZXRjaE1haWEiLCJtYXBDT1JMYW5nIiwiZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIiwiZ2V0QWdlbnREaXNwbGF5TmFtZSIsIlNDTEhDV3JhcHBlciIsIlNDTEhDV3JhcHBlckFnZW50IiwiU0NMSENXcmFwcGVyQWdlbnRUZXh0IiwiU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucyIsIlNDTEhDV3JhcHBlckNvbnRlbnQiLCJTQ0xIQ1dyYXBwZXJUaXRsZSIsIlNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24iLCJTQ1NXcmFwcGVyTmV3Q2hhdEljb24iLCJTQ1NTaWRlYmFyUm9vdCIsIlNDU1NpZGViYXJUb29sYmFyIiwiU0NTU2lkZWJhckJvZHkiLCJTQ1NTaWRlYmFyT3BlblBhbmVsIiwiU0NTU2lkZWJhckFnZW50c0Jsb2NrIiwiU0NTU2lkZWJhckFnZW50c0FjdGlvbnMiLCJTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbiIsIlNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWwiLCJTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmciLCJTQ1NTaWRlYmFyQ2hhdHNTY3JvbGwiLCJTQ1NTaWRlYmFyRXJyb3JTdGF0ZUNvbHVtbiIsIlNDU1NpZGViYXJFcnJvclN0YXRlVG9wIiwiU0NTU2lkZWJhckVycm9yQmFubmVyIiwiU0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXAiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlIiwiU0NTU2lkZWJhckxvYWRpbmdBcmVhIiwiU0NTU2lkZWJhckxvYWRNb3JlUm93IiwiU0NTU2lkZWJhckVtcHR5Q2hhdHMiLCJTQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQiLCJTQ1NTaWRlYmFyQ2hhdHNGb290ZXIiLCJTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImFjdGlvbnMiLCJlZGl0IiwicHJvcHMiLCJfb2JqZWN0U3ByZWFkIiwiZGVsZXRlIiwiTGlzdEhpc3RvcnlDaGF0IiwiX3JlZiIsImNoYXQiLCJvbkNsaWNrIiwiaXNNb2RhbE9wZW4iLCJvbk9wZW5Nb2RhbCIsIm9uQ2xvc2VNb2RhbCIsImhhbmRsZXJzIiwiaXNTZWxlY3RlZCIsImluZGV4IiwidGV4dFJlZiIsImFnZW50UmVmIiwiZGlzcGxheVRpdGxlIiwidGl0bGUiLCJkaXNwbGF5QWdlbnQiLCJhZ2VudFR5cGUiLCJhZ2VudCIsImNvbnRleHROYW1lIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwic2hvd1Rvb2x0aXAiLCJfdXNlUmVzaXplTGlzdGVuZXIyIiwic2hvd1Rvb2x0aXBBZ2VudCIsIl91c2VUIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbiIsInNldEFjdGlvbiIsIm1lbnVJdGVtcyIsImxhYmVsIiwib25DbGlja0l0ZW0iLCJjaGF0SWQiLCJJY29uIiwiZXZlbnRLZXkiLCJwbUFpTWVudUVkaXQiLCJwbUFpTWVudURlbGV0ZSIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJjaGF0RGF0YSIsImhhbmRsZVVwZGF0ZUNoYXQiLCJoYW5kbGVEZWxldGVDaGF0IiwiY2hpbGRyZW4iLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiJGluZGV4IiwicmVmIiwiY29uY2F0Iiwid2lkdGgiLCJoZWlnaHQiLCJzdHlsZSIsImZvbnRTaXplIiwiZW1vamkiLCJpY29uT25seSIsInNpemUiLCJ2YXJpYW50IiwiZXZlbnQiLCJpZCIsInBvc2l0aW9uIiwidG9wIiwicmlnaHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ6SW5kZXgiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImJvcmRlclJhZGl1cyIsImJvcmRlciIsIm1pbldpZHRoIiwibWFwIiwiX3JlZjIiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsIm9uQ2xvc2UiLCJoYW5kbGVTZXRJc09wZW5Nb2RhbCIsIlNpZGViYXIiLCJfcmVmMyIsIl91c2VyJHBlcm1pc3Npb25zIiwib25Hb1RvQ2hhdCIsIl9yZWYzJG9uRXJyb3IiLCJvbkVycm9yIiwiaGFuZGxlR29Ub0hvbWUiLCJoYW5kbGVPcGVuTWFya2V0cGxhY2UiLCJoYW5kbGVPcGVuU2tpbGxzIiwic2hvd05ld0NoYXQiLCJyZWZldGNoQ2hhdHMiLCJoYW5kbGVTZXRSZWZldGNoQ2hhdHMiLCJoYXNFcnJvciIsInJlc2V0U2VsZWN0ZWRDaGF0UmVmIiwiX3JlZjMkYWdlbnRzTmF2QWN0aXZlIiwiYWdlbnRzTmF2QWN0aXZlIiwiX3VzZVQyIiwiaTE4biIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNPcGVuIiwic2V0SXNPcGVuIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc09wZW5Nb2RhbCIsInNldElzT3Blbk1vZGFsIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZWxlY3RlZENoYXQiLCJzZXRTZWxlY3RlZENoYXQiLCJjaGF0c0ZldGNoZWRSZWYiLCJwZW5kaW5nU2Vzc2lvbnNSZWZldGNoUmVmIiwiY2hhdHNDb250YWluZXJSZWYiLCJzaG91bGRGZXRjaFNlc3Npb25zIiwidXNlciIsImV2ZW50QW1wbGl0dWRlIiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RlZEFnZW50Iiwic2VsZWN0QWdlbnQiLCJzZXRQcm9qZWN0Iiwic2V0Q2xpZW50IiwiX3VzZUNoYXRzIiwibG9hZGluZ0NoYXRzIiwiY2hhdHMiLCJkZWxldGVDaGF0IiwidXBkYXRlQ2hhdCIsImZldGNoQ2hhdHMiLCJsaW1pdCIsIm9mZnNldCIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50cyIsImNyZWF0ZSIsImhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2VzcyIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjYW5WaWV3QWdlbnRzIiwidmlldyIsImNhblZpZXdTa2lsbHMiLCJzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uIiwiTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSIiwiYWdlbnROYXZCdXR0b25Db3VudCIsInNob3dBZ2VudHNOYXZCbG9jayIsImN1cnJlbnQiLCJfcmVmNCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZU9wZW5Nb2RhbCIsImhhbmRsZUNsb3NlTW9kYWwiLCJoYW5kbGVDbGlja091dHNpZGUiLCJ0YXJnZXQiLCJjbG9zZXN0IiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVRvZ2dsZVNpZGViYXIiLCJoYW5kbGVPcGVuQ3JlYXRlQWdlbnQiLCJfcmVmNSIsIl9jYWxsZWUyIiwicmVzcG9uc2UiLCJkYXRhIiwibWFpYWtlckFnZW50IiwiX3QiLCJfY29udGV4dDIiLCJwYXRoIiwibGFuZ3VhZ2UiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImZpbmQiLCJ0eXBlIiwiZW50aXR5IiwiYWJydXB0IiwiaGFuZGxlU2Nyb2xsIiwiX2NoYXRzQ29udGFpbmVyUmVmJGN1Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiaXNBdEJvdHRvbSIsImNvbnRhaW5lciIsImhhbmRsZU5ld0NoYXQiLCJfcmVmNiIsIl9jYWxsZWUzIiwiX2NvbnRleHQzIiwiaGFuZGxlUmVmZXRjaFNlc3Npb24iLCJzaG93TmV3Q2hhdEJ1dHRvbiIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCIkaXNPcGVuIiwiY29sb3IiLCJhaUNoYXRNcE9wZW4iLCIkYWN0aXZlIiwiJGhhc0NoYXRzIiwibGVuZ3RoIiwiJG9mZnNldFZhcmlhbnQiLCIkYWdlbnROYXZCdXR0b25Db3VudCIsImNvdW50IiwiJGp1c3RpZnlCZXR3ZWVuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1NpZGViYXIvU2lkZWJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IE11dGFibGVSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvbkRvdWJsZUxlZnQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG91YmxlTGVmdCdcbmltcG9ydCB7IENVQnV0dG9uIH0gZnJvbSAnQHByb2plY3Rjb3IvYnV0dG9uL2xpYi9jb21wb25lbnRzL0NVQnV0dG9uJ1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFBlbmNpbCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BlbmNpbCdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcblxuaW1wb3J0IHsgRW1wdHlIaXN0b3J5SWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0VtcHR5SGlzdG9yeSdcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgdXNlQ2hhdHMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VDaGF0cydcbmltcG9ydCB7IFNpZGViYXJDaGF0c1NrZWxldG9uIH0gZnJvbSAnLi9TaWRlYmFyLnNrZWxldG9uJ1xuaW1wb3J0IHsgRXJyb3JTdGF0ZSwgTUFJQUljb24sIE1haWFTdG9yZUljb24sIE15QWdlbnRzTmF2SWNvbiwgU2tpbGxzTmF2SWNvbiwgTmV3Q2hhdCB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBPcHRpb25JdGVtIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2FyZE1lbnUvQ2FyZE1lbnUnXG5pbXBvcnQgeyBFZGl0UXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9FZGl0UXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbCdcbmltcG9ydCB7IEVycm9ySWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL0Vycm9ySWNvbidcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgRmVlZGJhY2tCdXR0b24gfSBmcm9tICcuLi8uLi9hdG9tcy9GZWVkYmFja0J1dHRvbidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9jbGllbnQnXG5pbXBvcnQgeyBtYXBDT1JMYW5nIH0gZnJvbSAnLi4vLi4vLi4vbGFuZy91dGlscydcbmltcG9ydCB7IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3JlbmRlckNvbnRleHRNZW50aW9ucydcbmltcG9ydCB7IGdldEFnZW50RGlzcGxheU5hbWUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHtcbiAgU0NMSENXcmFwcGVyLFxuICBTQ0xIQ1dyYXBwZXJBZ2VudCxcbiAgU0NMSENXcmFwcGVyQWdlbnRUZXh0LFxuICBTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zLFxuICBTQ0xIQ1dyYXBwZXJDb250ZW50LFxuICBTQ0xIQ1dyYXBwZXJUaXRsZSxcbiAgU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbixcbiAgU0NTV3JhcHBlck5ld0NoYXRJY29uLFxufSBmcm9tICcuL1NpZGViYXIuc3R5bGVzJ1xuaW1wb3J0IHtcbiAgU0NTU2lkZWJhclJvb3QsXG4gIFNDU1NpZGViYXJUb29sYmFyLFxuICBTQ1NTaWRlYmFyQm9keSxcbiAgU0NTU2lkZWJhck9wZW5QYW5lbCxcbiAgU0NTU2lkZWJhckFnZW50c0Jsb2NrLFxuICBTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucyxcbiAgU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24sXG4gIFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWwsXG4gIFNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyxcbiAgU0NTU2lkZWJhckNoYXRzU2Nyb2xsLFxuICBTQ1NTaWRlYmFyRXJyb3JTdGF0ZUNvbHVtbixcbiAgU0NTU2lkZWJhckVycm9yU3RhdGVUb3AsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lcixcbiAgU0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXAsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UsXG4gIFNDU1NpZGViYXJMb2FkaW5nQXJlYSxcbiAgU0NTU2lkZWJhckxvYWRNb3JlUm93LFxuICBTQ1NTaWRlYmFyRW1wdHlDaGF0cyxcbiAgU0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0LFxuICBTQ1NTaWRlYmFyQ2hhdHNGb290ZXIsXG4gIFNDU1NpZGViYXJGb290ZXJBY3Rpb25zLFxufSBmcm9tICcuL1NpZGViYXIubGF5b3V0LnN0eWxlcydcblxuY29uc3QgYWN0aW9ucyA9IHtcbiAgZWRpdDogKHByb3BzOiBhbnkpID0+IDxFZGl0UXVlc3Rpb25Nb2RhbCB7Li4ucHJvcHN9IC8+LFxuICBkZWxldGU6IChwcm9wczogYW55KSA9PiA8RGVsZXRlUXVlc3Rpb25Nb2RhbCB7Li4ucHJvcHN9IC8+LFxufVxuXG4vKiogQWJyZXZpYSBcImVzcGVjaWFsaXN0YVwiL1wiZXNwZWNpYWxpc3RcIiDihpIgXCJFc3AuXCIgKEVTL1BUKSB5IFwic3BlY2lhbGlzdFwiIOKGkiBcIlNwZWMuXCIgKEVOKSBlbiBlbCBub21icmUgZGVsIGFnZW50ZS4gKi9cbmNvbnN0IExpc3RIaXN0b3J5Q2hhdCA9ICh7XG4gIGNoYXQsXG4gIG9uQ2xpY2ssXG4gIGlzTW9kYWxPcGVuLFxuICBvbk9wZW5Nb2RhbCxcbiAgb25DbG9zZU1vZGFsLFxuICBoYW5kbGVycyxcbiAgaXNTZWxlY3RlZCxcbiAgaW5kZXgsXG59OiB7XG4gIGNoYXQ6IGFueVxuICBvbkNsaWNrOiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIGlzTW9kYWxPcGVuOiBib29sZWFuXG4gIG9uT3Blbk1vZGFsOiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25DbG9zZU1vZGFsOiAoKSA9PiB2b2lkXG4gIGhhbmRsZXJzOiB7XG4gICAgaGFuZGxlRGVsZXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICAgIGhhbmRsZVVwZGF0ZUNoYXQ6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgfVxuICBpc1NlbGVjdGVkOiBib29sZWFuXG4gIGluZGV4OiBudW1iZXJcbn0pID0+IHtcbiAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgYWdlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGRpc3BsYXlUaXRsZSA9IHVzZU1lbW8oKCkgPT4gZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zKGNoYXQudGl0bGUpLCBbY2hhdC50aXRsZV0pXG4gIGNvbnN0IGRpc3BsYXlBZ2VudCA9IGdldEFnZW50RGlzcGxheU5hbWUoY2hhdC5hZ2VudFR5cGUsIGNoYXQuYWdlbnQpXG4gIGNvbnN0IGNvbnRleHROYW1lID0gY2hhdC5wcm9qZWN0TmFtZSB8fCBjaGF0LmNsaWVudE5hbWVcbiAgY29uc3QgeyBzaG93VG9vbHRpcCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZiwgW2Rpc3BsYXlUaXRsZV0pXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXA6IHNob3dUb29sdGlwQWdlbnQgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKGFnZW50UmVmLCBbY2hhdC5hZ2VudF0pXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IFthY3Rpb24sIHNldEFjdGlvbl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IG1lbnVJdGVtcyA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LnJlbmFtZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2VkaXQnKVxuICAgICAgICBvbk9wZW5Nb2RhbChjaGF0SWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogUGVuY2lsLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudUVkaXQsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LmRlbGV0ZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2RlbGV0ZScpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBUcmFzaCxcbiAgICAgIGV2ZW50S2V5OiBFVkVOVFMucG1BaU1lbnVEZWxldGUsXG4gICAgfSxcbiAgXVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1BY3Rpb24gPSAoY2hhdERhdGE6IGFueSkgPT4ge1xuICAgIGlmIChhY3Rpb24gPT09ICdlZGl0Jykge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlVXBkYXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlRGVsZXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9XG4gICAgc2V0QWN0aW9uKG51bGwpXG4gICAgb25DbG9zZU1vZGFsKClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTQ0xIQ1dyYXBwZXJDb250ZW50XG4gICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBvbkNsaWNrKGNoYXQpXG4gICAgICAgIH19XG4gICAgICAgIGtleT17YGNvbnZlcnNhdGlvbi0ke2NoYXQuc2Vzc2lvbkV4dGVybmFsSWR9YH1cbiAgICAgICAgaXNNb2RhbE9wZW49e2lzTW9kYWxPcGVufVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgICAkaW5kZXg9e2luZGV4fVxuICAgICAgPlxuICAgICAgICA8U0NMSENXcmFwcGVyPlxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcCA/IGRpc3BsYXlUaXRsZSA6ICcnfT5cbiAgICAgICAgICAgIDxTQ0xIQ1dyYXBwZXJUaXRsZSByZWY9e3RleHRSZWZ9PntkaXNwbGF5VGl0bGUgfHwgdCgnY29udmVyc2F0aW9ucy5lbXB0eUxhYmVsJyl9PC9TQ0xIQ1dyYXBwZXJUaXRsZT5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUb29sdGlwQWdlbnQgPyBkaXNwbGF5QWdlbnQgKyAoY29udGV4dE5hbWUgPyBgIC0gJHtjb250ZXh0TmFtZX1gIDogJycpIDogJyd9PlxuICAgICAgICAgICAgPFNDTEhDV3JhcHBlckFnZW50PlxuICAgICAgICAgICAgICB7Y2hhdC5hZ2VudFR5cGUgPT09ICdjbG9uZScgPyAoXG4gICAgICAgICAgICAgICAgPE1BSUFJY29uIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzE0cHgnIH19PntjaGF0LmVtb2ppfTwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnRUZXh0IHJlZj17YWdlbnRSZWZ9PlxuICAgICAgICAgICAgICAgIHtkaXNwbGF5QWdlbnR9XG4gICAgICAgICAgICAgICAge2NvbnRleHROYW1lICYmIGAgLSAke2NvbnRleHROYW1lfWB9XG4gICAgICAgICAgICAgIDwvU0NMSENXcmFwcGVyQWdlbnRUZXh0PlxuICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJBZ2VudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvU0NMSENXcmFwcGVyPlxuICAgICAgICA8U0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucz5cbiAgICAgICAgICA8Q1VCdXR0b25cbiAgICAgICAgICAgIGljb25Pbmx5XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICBvbk9wZW5Nb2RhbChjaGF0LmlkKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TWVudURvdHMgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAge2lzTW9kYWxPcGVuICYmICFhY3Rpb24gJiYgKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBkYXRhLW1vZGFsLWNvbnRhaW5lclxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIHRvcDogJzMycHgnLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiAnMTZweCcsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMTAwMCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgyMjQsIDIyNCwgMjI0LCAxKScsXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICcxMjRweCcsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHttZW51SXRlbXMubWFwKCh7IGxhYmVsLCBvbkNsaWNrSXRlbSwgSWNvbiwgZXZlbnRLZXkgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxPcHRpb25JdGVtXG4gICAgICAgICAgICAgICAgICBrZXk9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DbGlja0l0ZW0oY2hhdC5pZCl9XG4gICAgICAgICAgICAgICAgICBJY29uPXtJY29ufVxuICAgICAgICAgICAgICAgICAgZXZlbnRLZXk9e2V2ZW50S2V5fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zPlxuICAgICAgPC9TQ0xIQ1dyYXBwZXJDb250ZW50PlxuICAgICAgeyEhYWN0aW9uICYmXG4gICAgICAgIGFjdGlvbnNbYWN0aW9uXSh7XG4gICAgICAgICAgb25DbG9zZTogKCkgPT4ge1xuICAgICAgICAgICAgb25DbG9zZU1vZGFsKClcbiAgICAgICAgICAgIHNldEFjdGlvbihudWxsKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2hhdCxcbiAgICAgICAgICBoYW5kbGVyczoge1xuICAgICAgICAgICAgaGFuZGxlQ29uZmlybUFjdGlvbixcbiAgICAgICAgICAgIGhhbmRsZVNldElzT3Blbk1vZGFsOiBvbkNsb3NlTW9kYWwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSl9XG4gICAgPC8+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFNpZGViYXIgPSAoe1xuICBvbkdvVG9DaGF0LFxuICBvbkVycm9yID0gKCkgPT4gbnVsbCxcbiAgaGFuZGxlR29Ub0hvbWUsXG4gIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSxcbiAgaGFuZGxlT3BlblNraWxscyxcbiAgc2hvd05ld0NoYXQsXG4gIHJlZmV0Y2hDaGF0cyxcbiAgaGFuZGxlU2V0UmVmZXRjaENoYXRzLFxuICBoYXNFcnJvcixcbiAgcmVzZXRTZWxlY3RlZENoYXRSZWYsXG4gIGFnZW50c05hdkFjdGl2ZSA9IG51bGwsXG59OiB7XG4gIG9uR29Ub0NoYXQ6IChjaGF0SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkVycm9yOiAoKSA9PiB2b2lkXG4gIGhhbmRsZUdvVG9Ib21lOiAoKSA9PiB2b2lkXG4gIGhhbmRsZU9wZW5NYXJrZXRwbGFjZTogKCkgPT4gdm9pZFxuICBoYW5kbGVPcGVuU2tpbGxzOiAoKSA9PiB2b2lkXG4gIHNob3dOZXdDaGF0OiBib29sZWFuXG4gIHJlZmV0Y2hDaGF0czogYm9vbGVhblxuICBoYW5kbGVTZXRSZWZldGNoQ2hhdHM6IChyZWZldGNoOiBib29sZWFuKSA9PiB2b2lkXG4gIGhhc0Vycm9yOiBib29sZWFuXG4gIHJlc2V0U2VsZWN0ZWRDaGF0UmVmPzogTXV0YWJsZVJlZk9iamVjdDwoKCkgPT4gdm9pZCkgfCBudWxsPlxuICAvKiogUmVzYWx0YSBNYWlha2VyLCBNaXMgYWdlbnRlcyBvIE1pcyBza2lsbHMgKi9cbiAgYWdlbnRzTmF2QWN0aXZlPzogJ21haWFrZXInIHwgJ215QWdlbnRzJyB8ICdteVNraWxscycgfCBudWxsXG59KSA9PiB7XG4gIGNvbnN0IHsgdCwgaTE4biB9ID0gdXNlVCgpXG4gIGNvbnN0IFtpc09wZW4sIHNldElzT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzT3Blbk1vZGFsLCBzZXRJc09wZW5Nb2RhbF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbc2VsZWN0ZWRDaGF0LCBzZXRTZWxlY3RlZENoYXRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgY2hhdHNGZXRjaGVkUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBwZW5kaW5nU2Vzc2lvbnNSZWZldGNoUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBjaGF0c0NvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3Qgc2hvdWxkRmV0Y2hTZXNzaW9ucyA9IGlzT3BlblxuICBjb25zdCB1c2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGFnZW50OiBzZWxlY3RlZEFnZW50LCBzZWxlY3RBZ2VudCwgc2V0UHJvamVjdCwgc2V0Q2xpZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3Qge1xuICAgIGxvYWRpbmdDaGF0cyxcbiAgICBjaGF0cyxcbiAgICBkZWxldGVDaGF0LFxuICAgIHVwZGF0ZUNoYXQsXG4gICAgZmV0Y2hDaGF0cyxcbiAgICBsaW1pdCxcbiAgICBvZmZzZXQsXG4gICAgaGFzTW9yZUNoYXRzLFxuICAgIGxvYWRNb3JlQ2hhdHMsXG4gICAgaXNMb2FkaW5nTW9yZUNoYXRzLFxuICB9ID0gdXNlQ2hhdHMoe1xuICAgIG9uRXJyb3IsXG4gIH0pXG5cbiAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlcj8ucGVybWlzc2lvbnM/LmFpX2FnZW50c1xuICBjb25zdCBjYW5DcmVhdGVBZ2VudHMgPSAhIXVzZXJQZXJtaXNzaW9ucz8uY3JlYXRlXG4gIGNvbnN0IGhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2VzcyA9ICEhd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgY29uc3QgY2FuVmlld0FnZW50cyA9ICEhdXNlclBlcm1pc3Npb25zPy52aWV3ICYmIGhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2Vzc1xuICBjb25zdCBjYW5WaWV3U2tpbGxzID0gY2FuVmlld0FnZW50c1xuICBjb25zdCBzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uID0gISFjYW5DcmVhdGVBZ2VudHMgJiYgISF3aW5kb3cuTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSXG4gIGNvbnN0IGFnZW50TmF2QnV0dG9uQ291bnQgPSAoKHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPyAxIDogMCkgK1xuICAgIChjYW5WaWV3QWdlbnRzID8gMSA6IDApICtcbiAgICAoY2FuVmlld1NraWxscyA/IDEgOiAwKSkgYXMgMCB8IDEgfCAyIHwgM1xuICBjb25zdCBzaG93QWdlbnRzTmF2QmxvY2sgPSBzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uIHx8IGNhblZpZXdBZ2VudHMgfHwgY2FuVmlld1NraWxsc1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmKSB7XG4gICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50ID0gKCkgPT4gc2V0U2VsZWN0ZWRDaGF0KG51bGwpXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYpIHtcbiAgICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtyZXNldFNlbGVjdGVkQ2hhdFJlZl0pXG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQ2hhdCA9IGFzeW5jIChjaGF0OiBhbnkpID0+IHtcbiAgICBkZWxldGVDaGF0KGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICBjb25zdCBoYW5kbGVVcGRhdGVDaGF0ID0gKGNoYXQ6IGFueSkgPT4ge1xuICAgIHVwZGF0ZUNoYXQoY2hhdClcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3Blbk1vZGFsID0gKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGlzT3Blbk1vZGFsICYmIGlzT3Blbk1vZGFsICE9PSBjaGF0SWQpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKGNoYXRJZClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZU1vZGFsID0gKCkgPT4ge1xuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKGlzT3Blbk1vZGFsICYmICEoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmNsb3Nlc3QoJ1tkYXRhLW1vZGFsLWNvbnRhaW5lcl0nKSkge1xuICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuICB9LCBbaXNPcGVuTW9kYWxdKVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZVNpZGViYXIgPSAoKSA9PiB7XG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH1cbiAgICBzZXRJc09wZW4ocHJldiA9PiAhcHJldilcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5DcmVhdGVBZ2VudCA9IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICBwYXRoOiBgYWdlbnRzP2FnZW50X3R5cGU9Y2xvbmUmbGFuZz0ke21hcENPUkxhbmcoaTE4bi5sYW5ndWFnZSl9YCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICBjb25zdCBtYWlha2VyQWdlbnQgPSAoZGF0YS5kYXRhIHx8IFtdKS5maW5kKChhZ2VudDogYW55KSA9PiBhZ2VudC50eXBlID09PSAnY2xvbmUnICYmIGFnZW50LmVudGl0eSA9PT0gJ2dsb2JhbCcpXG5cbiAgICAgIGlmICghbWFpYWtlckFnZW50KSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2VsZWN0QWdlbnQobWFpYWtlckFnZW50KVxuICAgICAgaGFuZGxlR29Ub0hvbWUoKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yKClcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2hvdWxkRmV0Y2hTZXNzaW9ucykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmICghY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAocGVuZGluZ1Nlc3Npb25zUmVmZXRjaFJlZi5jdXJyZW50IHx8IHJlZmV0Y2hDaGF0cykge1xuICAgICAgcGVuZGluZ1Nlc3Npb25zUmVmZXRjaFJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGZldGNoQ2hhdHMoeyBsaW1pdCwgb2Zmc2V0IH0pXG4gICAgICBpZiAocmVmZXRjaENoYXRzKSB7XG4gICAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyhmYWxzZSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzaG91bGRGZXRjaFNlc3Npb25zLCByZWZldGNoQ2hhdHMsIGhhbmRsZVNldFJlZmV0Y2hDaGF0cywgZmV0Y2hDaGF0cywgbGltaXQsIG9mZnNldF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnQgfHwgIWhhc01vcmVDaGF0cyB8fCBpc0xvYWRpbmdNb3JlQ2hhdHMgfHwgaGFzRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY2hhdHNDb250YWluZXJSZWYuY3VycmVudFxuICAgICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMFxuXG4gICAgICBpZiAoaXNBdEJvdHRvbSkge1xuICAgICAgICBsb2FkTW9yZUNoYXRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hhc01vcmVDaGF0cywgaXNMb2FkaW5nTW9yZUNoYXRzLCBsb2FkTW9yZUNoYXRzLCBoYXNFcnJvcl0pXG5cbiAgY29uc3QgaGFuZGxlTmV3Q2hhdCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIHNldFNlbGVjdGVkQ2hhdChudWxsKVxuICAgIGlmIChzaG91bGRGZXRjaFNlc3Npb25zKSB7XG4gICAgICBhd2FpdCBmZXRjaENoYXRzKHsgbGltaXQsIG9mZnNldDogMCB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBwZW5kaW5nU2Vzc2lvbnNSZWZldGNoUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgfVxuICAgIGhhbmRsZUdvVG9Ib21lKClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlUmVmZXRjaFNlc3Npb24gPSAoKSA9PiB7XG4gICAgICBpZiAoc2hvdWxkRmV0Y2hTZXNzaW9ucykge1xuICAgICAgICBmZXRjaENoYXRzKHsgbGltaXQ6IDIwLCBvZmZzZXQ6IDAgfSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBwZW5kaW5nU2Vzc2lvbnNSZWZldGNoUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdyZWZldGNoLXNlc3Npb24nLCBoYW5kbGVSZWZldGNoU2Vzc2lvbilcbiAgICB9XG4gIH0sIFtzaG91bGRGZXRjaFNlc3Npb25zLCBmZXRjaENoYXRzXSlcblxuICBjb25zdCBzaG93TmV3Q2hhdEJ1dHRvbiA9XG4gICAgIXNob3dOZXdDaGF0ICYmXG4gICAgIWhhc0Vycm9yICYmXG4gICAgIWxvYWRpbmdDaGF0cyAmJlxuICAgICgodXNlclBlcm1pc3Npb25zPy52aWV3ICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaXNfZGVsZXRlZCAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcykgfHxcbiAgICAgICghdXNlclBlcm1pc3Npb25zPy52aWV3ICYmXG4gICAgICAgICFzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkICYmXG4gICAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zICYmXG4gICAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X2FjY2VzcykpXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTU2lkZWJhclJvb3QgJGlzT3Blbj17aXNPcGVufT5cbiAgICAgIDxTQ1NTaWRlYmFyVG9vbGJhciAkaXNPcGVuPXtpc09wZW59PlxuICAgICAgICA8VG9vbHRpcCB0aXRsZT17aXNPcGVuID8gdCgnY29udmVyc2F0aW9ucy5jb2xsYXBzZScpIDogdCgnY29udmVyc2F0aW9ucy5leHBhbmQnKX0+XG4gICAgICAgICAgPFNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24gb25DbGljaz17aGFuZGxlVG9nZ2xlU2lkZWJhcn0gaXNPcGVuPXtpc09wZW59PlxuICAgICAgICAgICAgPENoZXZyb25Eb3VibGVMZWZ0IGNvbG9yPVwicmdiYSgxMDIsIDEwMiwgMTAyLCAxKVwiIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICA8L1NDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3Nob3dOZXdDaGF0QnV0dG9uID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0+XG4gICAgICAgICAgICA8U0NTV3JhcHBlck5ld0NoYXRJY29uIG9uQ2xpY2s9e2hhbmRsZU5ld0NoYXR9PlxuICAgICAgICAgICAgICA8TmV3Q2hhdCB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICA8L1NDU1dyYXBwZXJOZXdDaGF0SWNvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ1NTaWRlYmFyVG9vbGJhcj5cbiAgICAgIDxTQ1NTaWRlYmFyQm9keSAkaXNPcGVuPXtpc09wZW59PlxuICAgICAgICB7aXNPcGVuID8gKFxuICAgICAgICAgIDxTQ1NTaWRlYmFyT3BlblBhbmVsPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJBZ2VudHNCbG9jaz5cbiAgICAgICAgICAgICAge3Nob3dBZ2VudHNOYXZCbG9jayA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0FjdGlvbnM+XG4gICAgICAgICAgICAgICAgICB7c2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdE1wT3BlbilcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DcmVhdGVBZ2VudCgpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdtYWlha2VyJ31cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxNYWlhU3RvcmVJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm1haWFrZXJOYXYnKX08L1NDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIHtjYW5WaWV3QWdlbnRzID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVPcGVuTWFya2V0cGxhY2V9XG4gICAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbXlBZ2VudHMnfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPE15QWdlbnRzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD57dCgnY29udmVyc2F0aW9ucy5teUFnZW50c05hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge2NhblZpZXdTa2lsbHMgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU9wZW5Ta2lsbHN9XG4gICAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbXlTa2lsbHMnfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNraWxsc05hdkljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubXlTa2lsbHNOYXYnKX08L1NDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJBZ2VudHNBY3Rpb25zPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZz57dCgnY29udmVyc2F0aW9ucy50aXRsZScpfTwvU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nPlxuICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQmxvY2s+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckNoYXRzU2Nyb2xsXG4gICAgICAgICAgICAgIHJlZj17Y2hhdHNDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICRoYXNDaGF0cz17Y2hhdHMubGVuZ3RoID4gMH1cbiAgICAgICAgICAgICAgJG9mZnNldFZhcmlhbnQ9e2hhc0Vycm9yID8gJ2Vycm9yJyA6ICdkZWZhdWx0J31cbiAgICAgICAgICAgICAgJGFnZW50TmF2QnV0dG9uQ291bnQ9e2FnZW50TmF2QnV0dG9uQ291bnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtoYXNFcnJvciAmJiAhY2hhdHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JTdGF0ZUNvbHVtbj5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JTdGF0ZVRvcD5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9yU3RhdGUgLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yU3RhdGVUb3A+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXA+XG4gICAgICAgICAgICAgICAgICAgICAgPEVycm9ySWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZT57dCgnY29udmVyc2F0aW9ucy5lcnJvcicpfTwvU0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgICkgOiBsb2FkaW5nQ2hhdHMgPyAoXG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJMb2FkaW5nQXJlYT5cbiAgICAgICAgICAgICAgICAgIDxTaWRlYmFyQ2hhdHNTa2VsZXRvbiAvPlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckxvYWRpbmdBcmVhPlxuICAgICAgICAgICAgICApIDogY2hhdHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7Y2hhdHMubWFwKChjaGF0LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SGlzdG9yeUNoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2hhdC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXQ9e2NoYXR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjaGF0RGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRDaGF0KGNoYXREYXRhLnNlc3Npb25FeHRlcm5hbElkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkdvVG9DaGF0KGNoYXREYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTW9kYWxPcGVuPXtpc09wZW5Nb2RhbCA9PT0gY2hhdC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uT3Blbk1vZGFsPXtoYW5kbGVPcGVuTW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsb3NlTW9kYWw9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVEZWxldGVDaGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVVcGRhdGVDaGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQ2hhdCA9PT0gY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdNb3JlQ2hhdHMgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckxvYWRNb3JlUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTaWRlYmFyQ2hhdHNTa2VsZXRvbiBjb3VudD17Mn0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTG9hZE1vcmVSb3c+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRW1wdHlDaGF0cz5cbiAgICAgICAgICAgICAgICAgIDxFbXB0eUhpc3RvcnlJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0Pnt0KCdjb252ZXJzYXRpb25zLmVtcHR5Jyl9PC9TQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQ+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRW1wdHlDaGF0cz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckNoYXRzU2Nyb2xsPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c0Zvb3Rlcj5cbiAgICAgICAgICAgICAge2hhc0Vycm9yICYmIGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXI+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQ2hhdHNGb290ZXI+XG4gICAgICAgICAgPC9TQ1NTaWRlYmFyT3BlblBhbmVsPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFNDU1NpZGViYXJGb290ZXJBY3Rpb25zICRpc09wZW49e2lzT3Blbn0gJGp1c3RpZnlCZXR3ZWVuPXshIXNlbGVjdGVkQWdlbnR9PlxuICAgICAgICAgIHtzZWxlY3RlZEFnZW50ID8gPEZlZWRiYWNrQnV0dG9uIHNlbGVjdGVkQWdlbnQ9e3NlbGVjdGVkQWdlbnR9IGlzT3Blbj17aXNPcGVufSAvPiA6IG51bGx9XG4gICAgICAgIDwvU0NTU2lkZWJhckZvb3RlckFjdGlvbnM+XG4gICAgICA8L1NDU1NpZGViYXJCb2R5PlxuICAgIDwvU0NTU2lkZWJhclJvb3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBMkJBLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzlFLFNBQVNDLGlCQUFpQixRQUFRLG9EQUFvRDtBQUN0RixTQUFTQyxRQUFRLFFBQVEsNENBQTRDO0FBQ3JFLFNBQVNDLFFBQVEsUUFBUSwyQ0FBMkM7QUFDcEUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBRTlELFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFFdEUsU0FBU0MsZ0JBQWdCLFFBQVEsZ0NBQWdDO0FBQ2pFLFNBQVNDLGlCQUFpQixRQUFRLDBCQUEwQjtBQUM1RCxTQUFTQyxRQUFRLFFBQVEseUJBQXlCO0FBQ2xELFNBQVNDLG9CQUFvQixRQUFRLG9CQUFvQjtBQUN6RCxTQUFTQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxFQUFFQyxlQUFlLEVBQUVDLGFBQWEsRUFBRUMsT0FBTyxRQUFRLG1CQUFtQjtBQUNoSCxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFDMUQsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxVQUFVLFFBQVEsK0JBQStCO0FBQzFELFNBQVNDLGlCQUFp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
@@ -56,26 +56,22 @@ export var SCSSidebarConversationsHeading = styled.span.withConfig({
56
56
  displayName: "Sidebarlayoutstyles__SCSSidebarConversationsHeading",
57
57
  componentId: "sc-1bkxdfe-10"
58
58
  })(["font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;color:#666;line-height:140%;padding-left:12px;letter-spacing:-0.21px;"]);
59
- var BASE_RESERVE_PX = 164;
60
- var ERROR_RESERVE_PX = 197;
61
- var AGENTS_BLOCK_OVERHEAD_PX = 12;
62
- var NAV_BTN_PX = 44;
63
- var FEEDBACK_BTN_PX = 28;
64
59
  export var SCSSidebarChatsScroll = styled.div.withConfig({
65
60
  displayName: "Sidebarlayoutstyles__SCSSidebarChatsScroll",
66
61
  componentId: "sc-1bkxdfe-11"
67
62
  })(["display:flex;flex-direction:column;gap:4px;flex-grow:1;width:100%;overflow-y:auto;overscroll-behavior-y:contain;", " ", ""], function (p) {
68
63
  if (!p.$hasChats) return undefined;
69
- var scrollReserve = BASE_RESERVE_PX;
64
+ var scrollReserve = 164;
70
65
  if (p.$offsetVariant === 'error') {
71
- scrollReserve = ERROR_RESERVE_PX;
72
- } else {
73
- if (p.$agentNavButtonCount > 0) {
74
- scrollReserve += AGENTS_BLOCK_OVERHEAD_PX + p.$agentNavButtonCount * NAV_BTN_PX;
75
- }
76
- if (p.$hasFeedback) {
77
- scrollReserve += FEEDBACK_BTN_PX;
78
- }
66
+ scrollReserve = 197;
67
+ } else if (p.$agentNavButtonCount === 4) {
68
+ scrollReserve = 352;
69
+ } else if (p.$agentNavButtonCount === 3) {
70
+ scrollReserve = 308;
71
+ } else if (p.$agentNavButtonCount === 2) {
72
+ scrollReserve = 264;
73
+ } else if (p.$agentNavButtonCount === 1) {
74
+ scrollReserve = 220;
79
75
  }
80
76
  return css(["max-height:calc(100vh - ", "px);"], scrollReserve);
81
77
  }, function (p) {
@@ -129,4 +125,4 @@ export var SCSSidebarFooterActions = styled.div.withConfig({
129
125
  }, function (p) {
130
126
  return p.$justifyBetween ? 'space-between' : 'flex-end';
131
127
  });
132
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJmYWRlSW4iLCJTQ1NTaWRlYmFyUm9vdCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwicCIsIiRpc09wZW4iLCJTQ1NTaWRlYmFyVG9vbGJhciIsIlNDU1NpZGViYXJCb2R5IiwiU0NTU2lkZWJhck9wZW5QYW5lbCIsIlNDU1NpZGViYXJBZ2VudHNCbG9jayIsIlNDU1NpZGViYXJBZ2VudHNIZWFkaW5nIiwiU0NTU2lkZWJhckFnZW50c0hlYWRpbmdUZXh0Iiwic3BhbiIsIlNDU1NpZGViYXJBZ2VudHNBY3Rpb25zIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24iLCJidXR0b24iLCIkYWN0aXZlIiwiU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCIsIlNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyIsIkJBU0VfUkVTRVJWRV9QWCIsIkVSUk9SX1JFU0VSVkVfUFgiLCJBR0VOVFNfQkxPQ0tfT1ZFUkhFQURfUFgiLCJOQVZfQlROX1BYIiwiRkVFREJBQ0tfQlROX1BYIiwiU0NTU2lkZWJhckNoYXRzU2Nyb2xsIiwiJGhhc0NoYXRzIiwidW5kZWZpbmVkIiwic2Nyb2xsUmVzZXJ2ZSIsIiRvZmZzZXRWYXJpYW50IiwiJGFnZW50TmF2QnV0dG9uQ291bnQiLCIkaGFzRmVlZGJhY2siLCJTQ1NTaWRlYmFyRXJyb3JTdGF0ZUNvbHVtbiIsIlNDU1NpZGViYXJFcnJvclN0YXRlVG9wIiwiU0NTU2lkZWJhckVycm9yQmFubmVyIiwiU0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXAiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlIiwiU0NTU2lkZWJhckxvYWRpbmdBcmVhIiwiU0NTU2lkZWJhckxvYWRNb3JlUm93IiwiU0NTU2lkZWJhckVtcHR5Q2hhdHMiLCJTQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQiLCJTQ1NTaWRlYmFyQ2hhdHNGb290ZXIiLCJTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyIsIiRqdXN0aWZ5QmV0d2VlbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TaWRlYmFyL1NpZGViYXIubGF5b3V0LnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5cbmNvbnN0IGZhZGVJbiA9IGtleWZyYW1lc2BcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhclJvb3QgPSBzdHlsZWQuZGl2PHsgJGlzT3BlbjogYm9vbGVhbiB9PmBcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMTJweCAxMHB4O1xuICBtaW4td2lkdGg6ICR7cCA9PiAocC4kaXNPcGVuID8gJzIwMHB4JyA6ICc0NnB4Jyl9O1xuICBtYXgtd2lkdGg6IDI3MHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGdhcDogMTJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgJHtwID0+XG4gICAgIXAuJGlzT3BlbiAmJlxuICAgIGNzc2BcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJUb29sYmFyID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMjJweDtcbiAgZmxleC1kaXJlY3Rpb246ICR7cCA9PiAocC4kaXNPcGVuID8gJ3Jvdy1yZXZlcnNlJyA6ICdjb2x1bW4nKX07XG4gICR7cCA9PlxuICAgIHAuJGlzT3BlbiAmJlxuICAgIGNzc2BcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckJvZHkgPSBzdHlsZWQuZGl2PHsgJGlzT3BlbjogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMzJweCk7XG4gIGp1c3RpZnktY29udGVudDogJHtwID0+IChwLiRpc09wZW4gPyAnZmxleC1zdGFydCcgOiAnZmxleC1lbmQnKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyT3BlblBhbmVsID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogOHB4IDAgMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWluLXdpZHRoOiAyNDRweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJBZ2VudHNCbG9jayA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyQWdlbnRzSGVhZGluZyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyQWdlbnRzSGVhZGluZ1RleHQgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjNjY2O1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uID0gc3R5bGVkLmJ1dHRvbjx7ICRhY3RpdmU6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xuICBwYWRkaW5nOiAxMnB4IDhweCAxMnB4IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogJHtwID0+IChwLiRhY3RpdmUgPyAnI2VjZWNlYycgOiAndHJhbnNwYXJlbnQnKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250OiBpbmhlcml0O1xuICAvKiBNaXNtbyB0b25vIHF1ZSBlbCBsYWJlbDsgZWwgZXN0YWRvIGFjdGl2byBzZSB2ZSBjb24gZWwgZm9uZG8sIG5vIGF0ZW51YW5kbyBlbCBpY29ubyAqL1xuICBjb2xvcjogIzIwMjAxZjtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogIzIwMjAxZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmcgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjNjY2O1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbmBcblxuY29uc3QgQkFTRV9SRVNFUlZFX1BYID0gMTY0XG5jb25zdCBFUlJPUl9SRVNFUlZFX1BYID0gMTk3XG5jb25zdCBBR0VOVFNfQkxPQ0tfT1ZFUkhFQURfUFggPSAxMlxuY29uc3QgTkFWX0JUTl9QWCA9IDQ0XG5jb25zdCBGRUVEQkFDS19CVE5fUFggPSAyOFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckNoYXRzU2Nyb2xsID0gc3R5bGVkLmRpdjx7XG4gICRoYXNDaGF0czogYm9vbGVhblxuICAkb2Zmc2V0VmFyaWFudDogJ2RlZmF1bHQnIHwgJ2Vycm9yJ1xuICAvKiogQm90b25lcyB2aXNpYmxlcyBlbiBsYSBzZWNjacOzbiBBZ2VudGVzLCAw4oCTNCAqL1xuICAkYWdlbnROYXZCdXR0b25Db3VudDogMCB8IDEgfCAyIHwgMyB8IDRcbiAgLyoqIFNpIGVsIEZlZWRiYWNrQnV0dG9uIGVzdMOhIHZpc2libGUgZW4gZWwgZm9vdGVyICovXG4gICRoYXNGZWVkYmFjazogYm9vbGVhblxufT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXk6IGNvbnRhaW47XG4gICR7cCA9PiB7XG4gICAgaWYgKCFwLiRoYXNDaGF0cykgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGxldCBzY3JvbGxSZXNlcnZlID0gQkFTRV9SRVNFUlZFX1BYXG4gICAgaWYgKHAuJG9mZnNldFZhcmlhbnQgPT09ICdlcnJvcicpIHtcbiAgICAgIHNjcm9sbFJlc2VydmUgPSBFUlJPUl9SRVNFUlZFX1BYXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwLiRhZ2VudE5hdkJ1dHRvbkNvdW50ID4gMCkge1xuICAgICAgICBzY3JvbGxSZXNlcnZlICs9IEFHRU5UU19CTE9DS19PVkVSSEVBRF9QWCArIHAuJGFnZW50TmF2QnV0dG9uQ291bnQgKiBOQVZfQlROX1BYXG4gICAgICB9XG4gICAgICBpZiAocC4kaGFzRmVlZGJhY2spIHtcbiAgICAgICAgc2Nyb2xsUmVzZXJ2ZSArPSBGRUVEQkFDS19CVE5fUFhcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNzc2BcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAke3Njcm9sbFJlc2VydmV9cHgpO1xuICAgIGBcbiAgfX1cbiAgJHtwID0+XG4gICAgIXAuJGhhc0NoYXRzICYmXG4gICAgY3NzYFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbmltYXRpb246ICR7ZmFkZUlufSAwLjVzIGVhc2Utb3V0O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckVycm9yU3RhdGVUb3AgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWdyb3c6IDE7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyRXJyb3JCYW5uZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDE2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUzLCAyMzYsIDIzNiwgMSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxOTksIDUsIDUsIDEpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyTG9hZGluZ0FyZWEgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2NzBweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJMb2FkTW9yZVJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckVtcHR5Q2hhdHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE4cHg7XG4gIHdpZHRoOiAyMDFweDtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gMC41cyBlYXNlLW91dDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDEpO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckNoYXRzRm9vdGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyA9IHN0eWxlZC5kaXY8eyAkaXNPcGVuOiBib29sZWFuOyAkanVzdGlmeUJldHdlZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xuICBmbGV4LWRpcmVjdGlvbjogJHtwID0+IChwLiRpc09wZW4gPyAncm93JyA6ICdjb2x1bW4nKX07XG4gIGp1c3RpZnktY29udGVudDogJHtwID0+IChwLiRqdXN0aWZ5QmV0d2VlbiA/ICdzcGFjZS1iZXR3ZWVuJyA6ICdmbGV4LWVuZCcpfTtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxJ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
128
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJmYWRlSW4iLCJTQ1NTaWRlYmFyUm9vdCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwicCIsIiRpc09wZW4iLCJTQ1NTaWRlYmFyVG9vbGJhciIsIlNDU1NpZGViYXJCb2R5IiwiU0NTU2lkZWJhck9wZW5QYW5lbCIsIlNDU1NpZGViYXJBZ2VudHNCbG9jayIsIlNDU1NpZGViYXJBZ2VudHNIZWFkaW5nIiwiU0NTU2lkZWJhckFnZW50c0hlYWRpbmdUZXh0Iiwic3BhbiIsIlNDU1NpZGViYXJBZ2VudHNBY3Rpb25zIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24iLCJidXR0b24iLCIkYWN0aXZlIiwiU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCIsIlNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyIsIlNDU1NpZGViYXJDaGF0c1Njcm9sbCIsIiRoYXNDaGF0cyIsInVuZGVmaW5lZCIsInNjcm9sbFJlc2VydmUiLCIkb2Zmc2V0VmFyaWFudCIsIiRhZ2VudE5hdkJ1dHRvbkNvdW50IiwiU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4iLCJTQ1NTaWRlYmFyRXJyb3JTdGF0ZVRvcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lciIsIlNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwIiwiU0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZSIsIlNDU1NpZGViYXJMb2FkaW5nQXJlYSIsIlNDU1NpZGViYXJMb2FkTW9yZVJvdyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzIiwiU0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0IiwiU0NTU2lkZWJhckNoYXRzRm9vdGVyIiwiU0NTU2lkZWJhckZvb3RlckFjdGlvbnMiLCIkanVzdGlmeUJldHdlZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvU2lkZWJhci9TaWRlYmFyLmxheW91dC5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJSb290ID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDEycHggMTBweDtcbiAgbWluLXdpZHRoOiAke3AgPT4gKHAuJGlzT3BlbiA/ICcyMDBweCcgOiAnNDZweCcpfTtcbiAgbWF4LXdpZHRoOiAyNzBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBnYXA6IDEycHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICR7cCA9PlxuICAgICFwLiRpc09wZW4gJiZcbiAgICBjc3NgXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyVG9vbGJhciA9IHN0eWxlZC5kaXY8eyAkaXNPcGVuOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDIycHg7XG4gIGZsZXgtZGlyZWN0aW9uOiAke3AgPT4gKHAuJGlzT3BlbiA/ICdyb3ctcmV2ZXJzZScgOiAnY29sdW1uJyl9O1xuICAke3AgPT5cbiAgICBwLiRpc09wZW4gJiZcbiAgICBjc3NgXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJCb2R5ID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDMycHgpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ICR7cCA9PiAocC4kaXNPcGVuID8gJ2ZsZXgtc3RhcnQnIDogJ2ZsZXgtZW5kJyl9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhck9wZW5QYW5lbCA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDhweCAwIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIG1pbi13aWR0aDogMjQ0cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyQWdlbnRzQmxvY2sgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckFnZW50c0hlYWRpbmcgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyNTBweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckFnZW50c0hlYWRpbmdUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzY2NjtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckFnZW50c0FjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgd2lkdGg6IDEwMCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkYWN0aXZlOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyNTBweDtcbiAgcGFkZGluZzogMTJweCA4cHggMTJweCAxMnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICR7cCA9PiAocC4kYWN0aXZlID8gJyNlY2VjZWMnIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udDogaW5oZXJpdDtcbiAgLyogTWlzbW8gdG9ubyBxdWUgZWwgbGFiZWw7IGVsIGVzdGFkbyBhY3Rpdm8gc2UgdmUgY29uIGVsIGZvbmRvLCBubyBhdGVudWFuZG8gZWwgaWNvbm8gKi9cbiAgY29sb3I6ICMyMDIwMWY7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzY2NjtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyQ2hhdHNTY3JvbGwgPSBzdHlsZWQuZGl2PHtcbiAgJGhhc0NoYXRzOiBib29sZWFuXG4gICRvZmZzZXRWYXJpYW50OiAnZGVmYXVsdCcgfCAnZXJyb3InXG4gIC8qKiBCb3RvbmVzIHZpc2libGVzIGVuIGxhIHNlY2Npw7NuIEFnZW50ZXMsIDDigJM0ICovXG4gICRhZ2VudE5hdkJ1dHRvbkNvdW50OiAwIHwgMSB8IDIgfCAzIHwgNFxufT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXk6IGNvbnRhaW47XG4gICR7cCA9PiB7XG4gICAgaWYgKCFwLiRoYXNDaGF0cykgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGxldCBzY3JvbGxSZXNlcnZlID0gMTY0XG4gICAgaWYgKHAuJG9mZnNldFZhcmlhbnQgPT09ICdlcnJvcicpIHtcbiAgICAgIHNjcm9sbFJlc2VydmUgPSAxOTdcbiAgICB9IGVsc2UgaWYgKHAuJGFnZW50TmF2QnV0dG9uQ291bnQgPT09IDQpIHtcbiAgICAgIHNjcm9sbFJlc2VydmUgPSAzNTJcbiAgICB9IGVsc2UgaWYgKHAuJGFnZW50TmF2QnV0dG9uQ291bnQgPT09IDMpIHtcbiAgICAgIHNjcm9sbFJlc2VydmUgPSAzMDhcbiAgICB9IGVsc2UgaWYgKHAuJGFnZW50TmF2QnV0dG9uQ291bnQgPT09IDIpIHtcbiAgICAgIHNjcm9sbFJlc2VydmUgPSAyNjRcbiAgICB9IGVsc2UgaWYgKHAuJGFnZW50TmF2QnV0dG9uQ291bnQgPT09IDEpIHtcbiAgICAgIHNjcm9sbFJlc2VydmUgPSAyMjBcbiAgICB9XG4gICAgcmV0dXJuIGNzc2BcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAke3Njcm9sbFJlc2VydmV9cHgpO1xuICAgIGBcbiAgfX1cbiAgJHtwID0+XG4gICAgIXAuJGhhc0NoYXRzICYmXG4gICAgY3NzYFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbmltYXRpb246ICR7ZmFkZUlufSAwLjVzIGVhc2Utb3V0O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckVycm9yU3RhdGVUb3AgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWdyb3c6IDE7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyRXJyb3JCYW5uZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDE2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjUzLCAyMzYsIDIzNiwgMSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxOTksIDUsIDUsIDEpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyTG9hZGluZ0FyZWEgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2NzBweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJMb2FkTW9yZVJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckVtcHR5Q2hhdHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE4cHg7XG4gIHdpZHRoOiAyMDFweDtcbiAgYW5pbWF0aW9uOiAke2ZhZGVJbn0gMC41cyBlYXNlLW91dDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDEpO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTU2lkZWJhckNoYXRzRm9vdGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyA9IHN0eWxlZC5kaXY8eyAkaXNPcGVuOiBib29sZWFuOyAkanVzdGlmeUJldHdlZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xuICBmbGV4LWRpcmVjdGlvbjogJHtwID0+IChwLiRpc09wZW4gPyAncm93JyA6ICdjb2x1bW4nKX07XG4gIGp1c3RpZnktY29udGVudDogJHtwID0+IChwLiRqdXN0aWZ5QmV0d2VlbiA/ICdzcGFjZS1iZXR3ZWVuJyA6ICdmbGV4LWVuZCcpfTtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFFMUQsSUFBTUMsTUFBTSxHQUFHRCxTQUFTLG9DQU92QjtBQUVELE9BQU8sSUFBTUUsY0FBYyxHQUFHSixNQUFNLENBQUNLLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3UkFLekIsVUFBQUMsQ0FBQztFQUFBLE9BQUtBLENBQUMsQ0FBQ0MsT0FBTyxHQUFHLE9BQU8sR0FBRyxNQUFNO0FBQUEsQ0FBQyxFQVM5QyxVQUFBRCxDQUFDO0VBQUEsT0FDRCxDQUFDQSxDQUFDLENBQUNDLE9BQU8sSUFDVlQsR0FBRyx1REFHRjtBQUFBLEVBQ0o7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