@projectcor/maia-components 2.11.77 → 2.11.78-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +17 -0
  2. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +15 -0
  3. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  4. package/lib/components/atoms/SessionUnreadDot/SessionUnreadDot.js +12 -0
  5. package/lib/components/atoms/SessionUnreadDot/SessionUnreadDot.styles.js +8 -0
  6. package/lib/components/atoms/SessionUnreadDot/index.js +2 -0
  7. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +4 -5
  8. package/lib/components/molecules/Sidebar/Sidebar.js +23 -8
  9. package/lib/components/molecules/Sidebar/Sidebar.styles.js +10 -6
  10. package/lib/components/organisms/ChatAI/ChatAI.js +10 -2
  11. package/lib/hooks/useChatManager/useChatManager.js +444 -423
  12. package/lib/hooks/useChatMessages/useChatMessages.js +20 -3
  13. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  14. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +139 -496
  15. package/lib/hooks/useStreamingMessage/index.js +2 -3
  16. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +13 -17
  17. package/lib/lang/br/index.js +7 -1
  18. package/lib/lang/en/index.js +7 -1
  19. package/lib/lang/es/index.js +7 -1
  20. package/lib/lang/fr/index.js +9 -2
  21. package/lib/store/sessions/activeView.js +22 -0
  22. package/lib/store/sessions/index.js +10 -0
  23. package/lib/store/sessions/sessionHitlContext.js +15 -0
  24. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  25. package/lib/store/sessions/sessionNotifications.js +111 -0
  26. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  27. package/lib/store/sessions/sessionStreamManager.js +576 -0
  28. package/lib/store/sessions/sessionStreamingText.js +80 -0
  29. package/lib/store/sessions/sessionUnreadPersistence.js +49 -0
  30. package/lib/store/sessions/sessions.types.js +29 -0
  31. package/lib/store/sessions/useSessionMeta.js +39 -0
  32. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  33. package/lib/store/sessions/useSessionsStore.js +195 -0
  34. package/lib/store/useChatsStore.js +3 -1
  35. package/package.json +1 -1
  36. package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
@@ -36,7 +36,11 @@ import { fetchMaia } from '../../../services/maia/client';
36
36
  import { mapCORLang } from '../../../lang/utils';
37
37
  import { formatChatListTitleMentions } from '../../../utils/renderContextMentions';
38
38
  import { getAgentDisplayName, isMarketplaceGlobalCloneAgent } from '../../../utils/agentDisplayName';
39
- import { SCLHCWrapper, SCLHCWrapperAgent, SCLHCWrapperAgentText, SCLHCWrapperButtonActions, SCLHCWrapperContent, SCLHCWrapperTitle, SCSWrapperCollapsedButton, SCSWrapperNewChatIcon, SCSWrapperAgentsNavIcon } from './Sidebar.styles';
39
+ import { SessionGeneratingDot } from '../../atoms/SessionGeneratingDot';
40
+ import { SessionUnreadDot } from '../../atoms/SessionUnreadDot';
41
+ import { useIsSessionGenerating, useSessionMeta } from '../../../store/sessions/useSessionMeta';
42
+ import { useSessionsStore } from '../../../store/sessions/useSessionsStore';
43
+ import { SCLHCWrapper, SCLHCWrapperAgent, SCLHCWrapperAgentText, SCLHCWrapperButtonActions, SCLHCWrapperContent, SCLHCWrapperTitle, SCLHCWrapperTitleRow, SCSWrapperCollapsedButton, SCSWrapperNewChatIcon, SCSWrapperAgentsNavIcon } from './Sidebar.styles';
40
44
  import { SCSSidebarRoot, SCSSidebarToolbar, SCSSidebarBody, SCSSidebarOpenPanel, SCSSidebarAgentsBlock, SCSSidebarAgentsActions, SCSSidebarMaiakerNavButton, SCSSidebarMaiakerNavLabel, SCSSidebarMaiakerNavBadgeNew, SCSSidebarConversationsHeading, SCSSidebarChatsScroll, SCSSidebarErrorStateColumn, SCSSidebarErrorStateTop, SCSSidebarErrorBanner, SCSSidebarErrorBannerIconWrap, SCSSidebarErrorBannerMessage, SCSSidebarLoadingArea, SCSSidebarLoadMoreRow, SCSSidebarEmptyChats, SCSSidebarEmptyChatsText, SCSSidebarChatsFooter, SCSSidebarFooterActions, SCSSidebarCollapsedDivider } from './Sidebar.layout.styles';
