@projectcor/maia-components 2.11.63-3 → 2.11.63

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 (115) hide show
  1. package/lib/App.js +2 -6
  2. package/lib/components/atoms/Chip/Chip.js +15 -49
  3. package/lib/components/atoms/Chip/styles.js +3 -7
  4. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +3 -7
  5. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +2 -4
  6. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
  7. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
  8. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +11 -76
  9. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +14 -22
  10. package/lib/components/atoms/MAIAInput/MAIAInput.js +5 -8
  11. package/lib/components/atoms/icons/index.js +1 -4
  12. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +2 -2
  13. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +3 -3
  14. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +2 -2
  15. package/lib/components/molecules/AbmSection/index.js +1 -2
  16. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +2 -21
  17. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +4 -6
  18. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +5 -10
  19. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +24 -74
  20. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +13 -14
  21. package/lib/components/molecules/ChatAIModal/constants.js +2 -10
  22. package/lib/components/molecules/ChatFooter/ChatFooter.js +21 -105
  23. package/lib/components/molecules/ChatFooter/styles.js +2 -11
  24. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
  25. package/lib/components/molecules/Sidebar/Sidebar.js +32 -69
  26. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +11 -15
  27. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +56 -269
  28. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +4 -4
  29. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +2 -17
  30. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +2 -2
  31. package/lib/constants/config.js +1 -4
  32. package/lib/constants/maiaTaskPanelAccess.js +2 -2
  33. package/lib/context/global-context.js +1 -8
  34. package/lib/hooks/useAgentModel/useCreateAgent.js +10 -11
  35. package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -12
  36. package/lib/hooks/useChatManager/useChatManager.js +19 -142
  37. package/lib/hooks/useChatMessages/useChatMessages.js +1 -1
  38. package/lib/hooks/useContextMentions.js +13 -61
  39. package/lib/hooks/useEntitySearch.js +142 -273
  40. package/lib/hooks/useMentionAllowedTypes.js +11 -55
  41. package/lib/hooks/useMentionPopover.js +30 -64
  42. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  43. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +7 -16
  44. package/lib/hooks/useProjectSearch.js +28 -4
  45. package/lib/hooks/useProjectSummaryConfig.js +3 -47
  46. package/lib/hooks/useRecentClientsSearch.js +34 -4
  47. package/lib/lang/br/index.js +3 -578
  48. package/lib/lang/en/index.js +3 -578
  49. package/lib/lang/es/index.js +3 -578
  50. package/lib/lang/fr/index.js +4 -310
  51. package/lib/services/maia/Agents/createAgent.js +1 -1
  52. package/lib/services/maia/Agents/getAgentById.js +2 -3
  53. package/lib/services/maia/Agents/getAgents.js +91 -68
  54. package/lib/services/maia/Agents/updateAgent.js +1 -1
  55. package/lib/services/maia/Chats/getChatsByUserId.js +9 -13
  56. package/lib/services/maia/Orchestrator/orchestrator.js +6 -15
  57. package/lib/services/utils/validateIsMaia.js +2 -2
  58. package/lib/types/Chat.js +1 -1
  59. package/lib/types/agent.js +1 -1
  60. package/lib/types/agentModal.js +1 -1
  61. package/lib/types/contextMention.js +1 -1
  62. package/lib/types/global.d.js +1 -1
  63. package/lib/utils/contextMentionIcons.js +1 -29
  64. package/lib/utils/hitlAnalytics.js +3 -3
  65. package/lib/utils/renderContextMentions.js +4 -9
  66. package/package.json +1 -1
  67. package/lib/components/atoms/icons/RocketIcon.js +0 -31
  68. package/lib/components/atoms/icons/SkillIcon.js +0 -30
  69. package/lib/components/atoms/icons/SkillsNavIcon.js +0 -27
  70. package/lib/components/atoms/icons/WrenchIcon.js +0 -42
  71. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.js +0 -522
  72. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.styles.js +0 -234
  73. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/catalog.js +0 -437
  74. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/index.js +0 -3
  75. package/lib/components/molecules/AbmSection/AbmSkillsSection.styles.js +0 -80
  76. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.interface.js +0 -2
  77. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.js +0 -722
  78. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.styles.js +0 -165
  79. package/lib/components/molecules/AbmSection/AbmTriggersSection/index.js +0 -2
  80. package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.js +0 -486
  81. package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.styles.js +0 -184
  82. package/lib/components/molecules/ChatAIMyRoutines/index.js +0 -2
  83. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +0 -357
  84. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +0 -145
  85. package/lib/components/molecules/ChatAIMySkills/index.js +0 -2
  86. package/lib/components/molecules/SchedulesPage/SchedulesPage.js +0 -610
  87. package/lib/components/molecules/SchedulesPage/index.js +0 -2
  88. package/lib/components/molecules/SkillsPage/SkillsPage.js +0 -708
  89. package/lib/components/molecules/SkillsPage/index.js +0 -2
  90. package/lib/components/molecules/maiaSectionModalStyles.js +0 -91
  91. package/lib/components/molecules/maiaSectionUiTokens.js +0 -31
  92. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +0 -160
  93. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +0 -34
  94. package/lib/components/organisms/AbmSkillGenerateModal/index.js +0 -2
  95. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +0 -446
  96. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +0 -98
  97. package/lib/components/organisms/AbmSkillModal/index.js +0 -2
  98. package/lib/dev/DevAbmAgentModal.js +0 -114
  99. package/lib/dev/mocks/abmModalMocks.js +0 -193
  100. package/lib/hooks/useContextPinPopover.js +0 -228
  101. package/lib/services/maia/Agents/connectors.js +0 -110
  102. package/lib/services/maia/Agents/skills.js +0 -164
  103. package/lib/services/maia/Schedules/createSchedule.js +0 -39
  104. package/lib/services/maia/Schedules/deleteSchedule.js +0 -36
  105. package/lib/services/maia/Schedules/getMySchedules.js +0 -55
  106. package/lib/services/maia/Schedules/getSchedules.js +0 -58
  107. package/lib/services/maia/Schedules/index.js +0 -5
  108. package/lib/services/maia/Skills/createSkill.js +0 -39
  109. package/lib/services/maia/Skills/deleteSkill.js +0 -38
  110. package/lib/services/maia/Skills/generateSkill.js +0 -41
  111. package/lib/services/maia/Skills/getSkills.js +0 -90
  112. package/lib/services/maia/Skills/updateSkill.js +0 -39
  113. package/lib/types/agentSkill.js +0 -2
  114. package/lib/types/attachment.js +0 -2
  115. package/lib/types/skill.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, 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) {
@@ -49,10 +48,6 @@ var actions = {
49
48
  };
50
49
 
51
50
  /** Abrevia "especialista"/"especialist" → "Esp." (ES/PT) y "specialist" → "Spec." (EN) en el nombre del agente. */
52
- function abbreviateSpecialistInAgentName(agentName) {
53
- if (!agentName || typeof agentName !== 'string') return agentName;
54
- return agentName.replace(/\b(especialista|especialist)\b/gi, 'Esp.').replace(/\bspecialist\b/gi, 'Spec.');
55
- }
56
51
  var ListHistoryChat = function ListHistoryChat(_ref) {
57
52
  var chat = _ref.chat,
58
53
  _onClick = _ref.onClick,
@@ -124,7 +119,7 @@ var ListHistoryChat = function ListHistoryChat(_ref) {
124
119
  }), /*#__PURE__*/_jsx(Tooltip, {
125
120
  title: showTooltipAgent ? displayAgent + (contextName ? " - ".concat(contextName) : '') : '',
126
121
  children: /*#__PURE__*/_jsxs(SCLHCWrapperAgent, {
127
- children: [chat.agentType === 'clone' || chat.agentType === 'orchestrator' ? /*#__PURE__*/_jsx(MAIAIcon, {
122
+ children: [chat.agentType === 'clone' ? /*#__PURE__*/_jsx(MAIAIcon, {
128
123
  width: 14,
129
124
  height: 14
130
125
  }) : /*#__PURE__*/_jsx("span", {
@@ -134,7 +129,7 @@ var ListHistoryChat = function ListHistoryChat(_ref) {
134
129
  children: chat.emoji
135
130
  }), /*#__PURE__*/_jsxs(SCLHCWrapperAgentText, {
136
131
  ref: agentRef,
137
- children: [chat.agentType === 'clone' || chat.agentType === 'orchestrator' ? abbreviateSpecialistInAgentName(chat.agent) : chat.agent, chat.projectName && " - ".concat(chat.projectName)]
132
+ children: [displayAgent, contextName && " - ".concat(contextName)]
138
133
  })]
139
134
  })
140
135
  })]
@@ -203,8 +198,6 @@ export var Sidebar = function Sidebar(_ref3) {
203
198
  } : _ref3$onError,
204
199
  handleGoToHome = _ref3.handleGoToHome,
205
200
  handleOpenMarketplace = _ref3.handleOpenMarketplace,
206
- handleOpenMyRoutines = _ref3.handleOpenMyRoutines,
207
- handleOpenSkills = _ref3.handleOpenSkills,
208
201
  showNewChat = _ref3.showNewChat,
209
202
  refetchChats = _ref3.refetchChats,
210
203
  handleSetRefetchChats = _ref3.handleSetRefetchChats,
@@ -256,12 +249,9 @@ export var Sidebar = function Sidebar(_ref3) {
256
249
  var canCreateAgents = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.create);
257
250
  var hasMultiAgentsFeatureAccess = !!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
258
251
  var canViewAgents = !!(userPermissions !== null && userPermissions !== void 0 && userPermissions.view) && hasMultiAgentsFeatureAccess;
259
- var canViewSkills = canViewAgents;
260
252
  var showMarketplaceSidebarButton = !!canCreateAgents && !!window.MAIA_MARKETPLACE_MAIAKER;
261
- var showMyRoutinesButton = !!canViewAgents && !!handleOpenMyRoutines;
262
- var showMySkillsButton = !!canViewSkills && !!handleOpenSkills;
263
- var agentNavButtonCount = (showMarketplaceSidebarButton ? 1 : 0) + (canViewAgents ? 1 : 0) + (showMyRoutinesButton ? 1 : 0) + (showMySkillsButton ? 1 : 0);
264
- var showAgentsNavBlock = showMarketplaceSidebarButton || canViewAgents || showMySkillsButton;
253
+ var agentNavButtonCount = (showMarketplaceSidebarButton ? 1 : 0) + (canViewAgents ? 1 : 0);
254
+ var showAgentsNavBlock = showMarketplaceSidebarButton || canViewAgents;
265
255
  useEffect(function () {
266
256
  if (resetSelectedChatRef) {
267
257
  resetSelectedChatRef.current = function () {
@@ -339,7 +329,7 @@ export var Sidebar = function Sidebar(_ref3) {
339
329
  _context2.prev = 0;
340
330
  _context2.next = 1;
341
331
  return fetchMaia({
342
- path: "agents?agent_type=orchestrator&lang=".concat(mapCORLang(i18n.language)),
332
+ path: "agents?agent_type=clone&lang=".concat(mapCORLang(i18n.language)),
343
333
  method: 'GET'
344
334
  });
345
335
  case 1:
@@ -349,7 +339,7 @@ export var Sidebar = function Sidebar(_ref3) {
349
339
  case 2:
350
340
  data = _context2.sent;
351
341
  maiakerAgent = (data.data || []).find(function (agent) {
352
- return agent.type === 'orchestrator';
342
+ return agent.type === 'clone' && agent.entity === 'global';
353
343
  });
354
344
  if (maiakerAgent) {
355
345
  _context2.next = 3;
@@ -506,55 +496,29 @@ export var Sidebar = function Sidebar(_ref3) {
506
496
  $isOpen: isOpen,
507
497
  children: [isOpen ? /*#__PURE__*/_jsxs(SCSSidebarOpenPanel, {
508
498
  children: [/*#__PURE__*/_jsxs(SCSSidebarAgentsBlock, {
509
- children: [showAgentsNavBlock ? /*#__PURE__*/_jsxs(_Fragment, {
510
- children: [/*#__PURE__*/_jsx(SCSSidebarAgentsHeading, {
511
- children: /*#__PURE__*/_jsx(SCSSidebarAgentsHeadingText, {
512
- children: t('conversations.agentsSectionTitle')
513
- })
514
- }), /*#__PURE__*/_jsxs(SCSSidebarAgentsActions, {
515
- children: [showMarketplaceSidebarButton ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
516
- type: "button",
517
- onClick: function onClick() {
518
- eventAmplitude(EVENTS.aiChatMpOpen);
519
- handleOpenCreateAgent();
520
- },
521
- $active: agentsNavActive === 'maiaker',
522
- children: [/*#__PURE__*/_jsx(MaiaStoreIcon, {
523
- size: 16
524
- }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
525
- children: t('conversations.maiakerNav')
526
- })]
527
- }) : null, canViewAgents ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
528
- type: "button",
529
- onClick: handleOpenMarketplace,
530
- $active: agentsNavActive === 'myAgents',
531
- children: [/*#__PURE__*/_jsx(MyAgentsNavIcon, {
532
- size: 16
533
- }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
534
- children: t('conversations.myAgentsNav')
535
- })]
536
- }) : null, showMyRoutinesButton ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
537
- type: "button",
538
- onClick: handleOpenMyRoutines,
539
- $active: agentsNavActive === 'myRoutines',
540
- children: [/*#__PURE__*/_jsx(Clock, {
541
- width: "16px",
542
- height: "16px",
543
- color: "currentColor"
544
- }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
545
- children: t('conversations.myRoutinesNav')
546
- })]
547
- }) : null, showMySkillsButton ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
548
- type: "button",
549
- onClick: handleOpenSkills,
550
- $active: agentsNavActive === 'mySkills',
551
- children: [/*#__PURE__*/_jsx(SkillsNavIcon, {
552
- size: 16
553
- }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
554
- children: t('conversations.mySkillsNav')
555
- })]
556
- }) : null]
557
- })]
499
+ children: [showAgentsNavBlock ? /*#__PURE__*/_jsxs(SCSSidebarAgentsActions, {
500
+ children: [showMarketplaceSidebarButton ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
501
+ type: "button",
502
+ onClick: function onClick() {
503
+ eventAmplitude(EVENTS.aiChatMpOpen);
504
+ handleOpenCreateAgent();
505
+ },
506
+ $active: agentsNavActive === 'maiaker',
507
+ children: [/*#__PURE__*/_jsx(MaiaStoreIcon, {
508
+ size: 16
509
+ }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
510
+ children: t('conversations.maiakerNav')
511
+ })]
512
+ }) : null, canViewAgents ? /*#__PURE__*/_jsxs(SCSSidebarMaiakerNavButton, {
513
+ type: "button",
514
+ onClick: handleOpenMarketplace,
515
+ $active: agentsNavActive === 'myAgents',
516
+ children: [/*#__PURE__*/_jsx(MyAgentsNavIcon, {
517
+ size: 16
518
+ }), /*#__PURE__*/_jsx(SCSSidebarMaiakerNavLabel, {
519
+ children: t('conversations.myAgentsNav')
520
+ })]
521
+ }) : null]
558
522
  }) : null, /*#__PURE__*/_jsx(SCSSidebarConversationsHeading, {
559
523
  children: t('conversations.title')
560
524
  })]
@@ -563,7 +527,6 @@ export var Sidebar = function Sidebar(_ref3) {
563
527
  $hasChats: chats.length > 0,
564
528
  $offsetVariant: hasError ? 'error' : 'default',
565
529
  $agentNavButtonCount: agentNavButtonCount,
566
- $hasFeedback: !!selectedAgent,
567
530
  children: hasError && !chats.length ? /*#__PURE__*/_jsxs(SCSSidebarErrorStateColumn, {
568
531
  children: [/*#__PURE__*/_jsx(SCSSidebarErrorStateTop, {
569
532
  children: /*#__PURE__*/_jsx(ErrorState, {})
@@ -627,4 +590,4 @@ export var Sidebar = function Sidebar(_ref3) {
627
590
  })]
628
591
  });
629
592
  };
630
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkNVQnV0dG9uIiwiTWVudURvdHMiLCJQZW5jaWwiLCJUcmFzaCIsIlRvb2x0aXAiLCJDbG9jayIsIkVtcHR5SGlzdG9yeUljb24iLCJFcnJvclN0YXRlIiwiTUFJQUljb24iLCJNYWlhU3RvcmVJY29uIiwiTXlBZ2VudHNOYXZJY29uIiwiTmV3Q2hhdCIsIlNraWxsc05hdkljb24iLCJ1c2VSZXNpemVMaXN0ZW5lciIsInVzZUNoYXRzIiwiU2lkZWJhckNoYXRzU2tlbGV0b24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsInVzZVQiLCJPcHRpb25JdGVtIiwiRWRpdFF1ZXN0aW9uTW9kYWwiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiRXJyb3JJY29uIiwidXNlVXNlciIsIkZlZWRiYWNrQnV0dG9uIiwidXNlR2xvYmFsQ29udGV4dCIsImZldGNoTWFpYSIsIm1hcENPUkxhbmciLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJnZXRBZ2VudERpc3BsYXlOYW1lIiwiU0NMSENXcmFwcGVyIiwiU0NMSENXcmFwcGVyQWdlbnQiLCJTQ0xIQ1dyYXBwZXJBZ2VudFRleHQiLCJTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zIiwiU0NMSENXcmFwcGVyQ29udGVudCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiIsIlNDU1dyYXBwZXJOZXdDaGF0SWNvbiIsIlNDU1NpZGViYXJSb290IiwiU0NTU2lkZWJhclRvb2xiYXIiLCJTQ1NTaWRlYmFyQm9keSIsIlNDU1NpZGViYXJPcGVuUGFuZWwiLCJTQ1NTaWRlYmFyQWdlbnRzQmxvY2siLCJTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucyIsIlNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uIiwiU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCIsIlNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyIsIlNDU1NpZGViYXJDaGF0c1Njcm9sbCIsIlNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uIiwiU0NTU2lkZWJhckVycm9yU3RhdGVUb3AiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXIiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UiLCJTQ1NTaWRlYmFyTG9hZGluZ0FyZWEiLCJTQ1NTaWRlYmFyTG9hZE1vcmVSb3ciLCJTQ1NTaWRlYmFyRW1wdHlDaGF0cyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCIsIlNDU1NpZGViYXJDaGF0c0Zvb3RlciIsIlNDU1NpZGViYXJGb290ZXJBY3Rpb25zIiwiU0NTU2lkZWJhckFnZW50c0hlYWRpbmciLCJTQ1NTaWRlYmFyQWdlbnRzSGVhZGluZ1RleHQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsImFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUiLCJhZ2VudE5hbWUiLCJyZXBsYWNlIiwiTGlzdEhpc3RvcnlDaGF0IiwiX3JlZiIsImNoYXQiLCJvbkNsaWNrIiwiaXNNb2RhbE9wZW4iLCJvbk9wZW5Nb2RhbCIsIm9uQ2xvc2VNb2RhbCIsImhhbmRsZXJzIiwiaXNTZWxlY3RlZCIsImluZGV4IiwidGV4dFJlZiIsImFnZW50UmVmIiwiZGlzcGxheVRpdGxlIiwidGl0bGUiLCJkaXNwbGF5QWdlbnQiLCJhZ2VudFR5cGUiLCJhZ2VudCIsImNvbnRleHROYW1lIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwic2hvd1Rvb2x0aXAiLCJfdXNlUmVzaXplTGlzdGVuZXIyIiwic2hvd1Rvb2x0aXBBZ2VudCIsIl91c2VUIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbiIsInNldEFjdGlvbiIsIm1lbnVJdGVtcyIsImxhYmVsIiwib25DbGlja0l0ZW0iLCJjaGF0SWQiLCJJY29uIiwiZXZlbnRLZXkiLCJwbUFpTWVudUVkaXQiLCJwbUFpTWVudURlbGV0ZSIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJjaGF0RGF0YSIsImhhbmRsZVVwZGF0ZUNoYXQiLCJoYW5kbGVEZWxldGVDaGF0IiwiY2hpbGRyZW4iLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiJGluZGV4IiwicmVmIiwiY29uY2F0Iiwid2lkdGgiLCJoZWlnaHQiLCJzdHlsZSIsImZvbnRTaXplIiwiZW1vamkiLCJpY29uT25seSIsInNpemUiLCJ2YXJpYW50IiwiZXZlbnQiLCJpZCIsInBvc2l0aW9uIiwidG9wIiwicmlnaHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ6SW5kZXgiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImJvcmRlclJhZGl1cyIsImJvcmRlciIsIm1pbldpZHRoIiwibWFwIiwiX3JlZjIiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsIm9uQ2xvc2UiLCJoYW5kbGVTZXRJc09wZW5Nb2RhbCIsIlNpZGViYXIiLCJfcmVmMyIsIl91c2VyJHBlcm1pc3Npb25zIiwib25Hb1RvQ2hhdCIsIl9yZWYzJG9uRXJyb3IiLCJvbkVycm9yIiwiaGFuZGxlR29Ub0hvbWUiLCJoYW5kbGVPcGVuTWFya2V0cGxhY2UiLCJoYW5kbGVPcGVuTXlSb3V0aW5lcyIsImhhbmRsZU9wZW5Ta2lsbHMiLCJzaG93TmV3Q2hhdCIsInJlZmV0Y2hDaGF0cyIsImhhbmRsZVNldFJlZmV0Y2hDaGF0cyIsImhhc0Vycm9yIiwicmVzZXRTZWxlY3RlZENoYXRSZWYiLCJfcmVmMyRhZ2VudHNOYXZBY3RpdmUiLCJhZ2VudHNOYXZBY3RpdmUiLCJfdXNlVDIiLCJpMThuIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzT3Blbk1vZGFsIiwic2V0SXNPcGVuTW9kYWwiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkQ2hhdCIsInNldFNlbGVjdGVkQ2hhdCIsImNoYXRzRmV0Y2hlZFJlZiIsInBlbmRpbmdTZXNzaW9uc1JlZmV0Y2hSZWYiLCJjaGF0c0NvbnRhaW5lclJlZiIsInNob3VsZEZldGNoU2Vzc2lvbnMiLCJ1c2VyIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdGVkQWdlbnQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwiX3VzZUNoYXRzIiwibG9hZGluZ0NoYXRzIiwiY2hhdHMiLCJkZWxldGVDaGF0IiwidXBkYXRlQ2hhdCIsImZldGNoQ2hhdHMiLCJsaW1pdCIsIm9mZnNldCIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50cyIsImNyZWF0ZSIsImhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2VzcyIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjYW5WaWV3QWdlbnRzIiwidmlldyIsImNhblZpZXdTa2lsbHMiLCJzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uIiwiTUFJQV9NQVJLRVRQTEFDRV9NQUlBS0VSIiwic2hvd015Um91dGluZXNCdXR0b24iLCJzaG93TXlTa2lsbHNCdXR0b24iLCJhZ2VudE5hdkJ1dHRvbkNvdW50Iiwic2hvd0FnZW50c05hdkJsb2NrIiwiY3VycmVudCIsIl9yZWY0IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlT3Blbk1vZGFsIiwiaGFuZGxlQ2xvc2VNb2RhbCIsImhhbmRsZUNsaWNrT3V0c2lkZSIsInRhcmdldCIsImNsb3Nlc3QiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlVG9nZ2xlU2lkZWJhciIsImFpQ2hhdFNpZGViYXIiLCJoYW5kbGVPcGVuQ3JlYXRlQWdlbnQiLCJfcmVmNSIsIl9jYWxsZWUyIiwicmVzcG9uc2UiLCJkYXRhIiwibWFpYWtlckFnZW50IiwiX3QiLCJfY29udGV4dDIiLCJwYXRoIiwibGFuZ3VhZ2UiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImZpbmQiLCJ0eXBlIiwiYWJydXB0IiwiaGFuZGxlU2Nyb2xsIiwiX2NoYXRzQ29udGFpbmVyUmVmJGN1Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiaXNBdEJvdHRvbSIsImNvbnRhaW5lciIsImhhbmRsZU5ld0NoYXQiLCJfcmVmNiIsIl9jYWxsZWUzIiwiX2NvbnRleHQzIiwiaGFuZGxlUmVmZXRjaFNlc3Npb24iLCJzaG93TmV3Q2hhdEJ1dHRvbiIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCIkaXNPcGVuIiwiY29sb3IiLCJhaUNoYXRNcE9wZW4iLCIkYWN0aXZlIiwiJGhhc0NoYXRzIiwibGVuZ3RoIiwiJG9mZnNldFZhcmlhbnQiLCIkYWdlbnROYXZCdXR0b25Db3VudCIsIiRoYXNGZWVkYmFjayIsImNvdW50IiwiJGp1c3RpZnlCZXR3ZWVuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1NpZGViYXIvU2lkZWJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IE11dGFibGVSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvbkRvdWJsZUxlZnQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG91YmxlTGVmdCdcbmltcG9ydCB7IENVQnV0dG9uIH0gZnJvbSAnQHByb2plY3Rjb3IvYnV0dG9uL2xpYi9jb21wb25lbnRzL0NVQnV0dG9uJ1xuaW1wb3J0IHsgTWVudURvdHMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9NZW51RG90cydcbmltcG9ydCB7IFBlbmNpbCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BlbmNpbCdcbmltcG9ydCB7IFRyYXNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvVHJhc2gnXG5cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcblxuaW1wb3J0IHsgQ2xvY2sgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DbG9jaydcbmltcG9ydCB7IEVtcHR5SGlzdG9yeUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eUhpc3RvcnknXG5pbXBvcnQgeyBFcnJvclN0YXRlLCBNQUlBSWNvbiwgTWFpYVN0b3JlSWNvbiwgTXlBZ2VudHNOYXZJY29uLCBOZXdDaGF0LCBTa2lsbHNOYXZJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IHVzZUNoYXRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdHMnXG5pbXBvcnQgeyBTaWRlYmFyQ2hhdHNTa2VsZXRvbiB9IGZyb20gJy4vU2lkZWJhci5za2VsZXRvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgT3B0aW9uSXRlbSB9IGZyb20gJy4uLy4uL2F0b21zL0NhcmRNZW51L0NhcmRNZW51J1xuaW1wb3J0IHsgRWRpdFF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRWRpdFF1ZXN0aW9uTW9kYWwnXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0RlbGV0ZVF1ZXN0aW9uTW9kYWwnXG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FcnJvckljb24nXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IEZlZWRiYWNrQnV0dG9uIH0gZnJvbSAnLi4vLi4vYXRvbXMvRmVlZGJhY2tCdXR0b24nXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvY2xpZW50J1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMnXG5pbXBvcnQgeyBnZXRBZ2VudERpc3BsYXlOYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYWdlbnREaXNwbGF5TmFtZSdcbmltcG9ydCB7XG4gIFNDTEhDV3JhcHBlcixcbiAgU0NMSENXcmFwcGVyQWdlbnQsXG4gIFNDTEhDV3JhcHBlckFnZW50VGV4dCxcbiAgU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucyxcbiAgU0NMSENXcmFwcGVyQ29udGVudCxcbiAgU0NMSENXcmFwcGVyVGl0bGUsXG4gIFNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24sXG4gIFNDU1dyYXBwZXJOZXdDaGF0SWNvbixcbn0gZnJvbSAnLi9TaWRlYmFyLnN0eWxlcydcbmltcG9ydCB7XG4gIFNDU1NpZGViYXJSb290LFxuICBTQ1NTaWRlYmFyVG9vbGJhcixcbiAgU0NTU2lkZWJhckJvZHksXG4gIFNDU1NpZGViYXJPcGVuUGFuZWwsXG4gIFNDU1NpZGViYXJBZ2VudHNCbG9jayxcbiAgU0NTU2lkZWJhckFnZW50c0FjdGlvbnMsXG4gIFNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsLFxuICBTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmcsXG4gIFNDU1NpZGViYXJDaGF0c1Njcm9sbCxcbiAgU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4sXG4gIFNDU1NpZGViYXJFcnJvclN0YXRlVG9wLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXIsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlLFxuICBTQ1NTaWRlYmFyTG9hZGluZ0FyZWEsXG4gIFNDU1NpZGViYXJMb2FkTW9yZVJvdyxcbiAgU0NTU2lkZWJhckVtcHR5Q2hhdHMsXG4gIFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCxcbiAgU0NTU2lkZWJhckNoYXRzRm9vdGVyLFxuICBTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyxcbiAgU0NTU2lkZWJhckFnZW50c0hlYWRpbmcsXG4gIFNDU1NpZGViYXJBZ2VudHNIZWFkaW5nVGV4dCxcbn0gZnJvbSAnLi9TaWRlYmFyLmxheW91dC5zdHlsZXMnXG5cbmNvbnN0IGFjdGlvbnMgPSB7XG4gIGVkaXQ6IChwcm9wczogYW55KSA9PiA8RWRpdFF1ZXN0aW9uTW9kYWwgey4uLnByb3BzfSAvPixcbiAgZGVsZXRlOiAocHJvcHM6IGFueSkgPT4gPERlbGV0ZVF1ZXN0aW9uTW9kYWwgey4uLnByb3BzfSAvPixcbn1cblxuLyoqIEFicmV2aWEgXCJlc3BlY2lhbGlzdGFcIi9cImVzcGVjaWFsaXN0XCIg4oaSIFwiRXNwLlwiIChFUy9QVCkgeSBcInNwZWNpYWxpc3RcIiDihpIgXCJTcGVjLlwiIChFTikgZW4gZWwgbm9tYnJlIGRlbCBhZ2VudGUuICovXG5mdW5jdGlvbiBhYmJyZXZpYXRlU3BlY2lhbGlzdEluQWdlbnROYW1lKGFnZW50TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFhZ2VudE5hbWUgfHwgdHlwZW9mIGFnZW50TmFtZSAhPT0gJ3N0cmluZycpIHJldHVybiBhZ2VudE5hbWVcbiAgcmV0dXJuIGFnZW50TmFtZS5yZXBsYWNlKC9cXGIoZXNwZWNpYWxpc3RhfGVzcGVjaWFsaXN0KVxcYi9naSwgJ0VzcC4nKS5yZXBsYWNlKC9cXGJzcGVjaWFsaXN0XFxiL2dpLCAnU3BlYy4nKVxufVxuXG5jb25zdCBMaXN0SGlzdG9yeUNoYXQgPSAoe1xuICBjaGF0LFxuICBvbkNsaWNrLFxuICBpc01vZGFsT3BlbixcbiAgb25PcGVuTW9kYWwsXG4gIG9uQ2xvc2VNb2RhbCxcbiAgaGFuZGxlcnMsXG4gIGlzU2VsZWN0ZWQsXG4gIGluZGV4LFxufToge1xuICBjaGF0OiBhbnlcbiAgb25DbGljazogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICBpc01vZGFsT3BlbjogYm9vbGVhblxuICBvbk9wZW5Nb2RhbDogKGNoYXRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uQ2xvc2VNb2RhbDogKCkgPT4gdm9pZFxuICBoYW5kbGVyczoge1xuICAgIGhhbmRsZURlbGV0ZUNoYXQ6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgICBoYW5kbGVVcGRhdGVDaGF0OiAoY2hhdDogYW55KSA9PiB2b2lkXG4gIH1cbiAgaXNTZWxlY3RlZDogYm9vbGVhblxuICBpbmRleDogbnVtYmVyXG59KSA9PiB7XG4gIGNvbnN0IHRleHRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGFnZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBkaXNwbGF5VGl0bGUgPSB1c2VNZW1vKCgpID0+IGZvcm1hdENoYXRMaXN0VGl0bGVNZW50aW9ucyhjaGF0LnRpdGxlKSwgW2NoYXQudGl0bGVdKVxuICBjb25zdCBkaXNwbGF5QWdlbnQgPSBnZXRBZ2VudERpc3BsYXlOYW1lKGNoYXQuYWdlbnRUeXBlLCBjaGF0LmFnZW50KVxuICBjb25zdCBjb250ZXh0TmFtZSA9IGNoYXQucHJvamVjdE5hbWUgfHwgY2hhdC5jbGllbnROYW1lXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWYsIFtkaXNwbGF5VGl0bGVdKVxuICBjb25zdCB7IHNob3dUb29sdGlwOiBzaG93VG9vbHRpcEFnZW50IH0gPSB1c2VSZXNpemVMaXN0ZW5lcihhZ2VudFJlZiwgW2NoYXQuYWdlbnRdKVxuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBbYWN0aW9uLCBzZXRBY3Rpb25dID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBtZW51SXRlbXMgPSBbXG4gICAge1xuICAgICAgbGFiZWw6IHQoJ2hpc3RvcnkubWVudS5yZW5hbWUnKSxcbiAgICAgIG9uQ2xpY2tJdGVtOiAoY2hhdElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgc2V0QWN0aW9uKCdlZGl0JylcbiAgICAgICAgb25PcGVuTW9kYWwoY2hhdElkKVxuICAgICAgfSxcbiAgICAgIEljb246IFBlbmNpbCxcbiAgICAgIGV2ZW50S2V5OiBFVkVOVFMucG1BaU1lbnVFZGl0LFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6IHQoJ2hpc3RvcnkubWVudS5kZWxldGUnKSxcbiAgICAgIG9uQ2xpY2tJdGVtOiAoY2hhdElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgc2V0QWN0aW9uKCdkZWxldGUnKVxuICAgICAgICBvbk9wZW5Nb2RhbChjaGF0SWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogVHJhc2gsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RGVsZXRlLFxuICAgIH0sXG4gIF1cblxuICBjb25zdCBoYW5kbGVDb25maXJtQWN0aW9uID0gKGNoYXREYXRhOiBhbnkpID0+IHtcbiAgICBpZiAoYWN0aW9uID09PSAnZWRpdCcpIHtcbiAgICAgIGhhbmRsZXJzLmhhbmRsZVVwZGF0ZUNoYXQoY2hhdERhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIGhhbmRsZXJzLmhhbmRsZURlbGV0ZUNoYXQoY2hhdERhdGEpXG4gICAgfVxuICAgIHNldEFjdGlvbihudWxsKVxuICAgIG9uQ2xvc2VNb2RhbCgpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U0NMSENXcmFwcGVyQ29udGVudFxuICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgb25DbGljayhjaGF0KVxuICAgICAgICB9fVxuICAgICAgICBrZXk9e2Bjb252ZXJzYXRpb24tJHtjaGF0LnNlc3Npb25FeHRlcm5hbElkfWB9XG4gICAgICAgIGlzTW9kYWxPcGVuPXtpc01vZGFsT3Blbn1cbiAgICAgICAgaXNTZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgJGluZGV4PXtpbmRleH1cbiAgICAgID5cbiAgICAgICAgPFNDTEhDV3JhcHBlcj5cbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1Rvb2x0aXAgPyBkaXNwbGF5VGl0bGUgOiAnJ30+XG4gICAgICAgICAgICA8U0NMSENXcmFwcGVyVGl0bGUgcmVmPXt0ZXh0UmVmfT57ZGlzcGxheVRpdGxlIHx8IHQoJ2NvbnZlcnNhdGlvbnMuZW1wdHlMYWJlbCcpfTwvU0NMSENXcmFwcGVyVGl0bGU+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcEFnZW50ID8gZGlzcGxheUFnZW50ICsgKGNvbnRleHROYW1lID8gYCAtICR7Y29udGV4dE5hbWV9YCA6ICcnKSA6ICcnfT5cbiAgICAgICAgICAgIDxTQ0xIQ1dyYXBwZXJBZ2VudD5cbiAgICAgICAgICAgICAge2NoYXQuYWdlbnRUeXBlID09PSAnY2xvbmUnIHx8IGNoYXQuYWdlbnRUeXBlID09PSAnb3JjaGVzdHJhdG9yJyA/IChcbiAgICAgICAgICAgICAgICA8TUFJQUljb24gd2lkdGg9ezE0fSBoZWlnaHQ9ezE0fSAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGZvbnRTaXplOiAnMTRweCcgfX0+e2NoYXQuZW1vaml9PC9zcGFuPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIDxTQ0xIQ1dyYXBwZXJBZ2VudFRleHQgcmVmPXthZ2VudFJlZn0+XG4gICAgICAgICAgICAgICAge2NoYXQuYWdlbnRUeXBlID09PSAnY2xvbmUnIHx8IGNoYXQuYWdlbnRUeXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuICAgICAgICAgICAgICAgICAgPyBhYmJyZXZpYXRlU3BlY2lhbGlzdEluQWdlbnROYW1lKGNoYXQuYWdlbnQpXG4gICAgICAgICAgICAgICAgICA6IGNoYXQuYWdlbnR9XG4gICAgICAgICAgICAgICAge2NoYXQucHJvamVjdE5hbWUgJiYgYCAtICR7Y2hhdC5wcm9qZWN0TmFtZX1gfVxuICAgICAgICAgICAgICA8L1NDTEhDV3JhcHBlckFnZW50VGV4dD5cbiAgICAgICAgICAgIDwvU0NMSENXcmFwcGVyQWdlbnQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L1NDTEhDV3JhcHBlcj5cbiAgICAgICAgPFNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnM+XG4gICAgICAgICAgPENVQnV0dG9uXG4gICAgICAgICAgICBpY29uT25seVxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgb25PcGVuTW9kYWwoY2hhdC5pZClcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPE1lbnVEb3RzIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgIHtpc01vZGFsT3BlbiAmJiAhYWN0aW9uICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgZGF0YS1tb2RhbC1jb250YWluZXJcbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICB0b3A6ICczMnB4JyxcbiAgICAgICAgICAgICAgICByaWdodDogJzE2cHgnLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3doaXRlJyxcbiAgICAgICAgICAgICAgICB6SW5kZXg6IDEwMDAsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMjI0LCAyMjQsIDIyNCwgMSknLFxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTI0cHgnLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bWVudUl0ZW1zLm1hcCgoeyBsYWJlbCwgb25DbGlja0l0ZW0sIEljb24sIGV2ZW50S2V5IH0pID0+IChcbiAgICAgICAgICAgICAgICA8T3B0aW9uSXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xpY2tJdGVtKGNoYXQuaWQpfVxuICAgICAgICAgICAgICAgICAgSWNvbj17SWNvbn1cbiAgICAgICAgICAgICAgICAgIGV2ZW50S2V5PXtldmVudEtleX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucz5cbiAgICAgIDwvU0NMSENXcmFwcGVyQ29udGVudD5cbiAgICAgIHshIWFjdGlvbiAmJlxuICAgICAgICBhY3Rpb25zW2FjdGlvbl0oe1xuICAgICAgICAgIG9uQ2xvc2U6ICgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2VNb2RhbCgpXG4gICAgICAgICAgICBzZXRBY3Rpb24obnVsbClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoYXQsXG4gICAgICAgICAgaGFuZGxlcnM6IHtcbiAgICAgICAgICAgIGhhbmRsZUNvbmZpcm1BY3Rpb24sXG4gICAgICAgICAgICBoYW5kbGVTZXRJc09wZW5Nb2RhbDogb25DbG9zZU1vZGFsLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBTaWRlYmFyID0gKHtcbiAgb25Hb1RvQ2hhdCxcbiAgb25FcnJvciA9ICgpID0+IG51bGwsXG4gIGhhbmRsZUdvVG9Ib21lLFxuICBoYW5kbGVPcGVuTWFya2V0cGxhY2UsXG4gIGhhbmRsZU9wZW5NeVJvdXRpbmVzLFxuICBoYW5kbGVPcGVuU2tpbGxzLFxuICBzaG93TmV3Q2hhdCxcbiAgcmVmZXRjaENoYXRzLFxuICBoYW5kbGVTZXRSZWZldGNoQ2hhdHMsXG4gIGhhc0Vycm9yLFxuICByZXNldFNlbGVjdGVkQ2hhdFJlZixcbiAgYWdlbnRzTmF2QWN0aXZlID0gbnVsbCxcbn06IHtcbiAgb25Hb1RvQ2hhdDogKGNoYXRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgaGFuZGxlR29Ub0hvbWU6ICgpID0+IHZvaWRcbiAgaGFuZGxlT3Blbk1hcmtldHBsYWNlOiAoKSA9PiB2b2lkXG4gIGhhbmRsZU9wZW5NeVJvdXRpbmVzPzogKCkgPT4gdm9pZFxuICBoYW5kbGVPcGVuU2tpbGxzPzogKCkgPT4gdm9pZFxuICBzaG93TmV3Q2hhdDogYm9vbGVhblxuICByZWZldGNoQ2hhdHM6IGJvb2xlYW5cbiAgaGFuZGxlU2V0UmVmZXRjaENoYXRzOiAocmVmZXRjaDogYm9vbGVhbikgPT4gdm9pZFxuICBoYXNFcnJvcjogYm9vbGVhblxuICByZXNldFNlbGVjdGVkQ2hhdFJlZj86IE11dGFibGVSZWZPYmplY3Q8KCgpID0+IHZvaWQpIHwgbnVsbD5cbiAgLyoqIFJlc2FsdGEgTWFpYWtlciwgTWlzIGFnZW50ZXMsIE1pcyBydXRpbmFzIG8gTWlzIFNraWxscyAqL1xuICBhZ2VudHNOYXZBY3RpdmU/OiAnbWFpYWtlcicgfCAnbXlBZ2VudHMnIHwgJ215Um91dGluZXMnIHwgJ215U2tpbGxzJyB8IG51bGxcbn0pID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNPcGVuTW9kYWwsIHNldElzT3Blbk1vZGFsXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzZWxlY3RlZENoYXQsIHNldFNlbGVjdGVkQ2hhdF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBjaGF0c0ZldGNoZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IHBlbmRpbmdTZXNzaW9uc1JlZmV0Y2hSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGNoYXRzQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBzaG91bGRGZXRjaFNlc3Npb25zID0gaXNPcGVuXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2sgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7XG4gICAgbG9hZGluZ0NoYXRzLFxuICAgIGNoYXRzLFxuICAgIGRlbGV0ZUNoYXQsXG4gICAgdXBkYXRlQ2hhdCxcbiAgICBmZXRjaENoYXRzLFxuICAgIGxpbWl0LFxuICAgIG9mZnNldCxcbiAgICBoYXNNb3JlQ2hhdHMsXG4gICAgbG9hZE1vcmVDaGF0cyxcbiAgICBpc0xvYWRpbmdNb3JlQ2hhdHMsXG4gIH0gPSB1c2VDaGF0cyh7XG4gICAgb25FcnJvcixcbiAgfSlcblxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IGNhbkNyZWF0ZUFnZW50cyA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGVcbiAgY29uc3QgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5WaWV3QWdlbnRzID0gISF1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiYgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzXG4gIGNvbnN0IGNhblZpZXdTa2lsbHMgPSBjYW5WaWV3QWdlbnRzXG4gIGNvbnN0IHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPSAhIWNhbkNyZWF0ZUFnZW50cyAmJiAhIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVJcbiAgY29uc3Qgc2hvd015Um91dGluZXNCdXR0b24gPSAhIWNhblZpZXdBZ2VudHMgJiYgISFoYW5kbGVPcGVuTXlSb3V0aW5lc1xuICBjb25zdCBzaG93TXlTa2lsbHNCdXR0b24gPSAhIWNhblZpZXdTa2lsbHMgJiYgISFoYW5kbGVPcGVuU2tpbGxzXG4gIGNvbnN0IGFnZW50TmF2QnV0dG9uQ291bnQgPSAoKHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPyAxIDogMCkgK1xuICAgIChjYW5WaWV3QWdlbnRzID8gMSA6IDApICtcbiAgICAoc2hvd015Um91dGluZXNCdXR0b24gPyAxIDogMCkgK1xuICAgIChzaG93TXlTa2lsbHNCdXR0b24gPyAxIDogMCkpIGFzIDAgfCAxIHwgMiB8IDMgfCA0XG4gIGNvbnN0IHNob3dBZ2VudHNOYXZCbG9jayA9IHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gfHwgY2FuVmlld0FnZW50cyB8fCBzaG93TXlTa2lsbHNCdXR0b25cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZikge1xuICAgICAgcmVzZXRTZWxlY3RlZENoYXRSZWYuY3VycmVudCA9ICgpID0+IHNldFNlbGVjdGVkQ2hhdChudWxsKVxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2V0U2VsZWN0ZWRDaGF0UmVmKSB7XG4gICAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICB9XG4gICAgfVxuICB9LCBbcmVzZXRTZWxlY3RlZENoYXRSZWZdKVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUNoYXQgPSBhc3luYyAoY2hhdDogYW55KSA9PiB7XG4gICAgZGVsZXRlQ2hhdChjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgaGFuZGxlR29Ub0hvbWUoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlVXBkYXRlQ2hhdCA9IChjaGF0OiBhbnkpID0+IHtcbiAgICB1cGRhdGVDaGF0KGNoYXQpXG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU9wZW5Nb2RhbCA9IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCAmJiBpc09wZW5Nb2RhbCAhPT0gY2hhdElkKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChjaGF0SWQpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmIChpc09wZW5Nb2RhbCAmJiAhKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS5jbG9zZXN0KCdbZGF0YS1tb2RhbC1jb250YWluZXJdJykpIHtcbiAgICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgIH1cbiAgfSwgW2lzT3Blbk1vZGFsXSlcblxuICBjb25zdCBoYW5kbGVUb2dnbGVTaWRlYmFyID0gKCkgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFNpZGViYXIsIHsgYWN0aW9uOiBpc09wZW4gPyAnY2xvc2UnIDogJ29wZW4nIH0pXG4gICAgc2V0SXNPcGVuKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuQ3JlYXRlQWdlbnQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICAgICAgcGF0aDogYGFnZW50cz9hZ2VudF90eXBlPW9yY2hlc3RyYXRvciZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgIGNvbnN0IG1haWFrZXJBZ2VudCA9IChkYXRhLmRhdGEgfHwgW10pLmZpbmQoKGFnZW50OiBhbnkpID0+IGFnZW50LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InKVxuXG4gICAgICBpZiAoIW1haWFrZXJBZ2VudCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgc2V0UHJvamVjdChudWxsKVxuICAgICAgc2V0Q2xpZW50Py4obnVsbClcbiAgICAgIHNldFRhc2sobnVsbClcbiAgICAgIHNlbGVjdEFnZW50KG1haWFrZXJBZ2VudClcbiAgICAgIGhhbmRsZUdvVG9Ib21lKClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcigpXG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNob3VsZEZldGNoU2Vzc2lvbnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoIWNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50KSB7XG4gICAgICBjaGF0c0ZldGNoZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGZldGNoQ2hhdHMoeyBsaW1pdCwgb2Zmc2V0IH0pXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKHBlbmRpbmdTZXNzaW9uc1JlZmV0Y2hSZWYuY3VycmVudCB8fCByZWZldGNoQ2hhdHMpIHtcbiAgICAgIHBlbmRpbmdTZXNzaW9uc1JlZmV0Y2hSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBmZXRjaENoYXRzKHsgbGltaXQsIG9mZnNldCB9KVxuICAgICAgaWYgKHJlZmV0Y2hDaGF0cykge1xuICAgICAgICBoYW5kbGVTZXRSZWZldGNoQ2hhdHMoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc2hvdWxkRmV0Y2hTZXNzaW9ucywgcmVmZXRjaENoYXRzLCBoYW5kbGVTZXRSZWZldGNoQ2hhdHMsIGZldGNoQ2hhdHMsIGxpbWl0LCBvZmZzZXRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgaWYgKCFjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50IHx8ICFoYXNNb3JlQ2hhdHMgfHwgaXNMb2FkaW5nTW9yZUNoYXRzIHx8IGhhc0Vycm9yKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICAgIGNvbnN0IGlzQXRCb3R0b20gPSBzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQgPj0gc2Nyb2xsSGVpZ2h0IC0gMTBcblxuICAgICAgaWYgKGlzQXRCb3R0b20pIHtcbiAgICAgICAgbG9hZE1vcmVDaGF0cygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29udGFpbmVyID0gY2hhdHNDb250YWluZXJSZWYuY3VycmVudFxuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtoYXNNb3JlQ2hhdHMsIGlzTG9hZGluZ01vcmVDaGF0cywgbG9hZE1vcmVDaGF0cywgaGFzRXJyb3JdKVxuXG4gIGNvbnN0IGhhbmRsZU5ld0NoYXQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIH1cbiAgICBzZXRTZWxlY3RlZENoYXQobnVsbClcbiAgICBpZiAoc2hvdWxkRmV0Y2hTZXNzaW9ucykge1xuICAgICAgYXdhaXQgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQ6IDAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgcGVuZGluZ1Nlc3Npb25zUmVmZXRjaFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIH1cbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVJlZmV0Y2hTZXNzaW9uID0gKCkgPT4ge1xuICAgICAgaWYgKHNob3VsZEZldGNoU2Vzc2lvbnMpIHtcbiAgICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0OiAyMCwgb2Zmc2V0OiAwIH0pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgcGVuZGluZ1Nlc3Npb25zUmVmZXRjaFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdyZWZldGNoLXNlc3Npb24nLCBoYW5kbGVSZWZldGNoU2Vzc2lvbilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVmZXRjaC1zZXNzaW9uJywgaGFuZGxlUmVmZXRjaFNlc3Npb24pXG4gICAgfVxuICB9LCBbc2hvdWxkRmV0Y2hTZXNzaW9ucywgZmV0Y2hDaGF0c10pXG5cbiAgY29uc3Qgc2hvd05ld0NoYXRCdXR0b24gPVxuICAgICFzaG93TmV3Q2hhdCAmJlxuICAgICFoYXNFcnJvciAmJlxuICAgICFsb2FkaW5nQ2hhdHMgJiZcbiAgICAoKHVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpIHx8XG4gICAgICAoIXVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaXNfZGVsZXRlZCAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpKVxuXG4gIHJldHVybiAoXG4gICAgPFNDU1NpZGViYXJSb290ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICA8U0NTU2lkZWJhclRvb2xiYXIgJGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzT3BlbiA/IHQoJ2NvbnZlcnNhdGlvbnMuY29sbGFwc2UnKSA6IHQoJ2NvbnZlcnNhdGlvbnMuZXhwYW5kJyl9PlxuICAgICAgICAgIDxTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZVNpZGViYXJ9IGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgICAgIDxDaGV2cm9uRG91YmxlTGVmdCBjb2xvcj1cInJnYmEoMTAyLCAxMDIsIDEwMiwgMSlcIiB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgPC9TQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uPlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIHtzaG93TmV3Q2hhdEJ1dHRvbiA/IChcbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY29udmVyc2F0aW9ucy5uZXdDaGF0Jyl9PlxuICAgICAgICAgICAgPFNDU1dyYXBwZXJOZXdDaGF0SWNvbiBvbkNsaWNrPXtoYW5kbGVOZXdDaGF0fT5cbiAgICAgICAgICAgICAgPE5ld0NoYXQgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgPC9TQ1NXcmFwcGVyTmV3Q2hhdEljb24+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU0NTU2lkZWJhclRvb2xiYXI+XG4gICAgICA8U0NTU2lkZWJhckJvZHkgJGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAge2lzT3BlbiA/IChcbiAgICAgICAgICA8U0NTU2lkZWJhck9wZW5QYW5lbD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQWdlbnRzQmxvY2s+XG4gICAgICAgICAgICAgIHtzaG93QWdlbnRzTmF2QmxvY2sgPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQWdlbnRzSGVhZGluZz5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJBZ2VudHNIZWFkaW5nVGV4dD57dCgnY29udmVyc2F0aW9ucy5hZ2VudHNTZWN0aW9uVGl0bGUnKX08L1NDU1NpZGViYXJBZ2VudHNIZWFkaW5nVGV4dD5cbiAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckFnZW50c0hlYWRpbmc+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0FjdGlvbnM+XG4gICAgICAgICAgICAgICAgICAgIHtzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRNcE9wZW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DcmVhdGVBZ2VudCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbWFpYWtlcid9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD57dCgnY29udmVyc2F0aW9ucy5tYWlha2VyTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICB7Y2FuVmlld0FnZW50cyA/IChcbiAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlT3Blbk1hcmtldHBsYWNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZT17YWdlbnRzTmF2QWN0aXZlID09PSAnbXlBZ2VudHMnfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxNeUFnZW50c05hdkljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD57dCgnY29udmVyc2F0aW9ucy5teUFnZW50c05hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAge3Nob3dNeVJvdXRpbmVzQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVPcGVuTXlSb3V0aW5lc31cbiAgICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ215Um91dGluZXMnfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDbG9jayB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9XCJjdXJyZW50Q29sb3JcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubXlSb3V0aW5lc05hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAge3Nob3dNeVNraWxsc0J1dHRvbiA/IChcbiAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlT3BlblNraWxsc31cbiAgICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ215U2tpbGxzJ31cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2tpbGxzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm15U2tpbGxzTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmc+e3QoJ2NvbnZlcnNhdGlvbnMudGl0bGUnKX08L1NDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZz5cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c1Njcm9sbFxuICAgICAgICAgICAgICByZWY9e2NoYXRzQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAkaGFzQ2hhdHM9e2NoYXRzLmxlbmd0aCA+IDB9XG4gICAgICAgICAgICAgICRvZmZzZXRWYXJpYW50PXtoYXNFcnJvciA/ICdlcnJvcicgOiAnZGVmYXVsdCd9XG4gICAgICAgICAgICAgICRhZ2VudE5hdkJ1dHRvbkNvdW50PXthZ2VudE5hdkJ1dHRvbkNvdW50fVxuICAgICAgICAgICAgICAkaGFzRmVlZGJhY2s9eyEhc2VsZWN0ZWRBZ2VudH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2hhc0Vycm9yICYmICFjaGF0cy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvclN0YXRlVG9wPlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JTdGF0ZSAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JTdGF0ZVRvcD5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXI+XG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgICA8RXJyb3JJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXA+XG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPnt0KCdjb252ZXJzYXRpb25zLmVycm9yJyl9PC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPlxuICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXI+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JTdGF0ZUNvbHVtbj5cbiAgICAgICAgICAgICAgKSA6IGxvYWRpbmdDaGF0cyA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckxvYWRpbmdBcmVhPlxuICAgICAgICAgICAgICAgICAgPFNpZGViYXJDaGF0c1NrZWxldG9uIC8+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTG9hZGluZ0FyZWE+XG4gICAgICAgICAgICAgICkgOiBjaGF0cy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIHtjaGF0cy5tYXAoKGNoYXQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPExpc3RIaXN0b3J5Q2hhdFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjaGF0LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhdD17Y2hhdH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NoYXREYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZENoYXQoY2hhdERhdGEuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uR29Ub0NoYXQoY2hhdERhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgaXNNb2RhbE9wZW49e2lzT3Blbk1vZGFsID09PSBjaGF0LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25PcGVuTW9kYWw9e2hhbmRsZU9wZW5Nb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2VNb2RhbD17aGFuZGxlQ2xvc2VNb2RhbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZURlbGV0ZUNoYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVVwZGF0ZUNoYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c2VsZWN0ZWRDaGF0ID09PSBjaGF0LnNlc3Npb25FeHRlcm5hbElkfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ01vcmVDaGF0cyAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTG9hZE1vcmVSb3c+XG4gICAgICAgICAgICAgICAgICAgICAgPFNpZGViYXJDaGF0c1NrZWxldG9uIGNvdW50PXsyfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJMb2FkTW9yZVJvdz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFbXB0eUNoYXRzPlxuICAgICAgICAgICAgICAgICAgPEVtcHR5SGlzdG9yeUljb24gLz5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQ+e3QoJ2NvbnZlcnNhdGlvbnMuZW1wdHknKX08L1NDU1NpZGViYXJFbXB0eUNoYXRzVGV4dD5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFbXB0eUNoYXRzPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQ2hhdHNTY3JvbGw+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckNoYXRzRm9vdGVyPlxuICAgICAgICAgICAgICB7aGFzRXJyb3IgJiYgY2hhdHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXI+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXA+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yQmFubmVySWNvbldyYXA+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZT57dCgnY29udmVyc2F0aW9ucy5lcnJvcicpfTwvU0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZT5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1NDU1NpZGViYXJDaGF0c0Zvb3Rlcj5cbiAgICAgICAgICA8L1NDU1NpZGViYXJPcGVuUGFuZWw+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8U0NTU2lkZWJhckZvb3RlckFjdGlvbnMgJGlzT3Blbj17aXNPcGVufSAkanVzdGlmeUJldHdlZW49eyEhc2VsZWN0ZWRBZ2VudH0+XG4gICAgICAgICAge3NlbGVjdGVkQWdlbnQgPyA8RmVlZGJhY2tCdXR0b24gc2VsZWN0ZWRBZ2VudD17c2VsZWN0ZWRBZ2VudH0gaXNPcGVuPXtpc09wZW59IC8+IDogbnVsbH1cbiAgICAgICAgPC9TQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucz5cbiAgICAgIDwvU0NTU2lkZWJhckJvZHk+XG4gICAgPC9TQ1NTaWRlYmFyUm9vdD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUEyQkEsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDOUUsU0FBU0MsaUJBQWlCLFFBQVEsb0RBQW9EO0FBQ3RGLFNBQVNDLFFBQVEsUUFBUSw0Q0FBNEM7QUFDckUsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFFOUQsU0FBU0MsT0FBTyxRQUFRLDhD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
593
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkNVQnV0dG9uIiwiTWVudURvdHMiLCJQZW5jaWwiLCJUcmFzaCIsIlRvb2x0aXAiLCJFbXB0eUhpc3RvcnlJY29uIiwidXNlUmVzaXplTGlzdGVuZXIiLCJ1c2VDaGF0cyIsIlNpZGViYXJDaGF0c1NrZWxldG9uIiwiRXJyb3JTdGF0ZSIsIk1BSUFJY29uIiwiTWFpYVN0b3JlSWNvbiIsIk15QWdlbnRzTmF2SWNvbiIsIk5ld0NoYXQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsInVzZVQiLCJPcHRpb25JdGVtIiwiRWRpdFF1ZXN0aW9uTW9kYWwiLCJEZWxldGVRdWVzdGlvbk1vZGFsIiwiRXJyb3JJY29uIiwidXNlVXNlciIsIkZlZWRiYWNrQnV0dG9uIiwidXNlR2xvYmFsQ29udGV4dCIsImZldGNoTWFpYSIsIm1hcENPUkxhbmciLCJmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMiLCJnZXRBZ2VudERpc3BsYXlOYW1lIiwiU0NMSENXcmFwcGVyIiwiU0NMSENXcmFwcGVyQWdlbnQiLCJTQ0xIQ1dyYXBwZXJBZ2VudFRleHQiLCJTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zIiwiU0NMSENXcmFwcGVyQ29udGVudCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiIsIlNDU1dyYXBwZXJOZXdDaGF0SWNvbiIsIlNDU1NpZGViYXJSb290IiwiU0NTU2lkZWJhclRvb2xiYXIiLCJTQ1NTaWRlYmFyQm9keSIsIlNDU1NpZGViYXJPcGVuUGFuZWwiLCJTQ1NTaWRlYmFyQWdlbnRzQmxvY2siLCJTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucyIsIlNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uIiwiU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCIsIlNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyIsIlNDU1NpZGViYXJDaGF0c1Njcm9sbCIsIlNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uIiwiU0NTU2lkZWJhckVycm9yU3RhdGVUb3AiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXIiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UiLCJTQ1NTaWRlYmFyTG9hZGluZ0FyZWEiLCJTQ1NTaWRlYmFyTG9hZE1vcmVSb3ciLCJTQ1NTaWRlYmFyRW1wdHlDaGF0cyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCIsIlNDU1NpZGViYXJDaGF0c0Zvb3RlciIsIlNDU1NpZGViYXJGb290ZXJBY3Rpb25zIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiYWN0aW9ucyIsImVkaXQiLCJwcm9wcyIsIl9vYmplY3RTcHJlYWQiLCJkZWxldGUiLCJMaXN0SGlzdG9yeUNoYXQiLCJfcmVmIiwiY2hhdCIsIm9uQ2xpY2siLCJpc01vZGFsT3BlbiIsIm9uT3Blbk1vZGFsIiwib25DbG9zZU1vZGFsIiwiaGFuZGxlcnMiLCJpc1NlbGVjdGVkIiwiaW5kZXgiLCJ0ZXh0UmVmIiwiYWdlbnRSZWYiLCJkaXNwbGF5VGl0bGUiLCJ0aXRsZSIsImRpc3BsYXlBZ2VudCIsImFnZW50VHlwZSIsImFnZW50IiwiY29udGV4dE5hbWUiLCJwcm9qZWN0TmFtZSIsImNsaWVudE5hbWUiLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJzaG93VG9vbHRpcCIsIl91c2VSZXNpemVMaXN0ZW5lcjIiLCJzaG93VG9vbHRpcEFnZW50IiwiX3VzZVQiLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWN0aW9uIiwic2V0QWN0aW9uIiwibWVudUl0ZW1zIiwibGFiZWwiLCJvbkNsaWNrSXRlbSIsImNoYXRJZCIsIkljb24iLCJldmVudEtleSIsInBtQWlNZW51RWRpdCIsInBtQWlNZW51RGVsZXRlIiwiaGFuZGxlQ29uZmlybUFjdGlvbiIsImNoYXREYXRhIiwiaGFuZGxlVXBkYXRlQ2hhdCIsImhhbmRsZURlbGV0ZUNoYXQiLCJjaGlsZHJlbiIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCIkaW5kZXgiLCJyZWYiLCJjb25jYXQiLCJ3aWR0aCIsImhlaWdodCIsInN0eWxlIiwiZm9udFNpemUiLCJlbW9qaSIsImljb25Pbmx5Iiwic2l6ZSIsInZhcmlhbnQiLCJldmVudCIsImlkIiwicG9zaXRpb24iLCJ0b3AiLCJyaWdodCIsImJhY2tncm91bmRDb2xvciIsInpJbmRleCIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyIiwibWluV2lkdGgiLCJtYXAiLCJfcmVmMiIsInNlc3Npb25FeHRlcm5hbElkIiwib25DbG9zZSIsImhhbmRsZVNldElzT3Blbk1vZGFsIiwiU2lkZWJhciIsIl9yZWYzIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkdvVG9DaGF0IiwiX3JlZjMkb25FcnJvciIsIm9uRXJyb3IiLCJoYW5kbGVHb1RvSG9tZSIsImhhbmRsZU9wZW5NYXJrZXRwbGFjZSIsInNob3dOZXdDaGF0IiwicmVmZXRjaENoYXRzIiwiaGFuZGxlU2V0UmVmZXRjaENoYXRzIiwiaGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsIl9yZWYzJGFnZW50c05hdkFjdGl2ZSIsImFnZW50c05hdkFjdGl2ZSIsIl91c2VUMiIsImkxOG4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzT3BlbiIsInNldElzT3BlbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNPcGVuTW9kYWwiLCJzZXRJc09wZW5Nb2RhbCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2VsZWN0ZWRDaGF0Iiwic2V0U2VsZWN0ZWRDaGF0IiwiY2hhdHNGZXRjaGVkUmVmIiwicGVuZGluZ1Nlc3Npb25zUmVmZXRjaFJlZiIsImNoYXRzQ29udGFpbmVyUmVmIiwic2hvdWxkRmV0Y2hTZXNzaW9ucyIsInVzZXIiLCJldmVudEFtcGxpdHVkZSIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsInNldENsaWVudCIsInNldFRhc2siLCJfdXNlQ2hhdHMiLCJsb2FkaW5nQ2hhdHMiLCJjaGF0cyIsImRlbGV0ZUNoYXQiLCJ1cGRhdGVDaGF0IiwiZmV0Y2hDaGF0cyIsImxpbWl0Iiwib2Zmc2V0IiwiaGFzTW9yZUNoYXRzIiwibG9hZE1vcmVDaGF0cyIsImlzTG9hZGluZ01vcmVDaGF0cyIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY2FuQ3JlYXRlQWdlbnRzIiwiY3JlYXRlIiwiaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNhblZpZXdBZ2VudHMiLCJ2aWV3Iiwic2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiIsIk1BSUFfTUFSS0VUUExBQ0VfTUFJQUtFUiIsImFnZW50TmF2QnV0dG9uQ291bnQiLCJzaG93QWdlbnRzTmF2QmxvY2siLCJjdXJyZW50IiwiX3JlZjQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVPcGVuTW9kYWwiLCJoYW5kbGVDbG9zZU1vZGFsIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwidGFyZ2V0IiwiY2xvc2VzdCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVUb2dnbGVTaWRlYmFyIiwiYWlDaGF0U2lkZWJhciIsImhhbmRsZU9wZW5DcmVhdGVBZ2VudCIsIl9yZWY1IiwiX2NhbGxlZTIiLCJyZXNwb25zZSIsImRhdGEiLCJtYWlha2VyQWdlbnQiLCJfdCIsIl9jb250ZXh0MiIsInBhdGgiLCJsYW5ndWFnZSIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwiZmluZCIsInR5cGUiLCJlbnRpdHkiLCJhYnJ1cHQiLCJoYW5kbGVTY3JvbGwiLCJfY2hhdHNDb250YWluZXJSZWYkY3UiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc0F0Qm90dG9tIiwiY29udGFpbmVyIiwiaGFuZGxlTmV3Q2hhdCIsIl9yZWY2IiwiX2NhbGxlZTMiLCJfY29udGV4dDMiLCJoYW5kbGVSZWZldGNoU2Vzc2lvbiIsInNob3dOZXdDaGF0QnV0dG9uIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsIiRpc09wZW4iLCJjb2xvciIsImFpQ2hhdE1wT3BlbiIsIiRhY3RpdmUiLCIkaGFzQ2hhdHMiLCJsZW5ndGgiLCIkb2Zmc2V0VmFyaWFudCIsIiRhZ2VudE5hdkJ1dHRvbkNvdW50IiwiY291bnQiLCIkanVzdGlmeUJldHdlZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvU2lkZWJhci9TaWRlYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvdyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgTXV0YWJsZVJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGV2cm9uRG91YmxlTGVmdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3VibGVMZWZ0J1xuaW1wb3J0IHsgQ1VCdXR0b24gfSBmcm9tICdAcHJvamVjdGNvci9idXR0b24vbGliL2NvbXBvbmVudHMvQ1VCdXR0b24nXG5pbXBvcnQgeyBNZW51RG90cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL01lbnVEb3RzJ1xuaW1wb3J0IHsgUGVuY2lsIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGVuY2lsJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuXG5pbXBvcnQgeyBFbXB0eUhpc3RvcnlJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRW1wdHlIaXN0b3J5J1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyB1c2VDaGF0cyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNoYXRzJ1xuaW1wb3J0IHsgU2lkZWJhckNoYXRzU2tlbGV0b24gfSBmcm9tICcuL1NpZGViYXIuc2tlbGV0b24nXG5pbXBvcnQgeyBFcnJvclN0YXRlLCBNQUlBSWNvbiwgTWFpYVN0b3JlSWNvbiwgTXlBZ2VudHNOYXZJY29uLCBOZXdDaGF0IH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IE9wdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9hdG9tcy9DYXJkTWVudS9DYXJkTWVudSdcbmltcG9ydCB7IEVkaXRRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0VkaXRRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRXJyb3JJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRXJyb3JJY29uJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBGZWVkYmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0ZlZWRiYWNrQnV0dG9uJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL2NsaWVudCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuaW1wb3J0IHsgZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVuZGVyQ29udGV4dE1lbnRpb25zJ1xuaW1wb3J0IHsgZ2V0QWdlbnREaXNwbGF5TmFtZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FnZW50RGlzcGxheU5hbWUnXG5pbXBvcnQge1xuICBTQ0xIQ1dyYXBwZXIsXG4gIFNDTEhDV3JhcHBlckFnZW50LFxuICBTQ0xIQ1dyYXBwZXJBZ2VudFRleHQsXG4gIFNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnMsXG4gIFNDTEhDV3JhcHBlckNvbnRlbnQsXG4gIFNDTEhDV3JhcHBlclRpdGxlLFxuICBTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uLFxuICBTQ1NXcmFwcGVyTmV3Q2hhdEljb24sXG59IGZyb20gJy4vU2lkZWJhci5zdHlsZXMnXG5pbXBvcnQge1xuICBTQ1NTaWRlYmFyUm9vdCxcbiAgU0NTU2lkZWJhclRvb2xiYXIsXG4gIFNDU1NpZGViYXJCb2R5LFxuICBTQ1NTaWRlYmFyT3BlblBhbmVsLFxuICBTQ1NTaWRlYmFyQWdlbnRzQmxvY2ssXG4gIFNDU1NpZGViYXJBZ2VudHNBY3Rpb25zLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbixcbiAgU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbCxcbiAgU0NTU2lkZWJhckNvbnZlcnNhdGlvbnNIZWFkaW5nLFxuICBTQ1NTaWRlYmFyQ2hhdHNTY3JvbGwsXG4gIFNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uLFxuICBTQ1NTaWRlYmFyRXJyb3JTdGF0ZVRvcCxcbiAgU0NTU2lkZWJhckVycm9yQmFubmVyLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcCxcbiAgU0NTU2lkZWJhckVycm9yQmFubmVyTWVzc2FnZSxcbiAgU0NTU2lkZWJhckxvYWRpbmdBcmVhLFxuICBTQ1NTaWRlYmFyTG9hZE1vcmVSb3csXG4gIFNDU1NpZGViYXJFbXB0eUNoYXRzLFxuICBTQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQsXG4gIFNDU1NpZGViYXJDaGF0c0Zvb3RlcixcbiAgU0NTU2lkZWJhckZvb3RlckFjdGlvbnMsXG59IGZyb20gJy4vU2lkZWJhci5sYXlvdXQuc3R5bGVzJ1xuXG5jb25zdCBhY3Rpb25zID0ge1xuICBlZGl0OiAocHJvcHM6IGFueSkgPT4gPEVkaXRRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG4gIGRlbGV0ZTogKHByb3BzOiBhbnkpID0+IDxEZWxldGVRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG59XG5cbi8qKiBBYnJldmlhIFwiZXNwZWNpYWxpc3RhXCIvXCJlc3BlY2lhbGlzdFwiIOKGkiBcIkVzcC5cIiAoRVMvUFQpIHkgXCJzcGVjaWFsaXN0XCIg4oaSIFwiU3BlYy5cIiAoRU4pIGVuIGVsIG5vbWJyZSBkZWwgYWdlbnRlLiAqL1xuY29uc3QgTGlzdEhpc3RvcnlDaGF0ID0gKHtcbiAgY2hhdCxcbiAgb25DbGljayxcbiAgaXNNb2RhbE9wZW4sXG4gIG9uT3Blbk1vZGFsLFxuICBvbkNsb3NlTW9kYWwsXG4gIGhhbmRsZXJzLFxuICBpc1NlbGVjdGVkLFxuICBpbmRleCxcbn06IHtcbiAgY2hhdDogYW55XG4gIG9uQ2xpY2s6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgaXNNb2RhbE9wZW46IGJvb2xlYW5cbiAgb25PcGVuTW9kYWw6IChjaGF0SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkNsb3NlTW9kYWw6ICgpID0+IHZvaWRcbiAgaGFuZGxlcnM6IHtcbiAgICBoYW5kbGVEZWxldGVDaGF0OiAoY2hhdDogYW55KSA9PiB2b2lkXG4gICAgaGFuZGxlVXBkYXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICB9XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW5cbiAgaW5kZXg6IG51bWJlclxufSkgPT4ge1xuICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBhZ2VudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgZGlzcGxheVRpdGxlID0gdXNlTWVtbygoKSA9PiBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMoY2hhdC50aXRsZSksIFtjaGF0LnRpdGxlXSlcbiAgY29uc3QgZGlzcGxheUFnZW50ID0gZ2V0QWdlbnREaXNwbGF5TmFtZShjaGF0LmFnZW50VHlwZSwgY2hhdC5hZ2VudClcbiAgY29uc3QgY29udGV4dE5hbWUgPSBjaGF0LnByb2plY3ROYW1lIHx8IGNoYXQuY2xpZW50TmFtZVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbZGlzcGxheVRpdGxlXSlcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBBZ2VudCB9ID0gdXNlUmVzaXplTGlzdGVuZXIoYWdlbnRSZWYsIFtjaGF0LmFnZW50XSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgW2FjdGlvbiwgc2V0QWN0aW9uXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgbWVudUl0ZW1zID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUucmVuYW1lJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZWRpdCcpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBQZW5jaWwsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RWRpdCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUuZGVsZXRlJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZGVsZXRlJylcbiAgICAgICAgb25PcGVuTW9kYWwoY2hhdElkKVxuICAgICAgfSxcbiAgICAgIEljb246IFRyYXNoLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudURlbGV0ZSxcbiAgICB9LFxuICBdXG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybUFjdGlvbiA9IChjaGF0RGF0YTogYW55KSA9PiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2VkaXQnKSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVVcGRhdGVDaGF0KGNoYXREYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVEZWxldGVDaGF0KGNoYXREYXRhKVxuICAgIH1cbiAgICBzZXRBY3Rpb24obnVsbClcbiAgICBvbkNsb3NlTW9kYWwoKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNDTEhDV3JhcHBlckNvbnRlbnRcbiAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIG9uQ2xpY2soY2hhdClcbiAgICAgICAgfX1cbiAgICAgICAga2V5PXtgY29udmVyc2F0aW9uLSR7Y2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1gfVxuICAgICAgICBpc01vZGFsT3Blbj17aXNNb2RhbE9wZW59XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICRpbmRleD17aW5kZXh9XG4gICAgICA+XG4gICAgICAgIDxTQ0xIQ1dyYXBwZXI+XG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUb29sdGlwID8gZGlzcGxheVRpdGxlIDogJyd9PlxuICAgICAgICAgICAgPFNDTEhDV3JhcHBlclRpdGxlIHJlZj17dGV4dFJlZn0+e2Rpc3BsYXlUaXRsZSB8fCB0KCdjb252ZXJzYXRpb25zLmVtcHR5TGFiZWwnKX08L1NDTEhDV3JhcHBlclRpdGxlPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1Rvb2x0aXBBZ2VudCA/IGRpc3BsYXlBZ2VudCArIChjb250ZXh0TmFtZSA/IGAgLSAke2NvbnRleHROYW1lfWAgOiAnJykgOiAnJ30+XG4gICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnQ+XG4gICAgICAgICAgICAgIHtjaGF0LmFnZW50VHlwZSA9PT0gJ2Nsb25lJyA/IChcbiAgICAgICAgICAgICAgICA8TUFJQUljb24gd2lkdGg9ezE0fSBoZWlnaHQ9ezE0fSAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGZvbnRTaXplOiAnMTRweCcgfX0+e2NoYXQuZW1vaml9PC9zcGFuPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIDxTQ0xIQ1dyYXBwZXJBZ2VudFRleHQgcmVmPXthZ2VudFJlZn0+XG4gICAgICAgICAgICAgICAge2Rpc3BsYXlBZ2VudH1cbiAgICAgICAgICAgICAgICB7Y29udGV4dE5hbWUgJiYgYCAtICR7Y29udGV4dE5hbWV9YH1cbiAgICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJBZ2VudFRleHQ+XG4gICAgICAgICAgICA8L1NDTEhDV3JhcHBlckFnZW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9TQ0xIQ1dyYXBwZXI+XG4gICAgICAgIDxTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zPlxuICAgICAgICAgIDxDVUJ1dHRvblxuICAgICAgICAgICAgaWNvbk9ubHlcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgIG9uT3Blbk1vZGFsKGNoYXQuaWQpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxNZW51RG90cyB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICB7aXNNb2RhbE9wZW4gJiYgIWFjdGlvbiAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGRhdGEtbW9kYWwtY29udGFpbmVyXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgdG9wOiAnMzJweCcsXG4gICAgICAgICAgICAgICAgcmlnaHQ6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgekluZGV4OiAxMDAwLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDIyNCwgMjI0LCAyMjQsIDEpJyxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzEyNHB4JyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge21lbnVJdGVtcy5tYXAoKHsgbGFiZWwsIG9uQ2xpY2tJdGVtLCBJY29uLCBldmVudEtleSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPE9wdGlvbkl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17bGFiZWx9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrSXRlbShjaGF0LmlkKX1cbiAgICAgICAgICAgICAgICAgIEljb249e0ljb259XG4gICAgICAgICAgICAgICAgICBldmVudEtleT17ZXZlbnRLZXl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnM+XG4gICAgICA8L1NDTEhDV3JhcHBlckNvbnRlbnQ+XG4gICAgICB7ISFhY3Rpb24gJiZcbiAgICAgICAgYWN0aW9uc1thY3Rpb25dKHtcbiAgICAgICAgICBvbkNsb3NlOiAoKSA9PiB7XG4gICAgICAgICAgICBvbkNsb3NlTW9kYWwoKVxuICAgICAgICAgICAgc2V0QWN0aW9uKG51bGwpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjaGF0LFxuICAgICAgICAgIGhhbmRsZXJzOiB7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uLFxuICAgICAgICAgICAgaGFuZGxlU2V0SXNPcGVuTW9kYWw6IG9uQ2xvc2VNb2RhbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KX1cbiAgICA8Lz5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgU2lkZWJhciA9ICh7XG4gIG9uR29Ub0NoYXQsXG4gIG9uRXJyb3IgPSAoKSA9PiBudWxsLFxuICBoYW5kbGVHb1RvSG9tZSxcbiAgaGFuZGxlT3Blbk1hcmtldHBsYWNlLFxuICBzaG93TmV3Q2hhdCxcbiAgcmVmZXRjaENoYXRzLFxuICBoYW5kbGVTZXRSZWZldGNoQ2hhdHMsXG4gIGhhc0Vycm9yLFxuICByZXNldFNlbGVjdGVkQ2hhdFJlZixcbiAgYWdlbnRzTmF2QWN0aXZlID0gbnVsbCxcbn06IHtcbiAgb25Hb1RvQ2hhdDogKGNoYXRJZDogc3RyaW5nKSA9PiB2b2lkXG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgaGFuZGxlR29Ub0hvbWU6ICgpID0+IHZvaWRcbiAgaGFuZGxlT3Blbk1hcmtldHBsYWNlOiAoKSA9PiB2b2lkXG4gIHNob3dOZXdDaGF0OiBib29sZWFuXG4gIHJlZmV0Y2hDaGF0czogYm9vbGVhblxuICBoYW5kbGVTZXRSZWZldGNoQ2hhdHM6IChyZWZldGNoOiBib29sZWFuKSA9PiB2b2lkXG4gIGhhc0Vycm9yOiBib29sZWFuXG4gIHJlc2V0U2VsZWN0ZWRDaGF0UmVmPzogTXV0YWJsZVJlZk9iamVjdDwoKCkgPT4gdm9pZCkgfCBudWxsPlxuICAvKiogUmVzYWx0YSBNYWlha2VyIG8gTWlzIGFnZW50ZXMgKi9cbiAgYWdlbnRzTmF2QWN0aXZlPzogJ21haWFrZXInIHwgJ215QWdlbnRzJyB8IG51bGxcbn0pID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNPcGVuTW9kYWwsIHNldElzT3Blbk1vZGFsXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzZWxlY3RlZENoYXQsIHNldFNlbGVjdGVkQ2hhdF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBjaGF0c0ZldGNoZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IHBlbmRpbmdTZXNzaW9uc1JlZmV0Y2hSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGNoYXRzQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBzaG91bGRGZXRjaFNlc3Npb25zID0gaXNPcGVuXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2sgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7XG4gICAgbG9hZGluZ0NoYXRzLFxuICAgIGNoYXRzLFxuICAgIGRlbGV0ZUNoYXQsXG4gICAgdXBkYXRlQ2hhdCxcbiAgICBmZXRjaENoYXRzLFxuICAgIGxpbWl0LFxuICAgIG9mZnNldCxcbiAgICBoYXNNb3JlQ2hhdHMsXG4gICAgbG9hZE1vcmVDaGF0cyxcbiAgICBpc0xvYWRpbmdNb3JlQ2hhdHMsXG4gIH0gPSB1c2VDaGF0cyh7XG4gICAgb25FcnJvcixcbiAgfSlcblxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IGNhbkNyZWF0ZUFnZW50cyA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGVcbiAgY29uc3QgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5WaWV3QWdlbnRzID0gISF1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiYgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzXG4gIGNvbnN0IHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPSAhIWNhbkNyZWF0ZUFnZW50cyAmJiAhIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVJcbiAgY29uc3QgYWdlbnROYXZCdXR0b25Db3VudCA9ICgoc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA/IDEgOiAwKSArIChjYW5WaWV3QWdlbnRzID8gMSA6IDApKSBhcyAwIHwgMSB8IDJcbiAgY29uc3Qgc2hvd0FnZW50c05hdkJsb2NrID0gc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiB8fCBjYW5WaWV3QWdlbnRzXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYpIHtcbiAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQgPSAoKSA9PiBzZXRTZWxlY3RlZENoYXQobnVsbClcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZikge1xuICAgICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgIH1cbiAgfSwgW3Jlc2V0U2VsZWN0ZWRDaGF0UmVmXSlcblxuICBjb25zdCBoYW5kbGVEZWxldGVDaGF0ID0gYXN5bmMgKGNoYXQ6IGFueSkgPT4ge1xuICAgIGRlbGV0ZUNoYXQoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIGhhbmRsZUdvVG9Ib21lKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVVwZGF0ZUNoYXQgPSAoY2hhdDogYW55KSA9PiB7XG4gICAgdXBkYXRlQ2hhdChjaGF0KVxuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuTW9kYWwgPSAoY2hhdElkOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwgJiYgaXNPcGVuTW9kYWwgIT09IGNoYXRJZCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SXNPcGVuTW9kYWwoY2hhdElkKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoaXNPcGVuTW9kYWwgJiYgIShldmVudC50YXJnZXQgYXMgRWxlbWVudCkuY2xvc2VzdCgnW2RhdGEtbW9kYWwtY29udGFpbmVyXScpKSB7XG4gICAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFtpc09wZW5Nb2RhbF0pXG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlU2lkZWJhciA9ICgpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTaWRlYmFyLCB7IGFjdGlvbjogaXNPcGVuID8gJ2Nsb3NlJyA6ICdvcGVuJyB9KVxuICAgIHNldElzT3BlbihwcmV2ID0+ICFwcmV2KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3BlbkNyZWF0ZUFnZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZsYW5nPSR7bWFwQ09STGFuZyhpMThuLmxhbmd1YWdlKX1gLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgIGNvbnN0IG1haWFrZXJBZ2VudCA9IChkYXRhLmRhdGEgfHwgW10pLmZpbmQoKGFnZW50OiBhbnkpID0+IGFnZW50LnR5cGUgPT09ICdjbG9uZScgJiYgYWdlbnQuZW50aXR5ID09PSAnZ2xvYmFsJylcblxuICAgICAgaWYgKCFtYWlha2VyQWdlbnQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHNldFByb2plY3QobnVsbClcbiAgICAgIHNldENsaWVudD8uKG51bGwpXG4gICAgICBzZXRUYXNrKG51bGwpXG4gICAgICBzZWxlY3RBZ2VudChtYWlha2VyQWdlbnQpXG4gICAgICBoYW5kbGVHb1RvSG9tZSgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG9uRXJyb3IoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG91bGRGZXRjaFNlc3Npb25zKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKCFjaGF0c0ZldGNoZWRSZWYuY3VycmVudCkge1xuICAgICAgY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBmZXRjaENoYXRzKHsgbGltaXQsIG9mZnNldCB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChwZW5kaW5nU2Vzc2lvbnNSZWZldGNoUmVmLmN1cnJlbnQgfHwgcmVmZXRjaENoYXRzKSB7XG4gICAgICBwZW5kaW5nU2Vzc2lvbnNSZWZldGNoUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIGlmIChyZWZldGNoQ2hhdHMpIHtcbiAgICAgICAgaGFuZGxlU2V0UmVmZXRjaENoYXRzKGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3Nob3VsZEZldGNoU2Vzc2lvbnMsIHJlZmV0Y2hDaGF0cywgaGFuZGxlU2V0UmVmZXRjaENoYXRzLCBmZXRjaENoYXRzLCBsaW1pdCwgb2Zmc2V0XSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmICghY2hhdHNDb250YWluZXJSZWYuY3VycmVudCB8fCAhaGFzTW9yZUNoYXRzIHx8IGlzTG9hZGluZ01vcmVDaGF0cyB8fCBoYXNFcnJvcikge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgICBjb25zdCBpc0F0Qm90dG9tID0gc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHNjcm9sbEhlaWdodCAtIDEwXG5cbiAgICAgIGlmIChpc0F0Qm90dG9tKSB7XG4gICAgICAgIGxvYWRNb3JlQ2hhdHMoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbaGFzTW9yZUNoYXRzLCBpc0xvYWRpbmdNb3JlQ2hhdHMsIGxvYWRNb3JlQ2hhdHMsIGhhc0Vycm9yXSlcblxuICBjb25zdCBoYW5kbGVOZXdDaGF0ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChpc09wZW5Nb2RhbCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9XG4gICAgc2V0U2VsZWN0ZWRDaGF0KG51bGwpXG4gICAgaWYgKHNob3VsZEZldGNoU2Vzc2lvbnMpIHtcbiAgICAgIGF3YWl0IGZldGNoQ2hhdHMoeyBsaW1pdCwgb2Zmc2V0OiAwIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHBlbmRpbmdTZXNzaW9uc1JlZmV0Y2hSZWYuY3VycmVudCA9IHRydWVcbiAgICB9XG4gICAgaGFuZGxlR29Ub0hvbWUoKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVSZWZldGNoU2Vzc2lvbiA9ICgpID0+IHtcbiAgICAgIGlmIChzaG91bGRGZXRjaFNlc3Npb25zKSB7XG4gICAgICAgIGZldGNoQ2hhdHMoeyBsaW1pdDogMjAsIG9mZnNldDogMCB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHBlbmRpbmdTZXNzaW9uc1JlZmV0Y2hSZWYuY3VycmVudCA9IHRydWVcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVmZXRjaC1zZXNzaW9uJywgaGFuZGxlUmVmZXRjaFNlc3Npb24pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIH1cbiAgfSwgW3Nob3VsZEZldGNoU2Vzc2lvbnMsIGZldGNoQ2hhdHNdKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0QnV0dG9uID1cbiAgICAhc2hvd05ld0NoYXQgJiZcbiAgICAhaGFzRXJyb3IgJiZcbiAgICAhbG9hZGluZ0NoYXRzICYmXG4gICAgKCh1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5pc19kZWxldGVkICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzKSB8fFxuICAgICAgKCF1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiZcbiAgICAgICAgIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgJiZcbiAgICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfcGVybWlzc2lvbnMgJiZcbiAgICAgICAgIXNlbGVjdGVkQWdlbnQ/Lmhhc19ub3RfYWNjZXNzKSlcblxuICByZXR1cm4gKFxuICAgIDxTQ1NTaWRlYmFyUm9vdCAkaXNPcGVuPXtpc09wZW59PlxuICAgICAgPFNDU1NpZGViYXJUb29sYmFyICRpc09wZW49e2lzT3Blbn0+XG4gICAgICAgIDxUb29sdGlwIHRpdGxlPXtpc09wZW4gPyB0KCdjb252ZXJzYXRpb25zLmNvbGxhcHNlJykgOiB0KCdjb252ZXJzYXRpb25zLmV4cGFuZCcpfT5cbiAgICAgICAgICA8U0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVUb2dnbGVTaWRlYmFyfSBpc09wZW49e2lzT3Blbn0+XG4gICAgICAgICAgICA8Q2hldnJvbkRvdWJsZUxlZnQgY29sb3I9XCJyZ2JhKDEwMiwgMTAyLCAxMDIsIDEpXCIgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgIDwvU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbj5cbiAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICB7c2hvd05ld0NoYXRCdXR0b24gPyAoXG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NvbnZlcnNhdGlvbnMubmV3Q2hhdCcpfT5cbiAgICAgICAgICAgIDxTQ1NXcmFwcGVyTmV3Q2hhdEljb24gb25DbGljaz17aGFuZGxlTmV3Q2hhdH0+XG4gICAgICAgICAgICAgIDxOZXdDaGF0IHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgIDwvU0NTV3JhcHBlck5ld0NoYXRJY29uPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDU1NpZGViYXJUb29sYmFyPlxuICAgICAgPFNDU1NpZGViYXJCb2R5ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICAgIHtpc09wZW4gPyAoXG4gICAgICAgICAgPFNDU1NpZGViYXJPcGVuUGFuZWw+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgICB7c2hvd0FnZW50c05hdkJsb2NrID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgIHtzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0TXBPcGVuKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ21haWFrZXInfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubWFpYWtlck5hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge2NhblZpZXdBZ2VudHMgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU9wZW5NYXJrZXRwbGFjZX1cbiAgICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8TXlBZ2VudHNOYXZJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm15QWdlbnRzTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmc+e3QoJ2NvbnZlcnNhdGlvbnMudGl0bGUnKX08L1NDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZz5cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c1Njcm9sbFxuICAgICAgICAgICAgICByZWY9e2NoYXRzQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAkaGFzQ2hhdHM9e2NoYXRzLmxlbmd0aCA+IDB9XG4gICAgICAgICAgICAgICRvZmZzZXRWYXJpYW50PXtoYXNFcnJvciA/ICdlcnJvcicgOiAnZGVmYXVsdCd9XG4gICAgICAgICAgICAgICRhZ2VudE5hdkJ1dHRvbkNvdW50PXthZ2VudE5hdkJ1dHRvbkNvdW50fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aGFzRXJyb3IgJiYgIWNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVUb3A+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvclN0YXRlIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlVG9wPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICApIDogbG9hZGluZ0NoYXRzID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTG9hZGluZ0FyZWE+XG4gICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJMb2FkaW5nQXJlYT5cbiAgICAgICAgICAgICAgKSA6IGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2NoYXRzLm1hcCgoY2hhdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8TGlzdEhpc3RvcnlDaGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGF0PXtjaGF0fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2hhdERhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkQ2hhdChjaGF0RGF0YS5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Hb1RvQ2hhdChjaGF0RGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01vZGFsT3Blbj17aXNPcGVuTW9kYWwgPT09IGNoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk9wZW5Nb2RhbD17aGFuZGxlT3Blbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZU1vZGFsPXtoYW5kbGVDbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGVsZXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlVXBkYXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZENoYXQgPT09IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICB7aXNMb2FkaW5nTW9yZUNoYXRzICYmIChcbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJMb2FkTW9yZVJvdz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gY291bnQ9ezJ9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckxvYWRNb3JlUm93PlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVtcHR5Q2hhdHM+XG4gICAgICAgICAgICAgICAgICA8RW1wdHlIaXN0b3J5SWNvbiAvPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dD57dCgnY29udmVyc2F0aW9ucy5lbXB0eScpfTwvU0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0PlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVtcHR5Q2hhdHM+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDU1NpZGViYXJDaGF0c1Njcm9sbD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ2hhdHNGb290ZXI+XG4gICAgICAgICAgICAgIHtoYXNFcnJvciAmJiBjaGF0cy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9ySWNvbiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPnt0KCdjb252ZXJzYXRpb25zLmVycm9yJyl9PC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckNoYXRzRm9vdGVyPlxuICAgICAgICAgIDwvU0NTU2lkZWJhck9wZW5QYW5lbD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyAkaXNPcGVuPXtpc09wZW59ICRqdXN0aWZ5QmV0d2Vlbj17ISFzZWxlY3RlZEFnZW50fT5cbiAgICAgICAgICB7c2VsZWN0ZWRBZ2VudCA/IDxGZWVkYmFja0J1dHRvbiBzZWxlY3RlZEFnZW50PXtzZWxlY3RlZEFnZW50fSBpc09wZW49e2lzT3Blbn0gLz4gOiBudWxsfVxuICAgICAgICA8L1NDU1NpZGViYXJGb290ZXJBY3Rpb25zPlxuICAgICAgPC9TQ1NTaWRlYmFyQm9keT5cbiAgICA8L1NDU1NpZGViYXJSb290PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQTJCQSxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUM5RSxTQUFTQyxpQkFBaUIsUUFBUSxvREFBb0Q7QUFDdEYsU0FBU0MsUUFBUSxRQUFRLDRDQUE0QztBQUNyRSxTQUFTQyxRQUFRLFFBQVEsMkNBQTJDO0FBQ3BFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUU5RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBRXRFLFNBQVNDLGdCQUFnQixRQUFRLGdDQUFn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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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