{"version":3,"file":"openai.mjs","sources":["openai.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var m = o[Symbol.asyncIterator], i;\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n    function fulfill(value) { resume(\"next\", value); }\n    function reject(value) { resume(\"throw\", value); }\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { Pipeline, PipelineRun, StepRun, } from \"@gentrace/core\";\n// @ts-ignore: the typings from @types/mustache are incorrect\nimport Mustache from \"mustache\";\nimport OpenAI from \"openai\";\nimport { Completions, } from \"openai/resources/beta/chat/completions\";\nimport { isDefined } from \"./util\";\nimport { parseChatCompletion, validateInputTools, } from \"openai/lib/parser\";\nfunction createRenderedChatMessages(messages) {\n    let newMessages = [];\n    for (let message of messages) {\n        if (message.contentTemplate && message.contentInputs) {\n            const { contentTemplate, contentInputs } = message, rest = __rest(message, [\"contentTemplate\", \"contentInputs\"]);\n            newMessages.push(Object.assign(Object.assign({}, rest), { content: Mustache.render(contentTemplate, contentInputs) }));\n        }\n        else {\n            newMessages.push(Object.assign({}, message));\n        }\n    }\n    return newMessages;\n}\nexport class GentraceStream {\n    constructor(stream, pipelineRun, partialStepRun, isSelfContained, aggregator) {\n        this.stream = stream;\n        this.pipelineRun = pipelineRun;\n        this.partialStepRun = partialStepRun;\n        this.isSelfContained = isSelfContained;\n        this.aggregator = aggregator;\n    }\n    [Symbol.asyncIterator]() {\n        var _a;\n        return __asyncGenerator(this, arguments, function* _b() {\n            var _c, e_1, _d, _e;\n            const allItems = [];\n            try {\n                for (var _f = true, _g = __asyncValues(this.stream), _h; _h = yield __await(_g.next()), _c = _h.done, !_c; _f = true) {\n                    _e = _h.value;\n                    _f = false;\n                    const item = _e;\n                    // Yield each item from original stream\n                    yield yield __await(item);\n                    allItems.push(item);\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (!_f && !_c && (_d = _g.return)) yield __await(_d.call(_g));\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            const consolidatedResponse = this.aggregator(allItems);\n            const endTime = Date.now();\n            const elapsedTime = endTime - Date.parse(this.partialStepRun.startTime);\n            this.partialStepRun.elapsedTime = elapsedTime;\n            this.partialStepRun.endTime = new Date(endTime).toISOString();\n            this.partialStepRun.outputs = consolidatedResponse;\n            (_a = this.pipelineRun) === null || _a === void 0 ? void 0 : _a.addStepRunNode(this.partialStepRun);\n            if (this.isSelfContained) {\n                yield __await(this.pipelineRun.submit());\n            }\n        });\n    }\n}\nexport class GentraceEmbeddings extends OpenAI.Embeddings {\n    constructor({ client, pipelineRun, gentraceConfig, }) {\n        super(client);\n        this.pipelineRun = pipelineRun;\n        this.gentraceConfig = gentraceConfig;\n    }\n    createInner(body, options) {\n        var _a;\n        return __awaiter(this, void 0, void 0, function* () {\n            const { pipelineSlug, gentrace } = body, newPayload = __rest(body, [\"pipelineSlug\", \"gentrace\"]);\n            const { model } = newPayload, inputParams = __rest(newPayload, [\"model\"]);\n            let isSelfContainedPullRequest = !this.pipelineRun && pipelineSlug;\n            let pipelineRun = this.pipelineRun;\n            if (isSelfContainedPullRequest) {\n                const pipeline = new Pipeline({\n                    id: pipelineSlug,\n                    slug: pipelineSlug,\n                    apiKey: this.gentraceConfig.apiKey,\n                    basePath: this.gentraceConfig.basePath,\n                    logger: this.gentraceConfig.logger,\n                });\n                pipelineRun = new PipelineRun({\n                    pipeline,\n                });\n            }\n            const startTime = Date.now();\n            const completion = (yield this._client.post(\"/embeddings\", Object.assign({ body: newPayload }, options)));\n            const endTime = Date.now();\n            const elapsedTime = Math.floor(endTime - startTime);\n            pipelineRun === null || pipelineRun === void 0 ? void 0 : pipelineRun.addStepRunNode(new OpenAICreateEmbeddingStepRun(elapsedTime, new Date(startTime).toISOString(), new Date(endTime).toISOString(), Object.assign({}, inputParams), { model }, completion, (_a = body === null || body === void 0 ? void 0 : body.gentrace) !== null && _a !== void 0 ? _a : {}));\n            if (isSelfContainedPullRequest) {\n                const { pipelineRunId } = yield pipelineRun.submit();\n                completion.pipelineRunId =\n                    pipelineRunId;\n                return completion;\n            }\n            return completion;\n        });\n    }\n}\nexport class GentraceModerations extends OpenAI.Moderations {\n    constructor({ client, pipelineRun, gentraceConfig, }) {\n        super(client);\n        this.pipelineRun = pipelineRun;\n        this.gentraceConfig = gentraceConfig;\n    }\n    createInner(body, options) {\n        var _a;\n        return __awaiter(this, void 0, void 0, function* () {\n            const { pipelineSlug, gentrace } = body, newPayload = __rest(body, [\"pipelineSlug\", \"gentrace\"]);\n            const { model } = newPayload, inputParams = __rest(newPayload, [\"model\"]);\n            let isSelfContainedPullRequest = !this.pipelineRun && pipelineSlug;\n            let pipelineRun = this.pipelineRun;\n            if (isSelfContainedPullRequest) {\n                const pipeline = new Pipeline({\n                    id: pipelineSlug,\n                    slug: pipelineSlug,\n                    apiKey: this.gentraceConfig.apiKey,\n                    basePath: this.gentraceConfig.basePath,\n                    logger: this.gentraceConfig.logger,\n                });\n                pipelineRun = new PipelineRun({\n                    pipeline,\n                });\n            }\n            const startTime = Date.now();\n            const completion = (yield this._client.post(\"/moderations\", Object.assign({ body: newPayload }, options)));\n            const endTime = Date.now();\n            const elapsedTime = Math.floor(endTime - startTime);\n            pipelineRun === null || pipelineRun === void 0 ? void 0 : pipelineRun.addStepRunNode(new OpenAICreateModerationStepRun(elapsedTime, new Date(startTime).toISOString(), new Date(endTime).toISOString(), Object.assign({}, inputParams), { model }, completion, (_a = body === null || body === void 0 ? void 0 : body.gentrace) !== null && _a !== void 0 ? _a : {}));\n            if (isSelfContainedPullRequest) {\n                const { pipelineRunId } = yield pipelineRun.submit();\n                completion.pipelineRunId =\n                    pipelineRunId;\n                return completion;\n            }\n            return completion;\n        });\n    }\n}\nexport class GentraceChatCompletions extends OpenAI.Chat.Completions {\n    constructor({ client, pipelineRun, gentraceConfig, }) {\n        super(client);\n        this.pipelineRun = pipelineRun;\n        this.gentraceConfig = gentraceConfig;\n    }\n    // @ts-ignore\n    createInner(body, requestOptions) {\n        var _a, _b, _c;\n        return __awaiter(this, void 0, void 0, function* () {\n            const { pipelineSlug } = body;\n            let isSelfContainedPipelineRun = !this.pipelineRun && !!pipelineSlug;\n            let pipelineRun = this.pipelineRun;\n            if (isSelfContainedPipelineRun) {\n                const pipeline = new Pipeline({\n                    id: pipelineSlug,\n                    slug: pipelineSlug,\n                    apiKey: this.gentraceConfig.apiKey,\n                    basePath: this.gentraceConfig.basePath,\n                    logger: this.gentraceConfig.logger,\n                });\n                pipelineRun = new PipelineRun({\n                    pipeline,\n                });\n            }\n            const { messages, pipelineSlug: _pipelineSlug, gentrace } = body, baseCompletionOptions = __rest(body, [\"messages\", \"pipelineSlug\", \"gentrace\"]);\n            const renderedMessages = createRenderedChatMessages(messages);\n            const contentTemplatesArray = messages.map((message) => {\n                var _a;\n                return (_a = message.contentTemplate) !== null && _a !== void 0 ? _a : null;\n            });\n            const contentInputsArray = messages.map((message) => {\n                var _a;\n                return (_a = message.contentInputs) !== null && _a !== void 0 ? _a : null;\n            });\n            const startTime = Date.now();\n            const completion = this._client.post(\"/chat/completions\", Object.assign(Object.assign({ body: Object.assign({ messages: renderedMessages }, baseCompletionOptions) }, requestOptions), { stream: (_a = body.stream) !== null && _a !== void 0 ? _a : false }));\n            const data = yield completion;\n            let finalData = data;\n            const endTime = Date.now();\n            const elapsedTime = Math.floor(endTime - startTime);\n            // user parameter is an input, not a model parameter\n            const { user, tools } = baseCompletionOptions, modelParams = __rest(baseCompletionOptions, [\"user\", \"tools\"]);\n            if (body.stream) {\n                finalData = new GentraceStream(data, pipelineRun, new OpenAICreateChatCompletionStepRun(0, new Date(startTime).toISOString(), \"\", {\n                    messages: renderedMessages,\n                    tools,\n                    user,\n                    contentInputs: contentInputsArray,\n                }, Object.assign(Object.assign({}, modelParams), { contentTemplates: contentTemplatesArray }), finalData, (_b = body === null || body === void 0 ? void 0 : body.gentrace) !== null && _b !== void 0 ? _b : {}), !!isSelfContainedPipelineRun, createChatCompletionStreamResponse);\n            }\n            else {\n                pipelineRun === null || pipelineRun === void 0 ? void 0 : pipelineRun.addStepRunNode(new OpenAICreateChatCompletionStepRun(elapsedTime, new Date(startTime).toISOString(), new Date(endTime).toISOString(), {\n                    messages: renderedMessages,\n                    user,\n                    contentInputs: contentInputsArray,\n                }, Object.assign(Object.assign({}, modelParams), { contentTemplates: contentTemplatesArray }), finalData, (_c = body === null || body === void 0 ? void 0 : body.gentrace) !== null && _c !== void 0 ? _c : {}));\n            }\n            if (isSelfContainedPipelineRun) {\n                let pipelineRunId = \"\";\n                if (!body.stream) {\n                    const submitInfo = yield pipelineRun.submit();\n                    pipelineRunId = submitInfo.pipelineRunId;\n                }\n                else {\n                    pipelineRunId = pipelineRun.getId();\n                }\n                finalData.pipelineRunId =\n                    pipelineRunId;\n                return finalData;\n            }\n            return finalData;\n        });\n    }\n}\nexport class GentraceCompletions extends OpenAI.Completions {\n    constructor({ client, pipelineRun, gentraceConfig, }) {\n        super(client);\n        this.pipelineRun = pipelineRun;\n        this.gentraceConfig = gentraceConfig;\n    }\n    createInner(body, requestOptions) {\n        var _a, _b, _c, _d;\n        return __awaiter(this, void 0, void 0, function* () {\n            const { pipelineSlug } = body;\n            let isSelfContainedPipelineRun = !this.pipelineRun && !!pipelineSlug;\n            let pipelineRun = this.pipelineRun;\n            if (isSelfContainedPipelineRun) {\n                const pipeline = new Pipeline({\n                    id: pipelineSlug,\n                    slug: pipelineSlug,\n                    apiKey: this.gentraceConfig.apiKey,\n                    basePath: this.gentraceConfig.basePath,\n                    logger: this.gentraceConfig.logger,\n                });\n                pipelineRun = new PipelineRun({\n                    pipeline,\n                });\n            }\n            const { promptTemplate, promptInputs, prompt, pipelineSlug: _pipelineSlug, gentrace } = body, baseCompletionOptions = __rest(body, [\"promptTemplate\", \"promptInputs\", \"prompt\", \"pipelineSlug\", \"gentrace\"]);\n            let renderedPrompt = prompt;\n            if (promptTemplate && promptInputs) {\n                renderedPrompt = Mustache.render(promptTemplate, promptInputs);\n            }\n            const newCompletionOptions = Object.assign(Object.assign({}, baseCompletionOptions), { prompt: renderedPrompt, stream: (_a = baseCompletionOptions.stream) !== null && _a !== void 0 ? _a : false });\n            const startTime = Date.now();\n            const completion = this._client.post(\"/completions\", Object.assign(Object.assign({ body: newCompletionOptions }, requestOptions), { stream: (_b = body.stream) !== null && _b !== void 0 ? _b : false }));\n            const data = yield completion;\n            let finalData = data;\n            const endTime = Date.now();\n            const elapsedTime = Math.floor(endTime - startTime);\n            // User and suffix parameters are inputs not model parameters\n            const { user, suffix } = baseCompletionOptions, partialModelParams = __rest(baseCompletionOptions, [\"user\", \"suffix\"]);\n            if (body.stream) {\n                finalData = new GentraceStream(data, pipelineRun, new OpenAICreateCompletionStepRun(0, new Date(startTime).toISOString(), \"\", {\n                    prompt: promptTemplate && promptInputs ? promptInputs : prompt,\n                    user,\n                    suffix,\n                }, Object.assign(Object.assign({}, partialModelParams), { promptTemplate }), finalData, (_c = body === null || body === void 0 ? void 0 : body.gentrace) !== null && _c !== void 0 ? _c : {}), !!isSelfContainedPipelineRun, createCompletionStreamResponse);\n            }\n            else {\n                pipelineRun === null || pipelineRun === void 0 ? void 0 : pipelineRun.addStepRunNode(new OpenAICreateCompletionStepRun(elapsedTime, new Date(startTime).toISOString(), new Date(endTime).toISOString(), {\n                    prompt: promptTemplate && promptInputs ? promptInputs : prompt,\n                    user,\n                    suffix,\n                }, Object.assign(Object.assign({}, partialModelParams), { promptTemplate }), finalData, (_d = body === null || body === void 0 ? void 0 : body.gentrace) !== null && _d !== void 0 ? _d : {}));\n            }\n            if (isSelfContainedPipelineRun) {\n                let pipelineRunId = \"\";\n                if (!body.stream) {\n                    const submitInfo = yield pipelineRun.submit();\n                    pipelineRunId = submitInfo.pipelineRunId;\n                }\n                else {\n                    pipelineRunId = pipelineRun.getId();\n                }\n                finalData.pipelineRunId =\n                    pipelineRunId;\n                return finalData;\n            }\n            return finalData;\n        });\n    }\n}\nexport class GentraceBetaChatCompletions extends Completions {\n    constructor({ client, pipelineRun, gentraceConfig, }) {\n        super(client);\n        this.pipelineRun = pipelineRun;\n        this.gentraceConfig = gentraceConfig;\n    }\n    parseInner(body, options) {\n        var _a;\n        return __awaiter(this, void 0, void 0, function* () {\n            const { pipelineSlug } = body;\n            let isSelfContainedPipelineRun = !this.pipelineRun && !!pipelineSlug;\n            let pipelineRun = this.pipelineRun;\n            if (isSelfContainedPipelineRun) {\n                const pipeline = new Pipeline({\n                    id: pipelineSlug,\n                    slug: pipelineSlug,\n                    apiKey: this.gentraceConfig.apiKey,\n                    basePath: this.gentraceConfig.basePath,\n                    logger: this.gentraceConfig.logger,\n                });\n                pipelineRun = new PipelineRun({\n                    pipeline,\n                });\n            }\n            const { messages, pipelineSlug: _pipelineSlug, gentrace } = body, baseCompletionOptions = __rest(body, [\"messages\", \"pipelineSlug\", \"gentrace\"]);\n            const renderedMessages = createRenderedChatMessages(messages);\n            const contentTemplatesArray = messages.map((message) => {\n                var _a;\n                return (_a = message.contentTemplate) !== null && _a !== void 0 ? _a : null;\n            });\n            const contentInputsArray = messages.map((message) => {\n                var _a;\n                return (_a = message.contentInputs) !== null && _a !== void 0 ? _a : null;\n            });\n            const startTime = Date.now();\n            validateInputTools(body.tools);\n            // TODO: this is not sufficient for structuredt outputs. There's additional parsing that needs to happen.\n            const completion = this._client.post(\"/chat/completions\", Object.assign({ body: Object.assign({ messages: renderedMessages }, baseCompletionOptions) }, options));\n            const rawData = yield completion;\n            // @ts-ignore\n            const data = parseChatCompletion(rawData, body);\n            const endTime = Date.now();\n            const elapsedTime = Math.floor(endTime - startTime);\n            // user parameter is an input, not a model parameter\n            const { user, tools } = baseCompletionOptions, modelParams = __rest(baseCompletionOptions, [\"user\", \"tools\"]);\n            pipelineRun === null || pipelineRun === void 0 ? void 0 : pipelineRun.addStepRunNode(new OpenAICreateChatCompletionStepRun(elapsedTime, new Date(startTime).toISOString(), new Date(endTime).toISOString(), {\n                messages: renderedMessages,\n                user,\n                contentInputs: contentInputsArray,\n            }, Object.assign(Object.assign({}, modelParams), { contentTemplates: contentTemplatesArray }), data, (_a = body === null || body === void 0 ? void 0 : body.gentrace) !== null && _a !== void 0 ? _a : {}));\n            if (isSelfContainedPipelineRun) {\n                const submitInfo = yield pipelineRun.submit();\n                const pipelineRunId = submitInfo.pipelineRunId;\n                return Object.assign(Object.assign({}, data), { pipelineRunId });\n            }\n            return data;\n        });\n    }\n}\nexport class OpenAIPipelineHandler extends OpenAI {\n    constructor(_a) {\n        var { pipelineRun, gentraceConfig } = _a, config = __rest(_a, [\"pipelineRun\", \"gentraceConfig\"]);\n        super(config);\n        this.config = config;\n        this.pipelineRun = pipelineRun;\n        this.gentraceConfig = gentraceConfig;\n    }\n}\nexport class OpenAICreateChatCompletionStepRun extends StepRun {\n    constructor(elapsedTime, startTime, endTime, inputs, modelParams, response, context) {\n        super(\"openai\", \"openai_createChatCompletion\", elapsedTime, startTime, endTime, inputs, modelParams, response, context, undefined);\n    }\n}\nexport class OpenAICreateCompletionStepRun extends StepRun {\n    constructor(elapsedTime, startTime, endTime, inputs, modelParams, response, context) {\n        super(\"openai\", \"openai_createCompletion\", elapsedTime, startTime, endTime, inputs, modelParams, response, context, undefined);\n    }\n}\nexport class OpenAICreateEmbeddingStepRun extends StepRun {\n    constructor(elapsedTime, startTime, endTime, inputs, modelParams, response, context) {\n        super(\"openai\", \"openai_createEmbedding\", elapsedTime, startTime, endTime, inputs, modelParams, response, context, undefined);\n    }\n}\nexport class OpenAICreateModerationStepRun extends StepRun {\n    constructor(elapsedTime, startTime, endTime, inputs, modelParams, response, context) {\n        super(\"openai\", \"openai_createModeration\", elapsedTime, startTime, endTime, inputs, modelParams, response, context, undefined);\n    }\n}\nfunction createChatCompletionStreamResponse(streamList) {\n    var _a, _b, _c, _d;\n    let finalResponseString = \"\";\n    const toolIdToInfoMap = {};\n    let model = \"\";\n    let id = \"\";\n    let created = 0;\n    for (const value of streamList) {\n        model = value.model;\n        id = value.id;\n        created = value.created;\n        if (value.choices && value.choices.length > 0) {\n            const firstChoice = value.choices[0];\n            if (firstChoice.delta && firstChoice.delta.tool_calls) {\n                for (const toolCall of firstChoice.delta.tool_calls) {\n                    if (toolCall.id) {\n                        const existingToolInfo = toolIdToInfoMap[toolCall.id];\n                        if (!existingToolInfo) {\n                            toolIdToInfoMap[toolCall.id] = toolCall;\n                        }\n                        else if (isDefined((_a = existingToolInfo.function) === null || _a === void 0 ? void 0 : _a.arguments) &&\n                            isDefined((_b = toolCall.function) === null || _b === void 0 ? void 0 : _b.arguments)) {\n                            // Assume that the ID is provided to differentiate between different tool calls.\n                            existingToolInfo.function.arguments +=\n                                toolCall.function.arguments;\n                        }\n                    }\n                    else {\n                        // Associate with the tool call in the map\n                        const toolId = Object.keys(toolIdToInfoMap)[0];\n                        if (toolId) {\n                            const existingToolInfo = toolIdToInfoMap[toolId];\n                            if (isDefined((_c = existingToolInfo.function) === null || _c === void 0 ? void 0 : _c.arguments) &&\n                                isDefined((_d = toolCall.function) === null || _d === void 0 ? void 0 : _d.arguments)) {\n                                existingToolInfo.function.arguments +=\n                                    toolCall.function.arguments;\n                            }\n                        }\n                    }\n                }\n            }\n            if (firstChoice.delta && firstChoice.delta.content) {\n                finalResponseString += firstChoice.delta.content;\n            }\n            else if (firstChoice.finish_reason) {\n                break;\n            }\n        }\n    }\n    const finalResponse = {\n        id,\n        // Override this so it doesn't show chat.completion.chunk\n        object: \"chat.completion\",\n        created,\n        model,\n        choices: [\n            {\n                finish_reason: null,\n                index: 0,\n                message: {\n                    content: finalResponseString,\n                    role: \"assistant\",\n                    tool_calls: Object.values(toolIdToInfoMap),\n                },\n            },\n        ],\n    };\n    return finalResponse;\n}\nfunction createCompletionStreamResponse(streamList) {\n    let finalResponseString = \"\";\n    let model = \"\";\n    let id = \"\";\n    let created = 0;\n    for (const value of streamList) {\n        model = value.model;\n        id = value.id;\n        created = value.created;\n        if (value.choices && value.choices.length > 0) {\n            const firstChoice = value.choices[0];\n            if (firstChoice.text) {\n                finalResponseString += firstChoice.text;\n            }\n            else if (firstChoice.delta && firstChoice.delta.content) {\n                finalResponseString += firstChoice.delta.content;\n            }\n            else if (firstChoice.finish_reason &&\n                firstChoice.finish_reason === \"stop\") {\n                break;\n            }\n        }\n    }\n    const finalResponse = {\n        id,\n        // Override this so it doesn't show chat.completion.chunk.\n        object: \"text_completion\",\n        created,\n        model,\n        choices: [\n            {\n                text: finalResponseString,\n                index: 0,\n                logprobs: null,\n                finish_reason: \"length\",\n            },\n        ],\n    };\n    return finalResponse;\n}\n"],"names":["this"],"mappings":";;;;;;;AAAA,IAAI,SAAS,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;AACzF,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,IAAI,MAAM,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC,EAAE;AACtD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT,IAAI,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,aAAa,KAAK,UAAU,CAAC,EAAE;AACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;AAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;AAChI,CAAC,CAAC;AACF,IAAI,OAAO,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAE;AAC9H,IAAI,gBAAgB,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,gBAAgB,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;AACpG,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;AAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAClE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;AACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;AACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;AACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACtF,CAAC,CAAC;AAQF,SAAS,0BAA0B,CAAC,QAAQ,EAAE;AAC9C,IAAI,IAAI,WAAW,GAAG,EAAE,CAAC;AACzB,IAAI,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;AAClC,QAAQ,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,aAAa,EAAE;AAC9D,YAAY,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC;AAC7H,YAAY,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;AACnI,SAAS;AACT,aAAa;AACb,YAAY,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AACzD,SAAS;AACT,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC;AACM,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAC7C,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AAC/C,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,KAAK;AACL,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG;AAC7B,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,OAAO,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG;AAChE,YAAY,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AAChC,YAAY,MAAM,QAAQ,GAAG,EAAE,CAAC;AAChC,YAAY,IAAI;AAChB,gBAAgB,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;AACtI,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;AAClC,oBAAoB,EAAE,GAAG,KAAK,CAAC;AAC/B,oBAAoB,MAAM,IAAI,GAAG,EAAE,CAAC;AACpC;AACA,oBAAoB,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C,oBAAoB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;AACrD,oBAAoB;AACpB,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF,iBAAiB;AACjB,wBAAwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACrD,aAAa;AACb,YAAY,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnE,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,YAAY,MAAM,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACpF,YAAY,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC;AAC1D,YAAY,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1E,YAAY,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,oBAAoB,CAAC;AAC/D,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAChH,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE;AACtC,gBAAgB,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;AACzD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACM,MAAM,kBAAkB,SAAS,MAAM,CAAC,UAAU,CAAC;AAC1D,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,EAAE;AAC1D,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAC7C,KAAK;AACL,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;AAC/B,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;AAC5D,YAAY,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AAC7G,YAAY,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACtF,YAAY,IAAI,0BAA0B,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC;AAC/E,YAAY,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC/C,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;AAC9C,oBAAoB,EAAE,EAAE,YAAY;AACpC,oBAAoB,IAAI,EAAE,YAAY;AACtC,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;AAC1D,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,WAAW,GAAG,IAAI,WAAW,CAAC;AAC9C,oBAAoB,QAAQ;AAC5B,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACzC,YAAY,MAAM,UAAU,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACtH,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;AAChE,YAAY,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,4BAA4B,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACjX,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;AACrE,gBAAgB,UAAU,CAAC,aAAa;AACxC,oBAAoB,aAAa,CAAC;AAClC,gBAAgB,OAAO,UAAU,CAAC;AAClC,aAAa;AACb,YAAY,OAAO,UAAU,CAAC;AAC9B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACM,MAAM,mBAAmB,SAAS,MAAM,CAAC,WAAW,CAAC;AAC5D,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,EAAE;AAC1D,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAC7C,KAAK;AACL,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;AAC/B,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;AAC5D,YAAY,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AAC7G,YAAY,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACtF,YAAY,IAAI,0BAA0B,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC;AAC/E,YAAY,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC/C,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;AAC9C,oBAAoB,EAAE,EAAE,YAAY;AACpC,oBAAoB,IAAI,EAAE,YAAY;AACtC,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;AAC1D,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,WAAW,GAAG,IAAI,WAAW,CAAC;AAC9C,oBAAoB,QAAQ;AAC5B,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACzC,YAAY,MAAM,UAAU,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACvH,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;AAChE,YAAY,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,6BAA6B,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClX,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;AACrE,gBAAgB,UAAU,CAAC,aAAa;AACxC,oBAAoB,aAAa,CAAC;AAClC,gBAAgB,OAAO,UAAU,CAAC;AAClC,aAAa;AACb,YAAY,OAAO,UAAU,CAAC;AAC9B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACM,MAAM,uBAAuB,SAAS,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AACrE,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,EAAE;AAC1D,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAC7C,KAAK;AACL;AACA,IAAI,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE;AACtC,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACvB,QAAQ,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;AAC5D,YAAY,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;AAC1C,YAAY,IAAI,0BAA0B,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC;AACjF,YAAY,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC/C,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;AAC9C,oBAAoB,EAAE,EAAE,YAAY;AACpC,oBAAoB,IAAI,EAAE,YAAY;AACtC,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;AAC1D,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,WAAW,GAAG,IAAI,WAAW,CAAC;AAC9C,oBAAoB,QAAQ;AAC5B,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AAC7J,YAAY,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC1E,YAAY,MAAM,qBAAqB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACpE,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5F,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACjE,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1F,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACzC,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,qBAAqB,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3Q,YAAY,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;AAC1C,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC;AACjC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;AAChE;AACA,YAAY,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,qBAAqB,EAAE,WAAW,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1H,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;AAC7B,gBAAgB,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,iCAAiC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE;AAClJ,oBAAoB,QAAQ,EAAE,gBAAgB;AAC9C,oBAAoB,KAAK;AACzB,oBAAoB,IAAI;AACxB,oBAAoB,aAAa,EAAE,kBAAkB;AACrD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,0BAA0B,EAAE,kCAAkC,CAAC,CAAC;AACnS,aAAa;AACb,iBAAiB;AACjB,gBAAgB,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,iCAAiC,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;AAC5N,oBAAoB,QAAQ,EAAE,gBAAgB;AAC9C,oBAAoB,IAAI;AACxB,oBAAoB,aAAa,EAAE,kBAAkB;AACrD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACjO,aAAa;AACb,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,IAAI,aAAa,GAAG,EAAE,CAAC;AACvC,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAClC,oBAAoB,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;AAClE,oBAAoB,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;AACxD,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,aAAa;AACvC,oBAAoB,aAAa,CAAC;AAClC,gBAAgB,OAAO,SAAS,CAAC;AACjC,aAAa;AACb,YAAY,OAAO,SAAS,CAAC;AAC7B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACM,MAAM,mBAAmB,SAAS,MAAM,CAAC,WAAW,CAAC;AAC5D,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,EAAE;AAC1D,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAC7C,KAAK;AACL,IAAI,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE;AACtC,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC3B,QAAQ,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;AAC5D,YAAY,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;AAC1C,YAAY,IAAI,0BAA0B,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC;AACjF,YAAY,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC/C,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;AAC9C,oBAAoB,EAAE,EAAE,YAAY;AACpC,oBAAoB,IAAI,EAAE,YAAY;AACtC,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;AAC1D,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,WAAW,GAAG,IAAI,WAAW,CAAC;AAC9C,oBAAoB,QAAQ;AAC5B,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AACzN,YAAY,IAAI,cAAc,GAAG,MAAM,CAAC;AACxC,YAAY,IAAI,cAAc,IAAI,YAAY,EAAE;AAChD,gBAAgB,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAC/E,aAAa;AACb,YAAY,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,qBAAqB,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACjN,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACzC,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;AACtN,YAAY,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;AAC1C,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC;AACjC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;AAChE;AACA,YAAY,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,qBAAqB,EAAE,kBAAkB,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACnI,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;AAC7B,gBAAgB,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,6BAA6B,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE;AAC9I,oBAAoB,MAAM,EAAE,cAAc,IAAI,YAAY,GAAG,YAAY,GAAG,MAAM;AAClF,oBAAoB,IAAI;AACxB,oBAAoB,MAAM;AAC1B,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC;AAC7Q,aAAa;AACb,iBAAiB;AACjB,gBAAgB,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,6BAA6B,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;AACxN,oBAAoB,MAAM,EAAE,cAAc,IAAI,YAAY,GAAG,YAAY,GAAG,MAAM;AAClF,oBAAoB,IAAI;AACxB,oBAAoB,MAAM;AAC1B,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/M,aAAa;AACb,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,IAAI,aAAa,GAAG,EAAE,CAAC;AACvC,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAClC,oBAAoB,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;AAClE,oBAAoB,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;AACxD,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,aAAa;AACvC,oBAAoB,aAAa,CAAC;AAClC,gBAAgB,OAAO,SAAS,CAAC;AACjC,aAAa;AACb,YAAY,OAAO,SAAS,CAAC;AAC7B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACM,MAAM,2BAA2B,SAAS,WAAW,CAAC;AAC7D,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,EAAE;AAC1D,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAC7C,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;AAC5D,YAAY,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;AAC1C,YAAY,IAAI,0BAA0B,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,CAAC;AACjF,YAAY,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC/C,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;AAC9C,oBAAoB,EAAE,EAAE,YAAY;AACpC,oBAAoB,IAAI,EAAE,YAAY;AACtC,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;AAC1D,oBAAoB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AACtD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,WAAW,GAAG,IAAI,WAAW,CAAC;AAC9C,oBAAoB,QAAQ;AAC5B,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AAC7J,YAAY,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC1E,YAAY,MAAM,qBAAqB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACpE,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5F,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACjE,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1F,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACzC,YAAY,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C;AACA,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,qBAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9K,YAAY,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC;AAC7C;AACA,YAAY,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5D,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvC,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;AAChE;AACA,YAAY,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,qBAAqB,EAAE,WAAW,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1H,YAAY,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,iCAAiC,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;AACxN,gBAAgB,QAAQ,EAAE,gBAAgB;AAC1C,gBAAgB,IAAI;AACpB,gBAAgB,aAAa,EAAE,kBAAkB;AACjD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxN,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;AAC9D,gBAAgB,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;AAC/D,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;AACjF,aAAa;AACb,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACM,MAAM,qBAAqB,SAAS,MAAM,CAAC;AAClD,IAAI,WAAW,CAAC,EAAE,EAAE;AACpB,QAAQ,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACzG,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAC7C,KAAK;AACL,CAAC;AACM,MAAM,iCAAiC,SAAS,OAAO,CAAC;AAC/D,IAAI,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE;AACzF,QAAQ,KAAK,CAAC,QAAQ,EAAE,6BAA6B,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC3I,KAAK;AACL,CAAC;AACM,MAAM,6BAA6B,SAAS,OAAO,CAAC;AAC3D,IAAI,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE;AACzF,QAAQ,KAAK,CAAC,QAAQ,EAAE,yBAAyB,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACvI,KAAK;AACL,CAAC;AACM,MAAM,4BAA4B,SAAS,OAAO,CAAC;AAC1D,IAAI,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE;AACzF,QAAQ,KAAK,CAAC,QAAQ,EAAE,wBAAwB,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACtI,KAAK;AACL,CAAC;AACM,MAAM,6BAA6B,SAAS,OAAO,CAAC;AAC3D,IAAI,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE;AACzF,QAAQ,KAAK,CAAC,QAAQ,EAAE,yBAAyB,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACvI,KAAK;AACL,CAAC;AACD,SAAS,kCAAkC,CAAC,UAAU,EAAE;AACxD,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACvB,IAAI,IAAI,mBAAmB,GAAG,EAAE,CAAC;AACjC,IAAI,MAAM,eAAe,GAAG,EAAE,CAAC;AAC/B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;AAChB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;AACpC,QAAQ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5B,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AACtB,QAAQ,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAChC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,YAAY,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjD,YAAY,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE;AACnE,gBAAgB,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE;AACrE,oBAAoB,IAAI,QAAQ,CAAC,EAAE,EAAE;AACrC,wBAAwB,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9E,wBAAwB,IAAI,CAAC,gBAAgB,EAAE;AAC/C,4BAA4B,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;AACpE,yBAAyB;AACzB,6BAA6B,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;AAC9H,4BAA4B,SAAS,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE;AACnH;AACA,4BAA4B,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AAC/D,gCAAgC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5D,yBAAyB;AACzB,qBAAqB;AACrB,yBAAyB;AACzB;AACA,wBAAwB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,wBAAwB,IAAI,MAAM,EAAE;AACpC,4BAA4B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAC7E,4BAA4B,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;AAC7H,gCAAgC,SAAS,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE;AACvH,gCAAgC,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AACnE,oCAAoC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;AAChE,6BAA6B;AAC7B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;AAChE,gBAAgB,mBAAmB,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;AACjE,aAAa;AACb,iBAAiB,IAAI,WAAW,CAAC,aAAa,EAAE;AAChD,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,EAAE;AACV;AACA,QAAQ,MAAM,EAAE,iBAAiB;AACjC,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,OAAO,EAAE;AACjB,YAAY;AACZ,gBAAgB,aAAa,EAAE,IAAI;AACnC,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,OAAO,EAAE,mBAAmB;AAChD,oBAAoB,IAAI,EAAE,WAAW;AACrC,oBAAoB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;AAC9D,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,aAAa,CAAC;AACzB,CAAC;AACD,SAAS,8BAA8B,CAAC,UAAU,EAAE;AACpD,IAAI,IAAI,mBAAmB,GAAG,EAAE,CAAC;AACjC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;AAChB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;AACpC,QAAQ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5B,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AACtB,QAAQ,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAChC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,YAAY,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjD,YAAY,IAAI,WAAW,CAAC,IAAI,EAAE;AAClC,gBAAgB,mBAAmB,IAAI,WAAW,CAAC,IAAI,CAAC;AACxD,aAAa;AACb,iBAAiB,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;AACrE,gBAAgB,mBAAmB,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;AACjE,aAAa;AACb,iBAAiB,IAAI,WAAW,CAAC,aAAa;AAC9C,gBAAgB,WAAW,CAAC,aAAa,KAAK,MAAM,EAAE;AACtD,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,EAAE;AACV;AACA,QAAQ,MAAM,EAAE,iBAAiB;AACjC,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,OAAO,EAAE;AACjB,YAAY;AACZ,gBAAgB,IAAI,EAAE,mBAAmB;AACzC,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,aAAa,EAAE,QAAQ;AACvC,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,aAAa,CAAC;AACzB;;;;"}