@projectcor/maia-components 2.11.11-5 → 2.11.11-6

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 (74) hide show
  1. package/lib/components/atoms/Chip/Chip.js +3 -4
  2. package/lib/components/atoms/Chip/styles.js +2 -2
  3. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +3 -5
  4. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +33 -36
  5. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +7 -67
  6. package/lib/components/atoms/MAIAInput/MAIAInput.js +18 -122
  7. package/lib/components/atoms/MAIAInput/styles.js +11 -27
  8. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +193 -56
  9. package/lib/components/index.js +1 -2
  10. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +1 -9
  11. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +3 -2
  12. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +213 -105
  13. package/lib/components/molecules/ChatAIMessages/newStyles.js +5 -3
  14. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +6 -18
  15. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +2 -72
  16. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -10
  17. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +3 -5
  18. package/lib/components/molecules/ChatAIModal/constants.js +2 -6
  19. package/lib/components/molecules/ChatFooter/ChatFooter.js +10 -12
  20. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +21 -4
  21. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +2 -2
  22. package/lib/components/organisms/ChatAI/ChatAI.js +3 -11
  23. package/lib/constants/config.js +2 -3
  24. package/lib/context/global-context.js +1 -1
  25. package/lib/hooks/useChatManager/useChatManager.js +19 -49
  26. package/lib/hooks/useChatMessages/useChatMessages.js +38 -72
  27. package/lib/hooks/useFrequentlyAskedQuestions.js +1 -1
  28. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -6
  29. package/lib/hooks/useProjectSummaryConfig.js +7 -35
  30. package/lib/lang/br/index.js +5 -38
  31. package/lib/lang/en/index.js +5 -38
  32. package/lib/lang/es/index.js +5 -38
  33. package/lib/lang/fr/index.js +2 -21
  34. package/lib/services/maia/Agents/getAgents.js +4 -6
  35. package/lib/services/maia/Chats/getChatMessages.js +14 -27
  36. package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
  37. package/lib/services/maia/Orchestrator/orchestrator.js +4 -6
  38. package/lib/services/maia/index.js +2 -4
  39. package/lib/services/utils/mapChatMessages.js +4 -12
  40. package/lib/store/chatsStore.types.js +1 -1
  41. package/lib/types/Chat.js +1 -1
  42. package/lib/types/agent.js +1 -1
  43. package/package.json +1 -1
  44. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +0 -69
  45. package/lib/components/atoms/ChatClientSelector/index.js +0 -2
  46. package/lib/components/atoms/EntitySelector/EntitySelector.js +0 -181
  47. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +0 -57
  48. package/lib/components/atoms/EntitySelector/index.js +0 -2
  49. package/lib/components/atoms/SlashCommandDropdown/CategoryStepRegistry.js +0 -5
  50. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +0 -54
  51. package/lib/components/atoms/SlashCommandDropdown/SlashCommandList.js +0 -26
  52. package/lib/components/atoms/SlashCommandDropdown/index.js +0 -2
  53. package/lib/components/atoms/SlashCommandDropdown/steps/TaskStepSelector.js +0 -208
  54. package/lib/components/atoms/SlashCommandDropdown/steps/index.js +0 -2
  55. package/lib/components/atoms/SlashCommandDropdown/styles.js +0 -50
  56. package/lib/components/atoms/SlashCommandDropdown/types.js +0 -2
  57. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +0 -56
  58. package/lib/components/molecules/ChatAIClientSelector/index.js +0 -2
  59. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +0 -26
  60. package/lib/components/organisms/ClientAIButton/index.js +0 -2
  61. package/lib/hooks/useFrequentlyUsedActions.js +0 -73
  62. package/lib/hooks/useRecentClientsSearch.js +0 -176
  63. package/lib/hooks/useSlashCommands.js +0 -73
  64. package/lib/services/cor/getProjectTasks.js +0 -71
  65. package/lib/services/maia/FrequentlyUsedActions/getFrequentlyUsedActions.js +0 -48
  66. package/lib/services/maia/FrequentlyUsedActions/index.js +0 -5
  67. package/lib/services/maia/RecentClients/getRecentClients.js +0 -43
  68. package/lib/services/maia/RecentClients/index.js +0 -6
  69. package/lib/services/maia/SlashCommands/getSlashCommands.js +0 -48
  70. package/lib/services/maia/SlashCommands/index.js +0 -5
  71. package/lib/services/query/getTaskFamilyProjectsQuery.js +0 -5
  72. package/lib/types/Client.js +0 -2
  73. package/lib/types/FrequentlyUsedAction.js +0 -2
  74. package/lib/types/SlashCommand.js +0 -2
