@pie-element/math-templated 5.0.2-esm.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","sources":["../src/main.jsx","../src/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport { mq, HorizontalKeypad, updateSpans } from '@pie-lib/math-input';\nimport { color, Collapsible, Readable, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport MathQuill from '@pie-framework/mathquill';\nimport { Customizable } from '@pie-lib/mask-markup';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport ReactDOM from 'react-dom';\n\nlet registered = false;\n\n// Define a regex pattern to match {{number}}\nconst REGEX = /(\\{\\{\\d+\\}\\})/gm;\nconst DEFAULT_KEYPAD_VARIANT = 6;\n\n// !!! If you're using Chrome but have selected the \"iPad\" device in Chrome Developer Tools, the navigator.userAgent string may still report as\n// Safari because Chrome on iOS actually uses the Safari rendering engine under the hood due to Apple's restrictions on third-party browser engines.\n// When you select the \"iPad\" device in Chrome Developer Tools, you're essentially emulating the behavior of Safari on an iPad, including the user agent string.\n// Therefore, even though you're using Chrome, the user agent string will resemble that of Safari on an iPad.\n// Since the regular expression /^((?!chrome|android).)*safari/i checks for the presence of \"safari\" in the user agent string while excluding \"chrome\" and \"android\",\n// it will return true in this case because \"safari\" is present in the user agent string emulated by Chrome when in iPad mode.\nconst IS_SAFARI = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\nfunction getKeyPadWidth(additionalKeys = [], equationEditor) {\n return Math.floor(additionalKeys.length / 5) * 30 + (equationEditor === 'miscellaneous' ? 600 : 500);\n}\n\nfunction splitByParts(text) {\n // Use the regex pattern to split the text\n const parts = text.split(REGEX);\n // Filter out empty strings that might result from splitting\n return parts.filter((part) => part);\n}\n\nfunction prepareForStatic(model, state) {\n const { responses, disabled, markup, printMode, alwaysShowCorrect } = model || {};\n\n if (markup) {\n if (state.showCorrect) {\n return Object.keys(responses || {}).reduce((acc, responseKey) => {\n acc[responseKey] = responses?.[responseKey]?.answer;\n\n return acc;\n }, {});\n }\n\n const splitted = splitByParts(markup);\n\n return splitted.reduce((acc, split) => {\n if (split.match(REGEX)) {\n const responseKey = Main.getResponseKey(split);\n const answer = state.session.answers[`r${responseKey}`];\n\n if (printMode && !alwaysShowCorrect) {\n const blankSpace = '\\\\ \\\\ '.repeat(30) + '\\\\embed{newLine}[] ';\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${blankSpace.repeat(3)}}`,\n };\n }\n\n if (disabled) {\n return {\n ...acc,\n [responseKey]: `\\\\embed{answerBlock}[r${responseKey}]`,\n };\n }\n\n return {\n ...acc,\n [responseKey]: `\\\\MathQuillMathField[r${responseKey}]{${(answer && answer.value) || ''}}`,\n };\n }\n\n return acc;\n }, {});\n }\n}\n\nexport class Main extends React.Component {\n // removes {{ and }} and returns only key response. Eg: {{0}} => 0\n static getResponseKey = (response) => (response || '').replaceAll('{{', '').replaceAll('}}', '');\n\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n onSessionChange: PropTypes.func,\n model: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const answers = {};\n const { model, session } = props || {};\n const { markup, alwaysShowCorrect } = model || {};\n const { answers: sessionAnswers } = session || {};\n\n if (markup) {\n // build out local state model using responses declared in markup\n (markup || '').replace(REGEX, (response) => {\n const responseKey = Main.getResponseKey(response);\n const sessionAnswerForResponse = sessionAnswers && sessionAnswers[`r${responseKey}`];\n\n answers[`r${responseKey}`] = { value: sessionAnswerForResponse?.value || '' };\n });\n }\n\n this.state = {\n session: { ...props.session, answers },\n activeAnswerBlock: '',\n showCorrect: alwaysShowCorrect || false,\n };\n }\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => ({\n htmlString: `<div class=\"${classes.blockContainer}\">\n <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n <div class=\"${classes.blockMath}\">\n <span id=\"${data}\"></span>\n </div>\n </div>`,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n }));\n\n registered = true;\n }\n }\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model, classes } = this.props;\n const { session, showCorrect } = this.state;\n const answers = session.answers;\n\n if (this.root && model.disabled && !showCorrect) {\n Object.keys(answers).forEach((answerId) => {\n const el = this.root.querySelector(`#${answerId}`);\n const indexEl = this.root.querySelector(`#${answerId}Index`);\n\n if (el) {\n let MQ = MathQuill.getInterface(2);\n const answer = answers[answerId];\n\n el.textContent = (answer && answer.value) || '';\n\n if (model.view) {\n el.parentElement.parentElement.classList.remove(classes.correct);\n el.parentElement.parentElement.classList.remove(classes.incorrect);\n }\n\n MQ.StaticMath(el);\n\n indexEl.textContent = 'R';\n }\n });\n }\n\n renderMath(this.root);\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel = {} } = nextProps || {};\n const { markup = '', env = {} } = model || {};\n const { markup: nextMarkup = '', env: nextEnv = {}, alwaysShowCorrect: nextAlwaysShowCorrect = false } = nextModel;\n\n const isEvaluateMode = (env) => env && env.mode === 'evaluate';\n\n if (!isEvaluateMode(env) || !isEvaluateMode(nextEnv)) {\n this.setState((prevState) => ({ ...prevState.session, showCorrect: false }));\n }\n\n if (nextAlwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n\n const matches = markup.match(REGEX);\n const nextMatches = nextMarkup.match(REGEX);\n\n // If markup changed, and we no longer have the same response area, the session needs to be updated\n if (!isEqual(matches, nextMatches)) {\n const newAnswers = {};\n const answers = this.state.session.answers;\n\n (nextMatches || []).forEach((nextMatch) => {\n const responseKey = Main.getResponseKey(nextMatch);\n const sessionAnswerForResponse = answers && answers[`r${responseKey}`];\n\n // build out local state model using responses declared in markup\n newAnswers[`r${responseKey}`] = { value: sessionAnswerForResponse?.value || '' };\n });\n\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: newAnswers,\n },\n }),\n () => {\n this.props.onSessionChange(this.state.session);\n this.handleAnswerBlockDomUpdate();\n },\n );\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const sameModel = isEqual(this.props.model, nextProps.model);\n const sameState = isEqual(this.state, nextState);\n\n return !sameModel || !sameState;\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n setTimeout(() => renderMath(this.root), 100);\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n onSubFieldFocus = (id) => {\n this.setState({ activeAnswerBlock: id });\n };\n\n toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') return data;\n\n if (type === 'answer') return { type: 'answer', ...data };\n\n if (value === 'clear') return { type: 'clear' };\n\n return { type: 'write', value };\n };\n\n setInput = (input) => {\n this.input = input;\n };\n\n onClick = (data) => {\n const c = this.toNodeData(data);\n\n if (c.type === 'clear') {\n this.input.clear();\n } else if (c.type === 'command') {\n if (Array.isArray(c.value)) {\n c.value.forEach((vv) => {\n this.input.cmd(vv);\n });\n } else {\n this.input.cmd(c.value);\n }\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else {\n this.input.write(c.value);\n }\n\n this.input.focus();\n };\n\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show }, this.handleAnswerBlockDomUpdate);\n };\n\n subFieldChanged = (name, subfieldValue) => {\n updateSpans();\n\n if (name) {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: {\n ...state.session.answers,\n [name]: { value: subfieldValue },\n },\n },\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n getFieldName = (changeField, fields) => {\n const { answers } = this.state.session;\n\n if (Object.keys(answers || {}).length) {\n const keys = Object.keys(answers);\n\n return keys.find((k) => {\n const tf = fields[k];\n\n return tf && tf.id == changeField.id;\n });\n }\n };\n\n onBlur = (e) => {\n const { relatedTarget, currentTarget } = e || {};\n\n function getParentWithRoleTooltip(element, depth = 0) {\n // only run this max 16 times\n if (!element || depth >= 16) return null;\n\n const parent = element.offsetParent;\n\n if (!parent) return null;\n\n if (parent.getAttribute('role') === 'tooltip') {\n return parent;\n }\n\n return getParentWithRoleTooltip(parent, depth + 1);\n }\n\n function getDeepChildDataKeypad(element, depth = 0) {\n // only run this max 4 times\n if (!element || depth >= 4) return null;\n\n const child = element?.children?.[0];\n\n if (!child) return null;\n\n if (child.attributes && child.attributes['data-keypad']) {\n return child;\n }\n\n return getDeepChildDataKeypad(child, depth + 1);\n }\n\n const parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);\n const childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;\n\n if (!relatedTarget || !currentTarget || !childWithDataKeypad?.attributes['data-keypad']) {\n this.setState({ activeAnswerBlock: '' });\n }\n };\n\n // function for tooltip\n setTooltipRef(ref) {\n // Safari Hack: https://stackoverflow.com/a/42764495/5757635\n setTimeout(() => {\n if (ref && IS_SAFARI) {\n const div = document.querySelector(\"[role='tooltip']\");\n\n if (div) {\n const el = div.firstChild;\n el.setAttribute('tabindex', '-1');\n }\n }\n }, 1);\n }\n\n renderTeacherInstructions = () => {\n const { model, classes } = this.props;\n const { teacherInstructions, animationsDisabled } = model || {};\n const showTeacherInstructions =\n teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n return (\n showTeacherInstructions && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}>\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )\n );\n };\n\n renderRationale = () => {\n const { model, classes } = this.props;\n const { rationale, animationsDisabled } = model || {};\n const rationaleDiv = <PreviewPrompt prompt={rationale} />;\n const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));\n\n return (\n showRationale && (\n <div className={classes.collapsible}>\n {!animationsDisabled ? (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>{rationaleDiv}</Collapsible>\n ) : (\n rationaleDiv\n )}\n </div>\n )\n );\n };\n\n renderPlayerContent = () => {\n const { model, classes } = this.props;\n const { activeAnswerBlock, showCorrect, session } = this.state;\n const {\n correctness,\n disabled,\n view,\n responses,\n equationEditor,\n customKeys,\n feedback,\n env: { mode } = {},\n printMode,\n alwaysShowCorrect,\n } = model || {};\n\n const emptyResponse = isEmpty(responses);\n const additionalKeys = generateAdditionalKeys(customKeys);\n const statics = prepareForStatic(model, this.state) || '';\n const studentPrintMode = printMode && !alwaysShowCorrect;\n\n return (\n <div className={classes.inputAndKeypadContainer}>\n <Customizable\n disabled={disabled}\n markup={model.markup}\n // TODO remove the need of value?\n value={{}}\n customMarkMarkupComponent={(id) => {\n const responseIsCorrect = mode === 'evaluate' && feedback && feedback[id];\n\n const MQStatic = (\n <mq.Static\n className={classes.static}\n ref={(mqStatic) => {\n this.mqStatic = mqStatic || this.mqStatic;\n }}\n latex={statics[id]}\n onSubFieldChange={this.subFieldChanged}\n getFieldName={this.getFieldName}\n setInput={this.setInput}\n onSubFieldFocus={this.onSubFieldFocus}\n onBlur={this.onBlur}\n />\n );\n\n return (\n <div\n className={cx(classes.expression, {\n [classes.incorrect]: !emptyResponse && !responseIsCorrect && !showCorrect,\n [classes.correct]: !emptyResponse && (responseIsCorrect || showCorrect),\n [classes.showCorrectness]: !emptyResponse && disabled && correctness && !view,\n [classes.correctAnswerShown]: showCorrect,\n })}\n >\n <Tooltip\n ref={(ref) => this.setTooltipRef(ref)}\n enterTouchDelay={0}\n interactive\n open={activeAnswerBlock === `r${id}`}\n classes={{ tooltip: classes.keypadTooltip, popper: classes.keypadTooltipPopper }}\n title={Object.keys(session.answers).map(\n (answerId) =>\n (answerId === activeAnswerBlock && !(showCorrect || disabled) && (\n <div\n data-keypad={true}\n key={answerId}\n className={classes.responseContainer}\n style={{ width: getKeyPadWidth(additionalKeys, equationEditor) }}\n >\n <HorizontalKeypad\n additionalKeys={additionalKeys}\n mode={equationEditor || DEFAULT_KEYPAD_VARIANT}\n onClick={this.onClick}\n />\n </div>\n )) ||\n null,\n )}\n >\n {studentPrintMode ? <div className={classes.printContainer}>{MQStatic}</div> : MQStatic}\n </Tooltip>\n </div>\n );\n }}\n />\n </div>\n );\n };\n\n render() {\n const { model, classes } = this.props;\n const { showCorrect } = this.state;\n const {\n prompt,\n env: { mode, role } = {},\n extraCSSRules,\n correctness,\n responses,\n language,\n showNote,\n note,\n } = model || {};\n const emptyResponse = isEmpty(responses);\n const showCorrectAnswerToggle = !emptyResponse && correctness && correctness.correctness !== 'correct';\n const displayNote = (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n\n return (\n <UiLayout\n extraCSSRules={extraCSSRules}\n className={classes.mainContainer}\n ref={(r) => {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(r);\n\n this.root = domNode || this.root;\n }}\n >\n <div className={classes.main}>\n {/* what is srOnly ? */}\n {mode === 'gather' && <h2 className={classes.srOnly}>Math Equation Response Question</h2>}\n\n <div className={classes.main}>\n {showCorrectAnswerToggle && (\n <CorrectAnswerToggle\n language={language}\n className={classes.toggle}\n show\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n )}\n </div>\n\n {this.renderTeacherInstructions()}\n\n {prompt && (\n <div className={classes.promptContainer}>\n <PreviewPrompt prompt={prompt} />\n </div>\n )}\n\n <Readable false>{this.renderPlayerContent()}</Readable>\n\n {displayNote && <div className={cx(classes.note, 'note')} dangerouslySetInnerHTML={{ __html: note }} />}\n\n {this.renderRationale()}\n </div>\n </UiLayout>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'inline-block',\n },\n tooltip: {\n background: `${color.primaryLight()} !important`,\n color: color.text(),\n padding: theme.spacing.unit * 2,\n border: `1px solid ${color.secondary()}`,\n fontSize: '16px',\n '& :not(.MathJax) > table tr': {\n '&:nth-child(2n)': {\n backgroundColor: 'unset !important',\n },\n },\n },\n tooltipPopper: {\n opacity: 1,\n },\n keypadTooltip: {\n fontSize: 'initial',\n background: 'transparent',\n width: '600px',\n marginTop: 0,\n paddingTop: 0,\n },\n keypadTooltipPopper: {\n background: 'transparent',\n width: '650px',\n opacity: 1,\n },\n promptContainer: {\n marginBottom: theme.spacing.unit * 2,\n },\n main: {\n width: '100%',\n position: 'relative',\n backgroundColor: color.background(),\n color: color.text(),\n },\n title: {\n fontSize: '1.1rem',\n display: 'block',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n collapsible: {\n marginBottom: theme.spacing.unit * 2,\n },\n responseContainer: {\n zIndex: 10,\n minWidth: '400px',\n marginTop: theme.spacing.unit * 2,\n },\n expression: {\n maxWidth: 'fit-content',\n '& > .mq-math-mode': {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n minWidth: '10px',\n padding: theme.spacing.unit / 4,\n },\n },\n '& sup': {\n top: 0,\n },\n },\n },\n static: {\n '& > .mq-root-block': {\n '& > .mq-editable-field': {\n borderColor: color.text(),\n },\n },\n },\n inputAndKeypadContainer: {\n position: 'relative',\n '& > div > div': {\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n },\n '& .mq-overarrow-inner': {\n border: 'none !important',\n padding: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '-2.4em',\n right: '-1px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n showCorrectness: {\n border: '2px solid',\n },\n correctAnswerShown: {\n padding: theme.spacing.unit,\n letterSpacing: '0.5px',\n },\n correct: {\n borderColor: `${color.correct()} !important`,\n },\n incorrect: {\n borderColor: `${color.incorrect()} !important`,\n },\n blockContainer: {\n margin: `${theme.spacing.unit}px !important`,\n display: 'inline-flex',\n border: '2px solid grey !important',\n },\n blockResponse: {\n flex: 2,\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem !important',\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: `2px solid ${color.disabled()} !important`,\n },\n toggle: {\n color: color.text(),\n marginBottom: theme.spacing.unit * 2,\n },\n blockMath: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: `${theme.spacing.unit / 2}px !important`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 8,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n printContainer: {\n marginBottom: theme.spacing.unit,\n pointerEvents: 'none',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n note: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {SessionChangedEvent, ModelSetEvent} from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport _ from 'lodash';\n\nexport default class MathTemplated extends HTMLElement {\n constructor() {\n super();\n this.sessionChangedEventCaller = _.debounce(() => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), true));\n }, 1000);\n }\n\n set model(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this.isSessionComplete(), this._model !== undefined));\n }\n\n get model() {\n return this._model;\n }\n\n set session(s) {\n this._session = s;\n\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n isSessionComplete() {\n // a method to check if student answered the question\n return true;\n }\n\n onSessionChange(session) {\n // you can add an extra step here to validate session\n Object.keys(session).map((key) => {\n this._session[key] = session[key];\n });\n\n this.sessionChangedEventCaller();\n this.render();\n }\n\n connectedCallback() {\n // TODO set accessibility labels\n\n this.render();\n }\n\n render() {\n if (!this._model || !this._session) {\n return;\n }\n\n if (this._model && this._session) {\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.onSessionChange.bind(this),\n });\n\n ReactDOM.render(el, this);\n }\n }\n}\n"],"names":["registered","REGEX","DEFAULT_KEYPAD_VARIANT","IS_SAFARI","test","navigator","userAgent","generateAdditionalKeys","keyData","map","key","name","latex","write","label","getKeyPadWidth","additionalKeys","equationEditor","Math","floor","length","splitByParts","text","parts","split","filter","part","prepareForStatic","model","state","responses","disabled","markup","printMode","alwaysShowCorrect","showCorrect","Object","keys","reduce","acc","responseKey","answer","splitted","match","Main","getResponseKey","session","answers","blankSpace","repeat","value","React","Component","constructor","props","handleAnswerBlockDomUpdate","classes","root","forEach","answerId","el","querySelector","indexEl","MQ","MathQuill","getInterface","textContent","view","parentElement","classList","remove","correct","incorrect","StaticMath","renderMath","onSubFieldFocus","id","setState","activeAnswerBlock","toNodeData","data","type","setInput","input","onClick","c","clear","Array","isArray","vv","cmd","keystroke","focus","callOnSessionChange","onSessionChange","toggleShowCorrect","show","subFieldChanged","subfieldValue","updateSpans","getFieldName","changeField","fields","find","k","tf","onBlur","e","relatedTarget","currentTarget","getParentWithRoleTooltip","element","depth","parent","offsetParent","getAttribute","getDeepChildDataKeypad","child","children","attributes","parentWithTooltipRole","childWithDataKeypad","renderTeacherInstructions","teacherInstructions","animationsDisabled","showTeacherInstructions","hasText","hasMedia","teacherInstructionsDiv","collapsible","hidden","visible","renderRationale","rationale","rationaleDiv","showRationale","renderPlayerContent","correctness","customKeys","feedback","env","mode","emptyResponse","isEmpty","statics","studentPrintMode","inputAndKeypadContainer","responseIsCorrect","MQStatic","static","mqStatic","cx","expression","showCorrectness","correctAnswerShown","ref","setTooltipRef","tooltip","keypadTooltip","popper","keypadTooltipPopper","responseContainer","width","printContainer","sessionAnswers","replace","response","sessionAnswerForResponse","UNSAFE_componentWillMount","window","registerEmbed","htmlString","blockContainer","blockResponse","blockMath","UNSAFE_componentWillReceiveProps","nextProps","nextModel","nextMarkup","nextEnv","nextAlwaysShowCorrect","isEvaluateMode","prevState","matches","nextMatches","isEqual","newAnswers","nextMatch","shouldComponentUpdate","nextState","sameModel","sameState","componentDidMount","setTimeout","componentDidUpdate","div","document","firstChild","setAttribute","render","prompt","role","extraCSSRules","language","showNote","note","showCorrectAnswerToggle","displayNote","mainContainer","r","domNode","ReactDOM","findDOMNode","main","srOnly","toggle","promptContainer","__html","replaceAll","propTypes","PropTypes","object","isRequired","func","styles","theme","color","backgroundColor","background","display","primaryLight","padding","spacing","unit","border","secondary","fontSize","tooltipPopper","opacity","marginTop","paddingTop","marginBottom","position","title","zIndex","minWidth","maxWidth","top","borderColor","alignItems","flexWrap","lineHeight","left","right","borderTop","letterSpacing","margin","flex","palette","grey","justifyContent","borderRight","pointerEvents","height","overflow","withStyles","MathTemplated","HTMLElement","sessionChangedEventCaller","_","debounce","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","m","_model","ModelSetEvent","isSessionComplete","undefined","s","_session","connectedCallback","createElement","bind"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAIA,UAAU,GAAG,KAAjB;;AAGA,MAAMC,KAAK,GAAG,iBAAd,CAAA;AACA,MAAMC,sBAAsB,GAAG,CAA/B;AAGA;AACA;AACA;AACA;AACA;;AACA,MAAMC,SAAS,GAAG,gCAAiCC,CAAAA,IAAjC,CAAsCC,SAAS,CAACC,SAAhD,CAAlB,CAAA;;AAEA,SAASC,sBAAT,CAAgCC,OAAO,GAAG,EAA1C,EAA8C;AAC5C,EAAA,OAAOA,OAAO,CAACC,GAAR,CAAaC,GAAD,KAAU;AAC3BC,IAAAA,IAAI,EAAED,GADqB;AAE3BE,IAAAA,KAAK,EAAEF,GAFoB;AAG3BG,IAAAA,KAAK,EAAEH,GAHoB;AAI3BI,IAAAA,KAAK,EAAEJ,GAAAA;AAJoB,GAAV,CAAZ,CAAP,CAAA;AAMD,CAAA;;AAED,SAASK,cAAT,CAAwBC,cAAc,GAAG,EAAzC,EAA6CC,cAA7C,EAA6D;AAC3D,EAAA,OAAOC,IAAI,CAACC,KAAL,CAAWH,cAAc,CAACI,MAAf,GAAwB,CAAnC,IAAwC,EAAxC,IAA8CH,cAAc,KAAK,eAAnB,GAAqC,GAArC,GAA2C,GAAzF,CAAP,CAAA;AACD,CAAA;;AAED,SAASI,YAAT,CAAsBC,IAAtB,EAA4B;AAC1B;AACA,EAAMC,MAAAA,KAAK,GAAGD,IAAI,CAACE,KAAL,CAAWvB,KAAX,CAAd,CAF0B;;AAI1B,EAAA,OAAOsB,KAAK,CAACE,MAAN,CAAcC,IAAD,IAAUA,IAAvB,CAAP,CAAA;AACD,CAAA;;AAED,SAASC,gBAAT,CAA0BC,KAA1B,EAAiCC,KAAjC,EAAwC;AACtC,EAAM,MAAA;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,QAAb;AAAuBC,IAAAA,MAAvB;AAA+BC,IAAAA,SAA/B;AAA0CC,IAAAA,iBAAAA;AAA1C,GAAgEN,GAAAA,KAAK,IAAI,EAA/E,CAAA;;AAEA,EAAA,IAAII,MAAJ,EAAY;AACV,IAAIH,IAAAA,KAAK,CAACM,WAAV,EAAuB;AACrB,MAAA,OAAOC,MAAM,CAACC,IAAP,CAAYP,SAAS,IAAI,EAAzB,CAA6BQ,CAAAA,MAA7B,CAAoC,CAACC,GAAD,EAAMC,WAAN,KAAsB;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAC/DD,QAAAA,GAAG,CAACC,WAAD,CAAH,GAAmBV,SAAnB,IAAmBA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAAA,GAAAA,SAAS,CAAGU,WAAH,CAA5B,KAAA,IAAA,GAAA,KAAA,CAAA,GAAmB,sBAA0BC,MAA7C,CAAA;AAEA,QAAA,OAAOF,GAAP,CAAA;AACD,OAJM,EAIJ,EAJI,CAAP,CAAA;AAKD,KAAA;;AAED,IAAA,MAAMG,QAAQ,GAAGrB,YAAY,CAACW,MAAD,CAA7B,CAAA;AAEA,IAAOU,OAAAA,QAAQ,CAACJ,MAAT,CAAgB,CAACC,GAAD,EAAMf,KAAN,KAAgB;AACrC,MAAA,IAAIA,KAAK,CAACmB,KAAN,CAAY1C,KAAZ,CAAJ,EAAwB;AACtB,QAAA,MAAMuC,WAAW,GAAGI,IAAI,CAACC,cAAL,CAAoBrB,KAApB,CAApB,CAAA;AACA,QAAMiB,MAAAA,MAAM,GAAGZ,KAAK,CAACiB,OAAN,CAAcC,OAAd,CAAuB,CAAA,CAAA,EAAGP,WAAY,CAAA,CAAtC,CAAf,CAAA;;AAEA,QAAA,IAAIP,SAAS,IAAI,CAACC,iBAAlB,EAAqC;AACnC,UAAA,MAAMc,UAAU,GAAG,QAAA,CAASC,MAAT,CAAgB,EAAhB,IAAsB,qBAAzC,CAAA;AAEA,UAAA,OAAA,QAAA,CAAA,EAAA,EACKV,GADL,EAAA;AAEE,YAACC,CAAAA,WAAD,GAAgB,CAAA,sBAAA,EAAwBA,WAAY,CAAA,EAAA,EAAIQ,UAAU,CAACC,MAAX,CAAkB,CAAlB,CAAqB,CAAA,CAAA,CAAA;AAF/E,WAAA,CAAA,CAAA;AAID,SAAA;;AAED,QAAA,IAAIlB,QAAJ,EAAc;AACZ,UAAA,OAAA,QAAA,CAAA,EAAA,EACKQ,GADL,EAAA;AAEE,YAACC,CAAAA,WAAD,GAAgB,CAAA,sBAAA,EAAwBA,WAAY,CAAA,CAAA,CAAA;AAFtD,WAAA,CAAA,CAAA;AAID,SAAA;;AAED,QAAA,OAAA,QAAA,CAAA,EAAA,EACKD,GADL,EAAA;AAEE,UAACC,CAAAA,WAAD,GAAgB,CAAA,sBAAA,EAAwBA,WAAY,CAAA,EAAA,EAAKC,MAAM,IAAIA,MAAM,CAACS,KAAlB,IAA4B,EAAG,CAAA,CAAA,CAAA;AAFzF,SAAA,CAAA,CAAA;AAID,OAAA;;AAED,MAAA,OAAOX,GAAP,CAAA;AACD,KA5BM,EA4BJ,EA5BI,CAAP,CAAA;AA6BD,GAAA;AACF,CAAA;;AAEM,MAAMK,IAAN,SAAmBO,KAAK,CAACC,SAAzB,CAAmC;AACxC;AAUAC,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,IAAA,KAAA,CAAMA,KAAN,CAAA,CAAA;;AADiB,IAgDnBC,IAAAA,CAAAA,0BAhDmB,GAgDU,MAAM;AACjC,MAAM,MAAA;AAAE3B,QAAAA,KAAF;AAAS4B,QAAAA,OAAAA;AAAT,OAAA,GAAqB,KAAKF,KAAhC,CAAA;AACA,MAAM,MAAA;AAAER,QAAAA,OAAF;AAAWX,QAAAA,WAAAA;AAAX,OAAA,GAA2B,KAAKN,KAAtC,CAAA;AACA,MAAA,MAAMkB,OAAO,GAAGD,OAAO,CAACC,OAAxB,CAAA;;AAEA,MAAI,IAAA,IAAA,CAAKU,IAAL,IAAa7B,KAAK,CAACG,QAAnB,IAA+B,CAACI,WAApC,EAAiD;AAC/CC,QAAAA,MAAM,CAACC,IAAP,CAAYU,OAAZ,CAAqBW,CAAAA,OAArB,CAA8BC,QAAD,IAAc;AACzC,UAAMC,MAAAA,EAAE,GAAG,IAAA,CAAKH,IAAL,CAAUI,aAAV,CAAyB,CAAA,CAAA,EAAGF,QAAS,CAAA,CAArC,CAAX,CAAA;AACA,UAAMG,MAAAA,OAAO,GAAG,IAAA,CAAKL,IAAL,CAAUI,aAAV,CAAyB,CAAA,CAAA,EAAGF,QAAS,CAAA,KAAA,CAArC,CAAhB,CAAA;;AAEA,UAAA,IAAIC,EAAJ,EAAQ;AACN,YAAA,IAAIG,EAAE,GAAGC,SAAS,CAACC,YAAV,CAAuB,CAAvB,CAAT,CAAA;AACA,YAAA,MAAMxB,MAAM,GAAGM,OAAO,CAACY,QAAD,CAAtB,CAAA;AAEAC,YAAAA,EAAE,CAACM,WAAH,GAAkBzB,MAAM,IAAIA,MAAM,CAACS,KAAlB,IAA4B,EAA7C,CAAA;;AAEA,YAAItB,IAAAA,KAAK,CAACuC,IAAV,EAAgB;AACdP,cAAAA,EAAE,CAACQ,aAAH,CAAiBA,aAAjB,CAA+BC,SAA/B,CAAyCC,MAAzC,CAAgDd,OAAO,CAACe,OAAxD,CAAA,CAAA;AACAX,cAAAA,EAAE,CAACQ,aAAH,CAAiBA,aAAjB,CAA+BC,SAA/B,CAAyCC,MAAzC,CAAgDd,OAAO,CAACgB,SAAxD,CAAA,CAAA;AACD,aAAA;;AAEDT,YAAAA,EAAE,CAACU,UAAH,CAAcb,EAAd,CAAA,CAAA;AAEAE,YAAAA,OAAO,CAACI,WAAR,GAAsB,GAAtB,CAAA;AACD,WAAA;AACF,SAnBD,CAAA,CAAA;AAoBD,OAAA;;AAEDQ,MAAAA,UAAU,CAAC,IAAKjB,CAAAA,IAAN,CAAV,CAAA;AACD,KA7EkB,CAAA;;AAAA,IA8InBkB,IAAAA,CAAAA,eA9ImB,GA8IAC,EAAD,IAAQ;AACxB,MAAA,IAAA,CAAKC,QAAL,CAAc;AAAEC,QAAAA,iBAAiB,EAAEF,EAAAA;AAArB,OAAd,CAAA,CAAA;AACD,KAhJkB,CAAA;;AAAA,IAkJnBG,IAAAA,CAAAA,UAlJmB,GAkJLC,IAAD,IAAU;AACrB,MAAI,IAAA,CAACA,IAAL,EAAW;AACT,QAAA,OAAA;AACD,OAAA;;AAED,MAAM,MAAA;AAAEC,QAAAA,IAAF;AAAQ/B,QAAAA,KAAAA;AAAR,OAAA,GAAkB8B,IAAxB,CAAA;AAEA,MAAIC,IAAAA,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,QAAnC,EAA6C,OAAOD,IAAP,CAAA;AAE7C,MAAIC,IAAAA,IAAI,KAAK,QAAb,EAAuB,OAAA,QAAA,CAAA;AAASA,QAAAA,IAAI,EAAE,QAAA;AAAf,OAAA,EAA4BD,IAA5B,CAAA,CAAA;AAEvB,MAAA,IAAI9B,KAAK,KAAK,OAAd,EAAuB,OAAO;AAAE+B,QAAAA,IAAI,EAAE,OAAA;AAAR,OAAP,CAAA;AAEvB,MAAO,OAAA;AAAEA,QAAAA,IAAI,EAAE,OAAR;AAAiB/B,QAAAA,KAAAA;AAAjB,OAAP,CAAA;AACD,KAhKkB,CAAA;;AAAA,IAkKnBgC,IAAAA,CAAAA,QAlKmB,GAkKPC,KAAD,IAAW;AACpB,MAAKA,IAAAA,CAAAA,KAAL,GAAaA,KAAb,CAAA;AACD,KApKkB,CAAA;;AAAA,IAsKnBC,IAAAA,CAAAA,OAtKmB,GAsKRJ,IAAD,IAAU;AAClB,MAAA,MAAMK,CAAC,GAAG,IAAA,CAAKN,UAAL,CAAgBC,IAAhB,CAAV,CAAA;;AAEA,MAAA,IAAIK,CAAC,CAACJ,IAAF,KAAW,OAAf,EAAwB;AACtB,QAAKE,IAAAA,CAAAA,KAAL,CAAWG,KAAX,EAAA,CAAA;AACD,OAFD,MAEO,IAAID,CAAC,CAACJ,IAAF,KAAW,SAAf,EAA0B;AAC/B,QAAIM,IAAAA,KAAK,CAACC,OAAN,CAAcH,CAAC,CAACnC,KAAhB,CAAJ,EAA4B;AAC1BmC,UAAAA,CAAC,CAACnC,KAAF,CAAQQ,OAAR,CAAiB+B,EAAD,IAAQ;AACtB,YAAA,IAAA,CAAKN,KAAL,CAAWO,GAAX,CAAeD,EAAf,CAAA,CAAA;AACD,WAFD,CAAA,CAAA;AAGD,SAJD,MAIO;AACL,UAAA,IAAA,CAAKN,KAAL,CAAWO,GAAX,CAAeL,CAAC,CAACnC,KAAjB,CAAA,CAAA;AACD,SAAA;AACF,OARM,MAQA,IAAImC,CAAC,CAACJ,IAAF,KAAW,QAAf,EAAyB;AAC9B,QAAA,IAAA,CAAKE,KAAL,CAAWQ,SAAX,CAAqBN,CAAC,CAACnC,KAAvB,CAAA,CAAA;AACD,OAFM,MAEA;AACL,QAAA,IAAA,CAAKiC,KAAL,CAAWtE,KAAX,CAAiBwE,CAAC,CAACnC,KAAnB,CAAA,CAAA;AACD,OAAA;;AAED,MAAKiC,IAAAA,CAAAA,KAAL,CAAWS,KAAX,EAAA,CAAA;AACD,KA1LkB,CAAA;;AAAA,IA4LnBC,IAAAA,CAAAA,mBA5LmB,GA4LG,MAAM;AAC1B,MAAM,MAAA;AAAEC,QAAAA,eAAAA;AAAF,OAAA,GAAsB,KAAKxC,KAAjC,CAAA;;AAEA,MAAA,IAAIwC,eAAJ,EAAqB;AACnBA,QAAAA,eAAe,CAAC,IAAA,CAAKjE,KAAL,CAAWiB,OAAZ,CAAf,CAAA;AACD,OAAA;AACF,KAlMkB,CAAA;;AAAA,IAoMnBiD,IAAAA,CAAAA,iBApMmB,GAoMEC,IAAD,IAAU;AAC5B,MAAA,IAAA,CAAKnB,QAAL,CAAc;AAAE1C,QAAAA,WAAW,EAAE6D,IAAAA;AAAf,OAAd,EAAqC,KAAKzC,0BAA1C,CAAA,CAAA;AACD,KAtMkB,CAAA;;AAAA,IAAA,IAAA,CAwMnB0C,eAxMmB,GAwMD,CAACtF,IAAD,EAAOuF,aAAP,KAAyB;AACzCC,MAAAA,WAAW,EAAA,CAAA;;AAEX,MAAA,IAAIxF,IAAJ,EAAU;AACR,QAAKkE,IAAAA,CAAAA,QAAL,CACGhD,KAAD,KAAY;AACViB,UAAAA,OAAO,EAAA,QAAA,CAAA,EAAA,EACFjB,KAAK,CAACiB,OADJ,EAAA;AAELC,YAAAA,OAAO,EACFlB,QAAAA,CAAAA,EAAAA,EAAAA,KAAK,CAACiB,OAAN,CAAcC,OADZ,EAAA;AAEL,cAAA,CAACpC,IAAD,GAAQ;AAAEuC,gBAAAA,KAAK,EAAEgD,aAAAA;AAAT,eAAA;AAFH,aAAA,CAAA;AAFF,WAAA,CAAA;AADG,SAAZ,CADF,EAUE,IAAA,CAAKL,mBAVP,CAAA,CAAA;AAYD,OAAA;AACF,KAzNkB,CAAA;;AAAA,IAAA,IAAA,CA2NnBO,YA3NmB,GA2NJ,CAACC,WAAD,EAAcC,MAAd,KAAyB;AACtC,MAAM,MAAA;AAAEvD,QAAAA,OAAAA;AAAF,OAAc,GAAA,IAAA,CAAKlB,KAAL,CAAWiB,OAA/B,CAAA;;AAEA,MAAIV,IAAAA,MAAM,CAACC,IAAP,CAAYU,OAAO,IAAI,EAAvB,CAA2B3B,CAAAA,MAA/B,EAAuC;AACrC,QAAA,MAAMiB,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAYU,OAAZ,CAAb,CAAA;AAEA,QAAA,OAAOV,IAAI,CAACkE,IAAL,CAAWC,CAAD,IAAO;AACtB,UAAA,MAAMC,EAAE,GAAGH,MAAM,CAACE,CAAD,CAAjB,CAAA;AAEA,UAAOC,OAAAA,EAAE,IAAIA,EAAE,CAAC7B,EAAH,IAASyB,WAAW,CAACzB,EAAlC,CAAA;AACD,SAJM,CAAP,CAAA;AAKD,OAAA;AACF,KAvOkB,CAAA;;AAAA,IAyOnB8B,IAAAA,CAAAA,MAzOmB,GAyOTC,CAAD,IAAO;AACd,MAAM,MAAA;AAAEC,QAAAA,aAAF;AAAiBC,QAAAA,aAAAA;AAAjB,OAAmCF,GAAAA,CAAC,IAAI,EAA9C,CAAA;;AAEA,MAAA,SAASG,wBAAT,CAAkCC,OAAlC,EAA2CC,KAAK,GAAG,CAAnD,EAAsD;AACpD;AACA,QAAI,IAAA,CAACD,OAAD,IAAYC,KAAK,IAAI,EAAzB,EAA6B,OAAO,IAAP,CAAA;AAE7B,QAAA,MAAMC,MAAM,GAAGF,OAAO,CAACG,YAAvB,CAAA;AAEA,QAAA,IAAI,CAACD,MAAL,EAAa,OAAO,IAAP,CAAA;;AAEb,QAAA,IAAIA,MAAM,CAACE,YAAP,CAAoB,MAApB,CAAA,KAAgC,SAApC,EAA+C;AAC7C,UAAA,OAAOF,MAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAOH,wBAAwB,CAACG,MAAD,EAASD,KAAK,GAAG,CAAjB,CAA/B,CAAA;AACD,OAAA;;AAED,MAAA,SAASI,sBAAT,CAAgCL,OAAhC,EAAyCC,KAAK,GAAG,CAAjD,EAAoD;AAAA,QAAA,IAAA,iBAAA,CAAA;;AAClD;AACA,QAAI,IAAA,CAACD,OAAD,IAAYC,KAAK,IAAI,CAAzB,EAA4B,OAAO,IAAP,CAAA;AAE5B,QAAMK,MAAAA,KAAK,GAAGN,OAAH,IAAGA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,iBAAAA,GAAAA,OAAO,CAAEO,QAAZ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAG,iBAAoB,CAAA,CAApB,CAAd,CAAA;AAEA,QAAA,IAAI,CAACD,KAAL,EAAY,OAAO,IAAP,CAAA;;AAEZ,QAAIA,IAAAA,KAAK,CAACE,UAAN,IAAoBF,KAAK,CAACE,UAAN,CAAiB,aAAjB,CAAxB,EAAyD;AACvD,UAAA,OAAOF,KAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAOD,sBAAsB,CAACC,KAAD,EAAQL,KAAK,GAAG,CAAhB,CAA7B,CAAA;AACD,OAAA;;AAED,MAAA,MAAMQ,qBAAqB,GAAGV,wBAAwB,CAACF,aAAD,CAAtD,CAAA;AACA,MAAMa,MAAAA,mBAAmB,GAAGD,qBAAqB,GAAGJ,sBAAsB,CAACI,qBAAD,CAAzB,GAAmD,IAApG,CAAA;;AAEA,MAAA,IAAI,CAACZ,aAAD,IAAkB,CAACC,aAAnB,IAAoC,EAACY,mBAAD,IAACA,IAAAA,IAAAA,mBAAmB,CAAEF,UAArB,CAAgC,aAAhC,CAAD,CAAxC,EAAyF;AACvF,QAAA,IAAA,CAAK1C,QAAL,CAAc;AAAEC,UAAAA,iBAAiB,EAAE,EAAA;AAArB,SAAd,CAAA,CAAA;AACD,OAAA;AACF,KAhRkB,CAAA;;AAAA,IAiSnB4C,IAAAA,CAAAA,yBAjSmB,GAiSS,MAAM;AAChC,MAAM,MAAA;AAAE9F,QAAAA,KAAF;AAAS4B,QAAAA,OAAAA;AAAT,OAAA,GAAqB,KAAKF,KAAhC,CAAA;AACA,MAAM,MAAA;AAAEqE,QAAAA,mBAAF;AAAuBC,QAAAA,kBAAAA;AAAvB,OAA8ChG,GAAAA,KAAK,IAAI,EAA7D,CAAA;AACA,MAAA,MAAMiG,uBAAuB,GAC3BF,mBAAmB,KAAKG,OAAO,CAACH,mBAAD,CAAP,IAAgCI,QAAQ,CAACJ,mBAAD,CAA7C,CADrB,CAAA;AAGA,MAAMK,MAAAA,sBAAsB,gBAC1B,KAAA,CAAA,aAAA,CAAC,aAAD,EAAA;AAAe,QAAA,gBAAgB,EAAC,sBAAhC;AAAuD,QAAA,MAAM,EAAEL,mBAAAA;AAA/D,OADF,CAAA,CAAA;AAIA,MAAA,OACEE,uBAAuB,iBACrB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAErE,OAAO,CAACyE,WAAAA;AAAxB,OAAA,EACG,CAACL,kBAAD,gBACC,KAAA,CAAA,aAAA,CAAC,WAAD,EAAA;AAAa,QAAA,MAAM,EAAE;AAAEM,UAAAA,MAAM,EAAE,2BAAV;AAAuCC,UAAAA,OAAO,EAAE,2BAAA;AAAhD,SAAA;AAArB,OAAA,EACGH,sBADH,CADD,GAKCA,sBANJ,CAFJ,CAAA;AAaD,KAxTkB,CAAA;;AAAA,IA0TnBI,IAAAA,CAAAA,eA1TmB,GA0TD,MAAM;AACtB,MAAM,MAAA;AAAExG,QAAAA,KAAF;AAAS4B,QAAAA,OAAAA;AAAT,OAAA,GAAqB,KAAKF,KAAhC,CAAA;AACA,MAAM,MAAA;AAAE+E,QAAAA,SAAF;AAAaT,QAAAA,kBAAAA;AAAb,OAAoChG,GAAAA,KAAK,IAAI,EAAnD,CAAA;AACA,MAAM0G,MAAAA,YAAY,gBAAG,KAAA,CAAA,aAAA,CAAC,aAAD,EAAA;AAAe,QAAA,MAAM,EAAED,SAAAA;AAAvB,OAArB,CAAA,CAAA;AACA,MAAA,MAAME,aAAa,GAAGF,SAAS,KAAKP,OAAO,CAACO,SAAD,CAAP,IAAsBN,QAAQ,CAACM,SAAD,CAAnC,CAA/B,CAAA;AAEA,MAAA,OACEE,aAAa,iBACX,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAE/E,OAAO,CAACyE,WAAAA;AAAxB,OAAA,EACG,CAACL,kBAAD,gBACC,KAAA,CAAA,aAAA,CAAC,WAAD,EAAA;AAAa,QAAA,MAAM,EAAE;AAAEM,UAAAA,MAAM,EAAE,gBAAV;AAA4BC,UAAAA,OAAO,EAAE,gBAAA;AAArC,SAAA;AAArB,OAAA,EAA+EG,YAA/E,CADD,GAGCA,YAJJ,CAFJ,CAAA;AAWD,KA3UkB,CAAA;;AAAA,IA6UnBE,IAAAA,CAAAA,mBA7UmB,GA6UG,MAAM;AAC1B,MAAM,MAAA;AAAE5G,QAAAA,KAAF;AAAS4B,QAAAA,OAAAA;AAAT,OAAA,GAAqB,KAAKF,KAAhC,CAAA;AACA,MAAM,MAAA;AAAEwB,QAAAA,iBAAF;AAAqB3C,QAAAA,WAArB;AAAkCW,QAAAA,OAAAA;AAAlC,OAAA,GAA8C,KAAKjB,KAAzD,CAAA;AACA,MAAM,MAAA;AACJ4G,QAAAA,WADI;AAEJ1G,QAAAA,QAFI;AAGJoC,QAAAA,IAHI;AAIJrC,QAAAA,SAJI;AAKJb,QAAAA,cALI;AAMJyH,QAAAA,UANI;AAOJC,QAAAA,QAPI;AAQJC,QAAAA,GAAG,EAAE;AAAEC,UAAAA,IAAAA;AAAF,SAAA,GAAW,EARZ;AASJ5G,QAAAA,SATI;AAUJC,QAAAA,iBAAAA;AAVI,OAWFN,GAAAA,KAAK,IAAI,EAXb,CAAA;AAaA,MAAA,MAAMkH,aAAa,GAAGC,OAAO,CAACjH,SAAD,CAA7B,CAAA;AACA,MAAA,MAAMd,cAAc,GAAGT,sBAAsB,CAACmI,UAAD,CAA7C,CAAA;AACA,MAAMM,MAAAA,OAAO,GAAGrH,gBAAgB,CAACC,KAAD,EAAQ,IAAKC,CAAAA,KAAb,CAAhB,IAAuC,EAAvD,CAAA;AACA,MAAA,MAAMoH,gBAAgB,GAAGhH,SAAS,IAAI,CAACC,iBAAvC,CAAA;AAEA,MACE,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAEsB,OAAO,CAAC0F,uBAAAA;AAAxB,OAAA,eACE,oBAAC,YAAD,EAAA;AACE,QAAA,QAAQ,EAAEnH,QADZ;AAEE,QAAA,MAAM,EAAEH,KAAK,CAACI,MAFhB;AAAA;AAIE,QAAA,KAAK,EAAE,EAJT;AAKE,QAAA,yBAAyB,EAAG4C,EAAD,IAAQ;AACjC,UAAMuE,MAAAA,iBAAiB,GAAGN,IAAI,KAAK,UAAT,IAAuBF,QAAvB,IAAmCA,QAAQ,CAAC/D,EAAD,CAArE,CAAA;AAEA,UAAA,MAAMwE,QAAQ,gBACZ,KAAC,CAAA,aAAA,CAAA,EAAD,CAAI,MAAJ,EAAA;AACE,YAAA,SAAS,EAAE5F,OAAO,CAAC6F,MADrB;AAEE,YAAA,GAAG,EAAGC,QAAD,IAAc;AACjB,cAAA,IAAA,CAAKA,QAAL,GAAgBA,QAAQ,IAAI,KAAKA,QAAjC,CAAA;AACD,aAJH;AAKE,YAAA,KAAK,EAAEN,OAAO,CAACpE,EAAD,CALhB;AAME,YAAA,gBAAgB,EAAE,IAAA,CAAKqB,eANzB;AAOE,YAAA,YAAY,EAAE,IAAA,CAAKG,YAPrB;AAQE,YAAA,QAAQ,EAAE,IAAA,CAAKlB,QARjB;AASE,YAAA,eAAe,EAAE,IAAA,CAAKP,eATxB;AAUE,YAAA,MAAM,EAAE,IAAK+B,CAAAA,MAAAA;AAVf,WADF,CAAA,CAAA;AAeA,UACE,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,YAAA,SAAS,EAAE6C,EAAE,CAAC/F,OAAO,CAACgG,UAAT,EAAqB;AAChC,cAAChG,CAAAA,OAAO,CAACgB,SAAT,GAAqB,CAACsE,aAAD,IAAkB,CAACK,iBAAnB,IAAwC,CAAChH,WAD9B;AAEhC,cAACqB,CAAAA,OAAO,CAACe,OAAT,GAAmB,CAACuE,aAAD,KAAmBK,iBAAiB,IAAIhH,WAAxC,CAFa;AAGhC,cAAA,CAACqB,OAAO,CAACiG,eAAT,GAA2B,CAACX,aAAD,IAAkB/G,QAAlB,IAA8B0G,WAA9B,IAA6C,CAACtE,IAHzC;AAIhC,cAACX,CAAAA,OAAO,CAACkG,kBAAT,GAA8BvH,WAAAA;AAJE,aAArB,CAAA;AADf,WAAA,eAQE,oBAAC,OAAD,EAAA;AACE,YAAA,GAAG,EAAGwH,GAAD,IAAS,KAAKC,aAAL,CAAmBD,GAAnB,CADhB;AAEE,YAAA,eAAe,EAAE,CAFnB;AAGE,YAAA,WAAW,EAHb,IAAA;AAIE,YAAA,IAAI,EAAE7E,iBAAiB,KAAM,CAAA,CAAA,EAAGF,EAAG,CAJrC,CAAA;AAKE,YAAA,OAAO,EAAE;AAAEiF,cAAAA,OAAO,EAAErG,OAAO,CAACsG,aAAnB;AAAkCC,cAAAA,MAAM,EAAEvG,OAAO,CAACwG,mBAAAA;AAAlD,aALX;AAME,YAAA,KAAK,EAAE5H,MAAM,CAACC,IAAP,CAAYS,OAAO,CAACC,OAApB,CAA6BtC,CAAAA,GAA7B,CACJkD,QAAD,IACGA,QAAQ,KAAKmB,iBAAb,IAAkC,EAAE3C,WAAW,IAAIJ,QAAjB,CAAlC,iBACC,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,cAAA,aAAA,EAAa,IADf;AAEE,cAAA,GAAG,EAAE4B,QAFP;AAGE,cAAA,SAAS,EAAEH,OAAO,CAACyG,iBAHrB;AAIE,cAAA,KAAK,EAAE;AAAEC,gBAAAA,KAAK,EAAEnJ,cAAc,CAACC,cAAD,EAAiBC,cAAjB,CAAA;AAAvB,eAAA;AAJT,aAAA,eAME,oBAAC,gBAAD,EAAA;AACE,cAAA,cAAc,EAAED,cADlB;AAEE,cAAA,IAAI,EAAEC,cAAc,IAAIf,sBAF1B;AAGE,cAAA,OAAO,EAAE,IAAKkF,CAAAA,OAAAA;AAHhB,aANF,CAAA,CADF,IAcA,IAhBG,CAAA;AANT,WAAA,EAyBG6D,gBAAgB,gBAAG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,YAAA,SAAS,EAAEzF,OAAO,CAAC2G,cAAAA;AAAxB,WAAA,EAAyCf,QAAzC,CAAH,GAA8DA,QAzBjF,CARF,CADF,CAAA;AAsCD,SAAA;AA7DH,OAAA,CADF,CADF,CAAA;AAmED,KArakB,CAAA;;AAGjB,IAAMrG,MAAAA,QAAO,GAAG,EAAhB,CAAA;AACA,IAAM,MAAA;AAAEnB,MAAAA,KAAK,EAALA,MAAF;AAASkB,MAAAA,OAAO,EAAPA,QAAAA;AAAT,KAAqBQ,GAAAA,KAAK,IAAI,EAApC,CAAA;AACA,IAAM,MAAA;AAAEtB,MAAAA,MAAF;AAAUE,MAAAA,iBAAiB,EAAjBA,kBAAAA;AAAV,KAAgCN,GAAAA,MAAK,IAAI,EAA/C,CAAA;AACA,IAAM,MAAA;AAAEmB,MAAAA,OAAO,EAAEqH,cAAAA;AAAX,KAA8BtH,GAAAA,QAAO,IAAI,EAA/C,CAAA;;AAEA,IAAA,IAAId,MAAJ,EAAY;AACV;AACA,MAACA,CAAAA,MAAM,IAAI,EAAX,EAAeqI,OAAf,CAAuBpK,KAAvB,EAA+BqK,QAAD,IAAc;AAC1C,QAAA,MAAM9H,WAAW,GAAGI,IAAI,CAACC,cAAL,CAAoByH,QAApB,CAApB,CAAA;AACA,QAAMC,MAAAA,wBAAwB,GAAGH,cAAc,IAAIA,cAAc,CAAE,CAAA,CAAA,EAAG5H,WAAY,CAAA,CAAjB,CAAjE,CAAA;AAEAO,QAAAA,QAAO,CAAE,CAAA,CAAA,EAAGP,WAAY,CAAA,CAAjB,CAAP,GAA6B;AAAEU,UAAAA,KAAK,EAAE,CAAAqH,wBAAwB,QAAxB,GAAAA,KAAAA,CAAAA,GAAAA,wBAAwB,CAAErH,KAA1B,KAAmC,EAAA;AAA5C,SAA7B,CAAA;AACD,OALD,CAAA,CAAA;AAMD,KAAA;;AAED,IAAA,IAAA,CAAKrB,KAAL,GAAa;AACXiB,MAAAA,OAAO,EAAA,QAAA,CAAA,EAAA,EAAOQ,KAAK,CAACR,OAAb,EAAA;AAAsBC,QAAAA,OAAO,EAAPA,QAAAA;AAAtB,OADI,CAAA;AAEX+B,MAAAA,iBAAiB,EAAE,EAFR;AAGX3C,MAAAA,WAAW,EAAED,kBAAiB,IAAI,KAAA;AAHvB,KAAb,CAAA;AAKD,GAAA;;AAEDsI,EAAAA,yBAAyB,GAAG;AAC1B,IAAM,MAAA;AAAEhH,MAAAA,OAAAA;AAAF,KAAA,GAAc,KAAKF,KAAzB,CAAA;;AAEA,IAAA,IAAI,OAAOmH,MAAP,KAAkB,WAAtB,EAAmC;AACjC,MAAA,IAAI1G,EAAE,GAAGC,SAAS,CAACC,YAAV,CAAuB,CAAvB,CAAT,CAAA;;AAEA,MAAI,IAAA,CAACjE,UAAL,EAAiB;AACf+D,QAAAA,EAAE,CAAC2G,aAAH,CAAiB,aAAjB,EAAiC1F,IAAD,KAAW;AACzC2F,UAAAA,UAAU,EAAG,CAAcnH,YAAAA,EAAAA,OAAO,CAACoH,cAAe,CAAA;AAC5D,0BAAA,EAA4BpH,OAAO,CAACqH,aAAc,CAAA,MAAA,EAAQ7F,IAAK,CAAA;AAC/D,0BAA4BxB,EAAAA,OAAO,CAACsH,SAAU,CAAA;AAC9C,0BAAA,EAA4B9F,IAAK,CAAA;AACjC;AACA,kBANmD,CAAA;AAOzC1D,UAAAA,IAAI,EAAE,MAAM,MAP6B;AAQzCV,UAAAA,KAAK,EAAE,MAAO,CAAA,qBAAA,EAAuBoE,IAAK,CAAA,CAAA,CAAA;AARD,SAAX,CAAhC,CAAA,CAAA;AAWAhF,QAAAA,UAAU,GAAG,IAAb,CAAA;AACD,OAAA;AACF,KAAA;AACF,GAAA;;AAiCD+K,EAAAA,gCAAgC,CAACC,SAAD,EAAY;AAC1C,IAAM,MAAA;AAAEpJ,MAAAA,KAAAA;AAAF,KAAA,GAAY,KAAK0B,KAAvB,CAAA;AACA,IAAM,MAAA;AAAE1B,MAAAA,KAAK,EAAEqJ,SAAS,GAAG,EAAA;AAArB,KAA4BD,GAAAA,SAAS,IAAI,EAA/C,CAAA;AACA,IAAM,MAAA;AAAEhJ,MAAAA,MAAM,GAAG,EAAX;AAAe4G,MAAAA,GAAG,GAAG,EAAA;AAArB,KAA4BhH,GAAAA,KAAK,IAAI,EAA3C,CAAA;AACA,IAAM,MAAA;AAAEI,MAAAA,MAAM,EAAEkJ,UAAU,GAAG,EAAvB;AAA2BtC,MAAAA,GAAG,EAAEuC,OAAO,GAAG,EAA1C;AAA8CjJ,MAAAA,iBAAiB,EAAEkJ,qBAAqB,GAAG,KAAA;AAAzF,KAAA,GAAmGH,SAAzG,CAAA;;AAEA,IAAMI,MAAAA,cAAc,GAAIzC,GAAD,IAASA,GAAG,IAAIA,GAAG,CAACC,IAAJ,KAAa,UAApD,CAAA;;AAEA,IAAI,IAAA,CAACwC,cAAc,CAACzC,GAAD,CAAf,IAAwB,CAACyC,cAAc,CAACF,OAAD,CAA3C,EAAsD;AACpD,MAAA,IAAA,CAAKtG,QAAL,CAAeyG,SAAD,IAAqBA,QAAAA,CAAAA,EAAAA,EAAAA,SAAS,CAACxI,OAA/B,EAAA;AAAwCX,QAAAA,WAAW,EAAE,KAAA;AAArD,OAAd,CAAA,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,IAAIiJ,qBAAJ,EAA2B;AACzB,MAAA,IAAA,CAAKvG,QAAL,CAAc;AAAE1C,QAAAA,WAAW,EAAE,IAAA;AAAf,OAAd,CAAA,CAAA;AACD,KAAA;;AAED,IAAA,MAAMoJ,OAAO,GAAGvJ,MAAM,CAACW,KAAP,CAAa1C,KAAb,CAAhB,CAAA;AACA,IAAMuL,MAAAA,WAAW,GAAGN,UAAU,CAACvI,KAAX,CAAiB1C,KAAjB,CAApB,CAjB0C;;AAoB1C,IAAA,IAAI,CAACwL,OAAO,CAACF,OAAD,EAAUC,WAAV,CAAZ,EAAoC;AAClC,MAAME,MAAAA,UAAU,GAAG,EAAnB,CAAA;AACA,MAAA,MAAM3I,OAAO,GAAG,IAAA,CAAKlB,KAAL,CAAWiB,OAAX,CAAmBC,OAAnC,CAAA;AAEA,MAAA,CAACyI,WAAW,IAAI,EAAhB,EAAoB9H,OAApB,CAA6BiI,SAAD,IAAe;AACzC,QAAA,MAAMnJ,WAAW,GAAGI,IAAI,CAACC,cAAL,CAAoB8I,SAApB,CAApB,CAAA;AACA,QAAMpB,MAAAA,wBAAwB,GAAGxH,OAAO,IAAIA,OAAO,CAAE,CAAA,CAAA,EAAGP,WAAY,CAAA,CAAjB,CAAnD,CAFyC;;AAKzCkJ,QAAAA,UAAU,CAAE,CAAA,CAAA,EAAGlJ,WAAY,CAAA,CAAjB,CAAV,GAAgC;AAAEU,UAAAA,KAAK,EAAE,CAAAqH,wBAAwB,QAAxB,GAAAA,KAAAA,CAAAA,GAAAA,wBAAwB,CAAErH,KAA1B,KAAmC,EAAA;AAA5C,SAAhC,CAAA;AACD,OAND,CAAA,CAAA;AAQA,MAAK2B,IAAAA,CAAAA,QAAL,CACGhD,KAAD,KAAY;AACViB,QAAAA,OAAO,EAAA,QAAA,CAAA,EAAA,EACFjB,KAAK,CAACiB,OADJ,EAAA;AAELC,UAAAA,OAAO,EAAE2I,UAAAA;AAFJ,SAAA,CAAA;AADG,OAAZ,CADF,EAOE,MAAM;AACJ,QAAA,IAAA,CAAKpI,KAAL,CAAWwC,eAAX,CAA2B,IAAKjE,CAAAA,KAAL,CAAWiB,OAAtC,CAAA,CAAA;AACA,QAAA,IAAA,CAAKS,0BAAL,EAAA,CAAA;AACD,OAVH,CAAA,CAAA;AAYD,KAAA;AACF,GAAA;;AAEDqI,EAAAA,qBAAqB,CAACZ,SAAD,EAAYa,SAAZ,EAAuB;AAC1C,IAAA,MAAMC,SAAS,GAAGL,OAAO,CAAC,IAAKnI,CAAAA,KAAL,CAAW1B,KAAZ,EAAmBoJ,SAAS,CAACpJ,KAA7B,CAAzB,CAAA;AACA,IAAMmK,MAAAA,SAAS,GAAGN,OAAO,CAAC,KAAK5J,KAAN,EAAagK,SAAb,CAAzB,CAAA;AAEA,IAAA,OAAO,CAACC,SAAD,IAAc,CAACC,SAAtB,CAAA;AACD,GAAA;;AAEDC,EAAAA,iBAAiB,GAAG;AAClB,IAAA,IAAA,CAAKzI,0BAAL,EAAA,CAAA;AACA0I,IAAAA,UAAU,CAAC,MAAMvH,UAAU,CAAC,KAAKjB,IAAN,CAAjB,EAA8B,GAA9B,CAAV,CAAA;AACD,GAAA;;AAEDyI,EAAAA,kBAAkB,GAAG;AACnB,IAAA,IAAA,CAAK3I,0BAAL,EAAA,CAAA;AACD,GAAA;;AAsID;AACAqG,EAAAA,aAAa,CAACD,GAAD,EAAM;AACjB;AACAsC,IAAAA,UAAU,CAAC,MAAM;AACf,MAAItC,IAAAA,GAAG,IAAIxJ,SAAX,EAAsB;AACpB,QAAA,MAAMgM,GAAG,GAAGC,QAAQ,CAACvI,aAAT,CAAuB,kBAAvB,CAAZ,CAAA;;AAEA,QAAA,IAAIsI,GAAJ,EAAS;AACP,UAAA,MAAMvI,EAAE,GAAGuI,GAAG,CAACE,UAAf,CAAA;AACAzI,UAAAA,EAAE,CAAC0I,YAAH,CAAgB,UAAhB,EAA4B,IAA5B,CAAA,CAAA;AACD,SAAA;AACF,OAAA;AACF,KATS,EASP,CATO,CAAV,CAAA;AAUD,GAAA;;AAwIDC,EAAAA,MAAM,GAAG;AACP,IAAM,MAAA;AAAE3K,MAAAA,KAAF;AAAS4B,MAAAA,OAAAA;AAAT,KAAA,GAAqB,KAAKF,KAAhC,CAAA;AACA,IAAM,MAAA;AAAEnB,MAAAA,WAAAA;AAAF,KAAA,GAAkB,KAAKN,KAA7B,CAAA;AACA,IAAM,MAAA;AACJ2K,MAAAA,MADI;AAEJ5D,MAAAA,GAAG,EAAE;AAAEC,QAAAA,IAAF;AAAQ4D,QAAAA,IAAAA;AAAR,OAAA,GAAiB,EAFlB;AAGJC,MAAAA,aAHI;AAIJjE,MAAAA,WAJI;AAKJ3G,MAAAA,SALI;AAMJ6K,MAAAA,QANI;AAOJC,MAAAA,QAPI;AAQJC,MAAAA,IAAAA;AARI,KASFjL,GAAAA,KAAK,IAAI,EATb,CAAA;AAUA,IAAA,MAAMkH,aAAa,GAAGC,OAAO,CAACjH,SAAD,CAA7B,CAAA;AACA,IAAMgL,MAAAA,uBAAuB,GAAG,CAAChE,aAAD,IAAkBL,WAAlB,IAAiCA,WAAW,CAACA,WAAZ,KAA4B,SAA7F,CAAA;AACA,IAAA,MAAMsE,WAAW,GAAG,CAAC5K,WAAW,IAAK0G,IAAI,KAAK,MAAT,IAAmB4D,IAAI,KAAK,YAA7C,KAA+DG,QAA/D,IAA2EC,IAA/F,CAAA;AAEA,IAAA,oBACE,oBAAC,QAAD,EAAA;AACE,MAAA,aAAa,EAAEH,aADjB;AAEE,MAAA,SAAS,EAAElJ,OAAO,CAACwJ,aAFrB;AAGE,MAAA,GAAG,EAAGC,CAAD,IAAO;AACV;AACA,QAAA,MAAMC,OAAO,GAAGC,QAAQ,CAACC,WAAT,CAAqBH,CAArB,CAAhB,CAAA;AAEA,QAAA,IAAA,CAAKxJ,IAAL,GAAYyJ,OAAO,IAAI,KAAKzJ,IAA5B,CAAA;AACD,OAAA;AARH,KAUE,eAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAED,OAAO,CAAC6J,IAAAA;AAAxB,KAEGxE,EAAAA,IAAI,KAAK,QAAT,iBAAqB,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA;AAAI,MAAA,SAAS,EAAErF,OAAO,CAAC8J,MAAAA;AAAvB,KAAA,EAAA,iCAAA,CAFxB,eAIE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAE9J,OAAO,CAAC6J,IAAAA;AAAxB,KACGP,EAAAA,uBAAuB,iBACtB,KAAA,CAAA,aAAA,CAAC,mBAAD,EAAA;AACE,MAAA,QAAQ,EAAEH,QADZ;AAEE,MAAA,SAAS,EAAEnJ,OAAO,CAAC+J,MAFrB;AAGE,MAAA,IAAI,EAHN,IAAA;AAIE,MAAA,OAAO,EAAEpL,WAJX;AAKE,MAAA,QAAQ,EAAE,IAAK4D,CAAAA,iBAAAA;AALjB,KAAA,CAFJ,CAJF,EAgBG,IAAA,CAAK2B,yBAAL,EAhBH,EAkBG8E,MAAM,iBACL,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAEhJ,OAAO,CAACgK,eAAAA;AAAxB,KAAA,eACE,oBAAC,aAAD,EAAA;AAAe,MAAA,MAAM,EAAEhB,MAAAA;AAAvB,KADF,CAAA,CAnBJ,eAwBE,KAAA,CAAA,aAAA,CAAC,QAAD,EAAA;AAAU,MAAA,KAAK,EAAA,IAAA;AAAf,KAAA,EAAiB,KAAKhE,mBAAL,EAAjB,CAxBF,EA0BGuE,WAAW,iBAAI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAExD,EAAE,CAAC/F,OAAO,CAACqJ,IAAT,EAAe,MAAf,CAAlB;AAA0C,MAAA,uBAAuB,EAAE;AAAEY,QAAAA,MAAM,EAAEZ,IAAAA;AAAV,OAAA;AAAnE,KAAA,CA1BlB,EA4BG,IAAA,CAAKzE,eAAL,EA5BH,CAVF,CADF,CAAA;AA2CD,GAAA;;AA9euC,CAAA;;AAA7BxF,KAEJC,iBAAkByH,QAAD,IAAc,CAACA,QAAQ,IAAI,EAAb,EAAiBoD,UAAjB,CAA4B,IAA5B,EAAkC,EAAlC,CAAA,CAAsCA,UAAtC,CAAiD,IAAjD,EAAuD,EAAvD;;AAF3B9K,KAIJ+K,YAAY;AACjBnK,EAAAA,OAAO,EAAEoK,SAAS,CAACC,MADF;AAEjB/K,EAAAA,OAAO,EAAE8K,SAAS,CAACC,MAAV,CAAiBC,UAFT;AAGjBhI,EAAAA,eAAe,EAAE8H,SAAS,CAACG,IAHV;AAIjBnM,EAAAA,KAAK,EAAEgM,SAAS,CAACC,MAAV,CAAiBC,UAAAA;AAJP;;AA6erB,MAAME,MAAM,GAAIC,KAAD,KAAY;AACzBjB,EAAAA,aAAa,EAAE;AACbkB,IAAAA,KAAK,EAAEA,KAAK,CAAC5M,IAAN,EADM;AAEb6M,IAAAA,eAAe,EAAED,KAAK,CAACE,UAAN,EAFJ;AAGbC,IAAAA,OAAO,EAAE,cAAA;AAHI,GADU;AAMzBxE,EAAAA,OAAO,EAAE;AACPuE,IAAAA,UAAU,EAAG,CAAA,EAAEF,KAAK,CAACI,YAAN,EAAqB,CAD7B,WAAA,CAAA;AAEPJ,IAAAA,KAAK,EAAEA,KAAK,CAAC5M,IAAN,EAFA;AAGPiN,IAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAHvB;AAIPC,IAAAA,MAAM,EAAG,CAAA,UAAA,EAAYR,KAAK,CAACS,SAAN,EAAkB,CAJhC,CAAA;AAKPC,IAAAA,QAAQ,EAAE,MALH;AAMP,IAA+B,6BAAA,EAAA;AAC7B,MAAmB,iBAAA,EAAA;AACjBT,QAAAA,eAAe,EAAE,kBAAA;AADA,OAAA;AADU,KAAA;AANxB,GANgB;AAkBzBU,EAAAA,aAAa,EAAE;AACbC,IAAAA,OAAO,EAAE,CAAA;AADI,GAlBU;AAqBzBhF,EAAAA,aAAa,EAAE;AACb8E,IAAAA,QAAQ,EAAE,SADG;AAEbR,IAAAA,UAAU,EAAE,aAFC;AAGblE,IAAAA,KAAK,EAAE,OAHM;AAIb6E,IAAAA,SAAS,EAAE,CAJE;AAKbC,IAAAA,UAAU,EAAE,CAAA;AALC,GArBU;AA4BzBhF,EAAAA,mBAAmB,EAAE;AACnBoE,IAAAA,UAAU,EAAE,aADO;AAEnBlE,IAAAA,KAAK,EAAE,OAFY;AAGnB4E,IAAAA,OAAO,EAAE,CAAA;AAHU,GA5BI;AAiCzBtB,EAAAA,eAAe,EAAE;AACfyB,IAAAA,YAAY,EAAEhB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAA;AADpB,GAjCQ;AAoCzBpB,EAAAA,IAAI,EAAE;AACJnD,IAAAA,KAAK,EAAE,MADH;AAEJgF,IAAAA,QAAQ,EAAE,UAFN;AAGJf,IAAAA,eAAe,EAAED,KAAK,CAACE,UAAN,EAHb;AAIJF,IAAAA,KAAK,EAAEA,KAAK,CAAC5M,IAAN,EAAA;AAJH,GApCmB;AA0CzB6N,EAAAA,KAAK,EAAE;AACLP,IAAAA,QAAQ,EAAE,QADL;AAELP,IAAAA,OAAO,EAAE,OAFJ;AAGLU,IAAAA,SAAS,EAAEd,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAH3B;AAILQ,IAAAA,YAAY,EAAEhB,KAAK,CAACO,OAAN,CAAcC,IAAAA;AAJvB,GA1CkB;AAgDzBxG,EAAAA,WAAW,EAAE;AACXgH,IAAAA,YAAY,EAAEhB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAA;AADxB,GAhDY;AAmDzBxE,EAAAA,iBAAiB,EAAE;AACjBmF,IAAAA,MAAM,EAAE,EADS;AAEjBC,IAAAA,QAAQ,EAAE,OAFO;AAGjBN,IAAAA,SAAS,EAAEd,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAA;AAHf,GAnDM;AAwDzBjF,EAAAA,UAAU,EAAE;AACV8F,IAAAA,QAAQ,EAAE,aADA;AAEV,IAAqB,mBAAA,EAAA;AACnB,MAAsB,oBAAA,EAAA;AACpB,QAA0B,wBAAA,EAAA;AACxBD,UAAAA,QAAQ,EAAE,MADc;AAExBd,UAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAA;AAFN,SAAA;AADN,OADH;AAOnB,MAAS,OAAA,EAAA;AACPc,QAAAA,GAAG,EAAE,CAAA;AADE,OAAA;AAPU,KAAA;AAFX,GAxDa;AAsEzBlG,EAAAA,MAAM,EAAE;AACN,IAAsB,oBAAA,EAAA;AACpB,MAA0B,wBAAA,EAAA;AACxBmG,QAAAA,WAAW,EAAEtB,KAAK,CAAC5M,IAAN,EAAA;AADW,OAAA;AADN,KAAA;AADhB,GAtEiB;AA6EzB4H,EAAAA,uBAAuB,EAAE;AACvBgG,IAAAA,QAAQ,EAAE,UADa;AAEvB,IAAiB,eAAA,EAAA;AACfb,MAAAA,OAAO,EAAE,MADM;AAEfoB,MAAAA,UAAU,EAAE,UAFG;AAGfC,MAAAA,QAAQ,EAAE,MAAA;AAHK,KAFM;AAOvB,IAAyB,uBAAA,EAAA;AACvBhB,MAAAA,MAAM,EAAE,iBADe;AAEvBH,MAAAA,OAAO,EAAE,cAAA;AAFc,KAPF;AAWvB,IAA+B,6BAAA,EAAA;AAC7BF,MAAAA,OAAO,EAAE,iBAAA;AADoB,KAXR;AAcvB,IAA8B,4BAAA,EAAA;AAC5BA,MAAAA,OAAO,EAAE,iBAAA;AADmB,KAdP;AAiBvB,IAAiC,+BAAA,EAAA;AAC/BgB,MAAAA,QAAQ,EAAE,QADqB;AAE/B,MAAO,KAAA,EAAA;AACLM,QAAAA,UAAU,EAAE,cAAA;AADP,OAFwB;AAK/B,MAAY,UAAA,EAAA;AACVJ,QAAAA,GAAG,EAAE,QADK;AAEVK,QAAAA,IAAI,EAAE,MAAA;AAFI,OALmB;AAS/B,MAAW,SAAA,EAAA;AACTL,QAAAA,GAAG,EAAE,QADI;AAETM,QAAAA,KAAK,EAAE,MAAA;AAFE,OAToB;AAa/B,MAAoB,kBAAA,EAAA;AAClBN,QAAAA,GAAG,EAAE,SAAA;AADa,OAAA;AAbW,KAjBV;AAkCvB,IAAkC,gCAAA,EAAA;AAChC,MAAY,UAAA,EAAA;AACVA,QAAAA,GAAG,EAAE,QADK;AAEVM,QAAAA,KAAK,EAAE,MAAA;AAFG,OAAA;AADoB,KAlCX;AAwCvB,IAAuB,qBAAA,EAAA;AACrBC,MAAAA,SAAS,EAAE,sBADU;AAErBd,MAAAA,UAAU,EAAE,kBAAA;AAFS,KAxCA;AA4CvB,IAAuB,qBAAA,EAAA;AACrBW,MAAAA,UAAU,EAAE,IAAA;AADS,KAAA;AA5CA,GA7EA;AA6HzBlG,EAAAA,eAAe,EAAE;AACfiF,IAAAA,MAAM,EAAE,WAAA;AADO,GA7HQ;AAgIzBhF,EAAAA,kBAAkB,EAAE;AAClB6E,IAAAA,OAAO,EAAEN,KAAK,CAACO,OAAN,CAAcC,IADL;AAElBsB,IAAAA,aAAa,EAAE,OAAA;AAFG,GAhIK;AAoIzBxL,EAAAA,OAAO,EAAE;AACPiL,IAAAA,WAAW,EAAG,CAAA,EAAEtB,KAAK,CAAC3J,OAAN,EAAgB,CAAA,WAAA,CAAA;AADzB,GApIgB;AAuIzBC,EAAAA,SAAS,EAAE;AACTgL,IAAAA,WAAW,EAAG,CAAA,EAAEtB,KAAK,CAAC1J,SAAN,EAAkB,CAAA,WAAA,CAAA;AADzB,GAvIc;AA0IzBoG,EAAAA,cAAc,EAAE;AACdoF,IAAAA,MAAM,EAAG,CAAE/B,EAAAA,KAAK,CAACO,OAAN,CAAcC,IAAK,CADhB,aAAA,CAAA;AAEdJ,IAAAA,OAAO,EAAE,aAFK;AAGdK,IAAAA,MAAM,EAAE,2BAAA;AAHM,GA1IS;AA+IzB7D,EAAAA,aAAa,EAAE;AACboF,IAAAA,IAAI,EAAE,CADO;AAEb/B,IAAAA,KAAK,EAAE,MAFM;AAGbE,IAAAA,UAAU,EAAEH,KAAK,CAACiC,OAAN,CAAcC,IAAd,CAAmB,MAAnB,CAHC;AAIbvB,IAAAA,QAAQ,EAAE,mBAJG;AAKbL,IAAAA,OAAO,EAAG,CAAA,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAE,CALtB,aAAA,CAAA;AAMbJ,IAAAA,OAAO,EAAE,MANI;AAOboB,IAAAA,UAAU,EAAE,QAPC;AAQbW,IAAAA,cAAc,EAAE,QARH;AASbC,IAAAA,WAAW,EAAG,CAAA,UAAA,EAAYnC,KAAK,CAACnM,QAAN,EAAiB,CAAA,WAAA,CAAA;AAT9B,GA/IU;AA0JzBwL,EAAAA,MAAM,EAAE;AACNW,IAAAA,KAAK,EAAEA,KAAK,CAAC5M,IAAN,EADD;AAEN2N,IAAAA,YAAY,EAAEhB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAA;AAF7B,GA1JiB;AA8JzB3D,EAAAA,SAAS,EAAE;AACToD,IAAAA,KAAK,EAAEA,KAAK,CAAC5M,IAAN,EADE;AAET6M,IAAAA,eAAe,EAAED,KAAK,CAACE,UAAN,EAFR;AAGTG,IAAAA,OAAO,EAAG,CAAA,EAAEN,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAE,CAH1B,aAAA,CAAA;AAITJ,IAAAA,OAAO,EAAE,MAJA;AAKToB,IAAAA,UAAU,EAAE,QALH;AAMTW,IAAAA,cAAc,EAAE,QANP;AAOTH,IAAAA,IAAI,EAAE,CAPG;AAQT,IAAqB,mBAAA,EAAA;AACnB,MAAqB,mBAAA,EAAA;AACnB,QAAkB,gBAAA,EAAA;AAChB5B,UAAAA,OAAO,EAAE,MAAA;AADO,SAAA;AADC,OAAA;AADF,KAAA;AARZ,GA9Jc;AA8KzBlE,EAAAA,cAAc,EAAE;AACd8E,IAAAA,YAAY,EAAEhB,KAAK,CAACO,OAAN,CAAcC,IADd;AAEd6B,IAAAA,aAAa,EAAE,MAAA;AAFD,GA9KS;AAkLzBhD,EAAAA,MAAM,EAAE;AACN4B,IAAAA,QAAQ,EAAE,UADJ;AAENU,IAAAA,IAAI,EAAE,UAFA;AAGNL,IAAAA,GAAG,EAAE,MAHC;AAINrF,IAAAA,KAAK,EAAE,KAJD;AAKNqG,IAAAA,MAAM,EAAE,KALF;AAMNC,IAAAA,QAAQ,EAAE,QAAA;AANJ,GAlLiB;AA0LzB3D,EAAAA,IAAI,EAAE;AACJoC,IAAAA,YAAY,EAAEhB,KAAK,CAACO,OAAN,CAAcC,IAAd,GAAqB,CAAA;AAD/B,GAAA;AA1LmB,CAAZ,CAAf,CAAA;;AA+LA,aAAegC,UAAU,CAACzC,MAAD,CAAV,CAAmBpL,IAAnB,CAAf;;ACzwBe,MAAM8N,aAAN,SAA4BC,WAA5B,CAAwC;AACnDtN,EAAAA,WAAW,GAAG;AACV,IAAA,KAAA,EAAA,CAAA;AACA,IAAA,IAAA,CAAKuN,yBAAL,GAAiCC,CAAC,CAACC,QAAF,CAAW,MAAM;AAC9C,MAAA,IAAA,CAAKC,aAAL,CAAmB,IAAIC,mBAAJ,CAAwB,IAAA,CAAKC,OAAL,CAAaC,WAAb,EAAxB,EAAoD,IAApD,CAAnB,CAAA,CAAA;AACH,KAFgC,EAE9B,IAF8B,CAAjC,CAAA;AAGH,GAAA;;AAEQ,EAALtP,IAAAA,KAAK,CAACuP,CAAD,EAAI;AACT,IAAKC,IAAAA,CAAAA,MAAL,GAAcD,CAAd,CAAA;AAEA,IAAA,IAAA,CAAK5E,MAAL,EAAA,CAAA;AACA,IAAA,IAAA,CAAKwE,aAAL,CAAmB,IAAIM,aAAJ,CAAkB,IAAA,CAAKJ,OAAL,CAAaC,WAAb,EAAlB,EAA8C,IAAA,CAAKI,iBAAL,EAA9C,EAAwE,KAAKF,MAAL,KAAgBG,SAAxF,CAAnB,CAAA,CAAA;AACH,GAAA;;AAEQ,EAAA,IAAL3P,KAAK,GAAG;AACR,IAAA,OAAO,KAAKwP,MAAZ,CAAA;AACH,GAAA;;AAEU,EAAPtO,IAAAA,OAAO,CAAC0O,CAAD,EAAI;AACX,IAAKC,IAAAA,CAAAA,QAAL,GAAgBD,CAAhB,CAAA;AAEA,IAAA,IAAA,CAAKjF,MAAL,EAAA,CAAA;AACH,GAAA;;AAEU,EAAA,IAAPzJ,OAAO,GAAG;AACV,IAAA,OAAO,KAAK2O,QAAZ,CAAA;AACH,GAAA;;AAEDH,EAAAA,iBAAiB,GAAG;AAChB;AACA,IAAA,OAAO,IAAP,CAAA;AACH,GAAA;;AAEDxL,EAAAA,eAAe,CAAChD,OAAD,EAAU;AACrB;AACAV,IAAAA,MAAM,CAACC,IAAP,CAAYS,OAAZ,CAAqBrC,CAAAA,GAArB,CAA0BC,GAAD,IAAS;AAC9B,MAAA,IAAA,CAAK+Q,QAAL,CAAc/Q,GAAd,IAAqBoC,OAAO,CAACpC,GAAD,CAA5B,CAAA;AACH,KAFD,CAAA,CAAA;AAIA,IAAA,IAAA,CAAKkQ,yBAAL,EAAA,CAAA;AACA,IAAA,IAAA,CAAKrE,MAAL,EAAA,CAAA;AACH,GAAA;;AAEDmF,EAAAA,iBAAiB,GAAG;AAChB;AAEA,IAAA,IAAA,CAAKnF,MAAL,EAAA,CAAA;AACH,GAAA;;AAEDA,EAAAA,MAAM,GAAG;AACL,IAAA,IAAI,CAAC,IAAK6E,CAAAA,MAAN,IAAgB,CAAC,IAAA,CAAKK,QAA1B,EAAoC;AAChC,MAAA,OAAA;AACH,KAAA;;AAED,IAAA,IAAI,IAAKL,CAAAA,MAAL,IAAe,IAAA,CAAKK,QAAxB,EAAkC;AAC9B,MAAA,MAAM7N,EAAE,gBAAGT,KAAK,CAACwO,aAAN,CAAoB/O,MAApB,EAA0B;AACjChB,QAAAA,KAAK,EAAE,IAAA,CAAKwP,MADqB;AAEjCtO,QAAAA,OAAO,EAAE,IAAA,CAAK2O,QAFmB;AAGjC3L,QAAAA,eAAe,EAAE,IAAA,CAAKA,eAAL,CAAqB8L,IAArB,CAA0B,IAA1B,CAAA;AAHgB,OAA1B,CAAX,CAAA;AAMAzE,MAAAA,QAAQ,CAACZ,MAAT,CAAgB3I,EAAhB,EAAoB,IAApB,CAAA,CAAA;AACH,KAAA;AACJ,GAAA;;AAhEkD;;;;"}