import { c as _c } from "react/compiler-runtime"; import React from 'react'; import { renderPlaceholder } from '../hooks/renderPlaceholder.js'; import { usePasteHandler } from '../hooks/usePasteHandler.js'; import { useDeclaredCursor } from '../ink/hooks/use-declared-cursor.js'; import { Ansi, Box, Text, useInput } from '../ink.js'; import type { BaseInputState, BaseTextInputProps } from '../types/textInputTypes.js'; import type { TextHighlight } from '../utils/textHighlighting.js'; import { HighlightedInput } from './PromptInput/ShimmeredInput.js'; type BaseTextInputComponentProps = BaseTextInputProps & { inputState: BaseInputState; children?: React.ReactNode; terminalFocus: boolean; highlights?: TextHighlight[]; invert?: (text: string) => string; hidePlaceholderText?: boolean; }; /** * A base component for text inputs that handles rendering and basic input */ export function BaseTextInput(t0) { const $ = _c(14); const { inputState, children, terminalFocus, invert, hidePlaceholderText, ...props } = t0; const { onInput, renderedValue, cursorLine, cursorColumn } = inputState; const t1 = Boolean(props.focus && props.showCursor && terminalFocus); let t2; if ($[0] !== cursorColumn || $[1] !== cursorLine || $[2] !== t1) { t2 = { line: cursorLine, column: cursorColumn, active: t1 }; $[0] = cursorColumn; $[1] = cursorLine; $[2] = t1; $[3] = t2; } else { t2 = $[3]; } const cursorRef = useDeclaredCursor(t2); const { wrappedOnInput, isPasting: t3 } = usePasteHandler({ onPaste: props.onPaste, onInput: (input, key) => { if (isPasting && key.return) { return; } onInput(input, key); }, onImagePaste: props.onImagePaste }); const isPasting = t3; const { onIsPastingChange } = props; React.useEffect(() => { if (onIsPastingChange) { onIsPastingChange(isPasting); } }, [isPasting, onIsPastingChange]); const { showPlaceholder, renderedPlaceholder } = renderPlaceholder({ placeholder: props.placeholder, value: props.value, showCursor: props.showCursor, focus: props.focus, terminalFocus, invert, hidePlaceholderText }); useInput(wrappedOnInput, { isActive: props.focus }); const commandWithoutArgs = props.value && props.value.trim().indexOf(" ") === -1 || props.value && props.value.endsWith(" "); const showArgumentHint = Boolean(props.argumentHint && props.value && commandWithoutArgs && props.value.startsWith("/")); const cursorFiltered = props.showCursor && props.highlights ? props.highlights.filter(h => h.dimColor || props.cursorOffset < h.start || props.cursorOffset >= h.end) : props.highlights; const { viewportCharOffset, viewportCharEnd } = inputState; const filteredHighlights = cursorFiltered && viewportCharOffset > 0 ? cursorFiltered.filter(h_0 => h_0.end > viewportCharOffset && h_0.start < viewportCharEnd).map(h_1 => ({ ...h_1, start: Math.max(0, h_1.start - viewportCharOffset), end: h_1.end - viewportCharOffset })) : cursorFiltered; const hasHighlights = filteredHighlights && filteredHighlights.length > 0; if (hasHighlights) { return {showArgumentHint && {props.value?.endsWith(" ") ? "" : " "}{props.argumentHint}}{children}; } const T0 = Box; const T1 = Text; const t4 = "truncate-end"; const t5 = showPlaceholder && props.placeholderElement ? props.placeholderElement : showPlaceholder && renderedPlaceholder ? {renderedPlaceholder} : {renderedValue}; const t6 = showArgumentHint && {props.value?.endsWith(" ") ? "" : " "}{props.argumentHint}; let t7; if ($[4] !== T1 || $[5] !== children || $[6] !== props || $[7] !== t5 || $[8] !== t6) { t7 = {t5}{t6}{children}; $[4] = T1; $[5] = children; $[6] = props; $[7] = t5; $[8] = t6; $[9] = t7; } else { t7 = $[9]; } let t8; if ($[10] !== T0 || $[11] !== cursorRef || $[12] !== t7) { t8 = {t7}; $[10] = T0; $[11] = cursorRef; $[12] = t7; $[13] = t8; } else { t8 = $[13]; } return t8; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlbmRlclBsYWNlaG9sZGVyIiwidXNlUGFzdGVIYW5kbGVyIiwidXNlRGVjbGFyZWRDdXJzb3IiLCJBbnNpIiwiQm94IiwiVGV4dCIsInVzZUlucHV0IiwiQmFzZUlucHV0U3RhdGUiLCJCYXNlVGV4dElucHV0UHJvcHMiLCJUZXh0SGlnaGxpZ2h0IiwiSGlnaGxpZ2h0ZWRJbnB1dCIsIkJhc2VUZXh0SW5wdXRDb21wb25lbnRQcm9wcyIsImlucHV0U3RhdGUiLCJjaGlsZHJlbiIsIlJlYWN0Tm9kZSIsInRlcm1pbmFsRm9jdXMiLCJoaWdobGlnaHRzIiwiaW52ZXJ0IiwidGV4dCIsImhpZGVQbGFjZWhvbGRlclRleHQiLCJCYXNlVGV4dElucHV0IiwidDAiLCIkIiwiX2MiLCJwcm9wcyIsIm9uSW5wdXQiLCJyZW5kZXJlZFZhbHVlIiwiY3Vyc29yTGluZSIsImN1cnNvckNvbHVtbiIsInQxIiwiQm9vbGVhbiIsImZvY3VzIiwic2hvd0N1cnNvciIsInQyIiwibGluZSIsImNvbHVtbiIsImFjdGl2ZSIsImN1cnNvclJlZiIsIndyYXBwZWRPbklucHV0IiwiaXNQYXN0aW5nIiwidDMiLCJvblBhc3RlIiwiaW5wdXQiLCJrZXkiLCJyZXR1cm4iLCJvbkltYWdlUGFzdGUiLCJvbklzUGFzdGluZ0NoYW5nZSIsInVzZUVmZmVjdCIsInNob3dQbGFjZWhvbGRlciIsInJlbmRlcmVkUGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsInZhbHVlIiwiaXNBY3RpdmUiLCJjb21tYW5kV2l0aG91dEFyZ3MiLCJ0cmltIiwiaW5kZXhPZiIsImVuZHNXaXRoIiwic2hvd0FyZ3VtZW50SGludCIsImFyZ3VtZW50SGludCIsInN0YXJ0c1dpdGgiLCJjdXJzb3JGaWx0ZXJlZCIsImZpbHRlciIsImgiLCJkaW1Db2xvciIsImN1cnNvck9mZnNldCIsInN0YXJ0IiwiZW5kIiwidmlld3BvcnRDaGFyT2Zmc2V0Iiwidmlld3BvcnRDaGFyRW5kIiwiZmlsdGVyZWRIaWdobGlnaHRzIiwiaF8wIiwibWFwIiwiaF8xIiwiTWF0aCIsIm1heCIsImhhc0hpZ2hsaWdodHMiLCJsZW5ndGgiLCJUMCIsIlQxIiwidDQiLCJ0NSIsInBsYWNlaG9sZGVyRWxlbWVudCIsInQ2IiwidDciLCJ0OCJdLCJzb3VyY2VzIjpbIkJhc2VUZXh0SW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHJlbmRlclBsYWNlaG9sZGVyIH0gZnJvbSAnLi4vaG9va3MvcmVuZGVyUGxhY2Vob2xkZXIuanMnXG5pbXBvcnQgeyB1c2VQYXN0ZUhhbmRsZXIgfSBmcm9tICcuLi9ob29rcy91c2VQYXN0ZUhhbmRsZXIuanMnXG5pbXBvcnQgeyB1c2VEZWNsYXJlZEN1cnNvciB9IGZyb20gJy4uL2luay9ob29rcy91c2UtZGVjbGFyZWQtY3Vyc29yLmpzJ1xuaW1wb3J0IHsgQW5zaSwgQm94LCBUZXh0LCB1c2VJbnB1dCB9IGZyb20gJy4uL2luay5qcydcbmltcG9ydCB0eXBlIHtcbiAgQmFzZUlucHV0U3RhdGUsXG4gIEJhc2VUZXh0SW5wdXRQcm9wcyxcbn0gZnJvbSAnLi4vdHlwZXMvdGV4dElucHV0VHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFRleHRIaWdobGlnaHQgfSBmcm9tICcuLi91dGlscy90ZXh0SGlnaGxpZ2h0aW5nLmpzJ1xuaW1wb3J0IHsgSGlnaGxpZ2h0ZWRJbnB1dCB9IGZyb20gJy4vUHJvbXB0SW5wdXQvU2hpbW1lcmVkSW5wdXQuanMnXG5cbnR5cGUgQmFzZVRleHRJbnB1dENvbXBvbmVudFByb3BzID0gQmFzZVRleHRJbnB1dFByb3BzICYge1xuICBpbnB1dFN0YXRlOiBCYXNlSW5wdXRTdGF0ZVxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICB0ZXJtaW5hbEZvY3VzOiBib29sZWFuXG4gIGhpZ2hsaWdodHM/OiBUZXh0SGlnaGxpZ2h0W11cbiAgaW52ZXJ0PzogKHRleHQ6IHN0cmluZykgPT4gc3RyaW5nXG4gIGhpZGVQbGFjZWhvbGRlclRleHQ/OiBib29sZWFuXG59XG5cbi8qKlxuICogQSBiYXNlIGNvbXBvbmVudCBmb3IgdGV4dCBpbnB1dHMgdGhhdCBoYW5kbGVzIHJlbmRlcmluZyBhbmQgYmFzaWMgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEJhc2VUZXh0SW5wdXQoe1xuICBpbnB1dFN0YXRlLFxuICBjaGlsZHJlbixcbiAgdGVybWluYWxGb2N1cyxcbiAgaW52ZXJ0LFxuICBoaWRlUGxhY2Vob2xkZXJUZXh0LFxuICAuLi5wcm9wc1xufTogQmFzZVRleHRJbnB1dENvbXBvbmVudFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgeyBvbklucHV0LCByZW5kZXJlZFZhbHVlLCBjdXJzb3JMaW5lLCBjdXJzb3JDb2x1bW4gfSA9IGlucHV0U3RhdGVcblxuICAvLyBQYXJrIHRoZSBuYXRpdmUgdGVybWluYWwgY3Vyc29yIGF0IHRoZSBpbnB1dCBjYXJldC4gVGVybWluYWwgZW11bGF0b3JzXG4gIC8vIHBvc2l0aW9uIElNRSBwcmVlZGl0IHRleHQgYXQgdGhlIHBoeXNpY2FsIGN1cnNvciwgYW5kIHNjcmVlbiByZWFkZXJzIC9cbiAgLy8gc2NyZWVuIG1hZ25pZmllcnMgdHJhY2sgaXQg4oCUIHNvIHBhcmtpbmcgaGVyZSBtYWtlcyBDSksgaW5wdXQgYXBwZWFyXG4gIC8vIGlubGluZSBhbmQgbGV0cyBhY2Nlc3NpYmlsaXR5IHRvb2xzIGZvbGxvdyB0aGUgaW5wdXQuIFRoZSBCb3ggcmVmIGJlbG93XG4gIC8vIGlzIHRoZSB5b2dhIGxheW91dCBvcmlnaW47IChjdXJzb3JMaW5lLCBjdXJzb3JDb2x1bW4pIGlzIHJlbGF0aXZlIHRvIGl0LlxuICAvLyBPbmx5IGFjdGl2ZSB3aGVuIHRoZSBpbnB1dCBpcyBmb2N1c2VkLCBzaG93aW5nIGl0cyBjdXJzb3IsIGFuZCB0aGVcbiAgLy8gdGVybWluYWwgaXRzZWxmIGhhcyBmb2N1cy5cbiAgY29uc3QgY3Vyc29yUmVmID0gdXNlRGVjbGFyZWRDdXJzb3Ioe1xuICAgIGxpbmU6IGN1cnNvckxpbmUsXG4gICAgY29sdW1uOiBjdXJzb3JDb2x1bW4sXG4gICAgYWN0aXZlOiBCb29sZWFuKHByb3BzLmZvY3VzICYmIHByb3BzLnNob3dDdXJzb3IgJiYgdGVybWluYWxGb2N1cyksXG4gIH0pXG5cbiAgY29uc3QgeyB3cmFwcGVkT25JbnB1dCwgaXNQYXN0aW5nIH0gPSB1c2VQYXN0ZUhhbmRsZXIoe1xuICAgIG9uUGFzdGU6IHByb3BzLm9uUGFzdGUsXG4gICAgb25JbnB1dDogKGlucHV0LCBrZXkpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgRW50ZXIga2V5IGZyb20gdHJpZ2dlcmluZyBzdWJtaXNzaW9uIGR1cmluZyBwYXN0ZVxuICAgICAgaWYgKGlzUGFzdGluZyAmJiBrZXkucmV0dXJuKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgb25JbnB1dChpbnB1dCwga2V5KVxuICAgIH0sXG4gICAgb25JbWFnZVBhc3RlOiBwcm9wcy5vbkltYWdlUGFzdGUsXG4gIH0pXG5cbiAgLy8gTm90aWZ5IHBhcmVudCB3aGVuIHBhc3RlIHN0YXRlIGNoYW5nZXNcbiAgY29uc3QgeyBvbklzUGFzdGluZ0NoYW5nZSB9ID0gcHJvcHNcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAob25Jc1Bhc3RpbmdDaGFuZ2UpIHtcbiAgICAgIG9uSXNQYXN0aW5nQ2hhbmdlKGlzUGFzdGluZylcbiAgICB9XG4gIH0sIFtpc1Bhc3RpbmcsIG9uSXNQYXN0aW5nQ2hhbmdlXSlcblxuICBjb25zdCB7IHNob3dQbGFjZWhvbGRlciwgcmVuZGVyZWRQbGFjZWhvbGRlciB9ID0gcmVuZGVyUGxhY2Vob2xkZXIoe1xuICAgIHBsYWNlaG9sZGVyOiBwcm9wcy5wbGFjZWhvbGRlcixcbiAgICB2YWx1ZTogcHJvcHMudmFsdWUsXG4gICAgc2hvd0N1cnNvcjogcHJvcHMuc2hvd0N1cnNvcixcbiAgICBmb2N1czogcHJvcHMuZm9jdXMsXG4gICAgdGVybWluYWxGb2N1cyxcbiAgICBpbnZlcnQsXG4gICAgaGlkZVBsYWNlaG9sZGVyVGV4dCxcbiAgfSlcblxuICB1c2VJbnB1dCh3cmFwcGVkT25JbnB1dCwgeyBpc0FjdGl2ZTogcHJvcHMuZm9jdXMgfSlcblxuICAvLyBTaG93IGFyZ3VtZW50IGhpbnQgb25seSB3aGVuIHdlIGhhdmUgYSB2YWx1ZSBhbmQgdGhlIGhpbnQgaXMgcHJvdmlkZWRcbiAgLy8gT25seSBzaG93IHRoZSBhcmd1bWVudCBoaW50IHdoZW46XG4gIC8vIDEuIFdlIGhhdmUgYSBoaW50IHRvIHNob3dcbiAgLy8gMi4gV2UgaGF2ZSBhIGNvbW1hbmQgdHlwZWQgKHZhbHVlIGlzIG5vdCBlbXB0eSlcbiAgLy8gMy4gVGhlIGNvbW1hbmQgZG9lc24ndCBoYXZlIGFyZ3VtZW50cyB5ZXQgKG5vIHRleHQgYWZ0ZXIgdGhlIHNwYWNlKVxuICAvLyA0LiBXZSdyZSBhY3R1YWxseSB0eXBpbmcgYSBjb21tYW5kICh0aGUgdmFsdWUgc3RhcnRzIHdpdGggLylcbiAgY29uc3QgY29tbWFuZFdpdGhvdXRBcmdzID1cbiAgICAocHJvcHMudmFsdWUgJiYgcHJvcHMudmFsdWUudHJpbSgpLmluZGV4T2YoJyAnKSA9PT0gLTEpIHx8XG4gICAgKHByb3BzLnZhbHVlICYmIHByb3BzLnZhbHVlLmVuZHNXaXRoKCcgJykpXG5cbiAgY29uc3Qgc2hvd0FyZ3VtZW50SGludCA9IEJvb2xlYW4oXG4gICAgcHJvcHMuYXJndW1lbnRIaW50ICYmXG4gICAgICBwcm9wcy52YWx1ZSAmJlxuICAgICAgY29tbWFuZFdpdGhvdXRBcmdzICYmXG4gICAgICBwcm9wcy52YWx1ZS5zdGFydHNXaXRoKCcvJyksXG4gIClcblxuICAvLyBGaWx0ZXIgb3V0IGhpZ2hsaWdodHMgdGhhdCBjb250YWluIHRoZSBjdXJzb3IgcG9zaXRpb25cbiAgY29uc3QgY3Vyc29yRmlsdGVyZWQgPVxuICAgIHByb3BzLnNob3dDdXJzb3IgJiYgcHJvcHMuaGlnaGxpZ2h0c1xuICAgICAgPyBwcm9wcy5oaWdobGlnaHRzLmZpbHRlcihcbiAgICAgICAgICBoID0+XG4gICAgICAgICAgICBoLmRpbUNvbG9yIHx8XG4gICAgICAgICAgICBwcm9wcy5jdXJzb3JPZmZzZXQgPCBoLnN0YXJ0IHx8XG4gICAgICAgICAgICBwcm9wcy5jdXJzb3JPZmZzZXQgPj0gaC5lbmQsXG4gICAgICAgIClcbiAgICAgIDogcHJvcHMuaGlnaGxpZ2h0c1xuXG4gIC8vIEFkanVzdCBoaWdobGlnaHRzIGZvciB2aWV3cG9ydCB3aW5kb3dpbmc6IGhpZ2hsaWdodCBwb3NpdGlvbnMgcmVmZXJlbmNlIHRoZVxuICAvLyBmdWxsIGlucHV0IHRleHQsIGJ1dCByZW5kZXJlZFZhbHVlIG9ubHkgY29udGFpbnMgdGhlIHdpbmRvd2VkIHN1YnNldC5cbiAgY29uc3QgeyB2aWV3cG9ydENoYXJPZmZzZXQsIHZpZXdwb3J0Q2hhckVuZCB9ID0gaW5wdXRTdGF0ZVxuICBjb25zdCBmaWx0ZXJlZEhpZ2hsaWdodHMgPVxuICAgIGN1cnNvckZpbHRlcmVkICYmIHZpZXdwb3J0Q2hhck9mZnNldCA+IDBcbiAgICAgID8gY3Vyc29yRmlsdGVyZWRcbiAgICAgICAgICAuZmlsdGVyKGggPT4gaC5lbmQgPiB2aWV3cG9ydENoYXJPZmZzZXQgJiYgaC5zdGFydCA8IHZpZXdwb3J0Q2hhckVuZClcbiAgICAgICAgICAubWFwKGggPT4gKHtcbiAgICAgICAgICAgIC4uLmgsXG4gICAgICAgICAgICBzdGFydDogTWF0aC5tYXgoMCwgaC5zdGFydCAtIHZpZXdwb3J0Q2hhck9mZnNldCksXG4gICAgICAgICAgICBlbmQ6IGguZW5kIC0gdmlld3BvcnRDaGFyT2Zmc2V0LFxuICAgICAgICAgIH0pKVxuICAgICAgOiBjdXJzb3JGaWx0ZXJlZFxuXG4gIGNvbnN0IGhhc0hpZ2hsaWdodHMgPSBmaWx0ZXJlZEhpZ2hsaWdodHMgJiYgZmlsdGVyZWRIaWdobGlnaHRzLmxlbmd0aCA+IDBcblxuICBpZiAoaGFzSGlnaGxpZ2h0cykge1xuICAgIHJldHVybiAoXG4gICAgICA8Qm94IHJlZj17Y3Vyc29yUmVmfT5cbiAgICAgICAgPEhpZ2hsaWdodGVkSW5wdXRcbiAgICAgICAgICB0ZXh0PXtyZW5kZXJlZFZhbHVlfVxuICAgICAgICAgIGhpZ2hsaWdodHM9e2ZpbHRlcmVkSGlnaGxpZ2h0c31cbiAgICAgICAgLz5cbiAgICAgICAge3Nob3dBcmd1bWVudEhpbnQgJiYgKFxuICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPlxuICAgICAgICAgICAge3Byb3BzLnZhbHVlPy5lbmRzV2l0aCgnICcpID8gJycgOiAnICd9XG4gICAgICAgICAgICB7cHJvcHMuYXJndW1lbnRIaW50fVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgKX1cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9Cb3g+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IHJlZj17Y3Vyc29yUmVmfT5cbiAgICAgIDxUZXh0IHdyYXA9XCJ0cnVuY2F0ZS1lbmRcIiBkaW1Db2xvcj17cHJvcHMuZGltQ29sb3J9PlxuICAgICAgICB7c2hvd1BsYWNlaG9sZGVyICYmIHByb3BzLnBsYWNlaG9sZGVyRWxlbWVudCA/IChcbiAgICAgICAgICBwcm9wcy5wbGFjZWhvbGRlckVsZW1lbnRcbiAgICAgICAgKSA6IHNob3dQbGFjZWhvbGRlciAmJiByZW5kZXJlZFBsYWNlaG9sZGVyID8gKFxuICAgICAgICAgIDxBbnNpPntyZW5kZXJlZFBsYWNlaG9sZGVyfTwvQW5zaT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8QW5zaT57cmVuZGVyZWRWYWx1ZX08L0Fuc2k+XG4gICAgICAgICl9XG4gICAgICAgIHtzaG93QXJndW1lbnRIaW50ICYmIChcbiAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICAgIHtwcm9wcy52YWx1ZT8uZW5kc1dpdGgoJyAnKSA/ICcnIDogJyAnfVxuICAgICAgICAgICAge3Byb3BzLmFyZ3VtZW50SGludH1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICl9XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVGV4dD5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsaUJBQWlCLFFBQVEsK0JBQStCO0FBQ2pFLFNBQVNDLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsU0FBU0MsaUJBQWlCLFFBQVEscUNBQXFDO0FBQ3ZFLFNBQVNDLElBQUksRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsUUFBUSxXQUFXO0FBQ3JELGNBQ0VDLGNBQWMsRUFDZEMsa0JBQWtCLFFBQ2IsNEJBQTRCO0FBQ25DLGNBQWNDLGFBQWEsUUFBUSw4QkFBOEI7QUFDakUsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBRWxFLEtBQUtDLDJCQUEyQixHQUFHSCxrQkFBa0IsR0FBRztFQUN0REksVUFBVSxFQUFFTCxjQUFjO0VBQzFCTSxRQUFRLENBQUMsRUFBRWQsS0FBSyxDQUFDZSxTQUFTO0VBQzFCQyxhQUFhLEVBQUUsT0FBTztFQUN0QkMsVUFBVSxDQUFDLEVBQUVQLGFBQWEsRUFBRTtFQUM1QlEsTUFBTSxDQUFDLEVBQUUsQ0FBQ0MsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU07RUFDakNDLG1CQUFtQixDQUFDLEVBQUUsT0FBTztBQUMvQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBQUMsY0FBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUF1QjtJQUFBWCxVQUFBO0lBQUFDLFFBQUE7SUFBQUUsYUFBQTtJQUFBRSxNQUFBO0lBQUFFLG1CQUFBO0lBQUEsR0FBQUs7RUFBQSxJQUFBSCxFQU9BO0VBQzVCO0lBQUFJLE9BQUE7SUFBQUMsYUFBQTtJQUFBQyxVQUFBO0lBQUFDO0VBQUEsSUFBNkRoQixVQUFVO0VBWTdELE1BQUFpQixFQUFBLEdBQUFDLE9BQU8sQ0FBQ04sS0FBSyxDQUFBTyxLQUEwQixJQUFoQlAs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