jtcsv 2.2.8 → 3.1.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.
Files changed (246) hide show
  1. package/README.md +204 -115
  2. package/bin/jtcsv.ts +2612 -0
  3. package/browser.d.ts +142 -0
  4. package/dist/benchmark.js +446 -0
  5. package/dist/benchmark.js.map +1 -0
  6. package/dist/bin/jtcsv.js +1940 -0
  7. package/dist/bin/jtcsv.js.map +1 -0
  8. package/dist/csv-to-json.js +1262 -0
  9. package/dist/csv-to-json.js.map +1 -0
  10. package/dist/errors.js +291 -0
  11. package/dist/errors.js.map +1 -0
  12. package/dist/eslint.config.js +147 -0
  13. package/dist/eslint.config.js.map +1 -0
  14. package/dist/index-core.js +95 -0
  15. package/dist/index-core.js.map +1 -0
  16. package/dist/index.js +93 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/json-save.js +229 -0
  19. package/dist/json-save.js.map +1 -0
  20. package/dist/json-to-csv.js +576 -0
  21. package/dist/json-to-csv.js.map +1 -0
  22. package/dist/jtcsv-core.cjs.js +1736 -0
  23. package/dist/jtcsv-core.cjs.js.map +1 -0
  24. package/dist/jtcsv-core.esm.js +1708 -0
  25. package/dist/jtcsv-core.esm.js.map +1 -0
  26. package/dist/jtcsv-core.umd.js +1742 -0
  27. package/dist/jtcsv-core.umd.js.map +1 -0
  28. package/dist/jtcsv-full.cjs.js +2241 -0
  29. package/dist/jtcsv-full.cjs.js.map +1 -0
  30. package/dist/jtcsv-full.esm.js +2209 -0
  31. package/dist/jtcsv-full.esm.js.map +1 -0
  32. package/dist/jtcsv-full.umd.js +2247 -0
  33. package/dist/jtcsv-full.umd.js.map +1 -0
  34. package/dist/jtcsv-workers.esm.js +768 -0
  35. package/dist/jtcsv-workers.esm.js.map +1 -0
  36. package/dist/jtcsv-workers.umd.js +782 -0
  37. package/dist/jtcsv-workers.umd.js.map +1 -0
  38. package/dist/jtcsv.cjs.js +1996 -2048
  39. package/dist/jtcsv.cjs.js.map +1 -1
  40. package/dist/jtcsv.esm.js +1992 -2048
  41. package/dist/jtcsv.esm.js.map +1 -1
  42. package/dist/jtcsv.umd.js +2157 -2209
  43. package/dist/jtcsv.umd.js.map +1 -1
  44. package/dist/plugins/express-middleware/index.js +350 -0
  45. package/dist/plugins/express-middleware/index.js.map +1 -0
  46. package/dist/plugins/fastify-plugin/index.js +315 -0
  47. package/dist/plugins/fastify-plugin/index.js.map +1 -0
  48. package/dist/plugins/hono/index.js +111 -0
  49. package/dist/plugins/hono/index.js.map +1 -0
  50. package/dist/plugins/nestjs/index.js +112 -0
  51. package/dist/plugins/nestjs/index.js.map +1 -0
  52. package/dist/plugins/nuxt/index.js +53 -0
  53. package/dist/plugins/nuxt/index.js.map +1 -0
  54. package/dist/plugins/remix/index.js +133 -0
  55. package/dist/plugins/remix/index.js.map +1 -0
  56. package/dist/plugins/sveltekit/index.js +155 -0
  57. package/dist/plugins/sveltekit/index.js.map +1 -0
  58. package/dist/plugins/trpc/index.js +136 -0
  59. package/dist/plugins/trpc/index.js.map +1 -0
  60. package/dist/run-demo.js +49 -0
  61. package/dist/run-demo.js.map +1 -0
  62. package/dist/src/browser/browser-functions.js +193 -0
  63. package/dist/src/browser/browser-functions.js.map +1 -0
  64. package/dist/src/browser/core.js +123 -0
  65. package/dist/src/browser/core.js.map +1 -0
  66. package/dist/src/browser/csv-to-json-browser.js +353 -0
  67. package/dist/src/browser/csv-to-json-browser.js.map +1 -0
  68. package/dist/src/browser/errors-browser.js +219 -0
  69. package/dist/src/browser/errors-browser.js.map +1 -0
  70. package/dist/src/browser/extensions/plugins.js +106 -0
  71. package/dist/src/browser/extensions/plugins.js.map +1 -0
  72. package/dist/src/browser/extensions/workers.js +66 -0
  73. package/dist/src/browser/extensions/workers.js.map +1 -0
  74. package/dist/src/browser/index.js +140 -0
  75. package/dist/src/browser/index.js.map +1 -0
  76. package/dist/src/browser/json-to-csv-browser.js +225 -0
  77. package/dist/src/browser/json-to-csv-browser.js.map +1 -0
  78. package/dist/src/browser/streams.js +340 -0
  79. package/dist/src/browser/streams.js.map +1 -0
  80. package/dist/src/browser/workers/csv-parser.worker.js +264 -0
  81. package/dist/src/browser/workers/csv-parser.worker.js.map +1 -0
  82. package/dist/src/browser/workers/worker-pool.js +338 -0
  83. package/dist/src/browser/workers/worker-pool.js.map +1 -0
  84. package/dist/src/core/delimiter-cache.js +196 -0
  85. package/dist/src/core/delimiter-cache.js.map +1 -0
  86. package/dist/src/core/node-optimizations.js +279 -0
  87. package/dist/src/core/node-optimizations.js.map +1 -0
  88. package/dist/src/core/plugin-system.js +399 -0
  89. package/dist/src/core/plugin-system.js.map +1 -0
  90. package/dist/src/core/transform-hooks.js +348 -0
  91. package/dist/src/core/transform-hooks.js.map +1 -0
  92. package/dist/src/engines/fast-path-engine-new.js +262 -0
  93. package/dist/src/engines/fast-path-engine-new.js.map +1 -0
  94. package/dist/src/engines/fast-path-engine.js +671 -0
  95. package/dist/src/engines/fast-path-engine.js.map +1 -0
  96. package/dist/src/errors.js +18 -0
  97. package/dist/src/errors.js.map +1 -0
  98. package/dist/src/formats/ndjson-parser.js +332 -0
  99. package/dist/src/formats/ndjson-parser.js.map +1 -0
  100. package/dist/src/formats/tsv-parser.js +230 -0
  101. package/dist/src/formats/tsv-parser.js.map +1 -0
  102. package/dist/src/index-with-plugins.js +259 -0
  103. package/dist/src/index-with-plugins.js.map +1 -0
  104. package/dist/src/types/index.js +3 -0
  105. package/dist/src/types/index.js.map +1 -0
  106. package/dist/src/utils/bom-utils.js +267 -0
  107. package/dist/src/utils/bom-utils.js.map +1 -0
  108. package/dist/src/utils/encoding-support.js +77 -0
  109. package/dist/src/utils/encoding-support.js.map +1 -0
  110. package/dist/src/utils/schema-validator.js +609 -0
  111. package/dist/src/utils/schema-validator.js.map +1 -0
  112. package/dist/src/utils/transform-loader.js +281 -0
  113. package/dist/src/utils/transform-loader.js.map +1 -0
  114. package/dist/src/utils/validators.js +40 -0
  115. package/dist/src/utils/validators.js.map +1 -0
  116. package/dist/src/utils/zod-adapter.js +144 -0
  117. package/dist/src/utils/zod-adapter.js.map +1 -0
  118. package/dist/src/web-server/index.js +648 -0
  119. package/dist/src/web-server/index.js.map +1 -0
  120. package/dist/src/workers/csv-multithreaded.js +211 -0
  121. package/dist/src/workers/csv-multithreaded.js.map +1 -0
  122. package/dist/src/workers/csv-parser.worker.js +179 -0
  123. package/dist/src/workers/csv-parser.worker.js.map +1 -0
  124. package/dist/src/workers/worker-pool.js +228 -0
  125. package/dist/src/workers/worker-pool.js.map +1 -0
  126. package/dist/stream-csv-to-json.js +665 -0
  127. package/dist/stream-csv-to-json.js.map +1 -0
  128. package/dist/stream-json-to-csv.js +389 -0
  129. package/dist/stream-json-to-csv.js.map +1 -0
  130. package/examples/advanced/conditional-transformations.ts +446 -0
  131. package/examples/advanced/csv-parser.worker.ts +89 -0
  132. package/examples/advanced/nested-objects-example.ts +306 -0
  133. package/examples/advanced/performance-optimization.ts +504 -0
  134. package/examples/advanced/run-demo-server.ts +116 -0
  135. package/examples/advanced/web-worker-usage.html +874 -0
  136. package/examples/async-multithreaded-example.ts +335 -0
  137. package/examples/cli-advanced-usage.md +290 -0
  138. package/examples/{cli-batch-processing.js → cli-batch-processing.ts} +38 -38
  139. package/examples/{cli-tool.js → cli-tool.ts} +5 -8
  140. package/examples/{error-handling.js → error-handling.ts} +356 -324
  141. package/examples/{express-api.js → express-api.ts} +161 -164
  142. package/examples/{large-dataset-example.js → large-dataset-example.ts} +201 -182
  143. package/examples/{ndjson-processing.js → ndjson-processing.ts} +456 -434
  144. package/examples/{plugin-excel-exporter.js → plugin-excel-exporter.ts} +6 -7
  145. package/examples/react-integration.tsx +637 -0
  146. package/examples/{schema-validation.js → schema-validation.ts} +2 -2
  147. package/examples/simple-usage.ts +194 -0
  148. package/examples/{streaming-example.js → streaming-example.ts} +12 -12
  149. package/index.d.ts +187 -18
  150. package/package.json +75 -81
  151. package/plugins.d.ts +37 -0
  152. package/schema.d.ts +103 -0
  153. package/src/browser/browser-functions.ts +402 -0
  154. package/src/browser/core.ts +152 -0
  155. package/src/browser/csv-to-json-browser.d.ts +3 -0
  156. package/src/browser/csv-to-json-browser.ts +494 -0
  157. package/src/browser/{errors-browser.js → errors-browser.ts} +305 -197
  158. package/src/browser/extensions/plugins.ts +93 -0
  159. package/src/browser/extensions/workers.ts +39 -0
  160. package/src/browser/globals.d.ts +5 -0
  161. package/src/browser/index.ts +192 -0
  162. package/src/browser/json-to-csv-browser.d.ts +3 -0
  163. package/src/browser/json-to-csv-browser.ts +338 -0
  164. package/src/browser/streams.ts +403 -0
  165. package/src/browser/workers/{csv-parser.worker.js → csv-parser.worker.ts} +3 -3
  166. package/src/browser/workers/{worker-pool.js → worker-pool.ts} +51 -30
  167. package/src/core/delimiter-cache.ts +320 -0
  168. package/src/core/{node-optimizations.js → node-optimizations.ts} +448 -407
  169. package/src/core/plugin-system.ts +588 -0
  170. package/src/core/transform-hooks.ts +566 -0
  171. package/src/engines/{fast-path-engine-new.js → fast-path-engine-new.ts} +11 -2
  172. package/src/engines/{fast-path-engine.js → fast-path-engine.ts} +79 -53
  173. package/src/errors.ts +1 -0
  174. package/src/formats/{ndjson-parser.js → ndjson-parser.ts} +24 -16
  175. package/src/formats/{tsv-parser.js → tsv-parser.ts} +18 -17
  176. package/src/{index-with-plugins.js → index-with-plugins.ts} +381 -357
  177. package/src/types/index.ts +275 -0
  178. package/src/utils/bom-utils.ts +373 -0
  179. package/src/utils/encoding-support.ts +155 -0
  180. package/src/utils/{schema-validator.js → schema-validator.ts} +814 -589
  181. package/src/utils/transform-loader.ts +389 -0
  182. package/src/utils/validators.ts +35 -0
  183. package/src/utils/zod-adapter.ts +280 -0
  184. package/src/web-server/{index.js → index.ts} +19 -19
  185. package/src/workers/csv-multithreaded.ts +310 -0
  186. package/src/workers/csv-parser.worker.ts +227 -0
  187. package/src/workers/worker-pool.ts +409 -0
  188. package/bin/jtcsv.js +0 -2462
  189. package/csv-to-json.js +0 -688
  190. package/errors.js +0 -208
  191. package/examples/simple-usage.js +0 -282
  192. package/index.js +0 -68
  193. package/json-save.js +0 -254
  194. package/json-to-csv.js +0 -526
  195. package/plugins/README.md +0 -91
  196. package/plugins/express-middleware/README.md +0 -64
  197. package/plugins/express-middleware/example.js +0 -136
  198. package/plugins/express-middleware/index.d.ts +0 -114
  199. package/plugins/express-middleware/index.js +0 -360
  200. package/plugins/express-middleware/package.json +0 -52
  201. package/plugins/fastify-plugin/index.js +0 -406
  202. package/plugins/fastify-plugin/package.json +0 -55
  203. package/plugins/hono/README.md +0 -28
  204. package/plugins/hono/index.d.ts +0 -12
  205. package/plugins/hono/index.js +0 -36
  206. package/plugins/hono/package.json +0 -35
  207. package/plugins/nestjs/README.md +0 -35
  208. package/plugins/nestjs/index.d.ts +0 -25
  209. package/plugins/nestjs/index.js +0 -77
  210. package/plugins/nestjs/package.json +0 -37
  211. package/plugins/nextjs-api/README.md +0 -57
  212. package/plugins/nextjs-api/examples/ConverterComponent.jsx +0 -386
  213. package/plugins/nextjs-api/examples/api-convert.js +0 -69
  214. package/plugins/nextjs-api/index.js +0 -387
  215. package/plugins/nextjs-api/package.json +0 -63
  216. package/plugins/nextjs-api/route.js +0 -371
  217. package/plugins/nuxt/README.md +0 -24
  218. package/plugins/nuxt/index.js +0 -21
  219. package/plugins/nuxt/package.json +0 -35
  220. package/plugins/nuxt/runtime/composables/useJtcsv.js +0 -6
  221. package/plugins/nuxt/runtime/plugin.js +0 -6
  222. package/plugins/remix/README.md +0 -26
  223. package/plugins/remix/index.d.ts +0 -16
  224. package/plugins/remix/index.js +0 -62
  225. package/plugins/remix/package.json +0 -35
  226. package/plugins/sveltekit/README.md +0 -28
  227. package/plugins/sveltekit/index.d.ts +0 -17
  228. package/plugins/sveltekit/index.js +0 -54
  229. package/plugins/sveltekit/package.json +0 -33
  230. package/plugins/trpc/README.md +0 -25
  231. package/plugins/trpc/index.d.ts +0 -7
  232. package/plugins/trpc/index.js +0 -32
  233. package/plugins/trpc/package.json +0 -34
  234. package/src/browser/browser-functions.js +0 -219
  235. package/src/browser/csv-to-json-browser.js +0 -700
  236. package/src/browser/index.js +0 -113
  237. package/src/browser/json-to-csv-browser.js +0 -309
  238. package/src/browser/streams.js +0 -393
  239. package/src/core/delimiter-cache.js +0 -186
  240. package/src/core/plugin-system.js +0 -476
  241. package/src/core/transform-hooks.js +0 -350
  242. package/src/errors.js +0 -26
  243. package/src/utils/transform-loader.js +0 -205
  244. package/stream-csv-to-json.js +0 -542
  245. package/stream-json-to-csv.js +0 -464
  246. /package/examples/{web-workers-advanced.js → web-workers-advanced.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"jtcsv.esm.js","sources":["../src/browser/errors-browser.js","../src/browser/json-to-csv-browser.js","../src/browser/csv-to-json-browser.js","../src/browser/streams.js","../src/browser/browser-functions.js","../src/browser/workers/worker-pool.js","../src/browser/index.js"],"sourcesContent":["// Система ошибок для браузерной версии jtcsv\n// Адаптирована для работы без Node.js специфичных API\n\n/**\n * Базовый класс ошибки jtcsv\n */\nexport class JTCSVError extends Error {\n constructor(message, code = 'JTCSV_ERROR', details = {}) {\n super(message);\n this.name = 'JTCSVError';\n this.code = code;\n this.details = details;\n \n // Сохранение stack trace\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, JTCSVError);\n }\n }\n}\n\n/**\n * Ошибка валидации\n */\nexport class ValidationError extends JTCSVError {\n constructor(message, details = {}) {\n super(message, 'VALIDATION_ERROR', details);\n this.name = 'ValidationError';\n }\n}\n\n/**\n * Ошибка безопасности\n */\nexport class SecurityError extends JTCSVError {\n constructor(message, details = {}) {\n super(message, 'SECURITY_ERROR', details);\n this.name = 'SecurityError';\n }\n}\n\n/**\n * Ошибка файловой системы (адаптирована для браузера)\n */\nexport class FileSystemError extends JTCSVError {\n constructor(message, originalError = null, details = {}) {\n super(message, 'FILE_SYSTEM_ERROR', { ...details, originalError });\n this.name = 'FileSystemError';\n \n if (originalError && originalError.code) {\n this.code = originalError.code;\n }\n }\n}\n\n/**\n * Ошибка парсинга\n */\nexport class ParsingError extends JTCSVError {\n constructor(message, lineNumber = null, details = {}) {\n super(message, 'PARSING_ERROR', { ...details, lineNumber });\n this.name = 'ParsingError';\n this.lineNumber = lineNumber;\n }\n}\n\n/**\n * Ошибка превышения лимита\n */\nexport class LimitError extends JTCSVError {\n constructor(message, limit, actual, details = {}) {\n super(message, 'LIMIT_ERROR', { ...details, limit, actual });\n this.name = 'LimitError';\n this.limit = limit;\n this.actual = actual;\n }\n}\n\n/**\n * Ошибка конфигурации\n */\nexport class ConfigurationError extends JTCSVError {\n constructor(message, details = {}) {\n super(message, 'CONFIGURATION_ERROR', details);\n this.name = 'ConfigurationError';\n }\n}\n\nexport const ERROR_CODES = {\n JTCSV_ERROR: 'JTCSV_ERROR',\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n SECURITY_ERROR: 'SECURITY_ERROR',\n FILE_SYSTEM_ERROR: 'FILE_SYSTEM_ERROR',\n PARSING_ERROR: 'PARSING_ERROR',\n LIMIT_ERROR: 'LIMIT_ERROR',\n CONFIGURATION_ERROR: 'CONFIGURATION_ERROR',\n INVALID_INPUT: 'INVALID_INPUT',\n SECURITY_VIOLATION: 'SECURITY_VIOLATION',\n FILE_NOT_FOUND: 'FILE_NOT_FOUND',\n PARSE_FAILED: 'PARSE_FAILED',\n SIZE_LIMIT: 'SIZE_LIMIT',\n INVALID_CONFIG: 'INVALID_CONFIG',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR'\n};\n\n/**\n * Безопасное выполнение функции с обработкой ошибок\n * \n * @param {Function} fn - Функция для выполнения\n * @param {string} errorCode - Код ошибки по умолчанию\n * @param {Object} errorDetails - Детали ошибки\n * @returns {*} Результат выполнения функции\n */\nexport function safeExecute(fn, errorCode = 'UNKNOWN_ERROR', errorDetails = {}) {\n try {\n if (typeof fn === 'function') {\n return fn();\n }\n throw new ValidationError('Function expected');\n } catch (error) {\n // Если ошибка уже является JTCSVError, перебросить её\n if (error instanceof JTCSVError) {\n throw error;\n }\n \n // Определить тип ошибки на основе сообщения или кода\n let enhancedError;\n const errorMessage = error.message || String(error);\n \n if (errorMessage.includes('validation') || errorMessage.includes('Validation')) {\n enhancedError = new ValidationError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('security') || errorMessage.includes('Security')) {\n enhancedError = new SecurityError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('parsing') || errorMessage.includes('Parsing')) {\n enhancedError = new ParsingError(errorMessage, null, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('limit') || errorMessage.includes('Limit')) {\n enhancedError = new LimitError(errorMessage, null, null, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('configuration') || errorMessage.includes('Configuration')) {\n enhancedError = new ConfigurationError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('file') || errorMessage.includes('File')) {\n enhancedError = new FileSystemError(errorMessage, error, errorDetails);\n } else {\n // Общая ошибка\n enhancedError = new JTCSVError(errorMessage, errorCode, { ...errorDetails, originalError: error });\n }\n \n // Сохранить оригинальный stack trace если возможно\n if (error.stack) {\n enhancedError.stack = error.stack;\n }\n \n throw enhancedError;\n }\n}\n\n/**\n * Асинхронная версия safeExecute\n */\nexport async function safeExecuteAsync(fn, errorCode = 'UNKNOWN_ERROR', errorDetails = {}) {\n try {\n if (typeof fn === 'function') {\n return await fn();\n }\n throw new ValidationError('Function expected');\n } catch (error) {\n // Если ошибка уже является JTCSVError, перебросить её\n if (error instanceof JTCSVError) {\n throw error;\n }\n \n // Определить тип ошибки\n let enhancedError;\n const errorMessage = error.message || String(error);\n \n if (errorMessage.includes('validation') || errorMessage.includes('Validation')) {\n enhancedError = new ValidationError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('security') || errorMessage.includes('Security')) {\n enhancedError = new SecurityError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('parsing') || errorMessage.includes('Parsing')) {\n enhancedError = new ParsingError(errorMessage, null, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('limit') || errorMessage.includes('Limit')) {\n enhancedError = new LimitError(errorMessage, null, null, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('configuration') || errorMessage.includes('Configuration')) {\n enhancedError = new ConfigurationError(errorMessage, { ...errorDetails, originalError: error });\n } else if (errorMessage.includes('file') || errorMessage.includes('File')) {\n enhancedError = new FileSystemError(errorMessage, error, errorDetails);\n } else {\n enhancedError = new JTCSVError(errorMessage, errorCode, { ...errorDetails, originalError: error });\n }\n \n if (error.stack) {\n enhancedError.stack = error.stack;\n }\n \n throw enhancedError;\n }\n}\n\n// Экспорт для Node.js совместимости\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n JTCSVError,\n ValidationError,\n SecurityError,\n FileSystemError,\n ParsingError,\n LimitError,\n ConfigurationError,\n ERROR_CODES,\n safeExecute,\n safeExecuteAsync\n };\n}\n","// Браузерная версия JSON to CSV конвертера\n// Адаптирована для работы в браузере без Node.js API\n\nimport {\n ValidationError,\n ConfigurationError,\n LimitError,\n safeExecute\n} from './errors-browser.js';\n\n/**\n * Валидация входных данных и опций\n * @private\n */\nfunction validateInput(data, options) {\n // Validate data\n if (!Array.isArray(data)) {\n throw new ValidationError('Input data must be an array');\n }\n \n // Validate options\n if (options && typeof options !== 'object') {\n throw new ConfigurationError('Options must be an object');\n }\n \n // Validate delimiter\n if (options?.delimiter && typeof options.delimiter !== 'string') {\n throw new ConfigurationError('Delimiter must be a string');\n }\n \n if (options?.delimiter && options.delimiter.length !== 1) {\n throw new ConfigurationError('Delimiter must be a single character');\n }\n \n // Validate renameMap\n if (options?.renameMap && typeof options.renameMap !== 'object') {\n throw new ConfigurationError('renameMap must be an object');\n }\n \n // Validate maxRecords\n if (options && options.maxRecords !== undefined) {\n if (typeof options.maxRecords !== 'number' || options.maxRecords <= 0) {\n throw new ConfigurationError('maxRecords must be a positive number');\n }\n }\n \n // Validate preventCsvInjection\n if (options?.preventCsvInjection !== undefined && typeof options.preventCsvInjection !== 'boolean') {\n throw new ConfigurationError('preventCsvInjection must be a boolean');\n }\n \n // Validate rfc4180Compliant\n if (options?.rfc4180Compliant !== undefined && typeof options.rfc4180Compliant !== 'boolean') {\n throw new ConfigurationError('rfc4180Compliant must be a boolean');\n }\n \n return true;\n}\n\n/**\n * Конвертирует JSON данные в CSV формат\n * \n * @param {Array<Object>} data - Массив объектов для конвертации в CSV\n * @param {Object} [options] - Опции конфигурации\n * @param {string} [options.delimiter=';'] - CSV разделитель\n * @param {boolean} [options.includeHeaders=true] - Включать ли заголовки\n * @param {Object} [options.renameMap={}] - Маппинг переименования заголовков\n * @param {Object} [options.template={}] - Шаблон для порядка колонок\n * @param {number} [options.maxRecords] - Максимальное количество записей\n * @param {boolean} [options.preventCsvInjection=true] - Защита от CSV инъекций\n * @param {boolean} [options.rfc4180Compliant=true] - Соответствие RFC 4180\n * @returns {string} CSV строка\n */\nexport function jsonToCsv(data, options = {}) {\n return safeExecute(() => {\n // Валидация входных данных\n validateInput(data, options);\n \n const opts = options && typeof options === 'object' ? options : {};\n \n const {\n delimiter = ';',\n includeHeaders = true,\n renameMap = {},\n template = {},\n maxRecords,\n preventCsvInjection = true,\n rfc4180Compliant = true\n } = opts;\n\n // Обработка пустых данных\n if (data.length === 0) {\n return '';\n }\n\n // Предупреждение для больших наборов данных\n if (data.length > 1000000 && !maxRecords && process.env.NODE_ENV !== 'production') {\n console.warn(\n '⚠️ Warning: Processing >1M records in memory may be slow.\\n' +\n '💡 Consider processing data in batches or using Web Workers for large files.\\n' +\n '📊 Current size: ' + data.length.toLocaleString() + ' records'\n );\n }\n\n // Применение ограничения по количеству записей\n if (maxRecords && data.length > maxRecords) {\n throw new LimitError(\n `Data size exceeds maximum limit of ${maxRecords} records`,\n maxRecords,\n data.length\n );\n }\n\n // Получение всех уникальных ключей\n const allKeys = new Set();\n data.forEach((item) => {\n if (!item || typeof item !== 'object') {\n return;\n }\n Object.keys(item).forEach(key => allKeys.add(key));\n });\n \n const originalKeys = Array.from(allKeys);\n \n // Применение rename map для создания заголовков\n const headers = originalKeys.map(key => renameMap[key] || key);\n \n // Создание обратного маппинга\n const reverseRenameMap = {};\n originalKeys.forEach((key, index) => {\n reverseRenameMap[headers[index]] = key;\n });\n\n // Применение порядка из шаблона\n let finalHeaders = headers;\n if (Object.keys(template).length > 0) {\n const templateHeaders = Object.keys(template).map(key => renameMap[key] || key);\n const extraHeaders = headers.filter(h => !templateHeaders.includes(h));\n finalHeaders = [...templateHeaders, ...extraHeaders];\n }\n\n /**\n * Экранирование значения для CSV с защитой от инъекций\n * @private\n */\n const escapeValue = (value) => {\n if (value === null || value === undefined || value === '') {\n return '';\n }\n \n const stringValue = String(value);\n \n // Защита от CSV инъекций\n let escapedValue = stringValue;\n if (preventCsvInjection && /^[=+\\-@]/.test(stringValue)) {\n escapedValue = \"'\" + stringValue;\n }\n \n // Соответствие RFC 4180\n const needsQuoting = rfc4180Compliant \n ? (escapedValue.includes(delimiter) ||\n escapedValue.includes('\"') ||\n escapedValue.includes('\\n') ||\n escapedValue.includes('\\r'))\n : (escapedValue.includes(delimiter) ||\n escapedValue.includes('\"') ||\n escapedValue.includes('\\n') ||\n escapedValue.includes('\\r'));\n \n if (needsQuoting) {\n return `\"${escapedValue.replace(/\"/g, '\"\"')}\"`;\n }\n \n return escapedValue;\n };\n\n // Построение CSV строк\n const rows = [];\n \n // Добавление заголовков\n if (includeHeaders && finalHeaders.length > 0) {\n rows.push(finalHeaders.join(delimiter));\n }\n \n // Добавление данных\n for (const item of data) {\n if (!item || typeof item !== 'object') {\n continue;\n }\n \n const row = finalHeaders.map(header => {\n const originalKey = reverseRenameMap[header] || header;\n const value = item[originalKey];\n return escapeValue(value);\n }).join(delimiter);\n \n rows.push(row);\n }\n \n // Разделители строк согласно RFC 4180\n const lineEnding = rfc4180Compliant ? '\\r\\n' : '\\n';\n return rows.join(lineEnding);\n }, 'PARSE_FAILED', { function: 'jsonToCsv' });\n}\n\n/**\n * Глубокое разворачивание вложенных объектов и массивов\n * \n * @param {*} value - Значение для разворачивания\n * @param {number} [depth=0] - Текущая глубина рекурсии\n * @param {number} [maxDepth=5] - Максимальная глубина рекурсии\n * @param {Set} [visited=new Set()] - Посещенные объекты для обнаружения циклических ссылок\n * @returns {string} Развернутое строковое значение\n */\nexport function deepUnwrap(value, depth = 0, maxDepth = 5, visited = new Set()) {\n // Проверка глубины\n if (depth >= maxDepth) {\n return '[Too Deep]';\n }\n if (value === null || value === undefined) {\n return '';\n }\n \n // Обработка циклических ссылок\n if (typeof value === 'object') {\n if (visited.has(value)) {\n return '[Circular Reference]';\n }\n visited.add(value);\n }\n \n // Обработка массивов\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '';\n }\n const unwrappedItems = value.map(item => \n deepUnwrap(item, depth + 1, maxDepth, visited)\n ).filter(item => item !== '');\n return unwrappedItems.join(', ');\n }\n \n // Обработка объектов\n if (typeof value === 'object') {\n const keys = Object.keys(value);\n if (keys.length === 0) {\n return '';\n }\n \n if (depth + 1 >= maxDepth) {\n return '[Too Deep]';\n }\n \n // Сериализация сложных объектов\n try {\n return JSON.stringify(value);\n } catch (error) {\n if (error.message.includes('circular') || error.message.includes('Converting circular')) {\n return '[Circular Reference]';\n }\n return '[Unstringifiable Object]';\n }\n }\n \n // Примитивные значения\n return String(value);\n}\n\n/**\n * Предобработка JSON данных путем глубокого разворачивания вложенных структур\n * \n * @param {Array<Object>} data - Массив объектов для предобработки\n * @returns {Array<Object>} Предобработанные данные с развернутыми значениями\n */\nexport function preprocessData(data) {\n if (!Array.isArray(data)) {\n return [];\n }\n \n return data.map(item => {\n if (!item || typeof item !== 'object') {\n return {};\n }\n \n const processed = {};\n \n for (const key in item) {\n if (Object.prototype.hasOwnProperty.call(item, key)) {\n const value = item[key];\n if (value && typeof value === 'object') {\n processed[key] = deepUnwrap(value);\n } else {\n processed[key] = value;\n }\n }\n }\n \n return processed;\n });\n}\n\n// Экспорт для Node.js совместимости\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n jsonToCsv,\n preprocessData,\n deepUnwrap\n };\n}\r\n","// Браузерная версия CSV to JSON конвертера\n// Адаптирована для работы в браузере без Node.js API\n\nimport {\n ValidationError,\n ParsingError,\n LimitError,\n ConfigurationError,\n safeExecute\n} from './errors-browser.js';\n\n/**\n * Валидация опций парсинга\n * @private\n */\nfunction validateCsvOptions(options) {\n // Validate options\n if (options && typeof options !== 'object') {\n throw new ConfigurationError('Options must be an object');\n }\n \n // Validate delimiter\n if (options?.delimiter && typeof options.delimiter !== 'string') {\n throw new ConfigurationError('Delimiter must be a string');\n }\n \n if (options?.delimiter && options.delimiter.length !== 1) {\n throw new ConfigurationError('Delimiter must be a single character');\n }\n \n // Validate autoDetect\n if (options?.autoDetect !== undefined && typeof options.autoDetect !== 'boolean') {\n throw new ConfigurationError('autoDetect must be a boolean');\n }\n \n // Validate candidates\n if (options?.candidates && !Array.isArray(options.candidates)) {\n throw new ConfigurationError('candidates must be an array');\n }\n \n // Validate maxRows\n if (options?.maxRows !== undefined && (typeof options.maxRows !== 'number' || options.maxRows <= 0)) {\n throw new ConfigurationError('maxRows must be a positive number');\n }\n\n if (options?.warnExtraFields !== undefined && typeof options.warnExtraFields !== 'boolean') {\n throw new ConfigurationError('warnExtraFields must be a boolean');\n }\n \n return true;\n}\n\n/**\n * Валидация CSV ввода и опций\n * @private\n */\nfunction validateCsvInput(csv, options) {\n // Validate CSV input\n if (typeof csv !== 'string') {\n throw new ValidationError('Input must be a CSV string');\n }\n \n return validateCsvOptions(options);\n}\n\n/**\n * Парсинг одной строки CSV с правильным экранированием\n * @private\n */\nfunction parseCsvLine(line, lineNumber, delimiter) {\n const fields = [];\n let currentField = '';\n let insideQuotes = false;\n let escapeNext = false;\n\n for (let i = 0; i < line.length; i++) {\n const char = line[i];\n \n if (escapeNext) {\n currentField += char;\n escapeNext = false;\n continue;\n }\n\n if (char === '\\\\') {\n if (i + 1 === line.length) {\n // Обратный слеш в конце строки\n currentField += char;\n } else if (line[i + 1] === '\\\\') {\n // Двойной обратный слеш\n currentField += char;\n i++; // Пропустить следующий слеш\n } else {\n // Экранирование следующего символа\n escapeNext = true;\n }\n continue;\n }\n\n if (char === '\"') {\n if (insideQuotes) {\n if (i + 1 < line.length && line[i + 1] === '\"') {\n // Экранированная кавычка внутри кавычек\n currentField += '\"';\n i++; // Пропустить следующую кавычку\n \n // Проверка конца поля\n let isEndOfField = false;\n let j = i + 1;\n while (j < line.length && (line[j] === ' ' || line[j] === '\\t')) {\n j++;\n }\n if (j === line.length || line[j] === delimiter) {\n isEndOfField = true;\n }\n \n if (isEndOfField) {\n insideQuotes = false;\n }\n } else {\n // Проверка конца поля\n let isEndOfField = false;\n let j = i + 1;\n while (j < line.length && (line[j] === ' ' || line[j] === '\\t')) {\n j++;\n }\n if (j === line.length || line[j] === delimiter) {\n isEndOfField = true;\n }\n \n if (isEndOfField) {\n insideQuotes = false;\n } else {\n currentField += '\"';\n }\n }\n } else {\n // Начало поля в кавычках\n insideQuotes = true;\n }\n continue;\n }\n\n if (!insideQuotes && char === delimiter) {\n // Конец поля\n fields.push(currentField);\n currentField = '';\n continue;\n }\n\n currentField += char;\n }\n\n // Обработка незавершенного экранирования\n if (escapeNext) {\n currentField += '\\\\';\n }\n\n // Добавление последнего поля\n fields.push(currentField);\n\n // Проверка незакрытых кавычек\n if (insideQuotes) {\n throw new ParsingError('Unclosed quotes in CSV', lineNumber);\n }\n\n // Валидация количества полей\n if (fields.length === 0) {\n throw new ParsingError('No fields found', lineNumber);\n }\n\n return fields;\n}\n\n/**\n * Парсинг значения на основе опций\n * @private\n */\nfunction parseCsvValue(value, options) {\n const { trim = true, parseNumbers = false, parseBooleans = false } = options;\n \n let result = value;\n \n if (trim) {\n result = result.trim();\n }\n \n // Удаление защиты формул Excel\n if (result.startsWith(\"'\")) {\n result = result.substring(1);\n }\n \n // Парсинг чисел\n if (parseNumbers && /^-?\\d+(\\.\\d+)?$/.test(result)) {\n const num = parseFloat(result);\n if (!isNaN(num)) {\n return num;\n }\n }\n \n // Парсинг булевых значений\n if (parseBooleans) {\n const lowerValue = result.toLowerCase();\n if (lowerValue === 'true') {\n return true; \n }\n if (lowerValue === 'false') {\n return false; \n }\n }\n \n // Пустые строки как null\n if (result === '') {\n return null;\n }\n \n return result;\n}\n\nfunction isSimpleCsv(csv) {\n return csv.indexOf('\"') === -1 && csv.indexOf('\\\\') === -1;\n}\n\nfunction parseSimpleCsv(csv, delimiter, options) {\n const {\n hasHeaders = true,\n renameMap = {},\n trim = true,\n parseNumbers = false,\n parseBooleans = false,\n maxRows\n } = options;\n\n const result = [];\n let headers = null;\n let fieldStart = 0;\n let currentRow = [];\n let rowHasData = false;\n let rowCount = 0;\n\n const finalizeRow = (fields) => {\n if (fields.length === 1 && fields[0].trim() === '') {\n return;\n }\n\n if (!headers) {\n if (hasHeaders) {\n headers = fields.map(header => {\n const trimmed = trim ? header.trim() : header;\n return renameMap[trimmed] || trimmed;\n });\n return;\n }\n\n headers = fields.map((_, index) => `column${index + 1}`);\n }\n\n rowCount++;\n if (maxRows && rowCount > maxRows) {\n throw new LimitError(\n `CSV size exceeds maximum limit of ${maxRows} rows`,\n maxRows,\n rowCount\n );\n }\n\n const row = {};\n const fieldCount = Math.min(fields.length, headers.length);\n for (let i = 0; i < fieldCount; i++) {\n row[headers[i]] = parseCsvValue(fields[i], { trim, parseNumbers, parseBooleans });\n }\n\n result.push(row);\n };\n\n let i = 0;\n while (i <= csv.length) {\n const char = i < csv.length ? csv[i] : '\\n';\n\n if (char !== '\\r' && char !== '\\n' && char !== ' ' && char !== '\\t') {\n rowHasData = true;\n }\n\n if (char === delimiter || char === '\\n' || char === '\\r' || i === csv.length) {\n const field = csv.slice(fieldStart, i);\n currentRow.push(field);\n\n if (char === '\\n' || char === '\\r' || i === csv.length) {\n if (rowHasData || currentRow.length > 1) {\n finalizeRow(currentRow);\n }\n currentRow = [];\n rowHasData = false;\n }\n\n if (char === '\\r' && csv[i + 1] === '\\n') {\n i++;\n }\n\n fieldStart = i + 1;\n }\n\n i++;\n }\n\n return result;\n}\n\n/**\n * Автоматическое определение разделителя CSV\n * \n * @param {string} csv - CSV строка\n * @param {Array} [candidates=[';', ',', '\\t', '|']] - Кандидаты на разделитель\n * @returns {string} Определенный разделитель\n */\nexport function autoDetectDelimiter(csv, candidates = [';', ',', '\\t', '|']) {\n if (!csv || typeof csv !== 'string') {\n return ';'; // значение по умолчанию\n }\n\n const lines = csv.split('\\n').filter(line => line.trim().length > 0);\n \n if (lines.length === 0) {\n return ';'; // значение по умолчанию\n }\n\n // Использование первой непустой строки для определения\n const firstLine = lines[0];\n \n const counts = {};\n candidates.forEach(delim => {\n const escapedDelim = delim.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regex = new RegExp(escapedDelim, 'g');\n const matches = firstLine.match(regex);\n counts[delim] = matches ? matches.length : 0;\n });\n\n // Поиск разделителя с максимальным количеством\n let maxCount = -1;\n let detectedDelimiter = ';'; // значение по умолчанию\n \n for (const [delim, count] of Object.entries(counts)) {\n if (count > maxCount) {\n maxCount = count;\n detectedDelimiter = delim;\n }\n }\n\n // Если разделитель не найден или ничья\n if (maxCount === 0) {\n return ';'; // значение по умолчанию\n }\n\n return detectedDelimiter;\n}\n\n/**\n * Конвертирует CSV строку в JSON массив\n * \n * @param {string} csv - CSV строка для конвертации\n * @param {Object} [options] - Опции конфигурации\n * @param {string} [options.delimiter] - CSV разделитель (по умолчанию: автоопределение)\n * @param {boolean} [options.autoDetect=true] - Автоопределение разделителя\n * @param {Array} [options.candidates=[';', ',', '\\t', '|']] - Кандидаты для автоопределения\n * @param {boolean} [options.hasHeaders=true] - Есть ли заголовки в CSV\n * @param {Object} [options.renameMap={}] - Маппинг переименования заголовков\n * @param {boolean} [options.trim=true] - Обрезать пробелы\n * @param {boolean} [options.parseNumbers=false] - Парсить числовые значения\n * @param {boolean} [options.parseBooleans=false] - Парсить булевы значения\n * @param {number} [options.maxRows] - Максимальное количество строк\n * @returns {Array<Object>} JSON массив\n */\nexport function csvToJson(csv, options = {}) {\n return safeExecute(() => {\n // Валидация ввода\n validateCsvInput(csv, options);\n \n const opts = options && typeof options === 'object' ? options : {};\n \n const {\n delimiter,\n autoDetect = true,\n candidates = [';', ',', '\\t', '|'],\n hasHeaders = true,\n renameMap = {},\n trim = true,\n parseNumbers = false,\n parseBooleans = false,\n maxRows,\n warnExtraFields = true\n } = opts;\n\n // Определение разделителя\n let finalDelimiter = delimiter;\n if (!finalDelimiter && autoDetect) {\n finalDelimiter = autoDetectDelimiter(csv, candidates);\n }\n finalDelimiter = finalDelimiter || ';'; // fallback\n\n // Обработка пустого CSV\n if (csv.trim() === '') {\n return [];\n }\n\n if (isSimpleCsv(csv)) {\n return parseSimpleCsv(csv, finalDelimiter, {\n hasHeaders,\n renameMap,\n trim,\n parseNumbers,\n parseBooleans,\n maxRows\n });\n }\n\n // Парсинг CSV с обработкой кавычек и переносов строк\n const lines = [];\n let currentLine = '';\n let insideQuotes = false;\n \n for (let i = 0; i < csv.length; i++) {\n const char = csv[i];\n \n if (char === '\"') {\n if (insideQuotes && i + 1 < csv.length && csv[i + 1] === '\"') {\n // Экранированная кавычка внутри кавычек\n currentLine += '\"';\n i++; // Пропустить следующую кавычку\n } else {\n // Переключение режима кавычек\n insideQuotes = !insideQuotes;\n }\n currentLine += char;\n continue;\n }\n \n if (char === '\\n' && !insideQuotes) {\n // Конец строки (вне кавычек)\n lines.push(currentLine);\n currentLine = '';\n continue;\n }\n \n if (char === '\\r') {\n // Игнорировать carriage return\n continue;\n }\n \n currentLine += char;\n }\n \n // Добавление последней строки\n if (currentLine !== '' || insideQuotes) {\n lines.push(currentLine);\n }\n \n if (lines.length === 0) {\n return [];\n }\n\n // Предупреждение для больших наборов данных\n if (lines.length > 1000000 && !maxRows && process.env.NODE_ENV !== 'production') {\n console.warn(\n '⚠️ Warning: Processing >1M records in memory may be slow.\\n' +\n '💡 Consider using Web Workers for better performance with large files.\\n' +\n '📊 Current size: ' + lines.length.toLocaleString() + ' rows'\n );\n }\n\n // Применение ограничения по строкам\n if (maxRows && lines.length > maxRows) {\n throw new LimitError(\n `CSV size exceeds maximum limit of ${maxRows} rows`,\n maxRows,\n lines.length\n );\n }\n\n let headers = [];\n let startIndex = 0;\n \n // Парсинг заголовков если есть\n if (hasHeaders && lines.length > 0) {\n try {\n headers = parseCsvLine(lines[0], 1, finalDelimiter).map(header => {\n const trimmed = trim ? header.trim() : header;\n return renameMap[trimmed] || trimmed;\n });\n startIndex = 1;\n } catch (error) {\n if (error instanceof ParsingError) {\n throw new ParsingError(`Failed to parse headers: ${error.message}`, 1);\n }\n throw error;\n }\n } else {\n // Генерация числовых заголовков из первой строки\n try {\n const firstLineFields = parseCsvLine(lines[0], 1, finalDelimiter);\n headers = firstLineFields.map((_, index) => `column${index + 1}`);\n } catch (error) {\n if (error instanceof ParsingError) {\n throw new ParsingError(`Failed to parse first line: ${error.message}`, 1);\n }\n throw error;\n }\n }\n\n // Парсинг строк данных\n const result = [];\n \n for (let i = startIndex; i < lines.length; i++) {\n const line = lines[i];\n \n // Пропуск пустых строк\n if (line.trim() === '') {\n continue;\n }\n \n try {\n const fields = parseCsvLine(line, i + 1, finalDelimiter);\n \n // Обработка несоответствия количества полей\n const row = {};\n const fieldCount = Math.min(fields.length, headers.length);\n \n for (let j = 0; j < fieldCount; j++) {\n row[headers[j]] = parseCsvValue(fields[j], { trim, parseNumbers, parseBooleans });\n }\n \n // Предупреждение о лишних полях\n const isDev = typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'development';\n if (fields.length > headers.length && warnExtraFields && isDev) {\n console.warn(`[jtcsv] Line ${i + 1}: ${fields.length - headers.length} extra fields ignored`);\n }\n \n result.push(row);\n } catch (error) {\n if (error instanceof ParsingError) {\n throw new ParsingError(`Line ${i + 1}: ${error.message}`, i + 1);\n }\n throw error;\n }\n }\n\n return result;\n }, 'PARSE_FAILED', { function: 'csvToJson' });\n}\n\nexport async function* csvToJsonIterator(input, options = {}) {\n const opts = options && typeof options === 'object' ? options : {};\n validateCsvOptions(opts);\n\n if (typeof input === 'string') {\n const rows = csvToJson(input, options);\n for (const row of rows) {\n yield row;\n }\n return;\n }\n\n const {\n delimiter,\n autoDetect = true,\n candidates = [';', ',', '\\t', '|'],\n hasHeaders = true,\n renameMap = {},\n trim = true,\n parseNumbers = false,\n parseBooleans = false,\n maxRows\n } = opts;\n\n const stream = (input instanceof Blob && input.stream) ? input.stream() : input;\n if (!stream || typeof stream.getReader !== 'function') {\n throw new ValidationError('Input must be a CSV string, Blob/File, or ReadableStream');\n }\n\n const reader = stream.getReader();\n const decoder = new TextDecoder('utf-8');\n let buffer = '';\n let insideQuotes = false;\n let headers = null;\n let rowCount = 0;\n let lineNumber = 0;\n let finalDelimiter = delimiter;\n let delimiterResolved = Boolean(finalDelimiter);\n\n const processFields = (fields) => {\n if (fields.length === 1 && fields[0].trim() === '') {\n return null;\n }\n\n rowCount++;\n if (maxRows && rowCount > maxRows) {\n throw new LimitError(\n `CSV size exceeds maximum limit of ${maxRows} rows`,\n maxRows,\n rowCount\n );\n }\n\n const row = {};\n const fieldCount = Math.min(fields.length, headers.length);\n for (let j = 0; j < fieldCount; j++) {\n row[headers[j]] = parseCsvValue(fields[j], { trim, parseNumbers, parseBooleans });\n }\n return row;\n };\n\n const processLine = (line) => {\n lineNumber++;\n let cleanLine = line;\n if (cleanLine.endsWith('\\r')) {\n cleanLine = cleanLine.slice(0, -1);\n }\n\n if (!delimiterResolved) {\n if (!finalDelimiter && autoDetect) {\n finalDelimiter = autoDetectDelimiter(cleanLine, candidates);\n }\n finalDelimiter = finalDelimiter || ';';\n delimiterResolved = true;\n }\n\n if (cleanLine.trim() === '') {\n return null;\n }\n\n if (!headers) {\n if (hasHeaders) {\n headers = parseCsvLine(cleanLine, lineNumber, finalDelimiter).map(header => {\n const trimmed = trim ? header.trim() : header;\n return renameMap[trimmed] || trimmed;\n });\n return null;\n }\n\n const fields = parseCsvLine(cleanLine, lineNumber, finalDelimiter);\n headers = fields.map((_, index) => `column${index + 1}`);\n return processFields(fields);\n }\n\n const fields = parseCsvLine(cleanLine, lineNumber, finalDelimiter);\n return processFields(fields);\n };\n\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n break;\n }\n\n buffer += decoder.decode(value, { stream: true });\n\n let start = 0;\n for (let i = 0; i < buffer.length; i++) {\n const char = buffer[i];\n if (char === '\"') {\n if (insideQuotes && buffer[i + 1] === '\"') {\n i++;\n continue;\n }\n insideQuotes = !insideQuotes;\n continue;\n }\n\n if (char === '\\n' && !insideQuotes) {\n const line = buffer.slice(start, i);\n start = i + 1;\n const row = processLine(line);\n if (row) {\n yield row;\n }\n }\n }\n\n buffer = buffer.slice(start);\n }\n\n if (buffer.length > 0) {\n const row = processLine(buffer);\n if (row) {\n yield row;\n }\n }\n\n if (insideQuotes) {\n throw new ParsingError('Unclosed quotes in CSV', lineNumber);\n }\n}\n\n// Экспорт для Node.js совместимости\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n csvToJson,\n autoDetectDelimiter,\n csvToJsonIterator\n };\n}\n","import {\n ValidationError,\n ConfigurationError,\n LimitError\n} from './errors-browser.js';\nimport { csvToJsonIterator } from './csv-to-json-browser.js';\n\nconst DEFAULT_MAX_CHUNK_SIZE = 64 * 1024;\n\nfunction isReadableStream(value) {\n return value && typeof value.getReader === 'function';\n}\n\nfunction isAsyncIterable(value) {\n return value && typeof value[Symbol.asyncIterator] === 'function';\n}\n\nfunction isIterable(value) {\n return value && typeof value[Symbol.iterator] === 'function';\n}\n\nfunction createReadableStreamFromIterator(iterator) {\n return new ReadableStream({\n async pull(controller) {\n try {\n const { value, done } = await iterator.next();\n if (done) {\n controller.close();\n return;\n }\n controller.enqueue(value);\n } catch (error) {\n controller.error(error);\n }\n },\n cancel() {\n if (iterator.return) {\n iterator.return();\n }\n }\n });\n}\n\nfunction detectInputFormat(input, options) {\n if (options && options.inputFormat) {\n return options.inputFormat;\n }\n\n if (typeof input === 'string') {\n const trimmed = input.trim();\n if (trimmed.startsWith('[')) {\n return 'json-array';\n }\n if (trimmed.includes('\\n')) {\n return 'ndjson';\n }\n return 'json-array';\n }\n\n if (input instanceof Blob || isReadableStream(input)) {\n return 'ndjson';\n }\n\n return 'json-array';\n}\n\nasync function* parseNdjsonText(text) {\n const lines = text.split(/\\r?\\n/);\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed) {\n continue;\n }\n yield JSON.parse(trimmed);\n }\n}\n\nasync function* parseNdjsonStream(stream) {\n const reader = stream.getReader();\n const decoder = new TextDecoder('utf-8');\n let buffer = '';\n\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n break;\n }\n\n buffer += decoder.decode(value, { stream: true });\n const lines = buffer.split(/\\r?\\n/);\n buffer = lines.pop() || '';\n\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed) {\n continue;\n }\n yield JSON.parse(trimmed);\n }\n }\n\n if (buffer.trim()) {\n yield JSON.parse(buffer.trim());\n }\n}\n\nasync function* normalizeJsonInput(input, options = {}) {\n const format = detectInputFormat(input, options);\n\n if (Array.isArray(input)) {\n for (const item of input) {\n yield item;\n }\n return;\n }\n\n if (isAsyncIterable(input)) {\n for await (const item of input) {\n yield item;\n }\n return;\n }\n\n if (isIterable(input)) {\n for (const item of input) {\n yield item;\n }\n return;\n }\n\n if (typeof input === 'string') {\n if (format === 'ndjson') {\n yield* parseNdjsonText(input);\n return;\n }\n\n const parsed = JSON.parse(input);\n if (Array.isArray(parsed)) {\n for (const item of parsed) {\n yield item;\n }\n return;\n }\n yield parsed;\n return;\n }\n\n if (input instanceof Blob) {\n if (format === 'ndjson') {\n yield* parseNdjsonStream(input.stream());\n return;\n }\n\n const text = await input.text();\n const parsed = JSON.parse(text);\n if (Array.isArray(parsed)) {\n for (const item of parsed) {\n yield item;\n }\n return;\n }\n yield parsed;\n return;\n }\n\n if (isReadableStream(input)) {\n if (format !== 'ndjson') {\n throw new ValidationError('ReadableStream input requires inputFormat=\"ndjson\"');\n }\n yield* parseNdjsonStream(input);\n return;\n }\n\n throw new ValidationError('Input must be an array, iterable, string, Blob, or ReadableStream');\n}\n\nfunction validateStreamOptions(options) {\n if (options && typeof options !== 'object') {\n throw new ConfigurationError('Options must be an object');\n }\n\n if (options?.delimiter && typeof options.delimiter !== 'string') {\n throw new ConfigurationError('Delimiter must be a string');\n }\n\n if (options?.delimiter && options.delimiter.length !== 1) {\n throw new ConfigurationError('Delimiter must be a single character');\n }\n\n if (options?.renameMap && typeof options.renameMap !== 'object') {\n throw new ConfigurationError('renameMap must be an object');\n }\n\n if (options?.maxRecords !== undefined) {\n if (typeof options.maxRecords !== 'number' || options.maxRecords <= 0) {\n throw new ConfigurationError('maxRecords must be a positive number');\n }\n }\n}\n\nfunction escapeCsvValue(value, options) {\n const {\n delimiter,\n preventCsvInjection = true,\n rfc4180Compliant = true\n } = options;\n\n if (value === null || value === undefined || value === '') {\n return '';\n }\n\n const stringValue = String(value);\n let escapedValue = stringValue;\n if (preventCsvInjection && /^[=+\\-@]/.test(stringValue)) {\n escapedValue = \"'\" + stringValue;\n }\n\n const needsQuoting = rfc4180Compliant\n ? (escapedValue.includes(delimiter) ||\n escapedValue.includes('\"') ||\n escapedValue.includes('\\n') ||\n escapedValue.includes('\\r'))\n : (escapedValue.includes(delimiter) ||\n escapedValue.includes('\"') ||\n escapedValue.includes('\\n') ||\n escapedValue.includes('\\r'));\n\n if (needsQuoting) {\n return `\"${escapedValue.replace(/\"/g, '\"\"')}\"`;\n }\n\n return escapedValue;\n}\n\nfunction buildHeaderState(keys, options) {\n const renameMap = options.renameMap || {};\n const template = options.template || {};\n const originalKeys = Array.isArray(options.headers) ? options.headers : keys;\n const headers = originalKeys.map((key) => renameMap[key] || key);\n\n const reverseRenameMap = {};\n originalKeys.forEach((key, index) => {\n reverseRenameMap[headers[index]] = key;\n });\n\n let finalHeaders = headers;\n if (Object.keys(template).length > 0) {\n const templateHeaders = Object.keys(template).map(key => renameMap[key] || key);\n const extraHeaders = headers.filter(h => !templateHeaders.includes(h));\n finalHeaders = [...templateHeaders, ...extraHeaders];\n }\n\n return {\n headers: finalHeaders,\n reverseRenameMap\n };\n}\n\nasync function* jsonToCsvChunkIterator(input, options = {}) {\n validateStreamOptions(options);\n\n const opts = options && typeof options === 'object' ? options : {};\n const {\n delimiter = ';',\n includeHeaders = true,\n maxRecords,\n maxChunkSize = DEFAULT_MAX_CHUNK_SIZE,\n headerMode\n } = opts;\n\n let headerState = null;\n let buffer = '';\n let recordCount = 0;\n const lineEnding = opts.rfc4180Compliant === false ? '\\n' : '\\r\\n';\n\n if (Array.isArray(input) && !opts.headers && (!headerMode || headerMode === 'all')) {\n const allKeys = new Set();\n for (const item of input) {\n if (!item || typeof item !== 'object') {\n continue;\n }\n Object.keys(item).forEach((key) => allKeys.add(key));\n }\n headerState = buildHeaderState(Array.from(allKeys), opts);\n if (includeHeaders && headerState.headers.length > 0) {\n buffer += headerState.headers.join(delimiter) + lineEnding;\n }\n } else if (Array.isArray(opts.headers)) {\n headerState = buildHeaderState(opts.headers, opts);\n if (includeHeaders && headerState.headers.length > 0) {\n buffer += headerState.headers.join(delimiter) + lineEnding;\n }\n }\n\n for await (const item of normalizeJsonInput(input, opts)) {\n if (!item || typeof item !== 'object') {\n continue;\n }\n\n if (!headerState) {\n headerState = buildHeaderState(Object.keys(item), opts);\n if (includeHeaders && headerState.headers.length > 0) {\n buffer += headerState.headers.join(delimiter) + lineEnding;\n }\n }\n\n recordCount += 1;\n if (maxRecords && recordCount > maxRecords) {\n throw new LimitError(\n `Data size exceeds maximum limit of ${maxRecords} records`,\n maxRecords,\n recordCount\n );\n }\n\n const row = headerState.headers.map((header) => {\n const originalKey = headerState.reverseRenameMap[header] || header;\n return escapeCsvValue(item[originalKey], {\n delimiter,\n preventCsvInjection: opts.preventCsvInjection !== false,\n rfc4180Compliant: opts.rfc4180Compliant !== false\n });\n }).join(delimiter);\n\n buffer += row + lineEnding;\n\n if (buffer.length >= maxChunkSize) {\n yield buffer;\n buffer = '';\n }\n }\n\n if (buffer.length > 0) {\n yield buffer;\n }\n}\n\nasync function* jsonToNdjsonChunkIterator(input, options = {}) {\n validateStreamOptions(options);\n for await (const item of normalizeJsonInput(input, options)) {\n if (item === undefined) {\n continue;\n }\n yield JSON.stringify(item) + '\\n';\n }\n}\n\nasync function* csvToJsonChunkIterator(input, options = {}) {\n const outputFormat = options.outputFormat || 'ndjson';\n const asArray = outputFormat === 'json-array' || outputFormat === 'array' || outputFormat === 'json';\n let first = true;\n\n if (asArray) {\n yield '[';\n }\n\n for await (const row of csvToJsonIterator(input, options)) {\n const payload = JSON.stringify(row);\n if (asArray) {\n yield (first ? '' : ',') + payload;\n } else {\n yield payload + '\\n';\n }\n first = false;\n }\n\n if (asArray) {\n yield ']';\n }\n}\n\nexport function jsonToCsvStream(input, options = {}) {\n const iterator = jsonToCsvChunkIterator(input, options);\n return createReadableStreamFromIterator(iterator);\n}\n\nexport function jsonToNdjsonStream(input, options = {}) {\n const iterator = jsonToNdjsonChunkIterator(input, options);\n return createReadableStreamFromIterator(iterator);\n}\n\nexport function csvToJsonStream(input, options = {}) {\n const iterator = csvToJsonChunkIterator(input, options);\n return createReadableStreamFromIterator(iterator);\n}\n\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream\n };\n}\n","// Браузерные специфичные функции для jtcsv\n// Функции, которые работают только в браузере\n\nimport { jsonToCsv } from './json-to-csv-browser.js';\nimport { csvToJson, csvToJsonIterator } from './csv-to-json-browser.js';\nimport { csvToJsonStream, jsonToCsvStream, jsonToNdjsonStream } from './streams.js';\nimport { ValidationError } from './errors-browser.js';\n\n/**\n * Скачивает JSON данные как CSV файл\n * \n * @param {Array<Object>} data - Массив объектов для конвертации\n * @param {string} [filename='data.csv'] - Имя файла для скачивания\n * @param {Object} [options] - Опции для jsonToCsv\n * @returns {void}\n * \n * @example\n * const data = [\n * { id: 1, name: 'John' },\n * { id: 2, name: 'Jane' }\n * ];\n * downloadAsCsv(data, 'users.csv', { delimiter: ',' });\n */\nexport function downloadAsCsv(data, filename = 'data.csv', options = {}) {\n // Проверка что мы в браузере\n if (typeof window === 'undefined') {\n throw new ValidationError('downloadAsCsv() работает только в браузере. Используйте saveAsCsv() в Node.js');\n }\n \n // Валидация имени файла\n if (typeof filename !== 'string' || filename.trim() === '') {\n throw new ValidationError('Filename must be a non-empty string');\n }\n \n // Добавление расширения .csv если его нет\n if (!filename.toLowerCase().endsWith('.csv')) {\n filename += '.csv';\n }\n \n // Конвертация в CSV\n const csv = jsonToCsv(data, options);\n \n // Создание Blob\n const blob = new Blob([csv], { \n type: 'text/csv;charset=utf-8;' \n });\n \n // Создание ссылки для скачивания\n const link = document.createElement('a');\n \n // Создание URL для Blob\n const url = URL.createObjectURL(blob);\n \n // Настройка ссылки\n link.setAttribute('href', url);\n link.setAttribute('download', filename);\n link.style.visibility = 'hidden';\n \n // Добавление в DOM и клик\n document.body.appendChild(link);\n link.click();\n \n // Очистка\n setTimeout(() => {\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n }, 100);\n}\n\n/**\n * Парсит CSV файл из input[type=\"file\"] в JSON\n * \n * @param {File} file - File объект из input\n * @param {Object} [options] - Опции для csvToJson\n * @returns {Promise<Array<Object>>} Promise с JSON данными\n * \n * @example\n * // HTML: <input type=\"file\" id=\"csvFile\" accept=\".csv\">\n * const fileInput = document.getElementById('csvFile');\n * const json = await parseCsvFile(fileInput.files[0], { delimiter: ',' });\n */\nexport async function parseCsvFile(file, options = {}) {\n // Проверка что мы в браузере\n if (typeof window === 'undefined') {\n throw new ValidationError('parseCsvFile() работает только в браузере. Используйте readCsvAsJson() в Node.js');\n }\n \n // Валидация файла\n if (!(file instanceof File)) {\n throw new ValidationError('Input must be a File object');\n }\n \n // Проверка расширения файла\n if (!file.name.toLowerCase().endsWith('.csv')) {\n throw new ValidationError('File must have .csv extension');\n }\n \n // Проверка размера файла (предупреждение для больших файлов)\n const MAX_SIZE_WARNING = 50 * 1024 * 1024; // 50MB\n if (file.size > MAX_SIZE_WARNING && process.env.NODE_ENV !== 'production') {\n console.warn(\n `⚠️ Warning: Processing large file (${(file.size / 1024 / 1024).toFixed(2)}MB).\\n` +\n '💡 Consider using Web Workers for better performance.\\n' +\n '🔧 Tip: Use parseCSVWithWorker() for files > 10MB.'\n );\n }\n \n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n \n reader.onload = function (event) {\n try {\n const csvText = event.target.result;\n const json = csvToJson(csvText, options);\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n \n reader.onerror = function () {\n reject(new ValidationError('Ошибка чтения файла'));\n };\n \n reader.onabort = function () {\n reject(new ValidationError('Чтение файла прервано'));\n };\n \n // Чтение как текст\n reader.readAsText(file, 'UTF-8');\n });\n}\n\n/**\n * Stream CSV file as async iterator without full buffering.\n *\n * @param {File} file - File selected from input\n * @param {Object} [options] - csvToJson options\n * @returns {AsyncGenerator<Object>} Async iterator of rows\n */\nexport function parseCsvFileStream(file, options = {}) {\n if (typeof window === 'undefined') {\n throw new ValidationError('parseCsvFileStream() is browser-only. Use readCsvAsJson() in Node.js');\n }\n\n if (!(file instanceof File)) {\n throw new ValidationError('Input must be a File object');\n }\n\n if (!file.name.toLowerCase().endsWith('.csv')) {\n throw new ValidationError('File must have .csv extension');\n }\n\n return csvToJsonIterator(file, options);\n}\n\n/**\n * Создает CSV файл из JSON данных (альтернатива downloadAsCsv)\n * Возвращает Blob вместо автоматического скачивания\n * \n * @param {Array<Object>} data - Массив объектов\n * @param {Object} [options] - Опции для jsonToCsv\n * @returns {Blob} CSV Blob\n */\nexport function createCsvBlob(data, options = {}) {\n const csv = jsonToCsv(data, options);\n return new Blob([csv], { \n type: 'text/csv;charset=utf-8;' \n });\n}\n\n/**\n * Парсит CSV строку из Blob\n * \n * @param {Blob} blob - CSV Blob\n * @param {Object} [options] - Опции для csvToJson\n * @returns {Promise<Array<Object>>} Promise с JSON данными\n */\nexport async function parseCsvBlob(blob, options = {}) {\n if (!(blob instanceof Blob)) {\n throw new ValidationError('Input must be a Blob object');\n }\n \n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n \n reader.onload = function (event) {\n try {\n const csvText = event.target.result;\n const json = csvToJson(csvText, options);\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n \n reader.onerror = function () {\n reject(new ValidationError('Ошибка чтения Blob'));\n };\n \n reader.readAsText(blob, 'UTF-8');\n });\n}\n\n// Экспорт для Node.js совместимости\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = {\n downloadAsCsv,\n parseCsvFile,\n parseCsvFileStream,\n createCsvBlob,\n parseCsvBlob,\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream\n };\n}\n\nexport { jsonToCsvStream, jsonToNdjsonStream, csvToJsonStream };\n","// Worker Pool для параллельной обработки CSV\r\n// Использует Comlink для простой коммуникации с Web Workers\r\n\r\nimport { ValidationError, ConfigurationError } from '../errors-browser.js';\r\n\r\n// Проверка поддержки Web Workers\r\nconst WORKERS_SUPPORTED = typeof Worker !== 'undefined';\r\n\r\nfunction isTransferableBuffer(value) {\n if (!(value instanceof ArrayBuffer)) {\n return false;\n }\n if (typeof SharedArrayBuffer !== 'undefined' && value instanceof SharedArrayBuffer) {\n return false;\n }\n return true;\n}\n\r\nfunction collectTransferables(args) {\r\n const transferables = [];\r\n\r\n const collectFromValue = (value) => {\r\n if (!value) {\r\n return;\r\n }\r\n if (isTransferableBuffer(value)) {\r\n transferables.push(value);\r\n return;\r\n }\r\n if (ArrayBuffer.isView(value) && isTransferableBuffer(value.buffer)) {\r\n transferables.push(value.buffer);\r\n return;\r\n }\r\n if (Array.isArray(value)) {\r\n value.forEach(collectFromValue);\r\n }\r\n };\r\n\r\n args.forEach(collectFromValue);\r\n return transferables.length ? transferables : null;\r\n}\r\n\r\n/**\r\n * Опции для Worker Pool\r\n * @typedef {Object} WorkerPoolOptions\r\n * @property {number} [workerCount=4] - Количество workers в pool\r\n * @property {number} [maxQueueSize=100] - Максимальный размер очереди задач\r\n * @property {boolean} [autoScale=true] - Автоматическое масштабирование pool\r\n * @property {number} [idleTimeout=60000] - Таймаут простоя worker (мс)\r\n */\r\n\r\n/**\r\n * Статистика Worker Pool\r\n * @typedef {Object} WorkerPoolStats\r\n * @property {number} totalWorkers - Всего workers\r\n * @property {number} activeWorkers - Активные workers\r\n * @property {number} idleWorkers - Простаивающие workers\r\n * @property {number} queueSize - Размер очереди\r\n * @property {number} tasksCompleted - Завершенные задачи\r\n * @property {number} tasksFailed - Неудачные задачи\r\n */\r\n\r\n/**\r\n * Прогресс обработки задачи\r\n * @typedef {Object} TaskProgress\r\n * @property {number} processed - Обработано элементов\r\n * @property {number} total - Всего элементов\r\n * @property {number} percentage - Процент выполнения\r\n * @property {number} speed - Скорость обработки (элементов/сек)\r\n */\r\n\r\n/**\r\n * Worker Pool для параллельной обработки CSV\r\n */\r\nexport class WorkerPool {\r\n /**\r\n * Создает новый Worker Pool\r\n * @param {string} workerScript - URL скрипта worker\r\n * @param {WorkerPoolOptions} [options] - Опции pool\r\n */\r\n constructor(workerScript, options = {}) {\r\n if (!WORKERS_SUPPORTED) {\r\n throw new ValidationError('Web Workers не поддерживаются в этом браузере');\r\n }\r\n \r\n this.workerScript = workerScript;\r\n this.options = {\r\n workerCount: 4,\r\n maxQueueSize: 100,\r\n autoScale: true,\r\n idleTimeout: 60000,\r\n ...options\r\n };\r\n \r\n this.workers = [];\r\n this.taskQueue = [];\r\n this.activeTasks = new Map();\r\n this.stats = {\r\n totalWorkers: 0,\r\n activeWorkers: 0,\r\n idleWorkers: 0,\r\n queueSize: 0,\r\n tasksCompleted: 0,\r\n tasksFailed: 0\r\n };\r\n \r\n this.initializeWorkers();\r\n }\r\n \r\n /**\r\n * Инициализация workers\r\n * @private\r\n */\r\n initializeWorkers() {\r\n const { workerCount } = this.options;\r\n \r\n for (let i = 0; i < workerCount; i++) {\r\n this.createWorker();\r\n }\r\n \r\n this.updateStats();\r\n }\r\n \r\n /**\r\n * Создает нового worker\r\n * @private\r\n */\r\n createWorker() {\r\n try {\r\n const worker = new Worker(this.workerScript, { type: 'module' });\r\n \r\n worker.id = `worker-${this.workers.length}`;\r\n worker.status = 'idle';\r\n worker.lastUsed = Date.now();\r\n worker.taskId = null;\r\n \r\n // Обработчики событий\r\n worker.onmessage = (event) => this.handleWorkerMessage(worker, event);\r\n worker.onerror = (error) => this.handleWorkerError(worker, error);\r\n worker.onmessageerror = (error) => this.handleWorkerMessageError(worker, error);\r\n \r\n this.workers.push(worker);\r\n this.stats.totalWorkers++;\r\n this.stats.idleWorkers++;\r\n \r\n return worker;\r\n } catch (error) {\r\n throw new ConfigurationError(`Не удалось создать worker: ${error.message}`);\r\n }\r\n }\r\n \r\n /**\r\n * Обработка сообщений от worker\r\n * @private\r\n */\r\n handleWorkerMessage(worker, event) {\r\n const { data } = event;\r\n \r\n if (data.type === 'PROGRESS') {\r\n this.handleProgress(worker, data);\r\n } else if (data.type === 'RESULT') {\r\n this.handleResult(worker, data);\r\n } else if (data.type === 'ERROR') {\r\n this.handleWorkerTaskError(worker, data);\r\n }\r\n }\r\n \r\n /**\r\n * Обработка прогресса задачи\r\n * @private\r\n */\r\n handleProgress(worker, progressData) {\r\n const taskId = worker.taskId;\r\n if (taskId && this.activeTasks.has(taskId)) {\r\n const task = this.activeTasks.get(taskId);\r\n if (task.onProgress) {\r\n task.onProgress({\r\n processed: progressData.processed,\r\n total: progressData.total,\r\n percentage: (progressData.processed / progressData.total) * 100,\r\n speed: progressData.speed || 0\r\n });\r\n }\r\n }\r\n }\r\n \r\n /**\r\n * Обработка результата задачи\r\n * @private\r\n */\r\n handleResult(worker, resultData) {\r\n const taskId = worker.taskId;\r\n if (taskId && this.activeTasks.has(taskId)) {\r\n const task = this.activeTasks.get(taskId);\r\n \r\n // Освобождение worker\r\n worker.status = 'idle';\r\n worker.lastUsed = Date.now();\r\n worker.taskId = null;\r\n this.stats.activeWorkers--;\r\n this.stats.idleWorkers++;\r\n \r\n // Завершение задачи\r\n task.resolve(resultData.data);\r\n this.activeTasks.delete(taskId);\r\n this.stats.tasksCompleted++;\r\n \r\n // Обработка следующей задачи в очереди\r\n this.processQueue();\r\n this.updateStats();\r\n }\r\n }\r\n \r\n /**\r\n * Обработка ошибки задачи\r\n * @private\r\n */\r\n handleWorkerTaskError(worker, errorData) {\r\n const taskId = worker.taskId;\r\n if (taskId && this.activeTasks.has(taskId)) {\r\n const task = this.activeTasks.get(taskId);\r\n \r\n // Освобождение worker\r\n worker.status = 'idle';\r\n worker.lastUsed = Date.now();\r\n worker.taskId = null;\r\n this.stats.activeWorkers--;\r\n this.stats.idleWorkers++;\r\n \r\n // Завершение с ошибкой\r\n const workerError = new Error(errorData.message || 'Ошибка в worker');\r\n if (errorData.code) {\r\n workerError.code = errorData.code;\r\n }\r\n if (errorData.details) {\r\n workerError.details = errorData.details;\r\n }\r\n task.reject(workerError);\r\n this.activeTasks.delete(taskId);\r\n this.stats.tasksFailed++;\r\n \r\n // Обработка следующей задачи\r\n this.processQueue();\r\n this.updateStats();\r\n }\r\n }\r\n \r\n /**\r\n * Обработка ошибок worker\r\n * @private\r\n */\r\n handleWorkerError(worker, error) {\r\n console.error(`Worker ${worker.id} error:`, error);\r\n \r\n // Перезапуск worker\r\n this.restartWorker(worker);\r\n }\r\n \r\n /**\r\n * Обработка ошибок сообщений\r\n * @private\r\n */\r\n handleWorkerMessageError(worker, error) {\r\n console.error(`Worker ${worker.id} message error:`, error);\r\n }\r\n \r\n /**\r\n * Перезапуск worker\r\n * @private\r\n */\r\n restartWorker(worker) {\r\n const index = this.workers.indexOf(worker);\r\n if (index !== -1) {\r\n // Завершение старого worker\r\n worker.terminate();\r\n \r\n // Удаление из статистики\r\n if (worker.status === 'active') {\r\n this.stats.activeWorkers--;\r\n } else {\r\n this.stats.idleWorkers--;\r\n }\r\n this.stats.totalWorkers--;\r\n \r\n // Создание нового worker\r\n const newWorker = this.createWorker();\r\n this.workers[index] = newWorker;\r\n \r\n // Перезапуск задачи если была активна\r\n if (worker.taskId && this.activeTasks.has(worker.taskId)) {\r\n const task = this.activeTasks.get(worker.taskId);\r\n this.executeTask(newWorker, task);\r\n }\r\n }\r\n }\r\n \r\n /**\r\n * Выполнение задачи на worker\r\n * @private\r\n */\r\n executeTask(worker, task) {\r\n worker.status = 'active';\r\n worker.lastUsed = Date.now();\r\n worker.taskId = task.id;\r\n \r\n this.stats.idleWorkers--;\r\n this.stats.activeWorkers++;\r\n \r\n // Отправка задачи в worker\r\n const payload = {\r\n type: 'EXECUTE',\r\n taskId: task.id,\r\n method: task.method,\r\n args: task.args,\r\n options: task.options\r\n };\r\n\r\n if (task.transferList && task.transferList.length) {\r\n worker.postMessage(payload, task.transferList);\r\n } else {\r\n worker.postMessage(payload);\r\n }\r\n }\r\n \r\n /**\r\n * Обработка очереди задач\r\n * @private\r\n */\r\n processQueue() {\n if (this.taskQueue.length === 0) {\n return;\n }\n \n while (this.taskQueue.length > 0) {\n const idleWorker = this.workers.find(w => w.status === 'idle');\n if (!idleWorker) {\n if (this.options.autoScale && this.workers.length < this.options.maxQueueSize) {\n this.createWorker();\n continue;\n }\n break;\n }\n \n const task = this.taskQueue.shift();\n this.stats.queueSize--;\n this.executeTask(idleWorker, task);\n }\n \n this.updateStats();\n }\n \r\n /**\r\n * Обновление статистики\r\n * @private\r\n */\r\n updateStats() {\r\n this.stats.queueSize = this.taskQueue.length;\r\n }\r\n \r\n /**\r\n * Выполнение задачи через pool\r\n * @param {string} method - Метод для вызова в worker\r\n * @param {Array} args - Аргументы метода\r\n * @param {Object} [options] - Опции задачи\r\n * @param {Function} [onProgress] - Callback прогресса\r\n * @returns {Promise<any>} Результат выполнения\r\n */\r\n async exec(method, args = [], options = {}, onProgress = null) {\r\n return new Promise((resolve, reject) => {\r\n // Проверка размера очереди\r\n if (this.taskQueue.length >= this.options.maxQueueSize) {\r\n reject(new Error('Очередь задач переполнена'));\r\n return;\r\n }\r\n \r\n // Создание задачи\r\n const taskId = `task-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\r\n const { transfer, ...taskOptions } = options || {};\r\n const transferList = transfer || collectTransferables(args);\r\n const task = {\r\n id: taskId,\r\n method,\r\n args,\r\n options: taskOptions,\r\n transferList,\r\n onProgress,\r\n resolve,\r\n reject,\r\n createdAt: Date.now()\r\n };\r\n \r\n // Добавление в очередь\r\n this.taskQueue.push(task);\r\n this.stats.queueSize++;\r\n \r\n // Запуск обработки очереди\r\n this.processQueue();\r\n this.updateStats();\r\n });\r\n }\r\n \r\n /**\r\n * Получение статистики pool\r\n * @returns {WorkerPoolStats} Статистика\r\n */\r\n getStats() {\r\n return { ...this.stats };\r\n }\r\n \r\n /**\r\n * Очистка простаивающих workers\r\n */\r\n cleanupIdleWorkers() {\r\n const now = Date.now();\r\n const { idleTimeout } = this.options;\r\n \r\n for (let i = this.workers.length - 1; i >= 0; i--) {\r\n const worker = this.workers[i];\r\n if (worker.status === 'idle' && (now - worker.lastUsed) > idleTimeout) {\r\n // Сохранение минимального количества workers\r\n if (this.workers.length > 1) {\r\n worker.terminate();\r\n this.workers.splice(i, 1);\r\n this.stats.totalWorkers--;\r\n this.stats.idleWorkers--;\r\n }\r\n }\r\n }\r\n }\r\n \r\n /**\r\n * Завершение всех workers\r\n */\r\n terminate() {\r\n this.workers.forEach(worker => {\r\n worker.terminate();\r\n });\r\n \r\n this.workers = [];\r\n this.taskQueue = [];\r\n this.activeTasks.clear();\r\n \r\n // Сброс статистики\r\n this.stats = {\r\n totalWorkers: 0,\r\n activeWorkers: 0,\r\n idleWorkers: 0,\r\n queueSize: 0,\r\n tasksCompleted: 0,\r\n tasksFailed: 0\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * Создает Worker Pool для обработки CSV\r\n * @param {WorkerPoolOptions} [options] - Опции pool\r\n * @returns {WorkerPool} Worker Pool\r\n */\r\nexport function createWorkerPool(options = {}) {\r\n // Используем встроенный worker скрипт\r\n const workerScript = new URL('./csv-parser.worker.js', import.meta.url).href;\r\n return new WorkerPool(workerScript, options);\r\n}\r\n\r\n/**\r\n * Парсит CSV с использованием Web Workers\r\n * @param {string|File} csvInput - CSV строка или File объект\r\n * @param {Object} [options] - Опции парсинга\r\n * @param {Function} [onProgress] - Callback прогресса\r\n * @returns {Promise<Array<Object>>} JSON данные\r\n */\r\nexport async function parseCSVWithWorker(csvInput, options = {}, onProgress = null) {\r\n // Создание pool если нужно\r\n if (!parseCSVWithWorker.pool) {\r\n parseCSVWithWorker.pool = createWorkerPool();\r\n }\r\n \r\n const pool = parseCSVWithWorker.pool;\r\n \r\n // Подготовка CSV строки\r\n // ?????????? CSV ??????\r\n let csvPayload = csvInput;\r\n let transfer = null;\r\n\r\n if (csvInput instanceof File) {\r\n const buffer = await readFileAsArrayBuffer(csvInput);\r\n csvPayload = new Uint8Array(buffer);\r\n transfer = [buffer];\r\n } else if (csvInput instanceof ArrayBuffer) {\r\n csvPayload = csvInput;\r\n transfer = [csvInput];\r\n } else if (ArrayBuffer.isView(csvInput)) {\r\n csvPayload = csvInput;\r\n if (csvInput.buffer instanceof ArrayBuffer) {\r\n transfer = [csvInput.buffer];\r\n }\r\n } else if (typeof csvInput !== 'string') {\r\n throw new ValidationError('Input must be a CSV string, File, or ArrayBuffer');\r\n }\r\n\r\n // ????????? ?????? ????? pool\r\n const execOptions = transfer ? { transfer } : {};\r\n return pool.exec('parseCSV', [csvPayload, options], execOptions, onProgress);\r\n}\r\n\r\n/**\r\n * Чтение файла как текст\r\n * @private\r\n */\r\nasync function readFileAsArrayBuffer(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event) => resolve(event.target.result);\n reader.onerror = (error) => reject(error);\n reader.readAsArrayBuffer(file);\n });\n}\n\n// Экспорт для Node.js совместимости\r\nif (typeof module !== 'undefined' && module.exports) {\r\n module.exports = {\r\n WorkerPool,\r\n createWorkerPool,\r\n parseCSVWithWorker\r\n };\r\n}\r\n","// Браузерный entry point для jtcsv\n// Экспортирует все функции с поддержкой браузера\n\nimport { jsonToCsv, preprocessData, deepUnwrap } from './json-to-csv-browser.js';\nimport { csvToJson, csvToJsonIterator, autoDetectDelimiter } from './csv-to-json-browser.js';\nimport {\n downloadAsCsv,\n parseCsvFile,\n parseCsvFileStream,\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream\n} from './browser-functions.js';\nimport { createWorkerPool, parseCSVWithWorker } from './workers/worker-pool.js';\nimport {\n ValidationError,\n SecurityError,\n FileSystemError,\n ParsingError,\n LimitError,\n ConfigurationError,\n ERROR_CODES\n} from './errors-browser.js';\n\nasync function createWorkerPoolLazy(options = {}) {\n const mod = await import('./workers/worker-pool.js');\n return mod.createWorkerPool(options);\n}\n\nasync function parseCSVWithWorkerLazy(csvInput, options = {}, onProgress = null) {\n const mod = await import('./workers/worker-pool.js');\n return mod.parseCSVWithWorker(csvInput, options, onProgress);\n}\n\n// Основной экспорт\nconst jtcsv = {\n // JSON to CSV функции\n jsonToCsv,\n preprocessData,\n downloadAsCsv,\n deepUnwrap,\n \n // CSV to JSON функции\n csvToJson,\n csvToJsonIterator,\n parseCsvFile,\n parseCsvFileStream,\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream,\n autoDetectDelimiter,\n \n // Web Workers функции\n createWorkerPool,\n parseCSVWithWorker,\n createWorkerPoolLazy,\n parseCSVWithWorkerLazy,\n \n // Error classes\n ValidationError,\n SecurityError,\n FileSystemError,\n ParsingError,\n LimitError,\n ConfigurationError,\n ERROR_CODES,\n \n // Удобные алиасы\n parse: csvToJson,\n unparse: jsonToCsv,\n \n // Версия\n version: '2.0.0-browser'\n};\n\n// Экспорт для разных сред\nif (typeof module !== 'undefined' && module.exports) {\n // Node.js CommonJS\n module.exports = jtcsv;\n} else if (typeof define === 'function' && define.amd) {\n // AMD\n define([], () => jtcsv);\n} else if (typeof window !== 'undefined') {\n // Браузер (глобальная переменная)\n window.jtcsv = jtcsv;\n}\n\nexport default jtcsv;\nexport {\n jsonToCsv,\n preprocessData,\n downloadAsCsv,\n deepUnwrap,\n csvToJson,\n csvToJsonIterator,\n parseCsvFile,\n parseCsvFileStream,\n jsonToCsvStream,\n jsonToNdjsonStream,\n csvToJsonStream,\n autoDetectDelimiter,\n createWorkerPool,\n parseCSVWithWorker,\n createWorkerPoolLazy,\n parseCSVWithWorkerLazy,\n ValidationError,\n SecurityError,\n FileSystemError,\n ParsingError,\n LimitError,\n ConfigurationError,\n ERROR_CODES\n};\n"],"names":["JTCSVError","Error","constructor","message","code","details","name","captureStackTrace","ValidationError","SecurityError","FileSystemError","originalError","ParsingError","lineNumber","LimitError","limit","actual","ConfigurationError","ERROR_CODES","JTCSV_ERROR","VALIDATION_ERROR","SECURITY_ERROR","FILE_SYSTEM_ERROR","PARSING_ERROR","LIMIT_ERROR","CONFIGURATION_ERROR","INVALID_INPUT","SECURITY_VIOLATION","FILE_NOT_FOUND","PARSE_FAILED","SIZE_LIMIT","INVALID_CONFIG","UNKNOWN_ERROR","safeExecute","fn","errorCode","errorDetails","error","enhancedError","errorMessage","String","includes","stack","safeExecuteAsync","module","exports","validateInput","data","options","Array","isArray","delimiter","length","renameMap","maxRecords","undefined","preventCsvInjection","rfc4180Compliant","jsonToCsv","opts","includeHeaders","template","process","env","NODE_ENV","console","warn","toLocaleString","allKeys","Set","forEach","item","Object","keys","key","add","originalKeys","from","headers","map","reverseRenameMap","index","finalHeaders","templateHeaders","extraHeaders","filter","h","escapeValue","value","stringValue","escapedValue","test","needsQuoting","replace","rows","push","join","row","header","originalKey","lineEnding","function","deepUnwrap","depth","maxDepth","visited","has","unwrappedItems","JSON","stringify","preprocessData","processed","prototype","hasOwnProperty","call","validateCsvOptions","autoDetect","candidates","maxRows","warnExtraFields","validateCsvInput","csv","parseCsvLine","line","fields","currentField","insideQuotes","escapeNext","i","char","isEndOfField","j","parseCsvValue","trim","parseNumbers","parseBooleans","result","startsWith","substring","num","parseFloat","isNaN","lowerValue","toLowerCase","isSimpleCsv","indexOf","parseSimpleCsv","hasHeaders","fieldStart","currentRow","rowHasData","rowCount","finalizeRow","trimmed","_","fieldCount","Math","min","field","slice","autoDetectDelimiter","lines","split","firstLine","counts","delim","escapedDelim","regex","RegExp","matches","match","maxCount","detectedDelimiter","count","entries","csvToJson","finalDelimiter","currentLine","startIndex","firstLineFields","isDev","csvToJsonIterator","input","stream","Blob","getReader","reader","decoder","TextDecoder","buffer","delimiterResolved","Boolean","processFields","processLine","cleanLine","endsWith","done","read","decode","start","DEFAULT_MAX_CHUNK_SIZE","isReadableStream","isAsyncIterable","Symbol","asyncIterator","isIterable","iterator","createReadableStreamFromIterator","ReadableStream","pull","controller","next","close","enqueue","cancel","return","detectInputFormat","inputFormat","parseNdjsonText","text","parse","parseNdjsonStream","pop","normalizeJsonInput","format","parsed","validateStreamOptions","escapeCsvValue","buildHeaderState","jsonToCsvChunkIterator","maxChunkSize","headerMode","headerState","recordCount","jsonToNdjsonChunkIterator","csvToJsonChunkIterator","outputFormat","asArray","first","payload","jsonToCsvStream","jsonToNdjsonStream","csvToJsonStream","downloadAsCsv","filename","window","blob","type","link","document","createElement","url","URL","createObjectURL","setAttribute","style","visibility","body","appendChild","click","setTimeout","removeChild","revokeObjectURL","parseCsvFile","file","File","MAX_SIZE_WARNING","size","toFixed","Promise","resolve","reject","FileReader","onload","event","csvText","target","json","onerror","onabort","readAsText","parseCsvFileStream","createCsvBlob","parseCsvBlob","WORKERS_SUPPORTED","Worker","isTransferableBuffer","ArrayBuffer","SharedArrayBuffer","collectTransferables","args","transferables","collectFromValue","isView","WorkerPool","workerScript","workerCount","maxQueueSize","autoScale","idleTimeout","workers","taskQueue","activeTasks","Map","stats","totalWorkers","activeWorkers","idleWorkers","queueSize","tasksCompleted","tasksFailed","initializeWorkers","createWorker","updateStats","worker","id","status","lastUsed","Date","now","taskId","onmessage","handleWorkerMessage","handleWorkerError","onmessageerror","handleWorkerMessageError","handleProgress","handleResult","handleWorkerTaskError","progressData","task","get","onProgress","total","percentage","speed","resultData","delete","processQueue","errorData","workerError","restartWorker","terminate","newWorker","executeTask","method","transferList","postMessage","idleWorker","find","w","shift","exec","random","toString","substr","transfer","taskOptions","createdAt","getStats","cleanupIdleWorkers","splice","clear","createWorkerPool","import","meta","href","parseCSVWithWorker","csvInput","pool","csvPayload","readFileAsArrayBuffer","Uint8Array","execOptions","readAsArrayBuffer","createWorkerPoolLazy","mod","parseCSVWithWorkerLazy","jtcsv","unparse","version","define","amd"],"mappings":"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"}
