@bevel-software/platform-core-backend 0.30.0 → 0.32.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 (210) hide show
  1. package/agent-guide/access-control.md +49 -4
  2. package/agent-guide/html-views.md +76 -2
  3. package/dist/core/catalog-revision.js +3 -3
  4. package/dist/core/create-core-server.d.ts.map +1 -1
  5. package/dist/core/create-core-server.js +2 -1
  6. package/dist/core/create-core-server.js.map +1 -1
  7. package/dist/core/create-core-services.d.ts +7 -0
  8. package/dist/core/create-core-services.d.ts.map +1 -1
  9. package/dist/core/create-core-services.js +16 -3
  10. package/dist/core/create-core-services.js.map +1 -1
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/modules/access/access-control.service.d.ts.map +1 -1
  16. package/dist/modules/access/access-control.service.js +1 -5
  17. package/dist/modules/access/access-control.service.js.map +1 -1
  18. package/dist/modules/access-model/index.d.ts +14 -0
  19. package/dist/modules/access-model/index.d.ts.map +1 -0
  20. package/dist/modules/access-model/index.js +13 -0
  21. package/dist/modules/access-model/index.js.map +1 -0
  22. package/dist/modules/audit/agent-audit.service.d.ts.map +1 -1
  23. package/dist/modules/audit/agent-audit.service.js +66 -6
  24. package/dist/modules/audit/agent-audit.service.js.map +1 -1
  25. package/dist/modules/audit/audit.contract.d.ts +52 -8
  26. package/dist/modules/audit/audit.contract.d.ts.map +1 -1
  27. package/dist/modules/audit/audit.contract.js +37 -1
  28. package/dist/modules/audit/audit.contract.js.map +1 -1
  29. package/dist/modules/audit/audit.routes.d.ts +1 -1
  30. package/dist/modules/audit/audit.routes.d.ts.map +1 -1
  31. package/dist/modules/audit/audit.routes.js +15 -13
  32. package/dist/modules/audit/audit.routes.js.map +1 -1
  33. package/dist/modules/audit/request-audit.d.ts +21 -10
  34. package/dist/modules/audit/request-audit.d.ts.map +1 -1
  35. package/dist/modules/audit/request-audit.js +26 -10
  36. package/dist/modules/audit/request-audit.js.map +1 -1
  37. package/dist/modules/auth/account-hooks.d.ts +4 -6
  38. package/dist/modules/auth/account-hooks.d.ts.map +1 -1
  39. package/dist/modules/auth/account-hooks.js +7 -17
  40. package/dist/modules/auth/account-hooks.js.map +1 -1
  41. package/dist/modules/auth/auth.service.d.ts +9 -8
  42. package/dist/modules/auth/auth.service.d.ts.map +1 -1
  43. package/dist/modules/auth/auth.service.js +19 -18
  44. package/dist/modules/auth/auth.service.js.map +1 -1
  45. package/dist/modules/database/core-schema.d.ts +43 -4
  46. package/dist/modules/database/core-schema.d.ts.map +1 -1
  47. package/dist/modules/database/core-schema.js +31 -7
  48. package/dist/modules/database/core-schema.js.map +1 -1
  49. package/dist/modules/kb-fs/index.d.ts +1 -0
  50. package/dist/modules/kb-fs/index.d.ts.map +1 -1
  51. package/dist/modules/kb-fs/index.js +1 -0
  52. package/dist/modules/kb-fs/index.js.map +1 -1
  53. package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
  54. package/dist/modules/kb-fs/locking-filesystem.js +3 -12
  55. package/dist/modules/kb-fs/locking-filesystem.js.map +1 -1
  56. package/dist/modules/kb-fs/mutex.d.ts +11 -0
  57. package/dist/modules/kb-fs/mutex.d.ts.map +1 -1
  58. package/dist/modules/kb-fs/mutex.js +14 -0
  59. package/dist/modules/kb-fs/mutex.js.map +1 -1
  60. package/dist/modules/mcp/mcp-auth.middleware.d.ts +14 -0
  61. package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
  62. package/dist/modules/mcp/mcp-auth.middleware.js +4 -0
  63. package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
  64. package/dist/modules/mcp/mcp.routes.d.ts +5 -0
  65. package/dist/modules/mcp/mcp.routes.d.ts.map +1 -1
  66. package/dist/modules/mcp/mcp.routes.js +67 -0
  67. package/dist/modules/mcp/mcp.routes.js.map +1 -1
  68. package/dist/modules/mcp/mcp.service.d.ts +107 -27
  69. package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
  70. package/dist/modules/mcp/mcp.service.js +257 -50
  71. package/dist/modules/mcp/mcp.service.js.map +1 -1
  72. package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts +28 -0
  73. package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
  74. package/dist/modules/mcp/oauth/bevel-oauth-provider.js +166 -39
  75. package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -1
  76. package/dist/modules/mcp/request-context.d.ts +25 -0
  77. package/dist/modules/mcp/request-context.d.ts.map +1 -0
  78. package/dist/modules/mcp/request-context.js +11 -0
  79. package/dist/modules/mcp/request-context.js.map +1 -0
  80. package/dist/modules/mcp/shared-definitions.d.ts +56 -0
  81. package/dist/modules/mcp/shared-definitions.d.ts.map +1 -0
  82. package/dist/modules/mcp/shared-definitions.js +117 -0
  83. package/dist/modules/mcp/shared-definitions.js.map +1 -0
  84. package/dist/modules/mcp/surface-cache.d.ts +70 -0
  85. package/dist/modules/mcp/surface-cache.d.ts.map +1 -0
  86. package/dist/modules/mcp/surface-cache.js +104 -0
  87. package/dist/modules/mcp/surface-cache.js.map +1 -0
  88. package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
  89. package/dist/modules/tool-helpers/tool-context.js +33 -12
  90. package/dist/modules/tool-helpers/tool-context.js.map +1 -1
  91. package/dist/modules/tool-helpers/tool.contract.d.ts +8 -0
  92. package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
  93. package/dist/modules/tool-helpers/tool.contract.js.map +1 -1
  94. package/dist/modules/workflow/agent-tools/change-request-read.tools.d.ts.map +1 -1
  95. package/dist/modules/workflow/agent-tools/change-request-read.tools.js +3 -14
  96. package/dist/modules/workflow/agent-tools/change-request-read.tools.js.map +1 -1
  97. package/dist/modules/workflow/agent-tools/change-request-summary.d.ts +10 -1
  98. package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +1 -1
  99. package/dist/modules/workflow/agent-tools/change-request-summary.js +2 -0
  100. package/dist/modules/workflow/agent-tools/change-request-summary.js.map +1 -1
  101. package/dist/modules/workflow/agent-tools/workflow.tools.d.ts +18 -1
  102. package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
  103. package/dist/modules/workflow/agent-tools/workflow.tools.js +458 -2
  104. package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
  105. package/dist/modules/workflow/change-request-hooks.d.ts +78 -0
  106. package/dist/modules/workflow/change-request-hooks.d.ts.map +1 -0
  107. package/dist/modules/workflow/change-request-hooks.js +15 -0
  108. package/dist/modules/workflow/change-request-hooks.js.map +1 -0
  109. package/dist/modules/workflow/git/git.service.d.ts +113 -4
  110. package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
  111. package/dist/modules/workflow/git/git.service.js +470 -106
  112. package/dist/modules/workflow/git/git.service.js.map +1 -1
  113. package/dist/modules/workflow/git/pull-request.service.d.ts +10 -0
  114. package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
  115. package/dist/modules/workflow/git/pull-request.service.js +9 -0
  116. package/dist/modules/workflow/git/pull-request.service.js.map +1 -1
  117. package/dist/modules/workflow/read-on-branch.d.ts +35 -0
  118. package/dist/modules/workflow/read-on-branch.d.ts.map +1 -0
  119. package/dist/modules/workflow/read-on-branch.js +58 -0
  120. package/dist/modules/workflow/read-on-branch.js.map +1 -0
  121. package/dist/modules/workflow/workflow.routes.d.ts.map +1 -1
  122. package/dist/modules/workflow/workflow.routes.js +22 -41
  123. package/dist/modules/workflow/workflow.routes.js.map +1 -1
  124. package/dist/modules/workflow/workflow.service.d.ts +124 -24
  125. package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
  126. package/dist/modules/workflow/workflow.service.js +326 -48
  127. package/dist/modules/workflow/workflow.service.js.map +1 -1
  128. package/dist/modules/workspace/index.d.ts +2 -0
  129. package/dist/modules/workspace/index.d.ts.map +1 -1
  130. package/dist/modules/workspace/index.js +4 -0
  131. package/dist/modules/workspace/index.js.map +1 -1
  132. package/dist/shared/git.contract.d.ts +7 -0
  133. package/dist/shared/git.contract.d.ts.map +1 -1
  134. package/dist/shared/git.contract.js +9 -0
  135. package/dist/shared/git.contract.js.map +1 -1
  136. package/dist/shared/listener-seam.d.ts +34 -0
  137. package/dist/shared/listener-seam.d.ts.map +1 -0
  138. package/dist/shared/listener-seam.js +42 -0
  139. package/dist/shared/listener-seam.js.map +1 -0
  140. package/dist/shared/no-link-below.d.ts +10 -0
  141. package/dist/shared/no-link-below.d.ts.map +1 -0
  142. package/dist/shared/no-link-below.js +30 -0
  143. package/dist/shared/no-link-below.js.map +1 -0
  144. package/migrations/0018_agent_events_page.sql +11 -0
  145. package/migrations/0019_oauth_token_rotated_at.sql +7 -0
  146. package/migrations/meta/0018_snapshot.json +2429 -0
  147. package/migrations/meta/0019_snapshot.json +2435 -0
  148. package/migrations/meta/_journal.json +15 -1
  149. package/package.json +3 -3
  150. package/src/core/catalog-revision.ts +3 -3
  151. package/src/core/create-core-server.ts +2 -1
  152. package/src/core/create-core-services.ts +21 -2
  153. package/src/index.ts +7 -0
  154. package/src/modules/access/access-control.service.ts +1 -6
  155. package/src/modules/access-model/index.ts +13 -0
  156. package/src/modules/agent-guide/__tests__/agent-guide.test.ts +22 -1
  157. package/src/modules/audit/__tests__/agent-audit.service.test.ts +78 -1
  158. package/src/modules/audit/__tests__/audit.routes.test.ts +43 -5
  159. package/src/modules/audit/agent-audit.service.ts +66 -6
  160. package/src/modules/audit/audit.contract.ts +62 -10
  161. package/src/modules/audit/audit.routes.ts +14 -12
  162. package/src/modules/audit/request-audit.ts +28 -13
  163. package/src/modules/auth/__tests__/account-deactivation.test.ts +38 -2
  164. package/src/modules/auth/account-hooks.ts +13 -21
  165. package/src/modules/auth/auth.service.ts +19 -18
  166. package/src/modules/database/core-schema.ts +31 -7
  167. package/src/modules/kb-fs/__tests__/mutex.canonical.test.ts +57 -0
  168. package/src/modules/kb-fs/index.ts +1 -0
  169. package/src/modules/kb-fs/locking-filesystem.ts +3 -12
  170. package/src/modules/kb-fs/mutex.ts +16 -0
  171. package/src/modules/mcp/__tests__/bevel-oauth-provider.pg.test.ts +279 -0
  172. package/src/modules/mcp/__tests__/bevel-oauth-provider.test.ts +190 -15
  173. package/src/modules/mcp/__tests__/mcp-routes-harness.ts +7 -1
  174. package/src/modules/mcp/__tests__/mcp.routes.page.test.ts +115 -0
  175. package/src/modules/mcp/__tests__/mcp.surface-cache.test.ts +521 -0
  176. package/src/modules/mcp/__tests__/shared-definitions.test.ts +28 -0
  177. package/src/modules/mcp/__tests__/surface-cache.test.ts +127 -0
  178. package/src/modules/mcp/mcp-auth.middleware.ts +21 -0
  179. package/src/modules/mcp/mcp.routes.ts +68 -0
  180. package/src/modules/mcp/mcp.service.ts +315 -51
  181. package/src/modules/mcp/oauth/bevel-oauth-provider.ts +214 -48
  182. package/src/modules/mcp/request-context.ts +34 -0
  183. package/src/modules/mcp/shared-definitions.ts +121 -0
  184. package/src/modules/mcp/surface-cache.ts +154 -0
  185. package/src/modules/tool-helpers/tool-context.ts +37 -18
  186. package/src/modules/tool-helpers/tool.contract.ts +8 -0
  187. package/src/modules/tool-registry/__tests__/own-tool-schemas.test.ts +1 -1
  188. package/src/modules/tool-registry/__tests__/tool-description-length.test.ts +1 -1
  189. package/src/modules/workflow/__tests__/change-request-hooks.test.ts +62 -0
  190. package/src/modules/workflow/__tests__/workflow.routes.history-read-gate.test.ts +23 -12
  191. package/src/modules/workflow/__tests__/workflow.routes.open-change-request.test.ts +79 -0
  192. package/src/modules/workflow/__tests__/workflow.service.delete-branch.test.ts +9 -1
  193. package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +508 -5
  194. package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +474 -4
  195. package/src/modules/workflow/agent-tools/change-request-read.tools.ts +4 -22
  196. package/src/modules/workflow/agent-tools/change-request-summary.ts +10 -1
  197. package/src/modules/workflow/agent-tools/workflow.tools.ts +468 -1
  198. package/src/modules/workflow/change-request-hooks.ts +96 -0
  199. package/src/modules/workflow/git/__tests__/git.service.diffFileBetweenBranches.test.ts +76 -11
  200. package/src/modules/workflow/git/__tests__/git.service.mergeIntoBranch.test.ts +721 -0
  201. package/src/modules/workflow/git/git.service.ts +537 -106
  202. package/src/modules/workflow/git/pull-request.service.ts +10 -0
  203. package/src/modules/workflow/read-on-branch.ts +79 -0
  204. package/src/modules/workflow/workflow.routes.ts +21 -39
  205. package/src/modules/workflow/workflow.service.ts +390 -55
  206. package/src/modules/workspace/index.ts +11 -0
  207. package/src/shared/__tests__/no-link-below.test.ts +45 -0
  208. package/src/shared/git.contract.ts +10 -0
  209. package/src/shared/listener-seam.ts +52 -0
  210. package/src/shared/no-link-below.ts +29 -0