41
45
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
42
46
  var actions = {
@@ -79,6 +83,9 @@ var ListHistoryChat = function ListHistoryChat(_ref) {
79
83
  _useState2 = _slicedToArray(_useState, 2),
80
84
  action = _useState2[0],
81
85
  setAction = _useState2[1];
86
+ var isGenerating = useIsSessionGenerating(chat.sessionExternalId);
87
+ var sessionMeta = useSessionMeta(chat.sessionExternalId);
88
+ var isUnread = Boolean(sessionMeta === null || sessionMeta === void 0 ? void 0 : sessionMeta.unread) && !isGenerating;
82
89
  var menuItems = [{
83
90
  label: t('history.menu.rename'),
84
91
  onClickItem: function onClickItem(chatId) {
@@ -115,12 +122,19 @@ var ListHistoryChat = function ListHistoryChat(_ref) {
115
122
  isSelected: isSelected,
116
123
  $index: index,
117
124
  children: [/*#__PURE__*/_jsxs(SCLHCWrapper, {
118
- children: [/*#__PURE__*/_jsx(Tooltip, {
119
- title: showTooltip ? displayTitle : '',
120
- children: /*#__PURE__*/_jsx(SCLHCWrapperTitle, {
121
- ref: textRef,
122
- children: displayTitle || t('conversations.emptyLabel')
123
- })
125
+ children: [/*#__PURE__*/_jsxs(SCLHCWrapperTitleRow, {
126
+ children: [isGenerating ? /*#__PURE__*/_jsx(SessionGeneratingDot, {
127
+ ariaLabel: t('conversations.generating'),
128
+ isWriting: sessionMeta === null || sessionMeta === void 0 ? void 0 : sessionMeta.isWriting
129
+ }) : isUnread ? /*#__PURE__*/_jsx(SessionUnreadDot, {
130
+ ariaLabel: t('conversations.unread')
131
+ }) : null, /*#__PURE__*/_jsx(Tooltip, {
132
+ title: showTooltip ? displayTitle : '',
133
+ children: /*#__PURE__*/_jsx(SCLHCWrapperTitle, {
134
+ ref: textRef,
135
+ children: displayTitle || t('conversations.emptyLabel')
136
+ })
137
+ })]
124
138
  }), /*#__PURE__*/_jsx(Tooltip, {
125
139
  title: showTooltipAgent ? displayAgent + (contextName ? " - ".concat(contextName) : '') : '',
126
140
  children: /*#__PURE__*/_jsxs(SCLHCWrapperAgent, {
@@ -581,6 +595,7 @@ export var Sidebar = function Sidebar(_ref3) {
581
595
  if (isOpenModal) {
582
596
  setIsOpenModal(null);
583
597
  }
598
+ useSessionsStore.getState().markUnread(chatData.sessionExternalId, false);
584
599
  setSelectedChat(chatData.sessionExternalId);
585
600
  onGoToChat(chatData);
586
601
  },
@@ -623,4 +638,4 @@ export var Sidebar = function Sidebar(_ref3) {
623
638
  })]
624
639
  });
625
640
  };
626
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkhpc3RvcnkiLCJDVUJ1dHRvbiIsIk1lbnVEb3RzIiwiUGVuY2lsIiwiVHJhc2giLCJUb29sdGlwIiwiRW1wdHlIaXN0b3J5SWNvbiIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlQ2hhdHMiLCJTaWRlYmFyQ2hhdHNTa2VsZXRvbiIsIkVycm9yU3RhdGUiLCJNQUlBSWNvbiIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJOZXdDaGF0IiwiRVZFTlRTIiwidXNlRXZlbnQiLCJ1c2VUIiwiT3B0aW9uSXRlbSIsIkVkaXRRdWVzdGlvbk1vZGFsIiwiRGVsZXRlUXVlc3Rpb25Nb2RhbCIsIkVycm9ySWNvbiIsInVzZVVzZXIiLCJGZWVkYmFja0J1dHRvbiIsInVzZUdsb2JhbENvbnRleHQiLCJmZXRjaE1haWEiLCJtYXBDT1JMYW5nIiwiZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIiwiZ2V0QWdlbnREaXNwbGF5TmFtZSIsImlzTWFya2V0cGxhY2VHbG9iYWxDbG9uZUFnZW50IiwiU0NMSENXcmFwcGVyIiwiU0NMSENXcmFwcGVyQWdlbnQiLCJTQ0xIQ1dyYXBwZXJBZ2VudFRleHQiLCJTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zIiwiU0NMSENXcmFwcGVyQ29udGVudCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiIsIlNDU1dyYXBwZXJOZXdDaGF0SWNvbiIsIlNDU1dyYXBwZXJBZ2VudHNOYXZJY29uIiwiU0NTU2lkZWJhclJvb3QiLCJTQ1NTaWRlYmFyVG9vbGJhciIsIlNDU1NpZGViYXJCb2R5IiwiU0NTU2lkZWJhck9wZW5QYW5lbCIsIlNDU1NpZGViYXJBZ2VudHNCbG9jayIsIlNDU1NpZGViYXJBZ2VudHNBY3Rpb25zIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24iLCJTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldyIsIlNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyIsIlNDU1NpZGViYXJDaGF0c1Njcm9sbCIsIlNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uIiwiU0NTU2lkZWJhckVycm9yU3RhdGVUb3AiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXIiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UiLCJTQ1NTaWRlYmFyTG9hZGluZ0FyZWEiLCJTQ1NTaWRlYmFyTG9hZE1vcmVSb3ciLCJTQ1NTaWRlYmFyRW1wdHlDaGF0cyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCIsIlNDU1NpZGViYXJDaGF0c0Zvb3RlciIsIlNDU1NpZGViYXJGb290ZXJBY3Rpb25zIiwiU0NTU2lkZWJhckNvbGxhcHNlZERpdmlkZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsImFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUiLCJhZ2VudE5hbWUiLCJyZXBsYWNlIiwiTGlzdEhpc3RvcnlDaGF0IiwiX3JlZiIsImNoYXQiLCJvbkNsaWNrIiwiaXNNb2RhbE9wZW4iLCJvbk9wZW5Nb2RhbCIsIm9uQ2xvc2VNb2RhbCIsImhhbmRsZXJzIiwiaXNTZWxlY3RlZCIsImluZGV4IiwidGV4dFJlZiIsImFnZW50UmVmIiwiZGlzcGxheVRpdGxlIiwidGl0bGUiLCJkaXNwbGF5QWdlbnQiLCJhZ2VudFR5cGUiLCJhZ2VudCIsImNvbnRleHROYW1lIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwic2hvd1Rvb2x0aXAiLCJfdXNlUmVzaXplTGlzdGVuZXIyIiwic2hvd1Rvb2x0aXBBZ2VudCIsIl91c2VUIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbiIsInNldEFjdGlvbiIsIm1lbnVJdGVtcyIsImxhYmVsIiwib25DbGlja0l0ZW0iLCJjaGF0SWQiLCJJY29uIiwiZXZlbnRLZXkiLCJwbUFpTWVudUVkaXQiLCJwbUFpTWVudURlbGV0ZSIsImhhbmRsZUNvbmZpcm1BY3Rpb24iLCJjaGF0RGF0YSIsImhhbmRsZVVwZGF0ZUNoYXQiLCJoYW5kbGVEZWxldGVDaGF0IiwiY2hpbGRyZW4iLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwiJGluZGV4IiwicmVmIiwiY29uY2F0Iiwid2lkdGgiLCJoZWlnaHQiLCJzdHlsZSIsImZvbnRTaXplIiwiZW1vamkiLCJpY29uT25seSIsInNpemUiLCJ2YXJpYW50IiwiZXZlbnQiLCJpZCIsInBvc2l0aW9uIiwidG9wIiwicmlnaHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ6SW5kZXgiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImJvcmRlclJhZGl1cyIsImJvcmRlciIsIm1pbldpZHRoIiwibWFwIiwiX3JlZjIiLCJzZXNzaW9uRXh0ZXJuYWxJZCIsIm9uQ2xvc2UiLCJoYW5kbGVTZXRJc09wZW5Nb2RhbCIsIlNpZGViYXIiLCJfcmVmMyIsIl91c2VyJHBlcm1pc3Npb25zIiwib25Hb1RvQ2hhdCIsIl9yZWYzJG9uRXJyb3IiLCJvbkVycm9yIiwiaGFuZGxlR29Ub0hvbWUiLCJoYW5kbGVPcGVuTWFya2V0cGxhY2UiLCJzaG93TmV3Q2hhdCIsInJlZmV0Y2hDaGF0cyIsImhhbmRsZVNldFJlZmV0Y2hDaGF0cyIsImhhc0Vycm9yIiwicmVzZXRTZWxlY3RlZENoYXRSZWYiLCJfcmVmMyRhZ2VudHNOYXZBY3RpdmUiLCJhZ2VudHNOYXZBY3RpdmUiLCJfcmVmMyRpc0xlZ2FjeUNvbnRleHQiLCJpc0xlZ2FjeUNvbnRleHRTZXNzaW9uIiwiX3VzZVQyIiwiaTE4biIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNPcGVuIiwic2V0SXNPcGVuIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc09wZW5Nb2RhbCIsInNldElzT3Blbk1vZGFsIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZWxlY3RlZENoYXQiLCJzZXRTZWxlY3RlZENoYXQiLCJjaGF0c0ZldGNoZWRSZWYiLCJjaGF0c0NvbnRhaW5lclJlZiIsInNob3VsZEZldGNoU2Vzc2lvbnMiLCJ1c2VyIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInNlbGVjdGVkQWdlbnQiLCJzZWxlY3RBZ2VudCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwiX3VzZUNoYXRzIiwibG9hZGluZ0NoYXRzIiwiY2hhdHMiLCJkZWxldGVDaGF0IiwidXBkYXRlQ2hhdCIsImZldGNoQ2hhdHMiLCJsaW1pdCIsIm9mZnNldCIsImhhc01vcmVDaGF0cyIsImxvYWRNb3JlQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9ucyIsImFpX2FnZW50cyIsImNhbkNyZWF0ZUFnZW50cyIsImNyZWF0ZSIsImhhc011bHRpQWdlbnRzRmVhdHVyZUFjY2VzcyIsIndpbmRvdyIsIk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMiLCJjYW5WaWV3QWdlbnRzIiwidmlldyIsInNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24iLCJNQUlBX01BUktFVFBMQUNFX01BSUFLRVIiLCJhZ2VudE5hdkJ1dHRvbkNvdW50Iiwic2hvd0FnZW50c05hdkJsb2NrIiwiY3VycmVudCIsIl9yZWY0IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlT3Blbk1vZGFsIiwiaGFuZGxlQ2xvc2VNb2RhbCIsImhhbmRsZUNsaWNrT3V0c2lkZSIsInRhcmdldCIsImNsb3Nlc3QiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlVG9nZ2xlU2lkZWJhciIsImFpQ2hhdFNpZGViYXIiLCJoYW5kbGVPcGVuQ3JlYXRlQWdlbnQiLCJfcmVmNSIsIl9jYWxsZWUyIiwicmVzcG9uc2UiLCJkYXRhIiwibWFpYWtlckFnZW50IiwiX3QiLCJfY29udGV4dDIiLCJwYXRoIiwibGFuZ3VhZ2UiLCJtZXRob2QiLCJzZW50IiwianNvbiIsImZpbmQiLCJhZ2VudEl0ZW0iLCJhYnJ1cHQiLCJoYW5kbGVTY3JvbGwiLCJfY2hhdHNDb250YWluZXJSZWYkY3UiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc0F0Qm90dG9tIiwiY29udGFpbmVyIiwiaGFuZGxlTmV3Q2hhdCIsIl9yZWY2IiwiX2NhbGxlZTMiLCJfY29udGV4dDMiLCJhaVNpZGViYXJOZXdDaGF0IiwiaGFuZGxlUmVmZXRjaFNlc3Npb24iLCJzaG93TmV3Q2hhdEJ1dHRvbiIsImlzX2RlbGV0ZWQiLCJoYXNfbm90X3Blcm1pc3Npb25zIiwiaGFzX25vdF9hY2Nlc3MiLCIkaXNPcGVuIiwiY29sb3IiLCIkYWN0aXZlIiwiYWlDaGF0TXBPcGVuIiwiYWlTaWRlYmFyTXlBZ2VudHMiLCJ0eXBlIiwiJGhhc0NoYXRzIiwibGVuZ3RoIiwiJG9mZnNldFZhcmlhbnQiLCIkYWdlbnROYXZCdXR0b25Db3VudCIsImNvdW50IiwiJGp1c3RpZnlCZXR3ZWVuIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1NpZGViYXIvU2lkZWJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7IE11dGFibGVSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvbkRvdWJsZUxlZnQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG91YmxlTGVmdCdcbmltcG9ydCB7IEhpc3RvcnkgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9IaXN0b3J5J1xuaW1wb3J0IHsgQ1VCdXR0b24gfSBmcm9tICdAcHJvamVjdGNvci9idXR0b24vbGliL2NvbXBvbmVudHMvQ1VCdXR0b24nXG5pbXBvcnQgeyBNZW51RG90cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL01lbnVEb3RzJ1xuaW1wb3J0IHsgUGVuY2lsIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGVuY2lsJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcblxuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuXG5pbXBvcnQgeyBFbXB0eUhpc3RvcnlJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRW1wdHlIaXN0b3J5J1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyB1c2VDaGF0cyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUNoYXRzJ1xuaW1wb3J0IHsgU2lkZWJhckNoYXRzU2tlbGV0b24gfSBmcm9tICcuL1NpZGViYXIuc2tlbGV0b24nXG5pbXBvcnQgeyBFcnJvclN0YXRlLCBNQUlBSWNvbiwgTWFpYVN0b3JlSWNvbiwgTXlBZ2VudHNOYXZJY29uLCBOZXdDaGF0IH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IE9wdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9hdG9tcy9DYXJkTWVudS9DYXJkTWVudSdcbmltcG9ydCB7IEVkaXRRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0VkaXRRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgRXJyb3JJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvRXJyb3JJY29uJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBGZWVkYmFja0J1dHRvbiB9IGZyb20gJy4uLy4uL2F0b21zL0ZlZWRiYWNrQnV0dG9uJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL2NsaWVudCdcbmltcG9ydCB7IG1hcENPUkxhbmcgfSBmcm9tICcuLi8uLi8uLi9sYW5nL3V0aWxzJ1xuaW1wb3J0IHsgZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVuZGVyQ29udGV4dE1lbnRpb25zJ1xuaW1wb3J0IHsgZ2V0QWdlbnREaXNwbGF5TmFtZSwgaXNNYXJrZXRwbGFjZUdsb2JhbENsb25lQWdlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHtcbiAgU0NMSENXcmFwcGVyLFxuICBTQ0xIQ1dyYXBwZXJBZ2VudCxcbiAgU0NMSENXcmFwcGVyQWdlbnRUZXh0LFxuICBTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zLFxuICBTQ0xIQ1dyYXBwZXJDb250ZW50LFxuICBTQ0xIQ1dyYXBwZXJUaXRsZSxcbiAgU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbixcbiAgU0NTV3JhcHBlck5ld0NoYXRJY29uLFxuICBTQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbixcbn0gZnJvbSAnLi9TaWRlYmFyLnN0eWxlcydcbmltcG9ydCB7XG4gIFNDU1NpZGViYXJSb290LFxuICBTQ1NTaWRlYmFyVG9vbGJhcixcbiAgU0NTU2lkZWJhckJvZHksXG4gIFNDU1NpZGViYXJPcGVuUGFuZWwsXG4gIFNDU1NpZGViYXJBZ2VudHNCbG9jayxcbiAgU0NTU2lkZWJhckFnZW50c0FjdGlvbnMsXG4gIFNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkJhZGdlTmV3LFxuICBTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmcsXG4gIFNDU1NpZGViYXJDaGF0c1Njcm9sbCxcbiAgU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4sXG4gIFNDU1NpZGViYXJFcnJvclN0YXRlVG9wLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXIsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlLFxuICBTQ1NTaWRlYmFyTG9hZGluZ0FyZWEsXG4gIFNDU1NpZGViYXJMb2FkTW9yZVJvdyxcbiAgU0NTU2lkZWJhckVtcHR5Q2hhdHMsXG4gIFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCxcbiAgU0NTU2lkZWJhckNoYXRzRm9vdGVyLFxuICBTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyxcbiAgU0NTU2lkZWJhckNvbGxhcHNlZERpdmlkZXIsXG59IGZyb20gJy4vU2lkZWJhci5sYXlvdXQuc3R5bGVzJ1xuXG5jb25zdCBhY3Rpb25zID0ge1xuICBlZGl0OiAocHJvcHM6IGFueSkgPT4gPEVkaXRRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG4gIGRlbGV0ZTogKHByb3BzOiBhbnkpID0+IDxEZWxldGVRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG59XG5cbi8qKiBBYnJldmlhIFwiZXNwZWNpYWxpc3RhXCIvXCJlc3BlY2lhbGlzdFwiIOKGkiBcIkVzcC5cIiAoRVMvUFQpIHkgXCJzcGVjaWFsaXN0XCIg4oaSIFwiU3BlYy5cIiAoRU4pIGVuIGVsIG5vbWJyZSBkZWwgYWdlbnRlLiAqL1xuZnVuY3Rpb24gYWJicmV2aWF0ZVNwZWNpYWxpc3RJbkFnZW50TmFtZShhZ2VudE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghYWdlbnROYW1lIHx8IHR5cGVvZiBhZ2VudE5hbWUgIT09ICdzdHJpbmcnKSByZXR1cm4gYWdlbnROYW1lXG4gIHJldHVybiBhZ2VudE5hbWUucmVwbGFjZSgvXFxiKGVzcGVjaWFsaXN0YXxlc3BlY2lhbGlzdClcXGIvZ2ksICdFc3AuJykucmVwbGFjZSgvXFxic3BlY2lhbGlzdFxcYi9naSwgJ1NwZWMuJylcbn1cblxuY29uc3QgTGlzdEhpc3RvcnlDaGF0ID0gKHtcbiAgY2hhdCxcbiAgb25DbGljayxcbiAgaXNNb2RhbE9wZW4sXG4gIG9uT3Blbk1vZGFsLFxuICBvbkNsb3NlTW9kYWwsXG4gIGhhbmRsZXJzLFxuICBpc1NlbGVjdGVkLFxuICBpbmRleCxcbn06IHtcbiAgY2hhdDogYW55XG4gIG9uQ2xpY2s6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgaXNNb2RhbE9wZW46IGJvb2xlYW5cbiAgb25PcGVuTW9kYWw6IChjaGF0SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkNsb3NlTW9kYWw6ICgpID0+IHZvaWRcbiAgaGFuZGxlcnM6IHtcbiAgICBoYW5kbGVEZWxldGVDaGF0OiAoY2hhdDogYW55KSA9PiB2b2lkXG4gICAgaGFuZGxlVXBkYXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICB9XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW5cbiAgaW5kZXg6IG51bWJlclxufSkgPT4ge1xuICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBhZ2VudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgZGlzcGxheVRpdGxlID0gdXNlTWVtbygoKSA9PiBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMoY2hhdC50aXRsZSksIFtjaGF0LnRpdGxlXSlcbiAgY29uc3QgZGlzcGxheUFnZW50ID0gZ2V0QWdlbnREaXNwbGF5TmFtZShjaGF0LmFnZW50VHlwZSwgY2hhdC5hZ2VudClcbiAgY29uc3QgY29udGV4dE5hbWUgPSBjaGF0LnByb2plY3ROYW1lIHx8IGNoYXQuY2xpZW50TmFtZVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbZGlzcGxheVRpdGxlXSlcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBBZ2VudCB9ID0gdXNlUmVzaXplTGlzdGVuZXIoYWdlbnRSZWYsIFtjaGF0LmFnZW50XSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgW2FjdGlvbiwgc2V0QWN0aW9uXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgbWVudUl0ZW1zID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUucmVuYW1lJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZWRpdCcpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBQZW5jaWwsXG4gICAgICBldmVudEtleTogRVZFTlRTLnBtQWlNZW51RWRpdCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiB0KCdoaXN0b3J5Lm1lbnUuZGVsZXRlJyksXG4gICAgICBvbkNsaWNrSXRlbTogKGNoYXRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldEFjdGlvbignZGVsZXRlJylcbiAgICAgICAgb25PcGVuTW9kYWwoY2hhdElkKVxuICAgICAgfSxcbiAgICAgIEljb246IFRyYXNoLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudURlbGV0ZSxcbiAgICB9LFxuICBdXG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybUFjdGlvbiA9IChjaGF0RGF0YTogYW55KSA9PiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2VkaXQnKSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVVcGRhdGVDaGF0KGNoYXREYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVycy5oYW5kbGVEZWxldGVDaGF0KGNoYXREYXRhKVxuICAgIH1cbiAgICBzZXRBY3Rpb24obnVsbClcbiAgICBvbkNsb3NlTW9kYWwoKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNDTEhDV3JhcHBlckNvbnRlbnRcbiAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIG9uQ2xpY2soY2hhdClcbiAgICAgICAgfX1cbiAgICAgICAga2V5PXtgY29udmVyc2F0aW9uLSR7Y2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1gfVxuICAgICAgICBpc01vZGFsT3Blbj17aXNNb2RhbE9wZW59XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICRpbmRleD17aW5kZXh9XG4gICAgICA+XG4gICAgICAgIDxTQ0xIQ1dyYXBwZXI+XG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUb29sdGlwID8gZGlzcGxheVRpdGxlIDogJyd9PlxuICAgICAgICAgICAgPFNDTEhDV3JhcHBlclRpdGxlIHJlZj17dGV4dFJlZn0+e2Rpc3BsYXlUaXRsZSB8fCB0KCdjb252ZXJzYXRpb25zLmVtcHR5TGFiZWwnKX08L1NDTEhDV3JhcHBlclRpdGxlPlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1Rvb2x0aXBBZ2VudCA/IGRpc3BsYXlBZ2VudCArIChjb250ZXh0TmFtZSA/IGAgLSAke2NvbnRleHROYW1lfWAgOiAnJykgOiAnJ30+XG4gICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnQ+XG4gICAgICAgICAgICAgIHtjaGF0LmFnZW50VHlwZSA9PT0gJ2Nsb25lJyB8fCBjaGF0LmFnZW50VHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgPyAoXG4gICAgICAgICAgICAgICAgPE1BSUFJY29uIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzE0cHgnIH19PntjaGF0LmVtb2ppfTwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnRUZXh0IHJlZj17YWdlbnRSZWZ9PlxuICAgICAgICAgICAgICAgIHtjaGF0LmFnZW50VHlwZSA9PT0gJ2Nsb25lJyB8fCBjaGF0LmFnZW50VHlwZSA9PT0gJ29yY2hlc3RyYXRvcidcbiAgICAgICAgICAgICAgICAgID8gYWJicmV2aWF0ZVNwZWNpYWxpc3RJbkFnZW50TmFtZShjaGF0LmFnZW50KVxuICAgICAgICAgICAgICAgICAgOiBjaGF0LmFnZW50fVxuICAgICAgICAgICAgICAgIHtjaGF0LnByb2plY3ROYW1lICYmIGAgLSAke2NoYXQucHJvamVjdE5hbWV9YH1cbiAgICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJBZ2VudFRleHQ+XG4gICAgICAgICAgICA8L1NDTEhDV3JhcHBlckFnZW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9TQ0xIQ1dyYXBwZXI+XG4gICAgICAgIDxTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zPlxuICAgICAgICAgIDxDVUJ1dHRvblxuICAgICAgICAgICAgaWNvbk9ubHlcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgIG9uT3Blbk1vZGFsKGNoYXQuaWQpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxNZW51RG90cyB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICB7aXNNb2RhbE9wZW4gJiYgIWFjdGlvbiAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGRhdGEtbW9kYWwtY29udGFpbmVyXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgdG9wOiAnMzJweCcsXG4gICAgICAgICAgICAgICAgcmlnaHQ6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgekluZGV4OiAxMDAwLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDIyNCwgMjI0LCAyMjQsIDEpJyxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzEyNHB4JyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge21lbnVJdGVtcy5tYXAoKHsgbGFiZWwsIG9uQ2xpY2tJdGVtLCBJY29uLCBldmVudEtleSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPE9wdGlvbkl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17bGFiZWx9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrSXRlbShjaGF0LmlkKX1cbiAgICAgICAgICAgICAgICAgIEljb249e0ljb259XG4gICAgICAgICAgICAgICAgICBldmVudEtleT17ZXZlbnRLZXl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnM+XG4gICAgICA8L1NDTEhDV3JhcHBlckNvbnRlbnQ+XG4gICAgICB7ISFhY3Rpb24gJiZcbiAgICAgICAgYWN0aW9uc1thY3Rpb25dKHtcbiAgICAgICAgICBvbkNsb3NlOiAoKSA9PiB7XG4gICAgICAgICAgICBvbkNsb3NlTW9kYWwoKVxuICAgICAgICAgICAgc2V0QWN0aW9uKG51bGwpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjaGF0LFxuICAgICAgICAgIGhhbmRsZXJzOiB7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uLFxuICAgICAgICAgICAgaGFuZGxlU2V0SXNPcGVuTW9kYWw6IG9uQ2xvc2VNb2RhbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KX1cbiAgICA8Lz5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgU2lkZWJhciA9ICh7XG4gIG9uR29Ub0NoYXQsXG4gIG9uRXJyb3IgPSAoKSA9PiBudWxsLFxuICBoYW5kbGVHb1RvSG9tZSxcbiAgaGFuZGxlT3Blbk1hcmtldHBsYWNlLFxuICBzaG93TmV3Q2hhdCxcbiAgcmVmZXRjaENoYXRzLFxuICBoYW5kbGVTZXRSZWZldGNoQ2hhdHMsXG4gIGhhc0Vycm9yLFxuICByZXNldFNlbGVjdGVkQ2hhdFJlZixcbiAgYWdlbnRzTmF2QWN0aXZlID0gbnVsbCxcbiAgaXNMZWdhY3lDb250ZXh0U2Vzc2lvbiA9IGZhbHNlLFxufToge1xuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcjogKCkgPT4gdm9pZFxuICBoYW5kbGVHb1RvSG9tZTogKCkgPT4gdm9pZFxuICBoYW5kbGVPcGVuTWFya2V0cGxhY2U6ICgpID0+IHZvaWRcbiAgc2hvd05ld0NoYXQ6IGJvb2xlYW5cbiAgcmVmZXRjaENoYXRzOiBib29sZWFuXG4gIGhhbmRsZVNldFJlZmV0Y2hDaGF0czogKHJlZmV0Y2g6IGJvb2xlYW4pID0+IHZvaWRcbiAgaGFzRXJyb3I6IGJvb2xlYW5cbiAgcmVzZXRTZWxlY3RlZENoYXRSZWY/OiBNdXRhYmxlUmVmT2JqZWN0PCgoKSA9PiB2b2lkKSB8IG51bGw+XG4gIC8qKiBSZXNhbHRhIE1haWFrZXIgbyBNaXMgYWdlbnRlcyAqL1xuICBhZ2VudHNOYXZBY3RpdmU/OiAnbWFpYWtlcicgfCAnbXlBZ2VudHMnIHwgbnVsbFxuICAvKiogQ29udmVyc2FjacOzbiBkZSB1biBjbG9uZSBsZWdhY3kgKGFnZW50X3R5cGUgY2xvbmUgKyBlbnRpdHkgcHJvamVjdC9jbGllbnQvdGFzayk6IG9jdWx0YSBcIm51ZXZvIGNoYXRcIi4gKi9cbiAgaXNMZWdhY3lDb250ZXh0U2Vzc2lvbj86IGJvb2xlYW5cbn0pID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNPcGVuTW9kYWwsIHNldElzT3Blbk1vZGFsXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzZWxlY3RlZENoYXQsIHNldFNlbGVjdGVkQ2hhdF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBjaGF0c0ZldGNoZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGNoYXRzQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBzaG91bGRGZXRjaFNlc3Npb25zID0gaXNPcGVuXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2sgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7XG4gICAgbG9hZGluZ0NoYXRzLFxuICAgIGNoYXRzLFxuICAgIGRlbGV0ZUNoYXQsXG4gICAgdXBkYXRlQ2hhdCxcbiAgICBmZXRjaENoYXRzLFxuICAgIGxpbWl0LFxuICAgIG9mZnNldCxcbiAgICBoYXNNb3JlQ2hhdHMsXG4gICAgbG9hZE1vcmVDaGF0cyxcbiAgICBpc0xvYWRpbmdNb3JlQ2hhdHMsXG4gIH0gPSB1c2VDaGF0cyh7XG4gICAgb25FcnJvcixcbiAgfSlcblxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IGNhbkNyZWF0ZUFnZW50cyA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGVcbiAgY29uc3QgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5WaWV3QWdlbnRzID0gISF1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiYgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzXG4gIGNvbnN0IHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPSAhIWNhbkNyZWF0ZUFnZW50cyAmJiAhIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVJcbiAgY29uc3QgYWdlbnROYXZCdXR0b25Db3VudCA9ICgoc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA/IDEgOiAwKSArIChjYW5WaWV3QWdlbnRzID8gMSA6IDApKSBhcyAwIHwgMSB8IDJcbiAgY29uc3Qgc2hvd0FnZW50c05hdkJsb2NrID0gc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiB8fCBjYW5WaWV3QWdlbnRzXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYpIHtcbiAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQgPSAoKSA9PiBzZXRTZWxlY3RlZENoYXQobnVsbClcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZikge1xuICAgICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgIH1cbiAgfSwgW3Jlc2V0U2VsZWN0ZWRDaGF0UmVmXSlcblxuICBjb25zdCBoYW5kbGVEZWxldGVDaGF0ID0gYXN5bmMgKGNoYXQ6IGFueSkgPT4ge1xuICAgIGRlbGV0ZUNoYXQoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIGhhbmRsZUdvVG9Ib21lKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVVwZGF0ZUNoYXQgPSAoY2hhdDogYW55KSA9PiB7XG4gICAgdXBkYXRlQ2hhdChjaGF0KVxuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuTW9kYWwgPSAoY2hhdElkOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwgJiYgaXNPcGVuTW9kYWwgIT09IGNoYXRJZCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SXNPcGVuTW9kYWwoY2hhdElkKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoaXNPcGVuTW9kYWwgJiYgIShldmVudC50YXJnZXQgYXMgRWxlbWVudCkuY2xvc2VzdCgnW2RhdGEtbW9kYWwtY29udGFpbmVyXScpKSB7XG4gICAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFtpc09wZW5Nb2RhbF0pXG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlU2lkZWJhciA9ICgpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTaWRlYmFyLCB7IGFjdGlvbjogaXNPcGVuID8gJ2Nsb3NlJyA6ICdvcGVuJyB9KVxuICAgIHNldElzT3BlbihwcmV2ID0+ICFwcmV2KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3BlbkNyZWF0ZUFnZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZlbnRpdHk9Z2xvYmFsJmxhbmc9JHttYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpfWAsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB9KVxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgY29uc3QgbWFpYWtlckFnZW50ID0gKGRhdGEuZGF0YSB8fCBbXSkuZmluZCgoYWdlbnRJdGVtOiB7IHR5cGU/OiBzdHJpbmc7IGVudGl0eT86IHN0cmluZzsgbmFtZT86IHN0cmluZyB9KSA9PlxuICAgICAgICBpc01hcmtldHBsYWNlR2xvYmFsQ2xvbmVBZ2VudChhZ2VudEl0ZW0pXG4gICAgICApXG5cbiAgICAgIGlmICghbWFpYWtlckFnZW50KSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgLy8gaGFuZGxlR29Ub0hvbWUgcHVlZGUgcmVzZWxlY2Npb25hciBhZ2VudHMuZGF0YVswXSBzaSBlbCBhZ2VudGUgZ2xvYmFsIGF1biBlc3RhIGVuIG51bGxcbiAgICAgIC8vIChjbG9zdXJlIHN0YWxlIGRlIGxhIHNlY2Npb24gXCJNaXMgYWdlbnRlc1wiKSwgcG9yIGVzbyBzZWxlY3RBZ2VudChtYWlha2VyQWdlbnQpIHZhIGRlc3B1ZXMuXG4gICAgICBoYW5kbGVHb1RvSG9tZSgpXG4gICAgICBzZWxlY3RBZ2VudChtYWlha2VyQWdlbnQpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG9uRXJyb3IoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gUHJpbWVyYSBjYXJnYSBwZXJlem9zYSBkZSBsYXMgY29udmVyc2FjaW9uZXM6IGFsIGFicmlyIGVsIHNpZGViYXIgcG9yIHByaW1lcmEgdmV6LlxuICAgIGlmICghY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGlmIChzaG91bGRGZXRjaFNlc3Npb25zKSB7XG4gICAgICAgIGNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICBmZXRjaENoYXRzKHsgbGltaXQsIG9mZnNldCB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIC8vIFJlZmV0Y2ggc29saWNpdGFkbyBwb3IgcHJvcDogc2UgZWplY3V0YSBhdW5xdWUgZWwgc2lkZWJhciBlc3TDqSBjb2xhcHNhZG8uXG4gICAgaWYgKHJlZmV0Y2hDaGF0cykge1xuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyhmYWxzZSlcbiAgICB9XG4gIH0sIFtzaG91bGRGZXRjaFNlc3Npb25zLCByZWZldGNoQ2hhdHMsIGhhbmRsZVNldFJlZmV0Y2hDaGF0cywgZmV0Y2hDaGF0cywgbGltaXQsIG9mZnNldF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnQgfHwgIWhhc01vcmVDaGF0cyB8fCBpc0xvYWRpbmdNb3JlQ2hhdHMgfHwgaGFzRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY2hhdHNDb250YWluZXJSZWYuY3VycmVudFxuICAgICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMFxuXG4gICAgICBpZiAoaXNBdEJvdHRvbSkge1xuICAgICAgICBsb2FkTW9yZUNoYXRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hhc01vcmVDaGF0cywgaXNMb2FkaW5nTW9yZUNoYXRzLCBsb2FkTW9yZUNoYXRzLCBoYXNFcnJvcl0pXG5cbiAgY29uc3QgaGFuZGxlTmV3Q2hhdCA9IGFzeW5jICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlTaWRlYmFyTmV3Q2hhdClcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIHNldFNlbGVjdGVkQ2hhdChudWxsKVxuICAgIC8vIFJlZnJlc2NhbW9zIGxhcyBjb252ZXJzYWNpb25lcyBhdW5xdWUgZWwgc2lkZWJhciBlc3TDqSBjb2xhcHNhZG8uXG4gICAgY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgYXdhaXQgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQ6IDAgfSlcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIEFsIGNyZWFyL2FjdHVhbGl6YXIgdW5hIGNvbnZlcnNhY2nDs24gcmVmcmVzY2Ftb3MgbGEgbGlzdGEgYXVucXVlIGVsIHNpZGViYXIgZXN0w6kgY29sYXBzYWRvLlxuICAgIGNvbnN0IGhhbmRsZVJlZmV0Y2hTZXNzaW9uID0gKCkgPT4ge1xuICAgICAgY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBmZXRjaENoYXRzKHsgbGltaXQ6IDIwLCBvZmZzZXQ6IDAgfSlcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVmZXRjaC1zZXNzaW9uJywgaGFuZGxlUmVmZXRjaFNlc3Npb24pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIH1cbiAgfSwgW2ZldGNoQ2hhdHNdKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0QnV0dG9uID1cbiAgICAhc2hvd05ld0NoYXQgJiZcbiAgICAhaGFzRXJyb3IgJiZcbiAgICAhbG9hZGluZ0NoYXRzICYmXG4gICAgIWlzTGVnYWN5Q29udGV4dFNlc3Npb24gJiZcbiAgICAoKHVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpIHx8XG4gICAgICAoIXVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaXNfZGVsZXRlZCAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpKVxuXG4gIHJldHVybiAoXG4gICAgPFNDU1NpZGViYXJSb290ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICA8U0NTU2lkZWJhclRvb2xiYXIgJGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzT3BlbiA/IHQoJ2NvbnZlcnNhdGlvbnMuY29sbGFwc2UnKSA6IHQoJ2hpc3RvcnkudG9vbHRpcCcpfT5cbiAgICAgICAgICA8U0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVUb2dnbGVTaWRlYmFyfSBpc09wZW49e2lzT3Blbn0+XG4gICAgICAgICAgICB7aXNPcGVuID8gKFxuICAgICAgICAgICAgICA8Q2hldnJvbkRvdWJsZUxlZnQgY29sb3I9XCJyZ2JhKDEwMiwgMTAyLCAxMDIsIDEpXCIgd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEhpc3RvcnkgY29sb3I9XCJyZ2JhKDEzLCAxMywgMTMsIDEpXCIgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3Nob3dOZXdDaGF0QnV0dG9uID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0+XG4gICAgICAgICAgICA8U0NTV3JhcHBlck5ld0NoYXRJY29uIG9uQ2xpY2s9e2hhbmRsZU5ld0NoYXR9PlxuICAgICAgICAgICAgICA8TmV3Q2hhdCB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+XG4gICAgICAgICAgICA8L1NDU1dyYXBwZXJOZXdDaGF0SWNvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7IWlzT3BlbiAmJiBzaG93QWdlbnRzTmF2QmxvY2sgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29sbGFwc2VkRGl2aWRlciAvPlxuICAgICAgICAgICAge3Nob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm1haWFrZXJOYXYnKX0+XG4gICAgICAgICAgICAgICAgPFNDU1dyYXBwZXJBZ2VudHNOYXZJY29uXG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdtYWlha2VyJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdE1wT3BlbilcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgPC9TQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2FuVmlld0FnZW50cyA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NvbnZlcnNhdGlvbnMubXlBZ2VudHNOYXYnKX0+XG4gICAgICAgICAgICAgICAgPFNDU1dyYXBwZXJBZ2VudHNOYXZJY29uXG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeUFnZW50cylcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlKClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPE15QWdlbnRzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1dyYXBwZXJBZ2VudHNOYXZJY29uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDU1NpZGViYXJUb29sYmFyPlxuICAgICAgPFNDU1NpZGViYXJCb2R5ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICAgIHtpc09wZW4gPyAoXG4gICAgICAgICAgPFNDU1NpZGViYXJPcGVuUGFuZWw+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgICB7c2hvd0FnZW50c05hdkJsb2NrID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgIHtzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0TXBPcGVuKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ21haWFrZXInfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubWFpYWtlck5hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldz57dCgnaG9tZU1lbnUubWFpYWtlci5iYWRnZU5ldycpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge2NhblZpZXdBZ2VudHMgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeUFnZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSgpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8TXlBZ2VudHNOYXZJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm15QWdlbnRzTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmc+e3QoJ2NvbnZlcnNhdGlvbnMudGl0bGUnKX08L1NDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZz5cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c1Njcm9sbFxuICAgICAgICAgICAgICByZWY9e2NoYXRzQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAkaGFzQ2hhdHM9e2NoYXRzLmxlbmd0aCA+IDB9XG4gICAgICAgICAgICAgICRvZmZzZXRWYXJpYW50PXtoYXNFcnJvciA/ICdlcnJvcicgOiAnZGVmYXVsdCd9XG4gICAgICAgICAgICAgICRhZ2VudE5hdkJ1dHRvbkNvdW50PXthZ2VudE5hdkJ1dHRvbkNvdW50fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aGFzRXJyb3IgJiYgIWNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVUb3A+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvclN0YXRlIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlVG9wPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICApIDogbG9hZGluZ0NoYXRzID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTG9hZGluZ0FyZWE+XG4gICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJMb2FkaW5nQXJlYT5cbiAgICAgICAgICAgICAgKSA6IGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2NoYXRzLm1hcCgoY2hhdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8TGlzdEhpc3RvcnlDaGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGF0PXtjaGF0fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2hhdERhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkQ2hhdChjaGF0RGF0YS5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Hb1RvQ2hhdChjaGF0RGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01vZGFsT3Blbj17aXNPcGVuTW9kYWwgPT09IGNoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk9wZW5Nb2RhbD17aGFuZGxlT3Blbk1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZU1vZGFsPXtoYW5kbGVDbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGVsZXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlVXBkYXRlQ2hhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZENoYXQgPT09IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICB7aXNMb2FkaW5nTW9yZUNoYXRzICYmIChcbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJMb2FkTW9yZVJvdz5cbiAgICAgICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gY291bnQ9ezJ9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckxvYWRNb3JlUm93PlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVtcHR5Q2hhdHM+XG4gICAgICAgICAgICAgICAgICA8RW1wdHlIaXN0b3J5SWNvbiAvPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dD57dCgnY29udmVyc2F0aW9ucy5lbXB0eScpfTwvU0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0PlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVtcHR5Q2hhdHM+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDU1NpZGViYXJDaGF0c1Njcm9sbD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ2hhdHNGb290ZXI+XG4gICAgICAgICAgICAgIHtoYXNFcnJvciAmJiBjaGF0cy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPEVycm9ySWNvbiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPnt0KCdjb252ZXJzYXRpb25zLmVycm9yJyl9PC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlPlxuICAgICAgICAgICAgICAgIDwvU0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckNoYXRzRm9vdGVyPlxuICAgICAgICAgIDwvU0NTU2lkZWJhck9wZW5QYW5lbD5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyAkaXNPcGVuPXtpc09wZW59ICRqdXN0aWZ5QmV0d2Vlbj17ISFzZWxlY3RlZEFnZW50fT5cbiAgICAgICAgICB7c2VsZWN0ZWRBZ2VudCA/IDxGZWVkYmFja0J1dHRvbiBzZWxlY3RlZEFnZW50PXtzZWxlY3RlZEFnZW50fSBpc09wZW49e2lzT3Blbn0gLz4gOiBudWxsfVxuICAgICAgICA8L1NDU1NpZGViYXJGb290ZXJBY3Rpb25zPlxuICAgICAgPC9TQ1NTaWRlYmFyQm9keT5cbiAgICA8L1NDU1NpZGViYXJSb290PlxuICApXG59XG4iXSwibWFwcGluZ3Mi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
641
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJDaGV2cm9uRG91YmxlTGVmdCIsIkhpc3RvcnkiLCJDVUJ1dHRvbiIsIk1lbnVEb3RzIiwiUGVuY2lsIiwiVHJhc2giLCJUb29sdGlwIiwiRW1wdHlIaXN0b3J5SWNvbiIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlQ2hhdHMiLCJTaWRlYmFyQ2hhdHNTa2VsZXRvbiIsIkVycm9yU3RhdGUiLCJNQUlBSWNvbiIsIk1haWFTdG9yZUljb24iLCJNeUFnZW50c05hdkljb24iLCJOZXdDaGF0IiwiRVZFTlRTIiwidXNlRXZlbnQiLCJ1c2VUIiwiT3B0aW9uSXRlbSIsIkVkaXRRdWVzdGlvbk1vZGFsIiwiRGVsZXRlUXVlc3Rpb25Nb2RhbCIsIkVycm9ySWNvbiIsInVzZVVzZXIiLCJGZWVkYmFja0J1dHRvbiIsInVzZUdsb2JhbENvbnRleHQiLCJmZXRjaE1haWEiLCJtYXBDT1JMYW5nIiwiZm9ybWF0Q2hhdExpc3RUaXRsZU1lbnRpb25zIiwiZ2V0QWdlbnREaXNwbGF5TmFtZSIsImlzTWFya2V0cGxhY2VHbG9iYWxDbG9uZUFnZW50IiwiU2Vzc2lvbkdlbmVyYXRpbmdEb3QiLCJTZXNzaW9uVW5yZWFkRG90IiwidXNlSXNTZXNzaW9uR2VuZXJhdGluZyIsInVzZVNlc3Npb25NZXRhIiwidXNlU2Vzc2lvbnNTdG9yZSIsIlNDTEhDV3JhcHBlciIsIlNDTEhDV3JhcHBlckFnZW50IiwiU0NMSENXcmFwcGVyQWdlbnRUZXh0IiwiU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucyIsIlNDTEhDV3JhcHBlckNvbnRlbnQiLCJTQ0xIQ1dyYXBwZXJUaXRsZSIsIlNDTEhDV3JhcHBlclRpdGxlUm93IiwiU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiIsIlNDU1dyYXBwZXJOZXdDaGF0SWNvbiIsIlNDU1dyYXBwZXJBZ2VudHNOYXZJY29uIiwiU0NTU2lkZWJhclJvb3QiLCJTQ1NTaWRlYmFyVG9vbGJhciIsIlNDU1NpZGViYXJCb2R5IiwiU0NTU2lkZWJhck9wZW5QYW5lbCIsIlNDU1NpZGViYXJBZ2VudHNCbG9jayIsIlNDU1NpZGViYXJBZ2VudHNBY3Rpb25zIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b24iLCJTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsIiwiU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldyIsIlNDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZyIsIlNDU1NpZGViYXJDaGF0c1Njcm9sbCIsIlNDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uIiwiU0NTU2lkZWJhckVycm9yU3RhdGVUb3AiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXIiLCJTQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcCIsIlNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2UiLCJTQ1NTaWRlYmFyTG9hZGluZ0FyZWEiLCJTQ1NTaWRlYmFyTG9hZE1vcmVSb3ciLCJTQ1NTaWRlYmFyRW1wdHlDaGF0cyIsIlNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCIsIlNDU1NpZGViYXJDaGF0c0Zvb3RlciIsIlNDU1NpZGViYXJGb290ZXJBY3Rpb25zIiwiU0NTU2lkZWJhckNvbGxhcHNlZERpdmlkZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJhY3Rpb25zIiwiZWRpdCIsInByb3BzIiwiX29iamVjdFNwcmVhZCIsImRlbGV0ZSIsImFiYnJldmlhdGVTcGVjaWFsaXN0SW5BZ2VudE5hbWUiLCJhZ2VudE5hbWUiLCJyZXBsYWNlIiwiTGlzdEhpc3RvcnlDaGF0IiwiX3JlZiIsImNoYXQiLCJvbkNsaWNrIiwiaXNNb2RhbE9wZW4iLCJvbk9wZW5Nb2RhbCIsIm9uQ2xvc2VNb2RhbCIsImhhbmRsZXJzIiwiaXNTZWxlY3RlZCIsImluZGV4IiwidGV4dFJlZiIsImFnZW50UmVmIiwiZGlzcGxheVRpdGxlIiwidGl0bGUiLCJkaXNwbGF5QWdlbnQiLCJhZ2VudFR5cGUiLCJhZ2VudCIsImNvbnRleHROYW1lIiwicHJvamVjdE5hbWUiLCJjbGllbnROYW1lIiwiX3VzZVJlc2l6ZUxpc3RlbmVyIiwic2hvd1Rvb2x0aXAiLCJfdXNlUmVzaXplTGlzdGVuZXIyIiwic2hvd1Rvb2x0aXBBZ2VudCIsIl91c2VUIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbiIsInNldEFjdGlvbiIsImlzR2VuZXJhdGluZyIsInNlc3Npb25FeHRlcm5hbElkIiwic2Vzc2lvbk1ldGEiLCJpc1VucmVhZCIsIkJvb2xlYW4iLCJ1bnJlYWQiLCJtZW51SXRlbXMiLCJsYWJlbCIsIm9uQ2xpY2tJdGVtIiwiY2hhdElkIiwiSWNvbiIsImV2ZW50S2V5IiwicG1BaU1lbnVFZGl0IiwicG1BaU1lbnVEZWxldGUiLCJoYW5kbGVDb25maXJtQWN0aW9uIiwiY2hhdERhdGEiLCJoYW5kbGVVcGRhdGVDaGF0IiwiaGFuZGxlRGVsZXRlQ2hhdCIsImNoaWxkcmVuIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIiRpbmRleCIsImFyaWFMYWJlbCIsImlzV3JpdGluZyIsInJlZiIsImNvbmNhdCIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGUiLCJmb250U2l6ZSIsImVtb2ppIiwiaWNvbk9ubHkiLCJzaXplIiwidmFyaWFudCIsImV2ZW50IiwiaWQiLCJwb3NpdGlvbiIsInRvcCIsInJpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiekluZGV4IiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJtaW5XaWR0aCIsIm1hcCIsIl9yZWYyIiwib25DbG9zZSIsImhhbmRsZVNldElzT3Blbk1vZGFsIiwiU2lkZWJhciIsIl9yZWYzIiwiX3VzZXIkcGVybWlzc2lvbnMiLCJvbkdvVG9DaGF0IiwiX3JlZjMkb25FcnJvciIsIm9uRXJyb3IiLCJoYW5kbGVHb1RvSG9tZSIsImhhbmRsZU9wZW5NYXJrZXRwbGFjZSIsInNob3dOZXdDaGF0IiwicmVmZXRjaENoYXRzIiwiaGFuZGxlU2V0UmVmZXRjaENoYXRzIiwiaGFzRXJyb3IiLCJyZXNldFNlbGVjdGVkQ2hhdFJlZiIsIl9yZWYzJGFnZW50c05hdkFjdGl2ZSIsImFnZW50c05hdkFjdGl2ZSIsIl9yZWYzJGlzTGVnYWN5Q29udGV4dCIsImlzTGVnYWN5Q29udGV4dFNlc3Npb24iLCJfdXNlVDIiLCJpMThuIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzT3Blbk1vZGFsIiwic2V0SXNPcGVuTW9kYWwiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkQ2hhdCIsInNldFNlbGVjdGVkQ2hhdCIsImNoYXRzRmV0Y2hlZFJlZiIsImNoYXRzQ29udGFpbmVyUmVmIiwic2hvdWxkRmV0Y2hTZXNzaW9ucyIsInVzZXIiLCJldmVudEFtcGxpdHVkZSIsIl91c2VHbG9iYWxDb250ZXh0Iiwic2VsZWN0ZWRBZ2VudCIsInNlbGVjdEFnZW50Iiwic2V0UHJvamVjdCIsInNldENsaWVudCIsInNldFRhc2siLCJfdXNlQ2hhdHMiLCJsb2FkaW5nQ2hhdHMiLCJjaGF0cyIsImRlbGV0ZUNoYXQiLCJ1cGRhdGVDaGF0IiwiZmV0Y2hDaGF0cyIsImxpbWl0Iiwib2Zmc2V0IiwiaGFzTW9yZUNoYXRzIiwibG9hZE1vcmVDaGF0cyIsImlzTG9hZGluZ01vcmVDaGF0cyIsInVzZXJQZXJtaXNzaW9ucyIsInBlcm1pc3Npb25zIiwiYWlfYWdlbnRzIiwiY2FuQ3JlYXRlQWdlbnRzIiwiY3JlYXRlIiwiaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzIiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsImNhblZpZXdBZ2VudHMiLCJ2aWV3Iiwic2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiIsIk1BSUFfTUFSS0VUUExBQ0VfTUFJQUtFUiIsImFnZW50TmF2QnV0dG9uQ291bnQiLCJzaG93QWdlbnRzTmF2QmxvY2siLCJjdXJyZW50IiwiX3JlZjQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVPcGVuTW9kYWwiLCJoYW5kbGVDbG9zZU1vZGFsIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwidGFyZ2V0IiwiY2xvc2VzdCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVUb2dnbGVTaWRlYmFyIiwiYWlDaGF0U2lkZWJhciIsImhhbmRsZU9wZW5DcmVhdGVBZ2VudCIsIl9yZWY1IiwiX2NhbGxlZTIiLCJyZXNwb25zZSIsImRhdGEiLCJtYWlha2VyQWdlbnQiLCJfdCIsIl9jb250ZXh0MiIsInBhdGgiLCJsYW5ndWFnZSIsIm1ldGhvZCIsInNlbnQiLCJqc29uIiwiZmluZCIsImFnZW50SXRlbSIsImFicnVwdCIsImhhbmRsZVNjcm9sbCIsIl9jaGF0c0NvbnRhaW5lclJlZiRjdSIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImlzQXRCb3R0b20iLCJjb250YWluZXIiLCJoYW5kbGVOZXdDaGF0IiwiX3JlZjYiLCJfY2FsbGVlMyIsIl9jb250ZXh0MyIsImFpU2lkZWJhck5ld0NoYXQiLCJoYW5kbGVSZWZldGNoU2Vzc2lvbiIsInNob3dOZXdDaGF0QnV0dG9uIiwiaXNfZGVsZXRlZCIsImhhc19ub3RfcGVybWlzc2lvbnMiLCJoYXNfbm90X2FjY2VzcyIsIiRpc09wZW4iLCJjb2xvciIsIiRhY3RpdmUiLCJhaUNoYXRNcE9wZW4iLCJhaVNpZGViYXJNeUFnZW50cyIsInR5cGUiLCIkaGFzQ2hhdHMiLCJsZW5ndGgiLCIkb2Zmc2V0VmFyaWFudCIsIiRhZ2VudE5hdkJ1dHRvbkNvdW50IiwiZ2V0U3RhdGUiLCJtYXJrVW5yZWFkIiwiY291bnQiLCIkanVzdGlmeUJldHdlZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvU2lkZWJhci9TaWRlYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvdyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgTXV0YWJsZVJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGV2cm9uRG91YmxlTGVmdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3VibGVMZWZ0J1xuaW1wb3J0IHsgSGlzdG9yeSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0hpc3RvcnknXG5pbXBvcnQgeyBDVUJ1dHRvbiB9IGZyb20gJ0Bwcm9qZWN0Y29yL2J1dHRvbi9saWIvY29tcG9uZW50cy9DVUJ1dHRvbidcbmltcG9ydCB7IE1lbnVEb3RzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvTWVudURvdHMnXG5pbXBvcnQgeyBQZW5jaWwgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QZW5jaWwnXG5pbXBvcnQgeyBUcmFzaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1RyYXNoJ1xuXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5cbmltcG9ydCB7IEVtcHR5SGlzdG9yeUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FbXB0eUhpc3RvcnknXG5pbXBvcnQgeyB1c2VSZXNpemVMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVJlc2l6ZSdcbmltcG9ydCB7IHVzZUNoYXRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdHMnXG5pbXBvcnQgeyBTaWRlYmFyQ2hhdHNTa2VsZXRvbiB9IGZyb20gJy4vU2lkZWJhci5za2VsZXRvbidcbmltcG9ydCB7IEVycm9yU3RhdGUsIE1BSUFJY29uLCBNYWlhU3RvcmVJY29uLCBNeUFnZW50c05hdkljb24sIE5ld0NoYXQgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgT3B0aW9uSXRlbSB9IGZyb20gJy4uLy4uL2F0b21zL0NhcmRNZW51L0NhcmRNZW51J1xuaW1wb3J0IHsgRWRpdFF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRWRpdFF1ZXN0aW9uTW9kYWwnXG5pbXBvcnQgeyBEZWxldGVRdWVzdGlvbk1vZGFsIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL0RlbGV0ZVF1ZXN0aW9uTW9kYWwnXG5pbXBvcnQgeyBFcnJvckljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucy9FcnJvckljb24nXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IEZlZWRiYWNrQnV0dG9uIH0gZnJvbSAnLi4vLi4vYXRvbXMvRmVlZGJhY2tCdXR0b24nXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvY2xpZW50J1xuaW1wb3J0IHsgbWFwQ09STGFuZyB9IGZyb20gJy4uLy4uLy4uL2xhbmcvdXRpbHMnXG5pbXBvcnQgeyBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZW5kZXJDb250ZXh0TWVudGlvbnMnXG5pbXBvcnQgeyBnZXRBZ2VudERpc3BsYXlOYW1lLCBpc01hcmtldHBsYWNlR2xvYmFsQ2xvbmVBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FnZW50RGlzcGxheU5hbWUnXG5pbXBvcnQgeyBTZXNzaW9uR2VuZXJhdGluZ0RvdCB9IGZyb20gJy4uLy4uL2F0b21zL1Nlc3Npb25HZW5lcmF0aW5nRG90J1xuaW1wb3J0IHsgU2Vzc2lvblVucmVhZERvdCB9IGZyb20gJy4uLy4uL2F0b21zL1Nlc3Npb25VbnJlYWREb3QnXG5pbXBvcnQgeyB1c2VJc1Nlc3Npb25HZW5lcmF0aW5nLCB1c2VTZXNzaW9uTWV0YSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25NZXRhJ1xuaW1wb3J0IHsgdXNlU2Vzc2lvbnNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25zU3RvcmUnXG5pbXBvcnQge1xuICBTQ0xIQ1dyYXBwZXIsXG4gIFNDTEhDV3JhcHBlckFnZW50LFxuICBTQ0xIQ1dyYXBwZXJBZ2VudFRleHQsXG4gIFNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnMsXG4gIFNDTEhDV3JhcHBlckNvbnRlbnQsXG4gIFNDTEhDV3JhcHBlclRpdGxlLFxuICBTQ0xIQ1dyYXBwZXJUaXRsZVJvdyxcbiAgU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbixcbiAgU0NTV3JhcHBlck5ld0NoYXRJY29uLFxuICBTQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbixcbn0gZnJvbSAnLi9TaWRlYmFyLnN0eWxlcydcbmltcG9ydCB7XG4gIFNDU1NpZGViYXJSb290LFxuICBTQ1NTaWRlYmFyVG9vbGJhcixcbiAgU0NTU2lkZWJhckJvZHksXG4gIFNDU1NpZGViYXJPcGVuUGFuZWwsXG4gIFNDU1NpZGViYXJBZ2VudHNCbG9jayxcbiAgU0NTU2lkZWJhckFnZW50c0FjdGlvbnMsXG4gIFNDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsLFxuICBTQ1NTaWRlYmFyTWFpYWtlck5hdkJhZGdlTmV3LFxuICBTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmcsXG4gIFNDU1NpZGViYXJDaGF0c1Njcm9sbCxcbiAgU0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4sXG4gIFNDU1NpZGViYXJFcnJvclN0YXRlVG9wLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXIsXG4gIFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwLFxuICBTQ1NTaWRlYmFyRXJyb3JCYW5uZXJNZXNzYWdlLFxuICBTQ1NTaWRlYmFyTG9hZGluZ0FyZWEsXG4gIFNDU1NpZGViYXJMb2FkTW9yZVJvdyxcbiAgU0NTU2lkZWJhckVtcHR5Q2hhdHMsXG4gIFNDU1NpZGViYXJFbXB0eUNoYXRzVGV4dCxcbiAgU0NTU2lkZWJhckNoYXRzRm9vdGVyLFxuICBTQ1NTaWRlYmFyRm9vdGVyQWN0aW9ucyxcbiAgU0NTU2lkZWJhckNvbGxhcHNlZERpdmlkZXIsXG59IGZyb20gJy4vU2lkZWJhci5sYXlvdXQuc3R5bGVzJ1xuXG5jb25zdCBhY3Rpb25zID0ge1xuICBlZGl0OiAocHJvcHM6IGFueSkgPT4gPEVkaXRRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG4gIGRlbGV0ZTogKHByb3BzOiBhbnkpID0+IDxEZWxldGVRdWVzdGlvbk1vZGFsIHsuLi5wcm9wc30gLz4sXG59XG5cbi8qKiBBYnJldmlhIFwiZXNwZWNpYWxpc3RhXCIvXCJlc3BlY2lhbGlzdFwiIOKGkiBcIkVzcC5cIiAoRVMvUFQpIHkgXCJzcGVjaWFsaXN0XCIg4oaSIFwiU3BlYy5cIiAoRU4pIGVuIGVsIG5vbWJyZSBkZWwgYWdlbnRlLiAqL1xuZnVuY3Rpb24gYWJicmV2aWF0ZVNwZWNpYWxpc3RJbkFnZW50TmFtZShhZ2VudE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghYWdlbnROYW1lIHx8IHR5cGVvZiBhZ2VudE5hbWUgIT09ICdzdHJpbmcnKSByZXR1cm4gYWdlbnROYW1lXG4gIHJldHVybiBhZ2VudE5hbWUucmVwbGFjZSgvXFxiKGVzcGVjaWFsaXN0YXxlc3BlY2lhbGlzdClcXGIvZ2ksICdFc3AuJykucmVwbGFjZSgvXFxic3BlY2lhbGlzdFxcYi9naSwgJ1NwZWMuJylcbn1cblxuY29uc3QgTGlzdEhpc3RvcnlDaGF0ID0gKHtcbiAgY2hhdCxcbiAgb25DbGljayxcbiAgaXNNb2RhbE9wZW4sXG4gIG9uT3Blbk1vZGFsLFxuICBvbkNsb3NlTW9kYWwsXG4gIGhhbmRsZXJzLFxuICBpc1NlbGVjdGVkLFxuICBpbmRleCxcbn06IHtcbiAgY2hhdDogYW55XG4gIG9uQ2xpY2s6IChjaGF0OiBhbnkpID0+IHZvaWRcbiAgaXNNb2RhbE9wZW46IGJvb2xlYW5cbiAgb25PcGVuTW9kYWw6IChjaGF0SWQ6IHN0cmluZykgPT4gdm9pZFxuICBvbkNsb3NlTW9kYWw6ICgpID0+IHZvaWRcbiAgaGFuZGxlcnM6IHtcbiAgICBoYW5kbGVEZWxldGVDaGF0OiAoY2hhdDogYW55KSA9PiB2b2lkXG4gICAgaGFuZGxlVXBkYXRlQ2hhdDogKGNoYXQ6IGFueSkgPT4gdm9pZFxuICB9XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW5cbiAgaW5kZXg6IG51bWJlclxufSkgPT4ge1xuICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBhZ2VudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgZGlzcGxheVRpdGxlID0gdXNlTWVtbygoKSA9PiBmb3JtYXRDaGF0TGlzdFRpdGxlTWVudGlvbnMoY2hhdC50aXRsZSksIFtjaGF0LnRpdGxlXSlcbiAgY29uc3QgZGlzcGxheUFnZW50ID0gZ2V0QWdlbnREaXNwbGF5TmFtZShjaGF0LmFnZW50VHlwZSwgY2hhdC5hZ2VudClcbiAgY29uc3QgY29udGV4dE5hbWUgPSBjaGF0LnByb2plY3ROYW1lIHx8IGNoYXQuY2xpZW50TmFtZVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbZGlzcGxheVRpdGxlXSlcbiAgY29uc3QgeyBzaG93VG9vbHRpcDogc2hvd1Rvb2x0aXBBZ2VudCB9ID0gdXNlUmVzaXplTGlzdGVuZXIoYWdlbnRSZWYsIFtjaGF0LmFnZW50XSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgW2FjdGlvbiwgc2V0QWN0aW9uXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGlzR2VuZXJhdGluZyA9IHVzZUlzU2Vzc2lvbkdlbmVyYXRpbmcoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgY29uc3Qgc2Vzc2lvbk1ldGEgPSB1c2VTZXNzaW9uTWV0YShjaGF0LnNlc3Npb25FeHRlcm5hbElkKVxuICBjb25zdCBpc1VucmVhZCA9IEJvb2xlYW4oc2Vzc2lvbk1ldGE/LnVucmVhZCkgJiYgIWlzR2VuZXJhdGluZ1xuXG4gIGNvbnN0IG1lbnVJdGVtcyA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LnJlbmFtZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2VkaXQnKVxuICAgICAgICBvbk9wZW5Nb2RhbChjaGF0SWQpXG4gICAgICB9LFxuICAgICAgSWNvbjogUGVuY2lsLFxuICAgICAgZXZlbnRLZXk6IEVWRU5UUy5wbUFpTWVudUVkaXQsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogdCgnaGlzdG9yeS5tZW51LmRlbGV0ZScpLFxuICAgICAgb25DbGlja0l0ZW06IChjaGF0SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBzZXRBY3Rpb24oJ2RlbGV0ZScpXG4gICAgICAgIG9uT3Blbk1vZGFsKGNoYXRJZClcbiAgICAgIH0sXG4gICAgICBJY29uOiBUcmFzaCxcbiAgICAgIGV2ZW50S2V5OiBFVkVOVFMucG1BaU1lbnVEZWxldGUsXG4gICAgfSxcbiAgXVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1BY3Rpb24gPSAoY2hhdERhdGE6IGFueSkgPT4ge1xuICAgIGlmIChhY3Rpb24gPT09ICdlZGl0Jykge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlVXBkYXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlcnMuaGFuZGxlRGVsZXRlQ2hhdChjaGF0RGF0YSlcbiAgICB9XG4gICAgc2V0QWN0aW9uKG51bGwpXG4gICAgb25DbG9zZU1vZGFsKClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTQ0xIQ1dyYXBwZXJDb250ZW50XG4gICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBvbkNsaWNrKGNoYXQpXG4gICAgICAgIH19XG4gICAgICAgIGtleT17YGNvbnZlcnNhdGlvbi0ke2NoYXQuc2Vzc2lvbkV4dGVybmFsSWR9YH1cbiAgICAgICAgaXNNb2RhbE9wZW49e2lzTW9kYWxPcGVufVxuICAgICAgICBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgICAkaW5kZXg9e2luZGV4fVxuICAgICAgPlxuICAgICAgICA8U0NMSENXcmFwcGVyPlxuICAgICAgICAgIDxTQ0xIQ1dyYXBwZXJUaXRsZVJvdz5cbiAgICAgICAgICAgIHtpc0dlbmVyYXRpbmcgPyAoXG4gICAgICAgICAgICAgIDxTZXNzaW9uR2VuZXJhdGluZ0RvdCBhcmlhTGFiZWw9e3QoJ2NvbnZlcnNhdGlvbnMuZ2VuZXJhdGluZycpfSBpc1dyaXRpbmc9e3Nlc3Npb25NZXRhPy5pc1dyaXRpbmd9IC8+XG4gICAgICAgICAgICApIDogaXNVbnJlYWQgPyAoXG4gICAgICAgICAgICAgIDxTZXNzaW9uVW5yZWFkRG90IGFyaWFMYWJlbD17dCgnY29udmVyc2F0aW9ucy51bnJlYWQnKX0gLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3Nob3dUb29sdGlwID8gZGlzcGxheVRpdGxlIDogJyd9PlxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyVGl0bGUgcmVmPXt0ZXh0UmVmfT57ZGlzcGxheVRpdGxlIHx8IHQoJ2NvbnZlcnNhdGlvbnMuZW1wdHlMYWJlbCcpfTwvU0NMSENXcmFwcGVyVGl0bGU+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJUaXRsZVJvdz5cbiAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17c2hvd1Rvb2x0aXBBZ2VudCA/IGRpc3BsYXlBZ2VudCArIChjb250ZXh0TmFtZSA/IGAgLSAke2NvbnRleHROYW1lfWAgOiAnJykgOiAnJ30+XG4gICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnQ+XG4gICAgICAgICAgICAgIHtjaGF0LmFnZW50VHlwZSA9PT0gJ2Nsb25lJyB8fCBjaGF0LmFnZW50VHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgPyAoXG4gICAgICAgICAgICAgICAgPE1BSUFJY29uIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzE0cHgnIH19PntjaGF0LmVtb2ppfTwvc3Bhbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8U0NMSENXcmFwcGVyQWdlbnRUZXh0IHJlZj17YWdlbnRSZWZ9PlxuICAgICAgICAgICAgICAgIHtjaGF0LmFnZW50VHlwZSA9PT0gJ2Nsb25lJyB8fCBjaGF0LmFnZW50VHlwZSA9PT0gJ29yY2hlc3RyYXRvcidcbiAgICAgICAgICAgICAgICAgID8gYWJicmV2aWF0ZVNwZWNpYWxpc3RJbkFnZW50TmFtZShjaGF0LmFnZW50KVxuICAgICAgICAgICAgICAgICAgOiBjaGF0LmFnZW50fVxuICAgICAgICAgICAgICAgIHtjaGF0LnByb2plY3ROYW1lICYmIGAgLSAke2NoYXQucHJvamVjdE5hbWV9YH1cbiAgICAgICAgICAgICAgPC9TQ0xIQ1dyYXBwZXJBZ2VudFRleHQ+XG4gICAgICAgICAgICA8L1NDTEhDV3JhcHBlckFnZW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9TQ0xIQ1dyYXBwZXI+XG4gICAgICAgIDxTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zPlxuICAgICAgICAgIDxDVUJ1dHRvblxuICAgICAgICAgICAgaWNvbk9ubHlcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgIG9uT3Blbk1vZGFsKGNoYXQuaWQpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxNZW51RG90cyB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICB7aXNNb2RhbE9wZW4gJiYgIWFjdGlvbiAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGRhdGEtbW9kYWwtY29udGFpbmVyXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgdG9wOiAnMzJweCcsXG4gICAgICAgICAgICAgICAgcmlnaHQ6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgekluZGV4OiAxMDAwLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDIyNCwgMjI0LCAyMjQsIDEpJyxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzEyNHB4JyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge21lbnVJdGVtcy5tYXAoKHsgbGFiZWwsIG9uQ2xpY2tJdGVtLCBJY29uLCBldmVudEtleSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPE9wdGlvbkl0ZW1cbiAgICAgICAgICAgICAgICAgIGtleT17bGFiZWx9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrSXRlbShjaGF0LmlkKX1cbiAgICAgICAgICAgICAgICAgIEljb249e0ljb259XG4gICAgICAgICAgICAgICAgICBldmVudEtleT17ZXZlbnRLZXl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnM+XG4gICAgICA8L1NDTEhDV3JhcHBlckNvbnRlbnQ+XG4gICAgICB7ISFhY3Rpb24gJiZcbiAgICAgICAgYWN0aW9uc1thY3Rpb25dKHtcbiAgICAgICAgICBvbkNsb3NlOiAoKSA9PiB7XG4gICAgICAgICAgICBvbkNsb3NlTW9kYWwoKVxuICAgICAgICAgICAgc2V0QWN0aW9uKG51bGwpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjaGF0LFxuICAgICAgICAgIGhhbmRsZXJzOiB7XG4gICAgICAgICAgICBoYW5kbGVDb25maXJtQWN0aW9uLFxuICAgICAgICAgICAgaGFuZGxlU2V0SXNPcGVuTW9kYWw6IG9uQ2xvc2VNb2RhbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KX1cbiAgICA8Lz5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgU2lkZWJhciA9ICh7XG4gIG9uR29Ub0NoYXQsXG4gIG9uRXJyb3IgPSAoKSA9PiBudWxsLFxuICBoYW5kbGVHb1RvSG9tZSxcbiAgaGFuZGxlT3Blbk1hcmtldHBsYWNlLFxuICBzaG93TmV3Q2hhdCxcbiAgcmVmZXRjaENoYXRzLFxuICBoYW5kbGVTZXRSZWZldGNoQ2hhdHMsXG4gIGhhc0Vycm9yLFxuICByZXNldFNlbGVjdGVkQ2hhdFJlZixcbiAgYWdlbnRzTmF2QWN0aXZlID0gbnVsbCxcbiAgaXNMZWdhY3lDb250ZXh0U2Vzc2lvbiA9IGZhbHNlLFxufToge1xuICBvbkdvVG9DaGF0OiAoY2hhdElkOiBzdHJpbmcpID0+IHZvaWRcbiAgb25FcnJvcjogKCkgPT4gdm9pZFxuICBoYW5kbGVHb1RvSG9tZTogKCkgPT4gdm9pZFxuICBoYW5kbGVPcGVuTWFya2V0cGxhY2U6ICgpID0+IHZvaWRcbiAgc2hvd05ld0NoYXQ6IGJvb2xlYW5cbiAgcmVmZXRjaENoYXRzOiBib29sZWFuXG4gIGhhbmRsZVNldFJlZmV0Y2hDaGF0czogKHJlZmV0Y2g6IGJvb2xlYW4pID0+IHZvaWRcbiAgaGFzRXJyb3I6IGJvb2xlYW5cbiAgcmVzZXRTZWxlY3RlZENoYXRSZWY/OiBNdXRhYmxlUmVmT2JqZWN0PCgoKSA9PiB2b2lkKSB8IG51bGw+XG4gIC8qKiBSZXNhbHRhIE1haWFrZXIgbyBNaXMgYWdlbnRlcyAqL1xuICBhZ2VudHNOYXZBY3RpdmU/OiAnbWFpYWtlcicgfCAnbXlBZ2VudHMnIHwgbnVsbFxuICAvKiogQ29udmVyc2FjacOzbiBkZSB1biBjbG9uZSBsZWdhY3kgKGFnZW50X3R5cGUgY2xvbmUgKyBlbnRpdHkgcHJvamVjdC9jbGllbnQvdGFzayk6IG9jdWx0YSBcIm51ZXZvIGNoYXRcIi4gKi9cbiAgaXNMZWdhY3lDb250ZXh0U2Vzc2lvbj86IGJvb2xlYW5cbn0pID0+IHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNPcGVuTW9kYWwsIHNldElzT3Blbk1vZGFsXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzZWxlY3RlZENoYXQsIHNldFNlbGVjdGVkQ2hhdF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBjaGF0c0ZldGNoZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGNoYXRzQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBzaG91bGRGZXRjaFNlc3Npb25zID0gaXNPcGVuXG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IHsgYWdlbnQ6IHNlbGVjdGVkQWdlbnQsIHNlbGVjdEFnZW50LCBzZXRQcm9qZWN0LCBzZXRDbGllbnQsIHNldFRhc2sgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7XG4gICAgbG9hZGluZ0NoYXRzLFxuICAgIGNoYXRzLFxuICAgIGRlbGV0ZUNoYXQsXG4gICAgdXBkYXRlQ2hhdCxcbiAgICBmZXRjaENoYXRzLFxuICAgIGxpbWl0LFxuICAgIG9mZnNldCxcbiAgICBoYXNNb3JlQ2hhdHMsXG4gICAgbG9hZE1vcmVDaGF0cyxcbiAgICBpc0xvYWRpbmdNb3JlQ2hhdHMsXG4gIH0gPSB1c2VDaGF0cyh7XG4gICAgb25FcnJvcixcbiAgfSlcblxuICBjb25zdCB1c2VyUGVybWlzc2lvbnMgPSB1c2VyPy5wZXJtaXNzaW9ucz8uYWlfYWdlbnRzXG4gIGNvbnN0IGNhbkNyZWF0ZUFnZW50cyA9ICEhdXNlclBlcm1pc3Npb25zPy5jcmVhdGVcbiAgY29uc3QgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzID0gISF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICBjb25zdCBjYW5WaWV3QWdlbnRzID0gISF1c2VyUGVybWlzc2lvbnM/LnZpZXcgJiYgaGFzTXVsdGlBZ2VudHNGZWF0dXJlQWNjZXNzXG4gIGNvbnN0IHNob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPSAhIWNhbkNyZWF0ZUFnZW50cyAmJiAhIXdpbmRvdy5NQUlBX01BUktFVFBMQUNFX01BSUFLRVJcbiAgY29uc3QgYWdlbnROYXZCdXR0b25Db3VudCA9ICgoc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiA/IDEgOiAwKSArIChjYW5WaWV3QWdlbnRzID8gMSA6IDApKSBhcyAwIHwgMSB8IDJcbiAgY29uc3Qgc2hvd0FnZW50c05hdkJsb2NrID0gc2hvd01hcmtldHBsYWNlU2lkZWJhckJ1dHRvbiB8fCBjYW5WaWV3QWdlbnRzXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVzZXRTZWxlY3RlZENoYXRSZWYpIHtcbiAgICAgIHJlc2V0U2VsZWN0ZWRDaGF0UmVmLmN1cnJlbnQgPSAoKSA9PiBzZXRTZWxlY3RlZENoYXQobnVsbClcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNldFNlbGVjdGVkQ2hhdFJlZikge1xuICAgICAgICByZXNldFNlbGVjdGVkQ2hhdFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgIH1cbiAgfSwgW3Jlc2V0U2VsZWN0ZWRDaGF0UmVmXSlcblxuICBjb25zdCBoYW5kbGVEZWxldGVDaGF0ID0gYXN5bmMgKGNoYXQ6IGFueSkgPT4ge1xuICAgIGRlbGV0ZUNoYXQoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgIGhhbmRsZUdvVG9Ib21lKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVVwZGF0ZUNoYXQgPSAoY2hhdDogYW55KSA9PiB7XG4gICAgdXBkYXRlQ2hhdChjaGF0KVxuICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVPcGVuTW9kYWwgPSAoY2hhdElkOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwgJiYgaXNPcGVuTW9kYWwgIT09IGNoYXRJZCkge1xuICAgICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SXNPcGVuTW9kYWwoY2hhdElkKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0SXNPcGVuTW9kYWwobnVsbClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoaXNPcGVuTW9kYWwgJiYgIShldmVudC50YXJnZXQgYXMgRWxlbWVudCkuY2xvc2VzdCgnW2RhdGEtbW9kYWwtY29udGFpbmVyXScpKSB7XG4gICAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzT3Blbk1vZGFsKSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFtpc09wZW5Nb2RhbF0pXG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlU2lkZWJhciA9ICgpID0+IHtcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTaWRlYmFyLCB7IGFjdGlvbjogaXNPcGVuID8gJ2Nsb3NlJyA6ICdvcGVuJyB9KVxuICAgIHNldElzT3BlbihwcmV2ID0+ICFwcmV2KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlT3BlbkNyZWF0ZUFnZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6IGBhZ2VudHM/YWdlbnRfdHlwZT1jbG9uZSZlbnRpdHk9Z2xvYmFsJmxhbmc9JHttYXBDT1JMYW5nKGkxOG4ubGFuZ3VhZ2UpfWAsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB9KVxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgY29uc3QgbWFpYWtlckFnZW50ID0gKGRhdGEuZGF0YSB8fCBbXSkuZmluZCgoYWdlbnRJdGVtOiB7IHR5cGU/OiBzdHJpbmc7IGVudGl0eT86IHN0cmluZzsgbmFtZT86IHN0cmluZyB9KSA9PlxuICAgICAgICBpc01hcmtldHBsYWNlR2xvYmFsQ2xvbmVBZ2VudChhZ2VudEl0ZW0pXG4gICAgICApXG5cbiAgICAgIGlmICghbWFpYWtlckFnZW50KSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBzZXRQcm9qZWN0KG51bGwpXG4gICAgICBzZXRDbGllbnQ/LihudWxsKVxuICAgICAgc2V0VGFzayhudWxsKVxuICAgICAgLy8gaGFuZGxlR29Ub0hvbWUgcHVlZGUgcmVzZWxlY2Npb25hciBhZ2VudHMuZGF0YVswXSBzaSBlbCBhZ2VudGUgZ2xvYmFsIGF1biBlc3RhIGVuIG51bGxcbiAgICAgIC8vIChjbG9zdXJlIHN0YWxlIGRlIGxhIHNlY2Npb24gXCJNaXMgYWdlbnRlc1wiKSwgcG9yIGVzbyBzZWxlY3RBZ2VudChtYWlha2VyQWdlbnQpIHZhIGRlc3B1ZXMuXG4gICAgICBoYW5kbGVHb1RvSG9tZSgpXG4gICAgICBzZWxlY3RBZ2VudChtYWlha2VyQWdlbnQpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG9uRXJyb3IoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gUHJpbWVyYSBjYXJnYSBwZXJlem9zYSBkZSBsYXMgY29udmVyc2FjaW9uZXM6IGFsIGFicmlyIGVsIHNpZGViYXIgcG9yIHByaW1lcmEgdmV6LlxuICAgIGlmICghY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGlmIChzaG91bGRGZXRjaFNlc3Npb25zKSB7XG4gICAgICAgIGNoYXRzRmV0Y2hlZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICBmZXRjaENoYXRzKHsgbGltaXQsIG9mZnNldCB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIC8vIFJlZmV0Y2ggc29saWNpdGFkbyBwb3IgcHJvcDogc2UgZWplY3V0YSBhdW5xdWUgZWwgc2lkZWJhciBlc3TDqSBjb2xhcHNhZG8uXG4gICAgaWYgKHJlZmV0Y2hDaGF0cykge1xuICAgICAgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQgfSlcbiAgICAgIGhhbmRsZVNldFJlZmV0Y2hDaGF0cyhmYWxzZSlcbiAgICB9XG4gIH0sIFtzaG91bGRGZXRjaFNlc3Npb25zLCByZWZldGNoQ2hhdHMsIGhhbmRsZVNldFJlZmV0Y2hDaGF0cywgZmV0Y2hDaGF0cywgbGltaXQsIG9mZnNldF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAoIWNoYXRzQ29udGFpbmVyUmVmLmN1cnJlbnQgfHwgIWhhc01vcmVDaGF0cyB8fCBpc0xvYWRpbmdNb3JlQ2hhdHMgfHwgaGFzRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY2hhdHNDb250YWluZXJSZWYuY3VycmVudFxuICAgICAgY29uc3QgaXNBdEJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMFxuXG4gICAgICBpZiAoaXNBdEJvdHRvbSkge1xuICAgICAgICBsb2FkTW9yZUNoYXRzKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBjaGF0c0NvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2hhc01vcmVDaGF0cywgaXNMb2FkaW5nTW9yZUNoYXRzLCBsb2FkTW9yZUNoYXRzLCBoYXNFcnJvcl0pXG5cbiAgY29uc3QgaGFuZGxlTmV3Q2hhdCA9IGFzeW5jICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlTaWRlYmFyTmV3Q2hhdClcbiAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgIHNldElzT3Blbk1vZGFsKG51bGwpXG4gICAgfVxuICAgIHNldFNlbGVjdGVkQ2hhdChudWxsKVxuICAgIC8vIFJlZnJlc2NhbW9zIGxhcyBjb252ZXJzYWNpb25lcyBhdW5xdWUgZWwgc2lkZWJhciBlc3TDqSBjb2xhcHNhZG8uXG4gICAgY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgYXdhaXQgZmV0Y2hDaGF0cyh7IGxpbWl0LCBvZmZzZXQ6IDAgfSlcbiAgICBoYW5kbGVHb1RvSG9tZSgpXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIEFsIGNyZWFyL2FjdHVhbGl6YXIgdW5hIGNvbnZlcnNhY2nDs24gcmVmcmVzY2Ftb3MgbGEgbGlzdGEgYXVucXVlIGVsIHNpZGViYXIgZXN0w6kgY29sYXBzYWRvLlxuICAgIGNvbnN0IGhhbmRsZVJlZmV0Y2hTZXNzaW9uID0gKCkgPT4ge1xuICAgICAgY2hhdHNGZXRjaGVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBmZXRjaENoYXRzKHsgbGltaXQ6IDIwLCBvZmZzZXQ6IDAgfSlcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVmZXRjaC1zZXNzaW9uJywgaGFuZGxlUmVmZXRjaFNlc3Npb24pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3JlZmV0Y2gtc2Vzc2lvbicsIGhhbmRsZVJlZmV0Y2hTZXNzaW9uKVxuICAgIH1cbiAgfSwgW2ZldGNoQ2hhdHNdKVxuXG4gIGNvbnN0IHNob3dOZXdDaGF0QnV0dG9uID1cbiAgICAhc2hvd05ld0NoYXQgJiZcbiAgICAhaGFzRXJyb3IgJiZcbiAgICAhbG9hZGluZ0NoYXRzICYmXG4gICAgIWlzTGVnYWN5Q29udGV4dFNlc3Npb24gJiZcbiAgICAoKHVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgIXNlbGVjdGVkQWdlbnQ/LmlzX2RlbGV0ZWQgJiZcbiAgICAgICFzZWxlY3RlZEFnZW50Py5oYXNfbm90X3Blcm1pc3Npb25zICYmXG4gICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpIHx8XG4gICAgICAoIXVzZXJQZXJtaXNzaW9ucz8udmlldyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaXNfZGVsZXRlZCAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9wZXJtaXNzaW9ucyAmJlxuICAgICAgICAhc2VsZWN0ZWRBZ2VudD8uaGFzX25vdF9hY2Nlc3MpKVxuXG4gIHJldHVybiAoXG4gICAgPFNDU1NpZGViYXJSb290ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICA8U0NTU2lkZWJhclRvb2xiYXIgJGlzT3Blbj17aXNPcGVufT5cbiAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzT3BlbiA/IHQoJ2NvbnZlcnNhdGlvbnMuY29sbGFwc2UnKSA6IHQoJ2hpc3RvcnkudG9vbHRpcCcpfT5cbiAgICAgICAgICA8U0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVUb2dnbGVTaWRlYmFyfSBpc09wZW49e2lzT3Blbn0+XG4gICAgICAgICAgICB7aXNPcGVuID8gKFxuICAgICAgICAgICAgICA8Q2hldnJvbkRvdWJsZUxlZnQgY29sb3I9XCJyZ2JhKDEwMiwgMTAyLCAxMDIsIDEpXCIgd2lkdGg9ezE2fSBoZWlnaHQ9ezE2fSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEhpc3RvcnkgY29sb3I9XCJyZ2JhKDEzLCAxMywgMTMsIDEpXCIgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1NDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAge3Nob3dOZXdDaGF0QnV0dG9uID8gKFxuICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm5ld0NoYXQnKX0+XG4gICAgICAgICAgICA8U0NTV3JhcHBlck5ld0NoYXRJY29uIG9uQ2xpY2s9e2hhbmRsZU5ld0NoYXR9PlxuICAgICAgICAgICAgICA8TmV3Q2hhdCB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+XG4gICAgICAgICAgICA8L1NDU1dyYXBwZXJOZXdDaGF0SWNvbj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7IWlzT3BlbiAmJiBzaG93QWdlbnRzTmF2QmxvY2sgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29sbGFwc2VkRGl2aWRlciAvPlxuICAgICAgICAgICAge3Nob3dNYXJrZXRwbGFjZVNpZGViYXJCdXR0b24gPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjb252ZXJzYXRpb25zLm1haWFrZXJOYXYnKX0+XG4gICAgICAgICAgICAgICAgPFNDU1dyYXBwZXJBZ2VudHNOYXZJY29uXG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdtYWlha2VyJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdE1wT3BlbilcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgPC9TQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7Y2FuVmlld0FnZW50cyA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NvbnZlcnNhdGlvbnMubXlBZ2VudHNOYXYnKX0+XG4gICAgICAgICAgICAgICAgPFNDU1dyYXBwZXJBZ2VudHNOYXZJY29uXG4gICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeUFnZW50cylcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3Blbk1hcmtldHBsYWNlKClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPE15QWdlbnRzTmF2SWNvbiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1dyYXBwZXJBZ2VudHNOYXZJY29uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NDU1NpZGViYXJUb29sYmFyPlxuICAgICAgPFNDU1NpZGViYXJCb2R5ICRpc09wZW49e2lzT3Blbn0+XG4gICAgICAgIHtpc09wZW4gPyAoXG4gICAgICAgICAgPFNDU1NpZGViYXJPcGVuUGFuZWw+XG4gICAgICAgICAgICA8U0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgICB7c2hvd0FnZW50c05hdkJsb2NrID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgIHtzaG93TWFya2V0cGxhY2VTaWRlYmFyQnV0dG9uID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0TXBPcGVuKVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNyZWF0ZUFnZW50KClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICRhY3RpdmU9e2FnZW50c05hdkFjdGl2ZSA9PT0gJ21haWFrZXInfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPE1haWFTdG9yZUljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJNYWlha2VyTmF2TGFiZWw+e3QoJ2NvbnZlcnNhdGlvbnMubWFpYWtlck5hdicpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldz57dCgnaG9tZU1lbnUubWFpYWtlci5iYWRnZU5ldycpfTwvU0NTU2lkZWJhck1haWFrZXJOYXZCYWRnZU5ldz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge2NhblZpZXdBZ2VudHMgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haVNpZGViYXJNeUFnZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5NYXJrZXRwbGFjZSgpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXthZ2VudHNOYXZBY3RpdmUgPT09ICdteUFnZW50cyd9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8TXlBZ2VudHNOYXZJY29uIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPnt0KCdjb252ZXJzYXRpb25zLm15QWdlbnRzTmF2Jyl9PC9TQ1NTaWRlYmFyTWFpYWtlck5hdkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJNYWlha2VyTmF2QnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQWdlbnRzQWN0aW9ucz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxTQ1NTaWRlYmFyQ29udmVyc2F0aW9uc0hlYWRpbmc+e3QoJ2NvbnZlcnNhdGlvbnMudGl0bGUnKX08L1NDU1NpZGViYXJDb252ZXJzYXRpb25zSGVhZGluZz5cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckFnZW50c0Jsb2NrPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c1Njcm9sbFxuICAgICAgICAgICAgICByZWY9e2NoYXRzQ29udGFpbmVyUmVmfVxuICAgICAgICAgICAgICAkaGFzQ2hhdHM9e2NoYXRzLmxlbmd0aCA+IDB9XG4gICAgICAgICAgICAgICRvZmZzZXRWYXJpYW50PXtoYXNFcnJvciA/ICdlcnJvcicgOiAnZGVmYXVsdCd9XG4gICAgICAgICAgICAgICRhZ2VudE5hdkJ1dHRvbkNvdW50PXthZ2VudE5hdkJ1dHRvbkNvdW50fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aGFzRXJyb3IgJiYgIWNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yU3RhdGVUb3A+XG4gICAgICAgICAgICAgICAgICAgIDxFcnJvclN0YXRlIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlVG9wPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICAgIDxFcnJvckljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXJJY29uV3JhcD5cbiAgICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lcj5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvclN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICApIDogbG9hZGluZ0NoYXRzID8gKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyTG9hZGluZ0FyZWE+XG4gICAgICAgICAgICAgICAgICA8U2lkZWJhckNoYXRzU2tlbGV0b24gLz5cbiAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJMb2FkaW5nQXJlYT5cbiAgICAgICAgICAgICAgKSA6IGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAge2NoYXRzLm1hcCgoY2hhdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8TGlzdEhpc3RvcnlDaGF0XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NoYXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGF0PXtjaGF0fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2hhdERhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVuTW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc09wZW5Nb2RhbChudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVNlc3Npb25zU3RvcmUuZ2V0U3RhdGUoKS5tYXJrVW5yZWFkKGNoYXREYXRhLnNlc3Npb25FeHRlcm5hbElkLCBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRDaGF0KGNoYXREYXRhLnNlc3Npb25FeHRlcm5hbElkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkdvVG9DaGF0KGNoYXREYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTW9kYWxPcGVuPXtpc09wZW5Nb2RhbCA9PT0gY2hhdC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uT3Blbk1vZGFsPXtoYW5kbGVPcGVuTW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsb3NlTW9kYWw9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVycz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVEZWxldGVDaGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVVcGRhdGVDaGF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkQ2hhdCA9PT0gY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIHtpc0xvYWRpbmdNb3JlQ2hhdHMgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckxvYWRNb3JlUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTaWRlYmFyQ2hhdHNTa2VsZXRvbiBjb3VudD17Mn0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyTG9hZE1vcmVSb3c+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxTQ1NTaWRlYmFyRW1wdHlDaGF0cz5cbiAgICAgICAgICAgICAgICAgIDxFbXB0eUhpc3RvcnlJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVtcHR5Q2hhdHNUZXh0Pnt0KCdjb252ZXJzYXRpb25zLmVtcHR5Jyl9PC9TQ1NTaWRlYmFyRW1wdHlDaGF0c1RleHQ+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRW1wdHlDaGF0cz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvU0NTU2lkZWJhckNoYXRzU2Nyb2xsPlxuICAgICAgICAgICAgPFNDU1NpZGViYXJDaGF0c0Zvb3Rlcj5cbiAgICAgICAgICAgICAge2hhc0Vycm9yICYmIGNoYXRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8U0NTU2lkZWJhckVycm9yQmFubmVyPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgICA8RXJyb3JJY29uIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDU1NpZGViYXJFcnJvckJhbm5lckljb25XcmFwPlxuICAgICAgICAgICAgICAgICAgPFNDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+e3QoJ2NvbnZlcnNhdGlvbnMuZXJyb3InKX08L1NDU1NpZGViYXJFcnJvckJhbm5lck1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgPC9TQ1NTaWRlYmFyRXJyb3JCYW5uZXI+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TQ1NTaWRlYmFyQ2hhdHNGb290ZXI+XG4gICAgICAgICAgPC9TQ1NTaWRlYmFyT3BlblBhbmVsPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFNDU1NpZGViYXJGb290ZXJBY3Rpb25zICRpc09wZW49e2lzT3Blbn0gJGp1c3RpZnlCZXR3ZWVuPXshIXNlbGVjdGVkQWdlbnR9PlxuICAgICAgICAgIHtzZWxlY3RlZEFnZW50ID8gPEZlZWRiYWNrQnV0dG9uIHNlbGVjdGVkQWdlbnQ9e3NlbGVjdGVkQWdlbnR9IGlzT3Blbj17aXNPcGVufSAvPiA6IG51bGx9XG4gICAgICAgIDwvU0NTU2lkZWJhckZvb3RlckFjdGlvbnM+XG4gICAgICA8L1NDU1NpZGViYXJCb2R5PlxuICAgIDwvU0NTU2lkZWJhclJvb3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBMkJBLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQzlFLFNBQVNDLGlCQUFpQixRQUFRLG9EQUFvRDtBQUN0RixTQUFTQyxPQUFPLFFBQVEsMENBQTBDO0FBQ2xFLFNBQVNDLFFBQVEsUUFBUSw0Q0FBNEM7QUFDckUsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFFOUQsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUV0RSxTQUFTQyxnQkFBZ0IsUUFBUSxnQ0FBZ0M7QUFDakUsU0FBU0MsaUJBQWlCLFFBQVEsMEJBQTBCO0FBQzVELFNBQVNDLFFBQVEsUUFBUSx5QkFBeUI7QUFDbEQsU0FBU0Msb0JBQW9CLFFBQVEsb0JBQW9CO0FBQ3pELFNBQVNDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxhQUFhLEVBQUVDLGVBQWUsRUFBRUMsT0FBTyxRQUFRLG1CQUFtQjtBQUNqRyxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFDMUQsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxV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
@@ -19,10 +19,14 @@ export var SCLHCWrapperAgentText = styled.span.withConfig({
19
19
  export var SCLHCWrapperTitle = styled.span.withConfig({
20
20
  displayName: "Sidebarstyles__SCLHCWrapperTitle",
21
21
  componentId: "sc-1y4wxn6-4"
22
- })(["color:rgba(32,32,31,1);text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;"]);
22
+ })(["color:rgba(32,32,31,1);text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;flex:1;min-width:0;"]);
23
+ export var SCLHCWrapperTitleRow = styled.div.withConfig({
24
+ displayName: "Sidebarstyles__SCLHCWrapperTitleRow",
25
+ componentId: "sc-1y4wxn6-5"
26
+ })(["display:flex;align-items:center;gap:6px;min-width:0;width:100%;"]);
23
27
  export var SCLHCWrapperContent = styled.div.withConfig({
24
28
  displayName: "Sidebarstyles__SCLHCWrapperContent",
25
- componentId: "sc-1y4wxn6-5"
29
+ componentId: "sc-1y4wxn6-6"
26
30
  })(["display:flex;flex-direction:row;padding:12px 8px 12px 12px;cursor:pointer;", " position:relative;", " width:100%;justify-content:space-between;background-color:", ";border-radius:4px;&:hover{", "{display:flex;}", "{color:rgba(102,102,102,1);}background-color:", ";border-radius:4px;}", ""], function (_ref) {
27
31
  var $index = _ref.$index;
28
32
  return cascadeItem($index);
@@ -41,7 +45,7 @@ export var SCLHCWrapperContent = styled.div.withConfig({
41
45
  });
42
46
  export var SCSWrapperCollapsedButton = styled.div.withConfig({
43
47
  displayName: "Sidebarstyles__SCSWrapperCollapsedButton",
44
- componentId: "sc-1y4wxn6-6"
48
+ componentId: "sc-1y4wxn6-7"
45
49
  })(["display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease-in-out;width:28px;height:28px;align-self:", ";margin-right:", ";svg{width:", ";height:", ";*:not(.no-fill){fill:rgba(13,13,13,1) !important;transition:fill 0.3s ease;}}&:hover{box-shadow:none;background-color:#f2f2f2 !important;border-radius:200px;svg *:not(.no-fill){fill:rgba(13,13,13,1) !important;}}"], function (_ref6) {
46
50
  var isOpen = _ref6.isOpen;
47
51
  return isOpen ? 'auto' : 'flex-end';
@@ -57,13 +61,13 @@ export var SCSWrapperCollapsedButton = styled.div.withConfig({
57
61
  });
58
62
  export var SCSWrapperNewChatIcon = styled.div.withConfig({
59
63
  displayName: "Sidebarstyles__SCSWrapperNewChatIcon",
60
- componentId: "sc-1y4wxn6-7"
64
+ componentId: "sc-1y4wxn6-8"
61
65
  })(["display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease-in-out;padding:4px;svg *:not(.no-fill){stroke:rgba(13,13,13,1) !important;}&:hover{background-color:#f2f2f2 !important;border-radius:200px;svg *:not(.no-fill){stroke:rgba(13,13,13,1) !important;}}"]);
62
66
 
63
67
  /** Iconos Maiaker / Mis agentes en barra superior solo con sidebar colapsado */
64
68
  export var SCSWrapperAgentsNavIcon = styled.div.withConfig({
65
69
  displayName: "Sidebarstyles__SCSWrapperAgentsNavIcon",
66
- componentId: "sc-1y4wxn6-8"
70
+ componentId: "sc-1y4wxn6-9"
67
71
  })(["display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease-in-out;padding:4px;background-color:", ";border-radius:200px;svg *:not(.no-fill){stroke:rgba(13,13,13,1) !important;fill:rgba(13,13,13,1) !important;}&:hover{background-color:", " !important;border-radius:200px;}"], function (_ref0) {
68
72
  var $active = _ref0.$active;
69
73
  return $active ? '#ECECEC' : 'transparent';
@@ -71,4 +75,4 @@ export var SCSWrapperAgentsNavIcon = styled.div.withConfig({
71
75
  var $active = _ref1.$active;
72
76
  return $active ? '#ECECEC' : '#f2f2f2';
73
77
  });
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjYXNjYWRlSXRlbSIsIlNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnMiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTEhDV3JhcHBlciIsIlNDTEhDV3JhcHBlckFnZW50Iiwic3BhbiIsIlNDTEhDV3JhcHBlckFnZW50VGV4dCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NMSENXcmFwcGVyQ29udGVudCIsIl9yZWYiLCIkaW5kZXgiLCJfcmVmMiIsImlzTW9kYWxPcGVuIiwiX3JlZjMiLCJpc1NlbGVjdGVkIiwiX3JlZjQiLCJfcmVmNSIsIlNDU1dyYXBwZXJDb2xsYXBzZWRCdXR0b24iLCJfcmVmNiIsImlzT3BlbiIsIl9yZWY3IiwiX3JlZjgiLCJfcmVmOSIsIlNDU1dyYXBwZXJOZXdDaGF0SWNvbiIsIlNDU1dyYXBwZXJBZ2VudHNOYXZJY29uIiwiX3JlZjAiLCIkYWN0aXZlIiwiX3JlZjEiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvU2lkZWJhci9TaWRlYmFyLnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGNzcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgY2FzY2FkZUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY2FzY2FkZSdcblxuZXhwb3J0IGNvbnN0IFNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBub25lO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgZmlsbDogcmdiYSgxNTMsIDE1MywgMTUzLCAxKSAhaW1wb3J0YW50O1xuICB9XG4gIGJ1dHRvbiB7XG4gICAgJjpob3ZlciB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgICAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgICAgIGZpbGw6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTEhDV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTMwJTtcbiAgd2lkdGg6IDE5MHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NMSENXcmFwcGVyQWdlbnQgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA0cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgJiA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5gXG5leHBvcnQgY29uc3QgU0NMSENXcmFwcGVyQWdlbnRUZXh0ID0gc3R5bGVkLnNwYW5gXG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDEpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NMSENXcmFwcGVyVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6IHJnYmEoMzIsIDMyLCAzMSwgMSk7XG4gIHRleHQtd3JhcDogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAxNHB4O1xuYFxuZXhwb3J0IGNvbnN0IFNDTEhDV3JhcHBlckNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgaXNNb2RhbE9wZW46IGJvb2xlYW47IGlzU2VsZWN0ZWQ/OiBib29sZWFuOyAkaW5kZXg/OiBudW1iZXIgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHBhZGRpbmc6IDEycHggOHB4IDEycHggMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAkeyh7ICRpbmRleCB9KSA9PiBjYXNjYWRlSXRlbSgkaW5kZXgpfVxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICR7KHsgaXNNb2RhbE9wZW4gfSkgPT5cbiAgICBpc01vZGFsT3BlbiAmJlxuICAgIGNzc2BcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgYH1cbiAgd2lkdGg6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc1NlbGVjdGVkIH0pID0+IChpc1NlbGVjdGVkID8gJyNFQ0VDRUMnIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICY6aG92ZXIge1xuICAgICR7U0NMSENXcmFwcGVyQnV0dG9uQWN0aW9uc30ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gICAgJHtTQ0xIQ1dyYXBwZXJUaXRsZX0ge1xuICAgICAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMSk7XG4gICAgfVxuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaXNTZWxlY3RlZCB9KSA9PiAoaXNTZWxlY3RlZCA/ICcjRUNFQ0VDJyA6ICcjZjJmMmYyJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuICAkeyh7IGlzTW9kYWxPcGVuIH0pID0+XG4gICAgaXNNb2RhbE9wZW4gJiZcbiAgICBjc3NgXG4gICAgICAke1NDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnN9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiA9IHN0eWxlZC5kaXY8eyBpc09wZW4/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYWxpZ24tc2VsZjogJHsoeyBpc09wZW4gfSkgPT4gKGlzT3BlbiA/ICdhdXRvJyA6ICdmbGV4LWVuZCcpfTtcbiAgbWFyZ2luLXJpZ2h0OiAkeyh7IGlzT3BlbiB9KSA9PiAoaXNPcGVuID8gJzAnIDogJy0zcHgnKX07XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogJHsoeyBpc09wZW4gfSkgPT4gKGlzT3BlbiA/ICcxNnB4JyA6ICcyMHB4Jyl9O1xuICAgIGhlaWdodDogJHsoeyBpc09wZW4gfSkgPT4gKGlzT3BlbiA/ICcxNnB4JyA6ICcyMHB4Jyl9O1xuXG4gICAgKjpub3QoLm5vLWZpbGwpIHtcbiAgICAgIGZpbGw6IHJnYmEoMTMsIDEzLCAxMywgMSkgIWltcG9ydGFudDtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4zcyBlYXNlO1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIHN2ZyAqOm5vdCgubm8tZmlsbCkge1xuICAgICAgZmlsbDogcmdiYSgxMywgMTMsIDEzLCAxKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NTV3JhcHBlck5ld0NoYXRJY29uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIHBhZGRpbmc6IDRweDtcbiAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgc3Ryb2tlOiByZ2JhKDEzLCAxMywgMTMsIDEpICFpbXBvcnRhbnQ7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIHN2ZyAqOm5vdCgubm8tZmlsbCkge1xuICAgICAgc3Ryb2tlOiByZ2JhKDEzLCAxMywgMTMsIDEpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gXG5cbi8qKiBJY29ub3MgTWFpYWtlciAvIE1pcyBhZ2VudGVzIGVuIGJhcnJhIHN1cGVyaW9yIHNvbG8gY29uIHNpZGViYXIgY29sYXBzYWRvICovXG5leHBvcnQgY29uc3QgU0NTV3JhcHBlckFnZW50c05hdkljb24gPSBzdHlsZWQuZGl2PHsgJGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICBwYWRkaW5nOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgJGFjdGl2ZSB9KSA9PiAoJGFjdGl2ZSA/ICcjRUNFQ0VDJyA6ICd0cmFuc3BhcmVudCcpfTtcbiAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gIHN2ZyAqOm5vdCgubm8tZmlsbCkge1xuICAgIHN0cm9rZTogcmdiYSgxMywgMTMsIDEzLCAxKSAhaW1wb3J0YW50O1xuICAgIGZpbGw6IHJnYmEoMTMsIDEzLCAxMywgMSkgIWltcG9ydGFudDtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7ICRhY3RpdmUgfSkgPT4gKCRhY3RpdmUgPyAnI0VDRUNFQycgOiAnI2YyZjJmMicpfSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxRQUFRLG1CQUFtQjtBQUMvQyxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBRXJELE9BQU8sSUFBTUMseUJBQXlCLEdBQUdILE1BQU0sQ0FBQ0ksR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRRQWlCbEQ7QUFFRCxPQUFPLElBQU1DLFlBQVksR0FBR1IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ0lBU3JDO0FBRUQsT0FBTyxJQUFNRSxpQkFBaUIsR0FBR1QsTUFBTSxDQUFDVSxJQUFJLENBQUFMLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMEVBTzNDO0FBQ0QsT0FBTyxJQUFNSSxxQkFBcUIsR0FBR1gsTUFBTSxDQUFDVSxJQUFJLENBQUFMLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsd0dBTS9DO0FBRUQsT0FBTyxJQUFNSyxpQkFBaUIsR0FBR1osTUFBTSxDQUFDVSxJQUFJLENBQUFMLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEseUhBTzNDO0FBQ0QsT0FBTyxJQUFNTSxtQkFBbUIsR0FBR2IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsd1NBS3pDLFVBQUFPLElBQUE7RUFBQSxJQUFHQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtFQUFBLE9BQU9iLFdBQVcsQ0FBQ2EsTUFBTSxDQUFDO0FBQUEsR0FFbkMsVUFBQUMsS0FBQTtFQUFBLElBQUdDLFdBQVcsR0FBQUQsS0FBQSxDQUFYQyxXQUFXO0VBQUEsT0FDZEEsV0FBVyxJQUNYaEIsR0FBRyxnQkFFRjtBQUFBLEdBR2lCLFVBQUFpQixLQUFBO0VBQUEsSUFBR0MsVUFBVSxHQUFBRCxLQUFBLENBQVZDLFVBQVU7RUFBQSxPQUFRQSxVQUFVLEdBQUcsU0FBUyxHQUFHLGFBQWE7QUFBQSxDQUFDLEVBRzVFaEIseUJBQXlCLEVBR3pCUyxpQkFBaUIsRUFHQyxVQUFBUSxLQUFBO0VBQUEsSUFBR0QsVUFBVSxHQUFBQyxLQUFBLENBQVZELFVBQVU7RUFBQSxPQUFRQSxVQUFVLEdBQUcsU0FBUyxHQUFHLFNBQVM7QUFBQSxDQUFDLEVBRzVFLFVBQUFFLEtBQUE7RUFBQSxJQUFHSixXQUFXLEdBQUFJLEtBQUEsQ0FBWEosV0FBVztFQUFBLE9BQ2RBLFdBQVcsSUFDWGhCLEdBQUcsMEJBQ0NFLHlCQUF5QixDQUc1QjtBQUFBLEVBQ0o7QUFFRCxPQUFPLElBQU1tQix5QkFBeUIsR0FBR3RCLE1BQU0sQ0FBQ0ksR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVaQVFuQyxVQUFBZ0IsS0FBQTtFQUFBLElBQUdDLE1BQU0sR0FBQUQsS0FBQSxDQUFOQyxNQUFNO0VBQUEsT0FBUUEsTUFBTSxHQUFHLE1BQU0sR0FBRyxVQUFVO0FBQUEsQ0FBQyxFQUM1QyxVQUFBQyxLQUFBO0VBQUEsSUFBR0QsTUFBTSxHQUFBQyxLQUFBLENBQU5ELE1BQU07RUFBQSxPQUFRQSxNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU07QUFBQSxDQUFDLEVBRzVDLFVBQUFFLEtBQUE7RUFBQSxJQUFHRixNQUFNLEdBQUFFLEtBQUEsQ0FBTkYsTUFBTTtFQUFBLE9BQVFBLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTTtBQUFBLENBQUMsRUFDekMsVUFBQUcsS0FBQTtFQUFBLElBQUdILE1BQU0sR0FBQUcsS0FBQSxDQUFOSCxNQUFNO0VBQUEsT0FBUUEsTUFBTSxHQUFHLE1BQU0sR0FBRyxNQUFNO0FBQUEsQ0FBQyxDQWdCdkQ7QUFFRCxPQUFPLElBQU1JLHFCQUFxQixHQUFHNUIsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMlNBaUI5Qzs7QUFFRDtBQUNBLE9BQU8sSUFBTXNCLHVCQUF1QixHQUFHN0IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNFRBTzNCLFVBQUF1QixLQUFBO0VBQUEsSUFBR0MsT0FBTyxHQUFBRCxLQUFBLENBQVBDLE9BQU87RUFBQSxPQUFRQSxPQUFPLEdBQUcsU0FBUyxHQUFHLGFBQWE7QUFBQSxDQUFDLEVBT3BELFVBQUFDLEtBQUE7RUFBQSxJQUFHRCxPQUFPLEdBQUFDLEtBQUEsQ0FBUEQsT0FBTztFQUFBLE9BQVFBLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUztBQUFBLENBQUMsQ0FHekUiLCJpZ25vcmVMaXN0IjpbXX0=
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJjYXNjYWRlSXRlbSIsIlNDTEhDV3JhcHBlckJ1dHRvbkFjdGlvbnMiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTEhDV3JhcHBlciIsIlNDTEhDV3JhcHBlckFnZW50Iiwic3BhbiIsIlNDTEhDV3JhcHBlckFnZW50VGV4dCIsIlNDTEhDV3JhcHBlclRpdGxlIiwiU0NMSENXcmFwcGVyVGl0bGVSb3ciLCJTQ0xIQ1dyYXBwZXJDb250ZW50IiwiX3JlZiIsIiRpbmRleCIsIl9yZWYyIiwiaXNNb2RhbE9wZW4iLCJfcmVmMyIsImlzU2VsZWN0ZWQiLCJfcmVmNCIsIl9yZWY1IiwiU0NTV3JhcHBlckNvbGxhcHNlZEJ1dHRvbiIsIl9yZWY2IiwiaXNPcGVuIiwiX3JlZjciLCJfcmVmOCIsIl9yZWY5IiwiU0NTV3JhcHBlck5ld0NoYXRJY29uIiwiU0NTV3JhcHBlckFnZW50c05hdkljb24iLCJfcmVmMCIsIiRhY3RpdmUiLCJfcmVmMSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TaWRlYmFyL1NpZGViYXIuc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQsIHsgY3NzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgeyBjYXNjYWRlSXRlbSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jYXNjYWRlJ1xuXG5leHBvcnQgY29uc3QgU0NMSENXcmFwcGVyQnV0dG9uQWN0aW9ucyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBzdmcgKjpub3QoLm5vLWZpbGwpIHtcbiAgICBmaWxsOiByZ2JhKDE1MywgMTUzLCAxNTMsIDEpICFpbXBvcnRhbnQ7XG4gIH1cbiAgYnV0dG9uIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gICAgICBzdmcgKjpub3QoLm5vLWZpbGwpIHtcbiAgICAgICAgZmlsbDogcmdiYSgxMDIsIDEwMiwgMTAyLCAxKSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NMSENXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxMzAlO1xuICB3aWR0aDogMTkwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0xIQ1dyYXBwZXJBZ2VudCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDRweDtcbiAgbWluLXdpZHRoOiAwO1xuICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbmBcbmV4cG9ydCBjb25zdCBTQ0xIQ1dyYXBwZXJBZ2VudFRleHQgPSBzdHlsZWQuc3BhbmBcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMSk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0xIQ1dyYXBwZXJUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogcmdiYSgzMiwgMzIsIDMxLCAxKTtcbiAgdGV4dC13cmFwOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTEhDV3JhcHBlclRpdGxlUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG5gXG5leHBvcnQgY29uc3QgU0NMSENXcmFwcGVyQ29udGVudCA9IHN0eWxlZC5kaXY8eyBpc01vZGFsT3BlbjogYm9vbGVhbjsgaXNTZWxlY3RlZD86IGJvb2xlYW47ICRpbmRleD86IG51bWJlciB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgcGFkZGluZzogMTJweCA4cHggMTJweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gICR7KHsgJGluZGV4IH0pID0+IGNhc2NhZGVJdGVtKCRpbmRleCl9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJHsoeyBpc01vZGFsT3BlbiB9KSA9PlxuICAgIGlzTW9kYWxPcGVuICYmXG4gICAgY3NzYFxuICAgICAgei1pbmRleDogMTtcbiAgICBgfVxuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGlzU2VsZWN0ZWQgfSkgPT4gKGlzU2VsZWN0ZWQgPyAnI0VDRUNFQycgOiAndHJhbnNwYXJlbnQnKX07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgJjpob3ZlciB7XG4gICAgJHtTQ0xIQ1dyYXBwZXJCdXR0b25BY3Rpb25zfSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgICAke1NDTEhDV3JhcHBlclRpdGxlfSB7XG4gICAgICBjb2xvcjogcmdiYSgxMDIsIDEwMiwgMTAyLCAxKTtcbiAgICB9XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc1NlbGVjdGVkIH0pID0+IChpc1NlbGVjdGVkID8gJyNFQ0VDRUMnIDogJyNmMmYyZjInKX07XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG4gICR7KHsgaXNNb2RhbE9wZW4gfSkgPT5cbiAgICBpc01vZGFsT3BlbiAmJlxuICAgIGNzc2BcbiAgICAgICR7U0NMSENXcmFwcGVyQnV0dG9uQWN0aW9uc30ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NXcmFwcGVyQ29sbGFwc2VkQnV0dG9uID0gc3R5bGVkLmRpdjx7IGlzT3Blbj86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBhbGlnbi1zZWxmOiAkeyh7IGlzT3BlbiB9KSA9PiAoaXNPcGVuID8gJ2F1dG8nIDogJ2ZsZXgtZW5kJyl9O1xuICBtYXJnaW4tcmlnaHQ6ICR7KHsgaXNPcGVuIH0pID0+IChpc09wZW4gPyAnMCcgOiAnLTNweCcpfTtcblxuICBzdmcge1xuICAgIHdpZHRoOiAkeyh7IGlzT3BlbiB9KSA9PiAoaXNPcGVuID8gJzE2cHgnIDogJzIwcHgnKX07XG4gICAgaGVpZ2h0OiAkeyh7IGlzT3BlbiB9KSA9PiAoaXNPcGVuID8gJzE2cHgnIDogJzIwcHgnKX07XG5cbiAgICAqOm5vdCgubm8tZmlsbCkge1xuICAgICAgZmlsbDogcmdiYSgxMywgMTMsIDEzLCAxKSAhaW1wb3J0YW50O1xuICAgICAgdHJhbnNpdGlvbjogZmlsbCAwLjNzIGVhc2U7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgICBmaWxsOiByZ2JhKDEzLCAxMywgMTMsIDEpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NXcmFwcGVyTmV3Q2hhdEljb24gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgcGFkZGluZzogNHB4O1xuICBzdmcgKjpub3QoLm5vLWZpbGwpIHtcbiAgICBzdHJva2U6IHJnYmEoMTMsIDEzLCAxMywgMSkgIWltcG9ydGFudDtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgICBzdHJva2U6IHJnYmEoMTMsIDEzLCAxMywgMSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbmBcblxuLyoqIEljb25vcyBNYWlha2VyIC8gTWlzIGFnZW50ZXMgZW4gYmFycmEgc3VwZXJpb3Igc29sbyBjb24gc2lkZWJhciBjb2xhcHNhZG8gKi9cbmV4cG9ydCBjb25zdCBTQ1NXcmFwcGVyQWdlbnRzTmF2SWNvbiA9IHN0eWxlZC5kaXY8eyAkYWN0aXZlPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gIHBhZGRpbmc6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyAkYWN0aXZlIH0pID0+ICgkYWN0aXZlID8gJyNFQ0VDRUMnIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgc3Ryb2tlOiByZ2JhKDEzLCAxMywgMTMsIDEpICFpbXBvcnRhbnQ7XG4gICAgZmlsbDogcmdiYSgxMywgMTMsIDEzLCAxKSAhaW1wb3J0YW50O1xuICB9XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgJGFjdGl2ZSB9KSA9PiAoJGFjdGl2ZSA/ICcjRUNFQ0VDJyA6ICcjZjJmMmYyJyl9ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gIH1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLFFBQVEsbUJBQW1CO0FBQy9DLFNBQVNDLFdBQVcsUUFBUSx5QkFBeUI7QUFFckQsT0FBTyxJQUFNQyx5QkFBeUIsR0FBR0gsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNFFBaUJsRDtBQUVELE9BQU8sSUFBTUMsWUFBWSxHQUFHUixNQUFNLENBQUNJLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxnSUFTckM7QUFFRCxPQUFPLElBQU1FLGlCQUFpQixHQUFHVCxNQUFNLENBQUNVLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwRUFPM0M7QUFDRCxPQUFPLElBQU1JLHFCQUFxQixHQUFHWCxNQUFNLENBQUNVLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3R0FNL0M7QUFFRCxPQUFPLElBQU1LLGlCQUFpQixHQUFHWixNQUFNLENBQUNVLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw0SUFTM0M7QUFFRCxPQUFPLElBQU1NLG9CQUFvQixHQUFH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
@@ -12,6 +12,10 @@ import { GlobalContext } from '../../../context/global-context';
12
12
  import { Features } from '../../atoms/WithFeatureValidation';
13
13
  import { withAppCfg } from '../../atoms/WithAppCfg';
14
14
  import { acquireChatsStore, releaseChatsStore } from '../../../store';
15
+ import { ensureSessionNotificationsInitialized } from '../../../store/sessions/sessionNotifications';
16
+ import { initSessionUnreadPersistence } from '../../../store/sessions/sessionUnreadPersistence';
17
+ import { useSessionsStore } from '../../../store/sessions/useSessionsStore';
18
+ import { useUser } from '../../../context/cor-user';
15
19
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
16
20
  import { jsx as _jsx } from "react/jsx-runtime";
17
21
  export var ChatAI = withAppCfg(function (_ref) {
@@ -53,6 +57,7 @@ export var ChatAI = withAppCfg(function (_ref) {
53
57
  context = _useProjectSummaryCon.context,
54
58
  restoreConfigureSettings = _useProjectSummaryCon.restoreConfigureSettings;
55
59
  var eventAmplitude = useEvent();
60
+ var user = useUser();
56
61
  var handleCloseModal = function handleCloseModal() {
57
62
  eventAmplitude(EVENTS.aiChatClose);
58
63
  restoreConfigureSettings();
@@ -63,10 +68,13 @@ export var ChatAI = withAppCfg(function (_ref) {
63
68
  // (ej. sidebar + flotante en tarea comparten el mismo store global)
64
69
  useEffect(function () {
65
70
  acquireChatsStore();
71
+ ensureSessionNotificationsInitialized();
72
+ initSessionUnreadPersistence(user.id, user.company_id);
73
+ useSessionsStore.getState().hydratePersistedUnreadSessions();
66
74
  return function () {
67
75
  return releaseChatsStore();
68
76
  };
69
- }, []);
77
+ }, [user.id, user.company_id]);
70
78
  var bannerEntryFaq = useMemo(function () {
71
79
  var _bannerEntryFaqProp$f, _bannerEntryFaqProp$f2;
72
80
  var id = bannerEntryFaqProp === null || bannerEntryFaqProp === void 0 || (_bannerEntryFaqProp$f = bannerEntryFaqProp.faqId) === null || _bannerEntryFaqProp$f === void 0 ? void 0 : _bannerEntryFaqProp$f.trim();
@@ -98,4 +106,4 @@ export var ChatAI = withAppCfg(function (_ref) {
98
106
  })
99
107
  });
100
108
  }, Features.CHAT_AI);
101
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VTdHJlYW1kb3duU3R5bGVzIiwidXNlUHJvamVjdFN1bW1hcnlDb25maWciLCJNT0RBTF9FTEVNRU5UUyIsIkNoYXRBSU1vZGFsIiwiR2xvYmFsQ29udGV4dCIsIkZlYXR1cmVzIiwid2l0aEFwcENmZyIsImFjcXVpcmVDaGF0c1N0b3JlIiwicmVsZWFzZUNoYXRzU3RvcmUiLCJFVkVOVFMiLCJ1c2VFdmVudCIsImpzeCIsIl9qc3giLCJDaGF0QUkiLCJfcmVmIiwiZW50aXR5IiwiaW5pdGlhbFByb2plY3QiLCJwcm9qZWN0IiwiaW5pdGlhbENsaWVudCIsImNsaWVudCIsImluaXRpYWxUYXNrIiwidGFzayIsIl9yZWYkaGFuZGxlQ2xvc2UiLCJoYW5kbGVDbG9zZSIsIl9yZWYkaGFzTXVsdGlBZ2VudHMiLCJoYXNNdWx0aUFnZW50cyIsIl9yZWYkc2VjdGlvbiIsInNlY3Rpb24iLCJfcmVmJGZhcSIsImZhcSIsImJhbm5lckVudHJ5RmFxUHJvcCIsInBhcmVudFJlZiIsImluaXRpYWxQcm9qZWN0VmFsdWUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRQcm9qZWN0IiwiX3VzZVByb2plY3RTdW1tYXJ5Q29uIiwidW5kZWZpbmVkIiwiY29udGV4dCIsInJlc3RvcmVDb25maWd1cmVTZXR0aW5ncyIsImV2ZW50QW1wbGl0dWRlIiwiaGFuZGxlQ2xvc2VNb2RhbCIsImFpQ2hhdENsb3NlIiwiYmFubmVyRW50cnlGYXEiLCJfYmFubmVyRW50cnlGYXFQcm9wJGYiLCJfYmFubmVyRW50cnlGYXFQcm9wJGYyIiwiaWQiLCJmYXFJZCIsInRyaW0iLCJ0aXRsZSIsImZhcVRpdGxlIiwiY29udGV4dERhdGEiLCJfdHlwZW9mIiwiX29iamVjdFNwcmVhZCIsInByb3ZpZGVyVmFsdWUiLCJQcm92aWRlciIsInZhbHVlIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJDSEFUX0FJIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3JnYW5pc21zL0NoYXRBSS9DaGF0QUkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVJlZiwgdXNlU3RhdGUsIHVzZU1lbW8sIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlU3RyZWFtZG93blN0eWxlcyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVN0cmVhbWRvd25TdHlsZXMnXG5pbXBvcnQgeyB1c2VQcm9qZWN0U3VtbWFyeUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVByb2plY3RTdW1tYXJ5Q29uZmlnJ1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL1Byb2plY3QnXG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9DbGllbnQnXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvVGFzaydcbmltcG9ydCB7IE1PREFMX0VMRU1FTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTW9kYWwvdXNlTW9kYWwnXG5pbXBvcnQgeyBDaGF0QUlNb2RhbCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9DaGF0QUlNb2RhbCdcbmltcG9ydCB7IEdsb2JhbENvbnRleHQsIHR5cGUgQmFubmVyRW50cnlGYXEgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgRmVhdHVyZXMgfSBmcm9tICcuLi8uLi9hdG9tcy9XaXRoRmVhdHVyZVZhbGlkYXRpb24nXG5pbXBvcnQgeyB3aXRoQXBwQ2ZnIH0gZnJvbSAnLi4vLi4vYXRvbXMvV2l0aEFwcENmZydcbmltcG9ydCB7IGFjcXVpcmVDaGF0c1N0b3JlLCByZWxlYXNlQ2hhdHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuXG50eXBlIENoYXRBSVByb3BzID0ge1xuICBlbnRpdHk6IHtcbiAgICBwcm9qZWN0SWQ6IHN0cmluZyB8IG51bGxcbiAgICBjbGllbnRJZDogc3RyaW5nIHwgbnVsbFxuICB9XG4gIHByb2plY3Q6IFByb2plY3QgfCBudWxsXG4gIGNsaWVudD86IENsaWVudCB8IG51bGxcbiAgdGFzaz86IFRhc2sgfCBudWxsXG4gIGhhbmRsZUNsb3NlPzogKCkgPT4gdm9pZFxuICBoYXNNdWx0aUFnZW50cz86IGJvb2xlYW5cbiAgc2VjdGlvbj86ICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfCAndGFzaydcbiAgLyoqIEJhbm5lciAvIGhvc3Q6IGFicmUgZWwgY2hhdCBlbnZpYW5kbyBsYSBGQVEgY29tbyBtZW5zYWplIHkgYFgtRmFxLUlkYCBlbiBlbCBvcmNoZXN0cmF0b3IgKi9cbiAgZmFxPzogQmFubmVyRW50cnlGYXEgfCBudWxsXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUkgPSB3aXRoQXBwQ2ZnKFxuICAoe1xuICAgIGVudGl0eSxcbiAgICBwcm9qZWN0OiBpbml0aWFsUHJvamVjdCxcbiAgICBjbGllbnQ6IGluaXRpYWxDbGllbnQsXG4gICAgdGFzazogaW5pdGlhbFRhc2ssXG4gICAgaGFuZGxlQ2xvc2UgPSAoKSA9PiBudWxsLFxuICAgIGhhc011bHRpQWdlbnRzID0gZmFsc2UsXG4gICAgc2VjdGlvbiA9ICdoZWFkZXInLFxuICAgIGZhcTogYmFubmVyRW50cnlGYXFQcm9wID0gbnVsbCxcbiAgfTogQ2hhdEFJUHJvcHMpID0+IHtcbiAgICB1c2VTdHJlYW1kb3duU3R5bGVzKClcbiAgICBjb25zdCBwYXJlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgY29uc3QgaW5pdGlhbFByb2plY3RWYWx1ZSA9IHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAndGFzaycgPyBpbml0aWFsUHJvamVjdCA6IG51bGxcbiAgICBjb25zdCBbcHJvamVjdCwgc2V0UHJvamVjdF0gPSB1c2VTdGF0ZTxQcm9qZWN0IHwgbnVsbD4oaW5pdGlhbFByb2plY3RWYWx1ZSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoKHNlY3Rpb24gPT09ICdwcm9qZWN0JyB8fCBzZWN0aW9uID09PSAndGFzaycpICYmIGluaXRpYWxQcm9qZWN0ICE9IG51bGwpIHtcbiAgICAgICAgc2V0UHJvamVjdChpbml0aWFsUHJvamVjdClcbiAgICAgIH1cbiAgICB9LCBbc2VjdGlvbiwgaW5pdGlhbFByb2plY3RdKVxuXG4gICAgY29uc3QgeyBjb250ZXh0LCByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MgfSA9IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnKHtcbiAgICAgIHNlY3Rpb24sXG4gICAgICBlbnRpdHksXG4gICAgICBwcm9qZWN0LFxuICAgICAgc2V0UHJvamVjdCxcbiAgICAgIGNsaWVudDogc2VjdGlvbiA9PT0gJ2NsaWVudCcgPyAoaW5pdGlhbENsaWVudCA/PyBudWxsKSA6IHVuZGVmaW5lZCxcbiAgICAgIHRhc2s6IHNlY3Rpb24gPT09ICd0YXNrJyA/IChpbml0aWFsVGFzayA/PyBudWxsKSA6IHVuZGVmaW5lZCxcbiAgICAgIGhhc011bHRpQWdlbnRzLFxuICAgIH0pXG4gICAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG5cbiAgICBjb25zdCBoYW5kbGVDbG9zZU1vZGFsID0gKCkgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdENsb3NlKVxuICAgICAgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzKClcbiAgICAgIGhhbmRsZUNsb3NlKClcbiAgICB9XG5cbiAgICAvLyBSZXNldCBkZWwgc3RvcmUgc29sbyBjdWFuZG8gbm8gcXVlZGEgbmluZ3VuYSBpbnN0YW5jaWEgZGUgQ2hhdEFJIG1vbnRhZGFcbiAgICAvLyAoZWouIHNpZGViYXIgKyBmbG90YW50ZSBlbiB0YXJlYSBjb21wYXJ0ZW4gZWwgbWlzbW8gc3RvcmUgZ2xvYmFsKVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBhY3F1aXJlQ2hhdHNTdG9yZSgpXG4gICAgICByZXR1cm4gKCkgPT4gcmVsZWFzZUNoYXRzU3RvcmUoKVxuICAgIH0sIFtdKVxuXG4gICAgY29uc3QgYmFubmVyRW50cnlGYXEgPSB1c2VNZW1vKCgpOiBCYW5uZXJFbnRyeUZhcSB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgaWQgPSBiYW5uZXJFbnRyeUZhcVByb3A/LmZhcUlkPy50cmltKClcbiAgICAgIGNvbnN0IHRpdGxlID0gYmFubmVyRW50cnlGYXFQcm9wPy5mYXFUaXRsZT8udHJpbSgpXG4gICAgICBpZiAoIXRpdGxlKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgICBjb25zdCBjb250ZXh0RGF0YSA9XG4gICAgICAgIGJhbm5lckVudHJ5RmFxUHJvcD8uY29udGV4dERhdGEgIT0gbnVsbCAmJiB0eXBlb2YgYmFubmVyRW50cnlGYXFQcm9wLmNvbnRleHREYXRhID09PSAnb2JqZWN0J1xuICAgICAgICAgID8gYmFubmVyRW50cnlGYXFQcm9wLmNvbnRleHREYXRhXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLihpZCA/IHsgZmFxSWQ6IGlkIH0gOiB7fSksXG4gICAgICAgIGZhcVRpdGxlOiB0aXRsZSxcbiAgICAgICAgLi4uKGNvbnRleHREYXRhID8geyBjb250ZXh0RGF0YSB9IDoge30pLFxuICAgICAgfVxuICAgIH0sIFtiYW5uZXJFbnRyeUZhcVByb3A/LmZhcUlkLCBiYW5uZXJFbnRyeUZhcVByb3A/LmZhcVRpdGxlLCBiYW5uZXJFbnRyeUZhcVByb3A/LmNvbnRleHREYXRhXSlcblxuICAgIGNvbnN0IHByb3ZpZGVyVmFsdWUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgc2VjdGlvbjogc2VjdGlvbiBhcyAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIHwgJ3Rhc2snLFxuICAgICAgICBiYW5uZXJFbnRyeUZhcSxcbiAgICAgIH0pLFxuICAgICAgW2NvbnRleHQsIHNlY3Rpb24sIGJhbm5lckVudHJ5RmFxXVxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8R2xvYmFsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cHJvdmlkZXJWYWx1ZX0+XG4gICAgICAgIDxDaGF0QUlNb2RhbCBjbGFzc05hbWU9e01PREFMX0VMRU1FTlRTfSBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2VNb2RhbH0gcGFyZW50UmVmPXtwYXJlbnRSZWZ9IC8+XG4gICAgICA8L0dsb2JhbENvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuICB9LFxuICBGZWF0dXJlcy5DSEFUX0FJXG4pXG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDNUQsU0FBU0MsbUJBQW1CLFFBQVEsb0NBQW9DO0FBQ3hFLFNBQVNDLHVCQUF1QixRQUFRLHdDQUF3QztBQUloRixTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBQ2pFLFNBQVNDLFdBQVcsUUFBUSw2QkFBNkI7QUFDekQsU0FBU0MsYUFBYSxRQUE2QixpQ0FBaUM7QUFDcEYsU0FBU0MsUUFBUSxRQUFRLG1DQUFtQztBQUM1RCxTQUFTQyxVQUFVLFFBQVEsd0JBQXdCO0FBQ25ELFNBQVNDLGlCQUFpQixFQUFFQyxpQkFBaUIsUUFBUSxnQkFBZ0I7QUFDckUsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBaUIxRCxPQUFPLElBQU1DLE1BQU0sR0FBR1AsVUFBVSxDQUM5QixVQUFBUSxJQUFBLEVBU21CO0VBQUEsSUFSakJDLE1BQU0sR0FBQUQsSUFBQSxDQUFOQyxNQUFNO0lBQ0dDLGNBQWMsR0FBQUYsSUFBQSxDQUF2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
109
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VTdHJlYW1kb3duU3R5bGVzIiwidXNlUHJvamVjdFN1bW1hcnlDb25maWciLCJNT0RBTF9FTEVNRU5UUyIsIkNoYXRBSU1vZGFsIiwiR2xvYmFsQ29udGV4dCIsIkZlYXR1cmVzIiwid2l0aEFwcENmZyIsImFjcXVpcmVDaGF0c1N0b3JlIiwicmVsZWFzZUNoYXRzU3RvcmUiLCJlbnN1cmVTZXNzaW9uTm90aWZpY2F0aW9uc0luaXRpYWxpemVkIiwiaW5pdFNlc3Npb25VbnJlYWRQZXJzaXN0ZW5jZSIsInVzZVNlc3Npb25zU3RvcmUiLCJ1c2VVc2VyIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJqc3giLCJfanN4IiwiQ2hhdEFJIiwiX3JlZiIsImVudGl0eSIsImluaXRpYWxQcm9qZWN0IiwicHJvamVjdCIsImluaXRpYWxDbGllbnQiLCJjbGllbnQiLCJpbml0aWFsVGFzayIsInRhc2siLCJfcmVmJGhhbmRsZUNsb3NlIiwiaGFuZGxlQ2xvc2UiLCJfcmVmJGhhc011bHRpQWdlbnRzIiwiaGFzTXVsdGlBZ2VudHMiLCJfcmVmJHNlY3Rpb24iLCJzZWN0aW9uIiwiX3JlZiRmYXEiLCJmYXEiLCJiYW5uZXJFbnRyeUZhcVByb3AiLCJwYXJlbnRSZWYiLCJpbml0aWFsUHJvamVjdFZhbHVlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0UHJvamVjdCIsIl91c2VQcm9qZWN0U3VtbWFyeUNvbiIsInVuZGVmaW5lZCIsImNvbnRleHQiLCJyZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MiLCJldmVudEFtcGxpdHVkZSIsInVzZXIiLCJoYW5kbGVDbG9zZU1vZGFsIiwiYWlDaGF0Q2xvc2UiLCJpZCIsImNvbXBhbnlfaWQiLCJnZXRTdGF0ZSIsImh5ZHJhdGVQZXJzaXN0ZWRVbnJlYWRTZXNzaW9ucyIsImJhbm5lckVudHJ5RmFxIiwiX2Jhbm5lckVudHJ5RmFxUHJvcCRmIiwiX2Jhbm5lckVudHJ5RmFxUHJvcCRmMiIsImZhcUlkIiwidHJpbSIsInRpdGxlIiwiZmFxVGl0bGUiLCJjb250ZXh0RGF0YSIsIl90eXBlb2YiLCJfb2JqZWN0U3ByZWFkIiwicHJvdmlkZXJWYWx1ZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsIkNIQVRfQUkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvQ2hhdEFJL0NoYXRBSS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VTdHJlYW1kb3duU3R5bGVzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU3RyZWFtZG93blN0eWxlcydcbmltcG9ydCB7IHVzZVByb2plY3RTdW1tYXJ5Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUHJvamVjdFN1bW1hcnlDb25maWcnXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvUHJvamVjdCdcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NsaWVudCdcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9UYXNrJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcbmltcG9ydCB7IENoYXRBSU1vZGFsIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL0NoYXRBSU1vZGFsJ1xuaW1wb3J0IHsgR2xvYmFsQ29udGV4dCwgdHlwZSBCYW5uZXJFbnRyeUZhcSB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBGZWF0dXJlcyB9IGZyb20gJy4uLy4uL2F0b21zL1dpdGhGZWF0dXJlVmFsaWRhdGlvbidcbmltcG9ydCB7IHdpdGhBcHBDZmcgfSBmcm9tICcuLi8uLi9hdG9tcy9XaXRoQXBwQ2ZnJ1xuaW1wb3J0IHsgYWNxdWlyZUNoYXRzU3RvcmUsIHJlbGVhc2VDaGF0c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUnXG5pbXBvcnQgeyBlbnN1cmVTZXNzaW9uTm90aWZpY2F0aW9uc0luaXRpYWxpemVkIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2Vzc2lvbnMvc2Vzc2lvbk5vdGlmaWNhdGlvbnMnXG5pbXBvcnQgeyBpbml0U2Vzc2lvblVucmVhZFBlcnNpc3RlbmNlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvc2Vzc2lvbnMvc2Vzc2lvblVucmVhZFBlcnNpc3RlbmNlJ1xuaW1wb3J0IHsgdXNlU2Vzc2lvbnNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25zU3RvcmUnXG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9jb3ItdXNlcidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcblxudHlwZSBDaGF0QUlQcm9wcyA9IHtcbiAgZW50aXR5OiB7XG4gICAgcHJvamVjdElkOiBzdHJpbmcgfCBudWxsXG4gICAgY2xpZW50SWQ6IHN0cmluZyB8IG51bGxcbiAgfVxuICBwcm9qZWN0OiBQcm9qZWN0IHwgbnVsbFxuICBjbGllbnQ/OiBDbGllbnQgfCBudWxsXG4gIHRhc2s/OiBUYXNrIHwgbnVsbFxuICBoYW5kbGVDbG9zZT86ICgpID0+IHZvaWRcbiAgaGFzTXVsdGlBZ2VudHM/OiBib29sZWFuXG4gIHNlY3Rpb24/OiAncHJvamVjdCcgfCAnaGVhZGVyJyB8ICdjbGllbnQnIHwgJ3Rhc2snXG4gIC8qKiBCYW5uZXIgLyBob3N0OiBhYnJlIGVsIGNoYXQgZW52aWFuZG8gbGEgRkFRIGNvbW8gbWVuc2FqZSB5IGBYLUZhcS1JZGAgZW4gZWwgb3JjaGVzdHJhdG9yICovXG4gIGZhcT86IEJhbm5lckVudHJ5RmFxIHwgbnVsbFxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJID0gd2l0aEFwcENmZyhcbiAgKHtcbiAgICBlbnRpdHksXG4gICAgcHJvamVjdDogaW5pdGlhbFByb2plY3QsXG4gICAgY2xpZW50OiBpbml0aWFsQ2xpZW50LFxuICAgIHRhc2s6IGluaXRpYWxUYXNrLFxuICAgIGhhbmRsZUNsb3NlID0gKCkgPT4gbnVsbCxcbiAgICBoYXNNdWx0aUFnZW50cyA9IGZhbHNlLFxuICAgIHNlY3Rpb24gPSAnaGVhZGVyJyxcbiAgICBmYXE6IGJhbm5lckVudHJ5RmFxUHJvcCA9IG51bGwsXG4gIH06IENoYXRBSVByb3BzKSA9PiB7XG4gICAgdXNlU3RyZWFtZG93blN0eWxlcygpXG4gICAgY29uc3QgcGFyZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICAgIGNvbnN0IGluaXRpYWxQcm9qZWN0VmFsdWUgPSBzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ3Rhc2snID8gaW5pdGlhbFByb2plY3QgOiBudWxsXG4gICAgY29uc3QgW3Byb2plY3QsIHNldFByb2plY3RdID0gdXNlU3RhdGU8UHJvamVjdCB8IG51bGw+KGluaXRpYWxQcm9qZWN0VmFsdWUpXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKChzZWN0aW9uID09PSAncHJvamVjdCcgfHwgc2VjdGlvbiA9PT0gJ3Rhc2snKSAmJiBpbml0aWFsUHJvamVjdCAhPSBudWxsKSB7XG4gICAgICAgIHNldFByb2plY3QoaW5pdGlhbFByb2plY3QpXG4gICAgICB9XG4gICAgfSwgW3NlY3Rpb24sIGluaXRpYWxQcm9qZWN0XSlcblxuICAgIGNvbnN0IHsgY29udGV4dCwgcmVzdG9yZUNvbmZpZ3VyZVNldHRpbmdzIH0gPSB1c2VQcm9qZWN0U3VtbWFyeUNvbmZpZyh7XG4gICAgICBzZWN0aW9uLFxuICAgICAgZW50aXR5LFxuICAgICAgcHJvamVjdCxcbiAgICAgIHNldFByb2plY3QsXG4gICAgICBjbGllbnQ6IHNlY3Rpb24gPT09ICdjbGllbnQnID8gKGluaXRpYWxDbGllbnQgPz8gbnVsbCkgOiB1bmRlZmluZWQsXG4gICAgICB0YXNrOiBzZWN0aW9uID09PSAndGFzaycgPyAoaW5pdGlhbFRhc2sgPz8gbnVsbCkgOiB1bmRlZmluZWQsXG4gICAgICBoYXNNdWx0aUFnZW50cyxcbiAgICB9KVxuICAgIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICAgIGNvbnN0IHVzZXIgPSB1c2VVc2VyKClcblxuICAgIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0Q2xvc2UpXG4gICAgICByZXN0b3JlQ29uZmlndXJlU2V0dGluZ3MoKVxuICAgICAgaGFuZGxlQ2xvc2UoKVxuICAgIH1cblxuICAgIC8vIFJlc2V0IGRlbCBzdG9yZSBzb2xvIGN1YW5kbyBubyBxdWVkYSBuaW5ndW5hIGluc3RhbmNpYSBkZSBDaGF0QUkgbW9udGFkYVxuICAgIC8vIChlai4gc2lkZWJhciArIGZsb3RhbnRlIGVuIHRhcmVhIGNvbXBhcnRlbiBlbCBtaXNtbyBzdG9yZSBnbG9iYWwpXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGFjcXVpcmVDaGF0c1N0b3JlKClcbiAgICAgIGVuc3VyZVNlc3Npb25Ob3RpZmljYXRpb25zSW5pdGlhbGl6ZWQoKVxuICAgICAgaW5pdFNlc3Npb25VbnJlYWRQZXJzaXN0ZW5jZSh1c2VyLmlkLCB1c2VyLmNvbXBhbnlfaWQpXG4gICAgICB1c2VTZXNzaW9uc1N0b3JlLmdldFN0YXRlKCkuaHlkcmF0ZVBlcnNpc3RlZFVucmVhZFNlc3Npb25zKClcbiAgICAgIHJldHVybiAoKSA9PiByZWxlYXNlQ2hhdHNTdG9yZSgpXG4gICAgfSwgW3VzZXIuaWQsIHVzZXIuY29tcGFueV9pZF0pXG5cbiAgICBjb25zdCBiYW5uZXJFbnRyeUZhcSA9IHVzZU1lbW8oKCk6IEJhbm5lckVudHJ5RmFxIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBpZCA9IGJhbm5lckVudHJ5RmFxUHJvcD8uZmFxSWQ/LnRyaW0oKVxuICAgICAgY29uc3QgdGl0bGUgPSBiYW5uZXJFbnRyeUZhcVByb3A/LmZhcVRpdGxlPy50cmltKClcbiAgICAgIGlmICghdGl0bGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbnRleHREYXRhID1cbiAgICAgICAgYmFubmVyRW50cnlGYXFQcm9wPy5jb250ZXh0RGF0YSAhPSBudWxsICYmIHR5cGVvZiBiYW5uZXJFbnRyeUZhcVByb3AuY29udGV4dERhdGEgPT09ICdvYmplY3QnXG4gICAgICAgICAgPyBiYW5uZXJFbnRyeUZhcVByb3AuY29udGV4dERhdGFcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uKGlkID8geyBmYXFJZDogaWQgfSA6IHt9KSxcbiAgICAgICAgZmFxVGl0bGU6IHRpdGxlLFxuICAgICAgICAuLi4oY29udGV4dERhdGEgPyB7IGNvbnRleHREYXRhIH0gOiB7fSksXG4gICAgICB9XG4gICAgfSwgW2Jhbm5lckVudHJ5RmFxUHJvcD8uZmFxSWQsIGJhbm5lckVudHJ5RmFxUHJvcD8uZmFxVGl0bGUsIGJhbm5lckVudHJ5RmFxUHJvcD8uY29udGV4dERhdGFdKVxuXG4gICAgY29uc3QgcHJvdmlkZXJWYWx1ZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICBzZWN0aW9uOiBzZWN0aW9uIGFzICdwcm9qZWN0JyB8ICdoZWFkZXInIHwgJ2NsaWVudCcgfCAndGFzaycsXG4gICAgICAgIGJhbm5lckVudHJ5RmFxLFxuICAgICAgfSksXG4gICAgICBbY29udGV4dCwgc2VjdGlvbiwgYmFubmVyRW50cnlGYXFdXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxHbG9iYWxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcm92aWRlclZhbHVlfT5cbiAgICAgICAgPENoYXRBSU1vZGFsIGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9IGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZU1vZGFsfSBwYXJlbnRSZWY9e3BhcmVudFJlZn0gLz5cbiAgICAgIDwvR2xvYmFsQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG4gIH0sXG4gIEZlYXR1cmVzLkNIQVRfQUlcbilcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsT0FBTyxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUM1RCxTQUFTQyxtQkFBbUIsUUFBUSxvQ0FBb0M7QUFDeEUsU0FBU0MsdUJBQXVCLFFBQVEsd0NBQXdDO0FBSWhGLFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7QUFDakUsU0FBU0MsV0FBVyxRQUFRLDZCQUE2QjtBQUN6RCxTQUFTQyxhQUFhLFFBQTZCLGlDQUFpQztBQUNwRixTQUFTQyxRQUFRLFFBQVEsbUNBQW1DO0FBQzVELFNBQVNDLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsU0FBU0MsaUJBQWlCLEVBQUVDLGlCQUFpQixRQUFRLGdCQUFnQjtBQUNyRSxTQUFTQyxxQ0FBcUMsUUFBUSw4Q0FBOEM7QUFDcEcsU0FBU0MsNEJBQTRCLFFBQVEsa0RBQWtEO0FBQy9GLFNBQVNDLGdCQUFnQixRQUFRLDBDQUEwQztBQUMzRSxTQUFTQyxPQUFPLFFBQVEsMkJBQTJCO0FBQ25ELFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQWlCMUQsT0FBTyxJQUFNQyxNQUFNLEdBQUdYLFVBQVUsQ0FDOUIsVUFBQVksSUFBQSxFQVNtQjtFQUFBLElBUmpCQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtJQUNHQyxjQUFjLEdBQUFGLElBQUEsQ0FBdkJHLE9BQU87SUFDQ0MsYUFBYSxHQUFBSixJQUFBLENBQXJCSyxNQUFNO0lBQ0FDLFdBQVcsR0FB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