1
+ {"version":3,"file":"jtcsv.esm.js","sources":["../src/browser/errors-browser.ts","../src/browser/json-to-csv-browser.ts","../src/browser/csv-to-json-browser.ts","../src/browser/streams.ts","../src/browser/browser-functions.ts","../src/browser/workers/worker-pool.ts","../src/browser/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["normalizeQuotesInField","normalizePhoneValue","normalizeValueForCsv","jsonToCsv","jsonToCsvAsync","autoDetectDelimiter","csvToJson","csvToJsonAsync","csvToJsonIterator","jsonToCsvStream","jsonToNdjsonStream","csvToJsonStream","downloadAsCsvAsync","createJsonToCsvStream","createJsonToNdjsonStream","createCsvToJsonStream"],"mappings":"AAAA;AACA;AAgBA;;AAEG;AACG,MAAO,UAAW,SAAQ,KAAK,CAAA;AAOnC,IAAA,WAAA,CAAY,OAAe,EAAE,IAAA,GAAe,aAAa,EAAE,UAAwB,EAAE,EAAA;QACnF,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;;AAG9B,QAAA,IAAI,KAAK,CAAC,iBAAiB,EAAE;AAC3B,YAAA,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC;QAC3C;IACF;AACD;AAED;;AAEG;AACG,MAAO,eAAgB,SAAQ,UAAU,CAAA;IAC7C,WAAA,CAAY,OAAe,EAAE,OAAA,GAAwB,EAAE,EAAA;AACrD,QAAA,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;IAC/B;AACD;AAED;;AAEG;AACG,MAAO,aAAc,SAAQ,UAAU,CAAA;IAC3C,WAAA,CAAY,OAAe,EAAE,OAAA,GAAwB,EAAE,EAAA;AACrD,QAAA,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC;AACzC,QAAA,IAAI,CAAC,IAAI,GAAG,eAAe;IAC7B;AACD;AAED;;AAEG;AACG,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,OAAe,EAAE,aAAqB,EAAE,UAAwB,EAAE,EAAA;AAC5E,QAAA,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,CAAC;AAClE,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;AAE7B,QAAA,IAAI,aAAa,IAAK,aAAqB,CAAC,IAAI,EAAE;AAChD,YAAA,IAAI,CAAC,IAAI,GAAI,aAAqB,CAAC,IAAI;QACzC;IACF;AACD;AAED;;AAEG;AACG,MAAO,YAAa,SAAQ,UAAU,CAAA;AAG1C,IAAA,WAAA,CAAY,OAAe,EAAE,UAAmB,EAAE,UAAwB,EAAE,EAAA;AAC1E,QAAA,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC;AAC3D,QAAA,IAAI,CAAC,IAAI,GAAG,cAAc;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;IAC9B;AACD;AAED;;AAEG;AACG,MAAO,UAAW,SAAQ,UAAU,CAAA;AAIxC,IAAA,WAAA,CAAY,OAAe,EAAE,KAAU,EAAE,MAAW,EAAE,UAAwB,EAAE,EAAA;AAC9E,QAAA,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC5D,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AACD;AAED;;AAEG;AACG,MAAO,kBAAmB,SAAQ,UAAU,CAAA;IAChD,WAAA,CAAY,OAAe,EAAE,OAAA,GAAwB,EAAE,EAAA;AACrD,QAAA,KAAK,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,CAAC;AAC9C,QAAA,IAAI,CAAC,IAAI,GAAG,oBAAoB;IAClC;AACD;AAED;;AAEG;AACI,MAAM,WAAW,GAAG;AACzB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,gBAAgB,EAAE,kBAAkB;AACpC,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,mBAAmB,EAAE,qBAAqB;AAC1C,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,kBAAkB,EAAE,oBAAoB;AACxC,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,aAAa,EAAE;;AAKjB;;;;;;;AAOG;AACG,SAAU,WAAW,CACzB,EAAW,EACX,SAAA,GAAuB,eAAe,EACtC,YAAA,GAA6B,EAAE,EAAA;AAE/B,IAAA,IAAI;AACF,QAAA,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YAC5B,OAAO,EAAE,EAAE;QACb;AACA,QAAA,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC;IAChD;IAAE,OAAO,KAAK,EAAE;;AAEd,QAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AAC/B,YAAA,MAAM,KAAK;QACb;;AAGA,QAAA,IAAI,aAAyB;QAC7B,MAAM,YAAY,GAAI,KAAe,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;AAE9D,QAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AAC9E,YAAA,aAAa,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QACvG;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACjF,YAAA,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QACrG;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC/E,YAAA,aAAa,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QAC/G;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC3E,YAAA,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QAC9G;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AAC3F,YAAA,aAAa,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QAC1G;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACzE,aAAa,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,KAAc,EAAE,YAAY,CAAC;QACjF;aAAO;;AAEL,YAAA,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QAC7G;;AAGA,QAAA,IAAK,KAAe,CAAC,KAAK,EAAE;AAC1B,YAAA,aAAa,CAAC,KAAK,GAAI,KAAe,CAAC,KAAK;QAC9C;AAEA,QAAA,MAAM,aAAa;IACrB;AACF;AAEA;;AAEG;AACI,eAAe,gBAAgB,CACpC,EAAwB,EACxB,SAAA,GAAuB,eAAe,EACtC,YAAA,GAA6B,EAAE,EAAA;AAE/B,IAAA,IAAI;AACF,QAAA,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YAC5B,OAAO,MAAM,EAAE,EAAE;QACnB;AACA,QAAA,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC;IAChD;IAAE,OAAO,KAAK,EAAE;;AAEd,QAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AAC/B,YAAA,MAAM,KAAK;QACb;;AAGA,QAAA,IAAI,aAAyB;QAC7B,MAAM,YAAY,GAAI,KAAe,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;AAE9D,QAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AAC9E,YAAA,aAAa,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QACvG;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACjF,YAAA,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QACrG;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC/E,YAAA,aAAa,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QAC/G;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC3E,YAAA,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QAC9G;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AAC3F,YAAA,aAAa,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QAC1G;AAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACzE,aAAa,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,KAAc,EAAE,YAAY,CAAC;QACjF;aAAO;AACL,YAAA,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;QAC7G;AAEA,QAAA,IAAK,KAAe,CAAC,KAAK,EAAE;AAC1B,YAAA,aAAa,CAAC,KAAK,GAAI,KAAe,CAAC,KAAK;QAC9C;AAEA,QAAA,MAAM,aAAa;IACrB;AACF;AAEA;;AAEG;SACa,kBAAkB,CAChC,KAAyB,EACzB,eAAwB,KAAK,EAAA;AAE7B,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,eAAe;AAE9C,IAAA,IAAI,KAAK,YAAY,UAAU,EAAE;QAC/B,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAA,EAAA,EAAK,OAAO,EAAE;QAEtC,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,UAAU,EAAE;AACrD,YAAA,OAAO,IAAI,CAAA,OAAA,EAAU,KAAK,CAAC,UAAU,GAAG;QAC1C;AAEA,QAAA,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;YAC9D,OAAO,IAAI,CAAA,SAAA,EAAY,KAAK,CAAC,KAAK,aAAa,KAAK,CAAC,MAAM,CAAA,CAAA,CAAG;QAChE;AAEA,QAAA,IAAI,KAAK,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,IAAI,EAAE;QACpC;AAEA,QAAA,IAAI,KAAK,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,IAAI,EAAE;QACpC;IACF;AAEA,IAAA,IAAI,YAAY,IAAI,KAAK,CAAC,KAAK,EAAE;AAC/B,QAAA,OAAO,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,KAAK,EAAE;IAC/B;AAEA,IAAA,OAAO,OAAO;AAChB;AAEA;;AAEG;SACa,WAAW,CACzB,KAAyB,EACzB,UAII,EAAE,EAAA;AAEN,IAAA,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO;AACzE,IAAA,MAAM,OAAO,GAAG,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO;IAElE,IAAI,GAAG,EAAE;AACP,QAAA,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;QAEnC,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE;YAChD,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC;QAChD;IACF;IAEA,IAAI,WAAW,EAAE;AACf,QAAA,MAAM,KAAK;IACb;AAEA,IAAA,OAAO,OAAO;AAChB;AAEA;AACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;IACnD,MAAM,CAAC,OAAO,GAAG;QACf,UAAU;QACV,eAAe;QACf,aAAa;QACb,eAAe;QACf,YAAY;QACZ,UAAU;QACV,kBAAkB;QAClB,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,kBAAkB;QAClB;KACD;AACH;;AC/TA;AACA;AAWA;;;AAGG;AACH,SAAS,aAAa,CAAC,IAAW,EAAE,OAAyB,EAAA;;IAE3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxB,QAAA,MAAM,IAAI,eAAe,CAAC,6BAA6B,CAAC;IAC1D;;AAGA,IAAA,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC1C,QAAA,MAAM,IAAI,kBAAkB,CAAC,2BAA2B,CAAC;IAC3D;;IAGA,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC/D,QAAA,MAAM,IAAI,kBAAkB,CAAC,4BAA4B,CAAC;IAC5D;AAEA,IAAA,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACxD,QAAA,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,CAAC;IACtE;;IAGA,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC/D,QAAA,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,CAAC;IAC7D;;IAGA,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/C,QAAA,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,EAAE;AACrE,YAAA,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,CAAC;QACtE;IACF;;AAGA,IAAA,IAAI,OAAO,EAAE,mBAAmB,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,mBAAmB,KAAK,SAAS,EAAE;AAClG,QAAA,MAAM,IAAI,kBAAkB,CAAC,uCAAuC,CAAC;IACvE;;AAGA,IAAA,IAAI,OAAO,EAAE,gBAAgB,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE;AAC5F,QAAA,MAAM,IAAI,kBAAkB,CAAC,oCAAoC,CAAC;IACpE;AAEA,IAAA,IAAI,OAAO,EAAE,eAAe,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE;AAC1F,QAAA,MAAM,IAAI,kBAAkB,CAAC,mCAAmC,CAAC;IACnE;AAEA,IAAA,OAAO,IAAI;AACb;AAEA;;;AAGG;AACH,SAAS,cAAc,CAAC,KAAa,EAAE,mBAA4B,IAAI,EAAA;IACrE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;AACzB,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAa,KAAa;QACpD,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE;YACzB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAClC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE;AAC9E,gBAAA,GAAG,EAAE;gBACL;YACF;YACA;QACF;QACA,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE;AACpE,YAAA,GAAG,EAAE;AACL,YAAA,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE;gBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAClC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;AAC7B,oBAAA,GAAG,EAAE;oBACL;gBACF;gBACA;YACF;QACF;AACA,QAAA,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;AACvB,YAAA,OAAO,KAAK;QACd;AACA,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;AACrE,IAAA,CAAC;;AAGD,IAAA,IAAI,gBAAgB,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE;QAC/C,OAAO,GAAG,GAAG,GAAG;IAClB;;AAGA,IAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACtF,QAAA,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG;IAC5C;AAEA,IAAA,OAAO,GAAG;AACZ;AAEA,SAASA,wBAAsB,CAAC,KAAa,EAAA;;;AAG3C,IAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC7C,SAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;QAClD,OAAO,KAAK,CAAC;IACf;IAEA,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;;;AAG7C,IAAA,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;IACnE,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpF,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IACtC;AACA,IAAA,OAAO,UAAU;AACnB;AAEA,SAASC,qBAAmB,CAAC,KAAa,EAAA;AACxC,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;AAC5B,IAAA,IAAI,OAAO,KAAK,EAAE,EAAE;AAClB,QAAA,OAAO,OAAO;IAChB;IACA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;AACvC;AAEA,SAASC,sBAAoB,CAAC,KAAU,EAAE,GAAuB,EAAE,eAAwB,EAAA;IACzF,IAAI,CAAC,eAAe,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjD,QAAA,OAAO,KAAK;IACd;AACA,IAAA,MAAM,IAAI,GAAGF,wBAAsB,CAAC,KAAK,CAAC;IAC1C,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,IAAI;IACb;AACA,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACvF,IAAA,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE;AAC5C,QAAA,OAAOC,qBAAmB,CAAC,IAAI,CAAC;IAClC;AACA,IAAA,OAAO,IAAI;AACb;AAEA;;;AAGG;AACH,SAAS,cAAc,CAAC,IAAW,EAAA;AACjC,IAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU;AAE9B,IAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,QAAA,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACpC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD;IACF;AAEA,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB;AAEA;;;;;;AAMG;SACaE,WAAS,CAAC,IAAW,EAAE,UAA4B,EAAE,EAAA;IACnE,OAAO,WAAW,CAAC,MAAK;AACtB,QAAA,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;AAE5B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,OAAO,EAAE;QACX;;AAGA,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG;AAC1C,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,KAAK,KAAK;QACvD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM;AACpD,QAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,KAAK,KAAK;AAC9D,QAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,KAAK,KAAK;AAC3D,QAAA,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,KAAK,KAAK;;QAGzD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;;AAG7C,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC;;AAG3C,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE;AACzC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;;QAG3D,MAAM,KAAK,GAAa,EAAE;;QAG1B,IAAI,cAAc,EAAE;YAClB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9F,YAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QACxB;;AAGA,QAAA,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;YAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAG;AAClC,gBAAA,MAAM,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;gBACzB,MAAM,UAAU,GAAGD,sBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,eAAe,CAAC;AACpE,gBAAA,OAAO,cAAc,CAAC,UAAU,EAAE,gBAAgB,CAAC;AACrD,YAAA,CAAC,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC;;QAGA,IAAI,gBAAgB,EAAE;AACpB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B;AAEA,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB,IAAA,CAAC,CAAC;AACJ;AAEA;;AAEG;AACI,eAAeE,gBAAc,CAAC,IAAW,EAAE,UAA4B,EAAE,EAAA;AAC9E,IAAA,OAAOD,WAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACjC;AAEA;;;;;;AAMG;AACI,gBAAgB,iBAAiB,CAAC,IAAgC,EAAE,OAAA,GAA4B,EAAE,EAAA;AACvG,IAAA,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC;AAEvD,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG;AAC1C,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,KAAK,KAAK;AACvD,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,KAAK,KAAK;AAC9D,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,KAAK,KAAK;AAC3D,IAAA,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,KAAK,KAAK;IAGzD,IAAI,OAAO,GAAa,EAAE;IAC1B,IAAI,SAAS,GAA2B,EAAE;;AAG1C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB;QACF;AAEA,QAAA,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC;AAC9B,QAAA,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE;AACnC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;;QAG3D,IAAI,cAAc,EAAE;YAClB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9F,YAAA,MAAM,UAAU,IAAI,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC;QACvD;;AAGA,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAG;AAClC,gBAAA,MAAM,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;gBACzB,MAAM,UAAU,GAAGD,sBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,eAAe,CAAC;AACpE,gBAAA,OAAO,cAAc,CAAC,UAAU,EAAE,gBAAgB,CAAC;AACrD,YAAA,CAAC,CAAC;AAEF,YAAA,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC;QACtE;IACF;SAAO;;AAEL,QAAA,MAAM,IAAI,eAAe,CAAC,wDAAwD,CAAC;IACrF;AACF;AAEA;;AAEG;AACI,MAAM,sBAAsB,GAAG,iBAAiB;AAEvD;;;;;;AAMG;SACa,aAAa,CAAC,IAAW,EAAE,UAA4B,EAAE,EAAA;AACvE,IAAA,IAAI;AACF,QAAA,OAAOC,WAAS,CAAC,IAAI,EAAE,OAAO,CAAC;IACjC;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC;AACrD,QAAA,OAAO,IAAI;IACb;AACF;AAEA;;AAEG;AACI,eAAe,kBAAkB,CAAC,IAAW,EAAE,UAA4B,EAAE,EAAA;AAClF,IAAA,IAAI;AACF,QAAA,OAAO,MAAMC,gBAAc,CAAC,IAAI,EAAE,OAAO,CAAC;IAC5C;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC;AACrD,QAAA,OAAO,IAAI;IACb;AACF;AAEA;AACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;IACnD,MAAM,CAAC,OAAO,GAAG;mBACfD,WAAS;wBACTC,gBAAc;QACd,iBAAiB;QACjB,sBAAsB;QACtB,aAAa;QACb;KACD;AACH;;;;;;;;;;;;ACjVA;AACA;AAYA;;;AAGG;AACH,SAAS,kBAAkB,CAAC,OAAyB,EAAA;;AAEnD,IAAA,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC1C,QAAA,MAAM,IAAI,kBAAkB,CAAC,2BAA2B,CAAC;IAC3D;;IAGA,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC/D,QAAA,MAAM,IAAI,kBAAkB,CAAC,4BAA4B,CAAC;IAC5D;AAEA,IAAA,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACxD,QAAA,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,CAAC;IACtE;;AAGA,IAAA,IAAI,OAAO,EAAE,UAAU,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE;AAChF,QAAA,MAAM,IAAI,kBAAkB,CAAC,8BAA8B,CAAC;IAC9D;;AAGA,IAAA,IAAI,OAAO,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC7D,QAAA,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,CAAC;IAC7D;;IAGA,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,KAAK,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE;AACnG,QAAA,MAAM,IAAI,kBAAkB,CAAC,mCAAmC,CAAC;IACnE;AAEA,IAAA,IAAI,OAAO,EAAE,eAAe,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE;AAC1F,QAAA,MAAM,IAAI,kBAAkB,CAAC,mCAAmC,CAAC;IACnE;AAEA,IAAA,IAAI,OAAO,EAAE,eAAe,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE;AAC1F,QAAA,MAAM,IAAI,kBAAkB,CAAC,mCAAmC,CAAC;IACnE;AAEA,IAAA,IAAI,OAAO,EAAE,eAAe,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE;AAC1F,QAAA,MAAM,IAAI,kBAAkB,CAAC,mCAAmC,CAAC;IACnE;AAEA,IAAA,OAAO,IAAI;AACb;AAEA;;;AAGG;AACH,SAASC,qBAAmB,CAAC,IAAY,EAAE,UAAA,GAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAA;IACrF,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACrC,QAAA,OAAO,GAAG;IACZ;IAEA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,OAAO,GAAG;IACZ;IAEA,IAAI,aAAa,GAAG,GAAG;IACvB,IAAI,SAAS,GAAG,CAAC;AAEjB,IAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;QAClC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM;AAC/G,QAAA,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,SAAS,GAAG,KAAK;YACjB,aAAa,GAAG,SAAS;QAC3B;IACF;AAEA,IAAA,OAAO,aAAa;AACtB;AAEA,SAAS,YAAY,CAAC,KAAU,EAAA;IAC9B,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;AAC9D;AAEA,SAAS,YAAY,CAAC,KAAU,EAAA;AAC9B,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;IACA,IAAI,KAAK,GAAG,CAAC;AACb,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACpB,YAAA,KAAK,EAAE;QACT;IACF;AACA,IAAA,OAAO,KAAK,GAAG,CAAC,KAAK,CAAC;AACxB;AAEA,SAAS,YAAY,CAAC,KAAU,EAAA;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzD;AAEA,SAASL,wBAAsB,CAAC,KAAU,EAAA;AACxC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;;;AAGA,IAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC7C,SAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;QAClD,OAAO,KAAK,CAAC;IACf;IAEA,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;;;AAG7C,IAAA,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;IACnE,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpF,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IACtC;AACA,IAAA,OAAO,UAAU;AACnB;AAEA,SAASC,qBAAmB,CAAC,KAAU,EAAA;AACrC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;AACA,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;AAC5B,IAAA,IAAI,OAAO,KAAK,EAAE,EAAE;AAClB,QAAA,OAAO,OAAO;IAChB;IACA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;AACvC;AAEA,SAAS,kBAAkB,CAAC,GAAwB,EAAE,OAAiB,EAAA;IACrE,MAAM,UAAU,GAAwB,EAAE;AAC1C,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACvF,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,SAAS,GAAGD,wBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,QAAA,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE;YAC/C,UAAU,CAAC,MAAM,CAAC,GAAGC,qBAAmB,CAAC,SAAS,CAAC;QACrD;aAAO;AACL,YAAA,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS;QAChC;IACF;AACA,IAAA,OAAO,UAAU;AACnB;AAEA,SAAS,kBAAkB,CAAC,KAAU,EAAA;AACpC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;AACA,IAAA,OAAO,0DAA0D,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/E;AAEA,SAAS,UAAU,CAAC,KAAU,EAAA;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC;AACtF;AAEA,SAAS,iBAAiB,CACxB,IAA2B,EAC3B,OAAiB,EACjB,UAAyC,EAAE,EAAA;IAE3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACrE,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM;IAClC,MAAM,MAAM,GAA0B,EAAE;IACxC,IAAI,KAAK,GAAG,CAAC;AAEb,IAAA,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACnC,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAChB,YAAA,KAAK,EAAE;YACP;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;AACnD,QAAA,IAAI,YAAY,GAAG,EAAE;AACrB,QAAA,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC5B,YAAY,GAAG,CAAC;gBAChB;YACF;QACF;AAEA,QAAA,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY;AACnD,QAAA,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/B,YAAA,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC1C,gBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,iBAAiB,GAAG;AACvB,qBAAA,KAAK,CAAC,WAAW,GAAG,YAAY;qBAChC,KAAK,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;gBAExC,MAAM,UAAU,GAAG;AAChB,qBAAA,KAAK,CAAC,CAAC,EAAE,YAAY;AACrB,qBAAA,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG;uBACf,UAAU,CAAC,MAAM,GAAG;AACpB,wBAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAE/E,IAAI,WAAW,EAAE;AACf,oBAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;AAEzD,oBAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACvB,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACnF,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,EAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBACvF;AAEA,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;AACrC,wBAAA,MAAM,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;oBAC7D;oBAEA,MAAM,SAAS,GAAwB,EAAE;AACzC,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;wBACpC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oBACnC;AAEA,oBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;oBACtB,KAAK,IAAI,CAAC;oBACV;gBACF;YACF;QACF;AAEA,QAAA,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,IAAI,CAAC,EAAE;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/B,YAAA,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,uBAAA,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;uBACtB,UAAU,CAAC,OAAO;wBACjB,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAErF,IAAI,oBAAoB,EAAE;oBACxB,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;yBACtE,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;yBACtC,GAAG,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChC,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AAEnC,oBAAA,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/E,oBAAA,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/E,oBAAA,MAAM,MAAM,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE;oBAC1E,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM;oBACpC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;oBAE3B,MAAM,SAAS,GAAwB,EAAE;AACzC,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;wBACpC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oBACnC;AAEA,oBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;oBACtB,KAAK,IAAI,CAAC;oBACV;gBACF;YACF;QACF;AAEA,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAChB,QAAA,KAAK,EAAE;IACT;AAEA,IAAA,IAAI,OAAO,CAAC,eAAe,EAAE;AAC3B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9D;AAEA,IAAA,OAAO,MAAM;AACf;AAEA;;;;;;AAMG;SACaK,WAAS,CAAC,OAAe,EAAE,UAA4B,EAAE,EAAA;IACvE,OAAO,WAAW,CAAC,MAAK;QACtB,kBAAkB,CAAC,OAAO,CAAC;AAE3B,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/B,YAAA,MAAM,IAAI,eAAe,CAAC,2BAA2B,CAAC;QACxD;AAEA,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AACzB,YAAA,OAAO,EAAE;QACX;;AAGA,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;aAChC,OAAO,CAAC,UAAU,KAAK,KAAK,GAAGD,qBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;;QAGzF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACpE,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,YAAA,OAAO,EAAE;QACX;;QAGA,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5D,QAAA,MAAM,EACJ,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,IAAI,EACvB,GAAG,OAAO,IAAI,EAAE;;AAGjB,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;;QAGpE,MAAM,MAAM,GAAG,EAAE;AAEjB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YACpC,MAAM,GAAG,GAAwB,EAAE;AAEnC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,gBAAA,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;gBACzB,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE;;AAGvD,gBAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACjC,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;gBACjC;AAAO,qBAAA,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;oBAC5E,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM;gBAC9C;qBAAO;AACL,oBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK;gBACrB;YACF;AAEA,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAClB;QAEA,IAAI,eAAe,EAAE;YACnB,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,CAAC;QAChE;QAEA,IAAI,eAAe,EAAE;AACnB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9D;AAEA,QAAA,OAAO,MAAM;AACf,IAAA,CAAC,CAAC;AACJ;AAEA;;AAEG;AACI,eAAeE,gBAAc,CAAC,OAAe,EAAE,UAA4B,EAAE,EAAA;AAClF,IAAA,OAAOD,WAAS,CAAC,OAAO,EAAE,OAAO,CAAC;AACpC;AAEA;;;;;;AAMG;AACI,gBAAgBE,mBAAiB,CAAC,KAA2B,EAAE,OAAA,GAA4B,EAAE,EAAA;IAClG,kBAAkB,CAAC,OAAO,CAAC;AAE3B,IAAA,IAAI,OAAe;AAEnB,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,GAAG,KAAK;IACjB;SAAO,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,IAAI,EAAE;AACzD,QAAA,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE;IAC9B;SAAO;AACL,QAAA,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC;IACjE;AAEA,IAAA,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACzB;IACF;;AAGA,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;SAChC,OAAO,CAAC,UAAU,KAAK,KAAK,GAAGH,qBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;;IAGzF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACpE,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB;IACF;;IAGA,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5D,IAAA,MAAM,EACJ,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,IAAI,EACvB,GAAG,OAAO,IAAI,EAAE;;AAGjB,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;;IAGpE,MAAM,UAAU,GAAG,EAAE;AACrB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACpC,MAAM,GAAG,GAAwB,EAAE;AAEnC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE;;AAGvD,YAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjC,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;YACjC;AAAO,iBAAA,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;gBAC5E,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM;YAC9C;iBAAO;AACL,gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK;YACrB;QACF;AAEA,QAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;IACtB;IAEA,MAAM,SAAS,GAAG;UACd,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE;WACzD;AACD,cAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC;cACxD,UAAU,CAAC;AAEjB,IAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AAC3B,QAAA,MAAM,GAAG;IACX;AAEF;AAEA;;AAEG;AACI,MAAM,sBAAsB,GAAGG,mBAAiB;AAEvD;;;;;;AAMG;SACa,YAAY,CAAC,OAAe,EAAE,UAA4B,EAAE,EAAA;AAC1E,IAAA,IAAI;AACF,QAAA,OAAOF,WAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IACpC;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAC1C,QAAA,OAAO,IAAI;IACb;AACF;AAEA;;AAEG;AACI,eAAe,iBAAiB,CAAC,OAAe,EAAE,UAA4B,EAAE,EAAA;AACrF,IAAA,IAAI;AACF,QAAA,OAAO,MAAMC,gBAAc,CAAC,OAAO,EAAE,OAAO,CAAC;IAC/C;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAC1C,QAAA,OAAO,IAAI;IACb;AACF;AAEA;AACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;IACnD,MAAM,CAAC,OAAO,GAAG;mBACfD,WAAS;wBACTC,gBAAc;2BACdC,mBAAiB;QACjB,sBAAsB;QACtB,YAAY;QACZ,iBAAiB;6BACjBH;KACD;AACH;;;;;;;;;;;;ACneA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAExF,SAAS,gBAAgB,CAAC,KAAU,EAAA;IAClC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU;AACvD;AAEA,SAAS,eAAe,CAAC,KAAU,EAAA;IACjC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU;AACnE;AAEA,SAAS,UAAU,CAAC,KAAU,EAAA;IAC5B,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU;AAC9D;AAEA,SAAS,gCAAgC,CAAI,QAA0B,EAAA;IACrE,OAAO,IAAI,cAAc,CAAC;QACxB,MAAM,IAAI,CAAC,UAAU,EAAA;AACnB,YAAA,IAAI;gBACF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;gBAC7C,IAAI,IAAI,EAAE;oBACR,UAAU,CAAC,KAAK,EAAE;oBAClB;gBACF;AACA,gBAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;YAC3B;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;YACzB;QACF,CAAC;QACD,MAAM,GAAA;AACJ,YAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,QAAQ,CAAC,MAAM,EAAE;YACnB;QACF;AACD,KAAA,CAAC;AACJ;AAEA,SAAS,iBAAiB,CAAC,KAAU,EAAE,OAAY,EAAA;AACjD,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE;QAClC,OAAO,OAAO,CAAC,WAAW;IAC5B;AAEA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;AAC5B,QAAA,IAAI,OAAO,KAAK,EAAE,EAAE;AAClB,YAAA,OAAO,SAAS;QAClB;;AAGA,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACpE,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,gBAAA,IAAI;oBACF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,oBAAA,OAAO,QAAQ;gBACjB;AAAE,gBAAA,MAAM;;gBAER;YACF;QACF;;AAGA,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAClC,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE;AACnE,gBAAA,OAAO,MAAM;YACf;QACF;AAAE,QAAA,MAAM;;QAER;;QAGA,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC5E,YAAA,OAAO,KAAK;QACd;IACF;AAEA,IAAA,OAAO,SAAS;AAClB;AAEA,SAAS,sBAAsB,CAAC,KAAa,EAAA;;;AAG3C,IAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC7C,SAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;QAClD,OAAO,KAAK,CAAC;IACf;IAEA,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;;;AAG7C,IAAA,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;IACnE,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpF,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IACtC;AACA,IAAA,OAAO,UAAU;AACnB;AAEA,SAAS,mBAAmB,CAAC,KAAa,EAAA;AACxC,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;AAC5B,IAAA,IAAI,OAAO,KAAK,EAAE,EAAE;AAClB,QAAA,OAAO,OAAO;IAChB;IACA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;AACvC;AAEA,SAAS,oBAAoB,CAAC,KAAU,EAAE,GAAuB,EAAE,eAAwB,EAAA;IACzF,IAAI,CAAC,eAAe,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjD,QAAA,OAAO,KAAK;IACd;AACA,IAAA,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC;AAC1C,IAAA,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE;AACpD,QAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC;IAClC;AACA,IAAA,OAAO,IAAI;AACb;AAEA,gBAAgB,sBAAsB,CAAC,KAAU,EAAE,UAA4B,EAAE,EAAA;IAC/E,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC;AAEhD,IAAA,IAAI,MAAM,KAAK,KAAK,EAAE;AACpB,QAAA,MAAM,IAAI,eAAe,CAAC,mCAAmC,CAAC;IAChE;;IAGA,SAAS,eAAe,CAAI,QAAwC,EAAA;AAClE,QAAA,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE;AAC7B,YAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QACzC;AAEA,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;YACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YAChD,OAAO;AACL,gBAAA,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,MAAO,EAAE,CAAC,GAAG,SAAS;gBACvF,KAAK,EAAE,YAAY,CAAC,KAAK,GAAG,CAAC,KAAU,KAAK,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,GAAG;aAC3F;QACH;AAEA,QAAA,MAAM,IAAI,eAAe,CAAC,uBAAuB,CAAC;IACpD;AAEA,IAAA,IAAI,QAA4B;IAEhC,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AAC/C,QAAA,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC;IACnC;AAAO,SAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,YAAA,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC;QACpC;aAAO;AACL,YAAA,QAAQ,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;QACtC;IACF;AAAO,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAA,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC;IACnC;SAAO;AACL,QAAA,QAAQ,GAAG,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;IACrC;AAEA,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG;AAC1C,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,KAAK,KAAK;AACvD,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,KAAK,KAAK;AAC9D,IAAA,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,KAAK,KAAK;AACzD,IAAA,MAAM,kBAAkB,GAAG,CAAC,KAAa,KAAa;QACpD,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE;YACzB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAClC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,MAAM,EAAE;AAC9E,gBAAA,GAAG,EAAE;gBACL;YACF;YACA;QACF;QACA,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE;AACpE,YAAA,GAAG,EAAE;AACL,YAAA,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE;gBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAClC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;AAC7B,oBAAA,GAAG,EAAE;oBACL;gBACF;gBACA;YACF;QACF;AACA,QAAA,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;AACvB,YAAA,OAAO,KAAK;QACd;AACA,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;AACrE,IAAA,CAAC;IAED,IAAI,YAAY,GAAG,IAAI;IACvB,IAAI,OAAO,GAAa,EAAE;IAE1B,OAAO,IAAI,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC7C,QAAA,IAAI,IAAI;YAAE;QAEV,MAAM,IAAI,GAAG,KAAK;QAElB,IAAI,YAAY,EAAE;;AAEhB,YAAA,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAE3B,IAAI,cAAc,EAAE;gBAClB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAG;oBACtC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAA,CAAG,GAAG,MAAM;AACjF,oBAAA,OAAO,gBAAgB,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,GAAG,OAAO;AAClF,gBAAA,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBAElB,MAAM,UAAU,GAAG,IAAI;YACzB;YAEA,YAAY,GAAG,KAAK;QACtB;QAEA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAG;AAC/B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC;YACvE,MAAM,QAAQ,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAE1F,YAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAChH,OAAO,CAAA,CAAA,EAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAA,CAAG;YAC5C;AAEA,YAAA,IAAI,gBAAgB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;gBACpD,OAAO,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE;YACvB;AAEA,YAAA,OAAO,QAAQ;AACjB,QAAA,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAElB,MAAM,GAAG,GAAG,IAAI;IAClB;AACF;AAEA,gBAAgB,yBAAyB,CAAC,KAAU,EAAE,UAAe,EAAE,EAAA;IACrE,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC;;IAGhD,SAAS,eAAe,CAAI,QAAwC,EAAA;AAClE,QAAA,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE;AAC7B,YAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QACzC;AAEA,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;YACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YAChD,OAAO;AACL,gBAAA,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,MAAO,EAAE,CAAC,GAAG,SAAS;gBACvF,KAAK,EAAE,YAAY,CAAC,KAAK,GAAG,CAAC,KAAU,KAAK,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC,GAAG;aAC3F;QACH;AAEA,QAAA,MAAM,IAAI,eAAe,CAAC,uBAAuB,CAAC;IACpD;AAEA,IAAA,IAAI,QAA4B;IAEhC,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AAC/C,QAAA,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC;IACnC;AAAO,SAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,QAAA,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAClE,YAAA,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC;QACnC;aAAO;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,gBAAA,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC;YACpC;iBAAO;AACL,gBAAA,QAAQ,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;YACtC;QACF;IACF;AAAO,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAA,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC;IACnC;SAAO;AACL,QAAA,QAAQ,GAAG,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;IACrC;IAEA,OAAO,IAAI,EAAE;QACX,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC7C,QAAA,IAAI,IAAI;YAAE;AAEV,QAAA,IAAI,OAAe;AAEnB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI;;AAEF,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBACjB,OAAO,GAAG,KAAK;YACjB;AAAE,YAAA,MAAM;;AAEN,gBAAA,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACjC;QACF;aAAO;AACL,YAAA,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACjC;QAEA,MAAM,OAAO,GAAG,IAAI;IACtB;AACF;AAEA,gBAAgB,sBAAsB,CAAC,KAAU,EAAE,UAA4B,EAAE,EAAA;AAC/E,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;;QAE7B,OAAOG,mBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC;IAC1C;SAAO,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,IAAI,EAAE;AACzD,QAAA,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE;QAC/B,OAAOA,mBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;IACzC;AAAO,SAAA,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;AAClC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;QACjC,IAAI,MAAM,GAAG,EAAE;AAEf,QAAA,IAAI;YACF,OAAO,IAAI,EAAE;gBACX,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;AAC3C,gBAAA,IAAI,IAAI;oBAAE;AAEV,gBAAA,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;gBAGjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAChC,gBAAA,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;;;AAI1B,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,oBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACf,wBAAA,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;oBACrB;gBACF;YACF;;AAGA,YAAA,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE;AACjB,gBAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;YACvB;QACF;gBAAU;YACR,MAAM,CAAC,WAAW,EAAE;QACtB;IACF;SAAO;AACL,QAAA,MAAM,IAAI,eAAe,CAAC,0CAA0C,CAAC;IACvE;AACF;SAEgBC,iBAAe,CAAC,KAAU,EAAE,UAA4B,EAAE,EAAA;IACxE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC;AACvD,IAAA,OAAO,gCAAgC,CAAC,QAAQ,CAAC;AACnD;SAEgBC,oBAAkB,CAAC,KAAU,EAAE,UAAe,EAAE,EAAA;IAC9D,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1D,IAAA,OAAO,gCAAgC,CAAC,QAAQ,CAAC;AACnD;SAEgBC,iBAAe,CAAC,KAAU,EAAE,UAA4B,EAAE,EAAA;IACxE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC;AACvD,IAAA,OAAO,gCAAgC,CAAC,QAAQ,CAAC;AACnD;AAEA;;AAEG;AACI,eAAe,oBAAoB,CAAC,KAAU,EAAE,UAA4B,EAAE,EAAA;AACnF,IAAA,OAAOF,iBAAe,CAAC,KAAK,EAAE,OAAO,CAAC;AACxC;AAEA;;AAEG;AACI,eAAe,uBAAuB,CAAC,KAAU,EAAE,UAAe,EAAE,EAAA;AACzE,IAAA,OAAOC,oBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC3C;AAEA;;AAEG;AACI,eAAe,oBAAoB,CAAC,KAAU,EAAE,UAA4B,EAAE,EAAA;AACnF,IAAA,OAAOC,iBAAe,CAAC,KAAK,EAAE,OAAO,CAAC;AACxC;AAEA;AACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;IACnD,MAAM,CAAC,OAAO,GAAG;yBACfF,iBAAe;QACf,oBAAoB;4BACpBC,oBAAkB;QAClB,uBAAuB;yBACvBC,iBAAe;QACf,oBAAoB;QACpB;KACD;AACH;;AClZA;AACA;AAaA;;;;;;;;;;;;;AAaG;AACG,SAAU,aAAa,CAC3B,IAAW,EACX,QAAA,GAAmB,UAAU,EAC7B,OAAA,GAA4B,EAAE,EAAA;;AAG9B,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,MAAM,IAAI,eAAe,CAAC,+EAA+E,CAAC;IAC5G;;AAGA,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAC1D,QAAA,MAAM,IAAI,eAAe,CAAC,qCAAqC,CAAC;IAClE;;IAGA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC5C,QAAQ,IAAI,MAAM;IACpB;;IAGA,MAAM,GAAG,GAAGR,WAAS,CAAC,IAAI,EAAE,OAAO,CAAC;;IAGpC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;AAC3B,QAAA,IAAI,EAAE;AACP,KAAA,CAAC;;IAGF,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;IACxC,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAErC,IAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC;AAC9B,IAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;AACvC,IAAA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AAEhC,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE;AACZ,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;AAG/B,IAAA,UAAU,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AACjD;AAEA;;AAEG;AACI,eAAeS,oBAAkB,CACtC,IAAW,EACX,QAAA,GAAmB,UAAU,EAC7B,OAAA,GAA4B,EAAE,EAAA;IAE9B,OAAO,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;AAC/C;AAEA;;;;;;AAMG;AACI,eAAe,YAAY,CAChC,IAAU,EACV,UAA4B,EAAE,EAAA;AAE9B,IAAA,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;AAC3B,QAAA,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC;IACjE;;AAGA,IAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;;AAG9B,IAAA,OAAON,WAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACjC;AAEA;;;;;;AAMG;SACa,kBAAkB,CAChC,IAAU,EACV,UAA4B,EAAE,EAAA;AAE9B,IAAA,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;AAC3B,QAAA,MAAM,IAAI,eAAe,CAAC,0CAA0C,CAAC;IACvE;;AAGA,IAAA,OAAOE,mBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;AACzC;AAEA;;;;;AAKG;AACG,SAAU,eAAe,CAAC,OAAA,GAA4B,EAAE,EAAA;AAC5D,IAAA,OAAOK,iBAAqB,CAAC,OAAO,CAAC;AACvC;AAEA;;;;;AAKG;AACG,SAAU,kBAAkB,CAAC,OAAA,GAAe,EAAE,EAAA;AAClD,IAAA,OAAOC,oBAAwB,CAAC,OAAO,CAAC;AAC1C;AAEA;;;;;AAKG;AACG,SAAU,eAAe,CAAC,OAAA,GAA4B,EAAE,EAAA;AAC5D,IAAA,OAAOC,iBAAqB,CAAC,OAAO,CAAC;AACvC;AAEA;;;;;;AAMG;AACI,eAAe,cAAc,CAClC,GAAW,EACX,UAA4B,EAAE,EAAA;AAE9B,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,MAAM,IAAI,eAAe,CAAC,6CAA6C,CAAC;IAC1E;AAEA,IAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;AAEjC,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,QAAA,MAAM,IAAI,eAAe,CAAC,CAAA,6BAAA,EAAgC,QAAQ,CAAC,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAC,UAAU,CAAA,CAAE,CAAC;IACrG;AAEA,IAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAClC,IAAA,OAAOT,WAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACjC;AAEA;;AAEG;AACI,eAAe,mBAAmB,CACvC,GAAW,EACX,UAA4B,EAAE,EAAA;AAE9B,IAAA,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;AACrC;AAEA;;;;;AAKG;SACa,eAAe,CAC7B,IAAW,EACX,UAA4B,EAAE,EAAA;AAE9B,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,MAAM,IAAI,eAAe,CAAC,8CAA8C,CAAC;IAC3E;IAEA,MAAM,GAAG,GAAGH,WAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACpC,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IAChE,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAErC,IAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;;AAG1B,IAAA,UAAU,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AAClD;AAEA;;AAEG;AACI,eAAe,oBAAoB,CACxC,IAAW,EACX,UAA4B,EAAE,EAAA;AAE9B,IAAA,OAAO,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC;AACvC;AAEA;;;;;;AAMG;AACI,eAAe,kBAAkB,CACtC,IAAW,EACX,UAA4B,EAAE,EAAA;IAE9B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;AACzD,QAAA,MAAM,IAAI,eAAe,CAAC,sDAAsD,CAAC;IACnF;IAEA,MAAM,GAAG,GAAGA,WAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AAEpC,IAAA,IAAI;QACF,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC;AACxC,QAAA,OAAO,IAAI;IACb;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC;AACpD,QAAA,OAAO,KAAK;IACd;AACF;AAEA;;;;;;AAMG;AACG,SAAU,qBAAqB,CACnC,GAAW,EACX,IAAW,EACX,UAA4B,EAAE,EAAA;IAE9B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,YAAY,EAAE;AAClD,QAAA,MAAM,IAAI,eAAe,CAAC,8CAA8C,CAAC;IAC3E;IAEA,MAAM,GAAG,GAAGA,WAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACpC,IAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AAChC;AAEA;;;;;;AAMG;SACa,uBAAuB,CACrC,GAAW,EACX,UAA4B,EAAE,EAAA;IAE9B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,YAAY,EAAE;AAClD,QAAA,MAAM,IAAI,eAAe,CAAC,gDAAgD,CAAC;IAC7E;IAEA,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;IAErC,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAOG,WAAS,CAAC,GAAG,EAAE,OAAO,CAAC;AAChC;AAEA;;AAEG;AACI,eAAe,4BAA4B,CAChD,GAAW,EACX,UAA4B,EAAE,EAAA;AAE9B,IAAA,OAAO,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC;AAC9C;AAEA;;;;;;;AAOG;SACa,aAAa,CAC3B,IAAW,EACX,UAA4B,EAAE,EAAA;IAE9B,MAAM,GAAG,GAAGH,WAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACpC,IAAA,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;AACrB,QAAA,IAAI,EAAE;AACP,KAAA,CAAC;AACJ;AAEA;;AAEG;AACI,eAAe,kBAAkB,CACtC,IAAW,EACX,UAA4B,EAAE,EAAA;AAE9B,IAAA,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;AACrC;AAEA;;;;;;AAMG;AACI,eAAe,YAAY,CAChC,IAAU,EACV,UAA4B,EAAE,EAAA;AAE9B,IAAA,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;AAC3B,QAAA,MAAM,IAAI,eAAe,CAAC,6BAA6B,CAAC;IAC1D;IAEA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAE/B,QAAA,MAAM,CAAC,MAAM,GAAG,UAAU,KAAgC,EAAA;AACxD,YAAA,IAAI;AACF,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,MAAgB;gBAC9C,MAAM,IAAI,GAAGG,WAAS,CAAC,OAAO,EAAE,OAAO,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC;YACf;YAAE,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC;YACf;AACF,QAAA,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,YAAA;AACf,YAAA,MAAM,CAAC,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAC;AACnD,QAAA,CAAC;AAED,QAAA,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;AAClC,IAAA,CAAC,CAAC;AACJ;AAEA;;AAEG;AACI,eAAe,iBAAiB,CACrC,IAAU,EACV,UAA4B,EAAE,EAAA;AAE9B,IAAA,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;AACpC;AAEA;AACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;IACnD,MAAM,CAAC,OAAO,GAAG;QACf,aAAa;4BACbM,oBAAkB;QAClB,YAAY;QACZ,kBAAkB;QAClB,aAAa;QACb,kBAAkB;QAClB,YAAY;QACZ,iBAAiB;QACjB,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,cAAc;QACd,mBAAmB;QACnB,eAAe;QACf,oBAAoB;QACpB,kBAAkB;QAClB,qBAAqB;QACrB,uBAAuB;QACvB;KACD;AACH;;AChZA;AACA;AAIA;AACA,MAAM,iBAAiB,GAAG,OAAO,MAAM,KAAK,WAAW;AAEvD,SAAS,oBAAoB,CAAC,KAAK,EAAA;AACjC,IAAA,IAAI,EAAE,KAAK,YAAY,WAAW,CAAC,EAAE;AACnC,QAAA,OAAO,KAAK;IACd;IACA,IAAI,OAAO,iBAAiB,KAAK,WAAW,IAAI,KAAK,YAAY,iBAAiB,EAAE;AAClF,QAAA,OAAO,KAAK;IACd;AACA,IAAA,OAAO,IAAI;AACb;AAEA,SAAS,oBAAoB,CAAC,IAAI,EAAA;IAChC,MAAM,aAAa,GAAG,EAAE;AAExB,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAI;QACjC,IAAI,CAAC,KAAK,EAAE;YACV;QACF;AACA,QAAA,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE;AAC/B,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB;QACF;AACA,QAAA,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACnE,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAChC;QACF;AACA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACjC;AACF,IAAA,CAAC;AAED,IAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC9B,OAAO,aAAa,CAAC,MAAM,GAAG,aAAa,GAAG,IAAI;AACpD;AASA;;;;;;;AAOG;AAEH;;;;;;;;;AASG;AAEH;;;;;;;AAOG;AAEH;;AAEG;MACU,UAAU,CAAA;AAOrB;;;;AAIG;AACH,IAAA,WAAA,CAAY,YAAY,EAAE,OAAO,GAAG,EAAE,EAAA;QACpC,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,MAAM,IAAI,eAAe,CAAC,+CAA+C,CAAC;QAC5E;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;QAChC,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,YAAY,EAAE,GAAG;AACjB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,GAAG;SACJ;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE;QAC5B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,WAAW,EAAE;SACd;QAED,IAAI,CAAC,iBAAiB,EAAE;IAC1B;AAEA;;;AAGG;IACH,iBAAiB,GAAA;AACf,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO;AAEpC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,YAAY,EAAE;QACrB;QAEA,IAAI,CAAC,WAAW,EAAE;IACpB;AAEA;;;AAGG;IACH,YAAY,GAAA;AACV,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAmB;YAElF,MAAM,CAAC,EAAE,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA,CAAE;AAC3C,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM;AACtB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;AAC5B,YAAA,MAAM,CAAC,MAAM,GAAG,IAAI;;AAGpB,YAAA,MAAM,CAAC,SAAS,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;AACrE,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC;AACjE,YAAA,MAAM,CAAC,cAAc,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC;AAE/E,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AAExB,YAAA,OAAO,MAAM;QACf;QAAE,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,kBAAkB,CAAC,CAAA,2BAAA,EAA8B,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;QAC7E;IACF;AAEA;;;AAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAA;AAC/B,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK;AAEtB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;QACnC;AAAO,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;QACjC;AAAO,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AAChC,YAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC1C;IACF;AAEA;;;AAGG;IACH,cAAc,CAAC,MAAM,EAAE,YAAY,EAAA;AACjC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;QAC5B,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;AACzC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC;oBACd,SAAS,EAAE,YAAY,CAAC,SAAS;oBACjC,KAAK,EAAE,YAAY,CAAC,KAAK;oBACzB,UAAU,EAAE,CAAC,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,KAAK,IAAI,GAAG;AAC/D,oBAAA,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI;AAC9B,iBAAA,CAAC;YACJ;QACF;IACF;AAEA;;;AAGG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,EAAA;AAC7B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;QAC5B,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;;AAGzC,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM;AACtB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;AAC5B,YAAA,MAAM,CAAC,MAAM,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;;AAGxB,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;;YAG3B,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE;QACpB;IACF;AAEA;;;AAGG;IACH,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAA;AACrC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;QAC5B,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;;AAGzC,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM;AACtB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;AAC5B,YAAA,MAAM,CAAC,MAAM,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;;YAGxB,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,iBAAiB,CAAC;AACrE,YAAA,IAAK,SAAiB,CAAC,IAAI,EAAE;AAC1B,gBAAA,WAAmB,CAAC,IAAI,GAAI,SAAiB,CAAC,IAAI;YACrD;AACA,YAAA,IAAK,SAAiB,CAAC,OAAO,EAAE;AAC7B,gBAAA,WAAmB,CAAC,OAAO,GAAI,SAAiB,CAAC,OAAO;YAC3D;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;;YAGxB,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE;QACpB;IACF;AAEA;;;AAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAA;QAC7B,OAAO,CAAC,KAAK,CAAC,CAAA,OAAA,EAAU,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,EAAE,KAAK,CAAC;;AAGlD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IAC5B;AAEA;;;AAGG;IACH,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAA;QACpC,OAAO,CAAC,KAAK,CAAC,CAAA,OAAA,EAAU,MAAM,CAAC,EAAE,CAAA,eAAA,CAAiB,EAAE,KAAK,CAAC;IAC5D;AAEA;;;AAGG;AACH,IAAA,aAAa,CAAC,MAAM,EAAA;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1C,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;;YAEhB,MAAM,CAAC,SAAS,EAAE;;AAGlB,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC5B;iBAAO;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC1B;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;;AAGzB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AACrC,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS;;AAG/B,YAAA,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AACxD,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAChD,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;YACnC;QACF;IACF;AAEA;;;AAGG;IACH,WAAW,CAAC,MAAM,EAAE,IAAI,EAAA;AACtB,QAAA,MAAM,CAAC,MAAM,GAAG,QAAQ;AACxB,QAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;AAC5B,QAAA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;AAEvB,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;;AAG1B,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC;SACf;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACjD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;QAChD;aAAO;AACL,YAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;QAC7B;IACF;AAEA;;;AAGG;IACH,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B;QACF;QAEA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;YAC9D,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC7E,IAAI,CAAC,YAAY,EAAE;oBACnB;gBACF;gBACA;YACF;YAEA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC;QACpC;QAEA,IAAI,CAAC,WAAW,EAAE;IACpB;AAEA;;;AAGG;IACH,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;IAC9C;AAEA;;;;;;;AAOG;AACH,IAAA,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAA,GAAe,EAAE,EAAE,UAAU,GAAG,IAAI,EAAA;QAChE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;;AAErC,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACtD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC9C;YACF;;YAGA,MAAM,MAAM,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;YAC9E,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE;YAClD,MAAM,YAAY,GAAG,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC;AAC3D,YAAA,MAAM,IAAI,GAAG;AACX,gBAAA,EAAE,EAAE,MAAM;gBACV,MAAM;gBACN,IAAI;AACJ,gBAAA,OAAO,EAAE,WAAW;gBACpB,YAAY;gBACZ,UAAU;gBACV,OAAO;gBACP,MAAM;AACN,gBAAA,SAAS,EAAE,IAAI,CAAC,GAAG;aACpB;;AAGD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;;YAGtB,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE;AACpB,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACH,QAAQ,GAAA;AACN,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;IAC1B;AAEA;;AAEG;IACH,kBAAkB,GAAA;AAChB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACtB,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO;AAEpC,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,WAAW,EAAE;;gBAErE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,MAAM,CAAC,SAAS,EAAE;oBAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,oBAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AACzB,oBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC1B;YACF;QACF;IACF;AAEA;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAG;YAC5B,MAAM,CAAC,SAAS,EAAE;AACpB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;;QAGxB,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,WAAW,EAAE;SACd;IACH;AACD;AAED;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,OAAA,GAAe,EAAE,EAAA;;AAEhD,IAAA,MAAM,OAAO,GACX,OAAO,QAAQ,KAAK;UAChB,QAAQ,CAAC;WACR,OAAO,IAAI,KAAK,WAAW,IAAK,IAAY,CAAC;AAC5C,cAAG,IAAY,CAAC,QAAQ,CAAC;cACvB,EAAE,CAAC;IACb,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC,IAAI;AACpE,IAAA,OAAO,IAAI,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC;AAC9C;AAEA;;;;;;AAMG;AACI,eAAe,kBAAkB,CAAC,QAAQ,EAAE,OAAA,GAAe,EAAE,EAAE,UAAU,GAAG,IAAI,EAAA;;IAErF,MAAM,UAAU,GAAG,kBAAyB;AAC5C,IAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACpB,QAAA,UAAU,CAAC,IAAI,GAAG,gBAAgB,EAAE;IACtC;AAEA,IAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;;;IAI5B,IAAI,UAAU,GAAG,QAAQ;IACzB,IAAI,QAAQ,GAAG,IAAI;AAEnB,IAAA,IAAI,QAAQ,YAAY,IAAI,EAAE;AAC5B,QAAA,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC;AACpD,QAAA,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACnC,QAAA,QAAQ,GAAG,CAAC,MAAM,CAAC;IACrB;AAAO,SAAA,IAAI,QAAQ,YAAY,WAAW,EAAE;QAC1C,UAAU,GAAG,QAAQ;AACrB,QAAA,QAAQ,GAAG,CAAC,QAAQ,CAAC;IACvB;AAAO,SAAA,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACvC,UAAU,GAAG,QAAQ;AACrB,QAAA,IAAI,QAAQ,CAAC,MAAM,YAAY,WAAW,EAAE;AAC1C,YAAA,QAAQ,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9B;IACF;AAAO,SAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACvC,QAAA,MAAM,IAAI,eAAe,CAAC,kDAAkD,CAAC;IAC/E;;AAGA,IAAA,MAAM,WAAW,GAAG,QAAQ,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;AAChD,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC;AAC9E;AAEA;;;AAGG;AACH,eAAe,qBAAqB,CAAC,IAAU,EAAA;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,QAAA,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,KACpB,OAAO,CAAE,KAAK,CAAC,MAAqB,CAAC,MAAqB,CAAC;AAC7D,QAAA,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;AACzC,QAAA,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAChC,IAAA,CAAC,CAAC;AACJ;AAEA;AACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;IACnD,MAAM,CAAC,OAAO,GAAG;QACf,UAAU;QACV,gBAAgB;QAChB;KACD;AACH;;;;;;;;;ACniBA;AACA;AAyBA,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG;AAClD,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAG;AAW9D;;AAEG;AACH,eAAe,oBAAoB,CAAC,OAAA,GAAe,EAAE,EAAA;AACnD,IAAA,MAAM,GAAG,GAAG,MAAM,0DAA+B;AACjD,IAAA,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;AACtC;AAEA;;AAEG;AACH,eAAe,sBAAsB,CACnC,QAAuB,EACvB,OAAA,GAA4B,EAAE,EAC9B,UAAuC,EAAA;AAEvC,IAAA,MAAM,GAAG,GAAG,MAAM,0DAA+B;IACjD,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;AAC9D;AAEA;;AAEG;AACH,eAAe,cAAc,CAAC,IAAS,EAAE,UAA4B,EAAE,EAAA;AACrE,IAAA,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AACjC;AAEA;;AAEG;AACH,eAAe,cAAc,CAAC,GAAW,EAAE,UAA4B,EAAE,EAAA;AACvE,IAAA,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;AAChC;AAEA;;AAEG;AACH,eAAe,iBAAiB,CAAC,IAAU,EAAE,UAA4B,EAAE,EAAA;AACzE,IAAA,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;AACpC;AAEA;;AAEG;AACH,eAAe,wBAAwB,CAAC,GAAW,EAAA;AACjD,IAAA,OAAO,mBAAmB,CAAC,GAAG,CAAC;AACjC;AAEA;;AAEG;AACH,eAAe,kBAAkB,CAC/B,IAAS,EACT,QAAA,GAAmB,YAAY,EAC/B,OAAA,GAA4B,EAAE,EAAA;IAE9B,OAAO,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;AAC/C;AAEA;AACA,MAAM,KAAK,GAAG;;IAEZ,SAAS;IACT,cAAc;IACd,aAAa;IACb,UAAU;;IAGV,SAAS;IACT,iBAAiB;IACjB,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,mBAAmB;;IAGnB,gBAAgB;IAChB,kBAAkB;IAClB,oBAAoB;IACpB,sBAAsB;;IAGtB,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,wBAAwB;IACxB,kBAAkB;;IAGlB,eAAe;IACf,aAAa;IACb,eAAe;IACf,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,WAAW;;AAGX,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,UAAU,EAAE,cAAc;AAC1B,IAAA,YAAY,EAAE,cAAc;;AAG5B,IAAA,OAAO,EAAE;;AAGX;AACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;;AAEnD,IAAA,MAAM,CAAC,OAAO,GAAG,KAAK;AACxB;KAAO,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,EAAE;;IAErD,MAAM,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC;AACzB;AAAO,KAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;AAEvC,IAAA,MAAc,CAAC,KAAK,GAAG,KAAK;AAC/B;;;;"}