@@ -1,6 +1,9 @@
1
- import { ToolError } from '../../tool-helpers/tool.contract.js';
1
+ import { ToolError, hasHttpStatus } from '../../tool-helpers/tool.contract.js';
2
+ import { isCommitSha } from '../../../shared/git.contract.js';
2
3
  import { toolDef } from '../../tool-helpers/tool-def.js';
3
4
  import { requireInternalSource } from '../../tool-auth/tool-auth.middleware.js';
5
+ import { assertAgentWriteAllowed, notifyAgentRead, SESSION_ID_INPUT } from '../../workspace/index.js';
6
+ import { readablePathsAt, readableAtCommits, assertReadableAtCommits } from '../read-on-branch.js';
4
7
  import { workspaceIdForBranch } from '../../../shared/workspace-id.js';
5
8
  import { assertInsideRepo, normalizePathArgs } from '../../kb-fs/repo-path.js';
6
9
  import { RETIRED_TOOL_MESSAGES } from '@bevel-software/platform-mcp-core';
@@ -128,6 +131,11 @@ const changeRequestSummarySchema = {
128
131
  description: `The changed paths with their kind of change, cut to ${CHANGE_REQUEST_PATH_LIMIT}; \`include: ["all-paths"]\` lists them all.`,
129
132
  },
130
133
  totalFiles: { type: 'integer', description: 'How many files the request changes in total, cut or not.' },
134
+ notified: {
135
+ type: 'array',
136
+ items: { type: 'string' },
137
+ description: 'On the answer to an open only: the channels that reached the approvers ("email", say), as the deployment\'s listeners said; empty when nobody was told and the request waits to be found in the app.',
138
+ },
131
139
  },
132
140
  required: ['url', 'number', 'title', 'state', 'sourceBranch', 'targetBranch', 'approvals', 'mergeBlockedReasons', 'files', 'totalFiles'],
