devchain-cli 0.10.4 → 0.11.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 (363) hide show
  1. package/README.md +13 -7
  2. package/dist/cli.js +55 -63
  3. package/dist/drizzle/0048_sessions_transcript_fields.sql +6 -0
  4. package/dist/drizzle/0049_provider_models_and_agent_model_override.sql +24 -0
  5. package/dist/drizzle/meta/_journal.json +14 -0
  6. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +25 -0
  7. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts.map +1 -1
  8. package/dist/node_modules/@devchain/shared/schemas/export-schema.js +9 -3
  9. package/dist/node_modules/@devchain/shared/schemas/export-schema.js.map +1 -1
  10. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  11. package/dist/server/app.main.module.js +2 -0
  12. package/dist/server/app.main.module.js.map +1 -1
  13. package/dist/server/app.normal.module.js +2 -0
  14. package/dist/server/app.normal.module.js.map +1 -1
  15. package/dist/server/common/config/env.config.js +1 -10
  16. package/dist/server/common/config/env.config.js.map +1 -1
  17. package/dist/server/modules/agents/controllers/agents.controller.d.ts +1 -0
  18. package/dist/server/modules/agents/controllers/agents.controller.js +3 -0
  19. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
  20. package/dist/server/modules/chat/dtos/chat.dto.d.ts +4 -4
  21. package/dist/server/modules/core/services/preflight.service.js +7 -0
  22. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  23. package/dist/server/modules/core/services/provider-mcp-ensure.service.js +8 -0
  24. package/dist/server/modules/core/services/provider-mcp-ensure.service.js.map +1 -1
  25. package/dist/server/modules/documents/controllers/documents.controller.d.ts +2 -2
  26. package/dist/server/modules/documents/controllers/documents.controller.js.map +1 -1
  27. package/dist/server/modules/epics/controllers/epic-comments.controller.d.ts +2 -2
  28. package/dist/server/modules/epics/controllers/epic-comments.controller.js.map +1 -1
  29. package/dist/server/modules/events/catalog/claude.hooks.session.started.d.ts +4 -4
  30. package/dist/server/modules/events/catalog/index.d.ts +115 -4
  31. package/dist/server/modules/events/catalog/index.js +6 -0
  32. package/dist/server/modules/events/catalog/index.js.map +1 -1
  33. package/dist/server/modules/events/catalog/session.transcript.discovered.d.ts +24 -0
  34. package/dist/server/modules/events/catalog/session.transcript.discovered.js +15 -0
  35. package/dist/server/modules/events/catalog/session.transcript.discovered.js.map +1 -0
  36. package/dist/server/modules/events/catalog/session.transcript.ended.d.ts +51 -0
  37. package/dist/server/modules/events/catalog/session.transcript.ended.js +20 -0
  38. package/dist/server/modules/events/catalog/session.transcript.ended.js.map +1 -0
  39. package/dist/server/modules/events/catalog/session.transcript.updated.d.ts +51 -0
  40. package/dist/server/modules/events/catalog/session.transcript.updated.js +20 -0
  41. package/dist/server/modules/events/catalog/session.transcript.updated.js.map +1 -0
  42. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.d.ts +2 -2
  43. package/dist/server/modules/events/subscribers/chat-message-delivery.subscriber.js.map +1 -1
  44. package/dist/server/modules/events/subscribers/index.js +2 -0
  45. package/dist/server/modules/events/subscribers/index.js.map +1 -1
  46. package/dist/server/modules/events/subscribers/review-comment-notifier.subscriber.d.ts +2 -2
  47. package/dist/server/modules/events/subscribers/review-comment-notifier.subscriber.js.map +1 -1
  48. package/dist/server/modules/events/subscribers/transcript-broadcaster.subscriber.d.ts +12 -0
  49. package/dist/server/modules/events/subscribers/transcript-broadcaster.subscriber.js +88 -0
  50. package/dist/server/modules/events/subscribers/transcript-broadcaster.subscriber.js.map +1 -0
  51. package/dist/server/modules/guests/services/guest-health.service.d.ts +2 -2
  52. package/dist/server/modules/guests/services/guest-health.service.js.map +1 -1
  53. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +4 -4
  54. package/dist/server/modules/hooks/services/hooks.service.d.ts +2 -2
  55. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  56. package/dist/server/modules/mcp/dtos/mcp.dto.js +8 -3
  57. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
  58. package/dist/server/modules/mcp/services/handlers/activity-tools.d.ts +4 -0
  59. package/dist/server/modules/mcp/services/handlers/activity-tools.js +193 -0
  60. package/dist/server/modules/mcp/services/handlers/activity-tools.js.map +1 -0
  61. package/dist/server/modules/mcp/services/handlers/chat-tools.d.ts +6 -0
  62. package/dist/server/modules/mcp/services/handlers/chat-tools.js +605 -0
  63. package/dist/server/modules/mcp/services/handlers/chat-tools.js.map +1 -0
  64. package/dist/server/modules/mcp/services/handlers/document-tools.d.ts +6 -0
  65. package/dist/server/modules/mcp/services/handlers/document-tools.js +141 -0
  66. package/dist/server/modules/mcp/services/handlers/document-tools.js.map +1 -0
  67. package/dist/server/modules/mcp/services/handlers/epic-tools.d.ts +11 -0
  68. package/dist/server/modules/mcp/services/handlers/epic-tools.js +913 -0
  69. package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -0
  70. package/dist/server/modules/mcp/services/handlers/prompt-tools.d.ts +4 -0
  71. package/dist/server/modules/mcp/services/handlers/prompt-tools.js +109 -0
  72. package/dist/server/modules/mcp/services/handlers/prompt-tools.js.map +1 -0
  73. package/dist/server/modules/mcp/services/handlers/record-tools.d.ts +8 -0
  74. package/dist/server/modules/mcp/services/handlers/record-tools.js +114 -0
  75. package/dist/server/modules/mcp/services/handlers/record-tools.js.map +1 -0
  76. package/dist/server/modules/mcp/services/handlers/review-tools.d.ts +8 -0
  77. package/dist/server/modules/mcp/services/handlers/review-tools.js +672 -0
  78. package/dist/server/modules/mcp/services/handlers/review-tools.js.map +1 -0
  79. package/dist/server/modules/mcp/services/handlers/session-tools.d.ts +4 -0
  80. package/dist/server/modules/mcp/services/handlers/session-tools.js +114 -0
  81. package/dist/server/modules/mcp/services/handlers/session-tools.js.map +1 -0
  82. package/dist/server/modules/mcp/services/handlers/skill-tools.d.ts +4 -0
  83. package/dist/server/modules/mcp/services/handlers/skill-tools.js +124 -0
  84. package/dist/server/modules/mcp/services/handlers/skill-tools.js.map +1 -0
  85. package/dist/server/modules/mcp/services/handlers/types.d.ts +33 -0
  86. package/dist/server/modules/mcp/services/handlers/types.js +3 -0
  87. package/dist/server/modules/mcp/services/handlers/types.js.map +1 -0
  88. package/dist/server/modules/mcp/services/mappers/dto-mappers.d.ts +14 -0
  89. package/dist/server/modules/mcp/services/mappers/dto-mappers.js +138 -0
  90. package/dist/server/modules/mcp/services/mappers/dto-mappers.js.map +1 -0
  91. package/dist/server/modules/mcp/services/mcp-provider-registration.service.d.ts +8 -0
  92. package/dist/server/modules/mcp/services/mcp-provider-registration.service.js +258 -51
  93. package/dist/server/modules/mcp/services/mcp-provider-registration.service.js.map +1 -1
  94. package/dist/server/modules/mcp/services/mcp.service.d.ts +6 -66
  95. package/dist/server/modules/mcp/services/mcp.service.js +97 -3329
  96. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  97. package/dist/server/modules/mcp/services/utils/document-link-resolver.d.ts +10 -0
  98. package/dist/server/modules/mcp/services/utils/document-link-resolver.js +124 -0
  99. package/dist/server/modules/mcp/services/utils/document-link-resolver.js.map +1 -0
  100. package/dist/server/modules/mcp/services/utils/resolve-epic-id.d.ts +3 -0
  101. package/dist/server/modules/mcp/services/utils/resolve-epic-id.js +40 -0
  102. package/dist/server/modules/mcp/services/utils/resolve-epic-id.js.map +1 -0
  103. package/dist/server/modules/mcp/services/utils/resource-resolver.d.ts +10 -0
  104. package/dist/server/modules/mcp/services/utils/resource-resolver.js +124 -0
  105. package/dist/server/modules/mcp/services/utils/resource-resolver.js.map +1 -0
  106. package/dist/server/modules/mcp/services/utils/session-context-resolver.d.ts +14 -0
  107. package/dist/server/modules/mcp/services/utils/session-context-resolver.js +169 -0
  108. package/dist/server/modules/mcp/services/utils/session-context-resolver.js.map +1 -0
  109. package/dist/server/modules/mcp/tool-definitions.js +12 -3
  110. package/dist/server/modules/mcp/tool-definitions.js.map +1 -1
  111. package/dist/server/modules/orchestrator/docker/services/docker.service.js +16 -2
  112. package/dist/server/modules/orchestrator/docker/services/docker.service.js.map +1 -1
  113. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.js +9 -0
  114. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.js.map +1 -1
  115. package/dist/server/modules/profiles/controllers/provider-configs.controller.d.ts +2 -2
  116. package/dist/server/modules/profiles/controllers/provider-configs.controller.js.map +1 -1
  117. package/dist/server/modules/profiles/dto.d.ts +2 -2
  118. package/dist/server/modules/projects/controllers/projects.controller.d.ts +38 -33
  119. package/dist/server/modules/projects/controllers/projects.controller.js +12 -7
  120. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  121. package/dist/server/modules/projects/dtos/export.dto.d.ts +7 -0
  122. package/dist/server/modules/projects/dtos/export.dto.js +1 -0
  123. package/dist/server/modules/projects/dtos/export.dto.js.map +1 -1
  124. package/dist/server/modules/projects/helpers/profile-mapping.helpers.d.ts +102 -0
  125. package/dist/server/modules/projects/helpers/profile-mapping.helpers.js +369 -0
  126. package/dist/server/modules/projects/helpers/profile-mapping.helpers.js.map +1 -0
  127. package/dist/server/modules/projects/helpers/project-export.d.ts +141 -0
  128. package/dist/server/modules/projects/helpers/project-export.js +314 -0
  129. package/dist/server/modules/projects/helpers/project-export.js.map +1 -0
  130. package/dist/server/modules/projects/helpers/project-import.d.ts +132 -0
  131. package/dist/server/modules/projects/helpers/project-import.js +600 -0
  132. package/dist/server/modules/projects/helpers/project-import.js.map +1 -0
  133. package/dist/server/modules/projects/helpers/project-presets.helpers.d.ts +26 -0
  134. package/dist/server/modules/projects/helpers/project-presets.helpers.js +110 -0
  135. package/dist/server/modules/projects/helpers/project-presets.helpers.js.map +1 -0
  136. package/dist/server/modules/projects/helpers/project-runtime.helpers.d.ts +69 -0
  137. package/dist/server/modules/projects/helpers/project-runtime.helpers.js +201 -0
  138. package/dist/server/modules/projects/helpers/project-runtime.helpers.js.map +1 -0
  139. package/dist/server/modules/projects/helpers/project-template-manifest.helpers.d.ts +16 -0
  140. package/dist/server/modules/projects/helpers/project-template-manifest.helpers.js +107 -0
  141. package/dist/server/modules/projects/helpers/project-template-manifest.helpers.js.map +1 -0
  142. package/dist/server/modules/projects/helpers/template-file.helpers.d.ts +9 -0
  143. package/dist/server/modules/projects/helpers/template-file.helpers.js +92 -0
  144. package/dist/server/modules/projects/helpers/template-file.helpers.js.map +1 -0
  145. package/dist/server/modules/projects/helpers/template-loader.d.ts +85 -0
  146. package/dist/server/modules/projects/helpers/template-loader.js +406 -0
  147. package/dist/server/modules/projects/helpers/template-loader.js.map +1 -0
  148. package/dist/server/modules/projects/services/main-project-bootstrap.service.js +4 -0
  149. package/dist/server/modules/projects/services/main-project-bootstrap.service.js.map +1 -1
  150. package/dist/server/modules/projects/services/projects.service.d.ts +29 -54
  151. package/dist/server/modules/projects/services/projects.service.js +46 -1704
  152. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  153. package/dist/server/modules/prompts/controllers/prompts.controller.d.ts +2 -2
  154. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
  155. package/dist/server/modules/providers/adapters/index.d.ts +1 -0
  156. package/dist/server/modules/providers/adapters/index.js +1 -0
  157. package/dist/server/modules/providers/adapters/index.js.map +1 -1
  158. package/dist/server/modules/providers/adapters/opencode.adapter.d.ts +16 -0
  159. package/dist/server/modules/providers/adapters/opencode.adapter.js +64 -0
  160. package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -0
  161. package/dist/server/modules/providers/adapters/provider-adapter.factory.d.ts +2 -1
  162. package/dist/server/modules/providers/adapters/provider-adapter.factory.js +5 -2
  163. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
  164. package/dist/server/modules/providers/adapters/provider-adapter.interface.d.ts +1 -0
  165. package/dist/server/modules/providers/adapters/provider-adapters.module.js +2 -1
  166. package/dist/server/modules/providers/adapters/provider-adapters.module.js.map +1 -1
  167. package/dist/server/modules/providers/controllers/provider-models.controller.d.ts +22 -0
  168. package/dist/server/modules/providers/controllers/provider-models.controller.js +173 -0
  169. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -0
  170. package/dist/server/modules/providers/providers.module.js +2 -1
  171. package/dist/server/modules/providers/providers.module.js.map +1 -1
  172. package/dist/server/modules/records/controllers/records.controller.d.ts +2 -2
  173. package/dist/server/modules/records/controllers/records.controller.js.map +1 -1
  174. package/dist/server/modules/registry/services/template-upgrade.service.js +1 -9
  175. package/dist/server/modules/registry/services/template-upgrade.service.js.map +1 -1
  176. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +21 -0
  177. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +207 -0
  178. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -0
  179. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +22 -0
  180. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +214 -0
  181. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -0
  182. package/dist/server/modules/session-reader/adapters/gemini-session-reader.adapter.d.ts +23 -0
  183. package/dist/server/modules/session-reader/adapters/gemini-session-reader.adapter.js +224 -0
  184. package/dist/server/modules/session-reader/adapters/gemini-session-reader.adapter.js.map +1 -0
  185. package/dist/server/modules/session-reader/adapters/session-reader-adapter.factory.d.ts +9 -0
  186. package/dist/server/modules/session-reader/adapters/session-reader-adapter.factory.js +40 -0
  187. package/dist/server/modules/session-reader/adapters/session-reader-adapter.factory.js.map +1 -0
  188. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +37 -0
  189. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js +3 -0
  190. package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -0
  191. package/dist/server/modules/session-reader/adapters/utils/estimate-content-tokens.d.ts +11 -0
  192. package/dist/server/modules/session-reader/adapters/utils/estimate-content-tokens.js +77 -0
  193. package/dist/server/modules/session-reader/adapters/utils/estimate-content-tokens.js.map +1 -0
  194. package/dist/server/modules/session-reader/adapters/utils/file-search.util.d.ts +1 -0
  195. package/dist/server/modules/session-reader/adapters/utils/file-search.util.js +22 -0
  196. package/dist/server/modules/session-reader/adapters/utils/file-search.util.js.map +1 -0
  197. package/dist/server/modules/session-reader/builders/chunk-builder.d.ts +5 -0
  198. package/dist/server/modules/session-reader/builders/chunk-builder.js +131 -0
  199. package/dist/server/modules/session-reader/builders/chunk-builder.js.map +1 -0
  200. package/dist/server/modules/session-reader/builders/semantic-step-extractor.d.ts +3 -0
  201. package/dist/server/modules/session-reader/builders/semantic-step-extractor.js +93 -0
  202. package/dist/server/modules/session-reader/builders/semantic-step-extractor.js.map +1 -0
  203. package/dist/server/modules/session-reader/builders/turn-builder.d.ts +3 -0
  204. package/dist/server/modules/session-reader/builders/turn-builder.js +102 -0
  205. package/dist/server/modules/session-reader/builders/turn-builder.js.map +1 -0
  206. package/dist/server/modules/session-reader/controllers/session-reader.controller.d.ts +430 -0
  207. package/dist/server/modules/session-reader/controllers/session-reader.controller.js +252 -0
  208. package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -0
  209. package/dist/server/modules/session-reader/data/pricing.json +5001 -0
  210. package/dist/server/modules/session-reader/dtos/index.d.ts +2 -0
  211. package/dist/server/modules/session-reader/dtos/index.js +10 -0
  212. package/dist/server/modules/session-reader/dtos/index.js.map +1 -0
  213. package/dist/server/modules/session-reader/dtos/unified-chunk.types.d.ts +92 -0
  214. package/dist/server/modules/session-reader/dtos/unified-chunk.types.js +19 -0
  215. package/dist/server/modules/session-reader/dtos/unified-chunk.types.js.map +1 -0
  216. package/dist/server/modules/session-reader/dtos/unified-session.types.d.ts +118 -0
  217. package/dist/server/modules/session-reader/dtos/unified-session.types.js +23 -0
  218. package/dist/server/modules/session-reader/dtos/unified-session.types.js.map +1 -0
  219. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +15 -0
  220. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +363 -0
  221. package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -0
  222. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.d.ts +16 -0
  223. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +622 -0
  224. package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js.map +1 -0
  225. package/dist/server/modules/session-reader/parsers/gemini-json.parser.d.ts +15 -0
  226. package/dist/server/modules/session-reader/parsers/gemini-json.parser.js +380 -0
  227. package/dist/server/modules/session-reader/parsers/gemini-json.parser.js.map +1 -0
  228. package/dist/server/modules/session-reader/services/pricing.interface.d.ts +9 -0
  229. package/dist/server/modules/session-reader/services/pricing.interface.js +24 -0
  230. package/dist/server/modules/session-reader/services/pricing.interface.js.map +1 -0
  231. package/dist/server/modules/session-reader/services/pricing.service.d.ts +21 -0
  232. package/dist/server/modules/session-reader/services/pricing.service.js +106 -0
  233. package/dist/server/modules/session-reader/services/pricing.service.js.map +1 -0
  234. package/dist/server/modules/session-reader/services/session-cache.service.d.ts +24 -0
  235. package/dist/server/modules/session-reader/services/session-cache.service.js +203 -0
  236. package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -0
  237. package/dist/server/modules/session-reader/services/session-reader.service.d.ts +56 -0
  238. package/dist/server/modules/session-reader/services/session-reader.service.js +305 -0
  239. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -0
  240. package/dist/server/modules/session-reader/services/subagent-locator.service.d.ts +10 -0
  241. package/dist/server/modules/session-reader/services/subagent-locator.service.js +102 -0
  242. package/dist/server/modules/session-reader/services/subagent-locator.service.js.map +1 -0
  243. package/dist/server/modules/session-reader/services/subagent-resolver.service.d.ts +22 -0
  244. package/dist/server/modules/session-reader/services/subagent-resolver.service.js +211 -0
  245. package/dist/server/modules/session-reader/services/subagent-resolver.service.js.map +1 -0
  246. package/dist/server/modules/session-reader/services/transcript-path-validator.service.d.ts +7 -0
  247. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js +150 -0
  248. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js.map +1 -0
  249. package/dist/server/modules/session-reader/services/transcript-persistence.listener.d.ts +30 -0
  250. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +336 -0
  251. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -0
  252. package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +28 -0
  253. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +325 -0
  254. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -0
  255. package/dist/server/modules/session-reader/session-reader.module.d.ts +13 -0
  256. package/dist/server/modules/session-reader/session-reader.module.js +82 -0
  257. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -0
  258. package/dist/server/modules/sessions/dtos/sessions.dto.d.ts +2 -0
  259. package/dist/server/modules/sessions/dtos/sessions.dto.js.map +1 -1
  260. package/dist/server/modules/sessions/services/sessions-message-pool.service.d.ts +2 -2
  261. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  262. package/dist/server/modules/sessions/services/sessions.service.js +19 -4
  263. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  264. package/dist/server/modules/sessions/utils/profile-options.d.ts +1 -0
  265. package/dist/server/modules/sessions/utils/profile-options.js +18 -0
  266. package/dist/server/modules/sessions/utils/profile-options.js.map +1 -1
  267. package/dist/server/modules/settings/controllers/settings.controller.d.ts +2 -2
  268. package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -1
  269. package/dist/server/modules/settings/dtos/settings.dto.d.ts +14 -2
  270. package/dist/server/modules/settings/dtos/settings.dto.js +1 -0
  271. package/dist/server/modules/settings/dtos/settings.dto.js.map +1 -1
  272. package/dist/server/modules/skills/services/skill-source-registry.service.d.ts +2 -2
  273. package/dist/server/modules/skills/services/skill-source-registry.service.js.map +1 -1
  274. package/dist/server/modules/statuses/controllers/statuses.controller.d.ts +2 -2
  275. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
  276. package/dist/server/modules/storage/db/schema.d.ts +176 -0
  277. package/dist/server/modules/storage/db/schema.js +17 -1
  278. package/dist/server/modules/storage/db/schema.js.map +1 -1
  279. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +53 -9
  280. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  281. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.d.ts +39 -0
  282. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js +286 -0
  283. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js.map +1 -0
  284. package/dist/server/modules/storage/local/delegates/agent.delegate.d.ts +21 -0
  285. package/dist/server/modules/storage/local/delegates/agent.delegate.js +210 -0
  286. package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -0
  287. package/dist/server/modules/storage/local/delegates/base-storage.delegate.d.ts +12 -0
  288. package/dist/server/modules/storage/local/delegates/base-storage.delegate.js +19 -0
  289. package/dist/server/modules/storage/local/delegates/base-storage.delegate.js.map +1 -0
  290. package/dist/server/modules/storage/local/delegates/document.delegate.d.ts +20 -0
  291. package/dist/server/modules/storage/local/delegates/document.delegate.js +267 -0
  292. package/dist/server/modules/storage/local/delegates/document.delegate.js.map +1 -0
  293. package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +38 -0
  294. package/dist/server/modules/storage/local/delegates/epic.delegate.js +686 -0
  295. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -0
  296. package/dist/server/modules/storage/local/delegates/guest.delegate.d.ts +14 -0
  297. package/dist/server/modules/storage/local/delegates/guest.delegate.js +172 -0
  298. package/dist/server/modules/storage/local/delegates/guest.delegate.js.map +1 -0
  299. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.d.ts +17 -0
  300. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js +249 -0
  301. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js.map +1 -0
  302. package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +16 -0
  303. package/dist/server/modules/storage/local/delegates/project.delegate.js +630 -0
  304. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -0
  305. package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +17 -0
  306. package/dist/server/modules/storage/local/delegates/prompt.delegate.js +318 -0
  307. package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -0
  308. package/dist/server/modules/storage/local/delegates/provider-model.delegate.d.ts +15 -0
  309. package/dist/server/modules/storage/local/delegates/provider-model.delegate.js +210 -0
  310. package/dist/server/modules/storage/local/delegates/provider-model.delegate.js.map +1 -0
  311. package/dist/server/modules/storage/local/delegates/provider.delegate.d.ts +18 -0
  312. package/dist/server/modules/storage/local/delegates/provider.delegate.js +151 -0
  313. package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -0
  314. package/dist/server/modules/storage/local/delegates/record.delegate.d.ts +16 -0
  315. package/dist/server/modules/storage/local/delegates/record.delegate.js +190 -0
  316. package/dist/server/modules/storage/local/delegates/record.delegate.js.map +1 -0
  317. package/dist/server/modules/storage/local/delegates/review.delegate.d.ts +25 -0
  318. package/dist/server/modules/storage/local/delegates/review.delegate.js +426 -0
  319. package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -0
  320. package/dist/server/modules/storage/local/delegates/skill-source.delegate.d.ts +28 -0
  321. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +347 -0
  322. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -0
  323. package/dist/server/modules/storage/local/delegates/status.delegate.d.ts +12 -0
  324. package/dist/server/modules/storage/local/delegates/status.delegate.js +130 -0
  325. package/dist/server/modules/storage/local/delegates/status.delegate.js.map +1 -0
  326. package/dist/server/modules/storage/local/delegates/subscriber.delegate.d.ts +11 -0
  327. package/dist/server/modules/storage/local/delegates/subscriber.delegate.js +144 -0
  328. package/dist/server/modules/storage/local/delegates/subscriber.delegate.js.map +1 -0
  329. package/dist/server/modules/storage/local/delegates/tag.delegate.d.ts +11 -0
  330. package/dist/server/modules/storage/local/delegates/tag.delegate.js +102 -0
  331. package/dist/server/modules/storage/local/delegates/tag.delegate.js.map +1 -0
  332. package/dist/server/modules/storage/local/delegates/watcher.delegate.d.ts +12 -0
  333. package/dist/server/modules/storage/local/delegates/watcher.delegate.js +183 -0
  334. package/dist/server/modules/storage/local/delegates/watcher.delegate.js.map +1 -0
  335. package/dist/server/modules/storage/local/helpers/storage-helpers.d.ts +32 -0
  336. package/dist/server/modules/storage/local/helpers/storage-helpers.js +276 -0
  337. package/dist/server/modules/storage/local/helpers/storage-helpers.js.map +1 -0
  338. package/dist/server/modules/storage/local/local-storage.service.d.ts +30 -22
  339. package/dist/server/modules/storage/local/local-storage.service.js +227 -3627
  340. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  341. package/dist/server/modules/storage/models/domain.models.d.ts +14 -1
  342. package/dist/server/modules/subscribers/services/subscribers.service.d.ts +2 -2
  343. package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -1
  344. package/dist/server/modules/ui/ui.controller.d.ts +2 -2
  345. package/dist/server/modules/ui/ui.controller.js +9 -3
  346. package/dist/server/modules/ui/ui.controller.js.map +1 -1
  347. package/dist/server/modules/watchers/services/watchers.service.d.ts +2 -2
  348. package/dist/server/templates/3-agents-dev.json +209 -191
  349. package/dist/server/templates/5-agents-dev.json +243 -198
  350. package/dist/server/test-setup.js +14 -0
  351. package/dist/server/test-setup.js.map +1 -1
  352. package/dist/server/tsconfig.tsbuildinfo +1 -1
  353. package/dist/server/ui/assets/{ReviewDetailPage-CvHhaFJw.js → ReviewDetailPage-DJyH8bKk.js} +1 -1
  354. package/dist/server/ui/assets/{ReviewsPage-DCDiMjwZ.js → ReviewsPage-DHvmyjjG.js} +1 -1
  355. package/dist/server/ui/assets/index-cHqKW6LQ.css +32 -0
  356. package/dist/server/ui/assets/index-f0KXZKs1.js +1011 -0
  357. package/dist/server/ui/assets/{useReviewSubscription-D_vmMkNu.js → useReviewSubscription-CUbCp0An.js} +32 -35
  358. package/dist/server/ui/index.html +2 -2
  359. package/dist/templates/3-agents-dev.json +209 -191
  360. package/dist/templates/5-agents-dev.json +243 -198
  361. package/package.json +18 -1
  362. package/dist/server/ui/assets/index-CWqSXDUZ.js +0 -977
  363. package/dist/server/ui/assets/index-DvRuLfpZ.css +0 -32
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../../../src/modules/mcp/services/mcp.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAmF;AACnF,kFAIoD;AACpD,mEAA+D;AAC/D,+EAA2E;AAC3E,yGAAmG;AACnG,+EAA2E;AAC3E,uEAAmE;AACnE,sEAAwF;AACxF,+EAA2E;AAC3E,yEAAqE;AACrE,4EAAwE;AACxE,yEAAqE;AASrE,2DAA8D;AAC9D,6DAAmE;AACnE,6CA6FyB;AACzB,mEAA+D;AAE/D,oEAAoF;AACpF,gFAIoD;AACpD,2CAAqD;AACrD,6BAAyC;AAEzC,gEAA8D;AAE9D,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,YAAY,CAAC,CAAC;AAG1C,SAAS,mBAAmB,CAC1B,GAAmB;IAEnB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;SAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;YAChB,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;YACpB,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;SAC/B,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAYD,SAAS,eAAe,CAAC,SAA6B;IACpD,IAAI,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IAChC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;AACxC,CAAC;AAGD,SAAS,YAAY,CAAC,MAAe;IACnC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACzD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,IAAI,WAAW,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAOM,IAAM,UAAU,GAAhB,MAAM,UAAU;IAIrB,YAC2B,OAAwC,EAC1B,WAA0C,EACtC,eAAkD,EAE7F,kBAAgE,EACrB,eAAkD,EACtD,WAA0C,EACzC,YAA4C,EACzC,eAAkD,EACpD,aAA8C,EAC9C,aAA8C,EAC7C,cAAgD;QAXhD,YAAO,GAAP,OAAO,CAAgB;QACT,gBAAW,GAAX,WAAW,CAAc;QACrB,oBAAe,GAAf,eAAe,CAAkB;QAE5E,uBAAkB,GAAlB,kBAAkB,CAA6B;QACJ,oBAAe,GAAf,eAAe,CAAkB;QACrC,gBAAW,GAAX,WAAW,CAAc;QACxB,iBAAY,GAAZ,YAAY,CAAe;QACxB,oBAAe,GAAf,eAAe,CAAkB;QACnC,kBAAa,GAAb,aAAa,CAAgB;QAC7B,kBAAa,GAAb,aAAa,CAAgB;QAC5B,mBAAc,GAAd,cAAc,CAAiB;QAY3E,6BAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;QAVpD,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QACnD,IAAI,CAAC,oBAAoB,GAAG,IAAI,4CAAoB,CAClD,IAAI,CAAC,OAAO,EACZ,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACtC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACjE,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAGO,KAAK,CAAC,wBAAwB,CACpC,SAAiB,EACjB,IAAY;QAEZ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;QAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,UAAU,IAAI,wBAAwB;oBAC/C,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;iBACxD;aACF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,0BAA0B,IAAI,yCAAyC;oBAChF,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;iBACpE;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IAKD,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,MAAe;QAEhD,MAAM,gBAAgB,GAAG,MAAM,IAAI,EAAE,CAAC;QAGtC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,EACpF,wBAAwB,CACzB,CAAC;YAEF,QAAQ,cAAc,EAAE,CAAC;gBACvB,KAAK,wBAAwB;oBAC3B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACnD,KAAK,wBAAwB;oBAC3B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACnD,KAAK,qBAAqB;oBACxB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAChD,KAAK,uBAAuB;oBAC1B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAClD,KAAK,mBAAmB;oBACtB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,KAAK,sBAAsB;oBACzB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACjD,KAAK,yBAAyB;oBAC5B,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBACpD,KAAK,uBAAuB;oBAC1B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAClD,KAAK,0BAA0B;oBAC7B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBACrD,KAAK,0BAA0B;oBAC7B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBACrD,KAAK,uBAAuB;oBAC1B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAClD,KAAK,qBAAqB;oBACxB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAChD,KAAK,sBAAsB;oBACzB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACjD,KAAK,oBAAoB;oBACvB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,KAAK,sBAAsB;oBACzB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACjD,KAAK,4BAA4B;oBAC/B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBACrD,KAAK,wBAAwB;oBAC3B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACnD,KAAK,qBAAqB;oBACxB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAChD,KAAK,oCAAoC;oBACvC,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gBAC7D,KAAK,sBAAsB;oBACzB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACjD,KAAK,yBAAyB;oBAC5B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAClD,KAAK,2BAA2B;oBAC9B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBACrD,KAAK,sBAAsB;oBACzB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACjD,KAAK,2BAA2B;oBAE9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;gBACzD,KAAK,uBAAuB;oBAC1B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAClD,KAAK,mBAAmB;oBACtB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,KAAK,4BAA4B;oBAC/B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBACtD,KAAK,4BAA4B;oBAC/B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBACtD,KAAK,yBAAyB;oBAC5B,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBACpD,KAAK,0BAA0B;oBAC7B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBACrD,KAAK,wBAAwB;oBAC3B,0CAAwB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBACjD,OAAO,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnC,KAAK,yBAAyB;oBAC5B,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBAEpD,KAAK,uBAAuB;oBAC1B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAClD,KAAK,qBAAqB;oBACxB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAChD,KAAK,8BAA8B;oBACjC,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;gBACxD,KAAK,wBAAwB;oBAC3B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACnD,KAAK,0BAA0B;oBAC7B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBACrD,KAAK,2BAA2B;oBAC9B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBACtD;oBACE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,kBAAkB,CAAC,CAAC;oBAC1D,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,cAAc;4BACpB,OAAO,EAAE,iBAAiB,IAAI,EAAE;yBACjC;qBACF,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAC;YACtD,IAAI,KAAK,YAAY,cAAQ,EAAE,CAAC;gBAE9B,MAAM,WAAW,GAAa,EAAE,CAAC;gBACjC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;wBAEvC,MAAM,WAAW,GAAI,KAAuC,CAAC,IAAI,CAAC;wBAClE,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;4BAC9B,MAAM,UAAU,GAAG,IAAA,oCAAiB,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;4BAC1D,IAAI,UAAU,EAAE,CAAC;gCACf,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BAC/B,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,0CAA0C;wBACnD,IAAI,EAAE;4BACJ,MAAM,EAAE,KAAK,CAAC,MAAM;4BACpB,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;yBAC/C;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAClE;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,qBAAqB,CAAC,GAAW;QACrC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;YAEtD,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,qBAAqB,GAAG,EAAE;iBACpC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,6BAA6B,CAAC,CAAC;YAC5D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAClE;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,YAAY,CAAC,MAAe;QACxC,MAAM,SAAS,GAAG,kCAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC7C,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE;SAC3B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAyB;YACrC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,YAAY,CAAC,MAAe;QACxC,MAAM,SAAS,GAAG,kCAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5C,SAAS,CAAC,EAAE,EACZ;YACE,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,IAAI,EAAE,SAAS,CAAC,IAAI;SACrB,EACD,SAAS,CAAC,OAAO,CAClB,CAAC;QAEF,MAAM,QAAQ,GAAyB;YACrC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,SAAS,CAAC,MAAe;QACrC,MAAM,SAAS,GAAG,+BAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAsB;YAClC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,WAAW,CAAC,MAAe;QACvC,MAAM,SAAS,GAAG,iCAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE;YAC9D,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB,CAAC,CAAC;QAGH,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QAGD,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/B,OAAO,SAAS,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAwB;YACpC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;aACvB,CAAC,CAAC;YACH,KAAK,EAAE,QAAQ,CAAC,MAAM;SACvB,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,OAAO,CAAC,MAAe;QACnC,MAAM,SAAS,GAAG,6BAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAG1D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAC7C,SAAS,CAAC,EAAE,EACZ,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB,MAAM,CAAC,OAAO,CACf,CAAC;QAEF,MAAM,QAAQ,GAAoB;YAChC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,UAAU,CAAC,MAAe;QACtC,MAAM,SAAS,GAAG,gCAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAG1D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAC7C,SAAS,CAAC,EAAE,EACZ,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB,MAAM,CAAC,OAAO,CACf,CAAC;QAEF,MAAM,QAAQ,GAAuB;YACnC,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,aAAa,CAAC,MAAe;QACzC,MAAM,SAAS,GAAG,mCAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAG1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CACV,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAC1E,6BAA6B,CAC9B,CAAC;QAEF,MAAM,OAAO,GAMT;YACF,SAAS,EAAE,OAAO,CAAC,EAAE;SACtB,CAAC;QAEF,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAClC,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAA0B;YACtC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAClE,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,WAAW,CAAC,MAAe;QACvC,MAAM,SAAS,GAAG,iCAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,IAAI,MAAM,CAAC;QAEtD,IAAI,QAAkB,CAAC;QACvB,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAU,CAAC;YAC3E,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,QAAQ,GAAwB;YACpC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAC1C,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,IAAI,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;QAC/C,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC5D,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YACjC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAExB,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC7C,QAAQ,EACR,KAAK,EACL,SAAS,CAAC,QAAQ,IAAI,CAAC,EACvB,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,wBAAwB,CACpD,CAAC;gBACF,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,cAAc,CAAC,MAAe;QAC1C,MAAM,SAAS,GAAG,oCAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAG3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CACV,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAC1E,mDAAmD,CACpD,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YACjD,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,IAAI,EAAE,SAAS,CAAC,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAA2B;YACvC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;SAC3C,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,cAAc,CAAC,MAAe;QAC1C,MAAM,SAAS,GAAG,oCAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE;YAC/D,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAA2B;YACvC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;SAC3C,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,WAAW,CAAC,MAAe;QACvC,MAAM,SAAS,GAAG,iCAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC5C,SAAS,EAAE,SAAS,IAAI,IAAI;YAC5B,CAAC,EAAE,SAAS,CAAC,CAAC;SACf,CAAC,CAAC;QAEH,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACzB,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAC3B,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9F,CAAC;QAED,MAAM,QAAQ,GAAwB;YACpC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC7D,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,SAAS,CAAC,MAAe;QACrC,MAAM,SAAS,GAAG,+BAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,MAA0B,CAAC;QAE/B,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YAE1B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,oDAAoD;qBAC9D;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,OAAO,GAAG,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;YAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,yCAAyC,EAAE;iBACzF,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;YAE7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;YAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBAClC,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC;gBAC5C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,SAAS,CAAC,EAAE;wBACnB,CAAC,CAAC,mBAAmB,SAAS,CAAC,EAAE,aAAa;wBAC9C,CAAC,CAAC,WAAW,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY;iBACtG;aACF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAsB;YAClC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SACrC,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,UAAU,CAAC,MAAe;QACtC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,sDAAsD;iBAChE;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,gCAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,MAAM,QAAQ,GAAuB;YACnC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAClE,KAAK,EAAE,aAAa,CAAC,MAAM;SAC5B,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,QAAQ,CAAC,MAAe;QACpC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,wDAAwD;iBAClE;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,8BAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGrD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,IAAsB,CAAC;QAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3D,IAAI,KAAY,CAAC;QACjB,IAAI,CAAC;YAEH,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,UAAU,SAAS,CAAC,IAAI,kBAAkB;qBACpD;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,YAAY,6BAAe,EAAE,CAAC;gBACrC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,IAAI,EAAE,KAAK,CAAC,OAAO;qBACpB;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAC/B,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,IAAI,EACV,OAAO,CAAC,EAAE,EACV,KAAK,EAAE,EAAE,IAAI,IAAI,EACjB,KAAK,EAAE,IAAI,IAAI,IAAI,CACpB,CAAC;QAEF,MAAM,QAAQ,GAAqB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAOO,KAAK,CAAC,UAAU,CAAC,MAAe;QACtC,MAAM,SAAS,GAAG,gCAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC;QACrC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;QACrC,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAInD,MAAM,kBAAkB,GAAG,IAAI,CAAC;QAChC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;QAGH,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtD,IAAI,CAAC,eAAe;gBAClB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAA+B,CAAC;YAE3D,IAAI,CAAC,WAAW;gBACd,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE;gBACxC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAAU,CAAC;SACvC,CAAC,CAAC;QAGH,MAAM,UAAU,GAAmB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpE,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,OAAgB;YACtB,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,KAAK;SACrD,CAAC,CAAC,CAAC;QAGJ,MAAM,UAAU,GAAmB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxD,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,OAAgB;YACtB,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;SAC9C,CAAC,CAAC,CAAC;QAGJ,IAAI,QAAQ,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1D,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,WAAW,KAAK,CAAC;gBAAE,OAAO,WAAW,CAAC;YAE1C,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAGH,IAAI,eAAe,EAAE,CAAC;YACpB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1F,CAAC;QAGD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;QAG9B,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAuB;YACnC,MAAM,EAAE,cAAc;YACtB,KAAK;YACL,KAAK;YACL,MAAM;SACP,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,cAAc,CAAC,MAAe;QAC1C,MAAM,SAAS,GAAG,oCAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAG3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAEzF,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC;QAEhG,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,UAAU,SAAS,CAAC,IAAI,wBAAwB;oBACzD,IAAI,EAAE;wBACJ,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;qBAC5D;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,gBAAgB,CAAC;QACrB,IAAI,CAAC;YACH,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,UAAU,SAAS,CAAC,IAAI,wBAAwB;wBACzD,IAAI,EAAE;4BACJ,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;yBAC5D;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EACtD,4CAA4C,CAC7C,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACzC,MAAM,oBAAoB,GAAG,OAAO;YAClC,CAAC,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;gBAChF,QAAQ,EAAE,IAAI,CAAC,wBAAwB;aACxC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE,CAAC;QAErE,CAAC;QAED,MAAM,QAAQ,GAA2B;YACvC,KAAK,EAAE;gBACL,EAAE,EAAE,gBAAgB,CAAC,EAAE;gBACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,SAAS,EAAE,gBAAgB,CAAC,SAAS;gBACrC,WAAW,EAAE,gBAAgB,CAAC,WAAW;gBACzC,OAAO,EAAE,OAAO;oBACd,CAAC,CAAC;wBACE,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;wBAC1C,oBAAoB,EAAE,oBAAoB,IAAI,SAAS;qBACxD;oBACH,CAAC,CAAC,SAAS;aACd;SACF,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAe;QACxC,MAAM,SAAS,GAAG,kCAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE;YACzD,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,QAAQ,GAAyB;YACrC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACtE,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAe;QACrC,MAAM,SAAS,GAAG,+BAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,QAA4B,CAAC;QACjC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACrF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,WAAW,SAAS,CAAC,UAAU,+BAA+B,OAAO,CAAC,EAAE,GAAG;qBACrF;iBACF,CAAC;YACJ,CAAC;YACD,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC;QACrC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAGlC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE;YAC7D,QAAQ;YACR,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC5C,KAAK;YACL,MAAM;YACN,gBAAgB,EAAE,IAAI;YACtB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAGH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE;YACjE,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,KAAK;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAG9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,OAAO;gBAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACnD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAGD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE;YACnF,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE,QAAQ;YACd,cAAc,EAAE,EAAE;SACnB,CAAC,CAAC;QAGH,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACzD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC;gBACN,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;YAGD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAsB;YAClC,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,MAAe;QAClD,MAAM,SAAS,GAAG,4CAAkC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGnE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC;QACrC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE;gBAC9D,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,KAAK;gBACL,MAAM;gBACN,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;YAGH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE;gBACjE,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,KAAK;gBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAG9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,OAAO;oBAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;YAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;gBACzD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,CAAC,EAAE,CAAC;oBACN,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAmC;gBAC/C,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,UAAU,SAAS,CAAC,SAAS,+BAA+B,OAAO,CAAC,EAAE,GAAG;qBACnF;iBACF,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,YAAY,6BAAe,EAAE,CAAC;gBACrC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,IAAI,EAAE,KAAK,CAAC,OAAO;qBACpB;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAe;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,gFAAgF;iBAC1F;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,gCAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAGD,IAAI,QAA4B,CAAC;QACjC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACrF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE;oBACjE,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,CAAC;iBACV,CAAC,CAAC;gBACH,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,WAAW,SAAS,CAAC,UAAU,8BAA8B;wBACtE,IAAI,EAAE;4BACJ,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;yBAClF;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,UAAU,GAAG,GAAG,CAAC,IAAsB,CAAC;YAC9C,MAAM,KAAK,GACT,UAAU,CAAC,IAAI,KAAK,OAAO;gBACzB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,EAAG,UAAkC,CAAC,KAAM,CAAC,EAAE,EAAE;gBAC/E,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;oBAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,EAAG,UAAkC,CAAC,KAAM,CAAC,EAAE,EAAE;oBAC/E,CAAC,CAAC,IAAI,CAAC;YAEb,MAAM,OAAO,GAAyB,EAAE,KAAK,EAAE,CAAC;YAEhD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CACvD,OAAO,CAAC,EAAE,EACV;gBACE,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,IAAI;gBAC1C,QAAQ;gBACR,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE;gBAC1B,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,IAAI;gBACpC,cAAc,EAAE,SAAS,CAAC,cAAc,IAAI,IAAI;aACjD,EACD,OAAO,CACR,CAAC;YAGF,IAAI,aAA8C,CAAC;YACnD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAuB;gBACnC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC;aAC/C,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,UAAU,SAAS,CAAC,SAAS,+BAA+B,OAAO,CAAC,EAAE,GAAG;qBACnF;iBACF,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,YAAY,6BAAe,EAAE,CAAC;gBACrC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,IAAI,EAAE,KAAK,CAAC,OAAO;qBACpB;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAe;QACvC,MAAM,SAAS,GAAG,iCAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,IAAU,CAAC;QACf,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,QAAQ,SAAS,CAAC,EAAE,iBAAiB;qBAC/C;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;YAClC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,QAAQ,SAAS,CAAC,EAAE,2CAA2C;iBACzE;aACF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE;YAClE,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAG3F,IAAI,UAA4B,CAAC;QACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;oBACpC,UAAU,GAAG,MAAM,CAAC;gBACtB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,qBAAqB,CAAC,CAAC;gBACnF,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAGD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE;YACjE,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,KAAK;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAG9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,IAAI,IAAI,CAAC,OAAO;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,OAAO;gBAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,UAAU,EAAE,OAAO;YAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE1D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACnD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAGD,IAAI,aAA4C,CAAC;QACjD,IAAI,UAAU,EAAE,CAAC;YACf,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAChE,CAAC;QAGD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,kBAAkB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAwB;YACpC,IAAI,EAAE,WAAW;YAEjB,QAAQ,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC;iBAChC,OAAO,EAAE;iBACT,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACvF,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC;QAClC,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAe;QAC1C,MAAM,SAAS,GAAG,oCAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAG3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,IAAsB,CAAC;QAG9C,MAAM,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,mEAAmE;iBAC7E;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,IAAU,CAAC;QACf,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,QAAQ,SAAS,CAAC,MAAM,iBAAiB;qBACnD;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;YAClC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,QAAQ,SAAS,CAAC,MAAM,2CAA2C;iBAC7E;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACnD,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,UAAU,EAAE,WAAW,CAAC,IAAI;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAA2B;YACvC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;SACtC,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAe;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,8EAA8E;iBACxF;aACF,CAAC;QACJ,CAAC;QAGD,IAAI,kBAAkB,GAAG,MAAM,CAAC;QAChC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;YACnE,MAAM,CAAC,GAAG,MAAiC,CAAC;YAC5C,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACH,kBAAkB,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,gCAAsB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAGnE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAGD,IAAI,IAAU,CAAC;QACf,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,QAAQ,SAAS,CAAC,EAAE,iBAAiB;qBAC/C;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;YAClC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,QAAQ,SAAS,CAAC,EAAE,2CAA2C;iBACzE;aACF,CAAC;QACJ,CAAC;QAGD,MAAM,UAAU,GAQZ,EAAE,CAAC;QAEP,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAClC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACrC,CAAC;QAED,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACxC,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACjD,CAAC;QAED,IAAI,SAAS,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAC3C,UAAU,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;QACvD,CAAC;QAGD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACrF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE;oBACjE,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,CAAC;iBACV,CAAC,CAAC;gBACH,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,WAAW,SAAS,CAAC,UAAU,8BAA8B;wBACtE,IAAI,EAAE;4BACJ,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;yBAClF;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QAClC,CAAC;QAGD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAClE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC5B,CAAC;iBAAM,IAAI,WAAW,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAC7C,OAAO,CAAC,EAAE,EACV,SAAS,CAAC,UAAU,CAAC,SAAS,CAC/B,CAAC;oBACF,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;wBACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE;4BAC3D,KAAK,EAAE,IAAI;4BACX,MAAM,EAAE,CAAC;yBACV,CAAC,CAAC;wBACH,OAAO;4BACL,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE;gCACL,IAAI,EAAE,iBAAiB;gCACvB,OAAO,EAAE,UAAU,SAAS,CAAC,UAAU,CAAC,SAAS,8BAA8B;gCAC/E,IAAI,EAAE;oCACJ,eAAe,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;iCAC3E;6BACF;yBACF,CAAC;oBACJ,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7B,CAAC;aAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAE5C,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,EAAE,CAAC;gBACxC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,mCAAmC;qBAC7C;iBACF,CAAC;YACJ,CAAC;YAED,IAAI,UAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;oBACnC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,gBAAgB;4BACtB,OAAO,EAAE,eAAe,SAAS,CAAC,QAAQ,iBAAiB;yBAC5D;qBACF,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,UAAU,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;gBACxC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,8CAA8C;qBACxD;iBACF,CAAC;YACJ,CAAC;YAGD,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,oBAAoB;wBAC1B,OAAO,EACL,yFAAyF;qBAC5F;iBACF,CAAC;YACJ,CAAC;YAED,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAC3C,CAAC;QAGD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;QACtC,CAAC;aAAM,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEvC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;gBACzB,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACjE,CAAC;YAED,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;QAGD,IAAI,WAAiB,CAAC;QACtB,IAAI,CAAC;YAEH,MAAM,UAAU,GAAG,GAAG,CAAC,IAAsB,CAAC;YAC9C,MAAM,KAAK,GACT,UAAU,CAAC,IAAI,KAAK,OAAO;gBACzB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,EAAG,UAAkC,CAAC,KAAM,CAAC,EAAE,EAAE;gBAC/E,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;oBAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,EAAG,UAAkC,CAAC,KAAM,CAAC,EAAE,EAAE;oBAC/E,CAAC,CAAC,IAAI,CAAC;YAEb,MAAM,OAAO,GAAyB,EAAE,KAAK,EAAE,CAAC;YAEhD,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAC9C,SAAS,CAAC,EAAE,EACZ,UAAU,EACV,SAAS,CAAC,OAAO,EACjB,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;gBAE1F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC7D,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,2CAA2C,SAAS,CAAC,OAAO,4BAA4B,WAAW,CAAC,OAAO,GAAG;wBACvH,IAAI,EAAE;4BACJ,cAAc,EAAE,WAAW,CAAC,OAAO;yBACpC;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAGD,IAAI,aAA8C,CAAC;QACnD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC/D,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAuB;YACnC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC;SACtD,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAMO,KAAK,CAAC,sBAAsB,CAClC,SAAiB,EACjB,IAAY;QAGZ,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,CAAC,CAAC,KAAK,YAAY,2BAAa,CAAC,EAAE,CAAC;gBACtC,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAGD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACjE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;aACnC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAKO,KAAK,CAAC,0BAA0B,CAAC,SAAiB;QACxD,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;SACnC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC;QAE1D,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;IACxC,CAAC;IAMO,KAAK,CAAC,WAAW,CAAC,MAAe;QACvC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACL,qFAAqF;iBACxF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,iCAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAGxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,IAAsB,CAAC;QAC9C,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAGnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,oEAAoE;iBAC9E;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAID,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,0BAA0B;wBAChC,OAAO,EACL,qFAAqF;qBACxF;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,SAAS,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,2BAA2B;wBACjC,OAAO,EAAE,8CAA8C;qBACxD;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;YAG3D,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;YAC/B,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;YACnC,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,IAAI,QAAQ,CAAC;YAGtD,MAAM,kBAAkB,GAAwB,EAAE,CAAC;YACnD,IAAI,SAAS,CAAC,mBAAmB,IAAI,SAAS,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9E,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,mBAAmB,EAAE,CAAC;oBACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBACtE,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACzE,OAAO;4BACL,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE;gCACL,IAAI,EAAE,qBAAqB;gCAC3B,OAAO,EAAE,cAAc,IAAI,2BAA2B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;6BAC5F;yBACF,CAAC;oBACJ,CAAC;oBAED,IAAI,SAAS,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;wBAC9B,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CACzD,CAAC;YAGF,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,QAAQ,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;gBAChE,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBACtD,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,qBAAqB;4BAC3B,OAAO,EACL,6FAA6F;yBAChG;qBACF,CAAC;gBACJ,CAAC;gBAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,qBAAqB;4BAC3B,OAAO,EAAE,4DAA4D;yBACtE;qBACF,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAKP,EAAE,CAAC;gBACR,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,8BAA8B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAGnF,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe;oBACzC,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;oBACjD,CAAC,CAAC,EAAE,CAAC;gBAEP,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;oBACzC,MAAM,aAAa,GAAG,iCAAiC,UAAU,KAAK,UAAU,uDAAuD,SAAS,CAAC,OAAO,IAAI,CAAC;oBAE7J,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAE/B,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrE,IAAI,WAAW,GAAG,KAAK,CAAC;wBAExB,IAAI,CAAC,OAAO,IAAI,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;4BAC3D,IAAI,CAAC;gCACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;oCACxD,SAAS,EAAE,OAAO,CAAC,EAAE;oCACrB,OAAO,EAAE,SAAS,CAAC,EAAE;oCACrB,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;iCAC1B,CAAC,CAAC;gCACH,OAAO,GAAG,QAAQ,CAAC;gCAEnB,cAAc,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;gCACrC,WAAW,GAAG,IAAI,CAAC;4BACrB,CAAC;4BAAC,MAAM,CAAC;4BAET,CAAC;wBACH,CAAC;wBAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE;4BACjE,MAAM,EAAE,kBAAkB;4BAC1B,UAAU,EAAE,CAAC,OAAO,CAAC;4BACrB,aAAa,EAAE,QAAQ;4BACvB,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,SAAS,EAAE,SAAS,CAAC,IAAI;yBAC1B,CAAC,CAAC;wBAEH,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,SAAS,CAAC,IAAI;4BACpB,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;yBAC5C,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBAGN,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW;4BAC/B,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,aAAc,CAAC;4BAC7D,CAAC,CAAC,KAAK,CAAC;wBAEV,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAEd,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,SAAS,CAAC,IAAI;gCACpB,IAAI,EAAE,OAAO;gCACb,MAAM,EAAE,QAAQ;gCAChB,KAAK,EAAE,mBAAmB;6BAC3B,CAAC,CAAC;wBACL,CAAC;6BAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;4BAE5B,IAAI,CAAC;gCACH,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,aAAc,EAAE,aAAa,CAAC,CAAC;gCAC/E,MAAM,CAAC,IAAI,CAAC;oCACV,IAAI,EAAE,SAAS,CAAC,IAAI;oCACpB,IAAI,EAAE,OAAO;oCACb,MAAM,EAAE,WAAW;iCACpB,CAAC,CAAC;4BACL,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,MAAM,CAAC,IAAI,CACT,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,EACxE,oCAAoC,CACrC,CAAC;gCACF,MAAM,CAAC,IAAI,CAAC;oCACV,IAAI,EAAE,SAAS,CAAC,IAAI;oCACpB,IAAI,EAAE,OAAO;oCACb,MAAM,EAAE,QAAQ;oCAChB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB;iCAClE,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;6BAAM,CAAC;4BAEN,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,SAAS,CAAC,IAAI;gCACpB,IAAI,EAAE,OAAO;gCACb,MAAM,EAAE,QAAQ;gCAChB,KAAK,EAAE,0BAA0B;6BAClC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,QAAQ,GAAwB;oBACpC,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,MAAM,CAAC,MAAM;oBAC1B,MAAM;oBACN,mBAAmB,EAAE,UAAU,CAAC,OAAO;iBACxC,CAAC;gBAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,CAAC;YAGD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EACL,qFAAqF;qBACxF;iBACF,CAAC;YACJ,CAAC;YAID,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;oBAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;wBACvD,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,OAAO,EAAE,QAAQ;qBAClB,CAAC,CAAC;oBACH,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;gBACvB,CAAC;qBAAM,CAAC;gBAER,CAAC;YACH,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAEd,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,iDAAiD;qBAC3D;iBACF,CAAC;YACJ,CAAC;YAGD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAG1D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7D,UAAU,EAAE,OAAO;gBACnB,aAAa,EAAE,QAAQ;gBACvB,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B,CAAC,CAAC;YAIH,IAAI,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAGzF,IAAI,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3F,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YAClE,CAAC;YAGD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACvE,MAAM,SAAS,GAKV,EAAE,CAAC;YAER,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACnD,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;gBAEhE,IAAI,CAAC,OAAO,IAAI,kBAAkB,EAAE,CAAC;oBACnC,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;4BACxD,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,OAAO;4BACP,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;yBAC1B,CAAC,CAAC;wBACH,OAAO,GAAG,QAAQ,CAAC;wBAEnB,cAAc,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;oBACvC,CAAC;oBAAC,MAAM,CAAC;oBAET,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACpF,SAAS;gBACX,CAAC;gBAGD,MAAM,aAAa,GAAG,kBAAkB,UAAU,cAAc,QAAQ,KAAK,SAAS,CAAC,OAAO,4EAA4E,OAAO,CAAC,EAAE,kBAAkB,QAAQ,mBAAmB,OAAO,CAAC,EAAE,SAAS,CAAC;gBAErP,MAAM,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBAE5E,SAAS,CAAC,IAAI,CAAC;oBACb,OAAO;oBACP,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,QAAQ,GAAwB;gBACpC,IAAI,EAAE,QAAQ;gBACd,QAAQ;gBACR,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM;gBACvE,SAAS;aACV,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAC/E,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;iBAC3E;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAMO,KAAK,CAAC,OAAO,CAAC,MAAe;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACL,sFAAsF;iBACzF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,6BAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;QAGjE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,IAAsB,CAAC;QAC9C,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,uCAAuC;iBACjD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QAEzB,IAAI,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,SAAS,KAAK,CAAC,IAAI,8BAA8B,QAAQ,EAAE;qBACrE;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAGrC,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAQ,EAAE,GAAG,CAAC,CAAC;YAG/D,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;gBACvE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;gBACvE,IAAI,YAAY,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;oBAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CACtC,QAAQ,EACR,SAAS,EACT,OAAQ,EACR,YAAY,CAAC,aAAa,CAC3B,CAAC;gBACJ,CAAC;YACH,CAAC;YAGD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,QAAQ,EAAE,EAAE,cAAc,EAAE;gBACtE,SAAS;gBACT,OAAO;gBACP,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAoB;gBAChC,QAAQ;gBACR,SAAS;gBACT,OAAO;gBACP,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,YAAY,EAAE,IAAI;aACnB,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAC3E,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;iBAClF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAe;QAC3C,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACL,uFAAuF;iBAC1F;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,qCAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAEvC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,aAAa,GAA4B;oBAC7C,MAAM,EAAE;wBACN,EAAE,EAAE,MAAM,CAAC,EAAE;wBACb,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB;oBACD,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,CAAC;iBACT,CAAC;gBAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YAChD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC9B,IAAI,CAAC;oBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EACvC,0CAA0C,CAC3C,CAAC;oBACF,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACvE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAE/E,MAAM,OAAO,GAAuC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACzE,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAClB,UAAU,EAAE,KAAK,CAAC,IAAI;gBACtB,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;aACnC,CAAC,CAAC,CAAC;YAEJ,MAAM,QAAQ,GAA4B;gBACxC,MAAM,EAAE;oBACN,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB;gBACD,OAAO;gBACP,KAAK,EAAE,OAAO,CAAC,MAAM;aACtB,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,0BAAiB,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACzE,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,UAAU,SAAS,CAAC,SAAS,iBAAiB;qBACxD;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,wBAAwB,CAAC,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,0BAA0B;oBAChC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;iBAChF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAMO,KAAK,CAAC,eAAe,CAAC,MAAe;QAC3C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,+EAA+E;iBACzF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,qCAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAErE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,0BAA0B,GAAG,SAElC,CAAC;YACF,MAAM,aAAa,GACjB,OAAO,0BAA0B,CAAC,cAAc,KAAK,SAAS;gBAC5D,CAAC,CAAC,0BAA0B,CAAC,cAAc;gBAC3C,CAAC,CAAC,IAAI,CAAC;YAEX,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE;gBAC5E,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK;gBACL,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;YAGH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,CAAC,CAAC,aAAa;oBAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;gBACpD,IAAI,CAAC,CAAC,OAAO;oBAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO;wBAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACjE,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,aAAa;gBACjC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC;gBAC7D,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;YAEvB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvC,MAAM,IAAI,GAA4B;oBACpC,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,WAAW,EAAE,CAAC,CAAC,UAAU;oBACzB,eAAe,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI;oBACxC,iBAAiB,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;oBACnF,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,UAAU,EAAE,CAAC,CAAC,SAAS;oBACvB,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC;gBAEF,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO;yBACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;yBAC/B,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;oBAClC,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE;oBACN,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB;gBACD,QAAQ;gBAER,QAAQ,EAAE,QAAQ,CAAC,MAAM,KAAK,KAAK;aACpC,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,0BAAiB,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACzE,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,UAAU,SAAS,CAAC,SAAS,iBAAiB;qBACxD;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,wBAAwB,CAAC,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,0BAA0B;oBAChC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;iBAChF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,aAAa,CAAC,MAAe;QACzC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,0BAA0B,EAAE;aAC5E,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,mCAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAG1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,IAAsB,CAAC;QAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAG9C,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,4BAA4B;oBAClC,OAAO,EAAE,mCAAmC;iBAC7C;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,uCAAuC;iBACjD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QAGzB,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,SAAS,KAAK,CAAC,IAAI,8BAA8B,QAAQ,EAAE;qBACrE;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7F,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAS,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE;YACvF,QAAQ,EAAE,SAAS,CAAC,QAAQ;SAC7B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG;YACf,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,SAAS,EAAE,QAAS;YACpB,gBAAgB,EAAE,MAAM,CAAC,cAAc;YACvC,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,mBAAmB,EAAE,MAAM,CAAC,iBAAiB;SAC9C,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAKO,KAAK,CAAC,cAAc,CAAC,MAAe;QAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,0BAA0B,EAAE;aAC5E,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,oCAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAG3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,IAAsB,CAAC;QAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAG9C,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,4BAA4B;oBAClC,OAAO,EAAE,mCAAmC;iBAC7C;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,uCAAuC;iBACjD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;QAEzB,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,SAAS,KAAK,CAAC,IAAI,8BAA8B,QAAQ,EAAE;qBACrE;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7F,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,QAAS,EAAE,OAAO,EAAE;gBACvE,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG;gBACf,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,SAAS,EAAE,QAAS;gBACpB,iBAAiB,EAAE,MAAM,CAAC,eAAe;gBACzC,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,6BAAe,IAAI,KAAK,YAAY,4BAAmB,EAAE,CAAC;gBAC7E,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,+BAA+B,EAAE;iBACjF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAMO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACL,kFAAkF;iBACrF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YAGvE,MAAM,QAAQ,GAAG;gBACf,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACpF,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAClB,IAAI,CAAC,OAAO;iBACT,QAAQ,CAAC,EAAE,CAAC;iBACZ,KAAK,CAAC,GAAG,EAAE,CAAC,IAA8D,CAAC,CAC/E,CACF,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACzF,CAAC;YAGF,MAAM,UAAU,GAAG;gBACjB,GAAG,IAAI,GAAG,CACR,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;qBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;qBACvB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACtC;aACF,CAAC;YACF,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAA2C,CAAC,CACrF,CACF,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAC3F,CAAC;YAGF,MAAM,QAAQ,GAAqB,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1E,MAAM,OAAO,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE/E,OAAO;oBACL,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACtC,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS;oBAEnC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;oBACtD,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAyB,EAAE,QAAQ,EAAE,CAAC;YACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,qBAAqB,CAAC,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;iBAC5E;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAMD,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QAC3C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EACL,qFAAqF;iBACxF;aACF,CAAC;QACJ,CAAC;QAGD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,gEAAgE;iBAC1E;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YAGvE,IAAI,gBAAuC,CAAC;YAE5C,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBAE5B,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBAEN,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,CAAC;YAGD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAElC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAClE,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;gBAC/C,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,mBAAmB;wBACzB,OAAO,EAAE,8CAA8C,SAAS,GAAG;qBACpE;iBACF,CAAC;YACJ,CAAC;YAGD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;gBAClF,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,mBAAmB;wBACzB,OAAO,EAAE,0CAA0C,SAAS,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,uDAAuD;wBACpJ,IAAI,EAAE;4BACJ,yBAAyB,EAAE,gBAAgB;yBAC5C;qBACF;iBACF,CAAC;YACJ,CAAC;YAGD,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAGpC,IAAI,KAAK,GAAiC,IAAI,CAAC;YAC/C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACjE,KAAK,GAAG;wBACN,EAAE,EAAE,WAAW,CAAC,EAAE;wBAClB,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,SAAS,EAAE,WAAW,CAAC,SAAS;qBACjC,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EACpE,6BAA6B,CAC9B,CAAC;gBACJ,CAAC;YACH,CAAC;YAGD,IAAI,OAAO,GAAmC,IAAI,CAAC;YACnD,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACrE,OAAO,GAAG;wBACR,EAAE,EAAE,aAAa,CAAC,EAAE;wBACpB,IAAI,EAAE,aAAa,CAAC,IAAI;wBACxB,QAAQ,EAAE,aAAa,CAAC,QAAQ;qBACjC,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EACtE,+BAA+B,CAChC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAwB;gBACnC,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE;oBACP,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B;gBACD,KAAK;gBACL,OAAO;aACR,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,EAChD,8BAA8B,CAC/B,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,2BAA2B;oBACjC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC;iBACtF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAMO,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAClD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YAEH,IAAI,KAAK,CAAC;YACV,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBAE1B,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBAEN,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAGD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC5E,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CACT,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,EACzD,qCAAqC,CACtC,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YAGD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAE/D,MAAM,OAAO,GAAwB;gBACnC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC;gBACD,OAAO,EAAE;oBACP,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B;aACF,CAAC;YAEF,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,MAAM,CAAC,KAAK,CACV,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAC3D,iCAAiC,CAClC,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKO,KAAK,CAAC,aAAa,CAAC,MAAe;QACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,8CAA8C;iBACxD;aACF,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,mCAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAC/C,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,WAAW,EAAE,SAAS,CAAC,WAAW;aACnC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAA0B;gBACtC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACvC,CAAC;YAEF,MAAM,CAAC,IAAI,CACT,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EACrF,+BAA+B,CAChC,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,6BAAe,EAAE,CAAC;gBACrC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,IAAI,EAAE,KAAK,CAAC,OAAO;qBACpB;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC7D,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,IAAI,EAAG,KAA4B,CAAC,IAAI;qBACzC;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,IAAU,EAAE,aAAmC;QACpE,MAAM,OAAO,GAAgB;YAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnC,CAAC;QAGD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAE/B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QAEnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,IAAU;QAC7B,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,IAAU,EAAE,aAAkC;QAClE,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;YACrC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SAC3E,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,OAAoB;QACzC,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,QAAkB;QAC3C,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,QAAkB;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO;YACL,GAAG,OAAO;YACV,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAA4B;QACnD,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,MAAM,cAAc,GAAG,GAAG,CAAC;QAC3B,MAAM,cAAc,GAClB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc;YACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,GAAG;YAC/C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAErB,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,cAAc;YACd,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,KAAY;QACnC,MAAM,WAAW,GACf,KAAK,CAAC,gBAAgB;YACtB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;QAErF,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW;SACZ,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,KAAY;QACjC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,MAAM,KAAK,GAAG,8BAA8B,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAA6B,CAAC;QAElC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,cAAc,CAAC,KAAa;QAClC,OAAO,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,QAAkB;QAElB,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC;QAC7C,MAAM,KAAK,GAAuB,EAAE,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACrE,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI;oBACJ,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,QAAkB,EAClB,KAAmC,EACnC,QAAgB,EAChB,QAAgB;QAEhB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC7C,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,SAAS,IAAI,IAAI,EAC1B,CAAC,EACD,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EACtC,KAAK,EACL,IAAI,CACL,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9D,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC;YACrD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;SACjD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,OAAe,EACf,SAAwB,EACxB,KAAa,EACb,OAA+C,EAC/C,KAAmC,EACnC,IAAiB;QAEjB,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACjD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAChE,CAAC;QAED,IAAI,cAAc,GAAG,OAAO,CAAC;QAC7B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM;YACR,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAClD,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,IAAI,SAAS,EAC7B,KAAK,GAAG,CAAC,EACT,OAAO,EACP,KAAK,EACL,IAAI,CACL,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAElB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAChF,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC5E,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC;YACrC,KAAK;YACL,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,QAAkB,EAAE,OAAe,EAAE,KAAa;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjF,OAAO,YAAY,OAAO,OAAO,OAAO,WAAW,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,SAAwB,EACxB,IAAY,EACZ,KAAmC;QAEnC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,cAAc,CACpB,OAAe,EACf,QAAgB;QAEhB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO;YACL,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzC,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,GAAW;QAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAE5C,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yBAAyB,WAAW,EAAE;iBAChD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC9C,SAAS,EAAE,kBAAkB,IAAI,IAAI;gBACrC,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,GAAG;oBACH,QAAQ,EAAE,eAAe;oBACzB,OAAO,EAAE,QAAQ,CAAC,SAAS;oBAC3B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;iBAC3C;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,uBAAuB,YAAY,EAAE;iBAC/C;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,GAAW;QAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAEzE,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,OAA2B,CAAC;QAChC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAClC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAC3F,CAAC;QAEF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAEzF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,qBAAqB,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;iBACpE;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEzD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,GAAG;gBACH,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;aACrC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,WAAmB;QACnD,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAC/B,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,WAAW,CACnE,CAAC;QAEF,OAAO,KAAK,EAAE,EAAE,CAAC;IACnB,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACrC,OAAO,IAAI;aACR,WAAW,EAAE;aACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IAUO,KAAK,CAAC,WAAW,CAAC,MAAe;QACvC,MAAM,SAAS,GAAG,iCAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,iCAAiC;iBAC3C;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE;YAC/D,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,GAAG;YAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAoB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7D,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAwB;YACpC,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAMO,KAAK,CAAC,SAAS,CAAC,MAAe;QACrC,MAAM,SAAS,GAAG,+BAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,iCAAiC;iBAC3C;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEhF,IAAI,eAAe,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC7C,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,UAAU,SAAS,CAAC,QAAQ,kCAAkC;qBACxE;iBACF,CAAC;YACJ,CAAC;YAGD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAChF,KAAK,EAAE,GAAG;aACX,CAAC,CAAC;YAGH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,aAAa;oBAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;YAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAA2B,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC9E,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,eAAe,EAAE,OAAO,CAAC,aAAa;oBACpC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC1C,CAAC,CAAC,SAAS;gBACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC,CAAC;YAEJ,MAAM,YAAY,GAAyB,CAAC,eAAe,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CACjF,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACT,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CACH,CAAC;YAEF,MAAM,QAAQ,GAAsB;gBAClC,MAAM,EAAE;oBACN,EAAE,EAAE,eAAe,CAAC,EAAE;oBACtB,KAAK,EAAE,eAAe,CAAC,KAAK;oBAC5B,WAAW,EAAE,eAAe,CAAC,WAAW;oBACxC,MAAM,EAAE,eAAe,CAAC,MAAM;oBAC9B,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,MAAM,EAAE,eAAe,CAAC,MAAM;oBAC9B,SAAS,EAAE,eAAe,CAAC,SAAS;oBACpC,gBAAgB,EAAE,eAAe,CAAC,gBAAgB;oBAClD,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,SAAS,EAAE,eAAe,CAAC,SAAS;oBACpC,SAAS,EAAE,eAAe,CAAC,SAAS;iBACrC;gBACD,YAAY;gBACZ,QAAQ;aACT,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,UAAU,SAAS,CAAC,QAAQ,gBAAgB;qBACtD;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAMO,KAAK,CAAC,iBAAiB,CAAC,MAAe;QAC7C,MAAM,SAAS,GAAG,uCAA6B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,iCAAiC;iBAC3C;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,UAAU,SAAS,CAAC,QAAQ,kCAAkC;qBACxE;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACxE,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,GAAG;gBAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC;aAC9B,CAAC,CAAC;YAGH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAI,OAAO,CAAC,aAAa;oBAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;YAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAA2B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACtE,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,eAAe,EAAE,OAAO,CAAC,aAAa;oBACpC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC1C,CAAC,CAAC,SAAS;gBACb,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC,CAAC;YAEJ,MAAM,QAAQ,GAA8B;gBAC1C,QAAQ;gBACR,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,UAAU,SAAS,CAAC,QAAQ,gBAAgB;qBACtD;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAMO,KAAK,CAAC,YAAY,CAAC,MAAe;QACxC,MAAM,SAAS,GAAG,kCAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAC/C,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAsB,CAAC,CAAC;QAE9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,iCAAiC;iBAC3C;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,UAAU,SAAS,CAAC,QAAQ,kCAAkC;qBACxE;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAC1E,QAAQ,EAAE,SAAS,CAAC,eAAe;gBACnC,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,SAAS;gBAC/C,UAAU,EAAE,OAAO;gBACnB,aAAa,EAAE,KAAK,EAAE,EAAE;gBACxB,cAAc,EAAE,SAAS,CAAC,cAAc;aACzC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAyB;gBACrC,OAAO,EAAE;oBACP,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,eAAe,EAAE,KAAK,EAAE,IAAI;oBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B;aACF,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,UAAU,SAAS,CAAC,QAAQ,gBAAgB;qBACtD;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAMO,KAAK,CAAC,cAAc,CAAC,MAAe;QAC1C,MAAM,SAAS,GAAG,oCAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,iCAAiC;iBAC3C;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,mBAAmB;wBACzB,OAAO,EAAE,WAAW,SAAS,CAAC,SAAS,kCAAkC;qBAC1E;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAC7D,OAAO,CAAC,QAAQ,EAChB,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,UAAU,EACpB,SAAS,CAAC,OAAO,CAClB,CAAC;YAGF,IAAI,eAAmC,CAAC;YACxC,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBACxE,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAA2B;gBACvC,OAAO,EAAE;oBACP,EAAE,EAAE,cAAc,CAAC,EAAE;oBACrB,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,OAAO,EAAE,cAAc,CAAC,OAAO;oBAC/B,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,OAAO,EAAE,cAAc,CAAC,OAAO;oBAC/B,WAAW,EAAE,cAAc,CAAC,WAAW;oBACvC,MAAM,EAAE,cAAc,CAAC,MAAM;oBAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;oBACrC,aAAa,EAAE,cAAc,CAAC,aAAa;oBAC3C,eAAe;oBACf,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,OAAO,EAAE,cAAc,CAAC,OAAO;oBAC/B,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,SAAS,EAAE,cAAc,CAAC,SAAS;iBACpC;aACF,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,mBAAmB;wBACzB,OAAO,EAAE,WAAW,SAAS,CAAC,SAAS,gBAAgB;qBACxD;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAOO,KAAK,CAAC,eAAe,CAAC,MAAe;QAC3C,MAAM,SAAS,GAAG,qCAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE5D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAsB,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,yCAAyC;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,iCAAiC;iBAC3C;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE9D,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,mBAAmB;wBACzB,OAAO,EAAE,WAAW,SAAS,CAAC,SAAS,kCAAkC;qBAC1E;iBACF,CAAC;YACJ,CAAC;YAGD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACpD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,oBAAoB;wBAC1B,OAAO,EAAE,qDAAqD;qBAC/D;iBACF,CAAC;YACJ,CAAC;YAGD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,6CAA6C;qBACvD;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;YAIrD,IAAI,aAAa,CAAC;YAClB,IAAI,CAAC;gBACH,aAAa,GAAG,IAAA,wCAAsB,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;oBACzE,WAAW,EAAE,8BAA8B;iBAC5C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,6BAAe,EAAE,CAAC;oBACrC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,wBAAwB;4BAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,IAAI,EAAE,KAAK,CAAC,OAAO;yBACpB;qBACF,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAID,IAAI,YAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,IAAA,gDAA8B,EACjD,aAAa,CAAC,YAAY,EAC1B,OAAO,CAAC,QAAQ,EAChB,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAC7C,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,6BAAe,EAAE,CAAC;oBACrC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,wBAAwB;4BAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,IAAI,EAAE,KAAK,CAAC,OAAO;yBACpB;qBACF,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAGD,MAAM,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,YAAY,CAAC;YAE9B,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAGtC,IAAI,CAAC;gBACH,IAAA,oCAAkB,EAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,6BAAe,EAAE,CAAC;oBACrC,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE;4BACL,IAAI,EAAE,qBAAqB;4BAC3B,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,IAAI,EAAE,KAAK,CAAC,OAAO;yBACpB;qBACF,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAGD,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC;YAExE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAGxD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAC7D,OAAO,CAAC,QAAQ,EAChB,SAAS,CAAC,SAAS,EACnB,UAAU,EACV,SAAS,CAAC,OAAO,CAClB,CAAC;YAGF,IAAI,eAAmC,CAAC;YACxC,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBACxE,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAA4B;gBACxC,OAAO,EAAE;oBACP,EAAE,EAAE,cAAc,CAAC,EAAE;oBACrB,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,OAAO,EAAE,cAAc,CAAC,OAAO;oBAC/B,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,OAAO,EAAE,cAAc,CAAC,OAAO;oBAC/B,WAAW,EAAE,cAAc,CAAC,WAAW;oBACvC,MAAM,EAAE,cAAc,CAAC,MAAM;oBAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;oBACrC,aAAa,EAAE,cAAc,CAAC,aAAa;oBAC3C,eAAe;oBACf,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,OAAO,EAAE,cAAc,CAAC,OAAO;oBAC/B,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,SAAS,EAAE,cAAc,CAAC,SAAS;iBACpC;gBACD,OAAO,EAAE;oBACP,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,SAAS;oBACT,OAAO;oBACP,aAAa;iBACd;aACF,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,2BAAa,EAAE,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,mBAAmB;wBACzB,OAAO,EAAE,WAAW,SAAS,CAAC,SAAS,gBAAgB;qBACxD;iBACF,CAAC;YACJ,CAAC;YACD,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,wBAAwB;qBAClC;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA7mIY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,eAAM,EAAC,mCAAe,CAAC,CAAA;IACvB,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0BAAW,CAAC,CAAC,CAAA;IACrC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,kCAAe,CAAC,CAAC,CAAA;IACzC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0DAA0B,CAAC,CAAC,CAAA;IAEpD,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,kCAAe,CAAC,CAAC,CAAA;IACzC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0BAAW,CAAC,CAAC,CAAA;IACrC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC,CAAC,CAAA;IACtC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,kCAAe,CAAC,CAAC,CAAA;IACzC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC,CAAC,CAAA;IACvC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC,CAAC,CAAA;IACvC,YAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,gCAAc,CAAC,CAAC,CAAA;6CAV6B,0BAAW;QACH,kCAAe;QAEvD,0DAA0B;QACc,kCAAe;QACvB,0BAAW;QACT,4BAAY;QACN,kCAAe;QACnB,8BAAa;QACb,8BAAa;QACX,gCAAc;GAhBjF,UAAU,CA6mItB"}
1
+ {"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../../../src/modules/mcp/services/mcp.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { StorageService } from '../../../storage/interfaces/storage.interface';
2
+ import type { Document } from '../../../storage/models/domain.models';
3
+ import type { DocumentInlineResolution, DocumentLinkMeta } from '../../dtos/mcp.dto';
4
+ type DocumentStorage = Pick<StorageService, 'getDocument'>;
5
+ export declare function collectDocumentLinks(storage: DocumentStorage, document: Document): Promise<{
6
+ links: DocumentLinkMeta[];
7
+ cache: Map<string, Document | null>;
8
+ }>;
9
+ export declare function buildInlineResolution(storage: DocumentStorage, document: Document, cache: Map<string, Document | null>, maxDepth: number, maxBytes: number): Promise<DocumentInlineResolution>;
10
+ export {};
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collectDocumentLinks = collectDocumentLinks;
4
+ exports.buildInlineResolution = buildInlineResolution;
5
+ function extractLinkSlugs(content) {
6
+ const regex = /\[\[([A-Za-z0-9_\-./]+)\]\]/g;
7
+ const seen = new Set();
8
+ const slugs = [];
9
+ let match;
10
+ while ((match = regex.exec(content)) !== null) {
11
+ const slug = match[1].trim();
12
+ if (slug && !seen.has(slug)) {
13
+ seen.add(slug);
14
+ slugs.push(slug);
15
+ }
16
+ }
17
+ return slugs;
18
+ }
19
+ function escapeForRegex(value) {
20
+ return value.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
21
+ }
22
+ async function loadDocumentBySlug(storage, projectId, slug, cache) {
23
+ if (cache.has(slug)) {
24
+ return cache.get(slug) ?? null;
25
+ }
26
+ try {
27
+ const linked = await storage.getDocument({ projectId, slug });
28
+ cache.set(slug, linked);
29
+ return linked;
30
+ }
31
+ catch (error) {
32
+ cache.set(slug, null);
33
+ return null;
34
+ }
35
+ }
36
+ function applyByteLimit(content, maxBytes) {
37
+ const bytes = Buffer.byteLength(content, 'utf8');
38
+ if (bytes <= maxBytes) {
39
+ return { content, bytes, truncated: false };
40
+ }
41
+ const buffer = Buffer.from(content, 'utf8');
42
+ const truncatedBuffer = buffer.subarray(0, maxBytes);
43
+ return {
44
+ content: truncatedBuffer.toString('utf8'),
45
+ bytes: maxBytes,
46
+ truncated: true,
47
+ };
48
+ }
49
+ function buildInlineSnippet(document, content, depth) {
50
+ const headingLevel = Math.min(6, 2 + depth);
51
+ const heading = `${'#'.repeat(headingLevel)} ${document.title || document.slug}`;
52
+ return `\n\n---\n${heading}\n\n${content}\n---\n\n`;
53
+ }
54
+ async function inlineDocumentContent(storage, content, projectId, depth, options, cache, path) {
55
+ if (options.maxDepth === 0 || depth >= options.maxDepth) {
56
+ const bytes = Buffer.byteLength(content, 'utf8');
57
+ return { content, depthUsed: depth, bytes, truncated: false };
58
+ }
59
+ let workingContent = content;
60
+ let depthUsed = depth;
61
+ const slugs = extractLinkSlugs(content);
62
+ for (const slug of slugs) {
63
+ if (depth >= options.maxDepth) {
64
+ break;
65
+ }
66
+ if (path.has(slug)) {
67
+ continue;
68
+ }
69
+ const linked = await loadDocumentBySlug(storage, projectId, slug, cache);
70
+ if (!linked) {
71
+ continue;
72
+ }
73
+ path.add(slug);
74
+ const childResult = await inlineDocumentContent(storage, linked.contentMd, linked.projectId ?? projectId, depth + 1, options, cache, path);
75
+ path.delete(slug);
76
+ depthUsed = Math.max(depthUsed, childResult.depthUsed);
77
+ const snippet = buildInlineSnippet(linked, childResult.content, depth + 1);
78
+ const pattern = new RegExp(`\\[\\[${escapeForRegex(slug)}\\]\\]`, 'g');
79
+ workingContent = workingContent.replace(pattern, snippet);
80
+ }
81
+ const bytes = Buffer.byteLength(workingContent, 'utf8');
82
+ return {
83
+ content: workingContent,
84
+ depthUsed: Math.max(depthUsed, depth),
85
+ bytes,
86
+ truncated: false,
87
+ };
88
+ }
89
+ async function collectDocumentLinks(storage, document) {
90
+ const cache = new Map();
91
+ cache.set(document.slug, document);
92
+ const slugs = extractLinkSlugs(document.contentMd);
93
+ const projectId = document.projectId ?? null;
94
+ const links = [];
95
+ for (const slug of slugs) {
96
+ const linked = await loadDocumentBySlug(storage, projectId, slug, cache);
97
+ if (linked) {
98
+ links.push({
99
+ slug,
100
+ title: linked.title,
101
+ id: linked.id,
102
+ projectId: linked.projectId,
103
+ exists: true,
104
+ });
105
+ }
106
+ else {
107
+ links.push({ slug, exists: false });
108
+ }
109
+ }
110
+ return { links, cache };
111
+ }
112
+ async function buildInlineResolution(storage, document, cache, maxDepth, maxBytes) {
113
+ const effectiveDepth = Math.max(0, maxDepth);
114
+ const path = new Set([document.slug]);
115
+ const result = await inlineDocumentContent(storage, document.contentMd, document.projectId ?? null, 0, { maxDepth: effectiveDepth, maxBytes }, cache, path);
116
+ const limited = applyByteLimit(result.content, maxBytes);
117
+ return {
118
+ contentMd: limited.content,
119
+ depthUsed: Math.min(result.depthUsed, effectiveDepth),
120
+ bytes: limited.bytes,
121
+ truncated: limited.truncated || result.truncated,
122
+ };
123
+ }
124
+ //# sourceMappingURL=document-link-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-link-resolver.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/utils/document-link-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { StorageService } from '../../../storage/interfaces/storage.interface';
2
+ import type { McpResponse } from '../../dtos/mcp.dto';
3
+ export declare function resolveEpicId(storage: StorageService, projectId: string, idOrPrefix: string): Promise<McpResponse>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveEpicId = resolveEpicId;
4
+ const zod_1 = require("zod");
5
+ const uuidCheck = zod_1.z.string().uuid();
6
+ async function resolveEpicId(storage, projectId, idOrPrefix) {
7
+ if (uuidCheck.safeParse(idOrPrefix).success) {
8
+ return { success: true, data: { epicId: idOrPrefix } };
9
+ }
10
+ const matches = await storage.getEpicsByIdPrefix(projectId, idOrPrefix);
11
+ if (matches.length === 0) {
12
+ return {
13
+ success: false,
14
+ error: {
15
+ code: 'EPIC_NOT_FOUND',
16
+ message: `No epic found matching prefix '${idOrPrefix}'`,
17
+ },
18
+ };
19
+ }
20
+ if (matches.length > 1) {
21
+ const listing = matches
22
+ .slice(0, 10)
23
+ .map((m) => `${m.id} (${m.title})`)
24
+ .join(', ');
25
+ const suffix = matches.length > 10 ? ` … and ${matches.length - 10} more` : '';
26
+ return {
27
+ success: false,
28
+ error: {
29
+ code: 'AMBIGUOUS_EPIC',
30
+ message: `Multiple epics match prefix '${idOrPrefix}': ${listing}${suffix}. Use a longer prefix or full UUID.`,
31
+ data: {
32
+ matchingEpics: matches.slice(0, 10),
33
+ totalMatches: matches.length,
34
+ },
35
+ },
36
+ };
37
+ }
38
+ return { success: true, data: { epicId: matches[0].id } };
39
+ }
40
+ //# sourceMappingURL=resolve-epic-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-epic-id.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/utils/resolve-epic-id.ts"],"names":[],"mappings":";;AAMA,sCA0CC;AAhDD,6BAAwB;AAIxB,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAE7B,KAAK,UAAU,aAAa,CACjC,OAAuB,EACvB,SAAiB,EACjB,UAAkB;IAGlB,IAAI,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAExE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,kCAAkC,UAAU,GAAG;aACzD;SACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,OAAO;aACpB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC;aAClC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,gCAAgC,UAAU,MAAM,OAAO,GAAG,MAAM,qCAAqC;gBAC9G,IAAI,EAAE;oBACJ,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBACnC,YAAY,EAAE,OAAO,CAAC,MAAM;iBAC7B;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { StorageService } from '../../../storage/interfaces/storage.interface';
2
+ import type { McpResponse } from '../../dtos/mcp.dto';
3
+ export declare class ResourceResolver {
4
+ private readonly storage;
5
+ constructor(storage: StorageService);
6
+ resolve(uri: string): Promise<McpResponse>;
7
+ private resolveDocumentResource;
8
+ private resolvePromptResource;
9
+ private findProjectIdBySlug;
10
+ }
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourceResolver = void 0;
4
+ const dto_mappers_1 = require("../mappers/dto-mappers");
5
+ class ResourceResolver {
6
+ constructor(storage) {
7
+ this.storage = storage;
8
+ }
9
+ async resolve(uri) {
10
+ if (uri.startsWith('doc://')) {
11
+ return this.resolveDocumentResource(uri);
12
+ }
13
+ if (uri.startsWith('prompt://')) {
14
+ return this.resolvePromptResource(uri);
15
+ }
16
+ return {
17
+ success: false,
18
+ error: {
19
+ code: 'UNKNOWN_RESOURCE',
20
+ message: `Unknown resource: ${uri}`,
21
+ },
22
+ };
23
+ }
24
+ async resolveDocumentResource(uri) {
25
+ const spec = uri.slice('doc://'.length);
26
+ const slashIndex = spec.indexOf('/');
27
+ if (slashIndex === -1) {
28
+ throw new Error(`Invalid document resource URI: ${uri}`);
29
+ }
30
+ const projectPart = spec.slice(0, slashIndex);
31
+ const slugPart = spec.slice(slashIndex + 1);
32
+ const projectSlug = decodeURIComponent(projectPart);
33
+ const documentSlug = decodeURIComponent(slugPart);
34
+ const projectIdCandidate = await this.findProjectIdBySlug(projectSlug);
35
+ if (projectIdCandidate === undefined) {
36
+ return {
37
+ success: false,
38
+ error: {
39
+ code: 'PROJECT_NOT_FOUND',
40
+ message: `Unknown project slug: ${projectSlug}`,
41
+ },
42
+ };
43
+ }
44
+ try {
45
+ const document = await this.storage.getDocument({
46
+ projectId: projectIdCandidate ?? null,
47
+ slug: documentSlug,
48
+ });
49
+ return {
50
+ success: true,
51
+ data: {
52
+ uri,
53
+ mimeType: 'text/markdown',
54
+ content: document.contentMd,
55
+ document: (0, dto_mappers_1.mapDocumentDetail)(document),
56
+ },
57
+ };
58
+ }
59
+ catch {
60
+ return {
61
+ success: false,
62
+ error: {
63
+ code: 'DOCUMENT_NOT_FOUND',
64
+ message: `Document not found: ${documentSlug}`,
65
+ },
66
+ };
67
+ }
68
+ }
69
+ async resolvePromptResource(uri) {
70
+ const spec = uri.slice('prompt://'.length);
71
+ if (!spec) {
72
+ throw new Error(`Invalid prompt resource URI: ${uri}`);
73
+ }
74
+ const atIndex = spec.lastIndexOf('@');
75
+ const namePart = atIndex === -1 ? spec : spec.slice(0, atIndex);
76
+ const versionPart = atIndex === -1 ? undefined : spec.slice(atIndex + 1);
77
+ const name = decodeURIComponent(namePart).trim();
78
+ if (!name) {
79
+ throw new Error(`Prompt name missing in URI: ${uri}`);
80
+ }
81
+ let version;
82
+ if (versionPart && versionPart.length > 0) {
83
+ version = Number(versionPart);
84
+ if (!Number.isFinite(version) || version <= 0) {
85
+ throw new Error(`Invalid prompt version in URI: ${uri}`);
86
+ }
87
+ }
88
+ const list = await this.storage.listPrompts({ projectId: null });
89
+ const candidates = list.items.filter((prompt) => prompt.title === name && (version === undefined || prompt.version === version));
90
+ const selected = candidates.find((prompt) => prompt.projectId === null) ?? candidates[0];
91
+ if (!selected) {
92
+ return {
93
+ success: false,
94
+ error: {
95
+ code: 'PROMPT_NOT_FOUND',
96
+ message: `Prompt not found: ${name}${version ? `@${version}` : ''}`,
97
+ },
98
+ };
99
+ }
100
+ const prompt = await this.storage.getPrompt(selected.id);
101
+ return {
102
+ success: true,
103
+ data: {
104
+ uri,
105
+ mimeType: 'text/markdown',
106
+ content: prompt.content,
107
+ prompt: (0, dto_mappers_1.mapPromptDetail)(prompt),
108
+ },
109
+ };
110
+ }
111
+ async findProjectIdBySlug(projectSlug) {
112
+ if (!projectSlug || projectSlug === 'global') {
113
+ return null;
114
+ }
115
+ const projects = await this.storage.listProjects({ limit: 1000, offset: 0 });
116
+ const match = projects.items.find((project) => project.name
117
+ .toLowerCase()
118
+ .replace(/[^a-z0-9]+/g, '-')
119
+ .replace(/(^-|-$)/g, '') === projectSlug);
120
+ return match?.id;
121
+ }
122
+ }
123
+ exports.ResourceResolver = ResourceResolver;
124
+ //# sourceMappingURL=resource-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-resolver.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/services/utils/resource-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { StorageService } from '../../../storage/interfaces/storage.interface';
2
+ import type { SessionsService } from '../../../sessions/services/sessions.service';
3
+ import type { GuestsService } from '../../../guests/services/guests.service';
4
+ import type { TmuxService } from '../../../terminal/services/tmux.service';
5
+ import type { McpResponse } from '../../dtos/mcp.dto';
6
+ export declare class SessionContextResolver {
7
+ private readonly storage;
8
+ private readonly sessionsService?;
9
+ private readonly guestsService?;
10
+ private readonly tmuxService?;
11
+ constructor(storage: StorageService, sessionsService?: SessionsService | undefined, guestsService?: GuestsService | undefined, tmuxService?: TmuxService | undefined);
12
+ resolve(sessionId: string): Promise<McpResponse>;
13
+ private tryResolveGuestContext;
14
+ }