@@ -9,7 +9,7 @@ var customInputStyles = css(["outline:none;background:linear-gradient(white,whit
9
9
  export var StyledMAIAInputWrapper = styled.div.withConfig({
10
10
  displayName: "styles__StyledMAIAInputWrapper",
11
11
  componentId: "sc-cs6u9w-0"
12
- })(["position:relative;box-sizing:border-box;width:100%;border-radius:8px;border:1px solid ", ";transition:border-color 0.2s ease;padding:12px;cursor:", ";display:flex;min-height:86px;gap:", ";flex-direction:column;&:focus-within{", "}", ""], colors.text.disabled, function (_ref) {
12
+ })(["box-sizing:border-box;width:100%;border-radius:8px;border:1px solid ", ";transition:border-color 0.2s ease;padding:12px;cursor:", ";display:flex;min-height:86px;gap:", ";flex-direction:column;&:focus-within{", "}", ""], colors.text.disabled, function (_ref) {
13
13
  var disabled = _ref.disabled;
14
14
  return disabled ? 'not-allowed' : 'auto';
15
15
  }, function (_ref2) {
@@ -30,25 +30,9 @@ export var StyledMAIAInput = styled.textarea.withConfig({
30
30
  displayName: "styles__StyledMAIAInput",
31
31
  componentId: "sc-cs6u9w-2"
32
32
  })(["", " width:100%;font-size:14px;padding:0;resize:none;position:relative;background:transparent;border:none;outline:none;min-height:22.1px;max-height:122.1px;&:disabled{cursor:not-allowed;}&:focus{outline:none;}&::placeholder{color:", ";}"], scrollableStyles, colors.text.secondary);
33
- export var SCMIInlineContextPreview = styled.div.withConfig({
34
- displayName: "styles__SCMIInlineContextPreview",
35
- componentId: "sc-cs6u9w-3"
36
- })(["display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:24px;"]);
37
- export var SCMIInlineContextText = styled.span.withConfig({
38
- displayName: "styles__SCMIInlineContextText",
39
- componentId: "sc-cs6u9w-4"
40
- })(["color:#20201f;font-size:16px;font-weight:400;line-height:140%;letter-spacing:-0.16px;"]);
41
- export var SCMIInlineTaskLink = styled.a.withConfig({
42
- displayName: "styles__SCMIInlineTaskLink",
43
- componentId: "sc-cs6u9w-5"
44
- })(["text-decoration:none !important;color:#202020 !important;font-size:16px;font-weight:600 !important;position:relative;padding-left:24px;&:hover{text-decoration:underline !important;}&::before{content:'';position:absolute;left:0;top:0;width:20px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 18C11.125 18 12.125 17.4375 12.6875 16.5625C13.7188 16.7812 14.8438 16.4688 15.6562 15.6562C16.4375 14.875 16.75 13.75 16.5312 12.7188C17.4062 12.1562 18 11.1562 18 10C18 8.875 17.4062 7.875 16.5312 7.3125C16.75 6.28125 16.4375 5.15625 15.6562 4.34375C14.8438 3.5625 13.7188 3.25 12.6875 3.46875C12.125 2.59375 11.125 2 10 2C8.84375 2 7.84375 2.59375 7.28125 3.46875C6.25 3.25 5.125 3.5625 4.34375 4.34375C3.53125 5.15625 3.21875 6.28125 3.4375 7.3125C2.5625 7.875 2 8.875 2 10C2 11.1562 2.5625 12.1562 3.4375 12.7188C3.21875 13.75 3.53125 14.875 4.34375 15.6562C5.125 16.4688 6.25 16.7812 7.28125 16.5625C7.84375 17.4375 8.84375 18 10 18ZM8.0625 14.625C7.40625 14.9375 6.34375 15.5625 5.375 14.5938C4.375 13.5938 5.125 12.4688 5.375 11.9375C4.71875 11.6875 3.5 11.375 3.5 10C3.5 8.59375 4.8125 8.3125 5.375 8.09375C5.09375 7.46875 4.4375 6.375 5.40625 5.40625C6.40625 4.40625 7.53125 5.15625 8.0625 5.40625C8.3125 4.75 8.625 3.5 10 3.5C11.4062 3.5 11.6875 4.84375 11.9062 5.40625C12.5312 5.125 13.625 4.46875 14.5938 5.4375C15.5938 6.4375 14.8438 7.5625 14.5938 8.09375C15.25 8.34375 16.4688 8.65625 16.4688 10.0312C16.4688 11.4375 15.1562 11.7188 14.5938 11.9375C14.875 12.5625 15.5625 13.6562 14.5938 14.625C13.7188 15.5 12.8438 15.0625 11.9062 14.625C11.6562 15.2812 11.3438 16.5 10 16.5C8.5625 16.5 8.28125 15.1875 8.0625 14.625Z' fill='%238740BF'/%3E%3C/svg%3E\");background-size:contain;background-repeat:no-repeat;background-position:center;}"]);
45
- export var SCMIInlineContextClear = styled.button.withConfig({
46
- displayName: "styles__SCMIInlineContextClear",
47
- componentId: "sc-cs6u9w-6"
48
- })(["display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px 5px;cursor:pointer;color:#999;font-size:16px;line-height:1;border-radius:4px;flex-shrink:0;&:hover{color:#333;background:#f0f0f0;}"]);
49
33
  export var StyledMAIASendButton = styled(ClearButton).withConfig({
50
34
  displayName: "styles__StyledMAIASendButton",
51
- componentId: "sc-cs6u9w-7"
35
+ componentId: "sc-cs6u9w-3"
52
36
  })(["background-color:", ";height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color 0.2s ease;svg{transition:transform 0.2s ease;", "}&:hover{svg{transform:scale(1.05);}}&:active{transform:scale(0.9);svg{transition:transform 0.2s ease;g *{fill:rgba(135,64,191,1) !important;}}}transition:transform 0.2s ease;&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;", " &:hover{svg{transform:none;}}&:active{transform:none;}}"], function (_ref5) {
53
37
  var hasValues = _ref5.hasValues;
54
38
  return hasValues ? '#F7F0FC' : '#f2f2f2';
@@ -61,15 +45,15 @@ export var StyledMAIASendButton = styled(ClearButton).withConfig({
61
45
  });
62
46
  export var SCMIWrapperAttachments = styled.div.withConfig({
63
47
  displayName: "styles__SCMIWrapperAttachments",
64
- componentId: "sc-cs6u9w-8"
48
+ componentId: "sc-cs6u9w-4"
65
49
  })(["display:flex;gap:12px;align-items:center;"]);
66
50
  export var SCMIAttachmentDeleteIcon = styled.div.withConfig({
67
51
  displayName: "styles__SCMIAttachmentDeleteIcon",
68
- componentId: "sc-cs6u9w-9"
52
+ componentId: "sc-cs6u9w-5"
69
53
  })(["position:absolute;display:none;justify-content:center;align-items:center;top:0;right:0;padding:2px;border-radius:50%;&:hover{background-color:#e6e6e6;svg *:not(.no-fill){fill:#666666 !important;}}"]);
70
54
  export var SCMIAttachment = styled.div.withConfig({
71
55
  displayName: "styles__SCMIAttachment",
72
- componentId: "sc-cs6u9w-10"
56
+ componentId: "sc-cs6u9w-6"
73
57
  })(["display:flex;justify-content:center;align-items:center;border:1px solid rgba(191,191,191,1);border-radius:6px;cursor:pointer;position:relative;padding:13px;", " &:hover{", "{display:flex;}}"], function (_ref8) {
74
58
  var isImage = _ref8.isImage;
75
59
  return isImage && css(["padding:0px !important;"]);
@@ -81,7 +65,7 @@ var getAttachmentBorderColor = function getAttachmentBorderColor(p) {
81
65
  };
82
66
  export var SCMIWrapperAttachmentButton = styled.div.withConfig({
83
67
  displayName: "styles__SCMIWrapperAttachmentButton",
84
- componentId: "sc-cs6u9w-11"
68
+ componentId: "sc-cs6u9w-7"
85
69
  })(["", " border:1px solid ", ";background-color:", ";cursor:", ";&:hover{background-color:rgba(247,240,252,1) !important;border:1px solid rgba(135,64,191,1) !important;svg *{fill:rgba(135,64,191,1) !important;}}"], baseButtonActionStyles, getAttachmentBorderColor, function (_ref9) {
86
70
  var hasAttachments = _ref9.hasAttachments,
87
71
  isMaximized = _ref9.isMaximized;
@@ -97,7 +81,7 @@ var getWebSearchBorderColor = function getWebSearchBorderColor(p) {
97
81
  };
98
82
  export var SCMIWrapperWebSearchButton = styled.div.withConfig({
99
83
  displayName: "styles__SCMIWrapperWebSearchButton",
100
- componentId: "sc-cs6u9w-12"
84
+ componentId: "sc-cs6u9w-8"
101
85
  })(["", " border:1px solid ", ";background-color:", ";cursor:pointer;", ""], baseButtonActionStyles, getWebSearchBorderColor, function (_ref1) {
102
86
  var isActive = _ref1.isActive;
103
87
  return !isActive ? '#ffffff' : 'rgba(247, 240, 252, 1)';
@@ -111,7 +95,7 @@ var getDeepSearchBorderColor = function getDeepSearchBorderColor(p) {
111
95
  };
112
96
  export var SCMIWrapperDeepSearchButton = styled.div.withConfig({
113
97
  displayName: "styles__SCMIWrapperDeepSearchButton",
114
- componentId: "sc-cs6u9w-13"
98
+ componentId: "sc-cs6u9w-9"
115
99
  })(["", " border:1px solid ", ";background-color:", ";cursor:pointer;", ""], baseButtonActionStyles, getDeepSearchBorderColor, function (_ref11) {
116
100
  var isActive = _ref11.isActive;
117
101
  return !isActive ? '#ffffff' : 'rgba(247, 240, 252, 1)';
@@ -121,10 +105,10 @@ export var SCMIWrapperDeepSearchButton = styled.div.withConfig({
121
105
  });
122
106
  export var StyledMAIAStopIcon = styled.div.withConfig({
123
107
  displayName: "styles__StyledMAIAStopIcon",
124
- componentId: "sc-cs6u9w-14"
108
+ componentId: "sc-cs6u9w-10"
125
109
  })(["width:13px;height:13px;background-color:#8c8c8c;border-radius:2px;"]);
126
110
  export var StyledMAIAStopButton = styled.button.withConfig({
127
111
  displayName: "styles__StyledMAIAStopButton",
128
- componentId: "sc-cs6u9w-15"
112
+ componentId: "sc-cs6u9w-11"
129
113
  })(["background:none;border:none;padding:0;font:inherit;background-color:#f2f2f2 !important;height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;&:hover{background-color:#f7f0fc !important;", "{background-color:#aa6ede;}}&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;opacity:0.6;}"], StyledMAIAStopIcon);
130
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJHTE9CQUxfQ09MT1JTIiwic2Nyb2xsYWJsZVN0eWxlcyIsIkNsZWFyQnV0dG9uIiwiZmxvdyIsImN1c3RvbUlucHV0U3R5bGVzIiwibGlnaHQiLCJwcmltYXJ5IiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwidGV4dCIsImRpc2FibGVkIiwiX3JlZiIsIl9yZWYyIiwiYWxpZ25CdXR0b25zIiwiX3JlZjMiLCJoYXNBdHRhY2htZW50cyIsIlN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMiLCJfcmVmNCIsImhhc0hlYWRlckJ1dHRvbnMiLCJTdHlsZWRNQUlBSW5wdXQiLCJ0ZXh0YXJlYSIsInNlY29uZGFyeSIsIlNDTUlJbmxpbmVDb250ZXh0UHJldmlldyIsIlNDTUlJbmxpbmVDb250ZXh0VGV4dCIsInNwYW4iLCJTQ01JSW5saW5lVGFza0xpbmsiLCJhIiwiU0NNSUlubGluZUNvbnRleHRDbGVhciIsImJ1dHRvbiIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiX3JlZjUiLCJoYXNWYWx1ZXMiLCJfcmVmNiIsIl9yZWY3IiwiU0NNSVdyYXBwZXJBdHRhY2htZW50cyIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlNDTUlBdHRhY2htZW50IiwiX3JlZjgiLCJpc0ltYWdlIiwiYmFzZUJ1dHRvbkFjdGlvblN0eWxlcyIsImdldEF0dGFjaG1lbnRCb3JkZXJDb2xvciIsInAiLCJpc01heGltaXplZCIsIiRpc0ZvY3VzZWQiLCJTQ01JV3JhcHBlckF0dGFjaG1lbnRCdXR0b24iLCJfcmVmOSIsIl9yZWYwIiwiZ2V0V2ViU2VhcmNoQm9yZGVyQ29sb3IiLCJpc0FjdGl2ZSIsIlNDTUlXcmFwcGVyV2ViU2VhcmNoQnV0dG9uIiwiX3JlZjEiLCJfcmVmMTAiLCJnZXREZWVwU2VhcmNoQm9yZGVyQ29sb3IiLCJTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24iLCJfcmVmMTEiLCJfcmVmMTIiLCJTdHlsZWRNQUlBU3RvcEljb24iLCJTdHlsZWRNQUlBU3RvcEJ1dHRvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBHTE9CQUxfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IHNjcm9sbGFibGVTdHlsZXMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc2hhcmVkL3Njcm9sbGFibGUnXG5pbXBvcnQgeyBDbGVhckJ1dHRvbiB9IGZyb20gJy4uL0NsZWFyQnV0dG9uJ1xuXG5leHBvcnQgY29uc3QgZmxvdyA9IGtleWZyYW1lc2BcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmZjQzY2EgMCUsICNiYTQzZmYgNTkuNjIlLCAjZTdjNGZmIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG5cbiAgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0dMT0JBTF9DT0xPUlMubGlnaHR9O1xuICAgIHN2ZyAqIHtcbiAgICAgIGZpbGw6ICR7R0xPQkFMX0NPTE9SUy5wcmltYXJ5fTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGFsaWduQnV0dG9ucz86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCdcbiAgaGFzQXR0YWNobWVudHM6IGJvb2xlYW5cbn0+YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Y29sb3JzLnRleHQuZGlzYWJsZWR9O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xuICBwYWRkaW5nOiAxMnB4O1xuICBjdXJzb3I6ICR7KHsgZGlzYWJsZWQgfSkgPT4gKGRpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdhdXRvJyl9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiA4NnB4O1xuICBnYXA6ICR7KHsgYWxpZ25CdXR0b25zIH0pID0+IChhbGlnbkJ1dHRvbnMgPT09ICd2ZXJ0aWNhbCcgPyAnOHB4JyA6ICcwJyl9O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICAke2N1c3RvbUlucHV0U3R5bGVzfVxuICB9XG5cbiAgJHsoeyBoYXNBdHRhY2htZW50cyB9KSA9PlxuICAgIGhhc0F0dGFjaG1lbnRzICYmXG4gICAgY3NzYFxuICAgICAgJHtjdXN0b21JbnB1dFN0eWxlc31cbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0QnV0dG9ucyA9IHN0eWxlZC5kaXY8eyBoYXNIZWFkZXJCdXR0b25zOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGhlaWdodDogMzBweDtcbiAganVzdGlmeS1jb250ZW50OiAkeyh7IGhhc0hlYWRlckJ1dHRvbnMgfSkgPT4gKGhhc0hlYWRlckJ1dHRvbnMgPyAnc3BhY2UtYmV0d2VlbicgOiAnZmxleC1lbmQnKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBSW5wdXQgPSBzdHlsZWQudGV4dGFyZWE8e1xuICBhbGlnbkJ1dHRvbnM/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnXG59PmBcbiAgJHtzY3JvbGxhYmxlU3R5bGVzfVxuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiAwO1xuICByZXNpemU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgbWluLWhlaWdodDogMjIuMXB4O1xuICBtYXgtaGVpZ2h0OiAxMjIuMXB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnNlY29uZGFyeX07XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlJbmxpbmVDb250ZXh0UHJldmlldyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA4cHg7XG4gIG1pbi1oZWlnaHQ6IDI0cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JSW5saW5lQ29udGV4dFRleHQgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4xNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNSUlubGluZVRhc2tMaW5rID0gc3R5bGVkLmFgXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIwMjAyMCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyMCcgaGVpZ2h0PScyMCcgdmlld0JveD0nMCAwIDIwIDIwJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMTAgMThDMTEuMTI1IDE4IDEyLjEyNSAxNy40Mzc1IDEyLjY4NzUgMTYuNTYyNUMxMy43MTg4IDE2Ljc4MTIgMTQuODQzOCAxNi40Njg4IDE1LjY1NjIgMTUuNjU2MkMxNi40Mzc1IDE0Ljg3NSAxNi43NSAxMy43NSAxNi41MzEyIDEyLjcxODhDMTcuNDA2MiAxMi4xNTYyIDE4IDExLjE1NjIgMTggMTBDMTggOC44NzUgMTcuNDA2MiA3Ljg3NSAxNi41MzEyIDcuMzEyNUMxNi43NSA2LjI4MTI1IDE2LjQzNzUgNS4xNTYyNSAxNS42NTYyIDQuMzQzNzVDMTQuODQzOCAzLjU2MjUgMTMuNzE4OCAzLjI1IDEyLjY4NzUgMy40Njg3NUMxMi4xMjUgMi41OTM3NSAxMS4xMjUgMiAxMCAyQzguODQzNzUgMiA3Ljg0Mzc1IDIuNTkzNzUgNy4yODEyNSAzLjQ2ODc1QzYuMjUgMy4yNSA1LjEyNSAzLjU2MjUgNC4zNDM3NSA0LjM0Mzc1QzMuNTMxMjUgNS4xNTYyNSAzLjIxODc1IDYuMjgxMjUgMy40Mzc1IDcuMzEyNUMyLjU2MjUgNy44NzUgMiA4Ljg3NSAyIDEwQzIgMTEuMTU2MiAyLjU2MjUgMTIuMTU2MiAzLjQzNzUgMTIuNzE4OEMzLjIxODc1IDEzLjc1IDMuNTMxMjUgMTQuODc1IDQuMzQzNzUgMTUuNjU2MkM1LjEyNSAxNi40Njg4IDYuMjUgMTYuNzgxMiA3LjI4MTI1IDE2LjU2MjVDNy44NDM3NSAxNy40Mzc1IDguODQzNzUgMTggMTAgMThaTTguMDYyNSAxNC42MjVDNy40MDYyNSAxNC45Mzc1IDYuMzQzNzUgMTUuNTYyNSA1LjM3NSAxNC41OTM4QzQuMzc1IDEzLjU5MzggNS4xMjUgMTIuNDY4OCA1LjM3NSAxMS45Mzc1QzQuNzE4NzUgMTEuNjg3NSAzLjUgMTEuMzc1IDMuNSAxMEMzLjUgOC41OTM3NSA0LjgxMjUgOC4zMTI1IDUuMzc1IDguMDkzNzVDNS4wOTM3NSA3LjQ2ODc1IDQuNDM3NSA2LjM3NSA1LjQwNjI1IDUuNDA2MjVDNi40MDYyNSA0LjQwNjI1IDcuNTMxMjUgNS4xNTYyNSA4LjA2MjUgNS40MDYyNUM4LjMxMjUgNC43NSA4LjYyNSAzLjUgMTAgMy41QzExLjQwNjIgMy41IDExLjY4NzUgNC44NDM3NSAxMS45MDYyIDUuNDA2MjVDMTIuNTMxMiA1LjEyNSAxMy42MjUgNC40Njg3NSAxNC41OTM4IDUuNDM3NUMxNS41OTM4IDYuNDM3NSAxNC44NDM4IDcuNTYyNSAxNC41OTM4IDguMDkzNzVDMTUuMjUgOC4zNDM3NSAxNi40Njg4IDguNjU2MjUgMTYuNDY4OCAxMC4wMzEyQzE2LjQ2ODggMTEuNDM3NSAxNS4xNTYyIDExLjcxODggMTQuNTkzOCAxMS45Mzc1QzE0Ljg3NSAxMi41NjI1IDE1LjU2MjUgMTMuNjU2MiAxNC41OTM4IDE0LjYyNUMxMy43MTg4IDE1LjUgMTIuODQzOCAxNS4wNjI1IDExLjkwNjIgMTQuNjI1QzExLjY1NjIgMTUuMjgxMiAxMS4zNDM4IDE2LjUgMTAgMTYuNUM4LjU2MjUgMTYuNSA4LjI4MTI1IDE1LjE4NzUgOC4wNjI1IDE0LjYyNVonIGZpbGw9JyUyMzg3NDBCRicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlJbmxpbmVDb250ZXh0Q2xlYXIgPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAycHggNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjOTk5O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTZW5kQnV0dG9uID0gc3R5bGVkKENsZWFyQnV0dG9uKTx7IGhhc1ZhbHVlcz86IGJvb2xlYW4gfT5gXG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaGFzVmFsdWVzIH0pID0+IChoYXNWYWx1ZXMgPyAnI0Y3RjBGQycgOiAnI2YyZjJmMicpfTtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG5cbiAgc3ZnIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICR7KHsgaGFzVmFsdWVzIH0pID0+XG4gICAgICBoYXNWYWx1ZXMgJiZcbiAgICAgIGNzc2BcbiAgICAgICAgZyAqIHtcbiAgICAgICAgICBmaWxsOiByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIH1cbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgICBnICoge1xuICAgICAgICBmaWxsOiByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuXG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgICFoYXNWYWx1ZXMgJiZcbiAgICAgIGNzc2BcbiAgICAgICAgc3ZnICoge1xuICAgICAgICAgIGZpbGw6ICR7Y29sb3JzLnRleHQuZGlzYWJsZWR9ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JV3JhcHBlckF0dGFjaG1lbnRzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuYFxuZXhwb3J0IGNvbnN0IFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgIHN2ZyAqOm5vdCgubm8tZmlsbCkge1xuICAgICAgZmlsbDogIzY2NjY2NiAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnQgPSBzdHlsZWQuZGl2PHsgaXNJbWFnZT86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE5MSwgMTkxLCAxOTEsIDEpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxM3B4O1xuICAkeyh7IGlzSW1hZ2UgfSkgPT5cbiAgICBpc0ltYWdlICYmXG4gICAgY3NzYFxuICAgICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gICAgYH1cblxuICAmOmhvdmVyIHtcbiAgICAke1NDTUlBdHRhY2htZW50RGVsZXRlSWNvbn0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbmBcblxuY29uc3QgYmFzZUJ1dHRvbkFjdGlvblN0eWxlcyA9IGNzc2BcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbmBcbmNvbnN0IGdldEF0dGFjaG1lbnRCb3JkZXJDb2xvciA9IChwOiB7IGhhc0F0dGFjaG1lbnRzOiBib29sZWFuOyBpc01heGltaXplZD86IGJvb2xlYW47ICRpc0ZvY3VzZWQ/OiBib29sZWFuIH0pID0+IHtcbiAgaWYgKHAuaGFzQXR0YWNobWVudHMgfHwgcC5pc01heGltaXplZCkgcmV0dXJuICdyZ2JhKDEzNSwgNjQsIDE5MSwgMSknXG4gIHJldHVybiBwLiRpc0ZvY3VzZWQgIT09IGZhbHNlID8gJyM2NjY2NjYnIDogJyM5OTknXG59XG5cbmV4cG9ydCBjb25zdCBTQ01JV3JhcHBlckF0dGFjaG1lbnRCdXR0b24gPSBzdHlsZWQuZGl2PHtcbiAgaXNNYXhpbWl6ZWQ/OiBib29sZWFuXG4gIGhhc0F0dGFjaG1lbnRzOiBib29sZWFuXG4gICRpc0ZvY3VzZWQ/OiBib29sZWFuXG59PmBcbiAgJHtiYXNlQnV0dG9uQWN0aW9uU3R5bGVzfVxuICBib3JkZXI6IDFweCBzb2xpZCAke2dldEF0dGFjaG1lbnRCb3JkZXJDb2xvcn07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaGFzQXR0YWNobWVudHMsIGlzTWF4aW1pemVkIH0pID0+XG4gICAgIWhhc0F0dGFjaG1lbnRzICYmICFpc01heGltaXplZCA/ICcjZmZmZmZmJyA6ICdyZ2JhKDI0NywgMjQwLCAyNTIsIDEpJ307XG4gIGN1cnNvcjogJHsoeyBoYXNBdHRhY2htZW50cywgaXNNYXhpbWl6ZWQgfSkgPT4gKGhhc0F0dGFjaG1lbnRzIHx8IGlzTWF4aW1pemVkID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInKX07XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDcsIDI0MCwgMjUyLCAxKSAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTM1LCA2NCwgMTkxLCAxKSAhaW1wb3J0YW50O1xuICAgIHN2ZyAqIHtcbiAgICAgIGZpbGw6IHJnYmEoMTM1LCA2NCwgMTkxLCAxKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuYFxuY29uc3QgZ2V0V2ViU2VhcmNoQm9yZGVyQ29sb3IgPSAocDogeyBpc0FjdGl2ZTogYm9vbGVhbjsgJGlzRm9jdXNlZD86IGJvb2xlYW4gfSkgPT4ge1xuICBpZiAocC5pc0FjdGl2ZSkgcmV0dXJuICdyZ2JhKDEzNSwgNjQsIDE5MSwgMSknXG4gIHJldHVybiBwLiRpc0ZvY3VzZWQgIT09IGZhbHNlID8gJyM2NjY2NjYnIDogJyM5OTknXG59XG5cbmV4cG9ydCBjb25zdCBTQ01JV3JhcHBlcldlYlNlYXJjaEJ1dHRvbiA9IHN0eWxlZC5kaXY8eyBpc0FjdGl2ZTogYm9vbGVhbjsgJGlzRm9jdXNlZD86IGJvb2xlYW4gfT5gXG4gICR7YmFzZUJ1dHRvbkFjdGlvblN0eWxlc31cbiAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRXZWJTZWFyY2hCb3JkZXJDb2xvcn07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaXNBY3RpdmUgfSkgPT4gKCFpc0FjdGl2ZSA/ICcjZmZmZmZmJyA6ICdyZ2JhKDI0NywgMjQwLCAyNTIsIDEpJyl9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gICR7KHsgaXNBY3RpdmUgfSkgPT5cbiAgICAhaXNBY3RpdmUgJiZcbiAgICBjc3NgXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDcsIDI0MCwgMjUyLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgc3ZnICoge1xuICAgICAgICAgIGZpbGw6IHJnYmEoMTM1LCA2NCwgMTkxLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYH1cbmBcblxuY29uc3QgZ2V0RGVlcFNlYXJjaEJvcmRlckNvbG9yID0gKHA6IHsgaXNBY3RpdmU6IGJvb2xlYW47ICRpc0ZvY3VzZWQ/OiBib29sZWFuIH0pID0+IHtcbiAgaWYgKHAuaXNBY3RpdmUpIHJldHVybiAncmdiYSgxMzUsIDY0LCAxOTEsIDEpJ1xuICByZXR1cm4gcC4kaXNGb2N1c2VkICE9PSBmYWxzZSA/ICcjNjY2NjY2JyA6ICcjOTk5J1xufVxuXG5leHBvcnQgY29uc3QgU0NNSVdyYXBwZXJEZWVwU2VhcmNoQnV0dG9uID0gc3R5bGVkLmRpdjx7IGlzQWN0aXZlOiBib29sZWFuOyAkaXNGb2N1c2VkPzogYm9vbGVhbiB9PmBcbiAgJHtiYXNlQnV0dG9uQWN0aW9uU3R5bGVzfVxuICBib3JkZXI6IDFweCBzb2xpZCAke2dldERlZXBTZWFyY2hCb3JkZXJDb2xvcn07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaXNBY3RpdmUgfSkgPT4gKCFpc0FjdGl2ZSA/ICcjZmZmZmZmJyA6ICdyZ2JhKDI0NywgMjQwLCAyNTIsIDEpJyl9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gICR7KHsgaXNBY3RpdmUgfSkgPT5cbiAgICAhaXNBY3RpdmUgJiZcbiAgICBjc3NgXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDcsIDI0MCwgMjUyLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgc3ZnICoge1xuICAgICAgICAgIHN0cm9rZTogcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgfVxuYFxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTdG9wSWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YzhjOGM7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbmBcbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU3RvcEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjBmYyAhaW1wb3J0YW50O1xuXG4gICAgJHtTdHlsZWRNQUlBU3RvcEljb259IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYTZlZGU7XG4gICAgfVxuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFDMUQsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUN0RCxTQUFTQyxhQUFhLFFBQVEsd0JBQXdCO0FBQ3RELFNBQVNDLGdCQUFnQixRQUFRLG1DQUFtQztBQUNwRSxTQUFTQyxXQUFXLFFBQVEsZ0JBQWdCO0FBRTVDLE9BQU8sSUFBTUMsSUFBSSxHQUFHTCxTQUFTLHdHQVU1QjtBQUVELElBQU1NLGlCQUFpQixHQUFHUCxHQUFHLHVSQU9kTSxJQUFJLEVBR0tILGFBQWEsQ0FBQ0ssS0FBSyxFQUU3QkwsYUFBYSxDQUFDTSxPQUFPLENBR2xDO0FBRUQsT0FBTyxJQUFNQyxzQkFBc0IsR0FBR1gsTUFBTSxDQUFDWSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbVBBUzFCWixNQUFNLENBQUNhLElBQUksQ0FBQ0MsUUFBUSxFQUc5QixVQUFBQyxJQUFBO0VBQUEsSUFBR0QsUUFBUSxHQUFBQyxJQUFBLENBQVJELFFBQVE7RUFBQSxPQUFRQSxRQUFRLEdBQUcsYUFBYSxHQUFHLE1BQU07QUFBQSxDQUFDLEVBR3hELFVBQUFFLEtBQUE7RUFBQSxJQUFHQyxZQUFZLEdBQUFELEtBQUEsQ0FBWkMsWUFBWTtFQUFBLE9BQVFBLFlBQVksS0FBSyxVQUFVLEdBQUcsS0FBSyxHQUFHLEdBQUc7QUFBQSxDQUFDLEVBSXBFWixpQkFBaUIsRUFHbkIsVUFBQWEsS0FBQTtFQUFBLElBQUdDLGNBQWMsR0FBQUQsS0FBQSxDQUFkQyxjQUFjO0VBQUEsT0FDakJBLGNBQWMsSUFDZHJCLEdBQUcsV0FDQ08saUJBQWlCLENBQ3BCO0FBQUEsRUFDSjtBQUVELE9BQU8sSUFBTWUsc0JBQXNCLEdBQUd2QixNQUFNLENBQUNZLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw0RUFJM0IsVUFBQVMsS0FBQTtFQUFBLElBQUdDLGdCQUFnQixHQUFBRCxLQUFBLENBQWhCQyxnQkFBZ0I7RUFBQSxPQUFRQSxnQkFBZ0IsR0FBRyxlQUFlLEdBQUcsVUFBVTtBQUFBLENBQUMsQ0FDL0Y7QUFFRCxPQUFPLElBQU1DLGVBQWUsR0FBRzFCLE1BQU0sQ0FBQzJCLFFBQVEsQ0FBQWQsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxUEFHMUNWLGdCQUFnQixFQXFCUEYsTUFBTSxDQUFDYSxJQUFJLENBQUNZLFNBQVMsQ0FFakM7QUFFRCxPQUFPLElBQU1DLHdCQUF3QixHQUFHN0IsTUFBTSxDQUFDWSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsK0VBTWpEO0FBRUQsT0FBTyxJQUFNZSxxQkFBcUIsR0FBRzlCLE1BQU0sQ0FBQytCLElBQUksQ0FBQWxCLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNkZBTS9DO0FBRUQsT0FBTyxJQUFNaUIsa0JBQWtCLEdBQUdoQyxNQUFNLENBQUNpQyxDQUFDLENBQUFwQixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDgwREF3QnpDO0FBRUQsT0FBTyxJQUFNbUIsc0JBQXNCLEdBQUdsQyxNQUFNLENBQUNtQyxNQUFNLENBQUF0QixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHlPQWtCbEQ7QUFFRCxPQUFPLElBQU1xQixvQkFBb0IsR0FBR3BDLE1BQU0sQ0FBQ00sV0FBVyxDQUFDLENBQUFPLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEseWZBQ2pDLFVBQUFzQixLQUFBO0VBQUEsSUFBR0MsU0FBUyxHQUFBRCxLQUFBLENBQVRDLFNBQVM7RUFBQSxPQUFRQSxTQUFTLEdBQUcsU0FBUyxHQUFHLFNBQVM7QUFBQSxDQUFDLEVBV3RFLFVBQUFDLEtBQUE7RUFBQSxJQUFHRCxTQUFTLEdBQUFDLEtBQUEsQ0FBVEQsU0FBUztFQUFBLE9BQ1pBLFNBQVMsSUFDVHJDLEdBQUcsOENBSUY7QUFBQSxHQXlCRCxVQUFBdUMsS0FBQTtFQUFBLElBQUdGLFNBQVMsR0FBQUUsS0FBQSxDQUFURixTQUFTO0VBQUEsT0FDWixDQUFDQSxTQUFTLElBQ1ZyQyxHQUFHLG1DQUVTRSxNQUFNLENBQUNhLElBQUksQ0FBQ0MsUUFBUSxDQUUvQjtBQUFBLEVBWU47QUFFRCxPQUFPLElBQU13QixzQkFBc0IsR0FBR3pDLE1BQU0sQ0FBQ1ksR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGlEQUkvQztBQUNELE9BQU8sSUFBTTJCLHdCQUF3QixHQUFHMUMsTUFBTSxDQUFDWSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNE1BZWpEO0FBRUQsT0FBTyxJQUFNNEIsY0FBYyxHQUFHM0MsTUFBTSxDQUFDWSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc01BU3BDLFVBQUE2QixLQUFBO0VBQUEsSUFBR0MsT0FBTyxHQUFBRCxLQUFBLENBQVBDLE9BQU87RUFBQSxPQUNWQSxPQUFPLElBQ1A1QyxHQUFHLDZCQUVGO0FBQUEsR0FHQ3lDLHdCQUF3QixDQUk3QjtBQUVELElBQU1JLHNCQUFzQixHQUFHN0MsR0FBRywrSEFRakM7QUFDRCxJQUFNOEMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBSUMsQ0FBMkUsRUFBSztFQUNoSCxJQUFJQSxDQUFDLENBQUMxQixjQUFjLElBQUkwQixDQUFDLENBQUNDLFdBQVcsRUFBRSxPQUFPLHVCQUF1QjtFQUNyRSxPQUFPRCxDQUFDLENBQUNFLFVBQVUsS0FBSyxLQUFLLEdBQUcsU0FBUyxHQUFHLE1BQU07QUFDcEQsQ0FBQztBQUVELE9BQU8sSUFBTUMsMkJBQTJCLEdBQUduRCxNQUFNLENBQUNZLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3TkFLakQrQixzQkFBc0IsRUFDSkMsd0JBQXdCLEVBQ3hCLFVBQUFLLEtBQUE7RUFBQSxJQUFHOUIsY0FBYyxHQUFBOEIsS0FBQSxDQUFkOUIsY0FBYztJQUFFMkIsV0FBVyxHQUFBRyxLQUFBLENBQVhILFdBQVc7RUFBQSxPQUNoRCxDQUFDM0IsY0FBYyxJQUFJLENBQUMyQixXQUFXLEdBQUcsU0FBUyxHQUFHLHdCQUF3QjtBQUFBLEdBQzlELFVBQUFJLEtBQUE7RUFBQSxJQUFHL0IsY0FBYyxHQUFBK0IsS0FBQSxDQUFkL0IsY0FBYztJQUFFMkIsV0FBVyxHQUFBSSxLQUFBLENBQVhKLFdBQVc7RUFBQSxPQUFRM0IsY0FBYyxJQUFJMkIsV0FBVyxHQUFHLFNBQVMsR0FBRyxTQUFTO0FBQUEsQ0FBQyxDQVN2RztBQUNELElBQU1LLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlOLENBQThDLEVBQUs7RUFDbEYsSUFBSUEsQ0FBQyxDQUFDTyxRQUFRLEVBQUUsT0FBTyx1QkFBdUI7RUFDOUMsT0FBT1AsQ0FBQyxDQUFDRSxVQUFVLEtBQUssS0FBSyxHQUFHLFNBQVMsR0FBRyxNQUFNO0FBQ3BELENBQUM7QUFFRCxPQUFPLElBQU1NLDBCQUEwQixHQUFHeEQsTUFBTSxDQUFDWSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNkVBQ2hEK0Isc0JBQXNCLEVBQ0pRLHVCQUF1QixFQUN2QixVQUFBRyxLQUFBO0VBQUEsSUFBR0YsUUFBUSxHQUFBRSxLQUFBLENBQVJGLFFBQVE7RUFBQSxPQUFRLENBQUNBLFFBQVEsR0FBRyxTQUFTLEdBQUcsd0JBQXdCO0FBQUEsQ0FBQyxFQUV0RixVQUFBRyxNQUFBO0VBQUEsSUFBR0gsUUFBUSxHQUFBRyxNQUFBLENBQVJILFFBQVE7RUFBQSxPQUNYLENBQUNBLFFBQVEsSUFDVHRELEdBQUcsd0pBUUY7QUFBQSxFQUNKO0FBRUQsSUFBTTBELHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQUlYLENBQThDLEVBQUs7RUFDbkYsSUFBSUEsQ0FBQyxDQUFDTyxRQUFRLEVBQUUsT0FBTyx1QkFBdUI7RUFDOUMsT0FBT1AsQ0FBQyxDQUFDRSxVQUFVLEtBQUssS0FBSyxHQUFHLFNBQVMsR0FBRyxNQUFNO0FBQ3BELENBQUM7QUFFRCxPQUFPLElBQU1VLDJCQUEyQixHQUFHNUQsTUFBTSxDQUFDWSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNkVBQ2pEK0Isc0JBQXNCLEVBQ0phLHdCQUF3QixFQUN4QixVQUFBRSxNQUFBO0VBQUEsSUFBR04sUUFBUSxHQUFBTSxNQUFBLENBQVJOLFFBQVE7RUFBQSxPQUFRLENBQUNBLFFBQVEsR0FBRyxTQUFTLEdBQUcsd0JBQXdCO0FBQUEsQ0FBQyxFQUV0RixVQUFBTyxNQUFBO0VBQUEsSUFBR1AsUUFBUSxHQUFBTyxNQUFBLENBQVJQLFFBQVE7RUFBQSxPQUNYLENBQUNBLFFBQVEsSUFDVHRELEdBQUcsMEpBUUY7QUFBQSxFQUNKO0FBQ0QsT0FBTyxJQUFNOEQsa0JBQWtCLEdBQUcvRCxNQUFNLENBQUNZLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwRUFLM0M7QUFDRCxPQUFPLElBQU1pRCxvQkFBb0IsR0FBR2hFLE1BQU0sQ0FBQ21DLE1BQU0sQ0FBQXRCLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMFdBaUIzQ2dELGtCQUFrQixDQVV2QiIsImlnbm9yZUxpc3QiOltdfQ==
114
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJHTE9CQUxfQ09MT1JTIiwic2Nyb2xsYWJsZVN0eWxlcyIsIkNsZWFyQnV0dG9uIiwiZmxvdyIsImN1c3RvbUlucHV0U3R5bGVzIiwibGlnaHQiLCJwcmltYXJ5IiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwidGV4dCIsImRpc2FibGVkIiwiX3JlZiIsIl9yZWYyIiwiYWxpZ25CdXR0b25zIiwiX3JlZjMiLCJoYXNBdHRhY2htZW50cyIsIlN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMiLCJfcmVmNCIsImhhc0hlYWRlckJ1dHRvbnMiLCJTdHlsZWRNQUlBSW5wdXQiLCJ0ZXh0YXJlYSIsInNlY29uZGFyeSIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiX3JlZjUiLCJoYXNWYWx1ZXMiLCJfcmVmNiIsIl9yZWY3IiwiU0NNSVdyYXBwZXJBdHRhY2htZW50cyIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlNDTUlBdHRhY2htZW50IiwiX3JlZjgiLCJpc0ltYWdlIiwiYmFzZUJ1dHRvbkFjdGlvblN0eWxlcyIsImdldEF0dGFjaG1lbnRCb3JkZXJDb2xvciIsInAiLCJpc01heGltaXplZCIsIiRpc0ZvY3VzZWQiLCJTQ01JV3JhcHBlckF0dGFjaG1lbnRCdXR0b24iLCJfcmVmOSIsIl9yZWYwIiwiZ2V0V2ViU2VhcmNoQm9yZGVyQ29sb3IiLCJpc0FjdGl2ZSIsIlNDTUlXcmFwcGVyV2ViU2VhcmNoQnV0dG9uIiwiX3JlZjEiLCJfcmVmMTAiLCJnZXREZWVwU2VhcmNoQm9yZGVyQ29sb3IiLCJTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24iLCJfcmVmMTEiLCJfcmVmMTIiLCJTdHlsZWRNQUlBU3RvcEljb24iLCJTdHlsZWRNQUlBU3RvcEJ1dHRvbiIsImJ1dHRvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBHTE9CQUxfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IHNjcm9sbGFibGVTdHlsZXMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc2hhcmVkL3Njcm9sbGFibGUnXG5pbXBvcnQgeyBDbGVhckJ1dHRvbiB9IGZyb20gJy4uL0NsZWFyQnV0dG9uJ1xuXG5leHBvcnQgY29uc3QgZmxvdyA9IGtleWZyYW1lc2BcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmZjQzY2EgMCUsICNiYTQzZmYgNTkuNjIlLCAjZTdjNGZmIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG5cbiAgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0dMT0JBTF9DT0xPUlMubGlnaHR9O1xuICAgIHN2ZyAqIHtcbiAgICAgIGZpbGw6ICR7R0xPQkFMX0NPTE9SUy5wcmltYXJ5fTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGFsaWduQnV0dG9ucz86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCdcbiAgaGFzQXR0YWNobWVudHM6IGJvb2xlYW5cbn0+YFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAke2NvbG9ycy50ZXh0LmRpc2FibGVkfTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgcGFkZGluZzogMTJweDtcbiAgY3Vyc29yOiAkeyh7IGRpc2FibGVkIH0pID0+IChkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAnYXV0bycpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogODZweDtcbiAgZ2FwOiAkeyh7IGFsaWduQnV0dG9ucyB9KSA9PiAoYWxpZ25CdXR0b25zID09PSAndmVydGljYWwnID8gJzhweCcgOiAnMCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgJHtjdXN0b21JbnB1dFN0eWxlc31cbiAgfVxuXG4gICR7KHsgaGFzQXR0YWNobWVudHMgfSkgPT5cbiAgICBoYXNBdHRhY2htZW50cyAmJlxuICAgIGNzc2BcbiAgICAgICR7Y3VzdG9tSW5wdXRTdHlsZXN9XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMgPSBzdHlsZWQuZGl2PHsgaGFzSGVhZGVyQnV0dG9uczogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBoZWlnaHQ6IDMwcHg7XG4gIGp1c3RpZnktY29udGVudDogJHsoeyBoYXNIZWFkZXJCdXR0b25zIH0pID0+IChoYXNIZWFkZXJCdXR0b25zID8gJ3NwYWNlLWJldHdlZW4nIDogJ2ZsZXgtZW5kJyl9O1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0ID0gc3R5bGVkLnRleHRhcmVhPHtcbiAgYWxpZ25CdXR0b25zPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJ1xufT5gXG4gICR7c2Nyb2xsYWJsZVN0eWxlc31cbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMDtcbiAgcmVzaXplOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDIyLjFweDtcbiAgbWF4LWhlaWdodDogMTIyLjFweDtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5zZWNvbmRhcnl9O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU2VuZEJ1dHRvbiA9IHN0eWxlZChDbGVhckJ1dHRvbik8eyBoYXNWYWx1ZXM/OiBib29sZWFuIH0+YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGhhc1ZhbHVlcyB9KSA9PiAoaGFzVmFsdWVzID8gJyNGN0YwRkMnIDogJyNmMmYyZjInKX07XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICAkeyh7IGhhc1ZhbHVlcyB9KSA9PlxuICAgICAgaGFzVmFsdWVzICYmXG4gICAgICBjc3NgXG4gICAgICAgIGcgKiB7XG4gICAgICAgICAgZmlsbDogcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBzdmcge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHN2ZyB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICAgZyAqIHtcbiAgICAgICAgZmlsbDogcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcblxuICAgICR7KHsgaGFzVmFsdWVzIH0pID0+XG4gICAgICAhaGFzVmFsdWVzICYmXG4gICAgICBjc3NgXG4gICAgICAgIHN2ZyAqIHtcbiAgICAgICAgICBmaWxsOiAke2NvbG9ycy50ZXh0LmRpc2FibGVkfSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICBgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBzdmcge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSVdyYXBwZXJBdHRhY2htZW50cyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTJweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmBcbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudERlbGV0ZUljb24gPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBwYWRkaW5nOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBzdmcgKjpub3QoLm5vLWZpbGwpIHtcbiAgICAgIGZpbGw6ICM2NjY2NjYgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlBdHRhY2htZW50ID0gc3R5bGVkLmRpdjx7IGlzSW1hZ2U/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxOTEsIDE5MSwgMTkxLCAxKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTNweDtcbiAgJHsoeyBpc0ltYWdlIH0pID0+XG4gICAgaXNJbWFnZSAmJlxuICAgIGNzc2BcbiAgICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICAgIGB9XG5cbiAgJjpob3ZlciB7XG4gICAgJHtTQ01JQXR0YWNobWVudERlbGV0ZUljb259IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IGJhc2VCdXR0b25BY3Rpb25TdHlsZXMgPSBjc3NgXG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5gXG5jb25zdCBnZXRBdHRhY2htZW50Qm9yZGVyQ29sb3IgPSAocDogeyBoYXNBdHRhY2htZW50czogYm9vbGVhbjsgaXNNYXhpbWl6ZWQ/OiBib29sZWFuOyAkaXNGb2N1c2VkPzogYm9vbGVhbiB9KSA9PiB7XG4gIGlmIChwLmhhc0F0dGFjaG1lbnRzIHx8IHAuaXNNYXhpbWl6ZWQpIHJldHVybiAncmdiYSgxMzUsIDY0LCAxOTEsIDEpJ1xuICByZXR1cm4gcC4kaXNGb2N1c2VkICE9PSBmYWxzZSA/ICcjNjY2NjY2JyA6ICcjOTk5J1xufVxuXG5leHBvcnQgY29uc3QgU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uID0gc3R5bGVkLmRpdjx7XG4gIGlzTWF4aW1pemVkPzogYm9vbGVhblxuICBoYXNBdHRhY2htZW50czogYm9vbGVhblxuICAkaXNGb2N1c2VkPzogYm9vbGVhblxufT5gXG4gICR7YmFzZUJ1dHRvbkFjdGlvblN0eWxlc31cbiAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRBdHRhY2htZW50Qm9yZGVyQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGhhc0F0dGFjaG1lbnRzLCBpc01heGltaXplZCB9KSA9PlxuICAgICFoYXNBdHRhY2htZW50cyAmJiAhaXNNYXhpbWl6ZWQgPyAnI2ZmZmZmZicgOiAncmdiYSgyNDcsIDI0MCwgMjUyLCAxKSd9O1xuICBjdXJzb3I6ICR7KHsgaGFzQXR0YWNobWVudHMsIGlzTWF4aW1pemVkIH0pID0+IChoYXNBdHRhY2htZW50cyB8fCBpc01heGltaXplZCA/ICdkZWZhdWx0JyA6ICdwb2ludGVyJyl9O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ3LCAyNDAsIDI1MiwgMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICBzdmcgKiB7XG4gICAgICBmaWxsOiByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbmBcbmNvbnN0IGdldFdlYlNlYXJjaEJvcmRlckNvbG9yID0gKHA6IHsgaXNBY3RpdmU6IGJvb2xlYW47ICRpc0ZvY3VzZWQ/OiBib29sZWFuIH0pID0+IHtcbiAgaWYgKHAuaXNBY3RpdmUpIHJldHVybiAncmdiYSgxMzUsIDY0LCAxOTEsIDEpJ1xuICByZXR1cm4gcC4kaXNGb2N1c2VkICE9PSBmYWxzZSA/ICcjNjY2NjY2JyA6ICcjOTk5J1xufVxuXG5leHBvcnQgY29uc3QgU0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b24gPSBzdHlsZWQuZGl2PHsgaXNBY3RpdmU6IGJvb2xlYW47ICRpc0ZvY3VzZWQ/OiBib29sZWFuIH0+YFxuICAke2Jhc2VCdXR0b25BY3Rpb25TdHlsZXN9XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Z2V0V2ViU2VhcmNoQm9yZGVyQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGlzQWN0aXZlIH0pID0+ICghaXNBY3RpdmUgPyAnI2ZmZmZmZicgOiAncmdiYSgyNDcsIDI0MCwgMjUyLCAxKScpfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAkeyh7IGlzQWN0aXZlIH0pID0+XG4gICAgIWlzQWN0aXZlICYmXG4gICAgY3NzYFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ3LCAyNDAsIDI1MiwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIHN2ZyAqIHtcbiAgICAgICAgICBmaWxsOiByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGB9XG5gXG5cbmNvbnN0IGdldERlZXBTZWFyY2hCb3JkZXJDb2xvciA9IChwOiB7IGlzQWN0aXZlOiBib29sZWFuOyAkaXNGb2N1c2VkPzogYm9vbGVhbiB9KSA9PiB7XG4gIGlmIChwLmlzQWN0aXZlKSByZXR1cm4gJ3JnYmEoMTM1LCA2NCwgMTkxLCAxKSdcbiAgcmV0dXJuIHAuJGlzRm9jdXNlZCAhPT0gZmFsc2UgPyAnIzY2NjY2NicgOiAnIzk5OSdcbn1cblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyRGVlcFNlYXJjaEJ1dHRvbiA9IHN0eWxlZC5kaXY8eyBpc0FjdGl2ZTogYm9vbGVhbjsgJGlzRm9jdXNlZD86IGJvb2xlYW4gfT5gXG4gICR7YmFzZUJ1dHRvbkFjdGlvblN0eWxlc31cbiAgYm9yZGVyOiAxcHggc29saWQgJHtnZXREZWVwU2VhcmNoQm9yZGVyQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGlzQWN0aXZlIH0pID0+ICghaXNBY3RpdmUgPyAnI2ZmZmZmZicgOiAncmdiYSgyNDcsIDI0MCwgMjUyLCAxKScpfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAkeyh7IGlzQWN0aXZlIH0pID0+XG4gICAgIWlzQWN0aXZlICYmXG4gICAgY3NzYFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ3LCAyNDAsIDI1MiwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIHN2ZyAqIHtcbiAgICAgICAgICBzdHJva2U6IHJnYmEoMTM1LCA2NCwgMTkxLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYH1cbmBcbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU3RvcEljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGM4YzhjO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG5gXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVN0b3BCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2YwZmMgIWltcG9ydGFudDtcblxuICAgICR7U3R5bGVkTUFJQVN0b3BJY29ufSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWE2ZWRlO1xuICAgIH1cbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxFQUFFQyxTQUFTLFFBQVEsbUJBQW1CO0FBQzFELE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFDdEQsU0FBU0MsYUFBYSxRQUFRLHdCQUF3QjtBQUN0RCxTQUFTQyxnQkFBZ0IsUUFBUSxtQ0FBbUM7QUFDcEUsU0FBU0MsV0FBVyxRQUFRLGdCQUFnQjtBQUU1QyxPQUFPLElBQU1DLElBQUksR0FBR0wsU0FBUyx3R0FV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
@@ -1,77 +1,214 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import { useMemo, useState, useEffect } from 'react';
2
+ import { useRef, useState, useEffect } from 'react';
3
+ import { ChevronRight } from '@projectcor/icons/lib/components/ChevronRight';
4
+ import { Search } from '@projectcor/icons/lib/components/Search';
5
+ import pallete from '@projectcor/theme/lib/base/colors';
3
6
  import { useTranslation } from 'react-i18next';
4
- import { EntitySelector } from '../EntitySelector/EntitySelector';
7
+ import { SCPSInput, SCPSWrapper, SCPSContainer, SCPSSelectContainer, SCPSResultContainer, SCPSRecentTitle, SCPSRecentList, SCPSRecentItem, SCPSRecentItemInfo, SCPSRecentItemClient, SCPSRecentItemTitle, SCPSRecentItemIcon, SCPSProjectsList } from './ProjectSelector.styles';
5
8
  import { useProjectSearch } from '../../../hooks/useProjectSearch';
6
9
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
7
- import { SECTIONS } from '../../../constants/config';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- var mapProjectToEntityItem = function mapProjectToEntityItem(project, withoutClient, withoutTitle) {
10
- var _project$client$name, _project$client;
11
- return {
12
- id: project.id,
13
- primary: project.title || withoutTitle,
14
- secondary: (_project$client$name = (_project$client = project.client) === null || _project$client === void 0 ? void 0 : _project$client.name) !== null && _project$client$name !== void 0 ? _project$client$name : withoutClient
15
- };
16
- };
10
+ import { LoaderSearchProjects } from '../LoadingSearchProjects';
11
+ import { ErrorSearchProjects } from '../ErrorSearchProjects';
12
+ import { EmptySearchProjects } from '../EmptySearchProjects';
13
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
14
  export var ProjectSelector = function ProjectSelector(_ref) {
18
15
  var onProjectSelected = _ref.onProjectSelected;
19
- var _useTranslation = useTranslation([SECTIONS.projectSelector]),
16
+ var inputRef = useRef(null);
17
+ var _useTranslation = useTranslation(['project_selector_section']),
20
18
  t = _useTranslation.t;
21
19
  var eventAmplitude = useEvent();
22
- var _useState = useState(''),
23
- _useState2 = _slicedToArray(_useState, 2),
24
- searchValue = _useState2[0],
25
- setSearchValue = _useState2[1];
26
20
  var _useProjectSearch = useProjectSearch(),
27
21
  fetchRecentProjects = _useProjectSearch.fetchRecentProjects,
28
22
  recentProjectsLoading = _useProjectSearch.recentProjectsLoading,
29
23
  recentProjectsError = _useProjectSearch.recentProjectsError,
30
24
  recentProjects = _useProjectSearch.recentProjects,
31
25
  updateSearchValue = _useProjectSearch.updateSearchValue;
32
- var handleSearchChange = function handleSearchChange(value) {
33
- setSearchValue(value);
34
- updateSearchValue(value);
26
+ var _useState = useState(''),
27
+ _useState2 = _slicedToArray(_useState, 2),
28
+ searchValue = _useState2[0],
29
+ setSearchValue = _useState2[1];
30
+ var _useState3 = useState(false),
31
+ _useState4 = _slicedToArray(_useState3, 2),
32
+ isProjectSelected = _useState4[0],
33
+ setIsProjectSelected = _useState4[1];
34
+ useEffect(function () {
35
+ fetchRecentProjects();
36
+ eventAmplitude(EVENTS.aiChatSearchContextOpen);
37
+ }, [fetchRecentProjects, eventAmplitude]);
38
+ var handleClickOutside = function handleClickOutside(e) {
39
+ if (inputRef.current) {
40
+ var target = e.target;
41
+ var wrapper = inputRef.current.closest('#project_selector');
42
+ if (wrapper && !wrapper.contains(target)) {
43
+ // No cerramos, solo limpiamos si es necesario
44
+ }
45
+ }
35
46
  };
36
- var entityItems = useMemo(function () {
37
- return (recentProjects || []).map(function (p) {
38
- return mapProjectToEntityItem(p, t('projectSelector.withoutClient'), t('projectSelector.withoutTitle'));
39
- });
40
- }, [recentProjects, t]);
41
- var translations = useMemo(function () {
42
- return {
43
- placeholder: t('projectSelector.placeholder'),
44
- recentTitle: t('projectSelector.recentProjects'),
45
- searching: t('projectSelector.searchingProjects'),
46
- empty: t('projectSelector.emptyState'),
47
- error: t('projectSelector.errorMessage'),
48
- withoutSecondary: t('projectSelector.withoutClient')
47
+ useEffect(function () {
48
+ document.addEventListener('mousedown', handleClickOutside);
49
+ return function () {
50
+ document.removeEventListener('mousedown', handleClickOutside);
49
51
  };
50
- }, [t]);
51
- var handleItemSelected = function handleItemSelected(item) {
52
- var project = recentProjects === null || recentProjects === void 0 ? void 0 : recentProjects.find(function (p) {
53
- return String(p.id) === String(item.id);
54
- });
55
- if (project) {
56
- eventAmplitude(EVENTS.aiChatSearchContextSelectResult, {
57
- result_type: 'custom'
52
+ }, []);
53
+ useEffect(function () {
54
+ if (!isProjectSelected) {
55
+ var timer = setTimeout(function () {
56
+ var _inputRef$current;
57
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
58
+ }, 0);
59
+ return function () {
60
+ return clearTimeout(timer);
61
+ };
62
+ }
63
+ return undefined;
64
+ }, [isProjectSelected]);
65
+ var handlers = {
66
+ handleChangeInput: function handleChangeInput(e) {
67
+ var searchInputValue = e.target.value;
68
+ setSearchValue(searchInputValue);
69
+ updateSearchValue(searchInputValue);
70
+ },
71
+ handleProjectSelected: function handleProjectSelected(project) {
72
+ setIsProjectSelected(true);
73
+ if (onProjectSelected) {
74
+ onProjectSelected(project);
75
+ }
76
+ }
77
+ };
78
+ var filterProjects = recentProjects === null || recentProjects === void 0 ? void 0 : recentProjects.filter(function (project) {
79
+ var _project$client;
80
+ if (!searchValue.trim()) return true;
81
+ var projectName = project.title || '';
82
+ var clientName = ((_project$client = project.client) === null || _project$client === void 0 ? void 0 : _project$client.name) || '';
83
+ return projectName.toLowerCase().includes(searchValue.toLowerCase()) || clientName.toLowerCase().includes(searchValue.toLowerCase());
84
+ });
85
+ var showRecentProjects = !searchValue.trim() && !isProjectSelected;
86
+ var showSearchResults = searchValue.trim() && !isProjectSelected;
87
+ var renderContent = function renderContent() {
88
+ // Si hay búsqueda activa, mostrar resultados de búsqueda
89
+ if (showSearchResults) {
90
+ if (recentProjectsLoading) {
91
+ return /*#__PURE__*/_jsx(LoaderSearchProjects, {
92
+ text: t('projectSelector.searchingProjects')
93
+ });
94
+ }
95
+ if (recentProjectsError) {
96
+ return /*#__PURE__*/_jsx(ErrorSearchProjects, {});
97
+ }
98
+ if (filterProjects && filterProjects.length > 0) {
99
+ return /*#__PURE__*/_jsx(SCPSProjectsList, {
100
+ children: filterProjects.map(function (project) {
101
+ var _project$client$name, _project$client2;
102
+ return /*#__PURE__*/_jsxs(SCPSRecentItem, {
103
+ onClick: function onClick() {
104
+ var resultType = 'custom';
105
+ eventAmplitude(EVENTS.aiChatSearchContextSelectResult, {
106
+ result_type: resultType
107
+ });
108
+ handlers.handleProjectSelected(project);
109
+ },
110
+ children: [/*#__PURE__*/_jsxs(SCPSRecentItemInfo, {
111
+ children: [/*#__PURE__*/_jsx(SCPSRecentItemClient, {
112
+ children: (_project$client$name = (_project$client2 = project.client) === null || _project$client2 === void 0 ? void 0 : _project$client2.name) !== null && _project$client$name !== void 0 ? _project$client$name : t('projectSelector.withoutClient')
113
+ }), /*#__PURE__*/_jsx(SCPSRecentItemTitle, {
114
+ dangerouslySetInnerHTML: {
115
+ __html: project.title || t('projectSelector.withoutTitle')
116
+ }
117
+ })]
118
+ }), /*#__PURE__*/_jsx(SCPSRecentItemIcon, {
119
+ children: /*#__PURE__*/_jsx(ChevronRight, {
120
+ width: "16px",
121
+ height: "16px",
122
+ color: pallete.colors.secondary
123
+ })
124
+ })]
125
+ }, project.id);
126
+ })
127
+ });
128
+ }
129
+ return /*#__PURE__*/_jsx(EmptySearchProjects, {
130
+ message: t('projectSelector.emptyState'),
131
+ searchValue: searchValue
58
132
  });
59
- onProjectSelected === null || onProjectSelected === void 0 || onProjectSelected(project);
60
133
  }
134
+
135
+ // Si no hay búsqueda, mostrar proyectos recientes
136
+ if (showRecentProjects) {
137
+ if (recentProjectsLoading) {
138
+ return /*#__PURE__*/_jsx(LoaderSearchProjects, {
139
+ text: t('projectSelector.searchingProjects')
140
+ });
141
+ }
142
+ if (recentProjectsError) {
143
+ return /*#__PURE__*/_jsx(ErrorSearchProjects, {});
144
+ }
145
+ if (recentProjects && recentProjects.length > 0) {
146
+ return /*#__PURE__*/_jsxs(_Fragment, {
147
+ children: [/*#__PURE__*/_jsx(SCPSRecentTitle, {
148
+ children: t('projectSelector.recentProjects')
149
+ }), /*#__PURE__*/_jsx(SCPSRecentList, {
150
+ $recentProjects: true,
151
+ children: recentProjects.map(function (project) {
152
+ var _project$client$name2, _project$client3;
153
+ return /*#__PURE__*/_jsxs(SCPSRecentItem, {
154
+ onClick: function onClick() {
155
+ var resultType = 'recent';
156
+ eventAmplitude(EVENTS.aiChatSearchContextSelectResult, {
157
+ result_type: resultType
158
+ });
159
+ handlers.handleProjectSelected(project);
160
+ },
161
+ children: [/*#__PURE__*/_jsxs(SCPSRecentItemInfo, {
162
+ children: [/*#__PURE__*/_jsx(SCPSRecentItemClient, {
163
+ children: (_project$client$name2 = (_project$client3 = project.client) === null || _project$client3 === void 0 ? void 0 : _project$client3.name) !== null && _project$client$name2 !== void 0 ? _project$client$name2 : t('projectSelector.withoutClient')
164
+ }), /*#__PURE__*/_jsx(SCPSRecentItemTitle, {
165
+ dangerouslySetInnerHTML: {
166
+ __html: project.title || t('projectSelector.withoutTitle')
167
+ }
168
+ })]
169
+ }), /*#__PURE__*/_jsx(SCPSRecentItemIcon, {
170
+ children: /*#__PURE__*/_jsx(ChevronRight, {
171
+ width: "16px",
172
+ height: "16px",
173
+ color: pallete.colors.secondary
174
+ })
175
+ })]
176
+ }, project.id);
177
+ })
178
+ })]
179
+ });
180
+ }
181
+
182
+ // Si no hay proyectos recientes y no está cargando ni hay error
183
+ return null;
184
+ }
185
+ return null;
61
186
  };
62
- useEffect(function () {
63
- eventAmplitude(EVENTS.aiChatSearchContextOpen);
64
- }, [eventAmplitude]);
65
- return /*#__PURE__*/_jsx(EntitySelector, {
66
- items: entityItems,
67
- loading: recentProjectsLoading,
68
- error: recentProjectsError,
69
- searchValue: searchValue,
70
- onSearchChange: handleSearchChange,
71
- fetchRecent: fetchRecentProjects,
72
- onItemSelected: handleItemSelected,
73
- translations: translations,
74
- containerId: "project_selector"
187
+ return /*#__PURE__*/_jsx(SCPSContainer, {
188
+ id: "project_selector",
189
+ children: !isProjectSelected && /*#__PURE__*/_jsxs(_Fragment, {
190
+ children: [/*#__PURE__*/_jsx(SCPSWrapper, {
191
+ children: /*#__PURE__*/_jsx(SCPSSelectContainer, {
192
+ children: /*#__PURE__*/_jsxs(SCPSResultContainer, {
193
+ children: [/*#__PURE__*/_jsx(Search, {
194
+ width: "16px",
195
+ height: "16px",
196
+ color: pallete.colors.secondary
197
+ }), /*#__PURE__*/_jsx(SCPSInput, {
198
+ value: searchValue,
199
+ onChange: handlers.handleChangeInput,
200
+ ref: inputRef,
201
+ placeholder: t('projectSelector.placeholder')
202
+ })]
203
+ })
204
+ })
205
+ }), /*#__PURE__*/_jsx("div", {
206
+ style: {
207
+ width: '100%'
208
+ },
209
+ children: renderContent()
210
+ })]
211
+ })
75
212
  });
76
213
  };
77
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VUcmFuc2xhdGlvbiIsIkVudGl0eVNlbGVjdG9yIiwidXNlUHJvamVjdFNlYXJjaCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiU0VDVElPTlMiLCJqc3giLCJfanN4IiwibWFwUHJvamVjdFRvRW50aXR5SXRlbSIsInByb2plY3QiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwiX3Byb2plY3QkY2xpZW50JG5hbWUiLCJfcHJvamVjdCRjbGllbnQiLCJpZCIsInByaW1hcnkiLCJ0aXRsZSIsInNlY29uZGFyeSIsImNsaWVudCIsIm5hbWUiLCJQcm9qZWN0U2VsZWN0b3IiLCJfcmVmIiwib25Qcm9qZWN0U2VsZWN0ZWQiLCJfdXNlVHJhbnNsYXRpb24iLCJwcm9qZWN0U2VsZWN0b3IiLCJ0IiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWFyY2hWYWx1ZSIsInNldFNlYXJjaFZhbHVlIiwiX3VzZVByb2plY3RTZWFyY2giLCJmZXRjaFJlY2VudFByb2plY3RzIiwicmVjZW50UHJvamVjdHNMb2FkaW5nIiwicmVjZW50UHJvamVjdHNFcnJvciIsInJlY2VudFByb2plY3RzIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJ2YWx1ZSIsImVudGl0eUl0ZW1zIiwibWFwIiwicCIsInRyYW5zbGF0aW9ucyIsInBsYWNlaG9sZGVyIiwicmVjZW50VGl0bGUiLCJzZWFyY2hpbmciLCJlbXB0eSIsImVycm9yIiwid2l0aG91dFNlY29uZGFyeSIsImhhbmRsZUl0ZW1TZWxlY3RlZCIsIml0ZW0iLCJmaW5kIiwiU3RyaW5nIiwiYWlDaGF0U2VhcmNoQ29udGV4dFNlbGVjdFJlc3VsdCIsInJlc3VsdF90eXBlIiwiYWlDaGF0U2VhcmNoQ29udGV4dE9wZW4iLCJpdGVtcyIsImxvYWRpbmciLCJvblNlYXJjaENoYW5nZSIsImZldGNoUmVjZW50Iiwib25JdGVtU2VsZWN0ZWQiLCJjb250YWluZXJJZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL1Byb2plY3RTZWxlY3Rvci9Qcm9qZWN0U2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZDLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBFbnRpdHlTZWxlY3RvciwgRW50aXR5U2VsZWN0b3JJdGVtIH0gZnJvbSAnLi4vRW50aXR5U2VsZWN0b3IvRW50aXR5U2VsZWN0b3InXG5pbXBvcnQgeyB1c2VQcm9qZWN0U2VhcmNoLCBQcm9qZWN0U2V0dGVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUHJvamVjdFNlYXJjaCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcblxudHlwZSBQcm9qZWN0U2VsZWN0b3JQcm9wcyA9IHtcbiAgb25Qcm9qZWN0U2VsZWN0ZWQ/OiAocHJvamVjdDogUHJvamVjdFNldHRlcikgPT4gdm9pZFxufVxuXG5jb25zdCBtYXBQcm9qZWN0VG9FbnRpdHlJdGVtID0gKFxuICBwcm9qZWN0OiBQcm9qZWN0U2V0dGVyLFxuICB3aXRob3V0Q2xpZW50OiBzdHJpbmcsXG4gIHdpdGhvdXRUaXRsZTogc3RyaW5nXG4pOiBFbnRpdHlTZWxlY3Rvckl0ZW0gPT4gKHtcbiAgaWQ6IHByb2plY3QuaWQsXG4gIHByaW1hcnk6IHByb2plY3QudGl0bGUgfHwgd2l0aG91dFRpdGxlLFxuICBzZWNvbmRhcnk6IHByb2plY3QuY2xpZW50Py5uYW1lID8/IHdpdGhvdXRDbGllbnQsXG59KVxuXG5leHBvcnQgY29uc3QgUHJvamVjdFNlbGVjdG9yOiBGQzxQcm9qZWN0U2VsZWN0b3JQcm9wcz4gPSAoeyBvblByb2plY3RTZWxlY3RlZCB9KSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLnByb2plY3RTZWxlY3Rvcl0pXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuXG4gIGNvbnN0IHsgZmV0Y2hSZWNlbnRQcm9qZWN0cywgcmVjZW50UHJvamVjdHNMb2FkaW5nLCByZWNlbnRQcm9qZWN0c0Vycm9yLCByZWNlbnRQcm9qZWN0cywgdXBkYXRlU2VhcmNoVmFsdWUgfSA9XG4gICAgdXNlUHJvamVjdFNlYXJjaCgpXG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXRTZWFyY2hWYWx1ZSh2YWx1ZSlcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZSh2YWx1ZSlcbiAgfVxuXG4gIGNvbnN0IGVudGl0eUl0ZW1zID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgKHJlY2VudFByb2plY3RzIHx8IFtdKS5tYXAocCA9PlxuICAgICAgICBtYXBQcm9qZWN0VG9FbnRpdHlJdGVtKHAsIHQoJ3Byb2plY3RTZWxlY3Rvci53aXRob3V0Q2xpZW50JyksIHQoJ3Byb2plY3RTZWxlY3Rvci53aXRob3V0VGl0bGUnKSlcbiAgICAgICksXG4gICAgW3JlY2VudFByb2plY3RzLCB0XVxuICApXG5cbiAgY29uc3QgdHJhbnNsYXRpb25zID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgcGxhY2Vob2xkZXI6IHQoJ3Byb2plY3RTZWxlY3Rvci5wbGFjZWhvbGRlcicpLFxuICAgICAgcmVjZW50VGl0bGU6IHQoJ3Byb2plY3RTZWxlY3Rvci5yZWNlbnRQcm9qZWN0cycpLFxuICAgICAgc2VhcmNoaW5nOiB0KCdwcm9qZWN0U2VsZWN0b3Iuc2VhcmNoaW5nUHJvamVjdHMnKSxcbiAgICAgIGVtcHR5OiB0KCdwcm9qZWN0U2VsZWN0b3IuZW1wdHlTdGF0ZScpLFxuICAgICAgZXJyb3I6IHQoJ3Byb2plY3RTZWxlY3Rvci5lcnJvck1lc3NhZ2UnKSxcbiAgICAgIHdpdGhvdXRTZWNvbmRhcnk6IHQoJ3Byb2plY3RTZWxlY3Rvci53aXRob3V0Q2xpZW50JyksXG4gICAgfSksXG4gICAgW3RdXG4gIClcblxuICBjb25zdCBoYW5kbGVJdGVtU2VsZWN0ZWQgPSAoaXRlbTogRW50aXR5U2VsZWN0b3JJdGVtKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdCA9IHJlY2VudFByb2plY3RzPy5maW5kKHAgPT4gU3RyaW5nKHAuaWQpID09PSBTdHJpbmcoaXRlbS5pZCkpXG4gICAgaWYgKHByb2plY3QpIHtcbiAgICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTZWFyY2hDb250ZXh0U2VsZWN0UmVzdWx0LCB7IHJlc3VsdF90eXBlOiAnY3VzdG9tJyB9KVxuICAgICAgb25Qcm9qZWN0U2VsZWN0ZWQ/Lihwcm9qZWN0KVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFNlYXJjaENvbnRleHRPcGVuKVxuICB9LCBbZXZlbnRBbXBsaXR1ZGVdKVxuXG4gIHJldHVybiAoXG4gICAgPEVudGl0eVNlbGVjdG9yXG4gICAgICBpdGVtcz17ZW50aXR5SXRlbXN9XG4gICAgICBsb2FkaW5nPXtyZWNlbnRQcm9qZWN0c0xvYWRpbmd9XG4gICAgICBlcnJvcj17cmVjZW50UHJvamVjdHNFcnJvcn1cbiAgICAgIHNlYXJjaFZhbHVlPXtzZWFyY2hWYWx1ZX1cbiAgICAgIG9uU2VhcmNoQ2hhbmdlPXtoYW5kbGVTZWFyY2hDaGFuZ2V9XG4gICAgICBmZXRjaFJlY2VudD17ZmV0Y2hSZWNlbnRQcm9qZWN0c31cbiAgICAgIG9uSXRlbVNlbGVjdGVkPXtoYW5kbGVJdGVtU2VsZWN0ZWR9XG4gICAgICB0cmFuc2xhdGlvbnM9e3RyYW5zbGF0aW9uc31cbiAgICAgIGNvbnRhaW5lcklkPVwicHJvamVjdF9zZWxlY3RvclwiXG4gICAgLz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBYUEsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ3hELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGNBQWMsUUFBNEIsa0NBQWtDO0FBQ3JGLFNBQVNDLGdCQUFnQixRQUF1QixpQ0FBaUM7QUFDakYsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLFFBQVEsUUFBUSwyQkFBMkI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFNcEQsSUFBTUMsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FDMUJDLE9BQXNCLEVBQ3RCQyxhQUFxQixFQUNyQkMsWUFBb0I7RUFBQSxJQUFBQyxvQkFBQSxFQUFBQyxlQUFBO0VBQUEsT0FDSTtJQUN4QkMsRUFBRSxFQUFFTCxPQUFPLENBQUNLLEVBQUU7SUFDZEMsT0FBTyxFQUFFTixPQUFPLENBQUNPLEtBQUssSUFBSUwsWUFBWTtJQUN0Q00sU0FBUyxHQUFBTCxvQkFBQSxJQUFBQyxlQUFBLEdBQUVKLE9BQU8sQ0FBQ1MsTUFBTSxjQUFBTCxlQUFBLHVCQUFkQSxlQUFBLENBQWdCTSxJQUFJLGNBQUFQLG9CQUFBLGNBQUFBLG9CQUFBLEdBQUlGO0VBQ3JDLENBQUM7QUFBQSxDQUFDO0FBRUYsT0FBTyxJQUFNVSxlQUF5QyxHQUFHLFNBQTVDQSxlQUF5Q0EsQ0FBQUMsSUFBQSxFQUE4QjtFQUFBLElBQXhCQyxpQkFBaUIsR0FBQUQsSUFBQSxDQUFqQkMsaUJBQWlCO0VBQzNFLElBQUFDLGVBQUEsR0FBY3ZCLGNBQWMsQ0FBQyxDQUFDSyxRQUFRLENBQUNtQixlQUFlLENBQUMsQ0FBQztJQUFoREMsQ0FBQyxHQUFBRixlQUFBLENBQURFLENBQUM7RUFD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
214
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIkNoZXZyb25SaWdodCIsIlNlYXJjaCIsInBhbGxldGUiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDUFNJbnB1dCIsIlNDUFNXcmFwcGVyIiwiU0NQU0NvbnRhaW5lciIsIlNDUFNTZWxlY3RDb250YWluZXIiLCJTQ1BTUmVzdWx0Q29udGFpbmVyIiwiU0NQU1JlY2VudFRpdGxlIiwiU0NQU1JlY2VudExpc3QiLCJTQ1BTUmVjZW50SXRlbSIsIlNDUFNSZWNlbnRJdGVtSW5mbyIsIlNDUFNSZWNlbnRJdGVtQ2xpZW50IiwiU0NQU1JlY2VudEl0ZW1UaXRsZSIsIlNDUFNSZWNlbnRJdGVtSWNvbiIsIlNDUFNQcm9qZWN0c0xpc3QiLCJ1c2VQcm9qZWN0U2VhcmNoIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJMb2FkZXJTZWFyY2hQcm9qZWN0cyIsIkVycm9yU2VhcmNoUHJvamVjdHMiLCJFbXB0eVNlYXJjaFByb2plY3RzIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiUHJvamVjdFNlbGVjdG9yIiwiX3JlZiIsIm9uUHJvamVjdFNlbGVjdGVkIiwiaW5wdXRSZWYiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlUHJvamVjdFNlYXJjaCIsImZldGNoUmVjZW50UHJvamVjdHMiLCJyZWNlbnRQcm9qZWN0c0xvYWRpbmciLCJyZWNlbnRQcm9qZWN0c0Vycm9yIiwicmVjZW50UHJvamVjdHMiLCJ1cGRhdGVTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlYXJjaFZhbHVlIiwic2V0U2VhcmNoVmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzUHJvamVjdFNlbGVjdGVkIiwic2V0SXNQcm9qZWN0U2VsZWN0ZWQiLCJhaUNoYXRTZWFyY2hDb250ZXh0T3BlbiIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImUiLCJjdXJyZW50IiwidGFyZ2V0Iiwid3JhcHBlciIsImNsb3Nlc3QiLCJjb250YWlucyIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ0aW1lciIsInNldFRpbWVvdXQiLCJfaW5wdXRSZWYkY3VycmVudCIsImZvY3VzIiwiY2xlYXJUaW1lb3V0IiwidW5kZWZpbmVkIiwiaGFuZGxlcnMiLCJoYW5kbGVDaGFuZ2VJbnB1dCIsInNlYXJjaElucHV0VmFsdWUiLCJ2YWx1ZSIsImhhbmRsZVByb2plY3RTZWxlY3RlZCIsInByb2plY3QiLCJmaWx0ZXJQcm9qZWN0cyIsImZpbHRlciIsIl9wcm9qZWN0JGNsaWVudCIsInRyaW0iLCJwcm9qZWN0TmFtZSIsInRpdGxlIiwiY2xpZW50TmFtZSIsImNsaWVudCIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwic2hvd1JlY2VudFByb2plY3RzIiwic2hvd1NlYXJjaFJlc3VsdHMiLCJyZW5kZXJDb250ZW50IiwidGV4dCIsImxlbmd0aCIsImNoaWxkcmVuIiwibWFwIiwiX3Byb2plY3QkY2xpZW50JG5hbWUiLCJfcHJvamVjdCRjbGllbnQyIiwib25DbGljayIsInJlc3VsdFR5cGUiLCJhaUNoYXRTZWFyY2hDb250ZXh0U2VsZWN0UmVzdWx0IiwicmVzdWx0X3R5cGUiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJjb2xvcnMiLCJzZWNvbmRhcnkiLCJpZCIsIm1lc3NhZ2UiLCIkcmVjZW50UHJvamVjdHMiLCJfcHJvamVjdCRjbGllbnQkbmFtZTIiLCJfcHJvamVjdCRjbGllbnQzIiwib25DaGFuZ2UiLCJyZWYiLCJwbGFjZWhvbGRlciIsInN0eWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvUHJvamVjdFNlbGVjdG9yL1Byb2plY3RTZWxlY3Rvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRkMsIFJlZk9iamVjdCwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlRWZmZWN0LCBDaGFuZ2VFdmVudCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvblJpZ2h0J1xuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvU2VhcmNoJ1xuaW1wb3J0IHBhbGxldGUgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHtcbiAgU0NQU0lucHV0LFxuICBTQ1BTV3JhcHBlcixcbiAgU0NQU0NvbnRhaW5lcixcbiAgU0NQU1NlbGVjdENvbnRhaW5lcixcbiAgU0NQU1Jlc3VsdENvbnRhaW5lcixcbiAgU0NQU1JlY2VudFRpdGxlLFxuICBTQ1BTUmVjZW50TGlzdCxcbiAgU0NQU1JlY2VudEl0ZW0sXG4gIFNDUFNSZWNlbnRJdGVtSW5mbyxcbiAgU0NQU1JlY2VudEl0ZW1DbGllbnQsXG4gIFNDUFNSZWNlbnRJdGVtVGl0bGUsXG4gIFNDUFNSZWNlbnRJdGVtSWNvbixcbiAgU0NQU1Byb2plY3RzTGlzdCxcbn0gZnJvbSAnLi9Qcm9qZWN0U2VsZWN0b3Iuc3R5bGVzJ1xuaW1wb3J0IHsgdXNlUHJvamVjdFNlYXJjaCwgUHJvamVjdFNldHRlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVByb2plY3RTZWFyY2gnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBMb2FkZXJTZWFyY2hQcm9qZWN0cyB9IGZyb20gJy4uL0xvYWRpbmdTZWFyY2hQcm9qZWN0cydcbmltcG9ydCB7IEVycm9yU2VhcmNoUHJvamVjdHMgfSBmcm9tICcuLi9FcnJvclNlYXJjaFByb2plY3RzJ1xuaW1wb3J0IHsgRW1wdHlTZWFyY2hQcm9qZWN0cyB9IGZyb20gJy4uL0VtcHR5U2VhcmNoUHJvamVjdHMnXG5cbnR5cGUgUHJvamVjdFNlbGVjdG9yUHJvcHMgPSB7XG4gIG9uUHJvamVjdFNlbGVjdGVkPzogKHByb2plY3Q6IFByb2plY3RTZXR0ZXIpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IFByb2plY3RTZWxlY3RvcjogRkM8UHJvamVjdFNlbGVjdG9yUHJvcHM+ID0gKHsgb25Qcm9qZWN0U2VsZWN0ZWQgfSkgPT4ge1xuICBjb25zdCBpbnB1dFJlZjogUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+ID0gdXNlUmVmKG51bGwpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oWydwcm9qZWN0X3NlbGVjdG9yX3NlY3Rpb24nXSlcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG5cbiAgY29uc3QgeyBmZXRjaFJlY2VudFByb2plY3RzLCByZWNlbnRQcm9qZWN0c0xvYWRpbmcsIHJlY2VudFByb2plY3RzRXJyb3IsIHJlY2VudFByb2plY3RzLCB1cGRhdGVTZWFyY2hWYWx1ZSB9ID1cbiAgICB1c2VQcm9qZWN0U2VhcmNoKClcblxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbaXNQcm9qZWN0U2VsZWN0ZWQsIHNldElzUHJvamVjdFNlbGVjdGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hSZWNlbnRQcm9qZWN0cygpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFNlYXJjaENvbnRleHRPcGVuKVxuICB9LCBbZmV0Y2hSZWNlbnRQcm9qZWN0cywgZXZlbnRBbXBsaXR1ZGVdKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgaWYgKGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIE5vZGVcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBpbnB1dFJlZi5jdXJyZW50LmNsb3Nlc3QoJyNwcm9qZWN0X3NlbGVjdG9yJylcblxuICAgICAgaWYgKHdyYXBwZXIgJiYgIXdyYXBwZXIuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAvLyBObyBjZXJyYW1vcywgc29sbyBsaW1waWFtb3Mgc2kgZXMgbmVjZXNhcmlvXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc1Byb2plY3RTZWxlY3RlZCkge1xuICAgICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgICAgfSwgMClcbiAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfSwgW2lzUHJvamVjdFNlbGVjdGVkXSlcblxuICBjb25zdCBoYW5kbGVycyA9IHtcbiAgICBoYW5kbGVDaGFuZ2VJbnB1dDogKGU6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBjb25zdCBzZWFyY2hJbnB1dFZhbHVlID0gZS50YXJnZXQudmFsdWVcbiAgICAgIHNldFNlYXJjaFZhbHVlKHNlYXJjaElucHV0VmFsdWUpXG4gICAgICB1cGRhdGVTZWFyY2hWYWx1ZShzZWFyY2hJbnB1dFZhbHVlKVxuICAgIH0sXG4gICAgaGFuZGxlUHJvamVjdFNlbGVjdGVkOiAocHJvamVjdDogUHJvamVjdFNldHRlcikgPT4ge1xuICAgICAgc2V0SXNQcm9qZWN0U2VsZWN0ZWQodHJ1ZSlcbiAgICAgIGlmIChvblByb2plY3RTZWxlY3RlZCkge1xuICAgICAgICBvblByb2plY3RTZWxlY3RlZChwcm9qZWN0KVxuICAgICAgfVxuICAgIH0sXG4gIH1cblxuICBjb25zdCBmaWx0ZXJQcm9qZWN0cyA9IHJlY2VudFByb2plY3RzPy5maWx0ZXIocHJvamVjdCA9PiB7XG4gICAgaWYgKCFzZWFyY2hWYWx1ZS50cmltKCkpIHJldHVybiB0cnVlXG4gICAgY29uc3QgcHJvamVjdE5hbWUgPSBwcm9qZWN0LnRpdGxlIHx8ICcnXG4gICAgY29uc3QgY2xpZW50TmFtZSA9IHByb2plY3QuY2xpZW50Py5uYW1lIHx8ICcnXG4gICAgcmV0dXJuIChcbiAgICAgIHByb2plY3ROYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgIGNsaWVudE5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgIClcbiAgfSlcblxuICBjb25zdCBzaG93UmVjZW50UHJvamVjdHMgPSAhc2VhcmNoVmFsdWUudHJpbSgpICYmICFpc1Byb2plY3RTZWxlY3RlZFxuICBjb25zdCBzaG93U2VhcmNoUmVzdWx0cyA9IHNlYXJjaFZhbHVlLnRyaW0oKSAmJiAhaXNQcm9qZWN0U2VsZWN0ZWRcblxuICBjb25zdCByZW5kZXJDb250ZW50ID0gKCkgPT4ge1xuICAgIC8vIFNpIGhheSBiw7pzcXVlZGEgYWN0aXZhLCBtb3N0cmFyIHJlc3VsdGFkb3MgZGUgYsO6c3F1ZWRhXG4gICAgaWYgKHNob3dTZWFyY2hSZXN1bHRzKSB7XG4gICAgICBpZiAocmVjZW50UHJvamVjdHNMb2FkaW5nKSB7XG4gICAgICAgIHJldHVybiA8TG9hZGVyU2VhcmNoUHJvamVjdHMgdGV4dD17dCgncHJvamVjdFNlbGVjdG9yLnNlYXJjaGluZ1Byb2plY3RzJyl9IC8+XG4gICAgICB9XG5cbiAgICAgIGlmIChyZWNlbnRQcm9qZWN0c0Vycm9yKSB7XG4gICAgICAgIHJldHVybiA8RXJyb3JTZWFyY2hQcm9qZWN0cyAvPlxuICAgICAgfVxuXG4gICAgICBpZiAoZmlsdGVyUHJvamVjdHMgJiYgZmlsdGVyUHJvamVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTQ1BTUHJvamVjdHNMaXN0PlxuICAgICAgICAgICAge2ZpbHRlclByb2plY3RzLm1hcChwcm9qZWN0ID0+IChcbiAgICAgICAgICAgICAgPFNDUFNSZWNlbnRJdGVtXG4gICAgICAgICAgICAgICAga2V5PXtwcm9qZWN0LmlkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdFR5cGUgPSAnY3VzdG9tJ1xuICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFNlYXJjaENvbnRleHRTZWxlY3RSZXN1bHQsIHsgcmVzdWx0X3R5cGU6IHJlc3VsdFR5cGUgfSlcbiAgICAgICAgICAgICAgICAgIGhhbmRsZXJzLmhhbmRsZVByb2plY3RTZWxlY3RlZChwcm9qZWN0KVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NQU1JlY2VudEl0ZW1JbmZvPlxuICAgICAgICAgICAgICAgICAgPFNDUFNSZWNlbnRJdGVtQ2xpZW50PlxuICAgICAgICAgICAgICAgICAgICB7cHJvamVjdC5jbGllbnQ/Lm5hbWUgPz8gdCgncHJvamVjdFNlbGVjdG9yLndpdGhvdXRDbGllbnQnKX1cbiAgICAgICAgICAgICAgICAgIDwvU0NQU1JlY2VudEl0ZW1DbGllbnQ+XG4gICAgICAgICAgICAgICAgICA8U0NQU1JlY2VudEl0ZW1UaXRsZVxuICAgICAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHByb2plY3QudGl0bGUgfHwgdCgncHJvamVjdFNlbGVjdG9yLndpdGhvdXRUaXRsZScpIH19XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU0NQU1JlY2VudEl0ZW1JbmZvPlxuICAgICAgICAgICAgICAgIDxTQ1BTUmVjZW50SXRlbUljb24+XG4gICAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiBjb2xvcj17cGFsbGV0ZS5jb2xvcnMuc2Vjb25kYXJ5fSAvPlxuICAgICAgICAgICAgICAgIDwvU0NQU1JlY2VudEl0ZW1JY29uPlxuICAgICAgICAgICAgICA8L1NDUFNSZWNlbnRJdGVtPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9TQ1BTUHJvamVjdHNMaXN0PlxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiA8RW1wdHlTZWFyY2hQcm9qZWN0cyBtZXNzYWdlPXt0KCdwcm9qZWN0U2VsZWN0b3IuZW1wdHlTdGF0ZScpfSBzZWFyY2hWYWx1ZT17c2VhcmNoVmFsdWV9IC8+XG4gICAgfVxuXG4gICAgLy8gU2kgbm8gaGF5IGLDunNxdWVkYSwgbW9zdHJhciBwcm95ZWN0b3MgcmVjaWVudGVzXG4gICAgaWYgKHNob3dSZWNlbnRQcm9qZWN0cykge1xuICAgICAgaWYgKHJlY2VudFByb2plY3RzTG9hZGluZykge1xuICAgICAgICByZXR1cm4gPExvYWRlclNlYXJjaFByb2plY3RzIHRleHQ9e3QoJ3Byb2plY3RTZWxlY3Rvci5zZWFyY2hpbmdQcm9qZWN0cycpfSAvPlxuICAgICAgfVxuXG4gICAgICBpZiAocmVjZW50UHJvamVjdHNFcnJvcikge1xuICAgICAgICByZXR1cm4gPEVycm9yU2VhcmNoUHJvamVjdHMgLz5cbiAgICAgIH1cblxuICAgICAgaWYgKHJlY2VudFByb2plY3RzICYmIHJlY2VudFByb2plY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDUFNSZWNlbnRUaXRsZT57dCgncHJvamVjdFNlbGVjdG9yLnJlY2VudFByb2plY3RzJyl9PC9TQ1BTUmVjZW50VGl0bGU+XG4gICAgICAgICAgICA8U0NQU1JlY2VudExpc3QgJHJlY2VudFByb2plY3RzPlxuICAgICAgICAgICAgICB7cmVjZW50UHJvamVjdHMubWFwKHByb2plY3QgPT4gKFxuICAgICAgICAgICAgICAgIDxTQ1BTUmVjZW50SXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXtwcm9qZWN0LmlkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRUeXBlID0gJ3JlY2VudCdcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFNlYXJjaENvbnRleHRTZWxlY3RSZXN1bHQsIHsgcmVzdWx0X3R5cGU6IHJlc3VsdFR5cGUgfSlcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnMuaGFuZGxlUHJvamVjdFNlbGVjdGVkKHByb2plY3QpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTQ1BTUmVjZW50SXRlbUluZm8+XG4gICAgICAgICAgICAgICAgICAgIDxTQ1BTUmVjZW50SXRlbUNsaWVudD5cbiAgICAgICAgICAgICAgICAgICAgICB7cHJvamVjdC5jbGllbnQ/Lm5hbWUgPz8gdCgncHJvamVjdFNlbGVjdG9yLndpdGhvdXRDbGllbnQnKX1cbiAgICAgICAgICAgICAgICAgICAgPC9TQ1BTUmVjZW50SXRlbUNsaWVudD5cbiAgICAgICAgICAgICAgICAgICAgPFNDUFNSZWNlbnRJdGVtVGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHByb2plY3QudGl0bGUgfHwgdCgncHJvamVjdFNlbGVjdG9yLndpdGhvdXRUaXRsZScpIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDUFNSZWNlbnRJdGVtSW5mbz5cbiAgICAgICAgICAgICAgICAgIDxTQ1BTUmVjZW50SXRlbUljb24+XG4gICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHQgd2lkdGg9XCIxNnB4XCIgaGVpZ2h0PVwiMTZweFwiIGNvbG9yPXtwYWxsZXRlLmNvbG9ycy5zZWNvbmRhcnl9IC8+XG4gICAgICAgICAgICAgICAgICA8L1NDUFNSZWNlbnRJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICA8L1NDUFNSZWNlbnRJdGVtPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NQU1JlY2VudExpc3Q+XG4gICAgICAgICAgPC8+XG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgLy8gU2kgbm8gaGF5IHByb3llY3RvcyByZWNpZW50ZXMgeSBubyBlc3TDoSBjYXJnYW5kbyBuaSBoYXkgZXJyb3JcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDUFNDb250YWluZXIgaWQ9XCJwcm9qZWN0X3NlbGVjdG9yXCI+XG4gICAgICB7IWlzUHJvamVjdFNlbGVjdGVkICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U0NQU1dyYXBwZXI+XG4gICAgICAgICAgICA8U0NQU1NlbGVjdENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPFNDUFNSZXN1bHRDb250YWluZXI+XG4gICAgICAgICAgICAgICAgPFNlYXJjaCB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9e3BhbGxldGUuY29sb3JzLnNlY29uZGFyeX0gLz5cbiAgICAgICAgICAgICAgICA8U0NQU0lucHV0XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17c2VhcmNoVmFsdWV9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlcnMuaGFuZGxlQ2hhbmdlSW5wdXR9XG4gICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ3Byb2plY3RTZWxlY3Rvci5wbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU0NQU1Jlc3VsdENvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvU0NQU1NlbGVjdENvbnRhaW5lcj5cbiAgICAgICAgICA8L1NDUFNXcmFwcGVyPlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6ICcxMDAlJyB9fT57cmVuZGVyQ29udGVudCgpfTwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC9TQ1BTQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUF3QkEsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsUUFBcUIsT0FBTztBQUMvRSxTQUFTQyxZQUFZLFFBQVEsK0NBQStDO0FBQzVFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsT0FBT0MsT0FBTyxNQUFNLG1DQUFtQztBQUN2RCxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUNFQyxTQUFTLEVBQ1RDLFdBQVcsRUFDWEMsYUFBYSxFQUNiQyxtQkFBbUIsRUFDbkJDLG1CQUFtQixFQUNuQkMsZUFBZSxFQUNmQyxjQUFjLEVBQ2RDLGNBQWMsRUFDZEMsa0JBQWtCLEVBQ2xCQyxvQkFBb0IsRUFDcEJDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsUUFDWCwwQkFBMEI7QUFDakMsU0FBU0MsZ0JBQWdCLFFBQXVCLGlDQUFpQztBQUNqRixTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFDMUQsU0FBU0Msb0JBQW9CLFFBQVEsMEJBQTBCO0FBQy9E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
@@ -6,5 +6,4 @@ export { ProjectSummaryModal } from './molecules/ProjectSummaryModal';
6
6
  export { ProjectSummary } from './organisms/ProjectSummary';
7
7
  export { ChatAI } from './organisms/ChatAI';
8
8
  export { ProjectAIButton } from './organisms/ProjectAIButton';
9
- export { ClientAIButton } from './organisms/ClientAIButton';
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQUlBQnV0dG9uIiwiTWFpYVdyYXBwZXIiLCJNQUlBRXJyb3IiLCJBSUljb24iLCJQcm9qZWN0U3VtbWFyeU1vZGFsIiwiUHJvamVjdFN1bW1hcnkiLCJDaGF0QUkiLCJQcm9qZWN0QUlCdXR0b24iLCJDbGllbnRBSUJ1dHRvbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE1BSUFCdXR0b24gfSBmcm9tICcuL2F0b21zL01BSUFCdXR0b24nXG5leHBvcnQgeyBNYWlhV3JhcHBlciB9IGZyb20gJy4vYXRvbXMvTWFpYVdyYXBwZXInXG5leHBvcnQgeyBNQUlBRXJyb3IgfSBmcm9tICcuL2F0b21zL01BSUFFcnJvcidcblxuZXhwb3J0IHsgQUlJY29uIH0gZnJvbSAnLi9hdG9tcy9pY29ucydcblxuZXhwb3J0IHsgUHJvamVjdFN1bW1hcnlNb2RhbCB9IGZyb20gJy4vbW9sZWN1bGVzL1Byb2plY3RTdW1tYXJ5TW9kYWwnXG5cbmV4cG9ydCB7IFByb2plY3RTdW1tYXJ5IH0gZnJvbSAnLi9vcmdhbmlzbXMvUHJvamVjdFN1bW1hcnknXG5leHBvcnQgeyBDaGF0QUkgfSBmcm9tICcuL29yZ2FuaXNtcy9DaGF0QUknXG5leHBvcnQgeyBQcm9qZWN0QUlCdXR0b24gfSBmcm9tICcuL29yZ2FuaXNtcy9Qcm9qZWN0QUlCdXR0b24nXG5leHBvcnQgeyBDbGllbnRBSUJ1dHRvbiB9IGZyb20gJy4vb3JnYW5pc21zL0NsaWVudEFJQnV0dG9uJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsb0JBQW9CO0FBQy9DLFNBQVNDLFdBQVcsUUFBUSxxQkFBcUI7QUFDakQsU0FBU0MsU0FBUyxRQUFRLG1CQUFtQjtBQUU3QyxTQUFTQyxNQUFNLFFBQVEsZUFBZTtBQUV0QyxTQUFTQyxtQkFBbUIsUUFBUSxpQ0FBaUM7QUFFckUsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QjtBQUMzRCxTQUFTQyxNQUFNLFFBQVEsb0JBQW9CO0FBQzNDLFNBQVNDLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QiIsImlnbm9yZUxpc3QiOltdfQ==
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQUlBQnV0dG9uIiwiTWFpYVdyYXBwZXIiLCJNQUlBRXJyb3IiLCJBSUljb24iLCJQcm9qZWN0U3VtbWFyeU1vZGFsIiwiUHJvamVjdFN1bW1hcnkiLCJDaGF0QUkiLCJQcm9qZWN0QUlCdXR0b24iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNQUlBQnV0dG9uIH0gZnJvbSAnLi9hdG9tcy9NQUlBQnV0dG9uJ1xuZXhwb3J0IHsgTWFpYVdyYXBwZXIgfSBmcm9tICcuL2F0b21zL01haWFXcmFwcGVyJ1xuZXhwb3J0IHsgTUFJQUVycm9yIH0gZnJvbSAnLi9hdG9tcy9NQUlBRXJyb3InXG5cbmV4cG9ydCB7IEFJSWNvbiB9IGZyb20gJy4vYXRvbXMvaWNvbnMnXG5cbmV4cG9ydCB7IFByb2plY3RTdW1tYXJ5TW9kYWwgfSBmcm9tICcuL21vbGVjdWxlcy9Qcm9qZWN0U3VtbWFyeU1vZGFsJ1xuXG5leHBvcnQgeyBQcm9qZWN0U3VtbWFyeSB9IGZyb20gJy4vb3JnYW5pc21zL1Byb2plY3RTdW1tYXJ5J1xuZXhwb3J0IHsgQ2hhdEFJIH0gZnJvbSAnLi9vcmdhbmlzbXMvQ2hhdEFJJ1xuZXhwb3J0IHsgUHJvamVjdEFJQnV0dG9uIH0gZnJvbSAnLi9vcmdhbmlzbXMvUHJvamVjdEFJQnV0dG9uJ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsb0JBQW9CO0FBQy9DLFNBQVNDLFdBQVcsUUFBUSxxQkFBcUI7QUFDakQsU0FBU0MsU0FBUyxRQUFRLG1CQUFtQjtBQUU3QyxTQUFTQyxNQUFNLFFBQVEsZUFBZTtBQUV0QyxTQUFTQyxtQkFBbUIsUUFBUSxpQ0FBaUM7QUFFckUsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QjtBQUMzRCxTQUFTQyxNQUFNLFFBQVEsb0JBQW9CO0FBQzNDLFNBQVNDLGVBQWUsUUFBUSw2QkFBNkIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -5,7 +5,6 @@ import { ChatAIHome } from '../ChatAIHome';
5
5
  import { ProjectSummaryContent } from '../ProjectSummaryContent';
6
6
  import { options } from '../ChatAIModal/constants';
7
7
  import { ChatAIProjectSelector } from '../ChatAIProjectSelector';
8
- import { ChatAIClientSelector } from '../ChatAIClientSelector';
9
8
  import { SCCAIContentWrapper } from './ChatAIContent.styles';
10
9
  import { ChatAIMessages } from '../ChatAIMessages';
11
10
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -45,13 +44,6 @@ export var ChatAIContent = function ChatAIContent(_ref) {
45
44
  })
46
45
  });
47
46
  }
48
- if (currentOption === options.clientSelector) {
49
- return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
50
- children: /*#__PURE__*/_jsx(ChatAIClientSelector, {
51
- handlers: handlers.handleGoHome
52
- })
53
- });
54
- }
55
47
  return /*#__PURE__*/_jsx(SCCAIContentWrapper, {
56
48
  children: /*#__PURE__*/_jsx(ChatAIHome, {
57
49
  handlers: handlers,
@@ -61,4 +53,4 @@ export var ChatAIContent = function ChatAIContent(_ref) {
61
53
  })
62
54
  });
63
55
  };
64
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNoYXRBSUhvbWUiLCJQcm9qZWN0U3VtbWFyeUNvbnRlbnQiLCJvcHRpb25zIiwiQ2hhdEFJUHJvamVjdFNlbGVjdG9yIiwiQ2hhdEFJQ2xpZW50U2VsZWN0b3IiLCJTQ0NBSUNvbnRlbnRXcmFwcGVyIiwiQ2hhdEFJTWVzc2FnZXMiLCJqc3giLCJfanN4IiwiQ2hhdEFJQ29udGVudCIsIl9yZWYiLCJjdXJyZW50T3B0aW9uIiwiaGFuZGxlcnMiLCJvbkVycm9yIiwicmVmcyIsIm9uU2VuZE1lc3NhZ2VSZWFkeSIsImV4cGFuZGVkIiwiaGFzTm9BZ2VudHMiLCJhZ2VudHMiLCJjaGF0IiwiY2hpbGRyZW4iLCJ1c2VySW5pdGlhbE1lc3NhZ2UiLCJpbml0aWFsQ2hhdElkIiwiYXR0YWNobWVudHMiLCJwcm9qZWN0U3VtbWFyeSIsIm9uUmVzdGFydFN1bW1hcnkiLCJob21lIiwicHJvamVjdFNlbGVjdG9yIiwiaGFuZGxlR29Ib21lIiwiY2xpZW50U2VsZWN0b3IiLCJvblN0YXJ0Q2hhdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlDb250ZW50L0NoYXRBSUNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGF0QUlIb21lIH0gZnJvbSAnLi4vQ2hhdEFJSG9tZSdcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29udGVudCB9IGZyb20gJy4uL1Byb2plY3RTdW1tYXJ5Q29udGVudCdcblxuaW1wb3J0IHsgb3B0aW9ucyB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2NvbnN0YW50cydcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgQ2hhdEFJUHJvamVjdFNlbGVjdG9yIH0gZnJvbSAnLi4vQ2hhdEFJUHJvamVjdFNlbGVjdG9yJ1xuaW1wb3J0IHsgQ2hhdEFJQ2xpZW50U2VsZWN0b3IgfSBmcm9tICcuLi9DaGF0QUlDbGllbnRTZWxlY3RvcidcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5pbXBvcnQgeyBTQ0NBSUNvbnRlbnRXcmFwcGVyIH0gZnJvbSAnLi9DaGF0QUlDb250ZW50LnN0eWxlcydcbmltcG9ydCB7IENoYXRBSU1lc3NhZ2VzIH0gZnJvbSAnLi4vQ2hhdEFJTWVzc2FnZXMnXG5cbnR5cGUgQ2hhdEFJQ29udGVudFByb3BzID0ge1xuICBjdXJyZW50T3B0aW9uOiBvcHRpb25zXG4gIGhhbmRsZXJzOiBSZWNvcmQ8b3B0aW9ucywgKHZhbHVlPzogYW55KSA9PiB2b2lkPiAmIHtcbiAgICBjaGF0OiAobWVzc2FnZT86IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICAgIHN0YXJ0Q2hhdD86IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWRcbiAgICBoYW5kbGVHb0hvbWU6ICgpID0+IHZvaWRcbiAgfVxuICBvbkVycm9yOiAoKSA9PiB2b2lkXG4gIHJlZnM6IHtcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2U6IHsgbWVzc2FnZTogc3RyaW5nOyBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXTsgZmFxSWQ/OiBzdHJpbmcgfVxuICAgIGluaXRpYWxDaGF0SWQ6IHN0cmluZyB8IG51bGxcbiAgfVxuICBvblNlbmRNZXNzYWdlUmVhZHk/OiAoXG4gICAgc2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQsXG4gICAgc3RvcEdlbmVyYXRpb246ICgpID0+IHZvaWQsXG4gICAgaXNTdHJlYW1pbmc6IGJvb2xlYW4sXG4gICAgaXNXcml0aW5nOiBib29sZWFuXG4gICkgPT4gdm9pZFxuICBleHBhbmRlZD86IGJvb2xlYW5cbiAgaGFzTm9BZ2VudHM/OiBib29sZWFuXG4gIGFnZW50cz86IEFnZW50W11cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUNvbnRlbnQgPSAoe1xuICBjdXJyZW50T3B0aW9uLFxuICBoYW5kbGVycyxcbiAgb25FcnJvcixcbiAgcmVmcyxcbiAgb25TZW5kTWVzc2FnZVJlYWR5LFxuICBleHBhbmRlZCxcbiAgaGFzTm9BZ2VudHMsXG4gIGFnZW50cyxcbn06IENoYXRBSUNvbnRlbnRQcm9wcykgPT4ge1xuICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jaGF0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8Q2hhdEFJTWVzc2FnZXNcbiAgICAgICAgICB1c2VySW5pdGlhbE1lc3NhZ2U9e3JlZnMudXNlckluaXRpYWxNZXNzYWdlfVxuICAgICAgICAgIGluaXRpYWxDaGF0SWQ9e3JlZnMuaW5pdGlhbENoYXRJZH1cbiAgICAgICAgICBvbkVycm9yPXtvbkVycm9yfVxuICAgICAgICAgIG9uU2VuZE1lc3NhZ2VSZWFkeT17b25TZW5kTWVzc2FnZVJlYWR5fVxuICAgICAgICAgIGF0dGFjaG1lbnRzPXtyZWZzLnVzZXJJbml0aWFsTWVzc2FnZS5hdHRhY2htZW50c31cbiAgICAgICAgICBhZ2VudHM9e2FnZW50c31cbiAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMucHJvamVjdFN1bW1hcnkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgICAgIDxQcm9qZWN0U3VtbWFyeUNvbnRlbnQgb25SZXN0YXJ0U3VtbWFyeT17aGFuZGxlcnMuaG9tZX0gLz5cbiAgICAgIDwvU0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICApXG4gIH1cblxuICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5wcm9qZWN0U2VsZWN0b3IpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgICAgIDxDaGF0QUlQcm9qZWN0U2VsZWN0b3IgaGFuZGxlcnM9e2hhbmRsZXJzLmhhbmRsZUdvSG9tZX0gLz5cbiAgICAgIDwvU0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICApXG4gIH1cblxuICBpZiAoY3VycmVudE9wdGlvbiA9PT0gb3B0aW9ucy5jbGllbnRTZWxlY3Rvcikge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICAgICAgPENoYXRBSUNsaWVudFNlbGVjdG9yIGhhbmRsZXJzPXtoYW5kbGVycy5oYW5kbGVHb0hvbWV9IC8+XG4gICAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICAgIDxDaGF0QUlIb21lIGhhbmRsZXJzPXtoYW5kbGVyc30gb25TdGFydENoYXQ9e2hhbmRsZXJzLmNoYXR9IGV4cGFuZGVkPXtleHBhbmRlZH0gaGFzTm9BZ2VudHM9e2hhc05vQWdlbnRzfSAvPlxuICAgIDwvU0NDQUlDb250ZW50V3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFDMUMsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBRWhFLFNBQVNDLE9BQU8sUUFBUSwwQkFBMEI7QUFFbEQsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBQ2hFLFNBQVNDLG9CQUFvQixRQUFRLHlCQUF5QjtBQUU5RCxTQUFTQyxtQkFBbUIsUUFBUSx3QkFBd0I7QUFDNUQsU0FBU0MsY0FBYyxRQUFRLG1CQUFtQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQXlCbEQsT0FBTyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUFDLElBQUEsRUFTQTtFQUFBLElBUnhCQyxhQUFhLEdBQUFELElBQUEsQ0FBYkMsYUFBYTtJQUNiQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtJQUNSQyxPQUFPLEdBQUFILElBQUEsQ0FBUEcsT0FBTztJQUNQQyxJQUFJLEdBQUFKLElBQUEsQ0FBSkksSUFBSTtJQUNKQyxrQkFBa0IsR0FBQUwsSUFBQSxDQUFsQkssa0JBQWtCO0lBQ2xCQyxRQUFRLEdBQUFOLElBQUEsQ0FBUk0sUUFBUTtJQUNSQyxXQUFXLEdBQUFQLElBQUEsQ0FBWE8sV0FBVztJQUNYQyxNQUFNLEdBQUFSLElBQUEsQ0FBTlEsTUFBTTtFQUVOLElBQUlQLGFBQWEsS0FBS1QsT0FBTyxDQUFDaUIsSUFBSSxFQUFFO0lBQ2xDLG9CQUNFWCxJQUFBLENBQUNILG1CQUFtQjtNQUFBZSxRQUFBLGVBQ2xCWixJQUFBLENBQUNGLGNBQWM7UUFDYmUsa0JBQWtCLEVBQUVQLElBQUksQ0FBQ08sa0JBQW1CO1FBQzVDQyxhQUFhLEVBQUVSLElBQUksQ0FBQ1EsYUFBYztRQUNsQ1QsT0FBTyxFQUFFQSxPQUFRO1FBQ2pCRSxrQkFBa0IsRUFBRUEsa0JBQW1CO1FBQ3ZDUSxXQUFXLEVBQUVULElBQUksQ0FBQ08sa0JBQWtCLENBQUNFLFdBQVk7UUFDakRMLE1BQU0sRUFBRUEsTUFBTztRQUNmRixRQUFRLEVBQUVBO01BQVMsQ0FDcEI7SUFBQyxDQUNpQixDQUFDO0VBRTFCO0VBRUEsSUFBSUwsYUFBYSxLQUFLVCxPQUFPLENBQUNzQixjQUFjLEVBQUU7SUFDNUMsb0JBQ0VoQixJQUFBLENBQUNILG1CQUFtQjtNQUFBZSxRQUFBLGVBQ2xCWixJQUFBLENBQUNQLHFCQUFxQjtRQUFDd0IsZ0JBQWdCLEVBQUViLFFBQVEsQ0FBQ2M7TUFBSyxDQUFFO0lBQUMsQ0FDdkMsQ0FBQztFQUUxQjtFQUVBLElBQUlmLGFBQWEsS0FBS1QsT0FBTyxDQUFDeUIsZUFBZSxFQUFFO0lBQzdDLG9CQUNFbkIsSUFBQSxDQUFDSCxtQkFBbUI7TUFBQWUsUUFBQSxlQUNsQlosSUFBQSxDQUFDTCxxQkFBcUI7UUFBQ1MsUUFBUSxFQUFFQSxRQUFRLENBQUNnQjtNQUFhLENBQUU7SUFBQyxDQUN2QyxDQUFDO0VBRTFCO0VBRUEsSUFBSWpCLGFBQWEsS0FBS1QsT0FBTyxDQUFDMkIsY0FBYyxFQUFFO0lBQzVDLG9CQUNFckIsSUFBQSxDQUFDSCxtQkFBbUI7TUFBQWUsUUFBQSxlQUNsQlosSUFBQSxDQUFDSixvQkFBb0I7UUFBQ1EsUUFBUSxFQUFFQSxRQUFRLENBQUNnQjtNQUFhLENBQUU7SUFBQyxDQUN0QyxDQUFDO0VBRTFCO0VBRUEsb0JBQ0VwQixJQUFBLENBQUNILG1CQUFtQjtJQUFBZSxRQUFBLGVBQ2xCWixJQUFBLENBQUNSLFVBQVU7TUFBQ1ksUUFBUSxFQUFFQSxRQUFTO01BQUNrQixXQUFXLEVBQUVsQixRQUFRLENBQUNPLElBQUs7TUFBQ0gsUUFBUSxFQUFFQSxRQUFTO01BQUNDLFdBQVcsRUFBRUE7SUFBWSxDQUFFO0VBQUMsQ0FDekYsQ0FBQztBQUUxQixDQUFDIiwiaWdub3JlTGlzdCI6W119
56
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNoYXRBSUhvbWUiLCJQcm9qZWN0U3VtbWFyeUNvbnRlbnQiLCJvcHRpb25zIiwiQ2hhdEFJUHJvamVjdFNlbGVjdG9yIiwiU0NDQUlDb250ZW50V3JhcHBlciIsIkNoYXRBSU1lc3NhZ2VzIiwianN4IiwiX2pzeCIsIkNoYXRBSUNvbnRlbnQiLCJfcmVmIiwiY3VycmVudE9wdGlvbiIsImhhbmRsZXJzIiwib25FcnJvciIsInJlZnMiLCJvblNlbmRNZXNzYWdlUmVhZHkiLCJleHBhbmRlZCIsImhhc05vQWdlbnRzIiwiYWdlbnRzIiwiY2hhdCIsImNoaWxkcmVuIiwidXNlckluaXRpYWxNZXNzYWdlIiwiaW5pdGlhbENoYXRJZCIsImF0dGFjaG1lbnRzIiwicHJvamVjdFN1bW1hcnkiLCJvblJlc3RhcnRTdW1tYXJ5IiwiaG9tZSIsInByb2plY3RTZWxlY3RvciIsImhhbmRsZUdvSG9tZSIsIm9uU3RhcnRDaGF0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSUNvbnRlbnQvQ2hhdEFJQ29udGVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoYXRBSUhvbWUgfSBmcm9tICcuLi9DaGF0QUlIb21lJ1xuaW1wb3J0IHsgUHJvamVjdFN1bW1hcnlDb250ZW50IH0gZnJvbSAnLi4vUHJvamVjdFN1bW1hcnlDb250ZW50J1xuXG5pbXBvcnQgeyBvcHRpb25zIH0gZnJvbSAnLi4vQ2hhdEFJTW9kYWwvY29uc3RhbnRzJ1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDaGF0QUlQcm9qZWN0U2VsZWN0b3IgfSBmcm9tICcuLi9DaGF0QUlQcm9qZWN0U2VsZWN0b3InXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgU0NDQUlDb250ZW50V3JhcHBlciB9IGZyb20gJy4vQ2hhdEFJQ29udGVudC5zdHlsZXMnXG5pbXBvcnQgeyBDaGF0QUlNZXNzYWdlcyB9IGZyb20gJy4uL0NoYXRBSU1lc3NhZ2VzJ1xuXG50eXBlIENoYXRBSUNvbnRlbnRQcm9wcyA9IHtcbiAgY3VycmVudE9wdGlvbjogb3B0aW9uc1xuICBoYW5kbGVyczogUmVjb3JkPG9wdGlvbnMsICh2YWx1ZT86IGFueSkgPT4gdm9pZD4gJiB7XG4gICAgY2hhdDogKG1lc3NhZ2U/OiBzdHJpbmcsIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSwgZmFxSWQ/OiBzdHJpbmcpID0+IHZvaWRcbiAgICBzdGFydENoYXQ/OiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkXG4gICAgaGFuZGxlR29Ib21lOiAoKSA9PiB2b2lkXG4gIH1cbiAgb25FcnJvcjogKCkgPT4gdm9pZFxuICByZWZzOiB7XG4gICAgdXNlckluaXRpYWxNZXNzYWdlOiB7IG1lc3NhZ2U6IHN0cmluZzsgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW107IGZhcUlkPzogc3RyaW5nIH1cbiAgICBpbml0aWFsQ2hhdElkOiBzdHJpbmcgfCBudWxsXG4gIH1cbiAgb25TZW5kTWVzc2FnZVJlYWR5PzogKFxuICAgIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkLFxuICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgIGlzU3RyZWFtaW5nOiBib29sZWFuLFxuICAgIGlzV3JpdGluZzogYm9vbGVhblxuICApID0+IHZvaWRcbiAgZXhwYW5kZWQ/OiBib29sZWFuXG4gIGhhc05vQWdlbnRzPzogYm9vbGVhblxuICBhZ2VudHM/OiBBZ2VudFtdXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlDb250ZW50ID0gKHtcbiAgY3VycmVudE9wdGlvbixcbiAgaGFuZGxlcnMsXG4gIG9uRXJyb3IsXG4gIHJlZnMsXG4gIG9uU2VuZE1lc3NhZ2VSZWFkeSxcbiAgZXhwYW5kZWQsXG4gIGhhc05vQWdlbnRzLFxuICBhZ2VudHMsXG59OiBDaGF0QUlDb250ZW50UHJvcHMpID0+IHtcbiAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMuY2hhdCkge1xuICAgIHJldHVybiAoXG4gICAgICA8U0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICAgICAgPENoYXRBSU1lc3NhZ2VzXG4gICAgICAgICAgdXNlckluaXRpYWxNZXNzYWdlPXtyZWZzLnVzZXJJbml0aWFsTWVzc2FnZX1cbiAgICAgICAgICBpbml0aWFsQ2hhdElkPXtyZWZzLmluaXRpYWxDaGF0SWR9XG4gICAgICAgICAgb25FcnJvcj17b25FcnJvcn1cbiAgICAgICAgICBvblNlbmRNZXNzYWdlUmVhZHk9e29uU2VuZE1lc3NhZ2VSZWFkeX1cbiAgICAgICAgICBhdHRhY2htZW50cz17cmVmcy51c2VySW5pdGlhbE1lc3NhZ2UuYXR0YWNobWVudHN9XG4gICAgICAgICAgYWdlbnRzPXthZ2VudHN9XG4gICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAvPlxuICAgICAgPC9TQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgIClcbiAgfVxuXG4gIGlmIChjdXJyZW50T3B0aW9uID09PSBvcHRpb25zLnByb2plY3RTdW1tYXJ5KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8UHJvamVjdFN1bW1hcnlDb250ZW50IG9uUmVzdGFydFN1bW1hcnk9e2hhbmRsZXJzLmhvbWV9IC8+XG4gICAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgaWYgKGN1cnJlbnRPcHRpb24gPT09IG9wdGlvbnMucHJvamVjdFNlbGVjdG9yKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0NBSUNvbnRlbnRXcmFwcGVyPlxuICAgICAgICA8Q2hhdEFJUHJvamVjdFNlbGVjdG9yIGhhbmRsZXJzPXtoYW5kbGVycy5oYW5kbGVHb0hvbWV9IC8+XG4gICAgICA8L1NDQ0FJQ29udGVudFdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NDQUlDb250ZW50V3JhcHBlcj5cbiAgICAgIDxDaGF0QUlIb21lIGhhbmRsZXJzPXtoYW5kbGVyc30gb25TdGFydENoYXQ9e2hhbmRsZXJzLmNoYXR9IGV4cGFuZGVkPXtleHBhbmRlZH0gaGFzTm9BZ2VudHM9e2hhc05vQWdlbnRzfSAvPlxuICAgIDwvU0NDQUlDb250ZW50V3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFDMUMsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBRWhFLFNBQVNDLE9BQU8sUUFBUSwwQkFBMEI7QUFFbEQsU0FBU0MscUJBQXFCLFFBQVEsMEJBQTBCO0FBRWhFLFNBQVNDLG1CQUFtQixRQUFRLHdCQUF3QjtBQUM1RCxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBeUJsRCxPQUFPLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQUMsSUFBQSxFQVNBO0VBQUEsSUFSeEJDLGFBQWEsR0FBQUQsSUFBQSxDQUFiQyxhQUFhO0lBQ2JDLFFBQVEsR0FBQUYsSUFBQSxDQUFSRSxRQUFRO0lBQ1JDLE9BQU8sR0FBQUgsSUFBQSxDQUFQRyxPQUFPO0lBQ1BDLElBQUksR0FBQUosSUFBQSxDQUFKSSxJQUFJO0lBQ0pDLGtCQUFrQixHQUFBTCxJQUFBLENBQWxCSyxrQkFBa0I7SUFDbEJDLFFBQVEsR0FBQU4sSUFBQSxDQUFSTSxRQUFRO0lBQ1JDLFdBQVcsR0FBQVAsSUFBQSxDQUFYTyxXQUFXO0lBQ1hDLE1BQU0sR0FBQVIsSUFBQSxDQUFOUSxNQUFNO0VBRU4sSUFBSVAsYUFBYSxLQUFLUixPQUFPLENBQUNnQixJQUFJLEVBQUU7SUFDbEMsb0JBQ0VYLElBQUEsQ0FBQ0gsbUJBQW1CO01BQUFlLFFBQUEsZUFDbEJaLElBQUEsQ0FBQ0YsY0FBYztRQUNiZSxrQkFBa0IsRUFBRVAsSUFBSSxDQUFDTyxrQkFBbUI7UUFDNUNDLGFBQWEsRUFBRVIsSUFBSSxDQUFDUSxhQUFjO1FBQ2xDVCxPQUFPLEVBQUVBLE9BQVE7UUFDakJFLGtCQUFrQixFQUFFQSxrQkFBbUI7UUFDdkNRLFdBQVcsRUFBRVQsSUFBSSxDQUFDTyxrQkFBa0IsQ0FBQ0UsV0FBWTtRQUNqREwsTUFBTSxFQUFFQSxNQUFPO1FBQ2ZGLFFBQVEsRUFBRUE7TUFBUyxDQUNwQjtJQUFDLENBQ2lCLENBQUM7RUFFMUI7RUFFQSxJQUFJTCxhQUFhLEtBQUtSLE9BQU8sQ0FBQ3FCLGNBQWMsRUFBRTtJQUM1QyxvQkFDRWhCLElBQUEsQ0FBQ0gsbUJBQW1CO01BQUFlLFFBQUEsZUFDbEJaLElBQUEsQ0FBQ04scUJBQXFCO1FBQUN1QixnQkFBZ0IsRUFBRWIsUUFBUSxDQUFDYztNQUFLLENBQUU7SUFBQyxDQUN2QyxDQUFDO0VBRTFCO0VBRUEsSUFBSWYsYUFBYSxLQUFLUixPQUFPLENBQUN3QixlQUFlLEVBQUU7SUFDN0Msb0JBQ0VuQixJQUFBLENBQUNILG1CQUFtQjtNQUFBZSxRQUFBLGVBQ2xCWixJQUFBLENBQUNKLHFCQUFxQjtRQUFDUSxRQUFRLEVBQUVBLFFBQVEsQ0FBQ2dCO01BQWEsQ0FBRTtJQUFDLENBQ3ZDLENBQUM7RUFFMUI7RUFFQSxvQkFDRXBCLElBQUEsQ0FBQ0gsbUJBQW1CO0lBQUFlLFFBQUEsZUFDbEJaLElBQUEsQ0FBQ1AsVUFBVTtNQUFDVyxRQUFRLEVBQUVBLFFBQVM7TUFBQ2lCLFdBQVcsRUFBRWpCLFFBQVEsQ0FBQ08sSUFBSztNQUFDSCxRQUFRLEVBQUVBLFFBQVM7TUFBQ0MsV0FBVyxFQUFFQTtJQUFZLENBQUU7RUFBQyxDQUN6RixDQUFDO0FBRTFCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=