133
141
  };
@@ -148,7 +156,22 @@ kb,
148
156
  * own gate (`changeRequestScope(...).maySee`). `delete_branch` neither names
149
157
  * nor links a request it answers no for.
150
158
  */
151
- maySeeChangeRequest) {
159
+ maySeeChangeRequest,
160
+ /**
161
+ * The per-file read gate the history tools apply: a file's past is the
162
+ * file, so a history read takes the read the file itself takes — on the
163
+ * workspace for its own branch's history (`canRead`), at the commit
164
+ * another branch's content was served from (`canReadAtRef`, through
165
+ * `readableAtCommits`, the compare route's own rule), and in batches for
166
+ * the path lists `branch_status` shows.
167
+ */
168
+ accessControl,
169
+ /**
170
+ * The deployment's blocking read hook, told of every file content a history
171
+ * tool serves, as `read_file` tells it — a hook that refuses the read
172
+ * refuses the history too.
173
+ */
174
+ agentAccessGate) {
152
175
  const { kbDirName } = kb;
153
176
  const mount = (spec) => {
154
177
  const path = `/api/agent/tools/${spec.name}`;
@@ -658,5 +681,438 @@ maySeeChangeRequest) {
658
681
  };
659
682
  },
660
683
  });
684
+ // ── History and syncing ────────────────────────────────────────────────────
685
+ //
686
+ // What the app's History tab, compare view and "update from target" do,
687
+ // as tools: the agent never runs git itself. Each reads through the
688
+ // workflow service's gated methods and takes the per-file read the file
689
+ // itself takes.
690
+ /** The branch's workspace, made when it is not on disk yet, and its id. */
691
+ const workspaceOf = async (ctx, branch) => {
692
+ await ctx.workspaceService.getOrCreateForBranch(branch);
693
+ return workspaceIdForBranch(branch);
694
+ };
695
+ /**
696
+ * The per-file read gate on the workspace's own branch, and the
697
+ * deployment's read hook told of the read (as `read_file` tells it);
698
+ * answers the repository-relative path.
699
+ */
700
+ const requireRead = async (ctx, branch, workspaceId, path) => {
701
+ const rel = stripKbDir(path, kbDirName);
702
+ await notifyAgentRead(agentAccessGate, ctx, branch, path);
703
+ if (!(await accessControl.canRead(workspaceId, ctx.user.email, rel))) {
704
+ throw new ToolError(`You don't have permission to read "${rel}".`, 403, { kind: 'read-denied', path: rel });
705
+ }
706
+ return rel;
707
+ };
708
+ /**
709
+ * The per-file read gate for content served from ANOTHER branch — the
710
+ * compare route's rule: at every commit the branch resolves to (the one
711
+ * the service serves it from, and its other tip when the local head and
712
+ * the published tip differ), all of which must grant, asked by the
713
+ * service inside its reservation before anything is said about the path
714
+ * there.
715
+ */
716
+ const requireReadAtCommits = (ctx, workspaceId, rel, commits, branch) => assertReadableAtCommits(accessControl, workspaceId, ctx.user.email, rel, commits, branch);
717
+ /** Which of `paths` the caller may read at `origin/<base>` — the change-request reads' rule, `readablePathsAt`. */
718
+ const readableAt = (ctx, workspaceId, base, paths) => readablePathsAt(accessControl, workspaceId, ctx.user.email, base, paths);
719
+ mount({
720
+ name: 'list_file_changes',
721
+ description: 'The history of one file on `branch`: its commits, newest first — who made each, when, and its ' +
722
+ 'subject — as the app\'s History tab shows them. `limit` caps the list (default 20, at most 100). ' +
723
+ 'Read a version with `read_file_at` and its diff with `compare_file`. Takes the read the file itself ' +
724
+ 'takes; a folder has no history of its own (ask per file).',
725
+ inputs: {
726
+ type: 'object',
727
+ properties: {
728
+ path: { type: 'string', minLength: 1, description: 'The file, workspace-relative (as `read_file` takes it).' },
729
+ limit: { type: 'integer', minimum: 1, maximum: 100, description: 'How many commits at most (default 20).' },
730
+ sessionId: SESSION_ID_INPUT,
731
+ },
732
+ required: ['path'],
733
+ additionalProperties: false,
734
+ },
735
+ outputs: {
736
+ type: 'object',
737
+ properties: {
738
+ path: { type: 'string', description: 'The file, repository-relative.' },
739
+ changes: { type: 'array', items: commitSchema, description: 'Newest first.' },
740
+ },
741
+ required: ['path', 'changes'],
742
+ },
743
+ write: false,
744
+ handler: async (args, ctx) => {
745
+ const branch = args.branch;
746
+ const path = args.path;
747
+ if (typeof path !== 'string' || path.length === 0)
748
+ throw new ToolError('`path` is required.', 400);
749
+ const workspaceId = await workspaceOf(ctx, branch);
750
+ const rel = await requireRead(ctx, branch, workspaceId, path);
751
+ const limit = typeof args.limit === 'number' ? args.limit : undefined;
752
+ const changes = await ctx.workflowService.listChangesForFile(workspaceId, path, limit);
753
+ return { path: rel, changes };
754
+ },
755
+ });
756
+ mount({
757
+ name: 'read_file_at',
758
+ description: 'One file as it was at a point in history: `at` is a commit (from `list_file_changes`, on `branch`\'s ' +
759
+ 'own history) or the name of another branch (its published tip). Answers `content` (null when the ' +
760
+ 'file was not there) and `sha`, the commit it was read at; for a commit, also `before`, the file ' +
761
+ 'just before that commit. To put an earlier version back, write it with `write_file`. Takes the read ' +
762
+ 'the file takes at that point.',
763
+ inputs: {
764
+ type: 'object',
765
+ properties: {
766
+ path: { type: 'string', minLength: 1, description: 'The file, workspace-relative.' },
767
+ at: { type: 'string', minLength: 1, description: 'A commit sha, or a branch name.' },
768
+ sessionId: SESSION_ID_INPUT,
769
+ },
770
+ required: ['path', 'at'],
771
+ additionalProperties: false,
772
+ },
773
+ outputs: {
774
+ type: 'object',
775
+ properties: {
776
+ path: { type: 'string', description: 'The file, repository-relative.' },
777
+ at: { type: 'string', description: 'What was asked for.' },
778
+ kind: { type: 'string', enum: ['commit', 'branch'] },
779
+ sha: { type: 'string', description: 'The commit the content was read at.' },
780
+ content: { type: ['string', 'null'], description: 'The file at that commit; null when it was not there.' },
781
+ before: { type: ['string', 'null'], description: 'For a commit: the file just before it; null when it was not there (or the commit is the first).' },
782
+ },
783
+ required: ['path', 'at', 'kind', 'sha', 'content'],
784
+ },
785
+ write: false,
786
+ handler: async (args, ctx) => {
787
+ const branch = args.branch;
788
+ const path = args.path;
789
+ const at = args.at;
790
+ if (typeof path !== 'string' || path.length === 0)
791
+ throw new ToolError('`path` is required.', 400);
792
+ if (typeof at !== 'string' || at.length === 0)
793
+ throw new ToolError('`at` is required: a commit sha or a branch name.', 400);
794
+ const workspaceId = await workspaceOf(ctx, branch);
795
+ // The hook and the workspace gate first, whichever point in history is
796
+ // read: the file is this workspace's file.
797
+ const rel = await requireRead(ctx, branch, workspaceId, path);
798
+ if (isCommitSha(at)) {
799
+ const { baseline, current } = await ctx.workflowService.fileAtChange(workspaceId, path, at);
800
+ return { path: rel, at, kind: 'commit', sha: at, content: current, before: baseline };
801
+ }
802
+ // Read at the branch's published tip, authorized at that very commit
803
+ // inside the read — before anything is said about the path there,
804
+ // the folder refusal included: the ref is a name a fetch may move
805
+ // between a verdict and a read; the commit is not.
806
+ const read = await ctx.workflowService.fileAtBranch(workspaceId, path, at, (commits) => requireReadAtCommits(ctx, workspaceId, rel, commits, at));
807
+ return { path: rel, at, kind: 'branch', sha: read.sha, content: read.content };
808
+ },
809
+ });
810
+ mount({
811
+ name: 'compare_file',
812
+ description: 'The unified diff of one file: between two branches (`from`, `to`; either may be `branch` itself), ' +
813
+ 'or of one commit on `branch` (`at`: what that commit changed in the file). Empty when identical. ' +
814
+ 'Takes the read the file takes on each side.',
815
+ inputs: {
816
+ type: 'object',
817
+ properties: {
818
+ path: { type: 'string', minLength: 1, description: 'The file, workspace-relative.' },
819
+ from: { type: 'string', minLength: 1, description: 'A branch: the diff\'s left side.' },
820
+ to: { type: 'string', minLength: 1, description: 'A branch: the diff\'s right side.' },
821
+ at: { type: 'string', minLength: 1, description: 'A commit sha on `branch`: the diff that commit made in the file.' },
822
+ sessionId: SESSION_ID_INPUT,
823
+ },
824
+ required: ['path'],
825
+ additionalProperties: false,
826
+ },
827
+ outputs: {
828
+ type: 'object',
829
+ properties: {
830
+ path: { type: 'string', description: 'The file, repository-relative.' },
831
+ diff: { type: 'string', description: 'A unified diff; empty when the two sides are identical.' },
832
+ },
833
+ required: ['path', 'diff'],
834
+ },
835
+ write: false,
836
+ handler: async (args, ctx) => {
837
+ const branch = args.branch;
838
+ const path = args.path;
839
+ if (typeof path !== 'string' || path.length === 0)
840
+ throw new ToolError('`path` is required.', 400);
841
+ const workspaceId = await workspaceOf(ctx, branch);
842
+ // As the compare route: the workspace's own gate on the path (the
843
+ // checked-out side can be served from the working tree), then each
844
+ // compared side at the commit it was served from.
845
+ const rel = await requireRead(ctx, branch, workspaceId, path);
846
+ if (typeof args.at === 'string' && args.at.length > 0) {
847
+ if (!isCommitSha(args.at))
848
+ throw new ToolError('`at` must be a full commit sha.', 400);
849
+ return { path: rel, diff: await ctx.workflowService.showFileAtChange(workspaceId, path, args.at) };
850
+ }
851
+ const from = args.from;
852
+ const to = args.to;
853
+ if (typeof from !== 'string' || from.length === 0 || typeof to !== 'string' || to.length === 0) {
854
+ throw new ToolError('Give `from` and `to` (two branches), or `at` (one commit).', 400);
855
+ }
856
+ const compared = await ctx.workflowService.compareFile(workspaceId, path, from, to, async (sides) => {
857
+ await requireReadAtCommits(ctx, workspaceId, rel, sides.from, from);
858
+ await requireReadAtCommits(ctx, workspaceId, rel, sides.to, to);
859
+ });
860
+ return { path: rel, diff: compared.diff };
861
+ },
862
+ });
863
+ mount({
864
+ name: 'branch_status',
865
+ description: 'Where `branch` stands, before proposing or syncing a draft. Answers whether it is on the shared ' +
866
+ 'repository, how far ahead of and behind its upstream it is, whether the shared branch has commits this ' +
867
+ 'workspace lacks (`behindRemote`: `update_branch` brings them in), the files written but not committed ' +
868
+ 'yet, the protected branch it was forked from (`forkBase`), and `changedPaths`: what it changes against ' +
869
+ '`base` (default: the fork base) — the files a change request into it would carry.',
870
+ inputs: {
871
+ type: 'object',
872
+ properties: {
873
+ base: { type: 'string', minLength: 1, description: 'The branch to compare against (default: the fork base).' },
874
+ sessionId: SESSION_ID_INPUT,
875
+ },
876
+ additionalProperties: false,
877
+ },
878
+ outputs: {
879
+ type: 'object',
880
+ properties: {
881
+ branch: { type: 'string' },
882
+ isProtected: { type: 'boolean' },
883
+ hasRemote: { type: 'boolean', description: 'True when the shared repository has the branch.' },
884
+ ahead: { type: ['integer', 'null'], description: 'Commits ahead of the upstream (or the fork base); null when unresolved.' },
885
+ behind: { type: ['integer', 'null'], description: 'Commits behind; null when unresolved.' },
886
+ behindRemote: { type: 'boolean', description: 'The shared branch has commits this workspace has not merged yet.' },
887
+ uncommittedPaths: { type: 'array', items: { type: 'string' }, description: 'Written but not committed yet (saves still landing).' },
888
+ forkBase: { type: ['string', 'null'], description: 'The protected branch this one was forked from; null when none can be reached.' },
889
+ base: { type: ['string', 'null'], description: 'What `changedPaths` is against.' },
890
+ changedPaths: { type: 'array', items: { type: 'string' }, description: 'Repository-relative; rename-aware; only the paths you may read. Empty when `base` is null.' },
891
+ withheldPaths: { type: 'integer', description: 'How many changed or uncommitted paths were left out because you may not read them.' },
892
+ },
893
+ required: ['branch', 'isProtected', 'hasRemote', 'ahead', 'behind', 'behindRemote', 'uncommittedPaths', 'forkBase', 'base', 'changedPaths', 'withheldPaths'],
894
+ },
895
+ write: false,
896
+ handler: async (args, ctx) => {
897
+ const branch = args.branch;
898
+ const workspaceId = await workspaceOf(ctx, branch);
899
+ // Each read below takes the workspace's reservation on its own: this
900
+ // is a REPORT of independent facts, not a range measured across steps,
901
+ // and a save or sync landing between two of them is tolerated — the
902
+ // next call reports it. (The one answer that must be exact, what a
903
+ // merge is of, is taken under one reservation by `update_branch`.)
904
+ const [status, branches, pending, forkBase] = await Promise.all([
905
+ ctx.workflowService.branchStatus(workspaceId),
906
+ ctx.workflowService.listBranches(workspaceId),
907
+ ctx.workflowService.listPendingChangePaths(workspaceId),
908
+ ctx.workflowService.resolveForkBase(workspaceId, branch),
909
+ ]);
910
+ const info = branches.find((b) => b.name === branch);
911
+ const base = typeof args.base === 'string' && args.base.length > 0 ? args.base : forkBase;
912
+ // A path's name is information too: the changed paths are shown as the
913
+ // change-request reads show them (readable at `origin/<base>`), the
914
+ // uncommitted ones as the workspace's own listing would.
915
+ const changedAll = base && base !== branch ? await ctx.workflowService.changedPathsBetweenBranches(workspaceId, base, branch) : [];
916
+ const readableChanged = base ? await readableAt(ctx, workspaceId, base, changedAll) : new Set();
917
+ const changedPaths = changedAll.filter((p) => readableChanged.has(p));
918
+ const pendingRel = pending.map((p) => stripKbDir(p, kbDirName));
919
+ const pendingVerdicts = pendingRel.length > 0 ? await accessControl.canReadBatch(workspaceId, ctx.user.email, pendingRel) : new Map();
920
+ const uncommittedPaths = pendingRel.filter((p) => pendingVerdicts.get(p) === true);
921
+ return {
922
+ branch,
923
+ isProtected: info?.isProtected ?? kb.protectedBranches.has(branch),
924
+ hasRemote: info?.hasRemote ?? status.hasUpstream,
925
+ ahead: info?.ahead ?? null,
926
+ behind: info?.behind ?? null,
927
+ behindRemote: status.unmergedFromUpstream,
928
+ uncommittedPaths,
929
+ forkBase,
930
+ base: base && base !== branch ? base : null,
931
+ changedPaths,
932
+ withheldPaths: changedAll.length - changedPaths.length + (pendingRel.length - uncommittedPaths.length),
933
+ };
934
+ },
935
+ });
936
+ mount({
937
+ name: 'update_branch',
938
+ description: 'Bring another branch into `branch` as a merge commit by you, and publish it: `from` (a draft\'s ' +
939
+ 'target, to refresh the draft), or left out, the branch\'s own shared state when it moved while this ' +
940
+ 'workspace held commits (`branch_status` says `behindRemote`). Never a protected branch. CONFLICTS: ' +
941
+ 'the first call answers `conflicts` naming every conflicted path with the file at the merge base, on ' +
942
+ 'each side (`ours` = `branch`, `theirs` = `from`) and the working copy with git\'s markers, and leaves ' +
943
+ 'the branch as it was. Decide each file (keep both sides\' information unless one is clearly stale; ' +
944
+ '`list_file_changes` shows intent), then call again with `resolutions`, one per conflicted path: ' +
945
+ '`content` (the resolved text) or `choose` (`ours`, `theirs`, `delete`). Only conflicted paths are ' +
946
+ 'written here; other edits go through the file tools. Answers `merged`, `nothing-to-merge`, ' +
947
+ '`conflicts` again (something changed meanwhile), or `pending-commits` (writes still landing: retry).',
948
+ inputs: {
949
+ type: 'object',
950
+ properties: {
951
+ from: { type: 'string', minLength: 1, description: 'The branch to bring in (default: this branch\'s own shared state).' },
952
+ sessionId: SESSION_ID_INPUT,
953
+ resolutions: {
954
+ type: 'array',
955
+ description: 'One per conflicted path, from a previous `conflicts` answer.',
956
+ items: {
957
+ type: 'object',
958
+ properties: {
959
+ path: { type: 'string', minLength: 1, description: 'The conflicted path, as the answer named it.' },
960
+ content: { type: 'string', description: 'The resolved text of the file.' },
961
+ choose: { type: 'string', enum: ['ours', 'theirs', 'delete'], description: 'Keep one side whole, or drop the file.' },
962
+ },
963
+ required: ['path'],
964
+ additionalProperties: false,
965
+ },
966
+ },
967
+ },
968
+ additionalProperties: false,
969
+ },
970
+ outputs: {
971
+ type: 'object',
972
+ properties: {
973
+ kind: { type: 'string', enum: ['merged', 'nothing-to-merge', 'conflicts', 'pending-commits'] },
974
+ from: { type: 'string', description: 'The branch brought in.' },
975
+ sha: { type: 'string', description: '`merged`: the merge commit, now the tip of `branch`, published; `nothing-to-merge`: the unchanged tip.' },
976
+ resolvedPaths: { type: 'array', items: { type: 'string' }, description: '`merged`: the conflicts the resolutions settled.' },
977
+ mergeBase: { type: ['string', 'null'], description: '`conflicts`: the common ancestor; null when the histories are unrelated.' },
978
+ ours: { type: 'string', description: '`conflicts`: the tip of `branch`.' },
979
+ theirs: { type: 'string', description: '`conflicts`: the tip of `from`.' },
980
+ files: {
981
+ type: 'array',
982
+ description: '`conflicts`: every conflicted path you may read, with the file at the base, on each side, and the marked-up ' +
983
+ 'working copy. A side is null when that side has no file — or when `truncated` names it (too large or not ' +
984
+ 'text): then read `ours` with `read_file`, `theirs` with `read_file_at` at `from`, `base` with `read_file_at` ' +
985
+ 'at `mergeBase`.',
986
+ items: {
987
+ type: 'object',
988
+ properties: {
989
+ path: { type: 'string' },
990
+ base: { type: ['string', 'null'] },
991
+ ours: { type: ['string', 'null'] },
992
+ theirs: { type: ['string', 'null'] },
993
+ merged: { type: ['string', 'null'] },
994
+ truncated: { type: 'array', items: { type: 'string', enum: ['base', 'ours', 'theirs', 'merged'] } },
995
+ },
996
+ required: ['path', 'base', 'ours', 'theirs', 'merged'],
997
+ },
998
+ },
999
+ unresolved: { type: 'array', items: { type: 'string' }, description: '`conflicts`: the paths you may read that no resolution covered.' },
1000
+ withheldConflicts: {
1001
+ type: 'integer',
1002
+ description: '`conflicts`: how many conflicted files were left out because you may not read them on one of the two branches. ' +
1003
+ 'They are not yours to settle: ask a person who can read them to update the draft in the app.',
1004
+ },
1005
+ branch: { type: 'string', description: '`pending-commits`: the branch whose writes are not committed yet.' },
1006
+ pending: { type: 'integer', description: '`pending-commits`: how many.' },
1007
+ needsAttention: { type: 'string', description: '`pending-commits`: a queued commit failed; the worker\'s message. Tell the user.' },
1008
+ message: { type: 'string', description: '`pending-commits`: what to do next.' },
1009
+ },
1010
+ required: ['kind'],
1011
+ },
1012
+ write: true,
1013
+ handler: async (args, ctx) => {
1014
+ const branch = args.branch;
1015
+ const from = args.from;
1016
+ if (from !== undefined && (typeof from !== 'string' || from.length === 0)) {
1017
+ throw new ToolError('`from` must be a branch name.', 400);
1018
+ }
1019
+ let resolutions;
1020
+ if (args.resolutions !== undefined) {
1021
+ if (!Array.isArray(args.resolutions))
1022
+ throw new ToolError('`resolutions` must be a list.', 400);
1023
+ resolutions = args.resolutions.map((r, i) => {
1024
+ const entry = r;
1025
+ if (!entry || typeof entry.path !== 'string' || entry.path.length === 0) {
1026
+ throw new ToolError(`resolutions[${i}]: \`path\` is required.`, 400);
1027
+ }
1028
+ const out = { path: entry.path };
1029
+ if (entry.content !== undefined) {
1030
+ if (typeof entry.content !== 'string')
1031
+ throw new ToolError(`resolutions[${i}]: \`content\` must be text.`, 400);
1032
+ out.content = entry.content;
1033
+ }
1034
+ if (entry.choose !== undefined) {
1035
+ if (entry.choose !== 'ours' && entry.choose !== 'theirs' && entry.choose !== 'delete') {
1036
+ throw new ToolError(`resolutions[${i}]: \`choose\` is \`ours\`, \`theirs\` or \`delete\`.`, 400);
1037
+ }
1038
+ out.choose = entry.choose;
1039
+ }
1040
+ return out;
1041
+ });
1042
+ }
1043
+ const workspaceId = await workspaceOf(ctx, branch);
1044
+ /**
1045
+ * Whether the caller may read `rel` on both sides of this merge — at
1046
+ * the two COMMITS the answer says the merge was of, which is what its
1047
+ * bytes are from, never at a branch ref that may have moved since the
1048
+ * reservation was released — with the deployment's read hook told of
1049
+ * the read, as every history read tells it: a hook that refuses makes
1050
+ * the file one the caller may not read; a hook that fails is not an
1051
+ * answer and propagates.
1052
+ */
1053
+ const mayReadBothSides = async (rel, at) => {
1054
+ try {
1055
+ await notifyAgentRead(agentAccessGate, ctx, branch, `${kbDirName}/${rel}`);
1056
+ }
1057
+ catch (err) {
1058
+ // A hook's own refusal carries a status; anything else is a failure of the hook, not an answer.
1059
+ if (hasHttpStatus(err))
1060
+ return false;
1061
+ throw err;
1062
+ }
1063
+ return readableAtCommits(accessControl, workspaceId, ctx.user.email, rel, [at.ours, at.theirs]);
1064
+ };
1065
+ // A resolution reads a file on both branches and writes it on the
1066
+ // draft, so the deployment's hooks are asked as they are for any read
1067
+ // and any write. The access model's own verdicts — may the caller read
1068
+ // the file on both branches, may they change it on the draft — are the
1069
+ // service's, asked inside the merge against the source commit as
1070
+ // fetched (`updateBranch`), so a rule that changed with the source
1071
+ // cannot be outrun by a check made before it was fetched.
1072
+ for (const r of resolutions ?? []) {
1073
+ const wsPath = `${kbDirName}/${stripKbDir(r.path, kbDirName)}`;
1074
+ try {
1075
+ await notifyAgentRead(agentAccessGate, ctx, branch, wsPath);
1076
+ }
1077
+ catch (err) {
1078
+ if (hasHttpStatus(err)) {
1079
+ throw new ToolError(`You may not read "${stripKbDir(r.path, kbDirName)}" here, so it is not yours to settle.`, 403, {
1080
+ kind: 'read-denied',
1081
+ path: stripKbDir(r.path, kbDirName),
1082
+ });
1083
+ }
1084
+ throw err;
1085
+ }
1086
+ await assertAgentWriteAllowed(agentAccessGate, ctx, branch, wsPath);
1087
+ }
1088
+ // A resolution's content lands on the draft by the merge, not by the
1089
+ // file tools' filesystem: it takes the same pre-disk gate that
1090
+ // filesystem runs (`roles.yaml` must parse, no new role, no unknown
1091
+ // group), handed to the service to ask before the merge.
1092
+ const outcome = resolutions !== undefined
1093
+ ? await ctx.workflowService.updateBranch(workspaceId, ctx.user, {
1094
+ ...(from !== undefined ? { from } : {}),
1095
+ resolutions,
1096
+ validateWrite: await ctx.getWriteValidator(branch),
1097
+ })
1098
+ : await ctx.workflowService.updateBranch(workspaceId, ctx.user, from !== undefined ? { from } : {});
1099
+ if (outcome.kind !== 'conflicts')
1100
+ return outcome;
1101
+ // A conflict answer carries the file on both branches, and a path's
1102
+ // name is information too: a file the caller may not read on both is
1103
+ // left out of `files` and `unresolved` alike and only counted.
1104
+ const files = [];
1105
+ for (const f of outcome.files)
1106
+ if (await mayReadBothSides(f.path, outcome))
1107
+ files.push(f);
1108
+ const shown = new Set(files.map((f) => f.path));
1109
+ return {
1110
+ ...outcome,
1111
+ files,
1112
+ unresolved: outcome.unresolved.filter((p) => shown.has(p)),
1113
+ withheldConflicts: outcome.files.length - files.length,
1114
+ };
1115
+ },
1116
+ });
661
1117
  }
