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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,7 @@ import { ChatFooterFaqs } from './ChatFooterFaqs';
15
15
  import { useGlobalContext } from '../../../context/global-context';
16
16
  import { useT } from '../../../hooks/useT';
17
17
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
18
- import { StyledChatFooter, ChipsAndFaqsRow, FaqsScrollWrapper } from './styles';
18
+ import { StyledChatFooter, ChipsAndFaqsRow } from './styles';
19
19
  import { CsvFileIcon, MDFileIcon, DocFileIcon, DocxFileIcon, TextFileIcon, PdfFileIcon, ImageFileIcon, XlsxFileIcon, XlsFileIcon, Mp3FileIcon, WavFileIcon, FlacFileIcon, M4aFileIcon, Mp4FileIcon, OgaFileIcon, OggFileIcon, WebmFileIcon } from '../../atoms/icons';
20
20
  import { ImagePreview } from '../../atoms/ImagePreview/ImagePreview';
21
21
  import { preprocessImageForBackend } from '../../../utils/imagePreprocessor';
@@ -50,7 +50,9 @@ export function ChatFooter(_ref) {
50
50
  isWriting = _ref.isWriting,
51
51
  onStopGeneration = _ref.onStopGeneration,
52
52
  chatId = _ref.chatId,
53
- newChatKey = _ref.newChatKey;
53
+ newChatKey = _ref.newChatKey,
54
+ _ref$showFaqs = _ref.showFaqs,
55
+ showFaqs = _ref$showFaqs === void 0 ? true : _ref$showFaqs;
54
56
  var _useGlobalContext = useGlobalContext(),
55
57
  project = _useGlobalContext.project,
56
58
  agent = _useGlobalContext.agent,
@@ -232,17 +234,12 @@ export function ChatFooter(_ref) {
232
234
  setAttachments(newAttachments);
233
235
  };
234
236
  var isMAIA = validateIsMaia(agent);
235
- var chipsScrollRef = useRef(null);
236
237
  return /*#__PURE__*/_jsxs(StyledChatFooter, {
237
238
  children: [isMAIA && !loadingMessages && /*#__PURE__*/_jsxs(ChipsAndFaqsRow, {
238
239
  children: [!!chipItems.length && /*#__PURE__*/_jsx(Chip, {
239
240
  items: chipItems
240
- }), /*#__PURE__*/_jsx(FaqsScrollWrapper, {
241
- ref: chipsScrollRef,
242
- children: /*#__PURE__*/_jsx(ChatFooterFaqs, {
243
- onSelectFaq: handleSelectFaq,
244
- scrollContainerRef: chipsScrollRef
245
- })
241
+ }), showFaqs && /*#__PURE__*/_jsx(ChatFooterFaqs, {
242
+ onSelectFaq: handleSelectFaq
246
243
  })]
247
244
  }), /*#__PURE__*/_jsx(MAIAInput, {
248
245
  onSendMessage: handleSendMessage,
@@ -273,4 +270,4 @@ export function ChatFooter(_ref) {
273
270
  })]
274
271
  });
275
272
  }
276
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIkNoaXAiLCJNQUlBSW5wdXQiLCJDaGF0Rm9vdGVyRmFxcyIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiQ2hpcHNBbmRGYXFzUm93IiwiRmFxc1Njcm9sbFdyYXBwZXIiLCJDc3ZGaWxlSWNvbiIsIk1ERmlsZUljb24iLCJEb2NGaWxlSWNvbiIsIkRvY3hGaWxlSWNvbiIsIlRleHRGaWxlSWNvbiIsIlBkZkZpbGVJY29uIiwiSW1hZ2VGaWxlSWNvbiIsIlhsc3hGaWxlSWNvbiIsIlhsc0ZpbGVJY29uIiwiTXAzRmlsZUljb24iLCJXYXZGaWxlSWNvbiIsIkZsYWNGaWxlSWNvbiIsIk00YUZpbGVJY29uIiwiTXA0RmlsZUljb24iLCJPZ2FGaWxlSWNvbiIsIk9nZ0ZpbGVJY29uIiwiV2VibUZpbGVJY29uIiwiSW1hZ2VQcmV2aWV3IiwicHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZCIsInZhbGlkYXRlSXNNYWlhIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkljb25CeUZpbGVUeXBlIiwiQ2hhdEZvb3RlciIsIl9yZWYiLCJvblNlbmRNZXNzYWdlIiwiaXRlbXMiLCJkaXNhYmxlZCIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJfdXNlR2xvYmFsQ29udGV4dCIsInByb2plY3QiLCJhZ2VudCIsImNoaXBzUHJvamVjdCIsImNsaWVudCIsIl91c2VUIiwidCIsImV2ZW50IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYXR0YWNobWVudHMiLCJzZXRBdHRhY2htZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZ01lc3NhZ2VzIiwic2V0TG9hZGluZ01lc3NhZ2VzIiwicmVwb3J0ZWRFdmVudCIsImhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSIsImUiLCJkZXRhaWwiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsImNoaXBJdGVtcyIsInRlbXBJdGVtcyIsImVudGl0eSIsIm5hbWUiLCJwdXNoIiwiY2xpZW50TmFtZSIsInByb2plY3ROYW1lIiwiX3Byb2plY3QkY2xpZW50Iiwib25DaGFuZ2UiLCJjdXJyZW50IiwicG1BaVR5cGVkVGV4dCIsImFnZW50X3R5cGUiLCJ0eXBlIiwiaGFuZGxlU2VuZE1lc3NhZ2UiLCJtZXNzYWdlIiwibmV3QXR0YWNobWVudHMiLCJmYXFJZCIsImFpQ2hhdFNlbmQiLCJhZ2VudF9pZCIsImlkIiwiYWdlbnRfbmFtZSIsImhhbmRsZVNlbGVjdEZhcSIsInVuZGVmaW5lZCIsImhhbmRsZUZpbGVBdHRhY2giLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiZmlsZSIsIl9maWxlTmFtZVBhcnRzJHBvcCIsImZpbGVOYW1lUGFydHMiLCJmaWxlRXh0ZW5zaW9uIiwiaXNJbWFnZUJ5RXh0ZW5zaW9uIiwiaXNJbWFnZUJ5TWltZSIsImlzSW1hZ2UiLCJleHRlbnNpb25Ub0ljb24iLCJpY29uIiwiZXh0ZW5zaW9uVG9NaW1lVHlwZSIsIm1pbWVUeXBlQnlFeHRlbnNpb24iLCJwcm9jZXNzZWRGaWxlIiwiaW1hZ2VVcmwiLCJuZXdBdHRhY2htZW50IiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInNwbGl0IiwibGVuZ3RoIiwiY29uY2F0IiwicG9wIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsInN0YXJ0c1dpdGgiLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0Iiwic2VudCIsImNvbnNvbGUiLCJlcnJvciIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsInNyYyIsImFsdCIsImJvcmRlclJhZGl1cyIsIm9yaWdpbmFsRmlsZSIsIkRhdGUiLCJub3ciLCJNYXRoIiwicmFuZG9tIiwic2l6ZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImZpbHRlciIsImF0dGFjaG1lbnQiLCJpc01BSUEiLCJjaGlwc1Njcm9sbFJlZiIsImNoaWxkcmVuIiwicmVmIiwib25TZWxlY3RGYXEiLCJzY3JvbGxDb250YWluZXJSZWYiLCJjbGFzc05hbWUiLCJwbGFjZWhvbGRlciIsImlucHV0X3BsYWNlaG9sZGVyIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiYXR0IiwibWFwIiwiTnVtYmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEF0dGFjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0F0dGFjaCdcbmltcG9ydCB7IE1PREFMX0VMRU1FTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTW9kYWwvdXNlTW9kYWwnXG5cbmltcG9ydCB7IENoaXAgfSBmcm9tICcuLi8uLi9hdG9tcy9DaGlwJ1xuaW1wb3J0IHsgTUFJQUlucHV0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQUlucHV0J1xuaW1wb3J0IHsgQ2hhdEZvb3RlckZhcXMgfSBmcm9tICcuL0NoYXRGb290ZXJGYXFzJ1xuXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgU3R5bGVkQ2hhdEZvb3RlciwgQ2hpcHNBbmRGYXFzUm93LCBGYXFzU2Nyb2xsV3JhcHBlciB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHtcbiAgQ3N2RmlsZUljb24sXG4gIE1ERmlsZUljb24sXG4gIERvY0ZpbGVJY29uLFxuICBEb2N4RmlsZUljb24sXG4gIFRleHRGaWxlSWNvbixcbiAgUGRmRmlsZUljb24sXG4gIEltYWdlRmlsZUljb24sXG4gIFhsc3hGaWxlSWNvbixcbiAgWGxzRmlsZUljb24sXG4gIE1wM0ZpbGVJY29uLFxuICBXYXZGaWxlSWNvbixcbiAgRmxhY0ZpbGVJY29uLFxuICBNNGFGaWxlSWNvbixcbiAgTXA0RmlsZUljb24sXG4gIE9nYUZpbGVJY29uLFxuICBPZ2dGaWxlSWNvbixcbiAgV2VibUZpbGVJY29uLFxufSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IEltYWdlUHJldmlldyB9IGZyb20gJy4uLy4uL2F0b21zL0ltYWdlUHJldmlldy9JbWFnZVByZXZpZXcnXG5pbXBvcnQgeyBwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaW1hZ2VQcmVwcm9jZXNzb3InXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudEZpbGUgPSB7XG4gIGZpbGU6IEZpbGVcbiAgb3JpZ2luYWxGaWxlPzogRmlsZVxuICB1cmxfdGh1bWJuYWlsPzogc3RyaW5nXG4gIHVybF9vcmlnaW5hbD86IHN0cmluZ1xuICB1cmxfZmlsZT86IHN0cmluZ1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBzaXplOiBudW1iZXJcbiAgdHlwZTogc3RyaW5nXG4gIGljb24/OiBSZWFjdE5vZGVcbiAgZXh0Pzogc3RyaW5nXG4gIHN0YXR1cz86ICdwZW5kaW5nJyB8ICdwcm9jZXNzaW5nJyB8ICdkb25lJyB8ICdmYWlsZWQnIHwgJ3N0YXJ0ZWQnXG59XG5cbnR5cGUgQ2hhdEZvb3RlclByb3BzID0ge1xuICBpdGVtcz86IHN0cmluZ1tdXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICBpc1N0cmVhbWluZz86IGJvb2xlYW5cbiAgaXNXcml0aW5nPzogYm9vbGVhblxuICBvblNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nLCBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nKSA9PiB2b2lkXG4gIG9uU3RvcEdlbmVyYXRpb24/OiAoKSA9PiB2b2lkXG4gIGNoYXRJZD86IHN0cmluZyB8IG51bGxcbiAgbmV3Q2hhdEtleT86IG51bWJlclxufVxuXG5leHBvcnQgY29uc3QgSWNvbkJ5RmlsZVR5cGUgPSB7XG4gICd0ZXh0L3BsYWluJzogPFRleHRGaWxlSWNvbiAvPixcbiAgJ3RleHQveC1tYXJrZG93bic6IDxNREZpbGVJY29uIC8+LFxuICAndGV4dC9jc3YnOiA8Q3N2RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnOiA8RG9jRmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc6IDxEb2N4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9wZGYnOiA8UGRmRmlsZUljb24gLz4sXG4gICdpbWFnZS9wbmcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL2pwZWcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL2pwZyc6IDxJbWFnZUZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnOiA8WGxzeEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJzogPFhsc0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vbXBlZyc6IDxNcDNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL2ZsYWMnOiA8RmxhY0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vbXA0JzogPE1wNEZpbGVJY29uIC8+LFxuICAnYXVkaW8vbTRhJzogPE00YUZpbGVJY29uIC8+LFxuICAnYXVkaW8vb2dnJzogPE9nZ0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vb2dhJzogPE9nYUZpbGVJY29uIC8+LFxuICAnYXVkaW8vd2F2JzogPFdhdkZpbGVJY29uIC8+LFxuICAnYXVkaW8vd2VibSc6IDxXZWJtRmlsZUljb24gLz4sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGF0Rm9vdGVyKHtcbiAgb25TZW5kTWVzc2FnZSxcbiAgaXRlbXMsXG4gIGRpc2FibGVkLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG59OiBDaGF0Rm9vdGVyUHJvcHMpIHtcbiAgY29uc3QgeyBwcm9qZWN0LCBhZ2VudCwgY2hpcHNQcm9qZWN0LCBjbGllbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgW2F0dGFjaG1lbnRzLCBzZXRBdHRhY2htZW50c10gPSB1c2VTdGF0ZTxBdHRhY2htZW50RmlsZVtdPihbXSlcbiAgY29uc3QgW2xvYWRpbmdNZXNzYWdlcywgc2V0TG9hZGluZ01lc3NhZ2VzXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IHJlcG9ydGVkRXZlbnQgPSB1c2VSZWYoZmFsc2UpXG5cbiAgLy8gdXNlRWZmZWN0IHRvIGxpc3RlbiBsb2FkaW5nTWVzc2FnZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UgPSAoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlcyhlLmRldGFpbC5sb2FkaW5nTWVzc2FnZXMpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1sb2FkaW5nLW1lc3NhZ2VzLWNoYW5nZWQnLCBoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UgYXMgRXZlbnRMaXN0ZW5lcilcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSBhcyBFdmVudExpc3RlbmVyKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gQ2xlYXIgYXR0YWNobWVudHMgd2hlbiBzZXNzaW9uIGNoYW5nZXMgKHVzZXIgc3dpdGNoZXMgdG8gYSBkaWZmZXJlbnQgY2hhdClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgc2V0QXR0YWNobWVudHMoW10pXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNoaXBJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpdGVtcykgcmV0dXJuIGl0ZW1zXG5cbiAgICBjb25zdCB0ZW1wSXRlbXM6IHN0cmluZ1tdID0gW11cblxuICAgIGlmIChhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50JyAmJiBjbGllbnQ/Lm5hbWUpIHtcbiAgICAgIHRlbXBJdGVtcy5wdXNoKGNsaWVudC5uYW1lKVxuICAgIH0gZWxzZSBpZiAoY2hpcHNQcm9qZWN0KSB7XG4gICAgICBpZiAoY2hpcHNQcm9qZWN0LmNsaWVudE5hbWUpIHRlbXBJdGVtcy5wdXNoKGNoaXBzUHJvamVjdC5jbGllbnROYW1lKVxuICAgICAgaWYgKGNoaXBzUHJvamVjdC5wcm9qZWN0TmFtZSkgdGVtcEl0ZW1zLnB1c2goY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocHJvamVjdD8uY2xpZW50Py5uYW1lKSB0ZW1wSXRlbXMucHVzaChwcm9qZWN0LmNsaWVudC5uYW1lKVxuICAgICAgaWYgKHByb2plY3Q/Lm5hbWUpIHRlbXBJdGVtcy5wdXNoKHByb2plY3QubmFtZSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcEl0ZW1zXG4gIH0sIFtpdGVtcywgcHJvamVjdCwgY2hpcHNQcm9qZWN0LCBhZ2VudD8uZW50aXR5LCBjbGllbnRdKVxuXG4gIGNvbnN0IG9uQ2hhbmdlID0gKCkgPT4ge1xuICAgIGlmIChyZXBvcnRlZEV2ZW50LmN1cnJlbnQpIHJldHVyblxuICAgIGV2ZW50KEVWRU5UUy5wbUFpVHlwZWRUZXh0LCB7XG4gICAgICBhZ2VudF90eXBlOiBhZ2VudD8udHlwZSxcbiAgICB9KVxuICAgIHJlcG9ydGVkRXZlbnQuY3VycmVudCA9IHRydWVcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gKG1lc3NhZ2U6IHN0cmluZywgbmV3QXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZykgPT4ge1xuICAgIGV2ZW50KEVWRU5UUy5haUNoYXRTZW5kLCB7XG4gICAgICBhZ2VudF90eXBlOiBhZ2VudD8udHlwZSxcbiAgICAgIGFnZW50X2lkOiBhZ2VudD8uaWQsXG4gICAgICBhZ2VudF9uYW1lOiBhZ2VudD8ubmFtZSxcbiAgICB9KVxuICAgIG9uU2VuZE1lc3NhZ2UobWVzc2FnZSwgbmV3QXR0YWNobWVudHMsIGZhcUlkKVxuICAgIHNldEF0dGFjaG1lbnRzKFtdKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0RmFxID0gKG1lc3NhZ2U6IHN0cmluZywgZmFxSWQ6IHN0cmluZykgPT4ge1xuICAgIG9uU2VuZE1lc3NhZ2UobWVzc2FnZSwgdW5kZWZpbmVkLCBmYXFJZClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVBdHRhY2ggPSBhc3luYyAoZmlsZTogRmlsZSkgPT4ge1xuICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICBjb25zdCBpc0ltYWdlQnlFeHRlbnNpb24gPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZyddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pXG4gICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgIGNvbnN0IGlzSW1hZ2UgPSBpc0ltYWdlQnlNaW1lICYmIGlzSW1hZ2VCeUV4dGVuc2lvblxuICAgIC8vIE1hcGVvIGRlIGV4dGVuc2nDs24gYSBpY29ubyBkaXJlY3RvIHBhcmEgY2Fzb3MgZXNwZWNpYWxlcyAoYXVkaW8vb2dnIHkgYXVkaW8vbXA0KVxuICAgIGNvbnN0IGV4dGVuc2lvblRvSWNvbjogUmVjb3JkPHN0cmluZywgUmVhY3ROb2RlPiA9IHtcbiAgICAgICcub2dnJzogPE9nZ0ZpbGVJY29uIC8+LFxuICAgICAgJy5vZ2EnOiA8T2dhRmlsZUljb24gLz4sXG4gICAgICAnLm1wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgICAgICcubTRhJzogPE00YUZpbGVJY29uIC8+LFxuICAgIH1cblxuICAgIGxldCBpY29uID0gSWNvbkJ5RmlsZVR5cGVbZmlsZS50eXBlXVxuXG4gICAgLy8gU2kgZWwgdGlwbyBlcyBhdWRpby9vZ2cgbyBhdWRpby9tcDQsIHVzYXIgbGEgZXh0ZW5zacOzbiBwYXJhIGRldGVybWluYXIgZWwgaWNvbm9cbiAgICBpZiAoKGZpbGUudHlwZSA9PT0gJ2F1ZGlvL29nZycgfHwgZmlsZS50eXBlID09PSAnYXVkaW8vbXA0JykgJiYgZmlsZUV4dGVuc2lvbikge1xuICAgICAgaWNvbiA9IGV4dGVuc2lvblRvSWNvbltmaWxlRXh0ZW5zaW9uXSB8fCBpY29uXG4gICAgfVxuXG4gICAgaWYgKCFpY29uKSB7XG4gICAgICBjb25zdCBleHRlbnNpb25Ub01pbWVUeXBlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICAnLnR4dCc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgJy5tZCc6ICd0ZXh0L3gtbWFya2Rvd24nLFxuICAgICAgICAnLmNzdic6ICd0ZXh0L2NzdicsXG4gICAgICAgICcuZG9jJzogJ2FwcGxpY2F0aW9uL21zd29yZCcsXG4gICAgICAgICcuZG9jeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICAgICAgICcucGRmJzogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAgICAgICcueGxzeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgICAgICcueGxzJzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAgICcuZmxhYyc6ICdhdWRpby9mbGFjJyxcbiAgICAgICAgJy5tNGEnOiAnYXVkaW8vbTRhJyxcbiAgICAgICAgJy5tcDMnOiAnYXVkaW8vbXBlZycsXG4gICAgICAgICcubXA0JzogJ2F1ZGlvL21wNCcsXG4gICAgICAgICcub2dhJzogJ2F1ZGlvL29nYScsXG4gICAgICAgICcub2dnJzogJ2F1ZGlvL29nZycsXG4gICAgICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgICAgICcud2VibSc6ICdhdWRpby93ZWJtJyxcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbWVUeXBlQnlFeHRlbnNpb24gPSBleHRlbnNpb25Ub01pbWVUeXBlW2ZpbGVFeHRlbnNpb25dXG4gICAgICBpZiAobWltZVR5cGVCeUV4dGVuc2lvbikge1xuICAgICAgICBpY29uID0gSWNvbkJ5RmlsZVR5cGVbbWltZVR5cGVCeUV4dGVuc2lvbl1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGljb24gPSA8QXR0YWNoIGNvbG9yPVwicmdiYSgxMzUsIDY0LCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgfVxuICAgIH1cbiAgICBsZXQgcHJvY2Vzc2VkRmlsZSA9IGZpbGVcblxuICAgIC8vIFNpIGVzIHVuYSBpbWFnZW4sIHByZS1wcm9jZXNhcmxhIHBhcmEgZWwgYmFja2VuZFxuICAgIGlmIChpc0ltYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBQcm9jZXNhbmRvIGltYWdlblxuICAgICAgICBwcm9jZXNzZWRGaWxlID0gYXdhaXQgcHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZChmaWxlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJlLXByb2Nlc2FuZG8gaW1hZ2VuOicsIGVycm9yKVxuICAgICAgICAvLyBDb250aW51YXIgY29uIGVsIGFyY2hpdm8gb3JpZ2luYWwgc2kgaGF5IGVycm9yXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGltYWdlVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKVxuXG4gICAgICBpY29uID0gPEltYWdlUHJldmlldyBzcmM9e2ltYWdlVXJsfSBhbHQ9e2ZpbGUubmFtZX0gd2lkdGg9XCI2M3B4XCIgaGVpZ2h0PVwiNjNweFwiIGJvcmRlclJhZGl1cz1cIjZweFwiIC8+XG4gICAgfVxuXG4gICAgY29uc3QgbmV3QXR0YWNobWVudDogQXR0YWNobWVudEZpbGUgPSB7XG4gICAgICBmaWxlOiBwcm9jZXNzZWRGaWxlLFxuICAgICAgb3JpZ2luYWxGaWxlOiBpc0ltYWdlID8gZmlsZSA6IHVuZGVmaW5lZCxcbiAgICAgIGlkOiBgJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxcbiAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgIHNpemU6IHByb2Nlc3NlZEZpbGUuc2l6ZSxcbiAgICAgIHR5cGU6IHByb2Nlc3NlZEZpbGUudHlwZSxcbiAgICAgIGljb24sXG4gICAgfVxuXG4gICAgc2V0QXR0YWNobWVudHMocHJldiA9PiBbLi4ucHJldiwgbmV3QXR0YWNobWVudF0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGZpbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbmV3QXR0YWNobWVudHMgPSBhdHRhY2htZW50cy5maWx0ZXIoYXR0YWNobWVudCA9PiBhdHRhY2htZW50LmlkICE9PSBmaWxlSWQpXG4gICAgc2V0QXR0YWNobWVudHMobmV3QXR0YWNobWVudHMpXG4gIH1cblxuICBjb25zdCBpc01BSUEgPSB2YWxpZGF0ZUlzTWFpYShhZ2VudCBhcyBBZ2VudClcbiAgY29uc3QgY2hpcHNTY3JvbGxSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ2hhdEZvb3Rlcj5cbiAgICAgIHtpc01BSUEgJiYgIWxvYWRpbmdNZXNzYWdlcyAmJiAoXG4gICAgICAgIDxDaGlwc0FuZEZhcXNSb3c+XG4gICAgICAgICAgeyEhY2hpcEl0ZW1zLmxlbmd0aCAmJiA8Q2hpcCBpdGVtcz17Y2hpcEl0ZW1zfSAvPn1cbiAgICAgICAgICA8RmFxc1Njcm9sbFdyYXBwZXIgcmVmPXtjaGlwc1Njcm9sbFJlZn0+XG4gICAgICAgICAgICA8Q2hhdEZvb3RlckZhcXMgb25TZWxlY3RGYXE9e2hhbmRsZVNlbGVjdEZhcX0gc2Nyb2xsQ29udGFpbmVyUmVmPXtjaGlwc1Njcm9sbFJlZn0gLz5cbiAgICAgICAgICA8L0ZhcXNTY3JvbGxXcmFwcGVyPlxuICAgICAgICA8L0NoaXBzQW5kRmFxc1Jvdz5cbiAgICAgICl9XG4gICAgICA8TUFJQUlucHV0XG4gICAgICAgIG9uU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICBjbGFzc05hbWU9e01PREFMX0VMRU1FTlRTfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHBsYWNlaG9sZGVyPXthZ2VudD8uaW5wdXRfcGxhY2Vob2xkZXIgfHwgdCgnY2hhdC5mb290ZXIucGxhY2Vob2xkZXInKX1cbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICBvbkZpbGVBdHRhY2g9e2hhbmRsZUZpbGVBdHRhY2h9XG4gICAgICAgIG9uRGVsZXRlQXR0YWNobWVudD17aGFuZGxlRGVsZXRlQXR0YWNobWVudH1cbiAgICAgICAgYXR0YWNobWVudHM9e2F0dGFjaG1lbnRzXG4gICAgICAgICAgLmZpbHRlcihhdHQgPT4gISFhdHQuZmlsZSlcbiAgICAgICAgICAubWFwKGF0dCA9PiAoe1xuICAgICAgICAgICAgZmlsZTogYXR0LmZpbGUhLFxuICAgICAgICAgICAgb3JpZ2luYWxGaWxlOiBhdHQub3JpZ2luYWxGaWxlLFxuICAgICAgICAgICAgaWQ6IGF0dC5pZCxcbiAgICAgICAgICAgIG5hbWU6IGF0dC5uYW1lLFxuICAgICAgICAgICAgc2l6ZTogdHlwZW9mIGF0dC5zaXplID09PSAnbnVtYmVyJyA/IGF0dC5zaXplIDogTnVtYmVyKGF0dC5zaXplKSB8fCAwLFxuICAgICAgICAgICAgdHlwZTogYXR0LnR5cGUsXG4gICAgICAgICAgICBpY29uOiBhdHQuaWNvbixcbiAgICAgICAgICB9KSl9XG4gICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgaXNXcml0aW5nPXtpc1dyaXRpbmd9XG4gICAgICAgIG9uU3RvcEdlbmVyYXRpb249e29uU3RvcEdlbmVyYXRpb259XG4gICAgICAgIGNoYXRJZD17Y2hhdElkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgIC8+XG4gICAgPC9TdHlsZWRDaGF0Rm9vdGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQW9CQSxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLFFBQVEsT0FBTztBQUN2RSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7QUFFakUsU0FBU0MsSUFBSSxRQUFRLGtCQUFrQjtBQUN2QyxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBQ2pELFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7QUFFakQsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLGdCQUFnQixFQUFFQyxlQUFlLEVBQUVDLGlCQUFpQixRQUFRLFVBQVU7QUFDL0UsU0FDRUMsV0FBVyxFQUNYQyxVQUFVLEVBQ1ZDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsYUFBYSxFQUNiQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsV0FBVyxF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
273
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIkNoaXAiLCJNQUlBSW5wdXQiLCJDaGF0Rm9vdGVyRmFxcyIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiQ2hpcHNBbmRGYXFzUm93IiwiQ3N2RmlsZUljb24iLCJNREZpbGVJY29uIiwiRG9jRmlsZUljb24iLCJEb2N4RmlsZUljb24iLCJUZXh0RmlsZUljb24iLCJQZGZGaWxlSWNvbiIsIkltYWdlRmlsZUljb24iLCJYbHN4RmlsZUljb24iLCJYbHNGaWxlSWNvbiIsIk1wM0ZpbGVJY29uIiwiV2F2RmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsIkltYWdlUHJldmlldyIsInByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQiLCJ2YWxpZGF0ZUlzTWFpYSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJJY29uQnlGaWxlVHlwZSIsIkNoYXRGb290ZXIiLCJfcmVmIiwib25TZW5kTWVzc2FnZSIsIml0ZW1zIiwiZGlzYWJsZWQiLCJpc1N0cmVhbWluZyIsImlzV3JpdGluZyIsIm9uU3RvcEdlbmVyYXRpb24iLCJjaGF0SWQiLCJuZXdDaGF0S2V5IiwiX3JlZiRzaG93RmFxcyIsInNob3dGYXFzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJwcm9qZWN0IiwiYWdlbnQiLCJjaGlwc1Byb2plY3QiLCJjbGllbnQiLCJfdXNlVCIsInQiLCJldmVudCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImF0dGFjaG1lbnRzIiwic2V0QXR0YWNobWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmdNZXNzYWdlcyIsInNldExvYWRpbmdNZXNzYWdlcyIsInJlcG9ydGVkRXZlbnQiLCJoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UiLCJlIiwiZGV0YWlsIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVNlc3Npb25DaGFuZ2UiLCJjaGlwSXRlbXMiLCJ0ZW1wSXRlbXMiLCJlbnRpdHkiLCJuYW1lIiwicHVzaCIsImNsaWVudE5hbWUiLCJwcm9qZWN0TmFtZSIsIl9wcm9qZWN0JGNsaWVudCIsIm9uQ2hhbmdlIiwiY3VycmVudCIsInBtQWlUeXBlZFRleHQiLCJhZ2VudF90eXBlIiwidHlwZSIsImhhbmRsZVNlbmRNZXNzYWdlIiwibWVzc2FnZSIsIm5ld0F0dGFjaG1lbnRzIiwiZmFxSWQiLCJhaUNoYXRTZW5kIiwiYWdlbnRfaWQiLCJpZCIsImFnZW50X25hbWUiLCJoYW5kbGVTZWxlY3RGYXEiLCJ1bmRlZmluZWQiLCJoYW5kbGVGaWxlQXR0YWNoIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJmaWxlTmFtZVBhcnRzIiwiZmlsZUV4dGVuc2lvbiIsImlzSW1hZ2VCeUV4dGVuc2lvbiIsImlzSW1hZ2VCeU1pbWUiLCJpc0ltYWdlIiwiZXh0ZW5zaW9uVG9JY29uIiwiaWNvbiIsImV4dGVuc2lvblRvTWltZVR5cGUiLCJtaW1lVHlwZUJ5RXh0ZW5zaW9uIiwicHJvY2Vzc2VkRmlsZSIsImltYWdlVXJsIiwibmV3QXR0YWNobWVudCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzcGxpdCIsImxlbmd0aCIsImNvbmNhdCIsInBvcCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJzdGFydHNXaXRoIiwiY29sb3IiLCJ3aWR0aCIsImhlaWdodCIsInNlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJzcmMiLCJhbHQiLCJib3JkZXJSYWRpdXMiLCJvcmlnaW5hbEZpbGUiLCJEYXRlIiwibm93IiwiTWF0aCIsInJhbmRvbSIsInNpemUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlSWQiLCJmaWx0ZXIiLCJhdHRhY2htZW50IiwiaXNNQUlBIiwiY2hpbGRyZW4iLCJvblNlbGVjdEZhcSIsImNsYXNzTmFtZSIsInBsYWNlaG9sZGVyIiwiaW5wdXRfcGxhY2Vob2xkZXIiLCJvbkZpbGVBdHRhY2giLCJvbkRlbGV0ZUF0dGFjaG1lbnQiLCJhdHQiLCJtYXAiLCJOdW1iZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG5pbXBvcnQgeyBSZWFjdE5vZGUsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQXR0YWNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXR0YWNoJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcblxuaW1wb3J0IHsgQ2hpcCB9IGZyb20gJy4uLy4uL2F0b21zL0NoaXAnXG5pbXBvcnQgeyBNQUlBSW5wdXQgfSBmcm9tICcuLi8uLi9hdG9tcy9NQUlBSW5wdXQnXG5pbXBvcnQgeyBDaGF0Rm9vdGVyRmFxcyB9IGZyb20gJy4vQ2hhdEZvb3RlckZhcXMnXG5cbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBTdHlsZWRDaGF0Rm9vdGVyLCBDaGlwc0FuZEZhcXNSb3cgfSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7XG4gIENzdkZpbGVJY29uLFxuICBNREZpbGVJY29uLFxuICBEb2NGaWxlSWNvbixcbiAgRG9jeEZpbGVJY29uLFxuICBUZXh0RmlsZUljb24sXG4gIFBkZkZpbGVJY29uLFxuICBJbWFnZUZpbGVJY29uLFxuICBYbHN4RmlsZUljb24sXG4gIFhsc0ZpbGVJY29uLFxuICBNcDNGaWxlSWNvbixcbiAgV2F2RmlsZUljb24sXG4gIEZsYWNGaWxlSWNvbixcbiAgTTRhRmlsZUljb24sXG4gIE1wNEZpbGVJY29uLFxuICBPZ2FGaWxlSWNvbixcbiAgT2dnRmlsZUljb24sXG4gIFdlYm1GaWxlSWNvbixcbn0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBJbWFnZVByZXZpZXcgfSBmcm9tICcuLi8uLi9hdG9tcy9JbWFnZVByZXZpZXcvSW1hZ2VQcmV2aWV3J1xuaW1wb3J0IHsgcHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ltYWdlUHJlcHJvY2Vzc29yJ1xuaW1wb3J0IHsgdmFsaWRhdGVJc01haWEgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlscy92YWxpZGF0ZUlzTWFpYSdcbmltcG9ydCB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgdXJsX3RodW1ibmFpbD86IHN0cmluZ1xuICB1cmxfb3JpZ2luYWw/OiBzdHJpbmdcbiAgdXJsX2ZpbGU/OiBzdHJpbmdcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG4gIGV4dD86IHN0cmluZ1xuICBzdGF0dXM/OiAncGVuZGluZycgfCAncHJvY2Vzc2luZycgfCAnZG9uZScgfCAnZmFpbGVkJyB8ICdzdGFydGVkJ1xufVxuXG50eXBlIENoYXRGb290ZXJQcm9wcyA9IHtcbiAgaXRlbXM/OiBzdHJpbmdbXVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgaXNTdHJlYW1pbmc/OiBib29sZWFuXG4gIGlzV3JpdGluZz86IGJvb2xlYW5cbiAgb25TZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLCBmYXFJZD86IHN0cmluZykgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCkgPT4gdm9pZFxuICBjaGF0SWQ/OiBzdHJpbmcgfCBudWxsXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgLyoqIFNpIGVzIGZhbHNlLCBubyBzZSBtdWVzdHJhIGxhIGZpbGEgZGUgY2hpcHMgbmkgZWwgYm90w7NuIGRlIEZBUXMuIERlYmUgc2VyIHRydWUgY3VhbmRvIGN1cnJlbnRPcHRpb24gPT09IGNoYXQuICovXG4gIHNob3dGYXFzPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgSWNvbkJ5RmlsZVR5cGUgPSB7XG4gICd0ZXh0L3BsYWluJzogPFRleHRGaWxlSWNvbiAvPixcbiAgJ3RleHQveC1tYXJrZG93bic6IDxNREZpbGVJY29uIC8+LFxuICAndGV4dC9jc3YnOiA8Q3N2RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnOiA8RG9jRmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc6IDxEb2N4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9wZGYnOiA8UGRmRmlsZUljb24gLz4sXG4gICdpbWFnZS9wbmcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL2pwZWcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL2pwZyc6IDxJbWFnZUZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnOiA8WGxzeEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJzogPFhsc0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vbXBlZyc6IDxNcDNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL2ZsYWMnOiA8RmxhY0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vbXA0JzogPE1wNEZpbGVJY29uIC8+LFxuICAnYXVkaW8vbTRhJzogPE00YUZpbGVJY29uIC8+LFxuICAnYXVkaW8vb2dnJzogPE9nZ0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vb2dhJzogPE9nYUZpbGVJY29uIC8+LFxuICAnYXVkaW8vd2F2JzogPFdhdkZpbGVJY29uIC8+LFxuICAnYXVkaW8vd2VibSc6IDxXZWJtRmlsZUljb24gLz4sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGF0Rm9vdGVyKHtcbiAgb25TZW5kTWVzc2FnZSxcbiAgaXRlbXMsXG4gIGRpc2FibGVkLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG4gIHNob3dGYXFzID0gdHJ1ZSxcbn06IENoYXRGb290ZXJQcm9wcykge1xuICBjb25zdCB7IHByb2plY3QsIGFnZW50LCBjaGlwc1Byb2plY3QsIGNsaWVudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBbYXR0YWNobWVudHMsIHNldEF0dGFjaG1lbnRzXSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlW10+KFtdKVxuICBjb25zdCBbbG9hZGluZ01lc3NhZ2VzLCBzZXRMb2FkaW5nTWVzc2FnZXNdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgcmVwb3J0ZWRFdmVudCA9IHVzZVJlZihmYWxzZSlcblxuICAvLyB1c2VFZmZlY3QgdG8gbGlzdGVuIGxvYWRpbmdNZXNzYWdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSA9IChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGUuZGV0YWlsLmxvYWRpbmdNZXNzYWdlcylcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSBhcyBFdmVudExpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgfVxuICB9LCBbXSlcblxuICAvLyBDbGVhciBhdHRhY2htZW50cyB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBzZXRBdHRhY2htZW50cyhbXSlcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgY2hpcEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGl0ZW1zKSByZXR1cm4gaXRlbXNcblxuICAgIGNvbnN0IHRlbXBJdGVtczogc3RyaW5nW10gPSBbXVxuXG4gICAgaWYgKGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnICYmIGNsaWVudD8ubmFtZSkge1xuICAgICAgdGVtcEl0ZW1zLnB1c2goY2xpZW50Lm5hbWUpXG4gICAgfSBlbHNlIGlmIChjaGlwc1Byb2plY3QpIHtcbiAgICAgIGlmIChjaGlwc1Byb2plY3QuY2xpZW50TmFtZSkgdGVtcEl0ZW1zLnB1c2goY2hpcHNQcm9qZWN0LmNsaWVudE5hbWUpXG4gICAgICBpZiAoY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lKSB0ZW1wSXRlbXMucHVzaChjaGlwc1Byb2plY3QucHJvamVjdE5hbWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9qZWN0Py5jbGllbnQ/Lm5hbWUpIHRlbXBJdGVtcy5wdXNoKHByb2plY3QuY2xpZW50Lm5hbWUpXG4gICAgICBpZiAocHJvamVjdD8ubmFtZSkgdGVtcEl0ZW1zLnB1c2gocHJvamVjdC5uYW1lKVxuICAgIH1cblxuICAgIHJldHVybiB0ZW1wSXRlbXNcbiAgfSwgW2l0ZW1zLCBwcm9qZWN0LCBjaGlwc1Byb2plY3QsIGFnZW50Py5lbnRpdHksIGNsaWVudF0pXG5cbiAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKHJlcG9ydGVkRXZlbnQuY3VycmVudCkgcmV0dXJuXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlUeXBlZFRleHQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFnZW50Py50eXBlLFxuICAgIH0pXG4gICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gdHJ1ZVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSAobWVzc2FnZTogc3RyaW5nLCBuZXdBdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sIGZhcUlkPzogc3RyaW5nKSA9PiB7XG4gICAgZXZlbnQoRVZFTlRTLmFpQ2hhdFNlbmQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFnZW50Py50eXBlLFxuICAgICAgYWdlbnRfaWQ6IGFnZW50Py5pZCxcbiAgICAgIGFnZW50X25hbWU6IGFnZW50Py5uYW1lLFxuICAgIH0pXG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCBuZXdBdHRhY2htZW50cywgZmFxSWQpXG4gICAgc2V0QXR0YWNobWVudHMoW10pXG4gIH1cblxuICBjb25zdCBoYW5kbGVTZWxlY3RGYXEgPSAobWVzc2FnZTogc3RyaW5nLCBmYXFJZDogc3RyaW5nKSA9PiB7XG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCB1bmRlZmluZWQsIGZhcUlkKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmlsZUF0dGFjaCA9IGFzeW5jIChmaWxlOiBGaWxlKSA9PiB7XG4gICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lUGFydHMubGVuZ3RoID4gMSA/IGAuJHtmaWxlTmFtZVBhcnRzLnBvcCgpPy50b0xvd2VyQ2FzZSgpfWAgOiAnJ1xuICAgIGNvbnN0IGlzSW1hZ2VCeUV4dGVuc2lvbiA9IFsnLnBuZycsICcuanBnJywgJy5qcGVnJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbilcbiAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gICAgY29uc3QgaXNJbWFnZSA9IGlzSW1hZ2VCeU1pbWUgJiYgaXNJbWFnZUJ5RXh0ZW5zaW9uXG4gICAgLy8gTWFwZW8gZGUgZXh0ZW5zacOzbiBhIGljb25vIGRpcmVjdG8gcGFyYSBjYXNvcyBlc3BlY2lhbGVzIChhdWRpby9vZ2cgeSBhdWRpby9tcDQpXG4gICAgY29uc3QgZXh0ZW5zaW9uVG9JY29uOiBSZWNvcmQ8c3RyaW5nLCBSZWFjdE5vZGU+ID0ge1xuICAgICAgJy5vZ2cnOiA8T2dnRmlsZUljb24gLz4sXG4gICAgICAnLm9nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgICAgICcubXA0JzogPE1wNEZpbGVJY29uIC8+LFxuICAgICAgJy5tNGEnOiA8TTRhRmlsZUljb24gLz4sXG4gICAgfVxuXG4gICAgbGV0IGljb24gPSBJY29uQnlGaWxlVHlwZVtmaWxlLnR5cGVdXG5cbiAgICAvLyBTaSBlbCB0aXBvIGVzIGF1ZGlvL29nZyBvIGF1ZGlvL21wNCwgdXNhciBsYSBleHRlbnNpw7NuIHBhcmEgZGV0ZXJtaW5hciBlbCBpY29ub1xuICAgIGlmICgoZmlsZS50eXBlID09PSAnYXVkaW8vb2dnJyB8fCBmaWxlLnR5cGUgPT09ICdhdWRpby9tcDQnKSAmJiBmaWxlRXh0ZW5zaW9uKSB7XG4gICAgICBpY29uID0gZXh0ZW5zaW9uVG9JY29uW2ZpbGVFeHRlbnNpb25dIHx8IGljb25cbiAgICB9XG5cbiAgICBpZiAoIWljb24pIHtcbiAgICAgIGNvbnN0IGV4dGVuc2lvblRvTWltZVR5cGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICcudHh0JzogJ3RleHQvcGxhaW4nLFxuICAgICAgICAnLm1kJzogJ3RleHQveC1tYXJrZG93bicsXG4gICAgICAgICcuY3N2JzogJ3RleHQvY3N2JyxcbiAgICAgICAgJy5kb2MnOiAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAgICAgJy5kb2N4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcbiAgICAgICAgJy5wZGYnOiAnYXBwbGljYXRpb24vcGRmJyxcbiAgICAgICAgJy54bHN4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICAgICAgJy54bHMnOiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAgICAgJy5mbGFjJzogJ2F1ZGlvL2ZsYWMnLFxuICAgICAgICAnLm00YSc6ICdhdWRpby9tNGEnLFxuICAgICAgICAnLm1wMyc6ICdhdWRpby9tcGVnJyxcbiAgICAgICAgJy5tcDQnOiAnYXVkaW8vbXA0JyxcbiAgICAgICAgJy5vZ2EnOiAnYXVkaW8vb2dhJyxcbiAgICAgICAgJy5vZ2cnOiAnYXVkaW8vb2dnJyxcbiAgICAgICAgJy53YXYnOiAnYXVkaW8vd2F2JyxcbiAgICAgICAgJy53ZWJtJzogJ2F1ZGlvL3dlYm0nLFxuICAgICAgfVxuICAgICAgY29uc3QgbWltZVR5cGVCeUV4dGVuc2lvbiA9IGV4dGVuc2lvblRvTWltZVR5cGVbZmlsZUV4dGVuc2lvbl1cbiAgICAgIGlmIChtaW1lVHlwZUJ5RXh0ZW5zaW9uKSB7XG4gICAgICAgIGljb24gPSBJY29uQnlGaWxlVHlwZVttaW1lVHlwZUJ5RXh0ZW5zaW9uXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWNvbiA9IDxBdHRhY2ggY29sb3I9XCJyZ2JhKDEzNSwgNjQsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBwcm9jZXNzZWRGaWxlID0gZmlsZVxuXG4gICAgLy8gU2kgZXMgdW5hIGltYWdlbiwgcHJlLXByb2Nlc2FybGEgcGFyYSBlbCBiYWNrZW5kXG4gICAgaWYgKGlzSW1hZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFByb2Nlc2FuZG8gaW1hZ2VuXG4gICAgICAgIHByb2Nlc3NlZEZpbGUgPSBhd2FpdCBwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kKGZpbGUpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwcmUtcHJvY2VzYW5kbyBpbWFnZW46JywgZXJyb3IpXG4gICAgICAgIC8vIENvbnRpbnVhciBjb24gZWwgYXJjaGl2byBvcmlnaW5hbCBzaSBoYXkgZXJyb3JcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW1hZ2VVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpXG5cbiAgICAgIGljb24gPSA8SW1hZ2VQcmV2aWV3IHNyYz17aW1hZ2VVcmx9IGFsdD17ZmlsZS5uYW1lfSB3aWR0aD1cIjYzcHhcIiBoZWlnaHQ9XCI2M3B4XCIgYm9yZGVyUmFkaXVzPVwiNnB4XCIgLz5cbiAgICB9XG5cbiAgICBjb25zdCBuZXdBdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSA9IHtcbiAgICAgIGZpbGU6IHByb2Nlc3NlZEZpbGUsXG4gICAgICBvcmlnaW5hbEZpbGU6IGlzSW1hZ2UgPyBmaWxlIDogdW5kZWZpbmVkLFxuICAgICAgaWQ6IGAke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLFxuICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgc2l6ZTogcHJvY2Vzc2VkRmlsZS5zaXplLFxuICAgICAgdHlwZTogcHJvY2Vzc2VkRmlsZS50eXBlLFxuICAgICAgaWNvbixcbiAgICB9XG5cbiAgICBzZXRBdHRhY2htZW50cyhwcmV2ID0+IFsuLi5wcmV2LCBuZXdBdHRhY2htZW50XSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBuZXdBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmZpbHRlcihhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQuaWQgIT09IGZpbGVJZClcbiAgICBzZXRBdHRhY2htZW50cyhuZXdBdHRhY2htZW50cylcbiAgfVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENoYXRGb290ZXI+XG4gICAgICB7aXNNQUlBICYmICFsb2FkaW5nTWVzc2FnZXMgJiYgKFxuICAgICAgICA8Q2hpcHNBbmRGYXFzUm93PlxuICAgICAgICAgIHshIWNoaXBJdGVtcy5sZW5ndGggJiYgPENoaXAgaXRlbXM9e2NoaXBJdGVtc30gLz59XG4gICAgICAgICAge3Nob3dGYXFzICYmIDxDaGF0Rm9vdGVyRmFxcyBvblNlbGVjdEZhcT17aGFuZGxlU2VsZWN0RmFxfSAvPn1cbiAgICAgICAgPC9DaGlwc0FuZEZhcXNSb3c+XG4gICAgICApfVxuICAgICAgPE1BSUFJbnB1dFxuICAgICAgICBvblNlbmRNZXNzYWdlPXtoYW5kbGVTZW5kTWVzc2FnZX1cbiAgICAgICAgY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU31cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBwbGFjZWhvbGRlcj17YWdlbnQ/LmlucHV0X3BsYWNlaG9sZGVyIHx8IHQoJ2NoYXQuZm9vdGVyLnBsYWNlaG9sZGVyJyl9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgb25GaWxlQXR0YWNoPXtoYW5kbGVGaWxlQXR0YWNofVxuICAgICAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ9e2hhbmRsZURlbGV0ZUF0dGFjaG1lbnR9XG4gICAgICAgIGF0dGFjaG1lbnRzPXthdHRhY2htZW50c1xuICAgICAgICAgIC5maWx0ZXIoYXR0ID0+ICEhYXR0LmZpbGUpXG4gICAgICAgICAgLm1hcChhdHQgPT4gKHtcbiAgICAgICAgICAgIGZpbGU6IGF0dC5maWxlISxcbiAgICAgICAgICAgIG9yaWdpbmFsRmlsZTogYXR0Lm9yaWdpbmFsRmlsZSxcbiAgICAgICAgICAgIGlkOiBhdHQuaWQsXG4gICAgICAgICAgICBuYW1lOiBhdHQubmFtZSxcbiAgICAgICAgICAgIHNpemU6IHR5cGVvZiBhdHQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHQuc2l6ZSA6IE51bWJlcihhdHQuc2l6ZSkgfHwgMCxcbiAgICAgICAgICAgIHR5cGU6IGF0dC50eXBlLFxuICAgICAgICAgICAgaWNvbjogYXR0Lmljb24sXG4gICAgICAgICAgfSkpfVxuICAgICAgICBpc1N0cmVhbWluZz17aXNTdHJlYW1pbmd9XG4gICAgICAgIGlzV3JpdGluZz17aXNXcml0aW5nfVxuICAgICAgICBvblN0b3BHZW5lcmF0aW9uPXtvblN0b3BHZW5lcmF0aW9ufVxuICAgICAgICBjaGF0SWQ9e2NoYXRJZCB8fCB1bmRlZmluZWR9XG4gICAgICAgIG5ld0NoYXRLZXk9e25ld0NoYXRLZXl9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkQ2hhdEZvb3Rlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFvQkEsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDdkUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBRWpFLFNBQVNDLElBQUksUUFBUSxrQkFBa0I7QUFDdkMsU0FBU0MsU0FBUyxRQUFRLHVCQUF1QjtBQUNqRCxTQUFTQyxjQUFjLFFBQVEsa0JBQWtCO0FBRWpELFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUMxRCxTQUFTQyxnQkFBZ0IsRUFBRUMsZUFBZSxRQUFRLFVBQVU7QUFDNUQsU0FDRUMsV0FBVyxFQUNYQyxVQUFVLEVBQ1ZDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsYUFBYSxFQUNiQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsV0FBVyxFQUNY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
@@ -1,184 +1,156 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import React, { useState, useEffect, useRef } from 'react';
3
- import { ArrowLeft } from '@projectcor/icons/lib/components/ArrowLeft';
4
- import colors from '@projectcor/theme/lib/base/colors';
2
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';
5
4
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
6
5
  import { useT } from '../../../hooks/useT';
7
- import { SCFaqsChip } from './ChatFooterFaqs.styles';
8
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
- var MOCK_FAQS_BY_CATEGORY = {
10
- projects: [{
11
- id: 'faq-proj-1',
12
- title: '¿Cuál es la rentabilidad de este proyecto?',
13
- category: 'projects'
14
- }, {
15
- id: 'faq-proj-2',
16
- title: '¿Cuáles son los avances de este proyecto?',
17
- category: 'projects'
18
- }, {
19
- id: 'faq-proj-3',
20
- title: '¿Cuál es el estado actual del proyecto?',
21
- category: 'projects'
22
- }, {
23
- id: 'faq-proj-4',
24
- title: 'Resumen del proyecto',
25
- category: 'projects'
26
- }],
27
- tasks: [{
28
- id: 'faq-task-1',
29
- title: '¿Cuáles son las tareas próximas a vencer?',
30
- category: 'tasks'
31
- }, {
32
- id: 'faq-task-2',
33
- title: '¿Qué tareas están atrasadas?',
34
- category: 'tasks'
35
- }, {
36
- id: 'faq-task-3',
37
- title: 'Listado de tareas asignadas',
38
- category: 'tasks'
39
- }, {
40
- id: 'faq-task-4',
41
- title: 'Tareas completadas este mes',
42
- category: 'tasks'
43
- }],
44
- hours: [{
45
- id: 'faq-hours-1',
46
- title: '¿Cuántas horas se han registrado?',
47
- category: 'hours'
48
- }, {
49
- id: 'faq-hours-2',
50
- title: 'Horas por recurso en el proyecto',
51
- category: 'hours'
52
- }, {
53
- id: 'faq-hours-3',
54
- title: 'Comparativa de horas estimadas vs reales',
55
- category: 'hours'
56
- }]
57
- };
58
- var FAQ_CATEGORIES = ['projects', 'tasks', 'hours'];
59
- export function ChatFooterFaqs(_ref) {
60
- var _MOCK_FAQS_BY_CATEGOR;
61
- var onSelectFaq = _ref.onSelectFaq,
62
- scrollContainerRef = _ref.scrollContainerRef;
6
+ import { useResizeListener } from '../../../hooks/useResize';
7
+ import { useGlobalContext } from '../../../context/global-context';
8
+ import { useFrequentlyAskedQuestions } from '../../../hooks/useFrequentlyAskedQuestions';
9
+ import { SCFaqsChip, SCFaqsTriggerWrapper, SCFaqsModalFrame, SCFaqsModalContent, SCFaqsCategoryHeader, SCFaqsModalItem, SCFaqsModalItemText } from './ChatFooterFaqs.styles';
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ function FaqModalItem(_ref) {
12
+ var faq = _ref.faq,
13
+ onClick = _ref.onClick;
14
+ var textRef = useRef(null);
15
+ var _useResizeListener = useResizeListener(textRef, [faq.title]),
16
+ showTooltip = _useResizeListener.showTooltip;
17
+ var content = /*#__PURE__*/_jsx(SCFaqsModalItem, {
18
+ type: "button",
19
+ onClick: onClick,
20
+ children: /*#__PURE__*/_jsx(SCFaqsModalItemText, {
21
+ ref: textRef,
22
+ children: faq.title
23
+ })
24
+ });
25
+ return /*#__PURE__*/_jsx(Tooltip, {
26
+ title: showTooltip ? faq.title : '',
27
+ children: content
28
+ });
29
+ }
30
+ var PREFERRED_CATEGORY_ORDER = ['hours', 'projects', 'tasks', 'undefined'];
31
+ export function ChatFooterFaqs(_ref2) {
32
+ var onSelectFaq = _ref2.onSelectFaq;
63
33
  var _useT = useT(),
64
- t = _useT.t;
65
- var _useState = useState(false),
66
- _useState2 = _slicedToArray(_useState, 2),
67
- showFaqs = _useState2[0],
68
- setShowFaqs = _useState2[1];
69
- var _useState3 = useState(null),
70
- _useState4 = _slicedToArray(_useState3, 2),
71
- selectedCategory = _useState4[0],
72
- setSelectedCategory = _useState4[1];
73
- var _useState5 = useState(false),
74
- _useState6 = _slicedToArray(_useState5, 2),
75
- isScrolling = _useState6[0],
76
- setIsScrolling = _useState6[1];
77
- var scrollTimeoutRef = useRef(null);
78
-
79
- // Mismo patrón que FrequentlyAskedQuestions: al hacer scroll no renderizamos el Tooltip
34
+ t = _useT.t,
35
+ i18n = _useT.i18n;
36
+ var _useGlobalContext = useGlobalContext(),
37
+ agent = _useGlobalContext.agent;
38
+ var lang = i18n.language === 'br' ? 'pt-br' : i18n.language;
39
+ var agentId = agent === null || agent === void 0 ? void 0 : agent.id;
40
+ var _useFrequentlyAskedQu = useFrequentlyAskedQuestions(agentId, lang),
41
+ faqs = _useFrequentlyAskedQu.faqs,
42
+ loading = _useFrequentlyAskedQu.loading,
43
+ error = _useFrequentlyAskedQu.error,
44
+ handleGetFrequentlyAskedQuestions = _useFrequentlyAskedQu.handleGetFrequentlyAskedQuestions;
45
+ var isCloneAgent = (agent === null || agent === void 0 ? void 0 : agent.type) === 'clone';
80
46
  useEffect(function () {
81
- var el = scrollContainerRef === null || scrollContainerRef === void 0 ? void 0 : scrollContainerRef.current;
82
- if (!el || !selectedCategory) return undefined;
83
- var handleScroll = function handleScroll() {
84
- setIsScrolling(true);
85
- if (scrollTimeoutRef.current) clearTimeout(scrollTimeoutRef.current);
86
- scrollTimeoutRef.current = setTimeout(function () {
87
- return setIsScrolling(false);
88
- }, 150);
89
- };
90
- el.addEventListener('scroll', handleScroll, {
91
- passive: true
47
+ if (isCloneAgent && agentId && lang) {
48
+ handleGetFrequentlyAskedQuestions({
49
+ agentId: agentId,
50
+ lang: lang
51
+ });
52
+ }
53
+ }, [isCloneAgent, agentId, lang, handleGetFrequentlyAskedQuestions]);
54
+ var faqsByCategory = useMemo(function () {
55
+ var grouped = {};
56
+ faqs.forEach(function (faq) {
57
+ var category = faq.category || 'undefined';
58
+ if (!grouped[category]) grouped[category] = [];
59
+ grouped[category].push(faq);
92
60
  });
93
- return function () {
94
- el.removeEventListener('scroll', handleScroll);
95
- if (scrollTimeoutRef.current) clearTimeout(scrollTimeoutRef.current);
96
- };
97
- }, [selectedCategory, scrollContainerRef]);
98
- var handleToggleFaqs = function handleToggleFaqs() {
99
- setShowFaqs(function (prev) {
100
- return !prev;
61
+ var orderedKeys = PREFERRED_CATEGORY_ORDER.filter(function (cat) {
62
+ var _grouped$cat;
63
+ return (_grouped$cat = grouped[cat]) === null || _grouped$cat === void 0 ? void 0 : _grouped$cat.length;
101
64
  });
102
- if (showFaqs) {
103
- setSelectedCategory(null);
104
- }
105
- };
106
- var handleCategoryClick = function handleCategoryClick(category) {
107
- setSelectedCategory(function (prev) {
108
- return prev === category ? null : category;
65
+ var rest = Object.keys(grouped).filter(function (cat) {
66
+ return !PREFERRED_CATEGORY_ORDER.includes(cat);
109
67
  });
110
- };
111
- var handleFaqClick = function handleFaqClick(faq) {
112
- onSelectFaq(faq.title, faq.id);
113
- };
114
- var itemsToShow = selectedCategory ? (_MOCK_FAQS_BY_CATEGOR = MOCK_FAQS_BY_CATEGORY[selectedCategory]) !== null && _MOCK_FAQS_BY_CATEGOR !== void 0 ? _MOCK_FAQS_BY_CATEGOR : [] : [];
115
-
116
- // Sin FAQs abierto: solo botón FAQs
117
- if (!showFaqs) {
118
- return /*#__PURE__*/_jsx(SCFaqsChip, {
119
- type: "button",
120
- onClick: handleToggleFaqs,
121
- "aria-pressed": false,
122
- children: "FAQs"
68
+ var order = [].concat(_toConsumableArray(orderedKeys), _toConsumableArray(rest));
69
+ order.forEach(function (cat) {
70
+ grouped[cat].sort(function (a, b) {
71
+ var _a$order, _b$order;
72
+ return ((_a$order = a.order) !== null && _a$order !== void 0 ? _a$order : 0) - ((_b$order = b.order) !== null && _b$order !== void 0 ? _b$order : 0);
73
+ });
123
74
  });
124
- }
125
-
126
- // FAQs abierto: categorías → [←] [Cat1] [Cat2] [Cat3]
127
- if (!selectedCategory) {
128
- return /*#__PURE__*/_jsxs(_Fragment, {
129
- children: [/*#__PURE__*/_jsx(SCFaqsChip, {
130
- type: "button",
131
- onClick: handleToggleFaqs,
132
- "aria-label": "Volver",
133
- children: /*#__PURE__*/_jsx(ArrowLeft, {
134
- color: colors.text.secondary,
135
- width: 12,
136
- height: 12,
137
- variant: "regular"
138
- })
139
- }), FAQ_CATEGORIES.map(function (cat) {
140
- return /*#__PURE__*/_jsx(SCFaqsChip, {
141
- type: "button",
142
- onClick: function onClick() {
143
- return handleCategoryClick(cat);
144
- },
145
- "aria-pressed": false,
146
- children: t("homeMenu.faq.categories.".concat(cat))
147
- }, cat);
148
- })]
75
+ return {
76
+ grouped: grouped,
77
+ order: order
78
+ };
79
+ }, [faqs]);
80
+ var _useState = useState(false),
81
+ _useState2 = _slicedToArray(_useState, 2),
82
+ isOpen = _useState2[0],
83
+ setIsOpen = _useState2[1];
84
+ var wrapperRef = useRef(null);
85
+ var handleToggle = useCallback(function () {
86
+ setIsOpen(function (prev) {
87
+ return !prev;
149
88
  });
89
+ }, []);
90
+ var handleFaqClick = useCallback(function (faq) {
91
+ onSelectFaq(faq.title, faq.id);
92
+ setIsOpen(false);
93
+ }, [onSelectFaq]);
94
+ var handleEscape = useCallback(function (e) {
95
+ if (e.key === 'Escape') setIsOpen(false);
96
+ }, []);
97
+ var handleClickOutside = useCallback(function (e) {
98
+ var target = e.target;
99
+ if (wrapperRef.current && !wrapperRef.current.contains(target)) {
100
+ setIsOpen(false);
101
+ }
102
+ }, []);
103
+ useEffect(function () {
104
+ if (!isOpen) return undefined;
105
+ document.addEventListener('keydown', handleEscape, true);
106
+ var timeoutId = setTimeout(function () {
107
+ document.addEventListener('mousedown', handleClickOutside);
108
+ }, 0);
109
+ return function () {
110
+ document.removeEventListener('keydown', handleEscape, true);
111
+ document.removeEventListener('mousedown', handleClickOutside);
112
+ clearTimeout(timeoutId);
113
+ };
114
+ }, [isOpen, handleEscape, handleClickOutside]);
115
+ if (faqs.length === 0) {
116
+ return null;
150
117
  }
151
-
152
- // Categoría elegida: solo [← NombreCategoría] [Preguntas...] (sin flecha extra)
153
- return /*#__PURE__*/_jsxs(_Fragment, {
154
- children: [/*#__PURE__*/_jsxs(SCFaqsChip, {
118
+ return /*#__PURE__*/_jsxs(SCFaqsTriggerWrapper, {
119
+ ref: wrapperRef,
120
+ children: [/*#__PURE__*/_jsx(SCFaqsChip, {
155
121
  type: "button",
156
- onClick: function onClick() {
157
- return setSelectedCategory(null);
158
- },
159
- "aria-label": "Volver a categor\xEDas",
160
- children: [/*#__PURE__*/_jsx(ArrowLeft, {
161
- color: colors.text.secondary,
162
- width: 12,
163
- height: 12,
164
- variant: "solid"
165
- }), ' ', t("homeMenu.faq.categories.".concat(selectedCategory))]
166
- }), itemsToShow.map(function (faq) {
167
- return /*#__PURE__*/_jsx(SCFaqsChip, {
168
- type: "button",
169
- onClick: function onClick() {
170
- return handleFaqClick(faq);
171
- },
172
- children: isScrolling ? /*#__PURE__*/_jsx("span", {
173
- children: faq.title.length > 40 ? "".concat(faq.title.slice(0, 40), "\u2026") : faq.title
174
- }) : /*#__PURE__*/_jsx(Tooltip, {
175
- title: faq.title.length > 40 ? faq.title : '',
176
- children: /*#__PURE__*/_jsx("span", {
177
- children: faq.title.length > 40 ? "".concat(faq.title.slice(0, 40), "\u2026") : faq.title
178
- })
122
+ onClick: handleToggle,
123
+ "aria-expanded": isOpen,
124
+ "aria-haspopup": "true",
125
+ children: t('homeMenu.faq.title')
126
+ }), isOpen && /*#__PURE__*/_jsx(SCFaqsModalFrame, {
127
+ role: "dialog",
128
+ "aria-label": t('homeMenu.faq.title'),
129
+ children: /*#__PURE__*/_jsx(SCFaqsModalContent, {
130
+ children: !loading && !error && faqsByCategory.order.map(function (category) {
131
+ var _faqsByCategory$group;
132
+ var items = (_faqsByCategory$group = faqsByCategory.grouped[category]) !== null && _faqsByCategory$group !== void 0 ? _faqsByCategory$group : [];
133
+ if (items.length === 0) return null;
134
+ var categoryLabel = category === 'undefined' ? t('homeMenu.faq.categories.undefined') : t("homeMenu.faq.categories.".concat(category));
135
+ return /*#__PURE__*/_jsxs(React.Fragment, {
136
+ children: [/*#__PURE__*/_jsx(SCFaqsCategoryHeader, {
137
+ children: categoryLabel
138
+ }), items.map(function (faq) {
139
+ return /*#__PURE__*/_jsx(FaqModalItem, {
140
+ faq: {
141
+ id: faq.id,
142
+ title: faq.title,
143
+ category: faq.category || 'undefined'
144
+ },
145
+ onClick: function onClick() {
146
+ return handleFaqClick(faq);
147
+ }
148
+ }, faq.id);
149
+ })]
150
+ }, category);
179
151
  })
180
- }, faq.id);
152
+ })
181
153
  })]
182
154
  });
183
155
  }
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlUmVmIiwiQXJyb3dMZWZ0IiwiY29sb3JzIiwiVG9vbHRpcCIsInVzZVQiLCJTQ0ZhcXNDaGlwIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiTU9DS19GQVFTX0JZX0NBVEVHT1JZIiwicHJvamVjdHMiLCJpZCIsInRpdGxlIiwiY2F0ZWdvcnkiLCJ0YXNrcyIsImhvdXJzIiwiRkFRX0NBVEVHT1JJRVMiLCJDaGF0Rm9vdGVyRmFxcyIsIl9yZWYiLCJfTU9DS19GQVFTX0JZX0NBVEVHT1IiLCJvblNlbGVjdEZhcSIsInNjcm9sbENvbnRhaW5lclJlZiIsIl91c2VUIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNob3dGYXFzIiwic2V0U2hvd0ZhcXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlbGVjdGVkQ2F0ZWdvcnkiLCJzZXRTZWxlY3RlZENhdGVnb3J5IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc1Njcm9sbGluZyIsInNldElzU2Nyb2xsaW5nIiwic2Nyb2xsVGltZW91dFJlZiIsImVsIiwiY3VycmVudCIsInVuZGVmaW5lZCIsImhhbmRsZVNjcm9sbCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJhZGRFdmVudExpc3RlbmVyIiwicGFzc2l2ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVUb2dnbGVGYXFzIiwicHJldiIsImhhbmRsZUNhdGVnb3J5Q2xpY2siLCJoYW5kbGVGYXFDbGljayIsImZhcSIsIml0ZW1zVG9TaG93IiwidHlwZSIsIm9uQ2xpY2siLCJjaGlsZHJlbiIsImNvbG9yIiwidGV4dCIsInNlY29uZGFyeSIsIndpZHRoIiwiaGVpZ2h0IiwidmFyaWFudCIsIm1hcCIsImNhdCIsImNvbmNhdCIsImxlbmd0aCIsInNsaWNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3RlckZhcXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEFycm93TGVmdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Fycm93TGVmdCdcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBTQ0ZhcXNDaGlwIH0gZnJvbSAnLi9DaGF0Rm9vdGVyRmFxcy5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIEZhcUl0ZW0gPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZ1xuICBjYXRlZ29yeTogc3RyaW5nXG59XG5cbmNvbnN0IE1PQ0tfRkFRU19CWV9DQVRFR09SWTogUmVjb3JkPHN0cmluZywgRmFxSXRlbVtdPiA9IHtcbiAgcHJvamVjdHM6IFtcbiAgICB7IGlkOiAnZmFxLXByb2otMScsIHRpdGxlOiAnwr9DdcOhbCBlcyBsYSByZW50YWJpbGlkYWQgZGUgZXN0ZSBwcm95ZWN0bz8nLCBjYXRlZ29yeTogJ3Byb2plY3RzJyB9LFxuICAgIHsgaWQ6ICdmYXEtcHJvai0yJywgdGl0bGU6ICfCv0N1w6FsZXMgc29uIGxvcyBhdmFuY2VzIGRlIGVzdGUgcHJveWVjdG8/JywgY2F0ZWdvcnk6ICdwcm9qZWN0cycgfSxcbiAgICB7IGlkOiAnZmFxLXByb2otMycsIHRpdGxlOiAnwr9DdcOhbCBlcyBlbCBlc3RhZG8gYWN0dWFsIGRlbCBwcm95ZWN0bz8nLCBjYXRlZ29yeTogJ3Byb2plY3RzJyB9LFxuICAgIHsgaWQ6ICdmYXEtcHJvai00JywgdGl0bGU6ICdSZXN1bWVuIGRlbCBwcm95ZWN0bycsIGNhdGVnb3J5OiAncHJvamVjdHMnIH0sXG4gIF0sXG4gIHRhc2tzOiBbXG4gICAgeyBpZDogJ2ZhcS10YXNrLTEnLCB0aXRsZTogJ8K/Q3XDoWxlcyBzb24gbGFzIHRhcmVhcyBwcsOzeGltYXMgYSB2ZW5jZXI/JywgY2F0ZWdvcnk6ICd0YXNrcycgfSxcbiAgICB7IGlkOiAnZmFxLXRhc2stMicsIHRpdGxlOiAnwr9RdcOpIHRhcmVhcyBlc3TDoW4gYXRyYXNhZGFzPycsIGNhdGVnb3J5OiAndGFza3MnIH0sXG4gICAgeyBpZDogJ2ZhcS10YXNrLTMnLCB0aXRsZTogJ0xpc3RhZG8gZGUgdGFyZWFzIGFzaWduYWRhcycsIGNhdGVnb3J5OiAndGFza3MnIH0sXG4gICAgeyBpZDogJ2ZhcS10YXNrLTQnLCB0aXRsZTogJ1RhcmVhcyBjb21wbGV0YWRhcyBlc3RlIG1lcycsIGNhdGVnb3J5OiAndGFza3MnIH0sXG4gIF0sXG4gIGhvdXJzOiBbXG4gICAgeyBpZDogJ2ZhcS1ob3Vycy0xJywgdGl0bGU6ICfCv0N1w6FudGFzIGhvcmFzIHNlIGhhbiByZWdpc3RyYWRvPycsIGNhdGVnb3J5OiAnaG91cnMnIH0sXG4gICAgeyBpZDogJ2ZhcS1ob3Vycy0yJywgdGl0bGU6ICdIb3JhcyBwb3IgcmVjdXJzbyBlbiBlbCBwcm95ZWN0bycsIGNhdGVnb3J5OiAnaG91cnMnIH0sXG4gICAgeyBpZDogJ2ZhcS1ob3Vycy0zJywgdGl0bGU6ICdDb21wYXJhdGl2YSBkZSBob3JhcyBlc3RpbWFkYXMgdnMgcmVhbGVzJywgY2F0ZWdvcnk6ICdob3VycycgfSxcbiAgXSxcbn1cblxuY29uc3QgRkFRX0NBVEVHT1JJRVMgPSBbJ3Byb2plY3RzJywgJ3Rhc2tzJywgJ2hvdXJzJ10gYXMgY29uc3RcblxudHlwZSBDaGF0Rm9vdGVyRmFxc1Byb3BzID0ge1xuICBvblNlbGVjdEZhcTogKG1lc3NhZ2U6IHN0cmluZywgZmFxSWQ6IHN0cmluZykgPT4gdm9pZFxuICBzY3JvbGxDb250YWluZXJSZWY/OiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hhdEZvb3RlckZhcXMoeyBvblNlbGVjdEZhcSwgc2Nyb2xsQ29udGFpbmVyUmVmIH06IENoYXRGb290ZXJGYXFzUHJvcHMpIHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgW3Nob3dGYXFzLCBzZXRTaG93RmFxc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3NlbGVjdGVkQ2F0ZWdvcnksIHNldFNlbGVjdGVkQ2F0ZWdvcnldID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzU2Nyb2xsaW5nLCBzZXRJc1Njcm9sbGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3Qgc2Nyb2xsVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXG5cbiAgLy8gTWlzbW8gcGF0csOzbiBxdWUgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zOiBhbCBoYWNlciBzY3JvbGwgbm8gcmVuZGVyaXphbW9zIGVsIFRvb2x0aXBcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IHNjcm9sbENvbnRhaW5lclJlZj8uY3VycmVudFxuICAgIGlmICghZWwgfHwgIXNlbGVjdGVkQ2F0ZWdvcnkpIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBzZXRJc1Njcm9sbGluZyh0cnVlKVxuICAgICAgaWYgKHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCkgY2xlYXJUaW1lb3V0KHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudClcbiAgICAgIHNjcm9sbFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4gc2V0SXNTY3JvbGxpbmcoZmFsc2UpLCAxNTApXG4gICAgfVxuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbClcbiAgICAgIGlmIChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpIGNsZWFyVGltZW91dChzY3JvbGxUaW1lb3V0UmVmLmN1cnJlbnQpXG4gICAgfVxuICB9LCBbc2VsZWN0ZWRDYXRlZ29yeSwgc2Nyb2xsQ29udGFpbmVyUmVmXSlcblxuICBjb25zdCBoYW5kbGVUb2dnbGVGYXFzID0gKCkgPT4ge1xuICAgIHNldFNob3dGYXFzKHByZXYgPT4gIXByZXYpXG4gICAgaWYgKHNob3dGYXFzKSB7XG4gICAgICBzZXRTZWxlY3RlZENhdGVnb3J5KG51bGwpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2F0ZWdvcnlDbGljayA9IChjYXRlZ29yeTogc3RyaW5nKSA9PiB7XG4gICAgc2V0U2VsZWN0ZWRDYXRlZ29yeShwcmV2ID0+IChwcmV2ID09PSBjYXRlZ29yeSA/IG51bGwgOiBjYXRlZ29yeSkpXG4gIH1cblxuICBjb25zdCBoYW5kbGVGYXFDbGljayA9IChmYXE6IEZhcUl0ZW0pID0+IHtcbiAgICBvblNlbGVjdEZhcShmYXEudGl0bGUsIGZhcS5pZClcbiAgfVxuXG4gIGNvbnN0IGl0ZW1zVG9TaG93ID0gc2VsZWN0ZWRDYXRlZ29yeSA/IChNT0NLX0ZBUVNfQllfQ0FURUdPUllbc2VsZWN0ZWRDYXRlZ29yeV0gPz8gW10pIDogW11cblxuICAvLyBTaW4gRkFRcyBhYmllcnRvOiBzb2xvIGJvdMOzbiBGQVFzXG4gIGlmICghc2hvd0ZhcXMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNDRmFxc0NoaXAgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZUZhcXN9IGFyaWEtcHJlc3NlZD17ZmFsc2V9PlxuICAgICAgICBGQVFzXG4gICAgICA8L1NDRmFxc0NoaXA+XG4gICAgKVxuICB9XG5cbiAgLy8gRkFRcyBhYmllcnRvOiBjYXRlZ29yw61hcyDihpIgW+KGkF0gW0NhdDFdIFtDYXQyXSBbQ2F0M11cbiAgaWYgKCFzZWxlY3RlZENhdGVnb3J5KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxTQ0ZhcXNDaGlwIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVUb2dnbGVGYXFzfSBhcmlhLWxhYmVsPVwiVm9sdmVyXCI+XG4gICAgICAgICAgPEFycm93TGVmdCBjb2xvcj17Y29sb3JzLnRleHQuc2Vjb25kYXJ5fSB3aWR0aD17MTJ9IGhlaWdodD17MTJ9IHZhcmlhbnQ9XCJyZWd1bGFyXCIgLz5cbiAgICAgICAgPC9TQ0ZhcXNDaGlwPlxuICAgICAgICB7RkFRX0NBVEVHT1JJRVMubWFwKGNhdCA9PiAoXG4gICAgICAgICAgPFNDRmFxc0NoaXAga2V5PXtjYXR9IHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVDYXRlZ29yeUNsaWNrKGNhdCl9IGFyaWEtcHJlc3NlZD17ZmFsc2V9PlxuICAgICAgICAgICAge3QoYGhvbWVNZW51LmZhcS5jYXRlZ29yaWVzLiR7Y2F0fWApfVxuICAgICAgICAgIDwvU0NGYXFzQ2hpcD5cbiAgICAgICAgKSl9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBDYXRlZ29yw61hIGVsZWdpZGE6IHNvbG8gW+KGkCBOb21icmVDYXRlZ29yw61hXSBbUHJlZ3VudGFzLi4uXSAoc2luIGZsZWNoYSBleHRyYSlcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNDRmFxc0NoaXAgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IHNldFNlbGVjdGVkQ2F0ZWdvcnkobnVsbCl9IGFyaWEtbGFiZWw9XCJWb2x2ZXIgYSBjYXRlZ29yw61hc1wiPlxuICAgICAgICA8QXJyb3dMZWZ0IGNvbG9yPXtjb2xvcnMudGV4dC5zZWNvbmRhcnl9IHdpZHRoPXsxMn0gaGVpZ2h0PXsxMn0gdmFyaWFudD1cInNvbGlkXCIgLz57JyAnfVxuICAgICAgICB7dChgaG9tZU1lbnUuZmFxLmNhdGVnb3JpZXMuJHtzZWxlY3RlZENhdGVnb3J5fWApfVxuICAgICAgPC9TQ0ZhcXNDaGlwPlxuICAgICAge2l0ZW1zVG9TaG93Lm1hcChmYXEgPT4gKFxuICAgICAgICA8U0NGYXFzQ2hpcCBrZXk9e2ZhcS5pZH0gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUZhcUNsaWNrKGZhcSl9PlxuICAgICAgICAgIHtpc1Njcm9sbGluZyA/IChcbiAgICAgICAgICAgIDxzcGFuPntmYXEudGl0bGUubGVuZ3RoID4gNDAgPyBgJHtmYXEudGl0bGUuc2xpY2UoMCwgNDApfeKApmAgOiBmYXEudGl0bGV9PC9zcGFuPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17ZmFxLnRpdGxlLmxlbmd0aCA+IDQwID8gZmFxLnRpdGxlIDogJyd9PlxuICAgICAgICAgICAgICA8c3Bhbj57ZmFxLnRpdGxlLmxlbmd0aCA+IDQwID8gYCR7ZmFxLnRpdGxlLnNsaWNlKDAsIDQwKX3igKZgIDogZmFxLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDRmFxc0NoaXA+XG4gICAgICApKX1cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFDMUQsU0FBU0MsU0FBUyxRQUFRLDRDQUE0QztBQUN0RSxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBQ3RELFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxVQUFVLFFBQVEseUJBQXlCO0FBQUEsU0FBQUMsR0FBQSxJQUFB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
156
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VNZW1vIiwiVG9vbHRpcCIsInVzZVQiLCJ1c2VSZXNpemVMaXN0ZW5lciIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMiLCJTQ0ZhcXNDaGlwIiwiU0NGYXFzVHJpZ2dlcldyYXBwZXIiLCJTQ0ZhcXNNb2RhbEZyYW1lIiwiU0NGYXFzTW9kYWxDb250ZW50IiwiU0NGYXFzQ2F0ZWdvcnlIZWFkZXIiLCJTQ0ZhcXNNb2RhbEl0ZW0iLCJTQ0ZhcXNNb2RhbEl0ZW1UZXh0IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZhcU1vZGFsSXRlbSIsIl9yZWYiLCJmYXEiLCJvbkNsaWNrIiwidGV4dFJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInRpdGxlIiwic2hvd1Rvb2x0aXAiLCJjb250ZW50IiwidHlwZSIsImNoaWxkcmVuIiwicmVmIiwiUFJFRkVSUkVEX0NBVEVHT1JZX09SREVSIiwiQ2hhdEZvb3RlckZhcXMiLCJfcmVmMiIsIm9uU2VsZWN0RmFxIiwiX3VzZVQiLCJ0IiwiaTE4biIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJsYW5nIiwibGFuZ3VhZ2UiLCJhZ2VudElkIiwiaWQiLCJfdXNlRnJlcXVlbnRseUFza2VkUXUiLCJmYXFzIiwibG9hZGluZyIsImVycm9yIiwiaGFuZGxlR2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIiwiaXNDbG9uZUFnZW50IiwiZmFxc0J5Q2F0ZWdvcnkiLCJncm91cGVkIiwiZm9yRWFjaCIsImNhdGVnb3J5IiwicHVzaCIsIm9yZGVyZWRLZXlzIiwiZmlsdGVyIiwiY2F0IiwiX2dyb3VwZWQkY2F0IiwibGVuZ3RoIiwicmVzdCIsIk9iamVjdCIsImtleXMiLCJpbmNsdWRlcyIsIm9yZGVyIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5Iiwic29ydCIsImEiLCJiIiwiX2Ekb3JkZXIiLCJfYiRvcmRlciIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzT3BlbiIsInNldElzT3BlbiIsIndyYXBwZXJSZWYiLCJoYW5kbGVUb2dnbGUiLCJwcmV2IiwiaGFuZGxlRmFxQ2xpY2siLCJoYW5kbGVFc2NhcGUiLCJlIiwia2V5IiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwidGFyZ2V0IiwiY3VycmVudCIsImNvbnRhaW5zIiwidW5kZWZpbmVkIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwidGltZW91dElkIiwic2V0VGltZW91dCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjbGVhclRpbWVvdXQiLCJyb2xlIiwibWFwIiwiX2ZhcXNCeUNhdGVnb3J5JGdyb3VwIiwiaXRlbXMiLCJjYXRlZ29yeUxhYmVsIiwiRnJhZ21lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyRmFxcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucydcbmltcG9ydCB7XG4gIFNDRmFxc0NoaXAsXG4gIFNDRmFxc1RyaWdnZXJXcmFwcGVyLFxuICBTQ0ZhcXNNb2RhbEZyYW1lLFxuICBTQ0ZhcXNNb2RhbENvbnRlbnQsXG4gIFNDRmFxc0NhdGVnb3J5SGVhZGVyLFxuICBTQ0ZhcXNNb2RhbEl0ZW0sXG4gIFNDRmFxc01vZGFsSXRlbVRleHQsXG59IGZyb20gJy4vQ2hhdEZvb3RlckZhcXMuc3R5bGVzJ1xuaW1wb3J0IHR5cGUgeyBGcmVxdWVudGx5QXNrZWRRdWVzdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uJ1xuXG5leHBvcnQgdHlwZSBGYXFJdGVtID0ge1xuICBpZDogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgY2F0ZWdvcnk6IHN0cmluZ1xufVxuXG5mdW5jdGlvbiBGYXFNb2RhbEl0ZW0oeyBmYXEsIG9uQ2xpY2sgfTogeyBmYXE6IEZhcUl0ZW07IG9uQ2xpY2s6ICgpID0+IHZvaWQgfSkge1xuICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmPEhUTUxTcGFuRWxlbWVudD4obnVsbClcbiAgY29uc3QgeyBzaG93VG9vbHRpcCB9ID0gdXNlUmVzaXplTGlzdGVuZXIodGV4dFJlZiwgW2ZhcS50aXRsZV0pXG5cbiAgY29uc3QgY29udGVudCA9IChcbiAgICA8U0NGYXFzTW9kYWxJdGVtIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxTQ0ZhcXNNb2RhbEl0ZW1UZXh0IHJlZj17dGV4dFJlZn0+e2ZhcS50aXRsZX08L1NDRmFxc01vZGFsSXRlbVRleHQ+XG4gICAgPC9TQ0ZhcXNNb2RhbEl0ZW0+XG4gIClcblxuICByZXR1cm4gPFRvb2x0aXAgdGl0bGU9e3Nob3dUb29sdGlwID8gZmFxLnRpdGxlIDogJyd9Pntjb250ZW50fTwvVG9vbHRpcD5cbn1cblxuY29uc3QgUFJFRkVSUkVEX0NBVEVHT1JZX09SREVSID0gWydob3VycycsICdwcm9qZWN0cycsICd0YXNrcycsICd1bmRlZmluZWQnXVxuXG50eXBlIENoYXRGb290ZXJGYXFzUHJvcHMgPSB7XG4gIG9uU2VsZWN0RmFxOiAobWVzc2FnZTogc3RyaW5nLCBmYXFJZDogc3RyaW5nKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGF0Rm9vdGVyRmFxcyh7IG9uU2VsZWN0RmFxIH06IENoYXRGb290ZXJGYXFzUHJvcHMpIHtcbiAgY29uc3QgeyB0LCBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGxhbmcgPSBpMThuLmxhbmd1YWdlID09PSAnYnInID8gJ3B0LWJyJyA6IGkxOG4ubGFuZ3VhZ2VcbiAgY29uc3QgYWdlbnRJZCA9IGFnZW50Py5pZFxuXG4gIGNvbnN0IHsgZmFxcywgbG9hZGluZywgZXJyb3IsIGhhbmRsZUdldEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB9ID0gdXNlRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zKGFnZW50SWQsIGxhbmcpXG5cbiAgY29uc3QgaXNDbG9uZUFnZW50ID0gYWdlbnQ/LnR5cGUgPT09ICdjbG9uZSdcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0Nsb25lQWdlbnQgJiYgYWdlbnRJZCAmJiBsYW5nKSB7XG4gICAgICBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMoeyBhZ2VudElkLCBsYW5nIH0pXG4gICAgfVxuICB9LCBbaXNDbG9uZUFnZW50LCBhZ2VudElkLCBsYW5nLCBoYW5kbGVHZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNdKVxuXG4gIGNvbnN0IGZhcXNCeUNhdGVnb3J5ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBlZDogUmVjb3JkPHN0cmluZywgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25bXT4gPSB7fVxuICAgIGZhcXMuZm9yRWFjaChmYXEgPT4ge1xuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBmYXEuY2F0ZWdvcnkgfHwgJ3VuZGVmaW5lZCdcbiAgICAgIGlmICghZ3JvdXBlZFtjYXRlZ29yeV0pIGdyb3VwZWRbY2F0ZWdvcnldID0gW11cbiAgICAgIGdyb3VwZWRbY2F0ZWdvcnldLnB1c2goZmFxKVxuICAgIH0pXG4gICAgY29uc3Qgb3JkZXJlZEtleXMgPSBQUkVGRVJSRURfQ0FURUdPUllfT1JERVIuZmlsdGVyKGNhdCA9PiBncm91cGVkW2NhdF0/Lmxlbmd0aClcbiAgICBjb25zdCByZXN0ID0gT2JqZWN0LmtleXMoZ3JvdXBlZCkuZmlsdGVyKGNhdCA9PiAhUFJFRkVSUkVEX0NBVEVHT1JZX09SREVSLmluY2x1ZGVzKGNhdCkpXG4gICAgY29uc3Qgb3JkZXIgPSBbLi4ub3JkZXJlZEtleXMsIC4uLnJlc3RdXG4gICAgb3JkZXIuZm9yRWFjaChjYXQgPT4ge1xuICAgICAgZ3JvdXBlZFtjYXRdLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyID8/IDApIC0gKGIub3JkZXIgPz8gMCkpXG4gICAgfSlcbiAgICByZXR1cm4geyBncm91cGVkLCBvcmRlciB9XG4gIH0sIFtmYXFzXSlcblxuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG5cbiAgY29uc3QgaGFuZGxlVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzT3BlbihwcmV2ID0+ICFwcmV2KVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVGYXFDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChmYXE6IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uKSA9PiB7XG4gICAgICBvblNlbGVjdEZhcShmYXEudGl0bGUsIGZhcS5pZClcbiAgICAgIHNldElzT3BlbihmYWxzZSlcbiAgICB9LFxuICAgIFtvblNlbGVjdEZhcV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUVzY2FwZSA9IHVzZUNhbGxiYWNrKChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykgc2V0SXNPcGVuKGZhbHNlKVxuICB9LCBbXSlcblxuICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSB1c2VDYWxsYmFjaygoZTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIE5vZGVcbiAgICBpZiAod3JhcHBlclJlZi5jdXJyZW50ICYmICF3cmFwcGVyUmVmLmN1cnJlbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgc2V0SXNPcGVuKGZhbHNlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzT3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVFc2NhcGUsIHRydWUpXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgfSwgMClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUVzY2FwZSwgdHJ1ZSlcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgfVxuICB9LCBbaXNPcGVuLCBoYW5kbGVFc2NhcGUsIGhhbmRsZUNsaWNrT3V0c2lkZV0pXG5cbiAgaWYgKGZhcXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDRmFxc1RyaWdnZXJXcmFwcGVyIHJlZj17d3JhcHBlclJlZn0+XG4gICAgICA8U0NGYXFzQ2hpcCB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlVG9nZ2xlfSBhcmlhLWV4cGFuZGVkPXtpc09wZW59IGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCI+XG4gICAgICAgIHt0KCdob21lTWVudS5mYXEudGl0bGUnKX1cbiAgICAgIDwvU0NGYXFzQ2hpcD5cbiAgICAgIHtpc09wZW4gJiYgKFxuICAgICAgICA8U0NGYXFzTW9kYWxGcmFtZSByb2xlPVwiZGlhbG9nXCIgYXJpYS1sYWJlbD17dCgnaG9tZU1lbnUuZmFxLnRpdGxlJyl9PlxuICAgICAgICAgIDxTQ0ZhcXNNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgICB7IWxvYWRpbmcgJiZcbiAgICAgICAgICAgICAgIWVycm9yICYmXG4gICAgICAgICAgICAgIGZhcXNCeUNhdGVnb3J5Lm9yZGVyLm1hcChjYXRlZ29yeSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBmYXFzQnlDYXRlZ29yeS5ncm91cGVkW2NhdGVnb3J5XSA/PyBbXVxuICAgICAgICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnlMYWJlbCA9XG4gICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9PT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgPyB0KCdob21lTWVudS5mYXEuY2F0ZWdvcmllcy51bmRlZmluZWQnKVxuICAgICAgICAgICAgICAgICAgICA6IHQoYGhvbWVNZW51LmZhcS5jYXRlZ29yaWVzLiR7Y2F0ZWdvcnl9YClcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17Y2F0ZWdvcnl9PlxuICAgICAgICAgICAgICAgICAgICA8U0NGYXFzQ2F0ZWdvcnlIZWFkZXI+e2NhdGVnb3J5TGFiZWx9PC9TQ0ZhcXNDYXRlZ29yeUhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAge2l0ZW1zLm1hcChmYXEgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxGYXFNb2RhbEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17ZmFxLmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmFxPXt7IGlkOiBmYXEuaWQsIHRpdGxlOiBmYXEudGl0bGUsIGNhdGVnb3J5OiBmYXEuY2F0ZWdvcnkgfHwgJ3VuZGVmaW5lZCcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUZhcUNsaWNrKGZhcSl9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9TQ0ZhcXNNb2RhbENvbnRlbnQ+XG4gICAgICAgIDwvU0NGYXFzTW9kYWxGcmFtZT5cbiAgICAgICl9XG4gICAgPC9TQ0ZhcXNUcmlnZ2VyV3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU9BLEtBQUssSUFBSUMsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUNoRixTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsaUJBQWlCLFFBQVEsMEJBQTBCO0FBQzVELFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQywyQkFBMkIsUUFBUSw0Q0FBNEM7QUFDeEYsU0FDRUMsVUFBVSxFQUNWQyxvQkFBb0IsRUFDcEJDLGdCQUFnQixFQUNoQkMsa0JBQWtCLEVBQ2xCQyxvQkFBb0IsRUFDcEJDLGVBQWUsRUFDZkMsbUJBQW1CLFFBQ2QseUJBQXlCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQVNoQyxTQUFTQyxZQUFZQSxDQUFBQyxJQUFBLEVBQTBEO0VBQUEsSUFBdkRDLEdBQUcsR0FBQUQsSUFBQSxDQUFIQyxHQUFHO0lBQUVDLE9BQU8sR0FBQUYsSUFBQSxDQUFQRSxPQUFPO0VBQ2xDLElBQU1DLE9BQU8sR0FBR3ZCLE1BQU0sQ0FBa0IsSUFBSSxDQUFDO0VBQzdDLElBQUF3QixrQkFBQSxHQUF3Qm5CLGlCQUFpQixDQUFDa0IsT0FBTyxFQUFFLENBQUNGLEdBQUcsQ0FBQ0ksS0FBSyxDQUFDLENBQUM7SUFBdkRDLFdBQVcsR0FBQUYsa0JBQUEsQ0FBWEUsV0FBVztFQUVuQixJQUFNQyxPQUFPLGdCQUNYWCxJQUFBLENBQUNILGVBQWU7SUFBQ2UsSUFBSSxFQUFDLFFBQVE7SUFBQ04sT0FBTyxFQUFFQSxPQUFRO0lBQUFPLFFBQUEsZUFDOUNiLElBQUEsQ0FBQ0YsbUJBQW1CO01BQUNnQixHQUFHLEVBQUVQLE9BQVE7TUFBQU0sUUFBQSxFQUFFUixHQUFHLENBQUNJO0lBQUssQ0FBc0I7RUFBQyxDQUNyRCxDQUNsQjtFQUVELG9CQUFPVCxJQUFBLENBQUNiLE9BQU87SUFBQ3NCLEtBQUssRUFBRUMsV0FBVyxHQUFHTCxHQUFHLENBQUNJLEtBQUssR0FBRyxFQUFHO0lBQUFJLFFBQUEsRUFBRUY7RUFBTyxDQUFVLENBQUM7QUFDMUU7QUFFQSxJQUFNSSx3QkFBd0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQztBQU01RSxPQUFPLFNBQVNDLGNBQWNBLENBQUFDLEtBQUEsRUFBdUM7RUFBQSxJQUFwQ0MsV0FBVyxHQUFBRCxLQUFBLENBQVhDLFdBQVc7RUFDMUMsSUFBQUMsS0FBQSxHQUFvQi9CLElBQUksQ0FBQyxDQUFDO0lBQWxCZ0MsQ0FBQyxHQUFBRCxLQUFBLENBQURDLENBQUM7SUFBRUMsSUFBSSxHQUFBRixLQUFBLENBQUpFLElBQUk7RUFDZixJQUFBQyxpQkFBQSxHQUFrQmhDLGdCQUFnQixDQUFDLENBQUM7SUFBNUJpQyxLQUFLLEdBQUFELGlCQUFBLENBQUxDLEtBQUs7RUFDYixJQUFNQyxJQUFJLEdBQUdILElBQUksQ0FBQ0ksUUFBUSxLQUFLLElBQUksR0FBRyxPQUFPLEdBQUdKLElBQUksQ0FBQ0ksUUFBUTtFQUM3RCxJQUFNQyxPQUFPLEdBQUdILEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFSSxFQUFFO0VBRXpCLElBQUFDLHFCQUFBLEdBQW9FckMsMkJBQTJCLENBQUNtQyxPQUFPLEVBQUVGLElBQUksQ0FBQztJQUF0R0ssSUFBSSxHQUFBRCxxQkFBQSxDQUFKQyxJQUFJO0lBQUVDLE9BQU8sR0FBQUYscUJBQUEsQ0FBUEUsT0FBTztJQUFFQyxLQUFLLEdBQUFILHFCQUFBLENBQUxHLEtBQUs7SUFBRUMsaUNBQWlDLEdBQUFKLHFCQUFBLENBQWpDSSxpQ0FBaUM7RUFFL0QsSUFBTUMsWUFBWSxHQUFHLENBQUFWLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFWCxJQUFJLE1BQUssT0FBTztFQUU1QzdCLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSWtELFlBQVksSUFBSVAsT0FBTyxJQUFJRixJQUFJLEVBQUU7TUFDbkNRLGlDQUFpQyxDQUFDO1FBQUVOLE9BQU8sRUFBUEEsT0FBTztRQUFFRixJQUFJLEVBQUpBO01BQUssQ0FBQyxDQUFDO0lBQ3REO0VBQ0YsQ0FBQyxFQUFFLENBQUNTLFlBQVksRUFBRVAsT0FBTyxFQUFFRixJQUFJLEVBQUVRLGlDQUFpQyxDQUFDLENBQUM7RUFFcEUsSUFBTUUsY0FBYyxHQUFHaEQsT0FBTyxDQUFDLFlBQU07SUFDbkMsSUFBTWlELE9BQWtELEdBQUcsQ0FBQyxDQUFDO0lBQzdETixJQUFJLENBQUNPLE9BQU8sQ0FBQyxVQUFBL0IsR0FBRyxFQUFJO01BQ2xCLElBQU1nQyxRQUFRLEdBQUdoQyxHQUFHLENBQUNnQyxRQUFRLElBQUksV0FBVztNQUM1QyxJQUFJLENBQUNGLE9BQU8sQ0FBQ0UsUUFBUSxDQUFDLEVBQUVGLE9BQU8sQ0FBQ0UsUUFBUSxDQUFDLEdBQUcsRUFBRTtNQUM5Q0YsT0FBTyxDQUFDRSxRQUFRLENBQUMsQ0FBQ0MsSUFBSSxDQUFDakMsR0FBRyxDQUFDO0lBQzdCLENBQUMsQ0FBQztJQUNGLElBQU1rQyxXQUFXLEdBQUd4Qix3QkFBd0IsQ0FBQ3lCLE1BQU0sQ0FBQyxVQUFBQyxHQUFHO01BQUEsSUFBQUMsWUFBQTtNQUFBLFFBQUFBLFlBQUEsR0FBSVAsT0FBTyxDQUFDTSxHQUFHLENBQUMsY0FBQUMsWUFBQSx1QkFBWkEsWUFBQSxDQUFjQyxNQUFNO0lBQUEsRUFBQztJQUNoRixJQUFNQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDWCxPQUFPLENBQUMsQ0FBQ0ssTUFBTSxDQUFDLFVBQUFDLEdBQUc7TUFBQSxPQUFJLENBQUMxQix3QkFBd0IsQ0FBQ2dDLFFBQVEsQ0FBQ04sR0FBRyxDQUFDO0lBQUEsRUFBQztJQUN4RixJQUFNTyxLQUFLLE1BQUFDLE1BQUEsQ0FBQUMsa0JBQUEsQ0FBT1gsV0FBVyxHQUFBVyxrQkFBQSxDQUFLTixJQUFJLEVBQUM7SUFDdkNJLEtBQUssQ0FBQ1osT0FBTyxDQUFDLFVBQUFLLEdBQUcsRUFBSTtNQUNuQk4sT0FBTyxDQUFDTSxHQUFHLENBQUMsQ0FBQ1UsSUFBSSxDQUFDLFVBQUNDLENBQUMsRUFBRUMsQ0FBQztRQUFBLElBQUFDLFFBQUEsRUFBQUMsUUFBQTtRQUFBLE9BQUssRUFBQUQsUUFBQSxHQUFDRixDQUFDLENBQUNKLEtBQUssY0FBQU0sUUFBQSxjQUFBQSxRQUFBLEdBQUksQ0FBQyxNQUFBQyxRQUFBLEdBQUtGLENBQUMsQ0FBQ0wsS0FBSyxjQUFBTyxRQUFBLGNBQUFBLFFBQUEsR0FBSSxDQUFDLENBQUM7TUFBQSxFQUFDO0lBQzlELENBQUMsQ0FBQztJQUNGLE9BQU87TUFBRXBCLE9BQU8sRUFBUEEsT0FBTztNQUFFYSxLQUFLLEVBQUxBO0lBQU0sQ0FBQztFQUMzQixDQUFDLEVBQUUsQ0FBQ25CLElBQUksQ0FBQyxDQUFDO0VBRVYsSUFBQTJCLFNBQUEsR0FBNEIxRSxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUEyRSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUFwQ0csTUFBTSxHQUFBRixVQUFBO0lBQUVHLFNBQVMsR0FBQUgsVUFBQTtFQUN4QixJQUFNSSxVQUFVLEdBQUc3RSxNQUFNLENBQWlCLElBQUksQ0FBQztFQUUvQyxJQUFNOEUsWUFBWSxHQUFHN0UsV0FBVyxDQUFDLFlBQU07SUFDckMyRSxTQUFTLENBQUMsVUFBQUcsSUFBSTtNQUFBLE9BQUksQ0FBQ0EsSUFBSTtJQUFBLEVBQUM7RUFDMUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU1DLGNBQWMsR0FBRy9FLFdBQVcsQ0FDaEMsVUFBQ29CLEdBQTRCLEVBQUs7SUFDaENhLFdBQVcsQ0FBQ2IsR0FBRyxDQUFDSSxLQUFLLEVBQUVKLEdBQUcsQ0FBQ3NCLEVBQUUsQ0FBQztJQUM5QmlDLFNBQVMsQ0FBQyxLQUFLLENBQUM7RUFDbEIsQ0FBQyxFQUNELENBQUMxQyxXQUFXLENBQ2QsQ0FBQztFQUVELElBQU0rQyxZQUFZLEdBQUdoRixXQUFXLENBQUMsVUFBQ2lGLENBQWdCLEVBQUs7SUFDckQsSUFBSUEsQ0FBQyxDQUFDQyxHQUFHLEtBQUssUUFBUSxFQUFFUCxTQUFTLENBQUMsS0FBSyxDQUFDO0VBQzFDLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFNUSxrQkFBa0IsR0FBR25GLFdBQVcsQ0FBQyxVQUFDaUYsQ0FBYSxFQUFLO0lBQ3hELElBQU1HLE1BQU0sR0FBR0gsQ0FBQyxDQUFDRyxNQUFjO0lBQy9CLElBQUlSLFVBQVUsQ0FBQ1MsT0FBTyxJQUFJLENBQUNULFVBQVUsQ0FBQ1MsT0FBTyxDQUFDQyxRQUFRLENBQUNGLE1BQU0sQ0FBQyxFQUFFO01BQzlEVCxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ2xCO0VBQ0YsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVON0UsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUM0RSxNQUFNLEVBQUUsT0FBT2EsU0FBUztJQUM3QkMsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUVULFlBQVksRUFBRSxJQUFJLENBQUM7SUFDeEQsSUFBTVUsU0FBUyxHQUFHQyxVQUFVLENBQUMsWUFBTTtNQUNqQ0gsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUVOLGtCQUFrQixDQUFDO0lBQzVELENBQUMsRUFBRSxDQUFDLENBQUM7SUFDTCxPQUFPLFlBQU07TUFDWEssUUFBUSxDQUFDSSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUVaLFlBQVksRUFBRSxJQUFJLENBQUM7TUFDM0RRLFFBQVEsQ0FBQ0ksbUJBQW1CLENBQUMsV0FBVyxFQUFFVCxrQkFBa0IsQ0FBQztNQUM3RFUsWUFBWSxDQUFDSCxTQUFTLENBQUM7SUFDekIsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDaEIsTUFBTSxFQUFFTSxZQUFZLEVBQUVHLGtCQUFrQixDQUFDLENBQUM7RUFFOUMsSUFBSXZDLElBQUksQ0FBQ2MsTUFBTSxLQUFLLENBQUMsRUFBRTtJQUNyQixPQUFPLElBQUk7RUFDYjtFQUVBLG9CQUNFekMsS0FBQSxDQUFDVCxvQkFBb0I7SUFBQ3FCLEdBQUcsRUFBRStDLFVBQVc7SUFBQWhELFFBQUEsZ0JBQ3BDYixJQUFBLENBQUNSLFVBQVU7TUFBQ29CLElBQUksRUFBQyxRQUFRO01BQUNOLE9BQU8sRUFBRXdELFlBQWE7TUFBQyxpQkFBZUgsTUFBTztNQUFDLGlCQUFjLE1BQU07TUFBQTlDLFFBQUEsRUFDekZPLENBQUMsQ0FBQyxvQkFBb0I7SUFBQyxDQUNkLENBQUMsRUFDWnVDLE1BQU0saUJBQ0wzRCxJQUFBLENBQUNOLGdCQUFnQjtNQUFDcUYsSUFBSSxFQUFDLFFBQVE7TUFBQyxjQUFZM0QsQ0FBQyxDQUFDLG9CQUFvQixDQUFFO01BQUFQLFFBQUEsZUFDbEViLElBQUEsQ0FBQ0wsa0JBQWtCO1FBQUFrQixRQUFBLEVBQ2hCLENBQUNpQixPQUFPLElBQ1AsQ0FBQ0MsS0FBSyxJQUNORyxjQUFjLENBQUNjLEtBQUssQ0FBQ2dDLEdBQUcsQ0FBQyxVQUFBM0MsUUFBUSxFQUFJO1VBQUEsSUFBQTRDLHFCQUFBO1VBQ25DLElBQU1DLEtBQUssSUFBQUQscUJBQUEsR0FBRy9DLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDRSxRQUFRLENBQUMsY0FBQTRDLHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksRUFBRTtVQUNwRCxJQUFJQyxLQUFLLENBQUN2QyxNQUFNLEtBQUssQ0FBQyxFQUFFLE9BQU8sSUFBSTtVQUNuQyxJQUFNd0MsYUFBYSxHQUNqQjlDLFFBQVEsS0FBSyxXQUFXLEdBQ3BCakIsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLEdBQ3RDQSxDQUFDLDRCQUFBNkIsTUFBQSxDQUE0QlosUUFBUSxDQUFFLENBQUM7VUFDOUMsb0JBQ0VuQyxLQUFBLENBQUNyQixLQUFLLENBQUN1RyxRQUFRO1lBQUF2RSxRQUFBLGdCQUNiYixJQUFBLENBQUNKLG9CQUFvQjtjQUFBaUIsUUFBQSxFQUFFc0U7WUFBYSxDQUF1QixDQUFDLEVBQzNERCxLQUFLLENBQUNGLEdBQUcsQ0FBQyxVQUFBM0UsR0FBRztjQUFBLG9CQUNaTCxJQUFBLENBQUNHLFlBQVk7Z0JBRVhFLEdBQUcsRUFBRTtrQkFBRXNCLEVBQUUsRUFBRXRCLEdBQUcsQ0FBQ3NCLEVBQUU7a0JBQUVsQixLQUFLLEVBQUVKLEdBQUcsQ0FBQ0ksS0FBSztrQkFBRTRCLFFBQVEsRUFBRWhDLEdBQUcsQ0FBQ2dDLFFBQVEsSUFBSTtnQkFBWSxDQUFFO2dCQUM3RS9CLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2tCQUFBLE9BQVEwRCxjQUFjLENBQUMzRCxHQUFHLENBQUM7Z0JBQUE7Y0FBQyxHQUY5QkEsR0FBRyxDQUFDc0IsRUFHVixDQUFDO1lBQUEsQ0FDSCxDQUFDO1VBQUEsR0FSaUJVLFFBU0wsQ0FBQztRQUVyQixDQUFDO01BQUMsQ0FDYztJQUFDLENBQ0wsQ0FDbkI7RUFBQSxDQUNtQixDQUFDO0FBRTNCIiwiaWdub3JlTGlzdCI6W119