662
1118
  //# sourceMappingURL=workflow.tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.tools.js","sourceRoot":"","sources":["../../../../src/modules/workflow/agent-tools/workflow.tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.tools.js","sourceRoot":"","sources":["../../../../src/modules/workflow/agent-tools/workflow.tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAsC,MAAM,qCAAqC,CAAC;AACnH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,gBAAgB,EAAwB,MAAM,0BAA0B,CAAC;AAC5H,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,EACZ,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAErC,2FAA2F;AAC3F,SAAS,UAAU,CAAC,IAAY,EAAE,SAAiB;IACjD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpF,CAAC;AAED,4EAA4E;AAC5E,kFAAkF;AAClF,MAAM,eAAe,GAAG,CAAC,EAAwC,EAAE,EAAE,CACnE,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAE/D,4EAA4E;AAC5E,+EAA+E;AAC/E,4DAA4D;AAC5D,MAAM,YAAY,GAAe;IAC/B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAChC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,yEAAyE,EAAE;QAC5H,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,qCAAqC,EAAE;QACzF,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uDAAuD,EAAE;KACrG;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;CAClE,CAAC;AAEF,MAAM,YAAY,GAAe;IAC/B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;KAC/D;IACD,QAAQ,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC;CACzE,CAAC;AAEF,MAAM,8BAA8B,GAAe;IACjD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;QACrF,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;QAChF,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4FAA4F;SAC1G;KACF;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAEF,MAAM,4BAA4B,GAAe;IAC/C,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,2EAA2E,EAAE;QAC7I,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE;QAC9G,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kEAAkE,EAAE;QAC9G,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oFAAoF,EAAE;QACnI,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sGAAsG,EAAE;KAC3J;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC;CAChE,CAAC;AAEF,MAAM,aAAa,GAAe;IAChC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;QAC5H,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;QAC9E,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0BAA0B,EAAE;QAClE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;QAC7E,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;QAClF,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAC5D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;KAClF;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;CAC3D,CAAC;AAEF,MAAM,sBAAsB,GAAe;IACzC,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,6GAA6G;QAC7G,kFAAkF;CACrF,CAAC;AACF,MAAM,0BAA0B,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kEAAkE,EAAE,CAAC;AAEnJ,+FAA+F;AAC/F,MAAM,uBAAuB,GAAe;IAC1C,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,sBAAsB,EAAE,OAAO,EAAE,0BAA0B,EAAE;IAC7G,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;CAC5B,CAAC;AAEF,yEAAyE;AACzE,SAAS,MAAM,CAAC,EAAqD;IACnE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,0BAA0B,GAAe;IAC7C,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,EAAE,sBAAsB;QAC3B,OAAO,EAAE,0BAA0B;QACnC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACvE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;QACvF,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;QACjF,SAAS,EAAE;YACT,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,4BAA4B;YACnC,WAAW,EAAE,+GAA+G;SAC7H;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EAAE,+GAA+G;SAC7H;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,8BAA8B;YACrC,WAAW,EAAE,uDAAuD,yBAAyB,8CAA8C;SAC5I;QACD,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0DAA0D,EAAE;QACxG,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EACT,sMAAsM;SACzM;KACF;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,CAAC;CACzI,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAuB,EACvB,MAAc,EACd,QAAwB,EACxB,WAA+B;AAC/B,2GAA2G;AAC3G,EAA+F;AAC/F;;;;GAIG;AACH,mBAA2E;AAC3E;;;;;;;GAOG;AACH,aAAsG;AACtG;;;;GAIG;AACH,eAAgC;IAEhC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,CAAC,IAqBd,EAAQ,EAAE;QACT,MAAM,IAAI,GAAG,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,2EAA2E;QAC3E,yEAAyE;QACzE,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,GAAG,GAAG,OAAO,CAAC;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;YAChD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SACxD,CAAC,CAAC;QACH,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC3D,oEAAoE;QACpE,4EAA4E;QAC5E,4EAA4E;QAC5E,2BAA2B;QAC3B,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EACzB,QAAQ,EACR,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,yEAAyE;QACzE,qEAAqE;QACrE,4DAA4D;QAC5D,sCAAsC;QACtC,WAAW;QACT,iEAAiE;QACjE,2DAA2D;QAC3D,qEAAqE;QACrE,8DAA8D;QAC9D,yCAAyC;QACzC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EACpE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CACtB,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,0EAA0E;IAC1E,yEAAyE;IACzE,sEAAsE;IACtE,4EAA4E;IAC5E,4EAA4E;IAC5E,0BAA0B;IAC1B,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAgB,EAAmB,EAAE,CACxE,CAAC,MAAM,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;IAE/E,KAAK,CAAC;QACJ,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,qFAAqF;YACrF,8GAA8G;YAC9G,kFAAkF;QACpF,2EAA2E;QAC3E,4EAA4E;QAC5E,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE;QACvE,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,iEAAiE,EAAE,EAAE;YAChJ,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;QACD,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE,CAAC,CAAC;YAC3C,QAAQ,EAAE,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;SACnF,CAAC;KACH,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,2FAA2F;YAC3F,yFAAyF;YACzF,kGAAkG;QACpG,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBAC/G,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;aAC1E;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,YAAY,EAAE,WAAW,EAAE,4CAA4C,EAAE,EAAE;YACtG,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,EAAE,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAgB,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE;gBACpG,OAAO,EAAE,IAAI,CAAC,OAAiB;gBAC/B,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;aACjF,CAAC;SACH,CAAC;KACH,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,6FAA6F;YAC7F,sFAAsF;YACtF,mFAAmF;QACrF,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,CAAC;oBACZ,WAAW,EAAE,2DAA2D,SAAS,eAAe,SAAS,4GAA4G,SAAS,iCAAiC;iBAChQ;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sEAAsE,EAAE;gBAC/G,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gDAAgD,EAAE;gBAC1F,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gEAAgE,EAAE;aAC1G;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;YACrC,mEAAmE;YACnE,yEAAyE;YACzE,wEAAwE;YACxE,iEAAiE;YACjE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,SAAS,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAC;YACjF,CAAC;YACD,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAClC,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,cAAc,qBAAqB,EAAE,CAAC;YAChH,CAAC;YACD,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EACT,8FAA8F;YAC9F,qFAAqF;QACvF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE;QACvE,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,EAAE,EAAE;YACnF,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAgB,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACpG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,6FAA6F;YAC7F,oCAAoC,eAAe,CAAC,EAAE,CAAC,2CAA2C;YAClG,2FAA2F;YAC3F,2BAA2B;QAC7B,yEAAyE;QACzE,4EAA4E;QAC5E,oEAAoE;QACpE,UAAU,EAAE,IAAI;QAChB,yEAAyE;QACzE,sEAAsE;QACtE,aAAa,EAAE,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,qGAAqG,EAAE;gBAC1J,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,uFAAuF,EAAE;aAC/I;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC5B,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,YAAY,EAAE,WAAW,EAAE,0BAA0B,EAAE,EAAE;YACpF,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;QACD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAgB,CAAC;YACnC,0EAA0E;YAC1E,0EAA0E;YAC1E,sEAAsE;YACtE,wEAAwE;YACxE,qEAAqE;YACrE,qCAAqC;YACrC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,SAAS,CAAC,2DAA2D,EAAE,GAAG,EAAE;oBACpF,IAAI,EAAE,eAAe;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,oEAAoE;YACpE,yEAAyE;YACzE,iEAAiE;YACjE,yEAAyE;YACzE,iEAAiE;YACjE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,SAAS,CACjB,6DAA6D,IAAI,6BAA6B,EAC9F,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;aACjF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,gGAAgG;YAChG,6EAA6E;YAC7E,mGAAmG;YACnG,mGAAmG;YACnG,8FAA8F;YAC9F,oGAAoG;YACpG,sEAAsE,yBAAyB,sBAAsB;YACrH,mGAAmG;YACnG,iCAAiC;YACjC,kGAAkG;QACpG,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBACrG,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC,aAAa,KAAK,EAAE;gBACnH,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,sCAAsC,EAAE;gBAC5G,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qDAAqD,EAAE;gBACnG,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,uBAAuB,CAAC,EAAE;oBAC7D,WAAW,EACT,uGAAuG;wBACvG,+DAA+D,yBAAyB,uBAAuB;wBAC/G,oHAAoH;iBACvH;aACF;YACD,QAAQ,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC;YACnD,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE,IAAI;QACX,4EAA4E;QAC5E,0EAA0E;QAC1E,mEAAmE;QACnE,UAAU,EAAE,IAAI;QAChB,yEAAyE;QACzE,uEAAuE;QACvE,6CAA6C;QAC7C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE,CACxC,sBAAsB,CACpB,MAAM,GAAG,CAAC,eAAe,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAsB,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE;YACvG,YAAY,EAAE,IAAI,CAAC,YAAsB;YACzC,YAAY,EAAE,IAAI,CAAC,YAAsB;YACzC,KAAK,EAAE,IAAI,CAAC,KAAe;YAC3B,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SACjF,CAAC,EACF,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAC3B;KACJ,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,6BAA6B;QACnC,WAAW,EACT,gGAAgG;YAChG,0DAA0D;QAC5D,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBAC9E,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBAC/E,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sIAAsI,SAAS,gFAAgF,EAAE;gBACtQ,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,qDAAqD,EAAE;gBACzG,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;aACrE;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC5B,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBACxE,aAAa,EAAE,EAAE,GAAG,uBAAuB,EAAE,WAAW,EAAE,kCAAkC,EAAE;aAC/F;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;SACvC;QACD,KAAK,EAAE,IAAI;QACX,wEAAwE;QACxE,0EAA0E;QAC1E,6BAA6B;QAC7B,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;YACrC,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1F,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAQ,MAAM,IAAI,SAAS,CAAC,gFAAgF,EAAE,GAAG,CAAC,CAAC;YACrJ,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,sBAAsB,CAAC,MAAM,EAAE;gBACtE,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,MAAM,qBAAqB,CAAC,GAAG,CAAC;gBAC7C,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAQ,MAAM,IAAI,SAAS,CAAC,mBAAmB,MAAM,aAAa,EAAE,GAAG,CAAC,CAAC;YACvF,CAAC;YACD,2EAA2E;YAC3E,yEAAyE;YACzE,4EAA4E;YAC5E,uEAAuE;YACvE,0EAA0E;YAC1E,wCAAwC;YACxC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAQ,MAAM,IAAI,SAAS,CAAC,mBAAmB,MAAM,OAAO,MAAM,CAAC,KAAK,4CAA4C,EAAE,GAAG,CAAC,CAAC;YACjJ,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CACnD,MAAM,EACN,GAAG,CAAC,IAAI,EACR,EAAE,IAAI,EAAE,IAAI,CAAC,IAAc,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,EAClH,MAAM,CAAC,OAAO,CACf,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,wGAAwG;YACxG,2GAA2G;YAC3G,sFAAsF;YACtF,iGAAiG;YACjG,4GAA4G;YAC5G,0DAA0D;YAC1D,8FAA8F;YAC9F,wGAAwG;YACxG,yGAAyG;YACzG,uGAAuG;YACvG,uEAAuE;QACzE,sEAAsE;QACtE,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,yCAAyC,EAAE;gBAChG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,qCAAqC,EAAE;aAC7F;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAC9B,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,sFAAsF;wBACtF,uFAAuF;wBACvF,oDAAoD;oBACtD,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,CAAC,EAAE;wBAC9G,GAAG,EAAE;4BACH,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,oGAAoG;gCACpG,6EAA6E;yBAChF;wBACD,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qDAAqD,EAAE;wBACjI,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2FAA2F,EAAE;wBACpI,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uJAAuJ,EAAE;wBAClM,cAAc,EAAE;4BACd,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,8FAA8F;gCAC9F,uCAAuC;yBAC1C;wBACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6DAA6D,EAAE;qBACxG;oBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;iBACnB;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;QACD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3G,MAAM,IAAI,SAAS,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACtF,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,kFAAkF;YAClF,sGAAsG;YACtG,kGAAkG;YAClG,yGAAyG;YACzG,qGAAqG;YACrG,wGAAwG;YACxG,uDAAuD;YACvD,iGAAiG;YACjG,oFAAoF;YACpF,uGAAuG;YACvG,2FAA2F;YAC3F,6CAA6C;QAC/C,gFAAgF;QAChF,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE;gBAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oDAAoD,EAAE;gBAC9F,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,gGAAgG;iBAC9G;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;gBACtD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,oGAAoG,EAAE;gBAC3J,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gFAAgF,EAAE;gBACpI,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBACrE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4EAA4E,EAAE;gBACzH,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE;gBAClH,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8DAA8D,EAAE;gBACjH,kBAAkB,EAAE;oBAClB,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,gHAAgH;oBAC7H,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;4BACnD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;4BACvE,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mEAAmE,EAAE;yBACvH;wBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC;qBACtD;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC;SAC3C;QACD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,SAAS,CAAC,4DAA4D,EAAE,GAAG,EAAE;oBACrF,IAAI,EAAE,eAAe;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,GAAG,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;gBAC7D,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;gBAC5B,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI;gBAC9C,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC;aACrD,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,4EAA4E;IAC5E,4EAA4E;IAC5E,kEAAkE;IAClE,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACvE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,6FAA6F;YAC7F,6FAA6F;YAC7F,4FAA4F;YAC5F,0FAA0F;QAC5F,uFAAuF;QACvF,YAAY,EAAE,IAAI;QAClB,2EAA2E;QAC3E,2DAA2D;QAC3D,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE,EAAE;YACvH,QAAQ,EAAE,CAAC,QAAQ,CAAC;YACpB,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4DAA4D,EAAE;gBACxG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBACjE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBAChF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+EAA+E,EAAE;aACvH;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC;SACxD;QACD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;YACrC,uEAAuE;YACvE,wEAAwE;YACxE,wDAAwD;YACxD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,MAAM,IAAI,SAAS,CAAC,mBAAmB,MAAM,+BAA+B,KAAK,IAAI,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;YACzG,CAAC;YACD,MAAM,GAAG,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACvD,0EAA0E;YAC1E,sEAAsE;YACtE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACrH,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,iBAAiB;gBAC9B,IAAI,EAAE,+FAA+F;aACtG,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,8EAA8E;IAC9E,EAAE;IACF,wEAAwE;IACxE,oEAAoE;IACpE,wEAAwE;IACxE,gBAAgB;IAEhB,2EAA2E;IAC3E,MAAM,WAAW,GAAG,KAAK,EAAE,GAAgB,EAAE,MAAc,EAAmB,EAAE;QAC9E,MAAM,GAAG,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF;;;;OAIG;IACH,MAAM,WAAW,GAAG,KAAK,EAAE,GAAgB,EAAE,MAAc,EAAE,WAAmB,EAAE,IAAY,EAAmB,EAAE;QACjH,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxC,MAAM,eAAe,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CAAC,sCAAsC,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,oBAAoB,GAAG,CAAC,GAAgB,EAAE,WAAmB,EAAE,GAAW,EAAE,OAA0B,EAAE,MAAc,EAAiB,EAAE,CAC7I,uBAAuB,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAE5F,mHAAmH;IACnH,MAAM,UAAU,GAAG,CAAC,GAAgB,EAAE,WAAmB,EAAE,IAAY,EAAE,KAAe,EAAwB,EAAE,CAChH,eAAe,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAG3E,KAAK,CAAC;QACJ,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,gGAAgG;YAChG,mGAAmG;YACnG,sGAAsG;YACtG,2DAA2D;QAC7D,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,yDAAyD,EAAE;gBAC9G,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,wCAAwC,EAAE;gBAC3G,SAAS,EAAE,gBAAgB;aAC5B;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBACvE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE;aAC9E;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;SAC9B;QACD,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;YACnG,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACvF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,uGAAuG;YACvG,mGAAmG;YACnG,kGAAkG;YAClG,sGAAsG;YACtG,+BAA+B;QACjC,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBACpF,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBACpF,SAAS,EAAE,gBAAgB;aAC5B;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;YACxB,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBACvE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;gBAC1D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;gBACpD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;gBAC3E,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE;gBAC1G,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,iGAAiG,EAAE;aACrJ;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;SACnD;QACD,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;YACnG,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;YAC5H,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnD,uEAAuE;YACvE,2CAA2C;YAC3C,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YACxF,CAAC;YACD,qEAAqE;YACrE,kEAAkE;YAClE,kEAAkE;YAClE,mDAAmD;YACnD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAClJ,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACjF,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,oGAAoG;YACpG,mGAAmG;YACnG,6CAA6C;QAC/C,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBACpF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBACvF,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBACtF,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,kEAAkE,EAAE;gBACrH,SAAS,EAAE,gBAAgB;aAC5B;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBACvE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yDAAyD,EAAE;aACjG;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;SAC3B;QACD,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;YACnG,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnD,kEAAkE;YAClE,mEAAmE;YACnE,kDAAkD;YAClD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;gBACvF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACrG,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/F,MAAM,IAAI,SAAS,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClG,MAAM,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACpE,MAAM,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,kGAAkG;YAClG,yGAAyG;YACzG,wGAAwG;YACxG,yGAAyG;YACzG,mFAAmF;QACrF,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,yDAAyD,EAAE;gBAC9G,SAAS,EAAE,gBAAgB;aAC5B;YACD,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAChC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iDAAiD,EAAE;gBAC9F,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,yEAAyE,EAAE;gBAC5H,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,uCAAuC,EAAE;gBAC3F,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kEAAkE,EAAE;gBAClH,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,sDAAsD,EAAE;gBACnI,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,+EAA+E,EAAE;gBACpI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAClF,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,4FAA4F,EAAE;gBACrK,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oFAAoF,EAAE;aACtI;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,CAAC;SAC7J;QACD,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;YACrC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnD,qEAAqE;YACrE,uEAAuE;YACvE,oEAAoE;YACpE,mEAAmE;YACnE,mEAAmE;YACnE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9D,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC;gBAC7C,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC;gBAC7C,GAAG,CAAC,eAAe,CAAC,sBAAsB,CAAC,WAAW,CAAC;gBACvD,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC;aACzD,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1F,uEAAuE;YACvE,oEAAoE;YACpE,yDAAyD;YACzD,MAAM,UAAU,GACd,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,2BAA2B,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClH,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;YACxG,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAChE,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAmB,CAAC;YACvJ,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACnF,OAAO;gBACL,MAAM;gBACN,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;gBAClE,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC,WAAW;gBAChD,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI;gBAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI;gBAC5B,YAAY,EAAE,MAAM,CAAC,oBAAoB;gBACzC,gBAAgB;gBAChB,QAAQ;gBACR,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBAC3C,YAAY;gBACZ,aAAa,EAAE,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;aACvG,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,CAAC;QACJ,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,kGAAkG;YAClG,sGAAsG;YACtG,qGAAqG;YACrG,sGAAsG;YACtG,wGAAwG;YACxG,qGAAqG;YACrG,kGAAkG;YAClG,oGAAoG;YACpG,6FAA6F;YAC7F,sGAAsG;QACxG,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,oEAAoE,EAAE;gBACzH,SAAS,EAAE,gBAAgB;gBAC3B,WAAW,EAAE;oBACX,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,8DAA8D;oBAC3E,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,8CAA8C,EAAE;4BACnG,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;4BAC1E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,wCAAwC,EAAE;yBACtH;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;wBAClB,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;aACF;YACD,oBAAoB,EAAE,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE;gBAC9F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBAC/D,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wGAAwG,EAAE;gBAC9I,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,kDAAkD,EAAE;gBAC5H,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,0EAA0E,EAAE;gBAChI,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBAC1E,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAC1E,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,8GAA8G;wBAC9G,2GAA2G;wBAC3G,+GAA+G;wBAC/G,iBAAiB;oBACnB,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;4BAClC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;4BAClC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;4BACpC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;4BACpC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;yBACpG;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;qBACvD;iBACF;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,iEAAiE,EAAE;gBACxI,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,iHAAiH;wBACjH,8FAA8F;iBACjG;gBACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mEAAmE,EAAE;gBAC5G,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8BAA8B,EAAE;gBACzE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kFAAkF,EAAE;gBACnI,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;aAChF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;QACD,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAgB,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC1E,MAAM,IAAI,SAAS,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,WAAoG,CAAC;YACzG,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;oBAAE,MAAM,IAAI,SAAS,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBAChG,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,CAAS,EAAE,EAAE;oBAC3D,MAAM,KAAK,GAAG,CAA4B,CAAC;oBAC3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxE,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;oBACvE,CAAC;oBACD,MAAM,GAAG,GAA8E,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC5G,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBAChC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;4BAAE,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;wBAChH,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;oBAC9B,CAAC;oBACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BACtF,MAAM,IAAI,SAAS,CAAC,eAAe,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAC;wBACnG,CAAC;wBACD,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;oBAC5B,CAAC;oBACD,OAAO,GAAG,CAAC;gBACb,CAAC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnD;;;;;;;;eAQG;YACH,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAoC,EAAoB,EAAE;gBACrG,IAAI,CAAC;oBACH,MAAM,eAAe,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,gGAAgG;oBAChG,IAAI,aAAa,CAAC,GAAG,CAAC;wBAAE,OAAO,KAAK,CAAC;oBACrC,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,OAAO,iBAAiB,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAClG,CAAC,CAAC;YACF,kEAAkE;YAClE,sEAAsE;YACtE,uEAAuE;YACvE,uEAAuE;YACvE,iEAAiE;YACjE,mEAAmE;YACnE,0DAA0D;YAC1D,KAAK,MAAM,CAAC,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC/D,IAAI,CAAC;oBACH,MAAM,eAAe,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,IAAI,SAAS,CAAC,qBAAqB,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,uCAAuC,EAAE,GAAG,EAAE;4BAClH,IAAI,EAAE,aAAa;4BACnB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC;yBACpC,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,MAAM,uBAAuB,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACtE,CAAC;YACD,qEAAqE;YACrE,+DAA+D;YAC/D,oEAAoE;YACpE,yDAAyD;YACzD,MAAM,OAAO,GACX,WAAW,KAAK,SAAS;gBACvB,CAAC,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE;oBAC5D,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,WAAW;oBACX,aAAa,EAAE,MAAM,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC;iBACnD,CAAC;gBACJ,CAAC,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxG,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,OAAO,CAAC;YACjD,oEAAoE;YACpE,qEAAqE;YACrE,+DAA+D;YAC/D,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK;gBAAE,IAAI,MAAM,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,OAAO;gBACL,GAAG,OAAO;gBACV,KAAK;gBACL,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1D,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;aACvD,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}