niceeval 0.15.1-canary.76 → 0.16.1

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 (714) hide show
  1. package/INDEX.md +45 -40
  2. package/dist/adapter-execution-trace.cjs.map +1 -1
  3. package/dist/adapter-execution-trace.d.cts +26 -0
  4. package/dist/adapter-execution-trace.d.mts +26 -0
  5. package/dist/adapter-execution-trace.d.ts +26 -0
  6. package/dist/adapter-usage.cjs.map +1 -1
  7. package/dist/adapter-usage.d.cts +9 -0
  8. package/dist/adapter-usage.d.mts +9 -0
  9. package/dist/adapter-usage.d.ts +9 -0
  10. package/dist/adapter.cjs +19 -4
  11. package/dist/adapter.cjs.map +1 -1
  12. package/dist/adapter.d.cts +37 -12
  13. package/dist/adapter.d.mts +37 -12
  14. package/dist/adapter.d.ts +37 -12
  15. package/dist/agents/ai-sdk.cjs +3 -0
  16. package/dist/agents/ai-sdk.cjs.map +1 -1
  17. package/dist/agents/bub.cjs +3 -0
  18. package/dist/agents/bub.cjs.map +1 -1
  19. package/dist/agents/claude-code-native.cjs +28 -2
  20. package/dist/agents/claude-code-native.cjs.map +1 -1
  21. package/dist/agents/claude-code.cjs +3 -0
  22. package/dist/agents/claude-code.cjs.map +1 -1
  23. package/dist/agents/codex.cjs +3 -0
  24. package/dist/agents/codex.cjs.map +1 -1
  25. package/dist/agents/coding-cli-versions.cjs +9 -10
  26. package/dist/agents/coding-cli-versions.cjs.map +1 -1
  27. package/dist/agents/coding-cli-versions.d.cts +1 -1
  28. package/dist/agents/coding-cli-versions.d.mts +1 -1
  29. package/dist/agents/coding-cli-versions.d.ts +1 -1
  30. package/dist/agents/deepseek-harness.cjs +3 -0
  31. package/dist/agents/deepseek-harness.cjs.map +1 -1
  32. package/dist/agents/hermes.cjs +3 -0
  33. package/dist/agents/hermes.cjs.map +1 -1
  34. package/dist/agents/index.cjs.map +1 -1
  35. package/dist/agents/index.d.cts +3 -2
  36. package/dist/agents/index.d.mts +3 -2
  37. package/dist/agents/index.d.ts +3 -2
  38. package/dist/agents/omp.cjs +3 -0
  39. package/dist/agents/omp.cjs.map +1 -1
  40. package/dist/agents/openai-compat.cjs +6 -0
  41. package/dist/agents/openai-compat.cjs.map +1 -1
  42. package/dist/agents/openclaw.cjs +3 -0
  43. package/dist/agents/openclaw.cjs.map +1 -1
  44. package/dist/agents/opencode.cjs +3 -0
  45. package/dist/agents/opencode.cjs.map +1 -1
  46. package/dist/agents/sdk-streams.cjs +9 -0
  47. package/dist/agents/sdk-streams.cjs.map +1 -1
  48. package/dist/agents/ui-message-stream.cjs +3 -0
  49. package/dist/agents/ui-message-stream.cjs.map +1 -1
  50. package/dist/assertions/api.cjs.map +1 -1
  51. package/dist/assertions/api.d.cts +27 -5
  52. package/dist/assertions/api.d.mts +27 -5
  53. package/dist/assertions/api.d.ts +27 -5
  54. package/dist/assertions/collection.cjs +6 -0
  55. package/dist/assertions/collection.cjs.map +1 -1
  56. package/dist/assertions/collection.d.cts +4 -2
  57. package/dist/assertions/collection.d.mts +4 -2
  58. package/dist/assertions/collection.d.ts +4 -2
  59. package/dist/assertions/collection.js +12 -8
  60. package/dist/assertions/context-match.cjs +70 -0
  61. package/dist/assertions/context-match.cjs.map +1 -0
  62. package/dist/assertions/context-match.d.cts +107 -0
  63. package/dist/assertions/context-match.d.mts +107 -0
  64. package/dist/assertions/context-match.d.ts +107 -0
  65. package/dist/assertions/context-match.js +12 -0
  66. package/dist/assertions/context-match.js.map +1 -0
  67. package/dist/assertions/full-content.cjs +109 -0
  68. package/dist/assertions/full-content.cjs.map +1 -0
  69. package/dist/assertions/full-content.d.cts +6 -0
  70. package/dist/assertions/full-content.d.mts +6 -0
  71. package/dist/assertions/full-content.d.ts +6 -0
  72. package/dist/assertions/full-content.js +12 -0
  73. package/dist/assertions/full-content.js.map +1 -0
  74. package/dist/assertions/judge-presets.cjs +2 -34
  75. package/dist/assertions/judge-presets.cjs.map +1 -1
  76. package/dist/assertions/judge-presets.d.cts +6 -9
  77. package/dist/assertions/judge-presets.d.mts +6 -9
  78. package/dist/assertions/judge-presets.d.ts +6 -9
  79. package/dist/assertions/judge-presets.js +8 -8
  80. package/dist/assertions/judge.cjs +107 -29
  81. package/dist/assertions/judge.cjs.map +1 -1
  82. package/dist/assertions/judge.d.cts +2 -0
  83. package/dist/assertions/judge.d.mts +2 -0
  84. package/dist/assertions/judge.d.ts +2 -0
  85. package/dist/assertions/match.cjs +244 -5
  86. package/dist/assertions/match.cjs.map +1 -1
  87. package/dist/assertions/match.d.cts +43 -3
  88. package/dist/assertions/match.d.mts +43 -3
  89. package/dist/assertions/match.d.ts +43 -3
  90. package/dist/assertions/match.js +88 -78
  91. package/dist/assertions/material.cjs +520 -0
  92. package/dist/assertions/material.cjs.map +1 -0
  93. package/dist/assertions/material.d.cts +56 -0
  94. package/dist/assertions/material.d.mts +56 -0
  95. package/dist/assertions/material.d.ts +56 -0
  96. package/dist/assertions/material.js +20 -0
  97. package/dist/assertions/material.js.map +1 -0
  98. package/dist/assertions/record/attachment.cjs +5 -2
  99. package/dist/assertions/record/attachment.cjs.map +1 -1
  100. package/dist/assertions/record/codec.cjs +2 -1
  101. package/dist/assertions/record/codec.cjs.map +1 -1
  102. package/dist/assertions/record/model.cjs.map +1 -1
  103. package/dist/assertions/record/model.d.cts +6 -1
  104. package/dist/assertions/record/model.d.mts +6 -1
  105. package/dist/assertions/record/model.d.ts +6 -1
  106. package/dist/assertions/runtime.cjs +207 -14
  107. package/dist/assertions/runtime.cjs.map +1 -1
  108. package/dist/assertions/runtime.d.cts +9 -0
  109. package/dist/assertions/runtime.d.mts +9 -0
  110. package/dist/assertions/runtime.d.ts +9 -0
  111. package/dist/assertions/runtime.js +14 -8
  112. package/dist/assertions/score-match-audit.cjs +18 -8
  113. package/dist/assertions/score-match-audit.cjs.map +1 -1
  114. package/dist/assertions/score-match-gateway.cjs +83 -25
  115. package/dist/assertions/score-match-gateway.cjs.map +1 -1
  116. package/dist/assertions/score-match-gateway.d.cts +2 -0
  117. package/dist/assertions/score-match-gateway.d.mts +2 -0
  118. package/dist/assertions/score-match-gateway.d.ts +2 -0
  119. package/dist/assertions/value-composition.test-d.cjs +77 -0
  120. package/dist/assertions/value-composition.test-d.cjs.map +1 -0
  121. package/dist/assertions/value-composition.test-d.d.cts +1 -0
  122. package/dist/assertions/value-composition.test-d.d.mts +1 -0
  123. package/dist/assertions/value-composition.test-d.d.ts +1 -0
  124. package/dist/assertions/value-composition.test-d.js +4 -0
  125. package/dist/assertions/value-composition.test-d.js.map +1 -0
  126. package/dist/context/assert-first.cjs +207 -213
  127. package/dist/context/assert-first.cjs.map +1 -1
  128. package/dist/context/assert-first.d.cts +49 -23
  129. package/dist/context/assert-first.d.mts +49 -23
  130. package/dist/context/assert-first.d.ts +49 -23
  131. package/dist/context/session.cjs +111 -9
  132. package/dist/context/session.cjs.map +1 -1
  133. package/dist/context/session.d.cts +18 -0
  134. package/dist/context/session.d.mts +18 -0
  135. package/dist/context/session.d.ts +18 -0
  136. package/dist/define.cjs +17 -1
  137. package/dist/define.cjs.map +1 -1
  138. package/dist/eval/cli/contribution.cjs +2 -0
  139. package/dist/eval/cli/contribution.cjs.map +1 -1
  140. package/dist/eval/host/index.cjs +2 -0
  141. package/dist/eval/host/index.cjs.map +1 -1
  142. package/dist/eval/record/evaluation.cjs +3 -0
  143. package/dist/eval/record/evaluation.cjs.map +1 -1
  144. package/dist/eval/record/membership-provenance.d.cts +15 -15
  145. package/dist/eval/record/membership-provenance.d.mts +15 -15
  146. package/dist/eval/record/membership-provenance.d.ts +15 -15
  147. package/dist/eval/record/score.cjs +7 -0
  148. package/dist/eval/record/score.cjs.map +1 -1
  149. package/dist/eval/record/sealed-assertion.cjs +3 -0
  150. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  151. package/dist/eval/record/verdict.cjs +7 -0
  152. package/dist/eval/record/verdict.cjs.map +1 -1
  153. package/dist/expect/index.cjs +8 -2
  154. package/dist/expect/index.cjs.map +1 -1
  155. package/dist/expect/index.d.cts +9 -4
  156. package/dist/expect/index.d.mts +9 -4
  157. package/dist/expect/index.d.ts +9 -4
  158. package/dist/expect/index.js +72 -62
  159. package/dist/expect/index.mjs +72 -62
  160. package/dist/experiment/host/cli/contribution.cjs +37 -23
  161. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  162. package/dist/experiment/host/cli/contribution.d.cts +9 -1
  163. package/dist/experiment/host/cli/contribution.d.mts +9 -1
  164. package/dist/experiment/host/cli/contribution.d.ts +9 -1
  165. package/dist/experiment/host/current.cjs +74 -0
  166. package/dist/experiment/host/current.cjs.map +1 -0
  167. package/dist/experiment/host/current.d.cts +33 -0
  168. package/dist/experiment/host/current.d.mts +33 -0
  169. package/dist/experiment/host/current.d.ts +33 -0
  170. package/dist/experiment/host/current.js +10 -0
  171. package/dist/experiment/host/current.js.map +1 -0
  172. package/dist/experiment/host/index.cjs +17 -174
  173. package/dist/experiment/host/index.cjs.map +1 -1
  174. package/dist/experiment/host/index.d.cts +8 -54
  175. package/dist/experiment/host/index.d.mts +8 -54
  176. package/dist/experiment/host/index.d.ts +8 -54
  177. package/dist/experiment/host/operations.cjs +33 -10
  178. package/dist/experiment/host/operations.cjs.map +1 -1
  179. package/dist/experiment/host/operations.d.cts +29 -1
  180. package/dist/experiment/host/operations.d.mts +29 -1
  181. package/dist/experiment/host/operations.d.ts +29 -1
  182. package/dist/experiment/host/operations.js +6 -4
  183. package/dist/experiment/host/requirements.cjs +3 -0
  184. package/dist/experiment/host/requirements.cjs.map +1 -0
  185. package/dist/experiment/host/requirements.d.cts +3 -0
  186. package/dist/experiment/host/requirements.d.mts +3 -0
  187. package/dist/experiment/host/requirements.d.ts +3 -0
  188. package/dist/experiment/host/requirements.js +4 -0
  189. package/dist/experiment/host/requirements.js.map +1 -0
  190. package/dist/experiment/host/runtime.cjs +179 -0
  191. package/dist/experiment/host/runtime.cjs.map +1 -0
  192. package/dist/experiment/host/runtime.d.cts +79 -0
  193. package/dist/experiment/host/runtime.d.mts +79 -0
  194. package/dist/experiment/host/runtime.d.ts +79 -0
  195. package/dist/experiment/host/runtime.js +6 -0
  196. package/dist/experiment/host/runtime.js.map +1 -0
  197. package/dist/experiment/host/types.cjs.map +1 -1
  198. package/dist/experiment/host/types.d.cts +17 -16
  199. package/dist/experiment/host/types.d.mts +17 -16
  200. package/dist/experiment/host/types.d.ts +17 -16
  201. package/dist/fresh-import.cjs +2 -1
  202. package/dist/fresh-import.cjs.map +1 -1
  203. package/dist/index.cjs +4 -2
  204. package/dist/index.cjs.map +1 -1
  205. package/dist/index.d.cts +12 -6
  206. package/dist/index.d.mts +12 -6
  207. package/dist/index.d.ts +12 -6
  208. package/dist/index.js +32 -30
  209. package/dist/index.mjs +32 -30
  210. package/dist/inspection/artifacts.cjs +83 -54
  211. package/dist/inspection/artifacts.cjs.map +1 -1
  212. package/dist/inspection/artifacts.d.cts +8 -0
  213. package/dist/inspection/artifacts.d.mts +8 -0
  214. package/dist/inspection/artifacts.d.ts +8 -0
  215. package/dist/inspection/artifacts.js +2 -0
  216. package/dist/inspection/assertions.cjs +4 -1
  217. package/dist/inspection/assertions.cjs.map +1 -1
  218. package/dist/inspection/cli/contribution.cjs +27 -4
  219. package/dist/inspection/cli/contribution.cjs.map +1 -1
  220. package/dist/inspection/cli/contribution.d.cts +2 -1
  221. package/dist/inspection/cli/contribution.d.mts +2 -1
  222. package/dist/inspection/cli/contribution.d.ts +2 -1
  223. package/dist/inspection/execution-traces.cjs +114 -8
  224. package/dist/inspection/execution-traces.cjs.map +1 -1
  225. package/dist/inspection/execution-traces.d.cts +38 -0
  226. package/dist/inspection/execution-traces.d.mts +38 -0
  227. package/dist/inspection/execution-traces.d.ts +38 -0
  228. package/dist/inspection/facts.cjs +12 -0
  229. package/dist/inspection/facts.cjs.map +1 -1
  230. package/dist/inspection/limits.cjs +5 -1
  231. package/dist/inspection/limits.cjs.map +1 -1
  232. package/dist/inspection/limits.d.cts +4 -0
  233. package/dist/inspection/limits.d.mts +4 -0
  234. package/dist/inspection/limits.d.ts +4 -0
  235. package/dist/inspection/limits.js +6 -2
  236. package/dist/inspection/overview.cjs +74 -33
  237. package/dist/inspection/overview.cjs.map +1 -1
  238. package/dist/inspection/overview.d.cts +19 -1
  239. package/dist/inspection/overview.d.mts +19 -1
  240. package/dist/inspection/overview.d.ts +19 -1
  241. package/dist/inspection/overview.js +4 -2
  242. package/dist/inspection/project-input.cjs +9 -0
  243. package/dist/inspection/project-input.cjs.map +1 -0
  244. package/dist/inspection/project-input.d.cts +20 -0
  245. package/dist/inspection/project-input.d.mts +20 -0
  246. package/dist/inspection/project-input.d.ts +20 -0
  247. package/dist/inspection/project-input.js +8 -0
  248. package/dist/inspection/project-input.js.map +1 -0
  249. package/dist/inspection/project-result.cjs +60 -0
  250. package/dist/inspection/project-result.cjs.map +1 -0
  251. package/dist/inspection/project-result.d.cts +1264 -0
  252. package/dist/inspection/project-result.d.mts +1264 -0
  253. package/dist/inspection/project-result.d.ts +1264 -0
  254. package/dist/inspection/project-result.js +10 -0
  255. package/dist/inspection/project-result.js.map +1 -0
  256. package/dist/inspection/project-source.cjs +109 -0
  257. package/dist/inspection/project-source.cjs.map +1 -0
  258. package/dist/inspection/project-source.d.cts +10 -0
  259. package/dist/inspection/project-source.d.mts +10 -0
  260. package/dist/inspection/project-source.d.ts +10 -0
  261. package/dist/inspection/project-source.js +6 -0
  262. package/dist/inspection/project-source.js.map +1 -0
  263. package/dist/inspection/project.cjs +100 -0
  264. package/dist/inspection/project.cjs.map +1 -0
  265. package/dist/inspection/project.d.cts +3 -0
  266. package/dist/inspection/project.d.mts +3 -0
  267. package/dist/inspection/project.d.ts +3 -0
  268. package/dist/inspection/project.js +6 -0
  269. package/dist/inspection/project.js.map +1 -0
  270. package/dist/inspection/protocol.cjs +19 -9
  271. package/dist/inspection/protocol.cjs.map +1 -1
  272. package/dist/inspection/protocol.d.cts +5506 -38189
  273. package/dist/inspection/protocol.d.mts +5506 -38189
  274. package/dist/inspection/protocol.d.ts +5506 -38189
  275. package/dist/inspection/public.mjs +896 -84
  276. package/dist/inspection/query.cjs +2 -0
  277. package/dist/inspection/query.cjs.map +1 -1
  278. package/dist/inspection/results.cjs +234 -29
  279. package/dist/inspection/results.cjs.map +1 -1
  280. package/dist/inspection/results.d.cts +870 -13
  281. package/dist/inspection/results.d.mts +870 -13
  282. package/dist/inspection/results.d.ts +870 -13
  283. package/dist/inspection/results.js +36 -34
  284. package/dist/inspection/select.cjs +126 -14
  285. package/dist/inspection/select.cjs.map +1 -1
  286. package/dist/inspection/select.d.cts +1 -1
  287. package/dist/inspection/select.d.mts +1 -1
  288. package/dist/inspection/select.d.ts +1 -1
  289. package/dist/inspection/source.cjs +4 -0
  290. package/dist/inspection/source.cjs.map +1 -1
  291. package/dist/inspection/sources.cjs +5 -0
  292. package/dist/inspection/sources.cjs.map +1 -1
  293. package/dist/inspection/trace.cjs +82 -84
  294. package/dist/inspection/trace.cjs.map +1 -1
  295. package/dist/inspection/trace.d.cts +7 -2
  296. package/dist/inspection/trace.d.mts +7 -2
  297. package/dist/inspection/trace.d.ts +7 -2
  298. package/dist/model-slots.cjs +35 -0
  299. package/dist/model-slots.cjs.map +1 -0
  300. package/dist/model-slots.d.cts +19 -0
  301. package/dist/model-slots.d.mts +19 -0
  302. package/dist/model-slots.d.ts +19 -0
  303. package/dist/model-slots.js +8 -0
  304. package/dist/model-slots.js.map +1 -0
  305. package/dist/o11y/adapter-call-price.cjs +4 -0
  306. package/dist/o11y/adapter-call-price.cjs.map +1 -1
  307. package/dist/o11y/adapter-call-price.d.cts +24 -0
  308. package/dist/o11y/adapter-call-price.d.mts +24 -0
  309. package/dist/o11y/adapter-call-price.d.ts +24 -0
  310. package/dist/o11y/adapter-call-price.js +6 -2
  311. package/dist/o11y/adapter-usage-projection.cjs +158 -0
  312. package/dist/o11y/adapter-usage-projection.cjs.map +1 -0
  313. package/dist/o11y/adapter-usage-projection.d.cts +141 -0
  314. package/dist/o11y/adapter-usage-projection.d.mts +141 -0
  315. package/dist/o11y/adapter-usage-projection.d.ts +141 -0
  316. package/dist/o11y/adapter-usage-projection.js +20 -0
  317. package/dist/o11y/adapter-usage-projection.js.map +1 -0
  318. package/dist/o11y/eval-usage.cjs +149 -0
  319. package/dist/o11y/eval-usage.cjs.map +1 -0
  320. package/dist/o11y/eval-usage.d.cts +46 -0
  321. package/dist/o11y/eval-usage.d.mts +46 -0
  322. package/dist/o11y/eval-usage.d.ts +46 -0
  323. package/dist/o11y/eval-usage.js +8 -0
  324. package/dist/o11y/eval-usage.js.map +1 -0
  325. package/dist/o11y/judge-call-price.cjs +62 -0
  326. package/dist/o11y/judge-call-price.cjs.map +1 -0
  327. package/dist/o11y/judge-call-price.d.cts +3 -0
  328. package/dist/o11y/judge-call-price.d.mts +3 -0
  329. package/dist/o11y/judge-call-price.d.ts +3 -0
  330. package/dist/o11y/judge-call-price.js +6 -0
  331. package/dist/o11y/judge-call-price.js.map +1 -0
  332. package/dist/o11y/judge-usage-projection.cjs +134 -0
  333. package/dist/o11y/judge-usage-projection.cjs.map +1 -0
  334. package/dist/o11y/judge-usage-projection.d.cts +18 -0
  335. package/dist/o11y/judge-usage-projection.d.mts +18 -0
  336. package/dist/o11y/judge-usage-projection.d.ts +18 -0
  337. package/dist/o11y/judge-usage-projection.js +20 -0
  338. package/dist/o11y/judge-usage-projection.js.map +1 -0
  339. package/dist/o11y/judge-usage-receipt.cjs +135 -0
  340. package/dist/o11y/judge-usage-receipt.cjs.map +1 -0
  341. package/dist/o11y/judge-usage-receipt.d.cts +5 -0
  342. package/dist/o11y/judge-usage-receipt.d.mts +5 -0
  343. package/dist/o11y/judge-usage-receipt.d.ts +5 -0
  344. package/dist/o11y/judge-usage-receipt.js +6 -0
  345. package/dist/o11y/judge-usage-receipt.js.map +1 -0
  346. package/dist/o11y/judge-usage.cjs +171 -0
  347. package/dist/o11y/judge-usage.cjs.map +1 -0
  348. package/dist/o11y/judge-usage.d.cts +35 -0
  349. package/dist/o11y/judge-usage.d.mts +35 -0
  350. package/dist/o11y/judge-usage.d.ts +35 -0
  351. package/dist/o11y/judge-usage.js +6 -0
  352. package/dist/o11y/judge-usage.js.map +1 -0
  353. package/dist/plugin/contracts.cjs +2 -0
  354. package/dist/plugin/contracts.cjs.map +1 -1
  355. package/dist/plugin/link.cjs +7 -0
  356. package/dist/plugin/link.cjs.map +1 -1
  357. package/dist/record/attachment/protocol.cjs +8 -6
  358. package/dist/record/attachment/protocol.cjs.map +1 -1
  359. package/dist/record/attachment/protocol.d.cts +10 -0
  360. package/dist/record/attachment/protocol.d.mts +10 -0
  361. package/dist/record/attachment/protocol.d.ts +10 -0
  362. package/dist/record/attachment/protocol.js +38 -36
  363. package/dist/record/codec/seal-manifest.d.cts +3 -3
  364. package/dist/record/codec/seal-manifest.d.mts +3 -3
  365. package/dist/record/codec/seal-manifest.d.ts +3 -3
  366. package/dist/record/family/adapter-usage/definition.d.cts +1 -0
  367. package/dist/record/family/adapter-usage/definition.d.mts +1 -0
  368. package/dist/record/family/adapter-usage/definition.d.ts +1 -0
  369. package/dist/record/family/adapter-usage/persistence.cjs +1 -1
  370. package/dist/record/family/adapter-usage/persistence.cjs.map +1 -1
  371. package/dist/record/family/adapter-usage/persistence.d.cts +2 -1
  372. package/dist/record/family/adapter-usage/persistence.d.mts +2 -1
  373. package/dist/record/family/adapter-usage/persistence.d.ts +2 -1
  374. package/dist/record/family/adapter-usage/schema.cjs +21 -2
  375. package/dist/record/family/adapter-usage/schema.cjs.map +1 -1
  376. package/dist/record/family/adapter-usage/schema.d.cts +85 -0
  377. package/dist/record/family/adapter-usage/schema.d.mts +85 -0
  378. package/dist/record/family/adapter-usage/schema.d.ts +85 -0
  379. package/dist/record/family/adapter-usage/schema.js +18 -12
  380. package/dist/record/family/catalog.cjs +31 -27
  381. package/dist/record/family/catalog.cjs.map +1 -1
  382. package/dist/record/family/catalog.d.cts +94 -3
  383. package/dist/record/family/catalog.d.mts +94 -3
  384. package/dist/record/family/catalog.d.ts +94 -3
  385. package/dist/record/family/current.cjs +45 -42
  386. package/dist/record/family/current.cjs.map +1 -1
  387. package/dist/record/family/current.d.cts +240 -1
  388. package/dist/record/family/current.d.mts +240 -1
  389. package/dist/record/family/current.d.ts +240 -1
  390. package/dist/record/family/execution-traces/definition.d.cts +26 -0
  391. package/dist/record/family/execution-traces/definition.d.mts +26 -0
  392. package/dist/record/family/execution-traces/definition.d.ts +26 -0
  393. package/dist/record/family/execution-traces/definition.js +20 -14
  394. package/dist/record/family/execution-traces/schema.cjs +57 -1
  395. package/dist/record/family/execution-traces/schema.cjs.map +1 -1
  396. package/dist/record/family/execution-traces/schema.d.cts +114 -0
  397. package/dist/record/family/execution-traces/schema.d.mts +114 -0
  398. package/dist/record/family/execution-traces/schema.d.ts +114 -0
  399. package/dist/record/family/execution-traces/schema.js +18 -12
  400. package/dist/record/family/judge-usage/definition.cjs +12 -0
  401. package/dist/record/family/judge-usage/definition.cjs.map +1 -0
  402. package/dist/record/family/judge-usage/definition.d.cts +91 -0
  403. package/dist/record/family/judge-usage/definition.d.mts +91 -0
  404. package/dist/record/family/judge-usage/definition.d.ts +91 -0
  405. package/dist/record/family/judge-usage/definition.js +6 -0
  406. package/dist/record/family/judge-usage/definition.js.map +1 -0
  407. package/dist/record/family/judge-usage/persistence.cjs +10 -0
  408. package/dist/record/family/judge-usage/persistence.cjs.map +1 -0
  409. package/dist/record/family/judge-usage/persistence.d.cts +91 -0
  410. package/dist/record/family/judge-usage/persistence.d.mts +91 -0
  411. package/dist/record/family/judge-usage/persistence.d.ts +91 -0
  412. package/dist/record/family/judge-usage/persistence.js +6 -0
  413. package/dist/record/family/judge-usage/persistence.js.map +1 -0
  414. package/dist/record/family/judge-usage/schema.cjs +307 -0
  415. package/dist/record/family/judge-usage/schema.cjs.map +1 -0
  416. package/dist/record/family/judge-usage/schema.d.cts +351 -0
  417. package/dist/record/family/judge-usage/schema.d.mts +351 -0
  418. package/dist/record/family/judge-usage/schema.d.ts +351 -0
  419. package/dist/record/family/judge-usage/schema.js +18 -0
  420. package/dist/record/family/judge-usage/schema.js.map +1 -0
  421. package/dist/record/host/sqlite-host.cjs +55 -9
  422. package/dist/record/host/sqlite-host.cjs.map +1 -1
  423. package/dist/record/host/types.cjs.map +1 -1
  424. package/dist/record/host/types.d.cts +7 -0
  425. package/dist/record/host/types.d.mts +7 -0
  426. package/dist/record/host/types.d.ts +7 -0
  427. package/dist/record/model/run-context.cjs +7 -1
  428. package/dist/record/model/run-context.cjs.map +1 -1
  429. package/dist/record/model/run-context.d.cts +4 -0
  430. package/dist/record/model/run-context.d.mts +4 -0
  431. package/dist/record/model/run-context.d.ts +4 -0
  432. package/dist/record/model/seal-manifest.d.cts +1 -1
  433. package/dist/record/model/seal-manifest.d.mts +1 -1
  434. package/dist/record/model/seal-manifest.d.ts +1 -1
  435. package/dist/record/sqlite/client.cjs +18 -5
  436. package/dist/record/sqlite/client.cjs.map +1 -1
  437. package/dist/record/sqlite/client.d.cts +1 -1
  438. package/dist/record/sqlite/client.d.mts +1 -1
  439. package/dist/record/sqlite/client.d.ts +1 -1
  440. package/dist/record/sqlite/project-state-database.cjs +29 -8
  441. package/dist/record/sqlite/project-state-database.cjs.map +1 -1
  442. package/dist/run/host/runtime.cjs +4 -0
  443. package/dist/run/host/runtime.cjs.map +1 -1
  444. package/dist/run/storage/sqlite.cjs +20 -0
  445. package/dist/run/storage/sqlite.cjs.map +1 -1
  446. package/dist/runner/adapter-execution-trace.cjs +125 -2
  447. package/dist/runner/adapter-execution-trace.cjs.map +1 -1
  448. package/dist/runner/adapter-execution-trace.d.cts +1 -1
  449. package/dist/runner/adapter-execution-trace.d.mts +1 -1
  450. package/dist/runner/adapter-execution-trace.d.ts +1 -1
  451. package/dist/runner/adapter-usage.cjs +55 -7
  452. package/dist/runner/adapter-usage.cjs.map +1 -1
  453. package/dist/runner/adapter-usage.d.cts +9 -2
  454. package/dist/runner/adapter-usage.d.mts +9 -2
  455. package/dist/runner/adapter-usage.d.ts +9 -2
  456. package/dist/runner/adoption.cjs +9 -0
  457. package/dist/runner/adoption.cjs.map +1 -1
  458. package/dist/runner/attempt-cancellation.cjs +12 -0
  459. package/dist/runner/attempt-cancellation.cjs.map +1 -0
  460. package/dist/runner/attempt-cancellation.d.cts +6 -0
  461. package/dist/runner/attempt-cancellation.d.mts +6 -0
  462. package/dist/runner/attempt-cancellation.d.ts +6 -0
  463. package/dist/runner/attempt-cancellation.js +6 -0
  464. package/dist/runner/attempt-cancellation.js.map +1 -0
  465. package/dist/runner/attempt-resources.cjs +10 -4
  466. package/dist/runner/attempt-resources.cjs.map +1 -1
  467. package/dist/runner/attempt-resources.d.cts +2 -1
  468. package/dist/runner/attempt-resources.d.mts +2 -1
  469. package/dist/runner/attempt-resources.d.ts +2 -1
  470. package/dist/runner/attempt.cjs +1177 -1139
  471. package/dist/runner/attempt.cjs.map +1 -1
  472. package/dist/runner/config-identity.cjs +20 -1
  473. package/dist/runner/config-identity.cjs.map +1 -1
  474. package/dist/runner/config-identity.d.cts +5 -0
  475. package/dist/runner/config-identity.d.mts +5 -0
  476. package/dist/runner/config-identity.d.ts +5 -0
  477. package/dist/runner/discover.cjs +14 -0
  478. package/dist/runner/discover.cjs.map +1 -1
  479. package/dist/runner/discover.d.cts +3 -0
  480. package/dist/runner/discover.d.mts +3 -0
  481. package/dist/runner/discover.d.ts +3 -0
  482. package/dist/runner/feedback/human.cjs +9 -4
  483. package/dist/runner/feedback/human.cjs.map +1 -1
  484. package/dist/runner/fingerprint.cjs +1 -0
  485. package/dist/runner/fingerprint.cjs.map +1 -1
  486. package/dist/runner/judge-usage.cjs +18 -0
  487. package/dist/runner/judge-usage.cjs.map +1 -0
  488. package/dist/runner/judge-usage.d.cts +5 -0
  489. package/dist/runner/judge-usage.d.mts +5 -0
  490. package/dist/runner/judge-usage.d.ts +5 -0
  491. package/dist/runner/judge-usage.js +8 -0
  492. package/dist/runner/judge-usage.js.map +1 -0
  493. package/dist/runner/project-target.cjs.map +1 -1
  494. package/dist/runner/project-target.d.cts +2 -0
  495. package/dist/runner/project-target.d.mts +2 -0
  496. package/dist/runner/project-target.d.ts +2 -0
  497. package/dist/runner/record/planning.cjs +1 -0
  498. package/dist/runner/record/planning.cjs.map +1 -1
  499. package/dist/runner/record.cjs +4 -0
  500. package/dist/runner/record.cjs.map +1 -1
  501. package/dist/runner/reporters/braintrust.cjs +2 -0
  502. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  503. package/dist/runner/reuse-diagnostics.cjs +9 -10
  504. package/dist/runner/reuse-diagnostics.cjs.map +1 -1
  505. package/dist/runner/reuse-diagnostics.d.cts +5 -6
  506. package/dist/runner/reuse-diagnostics.d.mts +5 -6
  507. package/dist/runner/reuse-diagnostics.d.ts +5 -6
  508. package/dist/runner/reuse-diagnostics.js +4 -4
  509. package/dist/runner/reuse-plan.cjs +100 -48
  510. package/dist/runner/reuse-plan.cjs.map +1 -1
  511. package/dist/runner/reuse-plan.d.cts +60 -3
  512. package/dist/runner/reuse-plan.d.mts +60 -3
  513. package/dist/runner/reuse-plan.d.ts +60 -3
  514. package/dist/runner/reuse-plan.js +14 -10
  515. package/dist/runner/run.cjs +8 -6
  516. package/dist/runner/run.cjs.map +1 -1
  517. package/dist/runner/session.cjs +1 -1
  518. package/dist/runner/session.cjs.map +1 -1
  519. package/dist/runner/session.d.cts +1 -1
  520. package/dist/runner/session.d.mts +1 -1
  521. package/dist/runner/session.d.ts +1 -1
  522. package/dist/runner/source-producer.cjs +3 -1
  523. package/dist/runner/source-producer.cjs.map +1 -1
  524. package/dist/runner/types.cjs.map +1 -1
  525. package/dist/runner/types.d.cts +26 -5
  526. package/dist/runner/types.d.mts +26 -5
  527. package/dist/runner/types.d.ts +26 -5
  528. package/dist/sandbox/action.cjs +3 -0
  529. package/dist/sandbox/action.cjs.map +1 -1
  530. package/dist/sandbox/commands.cjs +3 -0
  531. package/dist/sandbox/commands.cjs.map +1 -1
  532. package/dist/sandbox/compose.cjs +6 -0
  533. package/dist/sandbox/compose.cjs.map +1 -1
  534. package/dist/sandbox/docker-profile/registry.cjs +7 -0
  535. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  536. package/dist/sandbox/docker-profile/runtime.cjs +3 -0
  537. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  538. package/dist/sandbox/docker-profile/schema.cjs +7 -0
  539. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  540. package/dist/sandbox/incus.cjs +7 -0
  541. package/dist/sandbox/incus.cjs.map +1 -1
  542. package/dist/sandbox/layer.cjs +12 -0
  543. package/dist/sandbox/layer.cjs.map +1 -1
  544. package/dist/shared/adapter-cleanup.cjs +18 -0
  545. package/dist/shared/adapter-cleanup.cjs.map +1 -0
  546. package/dist/shared/adapter-cleanup.d.cts +4 -0
  547. package/dist/shared/adapter-cleanup.d.mts +4 -0
  548. package/dist/shared/adapter-cleanup.d.ts +4 -0
  549. package/dist/shared/adapter-cleanup.js +10 -0
  550. package/dist/shared/adapter-cleanup.js.map +1 -0
  551. package/dist/shared/attempt-lifecycle.cjs +3 -0
  552. package/dist/shared/attempt-lifecycle.cjs.map +1 -0
  553. package/dist/shared/attempt-lifecycle.d.cts +13 -0
  554. package/dist/shared/attempt-lifecycle.d.mts +13 -0
  555. package/dist/shared/attempt-lifecycle.d.ts +13 -0
  556. package/dist/shared/attempt-lifecycle.js +4 -0
  557. package/dist/shared/attempt-lifecycle.js.map +1 -0
  558. package/dist/show/contribution.cjs +52 -14
  559. package/dist/show/contribution.cjs.map +1 -1
  560. package/dist/show/contribution.d.cts +23 -1
  561. package/dist/show/contribution.d.mts +23 -1
  562. package/dist/show/contribution.d.ts +23 -1
  563. package/dist/show/model.cjs +8 -1
  564. package/dist/show/model.cjs.map +1 -1
  565. package/dist/show/model.d.cts +10 -1
  566. package/dist/show/model.d.mts +10 -1
  567. package/dist/show/model.d.ts +10 -1
  568. package/dist/show/render.cjs +287 -49
  569. package/dist/show/render.cjs.map +1 -1
  570. package/dist/show/render.d.cts +3 -0
  571. package/dist/show/render.d.mts +3 -0
  572. package/dist/show/render.d.ts +3 -0
  573. package/dist/sources/projector.cjs +3 -0
  574. package/dist/sources/projector.cjs.map +1 -1
  575. package/dist/types.cjs.map +1 -1
  576. package/dist/types.d.cts +1 -1
  577. package/dist/types.d.mts +1 -1
  578. package/dist/types.d.ts +1 -1
  579. package/dist/view/app-dist/.vite/manifest.json +2 -2
  580. package/dist/view/app-dist/assets/index-CmVoXbwG.js +63 -0
  581. package/dist/view/app-dist/assets/{quality-cost-scatter-CFB3wnkN.js → quality-cost-scatter-BuLISaH4.js} +1 -1
  582. package/dist/view/app-dist/index.html +1 -1
  583. package/dist/view/cli/contribution.cjs +54 -21
  584. package/dist/view/cli/contribution.cjs.map +1 -1
  585. package/dist/view/cli/contribution.d.cts +2 -1
  586. package/dist/view/cli/contribution.d.mts +2 -1
  587. package/dist/view/cli/contribution.d.ts +2 -1
  588. package/dist/view/function-runtime.mjs +13231 -11647
  589. package/dist/view/http-protocol.cjs +3 -0
  590. package/dist/view/http-protocol.cjs.map +1 -1
  591. package/dist/view/http-protocol.d.cts +8 -0
  592. package/dist/view/http-protocol.d.mts +8 -0
  593. package/dist/view/http-protocol.d.ts +8 -0
  594. package/dist/view/inspection-host.cjs +17 -1
  595. package/dist/view/inspection-host.cjs.map +1 -1
  596. package/dist/view/render.cjs +1 -0
  597. package/dist/view/render.cjs.map +1 -1
  598. package/dist/view/render.d.cts +2 -1
  599. package/dist/view/render.d.mts +2 -1
  600. package/dist/view/render.d.ts +2 -1
  601. package/dist/view/revision.cjs.map +1 -1
  602. package/dist/view/revision.d.cts +12 -0
  603. package/dist/view/revision.d.mts +12 -0
  604. package/dist/view/revision.d.ts +12 -0
  605. package/dist/view/server.cjs +10 -9
  606. package/dist/view/server.cjs.map +1 -1
  607. package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
  608. package/docs-site/zh/explanation/adapter.mdx +2 -2
  609. package/docs-site/zh/explanation/assert.mdx +60 -24
  610. package/docs-site/zh/explanation/drive.mdx +1 -1
  611. package/docs-site/zh/explanation/evals.mdx +31 -29
  612. package/docs-site/zh/explanation/experiment.mdx +15 -15
  613. package/docs-site/zh/explanation/judge.mdx +23 -15
  614. package/docs-site/zh/explanation/overview.mdx +44 -21
  615. package/docs-site/zh/explanation/record.mdx +28 -13
  616. package/docs-site/zh/explanation/results-flow.mdx +37 -0
  617. package/docs-site/zh/explanation/runner.mdx +27 -6
  618. package/docs-site/zh/index.mdx +22 -115
  619. package/docs-site/zh/introduction.mdx +89 -61
  620. package/docs-site/zh/reference/cli.mdx +50 -26
  621. package/docs-site/zh/reference/define-agent.mdx +37 -5
  622. package/docs-site/zh/reference/define-eval.mdx +130 -29
  623. package/docs-site/zh/reference/define-experiment.mdx +251 -0
  624. package/docs-site/zh/reference/events.mdx +34 -30
  625. package/docs-site/zh/reference/expect.mdx +77 -2
  626. package/docs-site/zh/reference/official-adapters.mdx +2 -2
  627. package/docs-site/zh/troubleshooting/debug-sandbox.mdx +43 -24
  628. package/docs-site/zh/troubleshooting/debugging.mdx +65 -42
  629. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +35 -28
  630. package/docs-site/zh/tutorials/accept-results.mdx +34 -24
  631. package/docs-site/zh/tutorials/agent-feedback-loop.mdx +74 -43
  632. package/docs-site/zh/tutorials/agent-onboarding.mdx +27 -20
  633. package/docs-site/zh/tutorials/authoring.mdx +138 -121
  634. package/docs-site/zh/tutorials/ci-integration.mdx +46 -22
  635. package/docs-site/zh/tutorials/compare-runs.mdx +40 -13
  636. package/docs-site/zh/tutorials/concurrency.mdx +66 -62
  637. package/docs-site/zh/tutorials/configuration.mdx +17 -17
  638. package/docs-site/zh/tutorials/connect-otel.mdx +48 -37
  639. package/docs-site/zh/tutorials/connect-your-agent.mdx +80 -173
  640. package/docs-site/zh/tutorials/control-run-cost.mdx +63 -12
  641. package/docs-site/zh/tutorials/criteria-files.mdx +28 -21
  642. package/docs-site/zh/tutorials/custom-application.mdx +75 -55
  643. package/docs-site/zh/tutorials/dataset-fanout.mdx +32 -22
  644. package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +38 -31
  645. package/docs-site/zh/tutorials/docker-in-docker.mdx +83 -89
  646. package/docs-site/zh/tutorials/eval-groups.mdx +70 -89
  647. package/docs-site/zh/tutorials/evaluation-kinds.mdx +12 -5
  648. package/docs-site/zh/tutorials/experiment-services.mdx +243 -0
  649. package/docs-site/zh/tutorials/fixtures.mdx +42 -26
  650. package/docs-site/zh/tutorials/handle-execution-failures.mdx +41 -19
  651. package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +21 -16
  652. package/docs-site/zh/tutorials/niceeval-taste-application.mdx +394 -0
  653. package/docs-site/zh/tutorials/niceeval-taste.mdx +190 -0
  654. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +51 -39
  655. package/docs-site/zh/tutorials/plugins.mdx +55 -31
  656. package/docs-site/zh/tutorials/prebuilt-sandbox.mdx +204 -0
  657. package/docs-site/zh/tutorials/quickstart.mdx +91 -47
  658. package/docs-site/zh/tutorials/reporters.mdx +45 -30
  659. package/docs-site/zh/tutorials/rerun-and-cache.mdx +39 -40
  660. package/docs-site/zh/tutorials/sandbox-agent.mdx +65 -40
  661. package/docs-site/zh/tutorials/sandbox-providers.mdx +104 -282
  662. package/docs-site/zh/tutorials/sandbox-reuse.mdx +65 -97
  663. package/docs-site/zh/tutorials/select-and-preview.mdx +25 -20
  664. package/docs-site/zh/tutorials/verify-judge.mdx +49 -26
  665. package/docs-site/zh/tutorials/viewing-results.mdx +130 -80
  666. package/docs-site/zh/tutorials/write-experiment.mdx +116 -298
  667. package/docs-site/zh/tutorials/write-send.mdx +53 -52
  668. package/node_modules/undici/docs/docs/api/Agent.md +8 -8
  669. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  670. package/node_modules/undici/docs/docs/api/Errors.md +25 -0
  671. package/node_modules/undici/docs/docs/api/Interceptors.md +4 -3
  672. package/node_modules/undici/docs/docs/api/Pool.md +5 -6
  673. package/node_modules/undici/lib/api/readable.js +1 -2
  674. package/node_modules/undici/lib/core/request.js +23 -2
  675. package/node_modules/undici/lib/core/util.js +0 -39
  676. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -4
  677. package/node_modules/undici/lib/dispatcher/client-h2.js +52 -8
  678. package/node_modules/undici/lib/dispatcher/client.js +1 -1
  679. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -2
  680. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  681. package/node_modules/undici/lib/dispatcher/pool-base.js +63 -2
  682. package/node_modules/undici/lib/dispatcher/pool.js +90 -7
  683. package/node_modules/undici/lib/dispatcher/proxy-agent.js +16 -3
  684. package/node_modules/undici/lib/handler/deduplication-handler.js +24 -11
  685. package/node_modules/undici/lib/handler/redirect-handler.js +5 -0
  686. package/node_modules/undici/lib/handler/retry-handler.js +72 -13
  687. package/node_modules/undici/lib/interceptor/cache.js +4 -1
  688. package/node_modules/undici/lib/interceptor/decompress.js +236 -69
  689. package/node_modules/undici/lib/web/cache/cache.js +17 -8
  690. package/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  691. package/node_modules/undici/lib/web/cookies/index.js +19 -7
  692. package/node_modules/undici/lib/web/cookies/util.js +3 -1
  693. package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -1
  694. package/node_modules/undici/lib/web/fetch/body.js +22 -15
  695. package/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  696. package/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  697. package/node_modules/undici/lib/web/fetch/headers.js +34 -31
  698. package/node_modules/undici/lib/web/fetch/index.js +38 -14
  699. package/node_modules/undici/lib/web/fetch/request.js +74 -79
  700. package/node_modules/undici/lib/web/fetch/response.js +43 -44
  701. package/node_modules/undici/lib/web/fetch/util.js +7 -7
  702. package/node_modules/undici/lib/web/infra/index.js +16 -1
  703. package/node_modules/undici/lib/web/webidl/index.js +2 -14
  704. package/node_modules/undici/lib/web/websocket/events.js +43 -26
  705. package/node_modules/undici/lib/web/websocket/receiver.js +5 -0
  706. package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  707. package/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  708. package/node_modules/undici/package.json +1 -1
  709. package/node_modules/undici/types/diagnostics-channel.d.ts +2 -1
  710. package/node_modules/undici/types/interceptors.d.ts +1 -1
  711. package/node_modules/undici/types/webidl.d.ts +13 -7
  712. package/package.json +4 -4
  713. package/dist/view/app-dist/assets/index-DFzw1L97.js +0 -63
  714. package/docs-site/zh/tutorials/experiments.mdx +0 -101
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-host.js","sourceRoot":"","sources":["sqlite-host.ts"],"names":[],"mappings":";;;AAoMA,sEAEC;AACD,gEA0BC;AAg8BD,wCA6DC;AA9tCD,6CAAyC;AACzC,mCAAwF;AACxF,iEAAgE;AAChE,0EAAyG;AACzG,qDAA2M;AAC3M,2DAAmQ;AACnQ,yDAAsJ;AACtJ,4DAA+H;AAC/H,gDAA+M;AAC/M,6DAAoE;AACpE,iEAAqJ;AACrJ,qDAA4E;AAC5E,kDAA2a;AAE3a,4DAAkF;AAClF,4DAA8I;AAE9I,0DAA+D;AAC/D,qDAAoE;AACpE,iDAAuE;AACvE,yDAAmF;AACnF,mDAA0T;AAC1T,sDAAqF;AACrF,iDAAoiB;AACpiB,+CAAqK;AACrK,2EAA6N;AAC7N,mDAA4P;AAC5P,mDAAsF;AAGtF,yCAAiJ;AAGjJ,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,0CAA+B,GAAG,oCAAyB,CAAC,CAAC,CAAC,CAAC;AAC/H,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sCAA2B,CAAC,CAAC;AACxE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,qCAAyB,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;AACjP,SAAS,MAAM,CAAC,KAAiB;IAC7B,MAAM,KAAK,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,mCAAkB,CAAC,CAAC,KAAK,CAAC,CAAC;IACtE,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,CAAC;AACD,SAAS,cAAc,CAAC,KAAc;IAClC,MAAM,SAAS,GAAG,IAAA,qCAAsB,EAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACjE,OAAO,eAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,gCAAoB,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7F,CAAC;AACD,SAAS,SAAS,CAAC,KAAiB;IAChC,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAY,CAAC;IAC1F,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,SAAS,aAAa,CAAC,OAA0B,EAAE,IAA0B,OAAO,IAAA,uCAAoB,EAAC,CAAC,IAAA,8BAAW,EAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;AAC1J,SAAS,WAAW,KAAwB,OAAO,IAAI,oCAAiB,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7I,SAAS,QAAQ,KAAa,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC;AACtE,SAAS,WAAW,CAAC,IAAgB,IAAwB,OAAO,IAAA,yBAAe,EAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AAC1G,SAAS,QAAQ,CAAC,CAAa,EAAE,CAAa,IAAa,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtI,SAAS,YAAY,CAAI,SAA2B;IAChD,OAAO,eAAM,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,4BAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,4BAAiB,CAAC,qBAAqB,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACjN,CAAC;AACD,SAAS,kBAAkB,CAAI,YAAuC,EAAE,IAAgB,EAAE,SAAkD;IACxI,MAAM,eAAe,GAAG,QAAQ,EAAE,CAAC;IACnC,OAAO,eAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC7E,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC;YAC9C,IAAI;YACJ,eAAe;SAClB,CAAC,CAAC,CAAC;QACJ,0EAA0E;QAC1E,uEAAuE;QACvE,6DAA6D;QAC7D,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,SAAS,WAAW,CAAC,KAAc,EAAE,GAAW;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnE,OAAO,SAAS,CAAC;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;QACpC,OAAO,SAAS,CAAC;IACrB,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,OAAO,UAAU,EAAE,UAAU,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,CAAC;AACD,SAAS,YAAY,CAAC,KAAc,EAAE,GAAW,IAAa,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAqGhM,MAAM,WAAW,GAAG,IAAI,OAAO,EAAsB,CAAC;AACtD,MAAM,eAAe,GAAG,IAAI,OAAO,EAA0B,CAAC;AAC9D,MAAM,2BAA2B,GAAG,IAAI,OAAO,EAG3C,CAAC;AACL,SAAgB,6BAA6B,CAAC,OAAmD;IAC7F,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;AACtD,CAAC;AACD,SAAgB,0BAA0B,CAAC,OAA4B;IACnE,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,SAAS;QACrB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;IAC7C,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACvD,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;gBACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;YACzB,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;gBACzH,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;gBACxB,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;gBAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,eAAe;aAClB,CAAC,CAAC,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC/D,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,cAAc,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;oBACxF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC;YACD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AACD,SAAS,kBAAkB,CAAC,KAAmB,EAAE,MAAc;IAC3D,OAAO,IAAA,sBAAY,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAChJ,CAAC;AACD,SAAS,eAAe,CAAC,YAAoB,EAAE,aAAqB;IAChE,OAAO,IAAA,mBAAS,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AACD,SAAS,UAAU,CAAC,IAAgB,EAAE,KAAiB;IACnD,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;QACpC,OAAO,KAAK,CAAC;IACjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC;QACnD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;YAC5B,OAAO,KAAK,CAAC;IACrB,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,kBAAkB,CAAC,KAU3B;IACG,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3R,IAAI,cAAc,KAAK,SAAS;QAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,IAAA,mCAAyB,EAAC,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5T,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAgC,EAAE,UAAmB,EAAE,KAA4B;IAC3G,MAAM,UAAU,GAAG,IAAA,yCAA0B,EAAC,UAAU,CAAC,IAAI,IAAA,+CAAiC,EAAC,UAAU,CAAC,CAAC;IAC3G,IAAI,UAAU,KAAK,SAAS;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK;QAC1B,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,yCAA6B,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrG,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpD,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAwB,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,WAA6B,CAAC,CAAC;AACxN,CAAC;AACD,SAAS,MAAM,CAAC,GAAe,EAAE,KAAuB;IAAU,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;QAC3F,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;IAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;AAAC,CAAC;AAChD,SAAS,aAAa,CAAC,GAAe;IAClC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;QACzB,OAAO,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,iCAAqB,EAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AAChP,CAAC;AACD,SAAS,WAAW,CAAC,QAAkC;IACnD,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,IAAI,KAAK,GAAoB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAE,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,yCAA8B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,0CAA+B,CAAC,EAAE,CAAC;YACrL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,KAAK,GAAG,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAe;IACrC,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,cAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,cAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;YAChT,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC;YAClC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC;YACvC,KAAK,CAAC,CAAC,cAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAClD,IAAI,aAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACpB,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,4BAAiB,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;QACjJ,CAAC;IACL,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC;AACD,SAAS,YAAY,CAAC,SAAyC,EAAE,IAAa,EAAE,OAAe;IAC3F,IAAI,CAAC,IAAA,sCAAwB,EAAC,SAAS,CAAC,IAAI,CAAC;QACzC,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,GAAG,sCAA2B;QACrE,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,uCAA2B,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,sCAA2B,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,IAAI,sCAA2B,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5Q,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,IAAA,uCAA6B,EAAC,OAAO,EAAE,eAAe,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;AACxK,CAAC;AACD,SAAS,eAAe,CAAC,GAAe,EAAE,OAAuB,EAAE,SAAyC;IACxG,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,SAAS;QACrB,OAAO,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1I,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACzW,MAAM,KAAK,GAAoB,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAA,wBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC5H,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB,CAAC,OAAuB,EAAE,UAAmB,EAAE,KAAyB;IAGlG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,OAAO,eAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChF,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAA,6CAA8B,EAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,SAAS;YACvB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS;YACnC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;YACrF,IAAI,eAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5J,CAAC;QACD,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC1C,wEAAwE;QACxE,8DAA8D;QAC9D,KAAK,CAAC,CAAC,cAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC;YAC5B,UAAU,CAAC,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;YACzC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAuB,EAAE,UAAmB,EAAE,IAAa;IAGjF,OAAO,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AACD,SAAS,eAAe,CAAC,OAAuB,EAAE,UAAmB,EAAE,UAAyC;IAC5G,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvD,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAA,6CAA8B,EAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;YACnD,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3E,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS;YACnC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;QACpD,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAG7O,EAAE,CAAC,CAAC;IACb,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,cAAc,CAAsB,KAI5C;IACG,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAClF,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACzS,MAAM,OAAO,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,SAAS,GAAiB,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,GAAe,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,IAAI,UAAU,CAAC,oCAAyB,CAAC,CAAC;QACnG,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;QAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,GAA4B,EAAE,CAAC;QACxC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,UAAU,GAAG,GAA0C,EAAE;YAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAClB,OAAO,eAAM,CAAC,IAAI,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,KAAK,GAAG,EAAE,CAAC;YACX,UAAU,GAAG,CAAC,CAAC;YACf,OAAO,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC7O,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAAG,KAAK,MAAM,KAAK,IAAI,QAAQ;oBAC7D,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,MAAkB,EAAyC,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC5F,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY;gBACjF,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,uCAA2B,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YACtO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9F,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,IAAI,oBAAoB,IAAI,UAAU,IAAI,0CAA+B;gBACrF,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC5E,IAAI,CAAC,CAAC,QAAQ,YAAY,UAAU,CAAC;gBACjC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC;YAC5D,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,oCAAyB,GAAG,aAAa,EAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;gBAC/F,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;gBACrE,aAAa,IAAI,IAAI,CAAC;gBACtB,MAAM,IAAI,IAAI,CAAC;gBACf,IAAI,aAAa,KAAK,oCAAyB,EAAE,CAAC;oBAC9C,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrB,OAAO,GAAG,WAAW,EAAE,CAAC;oBACxB,aAAa,GAAG,CAAC,CAAC;gBACtB,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,aAAa,GAAG,CAAC;YACjB,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACnJ,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,eAAe,CAA6C,KAMpE;IACG,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;IACnD,MAAM,YAAY,GAAiB,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,SAAS,EAAE,CAAC;IACtL,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAM,KAAK,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAAC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM;gBAC7J,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;YAAC,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC/E,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,gCAAoB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QACrH,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAA,wDAAgC,EAAC,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAc,EAAE,CAAC,CAAC;QACpI,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9D,KAAK,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACha,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QACpJ,MAAM,UAAU,GAAmC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YAAG,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAAC,IAAI,KAAK,KAAK,SAAS;gBACjK,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC;QACzL,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,yCAA8B,EAAE,CAAC;YACxF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,yCAA8B,CAAC,CAAC,CAAC;YAC9F,KAAK,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAClQ,CAAC;QACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjH,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACpO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAyB,CAAC,CAAC,CAAC,CAA4G,CAAC;AACpN,CAAC;AACD,SAAS,iBAAiB,CAAC,OAAuB;IAC9C,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE;YACjD,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS;gBACnC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,qCAAyB,EAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACrG,OAAO,OAAO,CAAC,cAAc,GAAG,CAAC;YAC7B,KAAK,CAAC,CAAC,cAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS;YACjC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnD,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAW,CAAC;YAC1C,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,WAAW,EAAE,EAAW,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAW,EAAE,CAAC;YAClN,IAAI,CAAC,IAAA,sCAAwB,EAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gBACjE,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;YAC1F,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;YACnE,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,YAAY,KAAK,SAAS;gBAC1B,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1P,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpP,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,eAAe,CAAC,OAAuB,EAAE,OAAmC;IACjF,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACvD,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;gBACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;YAC7B,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;YACtG,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,qCAAyB,EAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/F,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,KAAK,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjM,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAC5B,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAgC,CAAC,CAAC;QACzF,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,2BAA2B,CAAC,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IACjL,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtH,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAuB;IAC/C,MAAM,eAAe,GAAG,CAAC,UAAmB,EAAE,KAAc,EAAE,EAAE,GAAG,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,eAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9U,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,KAAK,CAA6B,OAAkE,IAAI,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvS,KAAK,CAAC,UAAiE,IAAI,MAAM,SAAS,GAAG,IAAA,6CAA8B,EAAC,UAAU,CAAC,CAAC,CAAC,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,6CAAiC,GAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpS,MAAM,CAAO,OAAyC,IAAI,MAAM,OAAO,GAAG,IAAA,gDAAiC,EAAC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAClQ,CAAkC,CAAC;IACpC,MAAM,MAAM,GAAmC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACjH,MAAM,SAAS,GAAsC,CAAgG,UAAsB,EAAE,KAAiF,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,eAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrZ,MAAM,KAAK,GAAkC,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1H,MAAM,OAAO,GAAyB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAgD,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3I,MAAM,OAAO,GAAwB,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,mCAAwB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAmC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,EAAE,MAAM,EAAE,eAAgD,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1Y,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;IACzB,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,MAAM,CAAI,OAA6B,EAAE,MAA+B;IAC7E,OAAO,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChN,CAAC;AACD,SAAS,aAAa,CAAC,GAAe,EAAE,MAAc;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/C,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/D,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,gCAAe,CAAC,CAAC;QAC9D,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,IAAA,yCAAoB,EAAC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAC/O,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,cAAK,CAAC,SAAS,EAAQ,CAAC;QAClD,MAAM,OAAO,GAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;QACtJ,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACrC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAe,EAAE,GAAuB,IAAa,MAAM,UAAU,GAAG,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClP,SAAS,gBAAgB,CAAC,GAAe,EAAE,KAI1C;IACG,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAM,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1H,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,yCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5K,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;AAChS,CAAC;AACD,SAAS,cAAc,CAAC,GAAe,EAAE,MAAc,EAAE,MAAwC,EAAE,aAA+D;IAC9J,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAM,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;YACnJ,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;AAC9K,CAAC;AACD,SAAS,UAAU,CAAC,KAAc,IAGlB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChJ,SAAS,gBAAgB,CAAC,GAAe,EAAE,WAAuC;IAC9E,MAAM,WAAW,GAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;IACpM,MAAM,aAAa,GAAG,IAAA,+BAAoB,EAAC,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAA,4BAAiB,EAAC,WAAW,CAAC,CAAC;IACpG,IAAI,eAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/F,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;QACjD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAE,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpM,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,yCAAwB,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAAG,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;QAAC,MAAM,OAAO,GAAG,IAAA,gCAAqB,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAQ,EAAE,CAAC,CAAC,CAAC;QAAC,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YACnf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAAC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;QAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,IAAA,yCAAoB,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC;IACvP,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,yCAAwB,EAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAAG,MAAM,OAAO,GAAG,IAAA,+BAAoB,EAAC,MAAM,CAAC,CAAC;QAAC,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAChM,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAAC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;QAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC;IACnU,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,UAAU,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7oB,CAAC;AACD,SAAS,OAAO,CAAC,GAAe,EAAE,UAAyB;IACvD,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAM,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,aAAa,CAAC,MAAM;gBAC1M,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QACpE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACpJ,yEAAyE;QACzE,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QACzK,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC;YACzH,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,2BAA2B,EAAE,QAAQ,CAAC,mBAAmB;YACzD,sBAAsB,EAAE,QAAQ,CAAC,cAAc;YAC/C,eAAe;SAClB,CAAC,CAAC,CAAC;QACJ,IAAI,WAAW,GAAkB,CAAC,CAAC;QACnC,OAAO,WAAW,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAClH,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,2BAA2B,EAAE,SAAS,CAAC,mBAAmB;gBAC1D,YAAY,EAAE,WAAY;gBAC1B,WAAW,EAAE,GAAG;gBAChB,eAAe;aAClB,CAAC,CAAC,CAAC;YACJ,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,SAAS,CAAC,mBAAmB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QACjP,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;QACrB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YACxB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAiB,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AACD,SAAS,cAAc,CAAC,GAAe,EAAE,aAAsB;IAC3D,MAAM,eAAe,GAAG,CAAC,UAAmB,EAAE,KAAc,EAAE,EAAE,GAAG,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,eAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxS,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAA6B,OAA8D,IAAI,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,sCAA0B,GAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAA8B,CAAC;IAC/V,MAAM,OAAO,GAA8B,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAqD,EAAE,CAAC,CAAC;IAC3H,IAAI,OAAmD,CAAC;IACxD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,+BAAoB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAC,KAAyD,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC,KAAiE,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,KAA6D,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,eAA4C,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,UAAyB,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAA,8BAAkB,GAAE,CAAC,EAAE,CAAC;IAClsB,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAEjF,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAA+C,CAAC;IACtF,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;IACrB,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAgB;IACzC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS;QAClB,OAAO,SAAS,CAAC;IACrB,MAAM,MAAM,GAAG,eAAM,CAAC,mBAAmB,CAAC,mCAAkB,CAAC,CAAC,8BAAa,CAAC,CAAC;IAC7E,MAAM,EAAE,GAAG,eAAM,CAAC,mBAAmB,CAAC,+BAAc,CAAC,CAAC,UAAU,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnH,OAAO,eAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1I,CAAC;AACD,SAAS,cAAc,CAAC,OAAyB,EAAE,OAAgC,EAAE,aAAsB;IACvG,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,cAAc,GAAG,IAAA,qCAAqB,EAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,IAAA,uCAAsB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY;YAC/G,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAiB,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAA,uCAAoB,EAAC,cAAc,CAAC,IAAI,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClK,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,SAAS;YACtB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,qCAAkB,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,2BAAa,CAAC;QAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,4BAAW,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,+BAAoB,CAAC;QACjD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACpF,MAAM,aAAa,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,YAAY,CAAC,CAAC;QAClG,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,eAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAC7F,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,aAAa,KAAK,SAAS,IAAI,eAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1I,IAAI,MAAM,KAAK,SAAS;YACpB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,KAAK,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAChM,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,cAAK,CAAC,OAAO,CAAgB,gBAAgB,CAAC,CAAC;QACrG,MAAM,GAAG,GAAe,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC5e,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,CAAC,eAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAAG,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ;gBAC3E,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;YAAC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;gBAClD,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAAC,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;oBAC5B,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,UAAU,CAAC,IAAmB;IAMnC,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,4BAAiB,EAAC,EAAE,CAAC,CAAC;IACnI,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,eAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,eAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QAClI,OAAO,SAAS,CAAC;IACrB,MAAM,QAAQ,GAAsB,EAAE,EAAE,OAAO,GAAqB,EAAE,CAAC;IACvE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,gCAAqB,EAAC,IAAI,CAAC,CAAC;QAChH,IAAI,OAAO,KAAK,SAAS,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAClD,OAAO,SAAS,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,IAAI,CAAC,CAAC;QAC/G,IAAI,OAAO,KAAK,SAAS,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YAClD,OAAO,SAAS,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3I,CAAC;AACD,SAAS,QAAQ,CAAC,OAAsB,EAAE,KAAY;IAClD,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,yBAAyB,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB;QACzM,CAAC,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;QAChH,CAAC,CAAC,KAAK,CAAC,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QAAG,IAAI,IAAI,KAAK,SAAS;YACzE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AACD,SAAS,MAAM,CAAC,OAAsB,EAAE,KAAY;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,SAAS;QACjB,OAAO,GAAG,CAAC;IACf,MAAM,GAAG,GAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,8BAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7F,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACf,CAAC;AACD,SAAS,UAAU,CAAC,OAAsB,EAAE,KAAY,EAAE,SAAoB,EAAE,mBAA+D;IAC3I,MAAM,GAAG,GAAG,IAAA,4BAAkB,EAAC,gCAAgC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzH,IAAI,GAAG,KAAK,SAAS;QACjB,OAAO,GAAG,CAAC;IACf,MAAM,GAAG,GAAuB,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,kCAAuB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IACpM,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAChD,2BAA2B,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3F,OAAO,GAAG,CAAC;AACf,CAAC;AACD,SAAS,QAAQ,CAAkC,OAAsB,EAAE,KAEzE,IAA6B,MAAM,GAAG,GAA4B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,gCAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC9K,SAAS,OAAO,CAAC,OAAsB,EAAE,GAAmB;IACxD,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAqE,EAAE;QACxH,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS;YACrB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACxH,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAE,CAAC,eAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClwB,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,WAAW,CAAC,OAAsB,EAAE,GAAuB;IAChE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,SAAS;QACtB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAyE,EAAE;QACrI,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS;YACrB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACxI,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,QAAQ,KAAK,SAAS;YACtB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC;QACvJ,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3a,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAAC,IAAmB,EAAE,KAAmB,EAAE,MAAc,IAA0C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrR,SAAS,aAAa,CAAC,OAAsB,EAAE,MAA2B;IACtE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS;QACtB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;QAMlC,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,QAAQ,CAAsD,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAGjH,EAAE;YACxB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;gBACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;YACjF,OAAO,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAGvH,EAAE;gBACxB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,MAAM;wBAC9H,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,eAAM,CAAC,IAAI,EAAE,CAAU,CAAC;wBAC9C,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,wBAAwB,EAAE,cAAc,EAAE,gDAAgD,CAAC,CAAC,CAAC;gBACzI,CAAC;gBACD,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC5B,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBAClC,MAAM,MAAM,GAAiB,EAAE,CAAC;gBAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC9B,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,WAAW;wBACtE,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,wBAAwB,EAAE,cAAc,EAAE,oCAAoC,CAAC,CAAC,CAAC;oBAC9H,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACnB,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;oBAC/B,OAAO,IAAI,CAAC,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,OAAO,CAAC;gBAC3D,OAAO,eAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,eAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAU,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,aAAa,CAAC,OAAsB;IACzC,MAAM,UAAU,GAAG,CAAC,MAA2B,EAAgD,EAAE;QAAG,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YAC5H,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAAC,CAAC,CAAC;IACjR,MAAM,KAAK,GAAG,CAAC,MAA2B,EAAoD,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,qBAAqB,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,uCAA2B,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAAG,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAAC,IAAI,MAAM,GAAG,CAAC,CAAC;QAAC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACtgB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;QAC/B,CAAC;QAAC,OAAO,MAAM,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAA+B,EAAE,EAAE,CAAC,CAAC,IAAA,sCAAyB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1d,CAAC;AACD,SAAS,iBAAiB,CAAC,OAAsB,EAAE,UAAoC,EAAE,WAA2B;IAChH,IAAI,UAAU,CAAC,cAAc,KAAK,WAAW,CAAC,QAAQ;QAClD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACnH,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,SAAS;QACrB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,KAAK,UAAU,CAAC,eAAe;QAC3I,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3H,MAAM,QAAQ,GAAG,IAAA,4CAA8B,EAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAAG,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;YAAC,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,0BAA0B,CAAC;gBACvQ,OAAO,eAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAAC,MAAM,QAAQ,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAAC,IAAI,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,YAAY;gBACtP,OAAO,eAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,6BAAsC,EAAE,CAAC,CAAC;YAAC,MAAM,MAAM,GAAG,IAAA,oCAAuB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,aAAuB,CAAC,CAAC;YAAC,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAAG,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;YAAC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,4BAA4B,CAAC;gBACha,OAAO,eAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5G,OAAO,eAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,+BAAwC,EAAE,CAAC,CAAC;YAAC,MAAM,KAAK,GAAG,MAAiC,CAAC;YAAC,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC;gBAClP,OAAO,eAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,+BAAwC,EAAE,CAAC,CAAC;YAAC,OAAO,eAAM,CAAC,OAAO,CAAC,IAAA,2CAA6B,EAAC,uCAAyB,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,CAAC,EAAE,CAAC,CAAC;IACvO,IAAI,eAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,CAAC,MAAM;QACtE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,IAAA,8CAAgC,EAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3F,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAG7B,CAAC;IACL,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAA,2CAA6B,EAAC,SAAS,CAAC,CAAC;QACtD,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACrF,iBAAiB,CAAC,GAAG,CAAC,IAAA,4BAAkB,EAAC,qCAAqC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3K,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAA,mCAAyB,EAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,IAAA,mCAAyB,EAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAClL,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,UAAU,CAAC,MAAM;QAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9F,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAE,EAAE,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAE,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACnH,IAAI,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,QAAQ,CAAC,eAAe;YACpP,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3G,CAAC;AACD,SAAS,UAAU,CAAC,OAAsB,EAAE,UAA4B,EAAE,UAAmB;IACzF,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,IAAA,yCAA0B,EAAC,UAAU,CAAC,IAAI,IAAA,+CAAiC,EAAC,UAAU,CAAC,CAAC;IACzG,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI;QACvD,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,WAAW,KAAK,SAAS;QACzB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAwB,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtJ,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;QAAG,IAAI,IAAI,KAAK,SAAS;YAChF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAuB,EAAE,CAAC,CAAC;QAAC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,WAA6B,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC;AACnS,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAsB,EAAE,UAAoC,EAAE,SAAyC,EAAE,cAAsB;IACrJ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,OAAO,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;QAMlC,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,QAAQ,CAAsD,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAGjH,EAAE;YACxB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;gBACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;YACjF,OAAO,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,sCAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAGnI,EAAE;gBACxB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC,mBAAmB,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,cAAc;wBACxJ,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,eAAM,CAAC,IAAI,EAAE,CAAU,CAAC;wBAC9C,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,mDAAmD,CAAC,CAAC,CAAC;gBAC/I,CAAC;gBACD,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC5B,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBAClC,MAAM,MAAM,GAAc,EAAE,CAAC;gBAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5F,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,eAAe,KAAK,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,KAAK,IAAA,uCAA6B,EAAC,OAAO,EAAE,eAAe,CAAC,IAAI,KAAK,KAAK,SAAS;wBAC/K,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,sCAAsC,CAAC,CAAC,CAAC;oBACnI,IAAI,CAAC,IAAA,sCAAwB,EAAC,SAAS,CAAC,IAAI,CAAC;wBACzC,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;oBACnF,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;oBAClE,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;wBACzB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;oBACnF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC9C,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;oBAC7C,OAAO,IAAI,CAAC,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,OAAO,CAAC;gBACzD,OAAO,eAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,eAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAU,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAyBD,SAAS,0BAA0B,CAAC,MAA4B;IAC5D,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW;QAC5B,OAAO,MAAM,CAAC;IAClB,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;KACtB,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAAC,OAAsB,EAAE,UAAuC,EAAE,UAAmB;IACxG,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;QACxB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,IAAA,6CAA8B,EAAC,UAAU,CAAC,CAAC;IACrG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;QAC1E,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,UAAU,KAAK,SAAS;YACxB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC,WAAW,CAAC,QAAQ;YAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;QACnH,IAAI,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,UAAU,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,KAAK,UAAU,CAAC,eAAe;YAC3I,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,cAAc,CAEtC,CAAC;QACd,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,qBAAqB,CAM/C,CAAC;QACd,MAAM,UAAU,GAAG,SAAS,EAAE,UAAU,CAAC;QACzC,IAAI,OAAO,EAAE,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,mBAAmB,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,wBAAwB,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ;YAC9N,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,UAAU,CAAC,eAAe,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,UAAU,CAAC,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,wBAAwB,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChX,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAAC,OAAsB,EAAE,KAAkC,EAAE,UAAmB;IACxG,OAAO,eAAM,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAuE,EAAE;QAC9I,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW;YAC5B,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,GAAG,wBAAwB,IAAI,MAAM,CAAC,cAAc,GAAG,qBAAqB;YACxF,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,uCAA2B,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QACxN,OAAO,eAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAiC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpQ,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,eAAe,CAAC,OAAsB;IAC3C,MAAM,UAAU,GAAoC,CAAC,OAAgC,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1G,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtF,MAAM,KAAK,GAGL,EAAE,CAAC;QACT,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBACjB,MAAM;YACV,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;gBACzB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBACtB,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAc,CAAC;oBACjE,SAAS;gBACb,IAAI,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC;oBACpD,OAAO,EAAE,sBAAsB,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS;oBACnE,SAAS;gBACb,MAAM,KAAK,GAAG,OAAO,CAAC,KAAc,CAAC;gBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC7C,IAAI,IAAI,KAAK,SAAS;oBAClB,SAAS;gBACb,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,OAAO,KAAK,SAAS;oBACrB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBAC/H,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG;gBACjB,MAAM;QACd,CAAC;QACD,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAC9C,IAAI,SAAS,KAAK,SAAS;YACvB,KAAK,MAAM,EAAE,IAAI,SAAS;gBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC5C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAc,CAAC,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAuB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAc,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC9R,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;YACpC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAc,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,CAAC;YACnK,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAoB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAA6B,EAAE,CAAC,CAAC;QACxX,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAiC,CAAC,GAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClG,MAAM,gBAAgB,GAAqC,CAAC,GAAuB,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClH,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAkC,EAAE,UAAmB,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,0BAA0B,CAAC,CAAwC,CAAC;IACrN,MAAM,eAAe,GAAyC,CAAC,SAA0B,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC9G,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,8BAAkB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;YAClC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAC1F,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC7B,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QACzH,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,KAAK,KAAK,SAAS;gBACnB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,+BAAmB,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;YAC1F,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC7C,IAAI,IAAI,KAAK,SAAS;gBAClB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACzH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5E,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;oBACrK,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACpJ,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBACjF,IAAI,WAAW,KAAK,SAAS;oBACzB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAwB,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBACjM,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU;oBACzC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS;wBACpE,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,oCAAwB,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvK,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,WAA6B,CAAC,CAAC;gBACvF,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW;oBAC9B,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,gCAAoB,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzJ,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,CAA8B,CAAC;IACnG,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,UAAU;QACV,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,gBAAgB;QAC7B,IAAI,EAAE,CAAC,CAAC,KAAuB,EAAE,UAAmB,EAAE,EAAE,CAAC,IAAA,6CAA8B,EAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAoC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAA8B;QACzQ,cAAc,EAAE,mBAAmB;QACnC,eAAe;KAClB,CAAC,CAAC;AACP,CAAC;AACD,SAAS,QAAQ,CAAC,IAAgB,EAAE,OAAgC;IAChE,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS;YACtB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,kCAAsB,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;QACnI,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,+BAAoB,CAAC;QACjD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,MAAM,SAAS,GAAoB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACrD,MAAM,OAAO,GAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC;QAC9P,KAAK,CAAC,CAAC,eAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,uBAAuB,CAAC,KAEhC,IAAuC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9J,MAAM,uBAAuB,GAAG,IAAI,OAAO,EAA+B,CAAC;AAC3E,SAAS,0BAA0B,CAAC,IAAgB;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,4BAAiB,CAAC,yBAAyB,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,eAAM,CAAC,GAAG,CAAC;QACd,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,uCAA4B,EAAC,IAAA,2BAAgB,EAAC,QAAQ,CAAC,CAAC;QACnE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,4BAAiB;YAChD,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,4BAAiB,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,sCAAsC,EAAE,EAAE,KAAK,EAAE,CAAC;KAC/H,CAAC,CAAC;AACP,CAAC;AACD,SAAS,sBAAsB,CAAC,UAA2C;IACvE,QAAQ,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAA0B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;QACvF,KAAK,aAAa;YACd,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAA6B,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9F,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAA6B,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjG,CAAC;AACL,CAAC;AACD,SAAS,aAAa,CAAC,IAAgB,EAAE,UAA2C;IAChF,QAAQ,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAA0B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;QACvF,KAAK,aAAa;YACd,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAA6B,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9F,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAA6B,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACjG,CAAC;AACL,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAgB;IACxC,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,qCAAkB,CAAC;YAC/C,KAAK,CAAC,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC;YAC5D,WAAW,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACzF,YAAY,EAAE,CAAC,IAAyB,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC7D,IAAI,IAAI,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;oBACnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAA0B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;gBACvF,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,KAAK,oBAAoB,EAAE,CAAC;oBACtC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,mCAAuB,CAAC;wBAClD,IAAI,EAAE,2BAA2B;wBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;qBACtB,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,iBAA0B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;gBACvF,CAAC;gBACD,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,mCAAuB,CAAC;oBAClD,IAAI,EAAE,2BAA2B;oBACjC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB;iBAC9E,CAAC,CAAC,CAAC;YACR,CAAC,CAAC;SACL,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,cAAc,CAAC,KAE9B;IACG,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAAG,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,MAAM,CAAC,CAAC;QAAC,IAAI,OAAO,KAAK,SAAS;YAC7H,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAAC,OAAO,OAAO,CAAC,WAAW,CAAC;IAAC,CAAC,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,IAAA,sCAA2B,EAAC,YAAY,CAAC,CAAC;IAC3D,IAAI,eAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,+BAA+B,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,MAAM,eAAe,GAAyC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpG,MAAM,gBAAgB,GAA0C,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAsD,CAAC;IAC1K,MAAM,yBAAyB,GAAmD,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAA+D,CAAC;IACpM,MAAM,OAAO,GAA6B,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACnK,MAAM,SAAS,GAAG,CAAC,OAGlB,EAAoB,EAAE,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7G,MAAM,eAAe,GAA+B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACvG,MAAM,wBAAwB,GAAwC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAClI,MAAM,SAAS,GAA8C,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,gCAAqB,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACpY,MAAM,UAAU,GAA+C,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAA,8BAAmB,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAA+B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACtS,MAAM,WAAW,GAAgD,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAA8B,EAAE;QAC5N,IAAI,IAAI,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,oBAAoB,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE,sBAA+B;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAC;QACH,uBAAuB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,aAAa,CAAC;IACzB,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAiD,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAClF,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC7B,IAAI,EAAE,0BAAmC;gBACzC,IAAI,EAAE,6BAAsC;aAC/C,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAiC,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,iBAAiB;YACvM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE,8BAAa,EAAE,CAAC;YACjF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,OAAO,CAAC,YAAY;aACrC,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,eAAe,GAAyC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrG,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;AACrP,CAAC;AACY,QAAA,UAAU,GAAkB,cAAc,CAAC,EAAE,OAAO,EAAG,iDAAkF,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAA,0DAA2C,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { Effect, Result, Exit, Option, Queue, Schema, Semaphore, Stream } from \"effect\";\nimport { encodeAttemptLocator } from \"../../attempt-locator.ts\";\nimport { RecordCoordination, type RecordCoordinationService } from \"../../coordination/record-leases.ts\";\nimport { makeRecordAttachmentCatalog, type AnyRecordAttachmentPersistence, type RecordAttachmentCatalog, type RecordAttachmentDefinition, type RecordAttachmentPersistence } from \"../attachment/index.ts\";\nimport { enumerateRecordAttachmentClosure, hydrateRecordAttachmentCurrent, isRecordAttachmentSchema, mintRecordAttachmentReference, recordAttachmentReferenceWire, resolveRecordAttachmentDefinition, RecordAttachmentReference } from \"../attachment/protocol.ts\";\nimport { isRecordTextContentHandle, mintRecordContentHandle, type RecordContentHandle, type RecordTextContentHandle } from \"../attachment/content.ts\";\nimport { AttemptIdSchema, RecordFormatSchema, RecordIdSchema, RunIdSchema, Sha256DigestSchema } from \"../codec/identifiers.ts\";\nimport { decodeAttemptDocument, decodeMemberDocument, decodeRecordDocument, decodeRunDocument, encodeAttemptDocument, encodeMemberDocument, encodeRecordDocument, encodeRunDocument } from \"../codec/index.ts\";\nimport { canonicalizeRecordJson } from \"../definition/canonical.ts\";\nimport { RecordCoreInvalid, RecordReferenceInvalid, nonEmptyRecordIssues, recordIssue, type NonEmptyRecordIssues } from \"../errors/record-errors.ts\";\nimport { NiceEvalRecordAttachmentPersistences } from \"../family/catalog.ts\";\nimport { attemptRecordAppendCommandRuntime, attemptRecordCollectionRuntime, recordContributionFromAttachmentPersistence, recordContributionRuntime, recordDefinitionAttachment, recordWriteCommandPayload, type AttemptRecordAppendCommand, type AttemptRecordCollectionDefinition, type AttemptRecordCollectionLimitation, type AttemptRecordCollectionRuntime, type RecordContribution, type RecordWriteCommand } from \"../authoring.ts\";\nimport type { AttemptDocument, MemberDocument, RecordAttachmentOwner, RecordDocument, RecordSlotIdentity, RunDocument } from \"../model/core.ts\";\nimport { canonicalizeRunContext, type RunContext } from \"../model/run-context.ts\";\nimport { RECORD_FORMAT, compareCanonicalIdentity, type AttemptId, type RunId, type Sha256Digest, type SlotId } from \"../model/identifiers.ts\";\nimport type { RecordCoreRead, RecordWarning } from \"../model/read-state.ts\";\nimport { validateExpectedSlots } from \"../model/validation.ts\";\nimport { RecordResourceLimitExceeded } from \"../platform/errors.ts\";\nimport { recordRootPaths, type RecordRoot } from \"../platform/root.ts\";\nimport { RecordEntropy, type RecordEntropyService } from \"../platform/services.ts\";\nimport { FamilyDefinitionRequired, RecordBootstrapInvalid, RecordFormatUnsupported, RecordHandleInvalid, RecordIntegrityFailure, RecordMigrationPlanStale, RecordReaderClosed, RecordSealIncomplete, type RecordMaintenanceOpenError, type RecordReaderOpenError, type RecordReaderReadError } from \"../reader/errors.ts\";\nimport { cleanIncompleteRuns, inspectIncompleteRuns } from \"../maintenance/index.ts\";\nimport { ProjectStateDatabase, RECORD_SQLITE_CHUNK_BYTES, RECORD_SQLITE_MAX_PAGE_ROWS, RECORD_SQLITE_MAX_PUBLISH_BYTES, RECORD_SQLITE_MAX_PUBLISH_ROWS, RECORD_SQLITE_MAX_ROW_BYTES, SqliteRecordError, inspectProjectRecordDatabase, recordSqlitePath, type FinalizedAttachmentMetadata, type PersistedAttachmentReference, type PersistedCollectionItem, type PersistedContentChunk, type PersistedContentMetadata, type ProjectRecordDatabaseInspection, type SealedAttachmentMetadata, type SealedRunCore, type StorageWorkerClient } from \"../sqlite/index.ts\";\nimport { attachmentId, attachmentLogicalIdentity, collectionItemLogicalIdentity, compareCanonicalCodeUnits, contentId, hashCanonicalTuple } from \"../sqlite/seal.ts\";\nimport { prepareStreamingRecordAttachment, type AttachedContentError, type AttachedContentRequirements, type PreparedStreamingRecordAttachment, type RecordAttachmentSessionBuilder } from \"../writer/current-attachment.ts\";\nimport { recordAlreadyWritten, recordAppendCommandInvalid, recordAttachmentEncodeError, recordCollectionDefinitionInvalid, recordCollectionNotClosed, recordDraftStateError, recordOwnerDefinitionMismatch, recordWriterClosed } from \"../writer/errors.ts\";\nimport { encodeRecordJsonUtf8, RECORD_JSON_MAXIMUM_BYTES } from \"../writer/limits.ts\";\nimport type { RecordWriteError } from \"../writer/types.ts\";\nimport type { AttemptRecordsWriter, AttemptWriteSession, CreateRunRequest, OwnerRecordsWriter, ReadableAttempt, ReadableRun, RecordAttachmentContentReader, RecordAttachmentRead, RecordCleanOperationPlan, RecordCleanOperationReceipt, RecordCompleteView, RecordHostSDK, RecordMaintenanceOperationFailure, RecordMaintenanceSession, RecordMigrateOperationPlan, RecordMigrateOperationReceipt, RecordMigrationPlan, RecordReadSession, RecordSealReceipt, RecordSelection, RecordSelectionProblem, RecordSelectionRequest, ReferenceRunWriteSession, RunCompletion, RunWriteSession, SelectedAttemptRef, SelectedOwnerRef, SelectedRunFacts, SelectedRunRef } from \"./types.ts\";\nimport { attemptWriteSessionBrand, runWriteSessionBrand, selectedAttemptRefBrand, selectedOwnerRefBrand, selectedRunRefBrand } from \"./types.ts\";\ntype AnyDefinition<Owner extends RecordAttachmentOwner = RecordAttachmentOwner> = RecordAttachmentDefinition<Owner, string, Schema.Top>;\ntype AnyPersistence = RecordAttachmentPersistence<AnyDefinition, number>;\nconst WRITE_DEADLINE_MS = 30000;\nconst MAILBOX_COMMANDS = 64;\nconst COLLECTION_READ_MAX_ROWS = 10000;\nconst WHOLE_VALUE_MAX_BYTES = 16 * 1024 * 1024;\nconst CONTENT_BATCH_CHUNKS = Math.min(4, Math.max(1, Math.floor(RECORD_SQLITE_MAX_PUBLISH_BYTES / RECORD_SQLITE_CHUNK_BYTES)));\nconst CONTENT_READ_PAGE_ROWS = Math.min(4, RECORD_SQLITE_MAX_PAGE_ROWS);\nconst canonicalLimits = Object.freeze({ maximumJsonBytes: RECORD_JSON_MAXIMUM_BYTES, maximumDepth: 64, maximumNodes: 100000, maximumObjectKeys: 10000, maximumArrayItems: 100000, maximumKeyUtf8Bytes: 16384, maximumStringUtf8Bytes: 1048576 });\nfunction digest(bytes: Uint8Array): Sha256Digest {\n const value = createHash(\"sha256\").update(bytes).digest(\"hex\");\n const decoded = Schema.decodeUnknownResult(Sha256DigestSchema)(value);\n if (Result.isFailure(decoded))\n throw new Error(\"invalid SHA-256\");\n return decoded.success;\n}\nfunction canonicalBytes(value: unknown): Uint8Array | undefined {\n const canonical = canonicalizeRecordJson(value, canonicalLimits);\n return Result.isFailure(canonical) ? undefined : encodeRecordJsonUtf8(canonical.success);\n}\nfunction parseJson(bytes: Uint8Array): unknown | undefined {\n try {\n return JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)) as unknown;\n }\n catch {\n return undefined;\n }\n}\nfunction invalidIssues(path: readonly string[] = []): NonEmptyRecordIssues { return nonEmptyRecordIssues([recordIssue(\"record-schema-invalid\", path)])!; }\nfunction coreInvalid(): RecordCoreInvalid { return new RecordCoreInvalid({ code: \"record-core-invalid\", issues: invalidIssues([\"core\"]) }); }\nfunction deadline(): number { return Date.now() + WRITE_DEADLINE_MS; }\nfunction storageRoot(root: RecordRoot): string | undefined { return recordRootPaths(root)?.portableRoot; }\nfunction sameRoot(a: RecordRoot, b: RecordRoot): boolean { return storageRoot(a) !== undefined && storageRoot(a) === storageRoot(b); }\nfunction sqliteEffect<A>(operation: () => Promise<A>): Effect.Effect<A, SqliteRecordError> {\n return Effect.tryPromise({ try: operation, catch: (cause) => cause instanceof SqliteRecordError ? cause : new SqliteRecordError(\"record-sqlite-error\", \"record-host\", \"storage worker failed\", { cause }) });\n}\nfunction withWriteAdmission<A>(coordination: RecordCoordinationService, root: RecordRoot, operation: (deadlineEpochMs: number) => Promise<A>): Effect.Effect<A, RecordWriteError> {\n const deadlineEpochMs = deadline();\n return Effect.uninterruptibleMask((restore) => Effect.scoped(Effect.gen(function* () {\n yield* restore(coordination.enterRecordWriteBatch({\n root,\n deadlineEpochMs,\n }));\n // The storage worker owns the synchronous SQLite transaction. Once it has\n // admission, interruption waits for its Promise to settle so the scope\n // cannot release the writer owner before COMMIT or ROLLBACK.\n return yield* sqliteEffect(() => operation(deadlineEpochMs));\n })));\n}\nfunction exactMarker(value: unknown, key: string): unknown | undefined {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return undefined;\n const keys = Reflect.ownKeys(value);\n if (keys.length !== 1 || keys[0] !== key)\n return undefined;\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n return descriptor?.enumerable && \"value\" in descriptor ? descriptor.value : undefined;\n}\nfunction hasOwnMarker(value: unknown, key: string): boolean { return typeof value === \"object\" && value !== null && !Array.isArray(value) && Object.prototype.hasOwnProperty.call(value, key); }\ninterface StoredAttachment {\n readonly metadata: FinalizedAttachmentMetadata;\n readonly ownerKind: RecordAttachmentOwner;\n readonly ownerAttemptId?: AttemptId;\n readonly family: string;\n readonly revision: number;\n}\ninterface CollectionState {\n readonly authoring: AttemptRecordCollectionRuntime;\n readonly attachmentId: string;\n nextOrdinal: number;\n encodedBytes: number;\n readonly itemHash: ReturnType<typeof createHash>;\n completion?: {\n readonly state: \"complete\";\n } | {\n readonly state: \"partial\";\n readonly limitations: readonly [\n AttemptRecordCollectionLimitation,\n ...AttemptRecordCollectionLimitation[]\n ];\n };\n}\ninterface AttemptRuntime {\n readonly run: RunRuntime;\n readonly attemptId: AttemptId;\n readonly slotId: SlotId;\n state: \"open\" | \"completing\" | \"completed\" | \"failed\";\n outcome?: AttemptDocument[\"outcome\"];\n readonly families: Set<string>;\n readonly collections: Map<string, CollectionState>;\n pendingAppends: number;\n readonly appendAcks: Queue.Queue<void>;\n handle?: AttemptWriteSession;\n}\ninterface AppendCommand {\n readonly attempt: AttemptRuntime;\n readonly attachmentId: string;\n readonly bytes: number;\n readonly item: PersistedCollectionItem;\n}\ninterface RunRuntime {\n readonly root: RecordRoot;\n readonly client: StorageWorkerClient;\n readonly coordination: RecordCoordinationService;\n readonly entropy: RecordEntropyService;\n readonly catalog: RecordAttachmentCatalog;\n readonly record: RecordDocument;\n readonly writerGeneration: string;\n readonly runId: RunId;\n readonly experimentId: CreateRunRequest[\"experimentId\"];\n readonly context: RunContext;\n readonly startedAt: CreateRunRequest[\"startedAt\"];\n readonly expectedSlots: readonly RecordSlotIdentity[];\n readonly expectedBySlot: ReadonlyMap<SlotId, RecordSlotIdentity>;\n readonly lock: Semaphore.Semaphore;\n readonly queue: Queue.Queue<AppendCommand>;\n readonly attempts: Map<AttemptId, AttemptRuntime>;\n readonly members: Map<SlotId, MemberDocument>;\n readonly reservations: Set<SlotId>;\n readonly families: Set<string>;\n readonly attachments: Map<string, StoredAttachment>;\n state: \"open\" | \"sealing\" | \"sealed\" | \"failed\";\n failure?: RecordWriteError;\n handle?: object;\n}\ninterface ReaderLifecycle {\n closed: boolean;\n}\ntype OwnerRuntime = {\n readonly kind: \"run\";\n readonly runId: RunId;\n} | {\n readonly kind: \"attempt\";\n readonly runId: RunId;\n readonly attemptId: AttemptId;\n};\ninterface ReaderRuntime {\n readonly root: RecordRoot;\n readonly client: StorageWorkerClient;\n readonly catalog: RecordAttachmentCatalog;\n readonly lifecycle: ReaderLifecycle;\n readonly runs: WeakMap<SelectedRunRef, RunId>;\n readonly attempts: WeakMap<SelectedAttemptRef, {\n readonly runId: RunId;\n readonly attemptId: AttemptId;\n }>;\n readonly owners: WeakMap<SelectedOwnerRef, OwnerRuntime>;\n readonly selections: WeakSet<RecordSelection>;\n readonly coreCache: Map<RunId, SealedRunCore>;\n readonly runRefs: Map<RunId, SelectedRunRef>;\n readonly attemptRefs: Map<string, SelectedAttemptRef>;\n readonly content: WeakMap<RecordContentHandle, {\n readonly contentId: string;\n readonly logicalHandle: string;\n readonly byteLength: number;\n readonly digest: string;\n readonly chunkCount: number;\n }>;\n}\nconst runSessions = new WeakMap<object, RunRuntime>();\nconst attemptSessions = new WeakMap<object, AttemptRuntime>();\nconst selectedAttemptCapabilities = new WeakMap<SelectedAttemptRef, {\n readonly root: RecordRoot;\n readonly lifecycle: ReaderLifecycle;\n}>();\nexport function writerGenerationForRunSession(session: RunWriteSession | ReferenceRunWriteSession): string | undefined {\n return runSessions.get(session)?.writerGeneration;\n}\nexport function discardAttemptWriteSession(session: AttemptWriteSession): Effect.Effect<void, RecordWriteError> {\n const attempt = attemptSessions.get(session);\n if (attempt === undefined)\n return Effect.fail(recordWriterClosed());\n return Effect.gen(function* () {\n yield* attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n attempt.state = \"failed\";\n yield* withWriteAdmission(attempt.run.coordination, attempt.run.root, (deadlineEpochMs) => attempt.run.client.discardAttempt({\n runId: attempt.run.runId,\n writerGeneration: attempt.run.writerGeneration,\n attemptId: attempt.attemptId,\n deadlineEpochMs,\n }));\n attempt.run.attempts.delete(attempt.attemptId);\n attempt.run.reservations.delete(attempt.slotId);\n for (const [attachmentId, attachment] of attempt.run.attachments) {\n if (attachment.ownerKind === \"attempt\" && attachment.ownerAttemptId === attempt.attemptId) {\n attempt.run.attachments.delete(attachmentId);\n }\n }\n attemptSessions.delete(session);\n }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(attempt.run, error))));\n}\nfunction attachmentIdentity(owner: OwnerRuntime, family: string): string {\n return attachmentId({ runId: owner.runId, owner: owner.kind, ...(owner.kind === \"attempt\" ? { attemptId: owner.attemptId } : {}), family });\n}\nfunction contentIdentity(attachmentId: string, logicalHandle: string): string {\n return contentId(attachmentId, logicalHandle);\n}\nfunction bytesEqual(left: Uint8Array, right: Uint8Array): boolean {\n if (left.byteLength !== right.byteLength)\n return false;\n for (let index = 0; index < left.byteLength; index += 1)\n if (left[index] !== right[index])\n return false;\n return true;\n}\nfunction attachmentMetadata(input: {\n readonly attachmentId: string;\n readonly payloadBytes: Uint8Array;\n readonly references: readonly PersistedAttachmentReference[];\n readonly contents: readonly PersistedContentMetadata[];\n readonly collection?: {\n readonly count: number;\n readonly byteLength: number;\n readonly digest: string;\n };\n}): FinalizedAttachmentMetadata {\n const canonicalDigest = digest(input.payloadBytes);\n const inventoryBytes = canonicalBytes({ references: input.references.map(({ ordinal, owner, family, referenceDigest }) => ({ ordinal, owner, family, digest: referenceDigest })), contents: input.contents, ...(input.collection === undefined ? {} : { collection: input.collection }) });\n if (inventoryBytes === undefined)\n throw new Error(\"invalid attachment inventory\");\n const inventoryDigest = digest(inventoryBytes);\n return Object.freeze({ attachmentId: input.attachmentId, logicalIdentity: attachmentLogicalIdentity(input.attachmentId, canonicalDigest, inventoryDigest), canonicalBytes: input.payloadBytes, canonicalDigest, logicalInventoryBytes: inventoryBytes, inventoryDigest, contents: Object.freeze([...input.contents]) });\n}\nfunction resolvePersistence(catalog: RecordAttachmentCatalog, definition: unknown, owner: RecordAttachmentOwner): Result.Result<AnyPersistence, RecordWriteError> {\n const attachment = recordDefinitionAttachment(definition) ?? resolveRecordAttachmentDefinition(definition);\n if (attachment === undefined)\n return Result.fail(recordCollectionDefinitionInvalid());\n if (attachment.owner !== owner)\n return Result.fail(recordOwnerDefinitionMismatch({ expected: owner, actual: attachment.owner }));\n const persistence = catalog.persistence(attachment);\n return persistence === undefined ? Result.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner, family: attachment.family, revision: 1 })) : Result.succeed(persistence as AnyPersistence);\n}\nfunction poison(run: RunRuntime, error: RecordWriteError): void { if (run.failure === undefined)\n run.failure = error; run.state = \"failed\"; }\nfunction assertRunOpen(run: RunRuntime): Effect.Effect<void, RecordWriteError> {\n if (run.failure !== undefined)\n return Effect.fail(run.failure);\n return run.state === \"open\" ? Effect.void : Effect.fail(recordDraftStateError({ code: \"record-draft-state-invalid\", operation: \"record\", state: run.state === \"sealed\" ? \"published\" : run.state === \"failed\" ? \"failed\" : \"publishing\" }));\n}\nfunction makeBatches(commands: readonly AppendCommand[]): readonly (readonly AppendCommand[])[] {\n const result: AppendCommand[][] = [];\n let batch: AppendCommand[] = [];\n let bytes = 0;\n for (const command of commands) {\n if (batch.length > 0 && (command.attachmentId !== batch[0]!.attachmentId || batch.length >= RECORD_SQLITE_MAX_PUBLISH_ROWS || bytes + command.bytes > RECORD_SQLITE_MAX_PUBLISH_BYTES)) {\n result.push(batch);\n batch = [];\n bytes = 0;\n }\n batch.push(command);\n bytes += command.bytes;\n }\n if (batch.length > 0)\n result.push(batch);\n return result;\n}\nfunction collectionWorker(run: RunRuntime): Effect.Effect<never, never> {\n return Effect.forever(Effect.gen(function* () {\n const first = yield* Queue.take(run.queue);\n const tail = yield* Queue.clear(run.queue);\n for (const batch of makeBatches(Object.freeze([first, ...tail]))) {\n const exit = yield* Effect.exit(withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageCollectionItems({ runId: run.runId, writerGeneration: run.writerGeneration, attachmentId: batch[0]!.attachmentId, items: Object.freeze(batch.map(({ item }) => item)), deadlineEpochMs })));\n const attempt = batch[0]!.attempt;\n attempt.pendingAppends -= batch.length;\n yield* Queue.offer(attempt.appendAcks, undefined);\n if (Exit.isFailure(exit))\n yield* Effect.sync(() => poison(run, new SqliteRecordError(\"record-sqlite-error\", \"stage-collection-items\", \"collection batch failed\")));\n }\n })).pipe(Effect.catchCause(() => Effect.never));\n}\nfunction snapshotItem(authoring: AttemptRecordCollectionRuntime, item: unknown, ordinal: number): Result.Result<PersistedCollectionItem, RecordWriteError> {\n if (!isRecordAttachmentSchema(authoring.item))\n return Result.fail(recordAppendCommandInvalid());\n const encoded = Schema.encodeUnknownResult(authoring.item)(item);\n if (Result.isFailure(encoded))\n return Result.fail(recordAppendCommandInvalid());\n const bytes = canonicalBytes(encoded.success);\n if (bytes === undefined || bytes.byteLength > RECORD_SQLITE_MAX_ROW_BYTES)\n return Result.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: RECORD_SQLITE_MAX_ROW_BYTES, observedAtLeast: bytes?.byteLength ?? RECORD_SQLITE_MAX_ROW_BYTES + 1, path: authoring.attachment.family }));\n const canonicalDigest = digest(bytes);\n return Result.succeed(Object.freeze({ ordinal, logicalIdentity: collectionItemLogicalIdentity(ordinal, canonicalDigest), canonicalBytes: bytes, canonicalDigest }));\n}\nfunction admitCollection(run: RunRuntime, attempt: AttemptRuntime, authoring: AttemptRecordCollectionRuntime): Effect.Effect<CollectionState, RecordWriteError> {\n const current = attempt.collections.get(authoring.attachment.family);\n if (current !== undefined)\n return Effect.succeed(current);\n const attachmentId = attachmentIdentity({ kind: \"attempt\", runId: run.runId, attemptId: attempt.attemptId }, authoring.attachment.family);\n return Effect.gen(function* () {\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.admitAttachment({ runId: run.runId, writerGeneration: run.writerGeneration, attachmentId, ownerKind: \"attempt\", ownerRunId: run.runId, ownerAttemptId: attempt.attemptId, family: authoring.attachment.family, familyRevision: authoring.persistence.revision, deadlineEpochMs }));\n const state: CollectionState = { authoring, attachmentId, nextOrdinal: 0, encodedBytes: 0, itemHash: createHash(\"sha256\") };\n attempt.collections.set(authoring.attachment.family, state);\n attempt.families.add(authoring.attachment.family);\n return state;\n });\n}\nfunction appendCollectionBatch(attempt: AttemptRuntime, definition: unknown, items: readonly unknown[]): Effect.Effect<{\n readonly state: \"retained\";\n}, RecordWriteError> {\n const run = attempt.run;\n return Effect.uninterruptibleMask(() => run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n const authoring = attemptRecordCollectionRuntime(definition);\n if (authoring === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const collection = yield* admitCollection(run, attempt, authoring);\n if (collection.completion !== undefined)\n return yield* Effect.fail(recordWriterClosed());\n const commands: AppendCommand[] = [];\n for (let index = 0; index < items.length; index += 1) {\n const frozen = snapshotItem(authoring, items[index], collection.nextOrdinal + index);\n if (Result.isFailure(frozen))\n return yield* Effect.fail(frozen.failure);\n commands.push(Object.freeze({ attempt, attachmentId: collection.attachmentId, bytes: frozen.success.canonicalBytes.byteLength, item: frozen.success }));\n }\n attempt.pendingAppends += commands.length;\n // One bounded batch is offered atomically with respect to interruption;\n // the worker can always drain it without acquiring this lock.\n yield* Queue.offerAll(run.queue, commands);\n for (const command of commands) {\n collection.nextOrdinal += 1;\n collection.encodedBytes += command.bytes;\n collection.itemHash.update(command.item.canonicalBytes).update(\"\\n\");\n }\n return Object.freeze({ state: \"retained\" as const });\n })));\n}\nfunction appendCollection(attempt: AttemptRuntime, definition: unknown, item: unknown): Effect.Effect<{\n readonly state: \"retained\";\n}, RecordWriteError> {\n return appendCollectionBatch(attempt, definition, [item]);\n}\nfunction closeCollection(attempt: AttemptRuntime, definition: unknown, completion: CollectionState[\"completion\"]): Effect.Effect<void, RecordWriteError> {\n return attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n const authoring = attemptRecordCollectionRuntime(definition);\n if (authoring === undefined || completion === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const collection = yield* admitCollection(attempt.run, attempt, authoring);\n if (collection.completion !== undefined)\n return yield* Effect.fail(recordWriterClosed());\n collection.completion = completion.state === \"complete\" ? Object.freeze({ state: \"complete\" as const }) : Object.freeze({ state: \"partial\" as const, limitations: Object.freeze(completion.limitations.map((value) => Object.freeze({ ...value }))) as readonly [\n AttemptRecordCollectionLimitation,\n ...AttemptRecordCollectionLimitation[]\n ] });\n }));\n}\nfunction processContent<Error, Requirements>(input: {\n readonly run: RunRuntime;\n readonly attachmentId: string;\n readonly source: PreparedStreamingRecordAttachment<Error, Requirements>[\"contents\"][number];\n}): Effect.Effect<PersistedContentMetadata, RecordWriteError | Error, Requirements> {\n const contentId = contentIdentity(input.attachmentId, input.source.logicalHandle);\n return Effect.gen(function* () {\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.admitContent({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId: input.attachmentId, contentId, logicalHandle: input.source.logicalHandle, deadlineEpochMs }));\n const overall = createHash(\"sha256\");\n let ordinal = 0;\n let byteLength = 0;\n const available: Uint8Array[] = [];\n const takePending = (): Uint8Array => available.pop() ?? new Uint8Array(RECORD_SQLITE_CHUNK_BYTES);\n let pending = takePending();\n let pendingLength = 0;\n let batch: PersistedContentChunk[] = [];\n let batchBytes = 0;\n const flushBatch = (): Effect.Effect<void, RecordWriteError> => {\n if (batch.length === 0)\n return Effect.void;\n const frozen = Object.freeze(batch);\n batch = [];\n batchBytes = 0;\n return withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.appendContentChunks({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, contentId, chunks: frozen, deadlineEpochMs }))\n .pipe(Effect.map((returned) => { for (const value of returned)\n available.push(value); }));\n };\n const emit = (frozen: Uint8Array): Effect.Effect<void, RecordWriteError> => Effect.gen(function* () {\n overall.update(frozen);\n byteLength += frozen.byteLength;\n if (input.source.maximumBytes !== undefined && byteLength > input.source.maximumBytes)\n return yield* Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: input.source.maximumBytes, observedAtLeast: byteLength, path: input.source.logicalHandle }));\n batch.push(Object.freeze({ ordinal: ordinal++, bytes: frozen, chunkDigest: digest(frozen) }));\n batchBytes += frozen.byteLength;\n if (batch.length >= CONTENT_BATCH_CHUNKS || batchBytes >= RECORD_SQLITE_MAX_PUBLISH_BYTES)\n yield* flushBatch();\n });\n yield* Stream.runForEach(input.source.stream, (incoming) => Effect.gen(function* () {\n if (!(incoming instanceof Uint8Array))\n return yield* Effect.fail(recordAppendCommandInvalid());\n let offset = 0;\n while (offset < incoming.byteLength) {\n const take = Math.min(RECORD_SQLITE_CHUNK_BYTES - pendingLength, incoming.byteLength - offset);\n pending.set(incoming.subarray(offset, offset + take), pendingLength);\n pendingLength += take;\n offset += take;\n if (pendingLength === RECORD_SQLITE_CHUNK_BYTES) {\n yield* emit(pending);\n pending = takePending();\n pendingLength = 0;\n }\n }\n }));\n // A full pending buffer is uniquely owned here and can be transferred\n // directly. Only the final partial chunk needs an exact-size copy.\n if (pendingLength > 0)\n yield* emit(pending.slice(0, pendingLength));\n yield* flushBatch();\n return Object.freeze({ contentId, logicalHandle: input.source.logicalHandle, byteLength, digest: overall.digest(\"hex\"), chunkCount: ordinal });\n });\n}\nfunction writeAttachment<Owner extends RecordAttachmentOwner, Value>(input: {\n readonly run: RunRuntime;\n readonly owner: Owner;\n readonly attempt?: AttemptRuntime;\n readonly persistence: AnyPersistence;\n readonly value: Value | ((builder: RecordAttachmentSessionBuilder) => Value);\n}): Effect.Effect<void, RecordWriteError | AttachedContentError<Value>, AttachedContentRequirements<Value>> {\n const targetFamilies = input.attempt?.families ?? input.run.families;\n const family = input.persistence.attachment.family;\n const ownerRuntime: OwnerRuntime = input.owner === \"run\" ? { kind: \"run\", runId: input.run.runId } : { kind: \"attempt\", runId: input.run.runId, attemptId: input.attempt!.attemptId };\n return Effect.gen(function* () {\n yield* input.run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(input.run); if (input.attempt !== undefined && input.attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed()); if (targetFamilies.has(family))\n return yield* Effect.fail(recordAlreadyWritten({ owner: input.owner, family })); targetFamilies.add(family); }));\n const prepared = yield* prepareStreamingRecordAttachment({ definition: input.persistence.attachment, value: input.value as never });\n const attachmentId = attachmentIdentity(ownerRuntime, family);\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.admitAttachment({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId, ownerKind: input.owner, ownerRunId: input.run.runId, ...(input.attempt === undefined ? {} : { ownerAttemptId: input.attempt.attemptId }), family, familyRevision: input.persistence.revision, deadlineEpochMs }));\n const contents = yield* Effect.forEach(prepared.contents, (source) => processContent({ run: input.run, attachmentId, source }), { concurrency: 1 });\n const references: PersistedAttachmentReference[] = prepared.references.map((reference, ordinal) => { const bytes = canonicalBytes(reference); if (bytes === undefined)\n throw new Error(\"invalid reference\"); return Object.freeze({ ordinal, owner: reference.owner, family: reference.family, canonicalBytes: bytes, referenceDigest: digest(bytes) }); });\n for (let offset = 0; offset < references.length; offset += RECORD_SQLITE_MAX_PUBLISH_ROWS) {\n const refs = Object.freeze(references.slice(offset, offset + RECORD_SQLITE_MAX_PUBLISH_ROWS));\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.stageAttachmentReferences({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId, references: refs, deadlineEpochMs }));\n }\n const metadata = attachmentMetadata({ attachmentId, payloadBytes: prepared.payloadBytes, references, contents });\n input.run.attachments.set(attachmentId, Object.freeze({ metadata, ownerKind: input.owner, ...(input.attempt === undefined ? {} : { ownerAttemptId: input.attempt.attemptId }), family, revision: input.persistence.revision }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(input.run, error as RecordWriteError)))) as Effect.Effect<void, RecordWriteError | AttachedContentError<Value>, AttachedContentRequirements<Value>>;\n}\nfunction finishCollections(attempt: AttemptRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n for (const collection of attempt.collections.values())\n if (collection.completion === undefined)\n return yield* Effect.fail(recordCollectionNotClosed(collection.authoring.attachment.family));\n while (attempt.pendingAppends > 0)\n yield* Queue.take(attempt.appendAcks);\n if (attempt.run.failure !== undefined)\n return yield* Effect.fail(attempt.run.failure);\n for (const collection of attempt.collections.values()) {\n const completion = collection.completion!;\n const shell = { collection: completion.state === \"complete\" ? { state: \"complete\" as const, limitations: [] as const } : { state: \"partial\" as const, limitations: completion.limitations }, items: [] as const };\n if (!isRecordAttachmentSchema(collection.authoring.attachment.schema))\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const encoded = Schema.encodeUnknownResult(collection.authoring.attachment.schema)(shell);\n if (Result.isFailure(encoded))\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const payloadBytes = canonicalBytes(encoded.success);\n if (payloadBytes === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const metadata = attachmentMetadata({ attachmentId: collection.attachmentId, payloadBytes, references: [], contents: [], collection: { count: collection.nextOrdinal, byteLength: collection.encodedBytes, digest: collection.itemHash.digest(\"hex\") } });\n attempt.run.attachments.set(collection.attachmentId, Object.freeze({ metadata, ownerKind: \"attempt\", ownerAttemptId: attempt.attemptId, family: collection.authoring.attachment.family, revision: collection.authoring.persistence.revision }));\n }\n });\n}\nfunction completeAttempt(attempt: AttemptRuntime, outcome: AttemptDocument[\"outcome\"]): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n yield* attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n attempt.state = \"completing\";\n const unclosed = [...attempt.collections.values()].find(({ completion }) => completion === undefined);\n if (unclosed !== undefined) {\n attempt.state = \"failed\";\n return yield* Effect.fail(recordCollectionNotClosed(unclosed.authoring.attachment.family));\n }\n }));\n yield* finishCollections(attempt);\n const slot = attempt.run.expectedBySlot.get(attempt.slotId);\n if (slot === undefined)\n return yield* Effect.fail(coreInvalid());\n attempt.outcome = outcome;\n attempt.run.members.set(attempt.slotId, Object.freeze({ slotId: attempt.slotId, action: \"executed\", attempt: Object.freeze({ originRunId: attempt.run.runId, attemptId: attempt.attemptId }) }));\n attempt.state = \"completed\";\n if (attempt.handle !== undefined)\n attemptSessions.delete(attempt.handle);\n const metadata = buildRunMetadata(attempt.run, Date.now() as RunDocument[\"completedAt\"]);\n yield* withWriteAdmission(attempt.run.coordination, attempt.run.root, (deadlineEpochMs) => attempt.run.client.stageRunPublicationMetadata({ ...metadata, deadlineEpochMs }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => { attempt.state = \"failed\"; poison(attempt.run, error); })));\n}\nfunction makeAttemptSession(attempt: AttemptRuntime): AttemptWriteSession {\n const writeDefinition = (definition: unknown, value: unknown) => { const persistence = resolvePersistence(attempt.run.catalog, definition, \"attempt\"); return Result.isFailure(persistence) ? Effect.fail(persistence.failure) : writeAttachment({ run: attempt.run, owner: \"attempt\", attempt, persistence: persistence.success, value }); };\n const record = Object.freeze({\n write<Value, Error, Requirements>(command: RecordWriteCommand<\"attempt\", Value, Error, Requirements>) { const payload = recordWriteCommandPayload(command, \"attempt\"); return payload === undefined ? Effect.fail(recordAppendCommandInvalid()) : writeDefinition(payload.definition, payload.input); },\n start(definition: AttemptRecordCollectionDefinition<string, Schema.Top>) { const authoring = attemptRecordCollectionRuntime(definition); return authoring === undefined ? Effect.fail(recordCollectionDefinitionInvalid()) : admitCollection(attempt.run, attempt, authoring).pipe(Effect.asVoid); },\n append<Item>(command: AttemptRecordAppendCommand<Item>) { const runtime = attemptRecordAppendCommandRuntime(command); return runtime === undefined ? Effect.fail(recordAppendCommandInvalid()) : appendCollection(attempt, runtime.definition, runtime.item); },\n }) as AttemptWriteSession[\"record\"];\n const append: AttemptRecordsWriter[\"append\"] = (definition, item) => appendCollection(attempt, definition, item);\n const appendAll: AttemptRecordsWriter[\"appendAll\"] = <Definition extends AttemptRecordCollectionDefinition<string, Schema.Top>, Error, Requirements>(definition: Definition, items: Stream.Stream<Schema.Schema.Type<Definition[\"item\"]>, Error, Requirements>) => items.pipe(Stream.grouped(MAILBOX_COMMANDS), Stream.runForEach((group) => appendCollectionBatch(attempt, definition, group).pipe(Effect.asVoid)));\n const close: AttemptRecordsWriter[\"close\"] = (definition, completion) => closeCollection(attempt, definition, completion);\n const records: AttemptRecordsWriter = Object.freeze({ write: writeDefinition as AttemptRecordsWriter[\"write\"], append, appendAll, close });\n const session: AttemptWriteSession = Object.freeze({ attemptId: attempt.attemptId, slotId: attempt.slotId, [attemptWriteSessionBrand]: () => undefined, complete: (outcome: AttemptDocument[\"outcome\"]) => attemptSessions.get(session) === attempt ? completeAttempt(attempt, outcome) : Effect.fail(recordWriterClosed()), attach: writeDefinition as AttemptWriteSession[\"attach\"], record, records });\n attempt.handle = session;\n attemptSessions.set(session, attempt);\n return session;\n}\nfunction mintId<A>(entropy: RecordEntropyService, schema: Schema.Codec<A, string>): Effect.Effect<A, RecordWriteError> {\n return Effect.flatMap(entropy.uuid, (raw) => { const decoded = Schema.decodeUnknownResult(schema)(raw); return Result.isFailure(decoded) ? Effect.fail(coreInvalid()) : Effect.succeed(decoded.success); });\n}\nfunction createAttempt(run: RunRuntime, slotId: SlotId): Effect.Effect<AttemptWriteSession, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(run);\n if (!run.expectedBySlot.has(slotId) || run.reservations.has(slotId))\n return yield* Effect.fail(coreInvalid());\n const attemptId = yield* mintId(run.entropy, AttemptIdSchema);\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.admitAttempt({ runId: run.runId, writerGeneration: run.writerGeneration, attemptId, attemptLocator: encodeAttemptLocator(attemptId), deadlineEpochMs }));\n const appendAcks = yield* Queue.unbounded<void>();\n const attempt: AttemptRuntime = { run, attemptId, slotId, state: \"open\", families: new Set(), collections: new Map(), pendingAppends: 0, appendAcks };\n run.attempts.set(attemptId, attempt);\n run.reservations.add(slotId);\n return makeAttemptSession(attempt);\n }));\n}\nfunction selectedReference(run: RunRuntime, ref: SelectedAttemptRef): boolean { const capability = selectedAttemptCapabilities.get(ref); return capability !== undefined && !capability.lifecycle.closed && sameRoot(capability.root, run.root); }\nfunction referenceAttempt(run: RunRuntime, input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n}): Effect.Effect<void, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if (!selectedReference(run, input.attempt))\n return yield* Effect.fail(new RecordReferenceInvalid({ code: \"record-reference-invalid\" })); if (!run.expectedBySlot.has(input.slotId) || run.reservations.has(input.slotId))\n return yield* Effect.fail(coreInvalid()); run.members.set(input.slotId, Object.freeze({ slotId: input.slotId, action: input.action, attempt: Object.freeze({ originRunId: input.attempt.originRunId, attemptId: input.attempt.attemptId }) })); run.reservations.add(input.slotId); }));\n}\nfunction terminalMember(run: RunRuntime, slotId: SlotId, action: \"not-dispatched\" | \"interrupted\", absenceReason: import(\"../../run/protocol.ts\").RunAbsenceReason): Effect.Effect<void, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if (!run.expectedBySlot.has(slotId) || run.reservations.has(slotId))\n return yield* Effect.fail(coreInvalid()); run.members.set(slotId, Object.freeze({ slotId, action, attempt: null, absenceReason })); run.reservations.add(slotId); }));\n}\nfunction encodeCore(value: unknown): {\n readonly bytes: Uint8Array;\n readonly digest: string;\n} | undefined { const bytes = canonicalBytes(value); return bytes === undefined ? undefined : Object.freeze({ bytes, digest: digest(bytes) }); }\nfunction buildRunMetadata(run: RunRuntime, completedAt: RunDocument[\"completedAt\"]) {\n const runDocument: RunDocument = Object.freeze({ runId: run.runId, experimentId: run.experimentId, context: run.context, startedAt: run.startedAt, completedAt, expectedSlots: run.expectedSlots });\n const recordEncoded = encodeRecordDocument(run.record), runEncoded = encodeRunDocument(runDocument);\n if (Result.isFailure(recordEncoded) || Result.isFailure(runEncoded))\n throw new Error(\"invalid run core\");\n const recordCore = encodeCore(recordEncoded.success), runCore = encodeCore(runEncoded.success);\n if (recordCore === undefined || runCore === undefined)\n throw new Error(\"invalid run core\");\n const slots = run.expectedSlots.map((slot, ordinal) => { const core = encodeCore(slot)!; return Object.freeze({ slotId: slot.slotId, ordinal, coreBytes: core.bytes, coreDigest: core.digest }); });\n const attempts = [...run.attempts.values()].filter((attempt) => attempt.state === \"completed\").sort((a, b) => compareCanonicalIdentity(a.attemptId, b.attemptId)).map((attempt) => { const slot = run.expectedBySlot.get(attempt.slotId)!; const encoded = encodeAttemptDocument(Object.freeze({ attemptId: attempt.attemptId, originRunId: run.runId, slotId: attempt.slotId, evalId: slot.evalId, executionIdentityDigest: slot.executionIdentityDigest, outcome: attempt.outcome! })); if (Result.isFailure(encoded))\n throw new Error(\"invalid attempt\"); const core = encodeCore(encoded.success)!; return Object.freeze({ attemptId: attempt.attemptId, attemptLocator: encodeAttemptLocator(attempt.attemptId), coreBytes: core.bytes, coreDigest: core.digest }); });\n const members = [...run.members.values()].sort((a, b) => compareCanonicalIdentity(a.slotId, b.slotId)).map((member) => { const encoded = encodeMemberDocument(member); if (Result.isFailure(encoded))\n throw new Error(\"invalid member\"); const core = encodeCore(encoded.success)!; return Object.freeze({ slotId: member.slotId, ...(member.attempt === null ? {} : { originRunId: member.attempt.originRunId, attemptId: member.attempt.attemptId }), action: member.action, coreBytes: core.bytes, coreDigest: core.digest }); });\n return Object.freeze({ runId: run.runId, writerGeneration: run.writerGeneration, startedAt: new Date(run.startedAt).toISOString(), recordCoreBytes: recordCore.bytes, recordCoreDigest: recordCore.digest, runCoreBytes: runCore.bytes, runCoreDigest: runCore.digest, slots: Object.freeze(slots), attempts: Object.freeze(attempts), members: Object.freeze(members), attachments: Object.freeze([...run.attachments.values()].map(({ metadata, ownerKind, ownerAttemptId, family, revision }) => Object.freeze({ ...metadata, ownerKind, ownerRunId: run.runId, ...(ownerAttemptId === undefined ? {} : { ownerAttemptId }), family, familyRevision: revision }))) });\n}\nfunction sealRun(run: RunRuntime, completion: RunCompletion): Effect.Effect<RecordSealReceipt, RecordWriteError> {\n return Effect.gen(function* () {\n yield* run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if ([...run.attempts.values()].some(({ state }) => state !== \"completed\") || run.members.size !== run.expectedSlots.length)\n return yield* Effect.fail(coreInvalid()); run.state = \"sealing\"; }));\n const finalMetadata = buildRunMetadata(run, completion.completedAt);\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageRunFinalMetadata({ ...finalMetadata, deadlineEpochMs }));\n // Full Content/collection closure verification is read-only and does not\n // monopolize the FIFO writer ticket. The following fence is one short txn.\n const prepared = yield* sqliteEffect(() => run.client.prepareRunFinalization({ runId: run.runId, writerGeneration: run.writerGeneration, deadlineEpochMs: deadline() }));\n const finalized = yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.fenceRunFinalization({\n runId: run.runId,\n writerGeneration: run.writerGeneration,\n mutationSequence: prepared.mutationSequence,\n expectedLogicalSealIdentity: prepared.logicalSealIdentity,\n expectedSealEntryCount: prepared.sealEntryCount,\n deadlineEpochMs,\n }));\n let sealOrdinal: number | null = 0;\n while (sealOrdinal !== null) {\n const staged = yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageSealEntries({\n runId: run.runId,\n writerGeneration: run.writerGeneration,\n expectedLogicalSealIdentity: finalized.logicalSealIdentity,\n startOrdinal: sealOrdinal!,\n maximumRows: 256,\n deadlineEpochMs,\n }));\n sealOrdinal = staged.nextOrdinal;\n }\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.publishRunSeal({ runId: run.runId, writerGeneration: run.writerGeneration, expectedLogicalSealIdentity: finalized.logicalSealIdentity, deadlineEpochMs }));\n run.state = \"sealed\";\n if (run.handle !== undefined)\n runSessions.delete(run.handle);\n return Object.freeze({ runId: run.runId, state: \"sealed\" as const });\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(run, error))));\n}\nfunction makeRunSession(run: RunRuntime, referenceOnly: boolean): RunWriteSession | ReferenceRunWriteSession {\n const writeDefinition = (definition: unknown, value: unknown) => { const persistence = resolvePersistence(run.catalog, definition, \"run\"); return Result.isFailure(persistence) ? Effect.fail(persistence.failure) : writeAttachment({ run, owner: \"run\", persistence: persistence.success, value }); };\n const record = Object.freeze({ write<Value, Error, Requirements>(command: RecordWriteCommand<\"run\", Value, Error, Requirements>) { const payload = recordWriteCommandPayload(command, \"run\"); return payload === undefined ? Effect.fail(recordAppendCommandInvalid()) : writeDefinition(payload.definition, payload.input); } }) as RunWriteSession[\"record\"];\n const records: OwnerRecordsWriter<\"run\"> = Object.freeze({ write: writeDefinition as OwnerRecordsWriter<\"run\">[\"write\"] });\n let session: RunWriteSession | ReferenceRunWriteSession;\n const common = { runId: run.runId, [runWriteSessionBrand]: () => undefined, referenceAttempt: (input: Parameters<RunWriteSession[\"referenceAttempt\"]>[0]) => referenceAttempt(run, input), recordAcceptedMembership: (input: Parameters<RunWriteSession[\"recordAcceptedMembership\"]>[0]) => referenceAttempt(run, { ...input, action: \"accepted\" }), recordTerminalMember: (input: Parameters<RunWriteSession[\"recordTerminalMember\"]>[0]) => terminalMember(run, input.slotId, input.action, input.absenceReason), attach: writeDefinition as RunWriteSession[\"attach\"], record, records, seal: (completion: RunCompletion) => runSessions.get(session) === run ? sealRun(run, completion) : Effect.fail(recordWriterClosed()) };\n session = Object.freeze(referenceOnly ? common : { ...common, createAttempt: ({ slotId }: {\n readonly slotId: SlotId;\n }) => createAttempt(run, slotId) }) as RunWriteSession | ReferenceRunWriteSession;\n run.handle = session;\n runSessions.set(session, run);\n return session;\n}\nfunction deterministicRecord(root: RecordRoot): RecordDocument | undefined {\n const path = storageRoot(root);\n if (path === undefined)\n return undefined;\n const format = Schema.decodeUnknownResult(RecordFormatSchema)(RECORD_FORMAT);\n const id = Schema.decodeUnknownResult(RecordIdSchema)(`record-${createHash(\"sha256\").update(path).digest(\"hex\")}`);\n return Result.isFailure(format) || Result.isFailure(id) ? undefined : Object.freeze({ format: format.success, recordId: id.success });\n}\nfunction openNewRuntime(request: CreateRunRequest, catalog: RecordAttachmentCatalog, referenceOnly: boolean): Effect.Effect<RunWriteSession | ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordEntropy | RecordCoordination | ProjectStateDatabase> {\n return Effect.gen(function* () {\n const expectedIssues = validateExpectedSlots(request.expectedSlots), context = canonicalizeRunContext(request.context);\n if (expectedIssues.length > 0 || Result.isFailure(context) || context.success.experimentId !== request.experimentId)\n return yield* Effect.fail(new RecordCoreInvalid({ code: \"record-core-invalid\", issues: nonEmptyRecordIssues(expectedIssues) ?? invalidIssues([\"context\"]) }));\n const rootPath = storageRoot(request.root);\n if (rootPath === undefined)\n return yield* Effect.fail(coreInvalid());\n const coordination = yield* RecordCoordination, entropy = yield* RecordEntropy;\n const runId = yield* mintId(entropy, RunIdSchema);\n const writerGeneration = request.writerGeneration ?? (yield* entropy.uuid);\n const projectState = yield* ProjectStateDatabase;\n const client = (yield* projectState.bind(rootPath)).record;\n const recordBytes = yield* sqliteEffect(() => client.readRecordCore());\n const storedRecord = recordBytes === undefined ? undefined : parseJson(recordBytes);\n const decodedRecord = storedRecord === undefined ? undefined : decodeRecordDocument(storedRecord);\n if (recordBytes !== undefined && (decodedRecord === undefined || Result.isFailure(decodedRecord)))\n return yield* Effect.fail(coreInvalid());\n const record = decodedRecord !== undefined && Result.isSuccess(decodedRecord) ? decodedRecord.success : deterministicRecord(request.root);\n if (record === undefined)\n return yield* Effect.fail(coreInvalid());\n yield* withWriteAdmission(coordination, request.root, (deadlineEpochMs) => client.beginRun({ runId, writerGeneration, startedAt: new Date(request.startedAt).toISOString(), deadlineEpochMs }));\n const lock = yield* Semaphore.make(1), queue = yield* Queue.bounded<AppendCommand>(MAILBOX_COMMANDS);\n const run: RunRuntime = { root: request.root, client, coordination, entropy, catalog, record, writerGeneration, runId, experimentId: request.experimentId, context: context.success, startedAt: request.startedAt, expectedSlots: Object.freeze([...request.expectedSlots]), expectedBySlot: new Map(request.expectedSlots.map((slot) => [slot.slotId, slot])), lock, queue, attempts: new Map(), members: new Map(), reservations: new Set(), families: new Set(), attachments: new Map(), state: \"open\" };\n yield* Effect.forkScoped(collectionWorker(run));\n yield* Effect.addFinalizer(() => Effect.sync(() => { if (run.state !== \"sealed\")\n run.state = \"failed\"; if (run.handle !== undefined)\n runSessions.delete(run.handle); for (const attempt of run.attempts.values())\n if (attempt.handle !== undefined)\n attemptSessions.delete(attempt.handle); }));\n return makeRunSession(run, referenceOnly);\n });\n}\nfunction decodeCore(core: SealedRunCore): {\n readonly record: RecordDocument;\n readonly run: RunDocument;\n readonly attempts: readonly AttemptDocument[];\n readonly members: readonly MemberDocument[];\n} | undefined {\n const rj = parseJson(core.recordCoreBytes), uj = parseJson(core.runCoreBytes);\n const record = rj === undefined ? undefined : decodeRecordDocument(rj), run = uj === undefined ? undefined : decodeRunDocument(uj);\n if (record === undefined || run === undefined || Result.isFailure(record) || Result.isFailure(run) || run.success.runId !== core.runId)\n return undefined;\n const attempts: AttemptDocument[] = [], members: MemberDocument[] = [];\n for (const value of core.attempts) {\n const json = parseJson(value.coreBytes), decoded = json === undefined ? undefined : decodeAttemptDocument(json);\n if (decoded === undefined || Result.isFailure(decoded))\n return undefined;\n attempts.push(decoded.success);\n }\n for (const value of core.members) {\n const json = parseJson(value.coreBytes), decoded = json === undefined ? undefined : decodeMemberDocument(json);\n if (decoded === undefined || Result.isFailure(decoded))\n return undefined;\n members.push(decoded.success);\n }\n return Object.freeze({ record: record.success, run: run.success, attempts: Object.freeze(attempts), members: Object.freeze(members) });\n}\nfunction readCore(runtime: ReaderRuntime, runId: RunId): Effect.Effect<SealedRunCore | undefined, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const cached = runtime.coreCache.get(runId);\n return cached === undefined ? sqliteEffect(() => runtime.client.readSealedRunCore(runId)).pipe(Effect.mapError((error) => error.code === \"record-database-invalid\" || error.code === \"record-seal-incomplete\"\n ? new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"publication-closure-invalid\" })\n : error), Effect.tap((core) => Effect.sync(() => { if (core !== undefined)\n runtime.coreCache.set(runId, core); }))) : Effect.succeed(cached);\n}\nfunction runRef(runtime: ReaderRuntime, runId: RunId): SelectedRunRef {\n const old = runtime.runRefs.get(runId);\n if (old !== undefined)\n return old;\n const ref: SelectedRunRef = Object.freeze({ runId, [selectedRunRefBrand]: () => undefined });\n runtime.runRefs.set(runId, ref);\n runtime.runs.set(ref, runId);\n return ref;\n}\nfunction attemptRef(runtime: ReaderRuntime, runId: RunId, attemptId: AttemptId, publicationIdentity?: SelectedAttemptRef[\"publicationIdentity\"]): SelectedAttemptRef {\n const key = hashCanonicalTuple(\"niceeval.record.attempt-ref/v1\", [runId, attemptId]), old = runtime.attemptRefs.get(key);\n if (old !== undefined)\n return old;\n const ref: SelectedAttemptRef = Object.freeze({ originRunId: runId, attemptId, ...(publicationIdentity === undefined ? {} : { publicationIdentity }), [selectedAttemptRefBrand]: () => undefined });\n runtime.attemptRefs.set(key, ref);\n runtime.attempts.set(ref, { runId, attemptId });\n selectedAttemptCapabilities.set(ref, { root: runtime.root, lifecycle: runtime.lifecycle });\n return ref;\n}\nfunction ownerRef<Owner extends \"run\" | \"attempt\">(runtime: ReaderRuntime, owner: Extract<OwnerRuntime, {\n readonly kind: Owner;\n}>): SelectedOwnerRef<Owner> { const ref: SelectedOwnerRef<Owner> = Object.freeze({ [selectedOwnerRefBrand]: () => undefined }); runtime.owners.set(ref, owner); return ref; }\nfunction readRun(runtime: ReaderRuntime, ref: SelectedRunRef): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const runId = runtime.runs.get(ref);\n if (runId === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.flatMap(readCore(runtime, runId), (core): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> => {\n if (core === undefined)\n return Effect.succeed(Object.freeze({ state: \"missing\" }));\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"core-invalid\" }));\n return Effect.succeed(Object.freeze({ state: \"available\", value: Object.freeze({ ref, owner: ownerRef(runtime, { kind: \"run\", runId }), document: decoded.run, ...(core.createdRevision === undefined ? {} : { createdRevision: core.createdRevision }), members: Object.freeze(decoded.members.map((document) => Object.freeze({ document, ...(core.members.find((member) => member.slotId === document.slotId)?.bindingRevision === undefined ? {} : { bindingRevision: core.members.find((member) => member.slotId === document.slotId)!.bindingRevision! }), attempt: document.attempt === null ? null : attemptRef(runtime, document.attempt.originRunId, document.attempt.attemptId, core.members.find((member) => member.slotId === document.slotId)?.publicationIdentity) }))) }) }));\n });\n}\nfunction readAttempt(runtime: ReaderRuntime, ref: SelectedAttemptRef): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const location = runtime.attempts.get(ref);\n if (location === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.flatMap(readCore(runtime, location.runId), (core): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> => {\n if (core === undefined)\n return Effect.succeed(Object.freeze({ state: \"missing\" }));\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId: location.runId, reason: \"core-invalid\" }));\n const document = decoded.attempts.find(({ attemptId }) => attemptId === location.attemptId);\n if (document === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId: location.runId, reason: \"publication-closure-invalid\" }));\n return Effect.succeed(Object.freeze({ state: \"available\", value: Object.freeze({ ref, owner: ownerRef(runtime, { kind: \"attempt\", runId: location.runId, attemptId: location.attemptId }), document, origin: Object.freeze({ owner: ownerRef(runtime, { kind: \"run\", runId: location.runId }), runId: location.runId, experimentId: decoded.run.experimentId, startedAt: decoded.run.startedAt, context: decoded.run.context }) }) }));\n });\n}\nfunction findAttachment(core: SealedRunCore, owner: OwnerRuntime, family: string): SealedAttachmentMetadata | undefined { return core.attachments.find((a) => a.family === family && a.ownerKind === owner.kind && (owner.kind === \"run\" || a.ownerAttemptId === owner.attemptId)); }\nfunction contentStream(runtime: ReaderRuntime, handle: RecordContentHandle): Stream.Stream<Uint8Array, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Stream.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const metadata = runtime.content.get(handle);\n if (metadata === undefined)\n return Stream.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Stream.unwrap(Effect.suspend(() => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const hash = createHash(\"sha256\");\n type ContentReadState = {\n readonly after: number;\n readonly ordinal: number;\n readonly byteLength: number;\n };\n return Effect.succeed(Stream.paginate<ContentReadState, Uint8Array, RecordReaderReadError>({ after: -1, ordinal: 0, byteLength: 0 }, (state): Effect.Effect<readonly [\n readonly Uint8Array[],\n Option.Option<ContentReadState>\n ], RecordReaderReadError> => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return sqliteEffect(() => runtime.client.readContentChunkPage(metadata.contentId, state.after, CONTENT_READ_PAGE_ROWS)).pipe(Effect.flatMap((page): Effect.Effect<readonly [\n readonly Uint8Array[],\n Option.Option<ContentReadState>\n ], RecordReaderReadError> => {\n if (page.chunks.length === 0) {\n return state.ordinal === metadata.chunkCount && state.byteLength === metadata.byteLength && hash.digest(\"hex\") === metadata.digest\n ? Effect.succeed([[], Option.none()] as const)\n : Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-content\", \"Content closure does not match sealed metadata\"));\n }\n let ordinal = state.ordinal;\n let byteLength = state.byteLength;\n const output: Uint8Array[] = [];\n for (const chunk of page.chunks) {\n if (chunk.ordinal !== ordinal || digest(chunk.bytes) !== chunk.chunkDigest)\n return Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-content\", \"Content chunk inventory is invalid\"));\n const bytes = chunk.bytes;\n hash.update(bytes);\n byteLength += bytes.byteLength;\n ordinal += 1;\n output.push(bytes);\n }\n const after = page.chunks[page.chunks.length - 1]!.ordinal;\n return Effect.succeed([output, Option.some({ after, ordinal, byteLength })] as const);\n }));\n }));\n }));\n}\nfunction contentReader(runtime: ReaderRuntime): RecordAttachmentContentReader {\n const byteLength = (handle: RecordContentHandle): Effect.Effect<number, RecordReaderReadError> => { if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" })); const metadata = runtime.content.get(handle); return metadata === undefined ? Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" })) : Effect.succeed(metadata.byteLength); };\n const bytes = (handle: RecordContentHandle): Effect.Effect<Uint8Array, RecordReaderReadError> => Effect.flatMap(byteLength(handle), (size) => size > WHOLE_VALUE_MAX_BYTES ? Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: WHOLE_VALUE_MAX_BYTES, observedAtLeast: size, path: \"content\" })) : Stream.runCollect(contentStream(runtime, handle)).pipe(Effect.map((chunks) => { const output = new Uint8Array(size); let offset = 0; for (const chunk of chunks) {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n } return output; })));\n return Object.freeze({ byteLength, bytes, text: (handle: RecordTextContentHandle) => !isRecordTextContentHandle(handle) ? Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" })) : Effect.flatMap(bytes(handle), (value) => Effect.try({ try: () => new TextDecoder(\"utf-8\", { fatal: true }).decode(value), catch: () => new RecordHandleInvalid({ code: \"record-handle-invalid\" }) })), stream: (handle: RecordContentHandle) => contentStream(runtime, handle) });\n}\nfunction hydrateAttachment(runtime: ReaderRuntime, attachment: SealedAttachmentMetadata, persistence: AnyPersistence): RecordAttachmentRead<unknown> {\n if (attachment.familyRevision !== persistence.revision)\n return Object.freeze({ state: \"unsupported\", family: attachment.family, revision: attachment.familyRevision });\n const payload = parseJson(attachment.canonicalBytes);\n if (payload === undefined)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"attachment\"]) });\n if (digest(attachment.canonicalBytes) !== attachment.canonicalDigest || digest(attachment.logicalInventoryBytes) !== attachment.inventoryDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"attachment\", \"digest\"]) });\n const byHandle = new Map(attachment.contents.map((content) => [content.logicalHandle, content])), used = new Set<string>();\n const hydrated = hydrateRecordAttachmentCurrent(persistence.attachment, payload, { content: (token, declaration) => { const logicalHandle = exactMarker(token, \"$niceeval.record.content\"); if (logicalHandle === undefined && !hasOwnMarker(token, \"$niceeval.record.content\"))\n return Result.succeed(undefined); const metadata = typeof logicalHandle === \"string\" ? byHandle.get(logicalHandle) : undefined; if (metadata === undefined || declaration.maximumBytes !== undefined && metadata.byteLength > declaration.maximumBytes)\n return Result.fail({ code: \"current-content-bind-failed\" as const }); const handle = mintRecordContentHandle(declaration.kind); runtime.content.set(handle, metadata); used.add(logicalHandle as string); return Result.succeed(handle); }, reference: (token, declaration) => { const marker = exactMarker(token, \"$niceeval.record.reference\"); if (marker === undefined && !hasOwnMarker(token, \"$niceeval.record.reference\"))\n return Result.succeed(undefined); if (typeof marker !== \"object\" || marker === null || Array.isArray(marker))\n return Result.fail({ code: \"current-reference-bind-failed\" as const }); const value = marker as Record<string, unknown>; if (value.owner !== declaration.definition.owner || value.family !== declaration.definition.family || !(\"value\" in value))\n return Result.fail({ code: \"current-reference-bind-failed\" as const }); return Result.succeed(mintRecordAttachmentReference(RecordAttachmentReference.to(declaration.definition, declaration.valueSchema), value.value)); } });\n if (Result.isFailure(hydrated) || used.size !== attachment.contents.length)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"closure\"]) });\n const closure = enumerateRecordAttachmentClosure(persistence.attachment, hydrated.success);\n if (Result.isFailure(closure))\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"closure\"]) });\n const logicalReferences = new Map<string, {\n readonly owner: RecordAttachmentOwner;\n readonly family: string;\n }>();\n for (const reference of closure.success.references) {\n const wire = recordAttachmentReferenceWire(reference);\n if (wire === undefined)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\"]) });\n logicalReferences.set(hashCanonicalTuple(\"niceeval.record.reference-family/v1\", [wire.owner, wire.family]), Object.freeze({ owner: wire.owner, family: wire.family }));\n }\n const ordered = [...logicalReferences.values()].sort((left, right) => compareCanonicalCodeUnits(left.owner, right.owner) || compareCanonicalCodeUnits(left.family, right.family));\n if (ordered.length !== attachment.references.length)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\", \"count\"]) });\n for (let ordinal = 0; ordinal < ordered.length; ordinal += 1) {\n const logical = ordered[ordinal]!, physical = attachment.references[ordinal]!, canonical = canonicalBytes(logical);\n if (canonical === undefined || physical.ordinal !== ordinal || physical.owner !== logical.owner || physical.family !== logical.family || !bytesEqual(physical.canonicalBytes, canonical) || digest(physical.canonicalBytes) !== physical.referenceDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\", String(ordinal)]) });\n }\n return Object.freeze({ state: \"available\", value: hydrated.success, content: contentReader(runtime) });\n}\nfunction readFamily(runtime: ReaderRuntime, ownerValue: SelectedOwnerRef, definition: unknown): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const owner = runtime.owners.get(ownerValue);\n if (owner === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const resolved = recordDefinitionAttachment(definition) ?? resolveRecordAttachmentDefinition(definition);\n if (resolved === undefined || resolved.owner !== owner.kind)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const persistence = runtime.catalog.persistence(resolved);\n if (persistence === undefined)\n return Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: owner.kind, family: resolved.family, revision: 1 }));\n return Effect.map(readCore(runtime, owner.runId), (core) => { if (core === undefined)\n return Object.freeze({ state: \"not-recorded\" as const }); const attachment = findAttachment(core, owner, resolved.family); return attachment === undefined ? Object.freeze({ state: \"not-recorded\" as const }) : hydrateAttachment(runtime, attachment, persistence as AnyPersistence); });\n}\nfunction collectionStream(runtime: ReaderRuntime, attachment: SealedAttachmentMetadata, authoring: AttemptRecordCollectionRuntime, expectedDigest: string): Stream.Stream<unknown, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Stream.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return Stream.unwrap(Effect.suspend(() => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const hash = createHash(\"sha256\");\n type CollectionReadState = {\n readonly after: number;\n readonly ordinal: number;\n readonly byteLength: number;\n };\n return Effect.succeed(Stream.paginate<CollectionReadState, unknown, RecordReaderReadError>({ after: -1, ordinal: 0, byteLength: 0 }, (state): Effect.Effect<readonly [\n readonly unknown[],\n Option.Option<CollectionReadState>\n ], RecordReaderReadError> => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return sqliteEffect(() => runtime.client.readCollectionItemPage(attachment.attachmentId, state.after, RECORD_SQLITE_MAX_PAGE_ROWS)).pipe(Effect.flatMap((page): Effect.Effect<readonly [\n readonly unknown[],\n Option.Option<CollectionReadState>\n ], RecordReaderReadError> => {\n if (page.items.length === 0) {\n return state.ordinal === attachment.collectionItemCount && state.byteLength === attachment.collectionItemByteLength && hash.digest(\"hex\") === expectedDigest\n ? Effect.succeed([[], Option.none()] as const)\n : Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-collection\", \"Collection closure does not match sealed metadata\"));\n }\n let ordinal = state.ordinal;\n let byteLength = state.byteLength;\n const output: unknown[] = [];\n for (const item of page.items) {\n const value = parseJson(item.canonicalBytes), canonicalDigest = digest(item.canonicalBytes);\n if (item.ordinal !== ordinal || canonicalDigest !== item.canonicalDigest || item.logicalIdentity !== collectionItemLogicalIdentity(ordinal, canonicalDigest) || value === undefined)\n return Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-collection\", \"Collection item inventory is invalid\"));\n if (!isRecordAttachmentSchema(authoring.item))\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const decoded = Schema.decodeUnknownResult(authoring.item)(value);\n if (Result.isFailure(decoded))\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n hash.update(item.canonicalBytes).update(\"\\n\");\n byteLength += item.canonicalBytes.byteLength;\n ordinal += 1;\n output.push(decoded.success);\n }\n const after = page.items[page.items.length - 1]!.ordinal;\n return Effect.succeed([output, Option.some({ after, ordinal, byteLength })] as const);\n }));\n }));\n }));\n}\ntype OpenCollectionResult = {\n readonly state: \"not-recorded\";\n} | {\n readonly state: \"unsupported\";\n readonly family: string;\n readonly revision: number;\n} | {\n readonly state: \"invalid\";\n readonly issues: NonEmptyRecordIssues;\n} | {\n readonly state: \"available\";\n readonly collection: unknown;\n readonly logicalIdentity: string;\n readonly logicalSealIdentity: string;\n readonly count: number;\n readonly digest: string;\n readonly canonicalBytes: number;\n readonly items: Stream.Stream<unknown, RecordReaderReadError>;\n};\ntype PublicOpenCollectionResult = Exclude<OpenCollectionResult, {\n readonly state: \"available\";\n}> | Omit<Extract<OpenCollectionResult, {\n readonly state: \"available\";\n}>, \"canonicalBytes\">;\nfunction publicOpenCollectionResult(opened: OpenCollectionResult): PublicOpenCollectionResult {\n if (opened.state !== \"available\")\n return opened;\n return Object.freeze({\n state: \"available\",\n collection: opened.collection,\n logicalIdentity: opened.logicalIdentity,\n logicalSealIdentity: opened.logicalSealIdentity,\n count: opened.count,\n digest: opened.digest,\n items: opened.items,\n });\n}\nfunction openCollection(runtime: ReaderRuntime, ownerValue: SelectedOwnerRef<\"attempt\">, definition: unknown): Effect.Effect<OpenCollectionResult, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const owner = runtime.owners.get(ownerValue), authoring = attemptRecordCollectionRuntime(definition);\n if (owner === undefined || owner.kind !== \"attempt\" || authoring === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.map(readCore(runtime, owner.runId), (core) => {\n if (core === undefined)\n return Object.freeze({ state: \"not-recorded\" });\n const attachment = findAttachment(core, owner, authoring.attachment.family);\n if (attachment === undefined)\n return Object.freeze({ state: \"not-recorded\" });\n if (attachment.familyRevision !== authoring.persistence.revision)\n return Object.freeze({ state: \"unsupported\", family: attachment.family, revision: attachment.familyRevision });\n if (digest(attachment.canonicalBytes) !== attachment.canonicalDigest || digest(attachment.logicalInventoryBytes) !== attachment.inventoryDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"collection\", \"digest\"]) });\n const payload = parseJson(attachment.canonicalBytes) as {\n readonly collection?: unknown;\n } | undefined;\n const inventory = parseJson(attachment.logicalInventoryBytes) as {\n readonly collection?: {\n readonly count?: unknown;\n readonly byteLength?: unknown;\n readonly digest?: unknown;\n };\n } | undefined;\n const collection = inventory?.collection;\n if (payload?.collection === undefined || collection === undefined || collection.count !== attachment.collectionItemCount || collection.byteLength !== attachment.collectionItemByteLength || typeof collection.digest !== \"string\")\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"collection\"]) });\n return Object.freeze({ state: \"available\", collection: payload.collection, logicalIdentity: attachment.logicalIdentity, logicalSealIdentity: core.logicalSealIdentity, count: attachment.collectionItemCount, digest: collection.digest, canonicalBytes: attachment.collectionItemByteLength, items: collectionStream(runtime, attachment, authoring, collection.digest) });\n });\n}\nfunction readCollectionWhole(runtime: ReaderRuntime, owner: SelectedOwnerRef<\"attempt\">, definition: unknown): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> {\n return Effect.flatMap(openCollection(runtime, owner, definition), (opened): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> => {\n if (opened.state !== \"available\")\n return Effect.succeed(opened);\n if (opened.count > COLLECTION_READ_MAX_ROWS || opened.canonicalBytes > WHOLE_VALUE_MAX_BYTES)\n return Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: WHOLE_VALUE_MAX_BYTES, observedAtLeast: opened.canonicalBytes, path: \"collection\" }));\n return Stream.runCollect(opened.items).pipe(Effect.map((items): RecordAttachmentRead<unknown> => Object.freeze({ state: \"available\", value: Object.freeze({ collection: opened.collection, items: Object.freeze(items) }), content: contentReader(runtime) })));\n });\n}\nfunction makeReadSession(runtime: ReaderRuntime): RecordReadSession {\n const selectRuns: RecordReadSession[\"selectRuns\"] = (request?: RecordSelectionRequest) => Effect.gen(function* () {\n if (runtime.lifecycle.closed)\n return yield* Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const requested = request?.runIds === undefined ? undefined : new Set(request.runIds);\n const cores: {\n readonly core: SealedRunCore;\n readonly decoded: NonNullable<ReturnType<typeof decodeCore>>;\n }[] = [];\n let after = \"\";\n while (true) {\n const page = yield* sqliteEffect(() => runtime.client.listSealedRunSummaries(after, 100));\n if (page.length === 0)\n break;\n for (const summary of page) {\n after = summary.runId;\n if (requested !== undefined && !requested.has(summary.runId as RunId))\n continue;\n if (summary.logicalSealIdentity.startsWith(\"published:\") &&\n request?.includePublishedActive !== true && requested === undefined)\n continue;\n const runId = summary.runId as RunId;\n const core = yield* readCore(runtime, runId);\n if (core === undefined)\n continue;\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return yield* Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"core-invalid\" }));\n cores.push({ core, decoded });\n }\n if (page.length < 100)\n break;\n }\n const problems: RecordSelectionProblem[] = [];\n if (requested !== undefined)\n for (const id of requested)\n if (!cores.some(({ core }) => core.runId === id))\n problems.push(Object.freeze({ code: \"selection-run-missing\", runId: id }));\n const runRefs = cores.map(({ core }) => runRef(runtime, core.runId as RunId));\n const runFacts: SelectedRunFacts[] = cores.map(({ core, decoded }) => Object.freeze({ run: runRef(runtime, core.runId as RunId), experimentId: decoded.run.experimentId, startedAt: decoded.run.startedAt, completedAt: decoded.run.completedAt, expectedSlots: decoded.run.expectedSlots }));\n for (const { core, decoded } of cores) {\n for (const attempt of decoded.attempts) {\n attemptRef(runtime, core.runId as RunId, attempt.attemptId, core.attempts.find((persisted) => persisted.attemptId === attempt.attemptId)?.publicationIdentity);\n }\n }\n const selection: RecordSelection = Object.freeze({ runRefs: Object.freeze(runRefs), runFacts: Object.freeze(runFacts), expectedSlots: Object.freeze(runFacts.flatMap(({ run, experimentId, expectedSlots }) => expectedSlots.map((slot) => Object.freeze({ run, experimentId, slot })))), problems: Object.freeze(problems), warnings: Object.freeze([]) as readonly RecordWarning[] });\n runtime.selections.add(selection);\n return selection;\n });\n const readRunEntry: RecordReadSession[\"readRun\"] = (ref: SelectedRunRef) => readRun(runtime, ref);\n const readAttemptEntry: RecordReadSession[\"readAttempt\"] = (ref: SelectedAttemptRef) => readAttempt(runtime, ref);\n const openCollectionEntry = ((owner: SelectedOwnerRef<\"attempt\">, definition: unknown) => Effect.map(openCollection(runtime, owner, definition), publicOpenCollectionResult)) as RecordReadSession[\"openCollection\"];\n const requireComplete: RecordReadSession[\"requireComplete\"] = (selection: RecordSelection) => Effect.gen(function* () {\n if (runtime.lifecycle.closed)\n return yield* Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n if (!runtime.selections.has(selection))\n return yield* Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n if (selection.problems.length > 0)\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"selection-invalid\" }));\n for (const ref of selection.runRefs) {\n const runId = runtime.runs.get(ref);\n if (runId === undefined)\n return yield* Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const core = yield* readCore(runtime, runId);\n if (core === undefined)\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"inventory-invalid\" }));\n const attemptIds = new Set(core.attempts.map(({ attemptId }) => attemptId));\n for (const attachment of core.attachments) {\n if (attachment.ownerRunId !== core.runId || attachment.ownerKind === \"attempt\" && (attachment.ownerAttemptId === undefined || !attemptIds.has(attachment.ownerAttemptId)))\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"inventory-invalid\", family: attachment.family }));\n const persistence = runtime.catalog.get(attachment.ownerKind, attachment.family);\n if (persistence === undefined)\n return yield* Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: attachment.ownerKind, family: attachment.family, revision: attachment.familyRevision }));\n for (const reference of attachment.references)\n if (runtime.catalog.get(reference.owner, reference.family) === undefined)\n return yield* Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: reference.owner, family: reference.family, revision: 1 }));\n const hydrated = hydrateAttachment(runtime, attachment, persistence as AnyPersistence);\n if (hydrated.state !== \"available\")\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"attachment-invalid\", family: attachment.family }));\n }\n }\n return Object.freeze({ selection, attachments: runtime.catalog }) satisfies RecordCompleteView;\n });\n return Object.freeze({\n selectRuns,\n readRun: readRunEntry,\n readAttempt: readAttemptEntry,\n read: ((owner: SelectedOwnerRef, definition: unknown) => attemptRecordCollectionRuntime(definition) !== undefined ? readCollectionWhole(runtime, owner as SelectedOwnerRef<\"attempt\">, definition) : readFamily(runtime, owner, definition)) as RecordReadSession[\"read\"],\n openCollection: openCollectionEntry,\n requireComplete,\n });\n}\nfunction openRead(root: RecordRoot, catalog: RecordAttachmentCatalog): Effect.Effect<RecordReadSession, RecordReaderOpenError, import(\"effect\").Scope.Scope | ProjectStateDatabase> {\n return Effect.gen(function* () {\n const rootPath = storageRoot(root);\n if (rootPath === undefined)\n return yield* Effect.fail(new RecordBootstrapInvalid({ code: \"record-bootstrap-invalid\", reason: \"record-document-invalid\" }));\n const projectState = yield* ProjectStateDatabase;\n const client = (yield* projectState.bind(rootPath)).record;\n const lifecycle: ReaderLifecycle = { closed: false };\n const runtime: ReaderRuntime = { root, client, catalog, lifecycle, runs: new WeakMap(), attempts: new WeakMap(), owners: new WeakMap(), selections: new WeakSet(), coreCache: new Map(), runRefs: new Map(), attemptRefs: new Map(), content: new WeakMap() };\n yield* Effect.addFinalizer(() => Effect.sync(() => { lifecycle.closed = true; }));\n return makeReadSession(runtime);\n });\n}\nfunction closeMaintenanceFailure(error: {\n readonly code?: string;\n}): RecordMaintenanceOperationFailure { return Object.freeze({ _tag: \"RecordMaintenanceOperationFailed\", code: error.code ?? \"record-maintenance-failed\" }); }\nconst operationMigrationPlans = new WeakMap<object, RecordMigrationPlan>();\nfunction inspectMaintenanceDatabase(root: RecordRoot): Effect.Effect<ProjectRecordDatabaseInspection, SqliteRecordError> {\n const rootPath = storageRoot(root);\n if (rootPath === undefined) {\n return Effect.fail(new SqliteRecordError(\"record-database-invalid\", \"locate\", \"Record root is invalid\"));\n }\n return Effect.try({\n try: () => inspectProjectRecordDatabase(recordSqlitePath(rootPath)),\n catch: (cause) => cause instanceof SqliteRecordError\n ? cause\n : new SqliteRecordError(\"record-sqlite-error\", \"inspect-maintenance\", \"Record maintenance inspection failed\", { cause }),\n });\n}\nfunction publicFormatInspection(inspection: ProjectRecordDatabaseInspection) {\n switch (inspection.state) {\n case \"current\":\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n case \"unsupported\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: inspection.format });\n case \"foreign\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: \"foreign-sqlite\" });\n }\n}\nfunction migrationPlan(root: RecordRoot, inspection: ProjectRecordDatabaseInspection) {\n switch (inspection.state) {\n case \"current\":\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n case \"unsupported\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: inspection.format });\n case \"foreign\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: \"foreign-sqlite\" });\n }\n}\nfunction maintenanceSession(root: RecordRoot): Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import(\"effect\").Scope.Scope | RecordCoordination> {\n return Effect.gen(function* () {\n const first = yield* inspectMaintenanceDatabase(root);\n if (first.state === \"current\" && first.exists) {\n const coordination = yield* RecordCoordination;\n yield* coordination.enterRecordMaintenance(root);\n }\n const inspect = () => inspectMaintenanceDatabase(root);\n return Object.freeze({\n inspect: () => Effect.map(inspect(), publicFormatInspection),\n planMigrate: () => Effect.map(inspect(), (inspection) => migrationPlan(root, inspection)),\n applyMigrate: (plan: RecordMigrationPlan) => Effect.gen(function* () {\n if (plan.state === \"already-current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n if (plan.state === \"unsupported-format\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: plan.format,\n }));\n }\n const current = yield* inspect();\n if (current.state === \"current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: current.state === \"unsupported\" ? current.format : \"foreign-sqlite\",\n }));\n }),\n });\n });\n}\nexport function makeRecordHost(input: {\n readonly records: readonly RecordContribution[];\n}): RecordHostSDK {\n const persistences = input.records.map((record) => { const runtime = recordContributionRuntime(record); if (runtime === undefined)\n throw new TypeError(\"invalid Record contribution\"); return runtime.persistence; });\n const composed = makeRecordAttachmentCatalog(persistences);\n if (Result.isFailure(composed))\n throw new TypeError(`invalid Record composition: ${composed.failure.code}`);\n const catalog = composed.success;\n const currentOpenRead: RecordHostSDK[\"current\"][\"openRead\"] = ({ root }) => openRead(root, catalog);\n const currentCreateRun: RecordHostSDK[\"current\"][\"createRun\"] = (request) => openNewRuntime(request, catalog, false) as ReturnType<RecordHostSDK[\"current\"][\"createRun\"]>;\n const currentCreateReferenceRun: RecordHostSDK[\"current\"][\"createReferenceRun\"] = (request) => openNewRuntime(request, catalog, true) as ReturnType<RecordHostSDK[\"current\"][\"createReferenceRun\"]>;\n const current: RecordHostSDK[\"current\"] = Object.freeze({ openRead: currentOpenRead, createRun: currentCreateRun, createReferenceRun: currentCreateReferenceRun });\n const normalize = (request: CreateRunRequest | {\n readonly root: RecordRoot;\n readonly core: Omit<CreateRunRequest, \"root\">;\n }): CreateRunRequest => \"core\" in request ? Object.freeze({ root: request.root, ...request.core }) : request;\n const createRunPublic: RecordHostSDK[\"createRun\"] = (request) => current.createRun(normalize(request));\n const createReferenceRunPublic: RecordHostSDK[\"createReferenceRun\"] = (request) => current.createReferenceRun(normalize(request));\n const planClean: RecordHostSDK[\"maintenance\"][\"planClean\"] = (request) => inspectIncompleteRuns(request).pipe(Effect.map((runs): RecordCleanOperationPlan => runs.length === 0 ? Object.freeze({ _tag: \"RecordCleanAlreadyClean\" }) : Object.freeze({ _tag: \"RecordCleanConfirmationRequired\", runIds: Object.freeze(runs.map(({ runId }) => runId)) })), Effect.mapError(closeMaintenanceFailure));\n const applyClean: RecordHostSDK[\"maintenance\"][\"applyClean\"] = ({ root, plan }) => cleanIncompleteRuns({ root, runIds: plan.runIds }).pipe(Effect.map((receipt): RecordCleanOperationReceipt => Object.freeze({ _tag: \"RecordCleanApplied\", ...receipt })), Effect.mapError(closeMaintenanceFailure));\n const planMigrate: RecordHostSDK[\"maintenance\"][\"planMigrate\"] = ({ root }) => Effect.scoped(Effect.flatMap(maintenanceSession(root), (session) => session.planMigrate())).pipe(Effect.map((plan): RecordMigrateOperationPlan => {\n if (plan.state === \"already-current\") {\n return Object.freeze({ _tag: \"RecordMigrationAlreadyCurrent\", format: RECORD_FORMAT });\n }\n if (plan.state === \"unsupported-format\") {\n return Object.freeze({ _tag: \"RecordMigrationUnsupported\", format: plan.format });\n }\n const operationPlan = Object.freeze({\n _tag: \"RecordMigrationReady\" as const,\n format: plan.format,\n sourceFormat: plan.sourceFormat,\n attachments: plan.attachments,\n pendingSeals: plan.pendingSeals,\n resumedSteps: plan.resumedSteps,\n });\n operationMigrationPlans.set(operationPlan, plan);\n return operationPlan;\n }), Effect.mapError(closeMaintenanceFailure));\n const applyMigrate: RecordHostSDK[\"maintenance\"][\"applyMigrate\"] = ({ root, plan }) => {\n const internal = operationMigrationPlans.get(plan);\n if (internal === undefined) {\n return Effect.fail(Object.freeze({\n _tag: \"RecordMigrationPlanStale\" as const,\n code: \"record-migration-plan-stale\" as const,\n }));\n }\n return Effect.scoped(Effect.flatMap(maintenanceSession(root), (session) => session.applyMigrate(internal))).pipe(Effect.map((receipt): RecordMigrateOperationReceipt => receipt.state === \"already-current\"\n ? Object.freeze({ _tag: \"RecordMigrationAlreadyCurrent\", format: RECORD_FORMAT })\n : Object.freeze({\n _tag: \"RecordMigrationApplied\",\n format: receipt.format,\n attachments: receipt.attachments,\n committed: receipt.committed,\n skipped: receipt.skipped,\n failed: receipt.failed,\n rebuiltSeals: receipt.rebuiltSeals,\n })), Effect.mapError(closeMaintenanceFailure));\n };\n const openMaintenance: RecordHostSDK[\"maintenance\"][\"open\"] = ({ root }) => maintenanceSession(root);\n return Object.freeze({ openRead: current.openRead, createRun: createRunPublic, createReferenceRun: createReferenceRunPublic, current, maintenance: Object.freeze({ planClean, applyClean, planMigrate, applyMigrate, open: openMaintenance }) });\n}\nexport const recordHost: RecordHostSDK = makeRecordHost({ records: (NiceEvalRecordAttachmentPersistences as readonly AnyRecordAttachmentPersistence[]).map((persistence) => recordContributionFromAttachmentPersistence(persistence)) });\n"]}
1
+ {"version":3,"file":"sqlite-host.js","sourceRoot":"","sources":["sqlite-host.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { Effect, Result, Exit, Option, Queue, Schema, Semaphore, Stream } from \"effect\";\nimport { encodeAttemptLocator } from \"../../attempt-locator.ts\";\nimport { RecordCoordination, type RecordCoordinationService } from \"../../coordination/record-leases.ts\";\nimport { makeRecordAttachmentCatalog, type AnyRecordAttachmentPersistence, type RecordAttachmentCatalog, type RecordAttachmentDefinition, type RecordAttachmentPersistence } from \"../attachment/index.ts\";\nimport { enumerateRecordAttachmentClosure, hydrateRecordAttachmentCurrent, isRecordAttachmentSchema, mintRecordAttachmentReference, recordAttachmentReferenceWire, resolveRecordAttachmentDefinition, RecordAttachmentReference } from \"../attachment/protocol.ts\";\nimport { isRecordTextContentHandle, mintRecordContentHandle, type RecordContentHandle, type RecordTextContentHandle } from \"../attachment/content.ts\";\nimport { AttemptIdSchema, RecordFormatSchema, RecordIdSchema, RunIdSchema, Sha256DigestSchema } from \"../codec/identifiers.ts\";\nimport { decodeAttemptDocument, decodeMemberDocument, decodeRecordDocument, decodeRunDocument, encodeAttemptDocument, encodeMemberDocument, encodeRecordDocument, encodeRunDocument } from \"../codec/index.ts\";\nimport { canonicalizeRecordJson } from \"../definition/canonical.ts\";\nimport { RecordCoreInvalid, RecordReferenceInvalid, nonEmptyRecordIssues, recordIssue, type NonEmptyRecordIssues } from \"../errors/record-errors.ts\";\nimport { NiceEvalRecordAttachmentPersistences } from \"../family/catalog.ts\";\nimport { attemptRecordAppendCommandRuntime, attemptRecordCollectionRuntime, recordContributionFromAttachmentPersistence, recordContributionRuntime, recordDefinitionAttachment, recordWriteCommandPayload, type AttemptRecordAppendCommand, type AttemptRecordCollectionDefinition, type AttemptRecordCollectionLimitation, type AttemptRecordCollectionRuntime, type RecordContribution, type RecordWriteCommand } from \"../authoring.ts\";\nimport type { AttemptDocument, MemberDocument, RecordAttachmentOwner, RecordDocument, RecordSlotIdentity, RunDocument } from \"../model/core.ts\";\nimport { canonicalizeRunContext, type RunContext } from \"../model/run-context.ts\";\nimport { RECORD_FORMAT, compareCanonicalIdentity, type AttemptId, type RunId, type Sha256Digest, type SlotId } from \"../model/identifiers.ts\";\nimport type { RecordCoreRead, RecordWarning } from \"../model/read-state.ts\";\nimport { validateExpectedSlots } from \"../model/validation.ts\";\nimport { RecordResourceLimitExceeded } from \"../platform/errors.ts\";\nimport { recordRootPaths, type RecordRoot } from \"../platform/root.ts\";\nimport { RecordEntropy, type RecordEntropyService } from \"../platform/services.ts\";\nimport { FamilyDefinitionRequired, RecordBootstrapInvalid, RecordFormatUnsupported, RecordHandleInvalid, RecordIntegrityFailure, RecordMigrationPlanStale, RecordReaderClosed, RecordSealIncomplete, type RecordMaintenanceOpenError, type RecordReaderOpenError, type RecordReaderReadError } from \"../reader/errors.ts\";\nimport { cleanIncompleteRuns, inspectIncompleteRuns } from \"../maintenance/index.ts\";\nimport { ProjectStateDatabase, RECORD_SQLITE_CHUNK_BYTES, RECORD_SQLITE_MAX_PAGE_ROWS, RECORD_SQLITE_MAX_PUBLISH_BYTES, RECORD_SQLITE_MAX_PUBLISH_ROWS, RECORD_SQLITE_MAX_ROW_BYTES, SqliteRecordError, inspectProjectRecordDatabase, recordSqlitePath, type FinalizedAttachmentMetadata, type PersistedAttachmentReference, type PersistedCollectionItem, type PersistedContentChunk, type PersistedContentMetadata, type ProjectRecordDatabaseInspection, type SealedAttachmentMetadata, type SealedRunCore, type StorageWorkerClient } from \"../sqlite/index.ts\";\nimport { attachmentId, attachmentLogicalIdentity, collectionItemLogicalIdentity, compareCanonicalCodeUnits, contentId, hashCanonicalTuple } from \"../sqlite/seal.ts\";\nimport { prepareStreamingRecordAttachment, type AttachedContentError, type AttachedContentRequirements, type PreparedStreamingRecordAttachment, type RecordAttachmentSessionBuilder } from \"../writer/current-attachment.ts\";\nimport { recordAlreadyWritten, recordAppendCommandInvalid, recordAttachmentEncodeError, recordCollectionDefinitionInvalid, recordCollectionNotClosed, recordDraftStateError, recordOwnerDefinitionMismatch, recordWriterClosed } from \"../writer/errors.ts\";\nimport { encodeRecordJsonUtf8, RECORD_JSON_MAXIMUM_BYTES } from \"../writer/limits.ts\";\nimport type { RecordWriteError } from \"../writer/types.ts\";\nimport type { AttemptRecordsWriter, AttemptWriteSession, CreateRunRequest, OwnerRecordsWriter, ReadableAttempt, ReadableRun, RecordAttachmentContentReader, RecordAttachmentRead, RecordCleanOperationPlan, RecordCleanOperationReceipt, RecordCompleteView, RecordHostSDK, RecordMaintenanceOperationFailure, RecordMaintenanceSession, RecordMigrateOperationPlan, RecordMigrateOperationReceipt, RecordMigrationPlan, RecordReadSession, RecordSealReceipt, RecordSelection, RecordSelectionProblem, RecordSelectionRequest, ReferenceRunWriteSession, RunCompletion, RunWriteSession, SelectedAttemptRef, SelectedOwnerRef, SelectedRunFacts, SelectedRunRef } from \"./types.ts\";\nimport { attemptWriteSessionBrand, runWriteSessionBrand, selectedAttemptRefBrand, selectedOwnerRefBrand, selectedRunRefBrand } from \"./types.ts\";\nimport { openOperationalRecordReadSession, type SealedRunSummary } from \"../sqlite/index.ts\";\nimport type { RunResourcePage } from \"../../run/storage/types.ts\";\ntype AnyDefinition<Owner extends RecordAttachmentOwner = RecordAttachmentOwner> = RecordAttachmentDefinition<Owner, string, Schema.Top>;\ntype AnyPersistence = RecordAttachmentPersistence<AnyDefinition, number>;\nconst WRITE_DEADLINE_MS = 30000;\nconst MAILBOX_COMMANDS = 64;\nconst COLLECTION_READ_MAX_ROWS = 10000;\nconst WHOLE_VALUE_MAX_BYTES = 16 * 1024 * 1024;\nconst CONTENT_BATCH_CHUNKS = Math.min(4, Math.max(1, Math.floor(RECORD_SQLITE_MAX_PUBLISH_BYTES / RECORD_SQLITE_CHUNK_BYTES)));\nconst CONTENT_READ_PAGE_ROWS = Math.min(4, RECORD_SQLITE_MAX_PAGE_ROWS);\nconst canonicalLimits = Object.freeze({ maximumJsonBytes: RECORD_JSON_MAXIMUM_BYTES, maximumDepth: 64, maximumNodes: 100000, maximumObjectKeys: 10000, maximumArrayItems: 100000, maximumKeyUtf8Bytes: 16384, maximumStringUtf8Bytes: 1048576 });\nfunction digest(bytes: Uint8Array): Sha256Digest {\n const value = createHash(\"sha256\").update(bytes).digest(\"hex\");\n const decoded = Schema.decodeUnknownResult(Sha256DigestSchema)(value);\n if (Result.isFailure(decoded))\n throw new Error(\"invalid SHA-256\");\n return decoded.success;\n}\nfunction canonicalBytes(value: unknown): Uint8Array | undefined {\n const canonical = canonicalizeRecordJson(value, canonicalLimits);\n return Result.isFailure(canonical) ? undefined : encodeRecordJsonUtf8(canonical.success);\n}\nfunction parseJson(bytes: Uint8Array): unknown | undefined {\n try {\n return JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)) as unknown;\n }\n catch {\n return undefined;\n }\n}\nfunction invalidIssues(path: readonly string[] = []): NonEmptyRecordIssues { return nonEmptyRecordIssues([recordIssue(\"record-schema-invalid\", path)])!; }\nfunction coreInvalid(): RecordCoreInvalid { return new RecordCoreInvalid({ code: \"record-core-invalid\", issues: invalidIssues([\"core\"]) }); }\nfunction deadline(): number { return Date.now() + WRITE_DEADLINE_MS; }\nfunction storageRoot(root: RecordRoot): string | undefined { return recordRootPaths(root)?.portableRoot; }\nfunction sameRoot(a: RecordRoot, b: RecordRoot): boolean { return storageRoot(a) !== undefined && storageRoot(a) === storageRoot(b); }\nfunction sqliteEffect<A>(operation: () => Promise<A>): Effect.Effect<A, SqliteRecordError> {\n return Effect.tryPromise({ try: operation, catch: (cause) => cause instanceof SqliteRecordError ? cause : new SqliteRecordError(\"record-sqlite-error\", \"record-host\", \"storage worker failed\", { cause }) });\n}\nfunction withWriteAdmission<A>(coordination: RecordCoordinationService, root: RecordRoot, operation: (deadlineEpochMs: number) => Promise<A>): Effect.Effect<A, RecordWriteError> {\n const deadlineEpochMs = deadline();\n return Effect.uninterruptibleMask((restore) => Effect.scoped(Effect.gen(function* () {\n yield* restore(coordination.enterRecordWriteBatch({\n root,\n deadlineEpochMs,\n }));\n // The storage worker owns the synchronous SQLite transaction. Once it has\n // admission, interruption waits for its Promise to settle so the scope\n // cannot release the writer owner before COMMIT or ROLLBACK.\n return yield* sqliteEffect(() => operation(deadlineEpochMs));\n })));\n}\nfunction exactMarker(value: unknown, key: string): unknown | undefined {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return undefined;\n const keys = Reflect.ownKeys(value);\n if (keys.length !== 1 || keys[0] !== key)\n return undefined;\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n return descriptor?.enumerable && \"value\" in descriptor ? descriptor.value : undefined;\n}\nfunction hasOwnMarker(value: unknown, key: string): boolean { return typeof value === \"object\" && value !== null && !Array.isArray(value) && Object.prototype.hasOwnProperty.call(value, key); }\ninterface StoredAttachment {\n readonly metadata: FinalizedAttachmentMetadata;\n readonly ownerKind: RecordAttachmentOwner;\n readonly ownerAttemptId?: AttemptId;\n readonly family: string;\n readonly revision: number;\n}\ninterface CollectionState {\n readonly authoring: AttemptRecordCollectionRuntime;\n readonly attachmentId: string;\n nextOrdinal: number;\n encodedBytes: number;\n readonly itemHash: ReturnType<typeof createHash>;\n completion?: {\n readonly state: \"complete\";\n } | {\n readonly state: \"partial\";\n readonly limitations: readonly [\n AttemptRecordCollectionLimitation,\n ...AttemptRecordCollectionLimitation[]\n ];\n };\n}\ninterface AttemptRuntime {\n readonly run: RunRuntime;\n readonly attemptId: AttemptId;\n readonly slotId: SlotId;\n state: \"open\" | \"completing\" | \"completed\" | \"failed\";\n outcome?: AttemptDocument[\"outcome\"];\n readonly families: Set<string>;\n readonly collections: Map<string, CollectionState>;\n pendingAppends: number;\n readonly appendAcks: Queue.Queue<void>;\n handle?: AttemptWriteSession;\n}\ninterface AppendCommand {\n readonly attempt: AttemptRuntime;\n readonly attachmentId: string;\n readonly bytes: number;\n readonly item: PersistedCollectionItem;\n}\ninterface RunRuntime {\n readonly root: RecordRoot;\n readonly client: StorageWorkerClient;\n readonly coordination: RecordCoordinationService;\n readonly entropy: RecordEntropyService;\n readonly catalog: RecordAttachmentCatalog;\n readonly record: RecordDocument;\n readonly writerGeneration: string;\n readonly runId: RunId;\n readonly experimentId: CreateRunRequest[\"experimentId\"];\n readonly context: RunContext;\n readonly startedAt: CreateRunRequest[\"startedAt\"];\n readonly expectedSlots: readonly RecordSlotIdentity[];\n readonly expectedBySlot: ReadonlyMap<SlotId, RecordSlotIdentity>;\n readonly lock: Semaphore.Semaphore;\n readonly queue: Queue.Queue<AppendCommand>;\n readonly attempts: Map<AttemptId, AttemptRuntime>;\n readonly members: Map<SlotId, MemberDocument>;\n readonly reservations: Set<SlotId>;\n readonly families: Set<string>;\n readonly attachments: Map<string, StoredAttachment>;\n state: \"open\" | \"sealing\" | \"sealed\" | \"failed\";\n failure?: RecordWriteError;\n handle?: object;\n}\ninterface ReaderLifecycle {\n closed: boolean;\n}\ntype OwnerRuntime = {\n readonly kind: \"run\";\n readonly runId: RunId;\n} | {\n readonly kind: \"attempt\";\n readonly runId: RunId;\n readonly attemptId: AttemptId;\n};\ninterface ReaderRuntime {\n readonly root: RecordRoot;\n readonly client: StorageWorkerClient;\n readonly catalog: RecordAttachmentCatalog;\n readonly lifecycle: ReaderLifecycle;\n readonly snapshot: ReaderSnapshot;\n readonly runs: WeakMap<SelectedRunRef, RunId>;\n readonly attempts: WeakMap<SelectedAttemptRef, {\n readonly runId: RunId;\n readonly attemptId: AttemptId;\n }>;\n readonly owners: WeakMap<SelectedOwnerRef, OwnerRuntime>;\n readonly selections: WeakSet<RecordSelection>;\n readonly coreCache: Map<RunId, SealedRunCore>;\n readonly runRefs: Map<RunId, SelectedRunRef>;\n readonly attemptRefs: Map<string, SelectedAttemptRef>;\n readonly content: WeakMap<RecordContentHandle, {\n readonly contentId: string;\n readonly logicalHandle: string;\n readonly byteLength: number;\n readonly digest: string;\n readonly chunkCount: number;\n }>;\n}\ninterface ReaderSnapshot {\n readonly summaries: readonly SealedRunSummary[];\n readonly resources: RunResourcePage[\"runs\"];\n readonly cutoff: RunResourcePage[\"cutoff\"];\n readonly cores: ReadonlyMap<RunId, SealedRunCore>;\n}\n/** Capture planning facts together, then release SQLite before any dispatch. */\nfunction captureReaderSnapshot(root: string): Effect.Effect<ReaderSnapshot, SqliteRecordError> {\n return Effect.try({\n try: () => {\n const session = openOperationalRecordReadSession(root);\n try {\n const summaries: SealedRunSummary[] = [];\n const resources: RunResourcePage[\"runs\"][number][] = [];\n const cores = new Map<RunId, SealedRunCore>();\n let afterRunId = \"\";\n for (;;) {\n const page = session.readSealedRunSummaryPage(afterRunId, 100);\n summaries.push(...page.summaries);\n if (page.nextAfterRunId === null)\n break;\n afterRunId = page.nextAfterRunId;\n }\n for (const summary of summaries) {\n const core = session.readSealedRunCore(summary.runId);\n if (core !== undefined)\n cores.set(summary.runId as RunId, core);\n }\n afterRunId = \"\";\n for (;;) {\n const page = session.listRunResources({ afterRunId, pageSize: 100 });\n resources.push(...page.runs);\n if (page.nextAfterRunId === null)\n break;\n afterRunId = page.nextAfterRunId;\n }\n return Object.freeze({ summaries: Object.freeze(summaries), resources: Object.freeze(resources), cutoff: session.publicationCutoff(), cores });\n }\n finally {\n session.close();\n }\n },\n catch: (cause) => cause instanceof SqliteRecordError ? cause : new SqliteRecordError(\"record-sqlite-error\", \"record-reader-snapshot\", \"Could not capture reader facts\", { cause }),\n });\n}\nconst runSessions = new WeakMap<object, RunRuntime>();\nconst attemptSessions = new WeakMap<object, AttemptRuntime>();\nconst selectedAttemptCapabilities = new WeakMap<SelectedAttemptRef, {\n readonly root: RecordRoot;\n readonly lifecycle: ReaderLifecycle;\n}>();\nexport function writerGenerationForRunSession(session: RunWriteSession | ReferenceRunWriteSession): string | undefined {\n return runSessions.get(session)?.writerGeneration;\n}\nexport function discardAttemptWriteSession(session: AttemptWriteSession): Effect.Effect<void, RecordWriteError> {\n const attempt = attemptSessions.get(session);\n if (attempt === undefined)\n return Effect.fail(recordWriterClosed());\n return Effect.gen(function* () {\n yield* attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n attempt.state = \"failed\";\n yield* withWriteAdmission(attempt.run.coordination, attempt.run.root, (deadlineEpochMs) => attempt.run.client.discardAttempt({\n runId: attempt.run.runId,\n writerGeneration: attempt.run.writerGeneration,\n attemptId: attempt.attemptId,\n deadlineEpochMs,\n }));\n attempt.run.attempts.delete(attempt.attemptId);\n attempt.run.reservations.delete(attempt.slotId);\n for (const [attachmentId, attachment] of attempt.run.attachments) {\n if (attachment.ownerKind === \"attempt\" && attachment.ownerAttemptId === attempt.attemptId) {\n attempt.run.attachments.delete(attachmentId);\n }\n }\n attemptSessions.delete(session);\n }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(attempt.run, error))));\n}\nfunction attachmentIdentity(owner: OwnerRuntime, family: string): string {\n return attachmentId({ runId: owner.runId, owner: owner.kind, ...(owner.kind === \"attempt\" ? { attemptId: owner.attemptId } : {}), family });\n}\nfunction contentIdentity(attachmentId: string, logicalHandle: string): string {\n return contentId(attachmentId, logicalHandle);\n}\nfunction bytesEqual(left: Uint8Array, right: Uint8Array): boolean {\n if (left.byteLength !== right.byteLength)\n return false;\n for (let index = 0; index < left.byteLength; index += 1)\n if (left[index] !== right[index])\n return false;\n return true;\n}\nfunction attachmentMetadata(input: {\n readonly attachmentId: string;\n readonly payloadBytes: Uint8Array;\n readonly references: readonly PersistedAttachmentReference[];\n readonly contents: readonly PersistedContentMetadata[];\n readonly collection?: {\n readonly count: number;\n readonly byteLength: number;\n readonly digest: string;\n };\n}): FinalizedAttachmentMetadata {\n const canonicalDigest = digest(input.payloadBytes);\n const inventoryBytes = canonicalBytes({ references: input.references.map(({ ordinal, owner, family, referenceDigest }) => ({ ordinal, owner, family, digest: referenceDigest })), contents: input.contents, ...(input.collection === undefined ? {} : { collection: input.collection }) });\n if (inventoryBytes === undefined)\n throw new Error(\"invalid attachment inventory\");\n const inventoryDigest = digest(inventoryBytes);\n return Object.freeze({ attachmentId: input.attachmentId, logicalIdentity: attachmentLogicalIdentity(input.attachmentId, canonicalDigest, inventoryDigest), canonicalBytes: input.payloadBytes, canonicalDigest, logicalInventoryBytes: inventoryBytes, inventoryDigest, contents: Object.freeze([...input.contents]) });\n}\nfunction resolvePersistence(catalog: RecordAttachmentCatalog, definition: unknown, owner: RecordAttachmentOwner): Result.Result<AnyPersistence, RecordWriteError> {\n const attachment = recordDefinitionAttachment(definition) ?? resolveRecordAttachmentDefinition(definition);\n if (attachment === undefined)\n return Result.fail(recordCollectionDefinitionInvalid());\n if (attachment.owner !== owner)\n return Result.fail(recordOwnerDefinitionMismatch({ expected: owner, actual: attachment.owner }));\n const persistence = catalog.persistence(attachment);\n return persistence === undefined ? Result.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner, family: attachment.family, revision: 1 })) : Result.succeed(persistence as AnyPersistence);\n}\nfunction poison(run: RunRuntime, error: RecordWriteError): void { if (run.failure === undefined)\n run.failure = error; run.state = \"failed\"; }\nfunction assertRunOpen(run: RunRuntime): Effect.Effect<void, RecordWriteError> {\n if (run.failure !== undefined)\n return Effect.fail(run.failure);\n return run.state === \"open\" ? Effect.void : Effect.fail(recordDraftStateError({ code: \"record-draft-state-invalid\", operation: \"record\", state: run.state === \"sealed\" ? \"published\" : run.state === \"failed\" ? \"failed\" : \"publishing\" }));\n}\nfunction makeBatches(commands: readonly AppendCommand[]): readonly (readonly AppendCommand[])[] {\n const result: AppendCommand[][] = [];\n let batch: AppendCommand[] = [];\n let bytes = 0;\n for (const command of commands) {\n if (batch.length > 0 && (command.attachmentId !== batch[0]!.attachmentId || batch.length >= RECORD_SQLITE_MAX_PUBLISH_ROWS || bytes + command.bytes > RECORD_SQLITE_MAX_PUBLISH_BYTES)) {\n result.push(batch);\n batch = [];\n bytes = 0;\n }\n batch.push(command);\n bytes += command.bytes;\n }\n if (batch.length > 0)\n result.push(batch);\n return result;\n}\nfunction collectionWorker(run: RunRuntime): Effect.Effect<never, never> {\n return Effect.forever(Effect.gen(function* () {\n const first = yield* Queue.take(run.queue);\n const tail = yield* Queue.clear(run.queue);\n for (const batch of makeBatches(Object.freeze([first, ...tail]))) {\n const exit = yield* Effect.exit(withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageCollectionItems({ runId: run.runId, writerGeneration: run.writerGeneration, attachmentId: batch[0]!.attachmentId, items: Object.freeze(batch.map(({ item }) => item)), deadlineEpochMs })));\n const attempt = batch[0]!.attempt;\n attempt.pendingAppends -= batch.length;\n yield* Queue.offer(attempt.appendAcks, undefined);\n if (Exit.isFailure(exit))\n yield* Effect.sync(() => poison(run, new SqliteRecordError(\"record-sqlite-error\", \"stage-collection-items\", \"collection batch failed\")));\n }\n })).pipe(Effect.catchCause(() => Effect.never));\n}\nfunction snapshotItem(authoring: AttemptRecordCollectionRuntime, item: unknown, ordinal: number): Result.Result<PersistedCollectionItem, RecordWriteError> {\n if (!isRecordAttachmentSchema(authoring.item))\n return Result.fail(recordAppendCommandInvalid());\n const encoded = Schema.encodeUnknownResult(authoring.item)(item);\n if (Result.isFailure(encoded))\n return Result.fail(recordAppendCommandInvalid());\n const bytes = canonicalBytes(encoded.success);\n if (bytes === undefined || bytes.byteLength > RECORD_SQLITE_MAX_ROW_BYTES)\n return Result.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: RECORD_SQLITE_MAX_ROW_BYTES, observedAtLeast: bytes?.byteLength ?? RECORD_SQLITE_MAX_ROW_BYTES + 1, path: authoring.attachment.family }));\n const canonicalDigest = digest(bytes);\n return Result.succeed(Object.freeze({ ordinal, logicalIdentity: collectionItemLogicalIdentity(ordinal, canonicalDigest), canonicalBytes: bytes, canonicalDigest }));\n}\nfunction admitCollection(run: RunRuntime, attempt: AttemptRuntime, authoring: AttemptRecordCollectionRuntime): Effect.Effect<CollectionState, RecordWriteError> {\n const current = attempt.collections.get(authoring.attachment.family);\n if (current !== undefined)\n return Effect.succeed(current);\n const attachmentId = attachmentIdentity({ kind: \"attempt\", runId: run.runId, attemptId: attempt.attemptId }, authoring.attachment.family);\n return Effect.gen(function* () {\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.admitAttachment({ runId: run.runId, writerGeneration: run.writerGeneration, attachmentId, ownerKind: \"attempt\", ownerRunId: run.runId, ownerAttemptId: attempt.attemptId, family: authoring.attachment.family, familyRevision: authoring.persistence.revision, deadlineEpochMs }));\n const state: CollectionState = { authoring, attachmentId, nextOrdinal: 0, encodedBytes: 0, itemHash: createHash(\"sha256\") };\n attempt.collections.set(authoring.attachment.family, state);\n attempt.families.add(authoring.attachment.family);\n return state;\n });\n}\nfunction appendCollectionBatch(attempt: AttemptRuntime, definition: unknown, items: readonly unknown[]): Effect.Effect<{\n readonly state: \"retained\";\n}, RecordWriteError> {\n const run = attempt.run;\n return Effect.uninterruptibleMask(() => run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n const authoring = attemptRecordCollectionRuntime(definition);\n if (authoring === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const collection = yield* admitCollection(run, attempt, authoring);\n if (collection.completion !== undefined)\n return yield* Effect.fail(recordWriterClosed());\n const commands: AppendCommand[] = [];\n for (let index = 0; index < items.length; index += 1) {\n const frozen = snapshotItem(authoring, items[index], collection.nextOrdinal + index);\n if (Result.isFailure(frozen))\n return yield* Effect.fail(frozen.failure);\n commands.push(Object.freeze({ attempt, attachmentId: collection.attachmentId, bytes: frozen.success.canonicalBytes.byteLength, item: frozen.success }));\n }\n attempt.pendingAppends += commands.length;\n // One bounded batch is offered atomically with respect to interruption;\n // the worker can always drain it without acquiring this lock.\n yield* Queue.offerAll(run.queue, commands);\n for (const command of commands) {\n collection.nextOrdinal += 1;\n collection.encodedBytes += command.bytes;\n collection.itemHash.update(command.item.canonicalBytes).update(\"\\n\");\n }\n return Object.freeze({ state: \"retained\" as const });\n })));\n}\nfunction appendCollection(attempt: AttemptRuntime, definition: unknown, item: unknown): Effect.Effect<{\n readonly state: \"retained\";\n}, RecordWriteError> {\n return appendCollectionBatch(attempt, definition, [item]);\n}\nfunction closeCollection(attempt: AttemptRuntime, definition: unknown, completion: CollectionState[\"completion\"]): Effect.Effect<void, RecordWriteError> {\n return attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n const authoring = attemptRecordCollectionRuntime(definition);\n if (authoring === undefined || completion === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const collection = yield* admitCollection(attempt.run, attempt, authoring);\n if (collection.completion !== undefined)\n return yield* Effect.fail(recordWriterClosed());\n collection.completion = completion.state === \"complete\" ? Object.freeze({ state: \"complete\" as const }) : Object.freeze({ state: \"partial\" as const, limitations: Object.freeze(completion.limitations.map((value) => Object.freeze({ ...value }))) as readonly [\n AttemptRecordCollectionLimitation,\n ...AttemptRecordCollectionLimitation[]\n ] });\n }));\n}\nfunction processContent<Error, Requirements>(input: {\n readonly run: RunRuntime;\n readonly attachmentId: string;\n readonly source: PreparedStreamingRecordAttachment<Error, Requirements>[\"contents\"][number];\n}): Effect.Effect<PersistedContentMetadata, RecordWriteError | Error, Requirements> {\n const contentId = contentIdentity(input.attachmentId, input.source.logicalHandle);\n return Effect.gen(function* () {\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.admitContent({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId: input.attachmentId, contentId, logicalHandle: input.source.logicalHandle, deadlineEpochMs }));\n const overall = createHash(\"sha256\");\n let ordinal = 0;\n let byteLength = 0;\n const available: Uint8Array[] = [];\n const takePending = (): Uint8Array => available.pop() ?? new Uint8Array(RECORD_SQLITE_CHUNK_BYTES);\n let pending = takePending();\n let pendingLength = 0;\n let batch: PersistedContentChunk[] = [];\n let batchBytes = 0;\n const flushBatch = (): Effect.Effect<void, RecordWriteError> => {\n if (batch.length === 0)\n return Effect.void;\n const frozen = Object.freeze(batch);\n batch = [];\n batchBytes = 0;\n return withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.appendContentChunks({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, contentId, chunks: frozen, deadlineEpochMs }))\n .pipe(Effect.map((returned) => { for (const value of returned)\n available.push(value); }));\n };\n const emit = (frozen: Uint8Array): Effect.Effect<void, RecordWriteError> => Effect.gen(function* () {\n overall.update(frozen);\n byteLength += frozen.byteLength;\n if (input.source.maximumBytes !== undefined && byteLength > input.source.maximumBytes)\n return yield* Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: input.source.maximumBytes, observedAtLeast: byteLength, path: input.source.logicalHandle }));\n batch.push(Object.freeze({ ordinal: ordinal++, bytes: frozen, chunkDigest: digest(frozen) }));\n batchBytes += frozen.byteLength;\n if (batch.length >= CONTENT_BATCH_CHUNKS || batchBytes >= RECORD_SQLITE_MAX_PUBLISH_BYTES)\n yield* flushBatch();\n });\n yield* Stream.runForEach(input.source.stream, (incoming) => Effect.gen(function* () {\n if (!(incoming instanceof Uint8Array))\n return yield* Effect.fail(recordAppendCommandInvalid());\n let offset = 0;\n while (offset < incoming.byteLength) {\n const take = Math.min(RECORD_SQLITE_CHUNK_BYTES - pendingLength, incoming.byteLength - offset);\n pending.set(incoming.subarray(offset, offset + take), pendingLength);\n pendingLength += take;\n offset += take;\n if (pendingLength === RECORD_SQLITE_CHUNK_BYTES) {\n yield* emit(pending);\n pending = takePending();\n pendingLength = 0;\n }\n }\n }));\n // A full pending buffer is uniquely owned here and can be transferred\n // directly. Only the final partial chunk needs an exact-size copy.\n if (pendingLength > 0)\n yield* emit(pending.slice(0, pendingLength));\n yield* flushBatch();\n return Object.freeze({ contentId, logicalHandle: input.source.logicalHandle, byteLength, digest: overall.digest(\"hex\"), chunkCount: ordinal });\n });\n}\nfunction writeAttachment<Owner extends RecordAttachmentOwner, Value>(input: {\n readonly run: RunRuntime;\n readonly owner: Owner;\n readonly attempt?: AttemptRuntime;\n readonly persistence: AnyPersistence;\n readonly value: Value | ((builder: RecordAttachmentSessionBuilder) => Value);\n}): Effect.Effect<void, RecordWriteError | AttachedContentError<Value>, AttachedContentRequirements<Value>> {\n const targetFamilies = input.attempt?.families ?? input.run.families;\n const family = input.persistence.attachment.family;\n const ownerRuntime: OwnerRuntime = input.owner === \"run\" ? { kind: \"run\", runId: input.run.runId } : { kind: \"attempt\", runId: input.run.runId, attemptId: input.attempt!.attemptId };\n return Effect.gen(function* () {\n yield* input.run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(input.run); if (input.attempt !== undefined && input.attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed()); if (targetFamilies.has(family))\n return yield* Effect.fail(recordAlreadyWritten({ owner: input.owner, family })); targetFamilies.add(family); }));\n const prepared = yield* prepareStreamingRecordAttachment({ definition: input.persistence.attachment, value: input.value as never });\n const attachmentId = attachmentIdentity(ownerRuntime, family);\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.admitAttachment({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId, ownerKind: input.owner, ownerRunId: input.run.runId, ...(input.attempt === undefined ? {} : { ownerAttemptId: input.attempt.attemptId }), family, familyRevision: input.persistence.revision, deadlineEpochMs }));\n const contents = yield* Effect.forEach(prepared.contents, (source) => processContent({ run: input.run, attachmentId, source }), { concurrency: 1 });\n const references: PersistedAttachmentReference[] = prepared.references.map((reference, ordinal) => { const bytes = canonicalBytes(reference); if (bytes === undefined)\n throw new Error(\"invalid reference\"); return Object.freeze({ ordinal, owner: reference.owner, family: reference.family, canonicalBytes: bytes, referenceDigest: digest(bytes) }); });\n for (let offset = 0; offset < references.length; offset += RECORD_SQLITE_MAX_PUBLISH_ROWS) {\n const refs = Object.freeze(references.slice(offset, offset + RECORD_SQLITE_MAX_PUBLISH_ROWS));\n yield* withWriteAdmission(input.run.coordination, input.run.root, (deadlineEpochMs) => input.run.client.stageAttachmentReferences({ runId: input.run.runId, writerGeneration: input.run.writerGeneration, attachmentId, references: refs, deadlineEpochMs }));\n }\n const metadata = attachmentMetadata({ attachmentId, payloadBytes: prepared.payloadBytes, references, contents });\n input.run.attachments.set(attachmentId, Object.freeze({ metadata, ownerKind: input.owner, ...(input.attempt === undefined ? {} : { ownerAttemptId: input.attempt.attemptId }), family, revision: input.persistence.revision }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(input.run, error as RecordWriteError)))) as Effect.Effect<void, RecordWriteError | AttachedContentError<Value>, AttachedContentRequirements<Value>>;\n}\nfunction finishCollections(attempt: AttemptRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n for (const collection of attempt.collections.values())\n if (collection.completion === undefined)\n return yield* Effect.fail(recordCollectionNotClosed(collection.authoring.attachment.family));\n while (attempt.pendingAppends > 0)\n yield* Queue.take(attempt.appendAcks);\n if (attempt.run.failure !== undefined)\n return yield* Effect.fail(attempt.run.failure);\n for (const collection of attempt.collections.values()) {\n const completion = collection.completion!;\n const shell = { collection: completion.state === \"complete\" ? { state: \"complete\" as const, limitations: [] as const } : { state: \"partial\" as const, limitations: completion.limitations }, items: [] as const };\n if (!isRecordAttachmentSchema(collection.authoring.attachment.schema))\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const encoded = Schema.encodeUnknownResult(collection.authoring.attachment.schema)(shell);\n if (Result.isFailure(encoded))\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const payloadBytes = canonicalBytes(encoded.success);\n if (payloadBytes === undefined)\n return yield* Effect.fail(recordCollectionDefinitionInvalid());\n const metadata = attachmentMetadata({ attachmentId: collection.attachmentId, payloadBytes, references: [], contents: [], collection: { count: collection.nextOrdinal, byteLength: collection.encodedBytes, digest: collection.itemHash.digest(\"hex\") } });\n attempt.run.attachments.set(collection.attachmentId, Object.freeze({ metadata, ownerKind: \"attempt\", ownerAttemptId: attempt.attemptId, family: collection.authoring.attachment.family, revision: collection.authoring.persistence.revision }));\n }\n });\n}\nfunction completeAttempt(attempt: AttemptRuntime, outcome: AttemptDocument[\"outcome\"]): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n yield* attempt.run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(attempt.run);\n if (attempt.state !== \"open\")\n return yield* Effect.fail(recordWriterClosed());\n attempt.state = \"completing\";\n const unclosed = [...attempt.collections.values()].find(({ completion }) => completion === undefined);\n if (unclosed !== undefined) {\n attempt.state = \"failed\";\n return yield* Effect.fail(recordCollectionNotClosed(unclosed.authoring.attachment.family));\n }\n }));\n yield* finishCollections(attempt);\n const slot = attempt.run.expectedBySlot.get(attempt.slotId);\n if (slot === undefined)\n return yield* Effect.fail(coreInvalid());\n attempt.outcome = outcome;\n attempt.run.members.set(attempt.slotId, Object.freeze({ slotId: attempt.slotId, action: \"executed\", attempt: Object.freeze({ originRunId: attempt.run.runId, attemptId: attempt.attemptId }) }));\n attempt.state = \"completed\";\n if (attempt.handle !== undefined)\n attemptSessions.delete(attempt.handle);\n const metadata = buildRunMetadata(attempt.run, Date.now() as RunDocument[\"completedAt\"]);\n yield* withWriteAdmission(attempt.run.coordination, attempt.run.root, (deadlineEpochMs) => attempt.run.client.stageRunPublicationMetadata({ ...metadata, deadlineEpochMs }));\n }).pipe(Effect.tapError((error) => Effect.sync(() => { attempt.state = \"failed\"; poison(attempt.run, error); })));\n}\nfunction makeAttemptSession(attempt: AttemptRuntime): AttemptWriteSession {\n const writeDefinition = (definition: unknown, value: unknown) => { const persistence = resolvePersistence(attempt.run.catalog, definition, \"attempt\"); return Result.isFailure(persistence) ? Effect.fail(persistence.failure) : writeAttachment({ run: attempt.run, owner: \"attempt\", attempt, persistence: persistence.success, value }); };\n const record = Object.freeze({\n write<Value, Error, Requirements>(command: RecordWriteCommand<\"attempt\", Value, Error, Requirements>) { const payload = recordWriteCommandPayload(command, \"attempt\"); return payload === undefined ? Effect.fail(recordAppendCommandInvalid()) : writeDefinition(payload.definition, payload.input); },\n start(definition: AttemptRecordCollectionDefinition<string, Schema.Top>) { const authoring = attemptRecordCollectionRuntime(definition); return authoring === undefined ? Effect.fail(recordCollectionDefinitionInvalid()) : admitCollection(attempt.run, attempt, authoring).pipe(Effect.asVoid); },\n append<Item>(command: AttemptRecordAppendCommand<Item>) { const runtime = attemptRecordAppendCommandRuntime(command); return runtime === undefined ? Effect.fail(recordAppendCommandInvalid()) : appendCollection(attempt, runtime.definition, runtime.item); },\n }) as AttemptWriteSession[\"record\"];\n const append: AttemptRecordsWriter[\"append\"] = (definition, item) => appendCollection(attempt, definition, item);\n const appendAll: AttemptRecordsWriter[\"appendAll\"] = <Definition extends AttemptRecordCollectionDefinition<string, Schema.Top>, Error, Requirements>(definition: Definition, items: Stream.Stream<Schema.Schema.Type<Definition[\"item\"]>, Error, Requirements>) => items.pipe(Stream.grouped(MAILBOX_COMMANDS), Stream.runForEach((group) => appendCollectionBatch(attempt, definition, group).pipe(Effect.asVoid)));\n const close: AttemptRecordsWriter[\"close\"] = (definition, completion) => closeCollection(attempt, definition, completion);\n const records: AttemptRecordsWriter = Object.freeze({ write: writeDefinition as AttemptRecordsWriter[\"write\"], append, appendAll, close });\n const session: AttemptWriteSession = Object.freeze({ attemptId: attempt.attemptId, slotId: attempt.slotId, [attemptWriteSessionBrand]: () => undefined, complete: (outcome: AttemptDocument[\"outcome\"]) => attemptSessions.get(session) === attempt ? completeAttempt(attempt, outcome) : Effect.fail(recordWriterClosed()), attach: writeDefinition as AttemptWriteSession[\"attach\"], record, records });\n attempt.handle = session;\n attemptSessions.set(session, attempt);\n return session;\n}\nfunction mintId<A>(entropy: RecordEntropyService, schema: Schema.Codec<A, string>): Effect.Effect<A, RecordWriteError> {\n return Effect.flatMap(entropy.uuid, (raw) => { const decoded = Schema.decodeUnknownResult(schema)(raw); return Result.isFailure(decoded) ? Effect.fail(coreInvalid()) : Effect.succeed(decoded.success); });\n}\nfunction createAttempt(run: RunRuntime, slotId: SlotId): Effect.Effect<AttemptWriteSession, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () {\n yield* assertRunOpen(run);\n if (!run.expectedBySlot.has(slotId) || run.reservations.has(slotId))\n return yield* Effect.fail(coreInvalid());\n const attemptId = yield* mintId(run.entropy, AttemptIdSchema);\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.admitAttempt({ runId: run.runId, writerGeneration: run.writerGeneration, attemptId, attemptLocator: encodeAttemptLocator(attemptId), deadlineEpochMs }));\n const appendAcks = yield* Queue.unbounded<void>();\n const attempt: AttemptRuntime = { run, attemptId, slotId, state: \"open\", families: new Set(), collections: new Map(), pendingAppends: 0, appendAcks };\n run.attempts.set(attemptId, attempt);\n run.reservations.add(slotId);\n return makeAttemptSession(attempt);\n }));\n}\nfunction selectedReference(run: RunRuntime, ref: SelectedAttemptRef): boolean { const capability = selectedAttemptCapabilities.get(ref); return capability !== undefined && !capability.lifecycle.closed && sameRoot(capability.root, run.root); }\nfunction referenceAttempt(run: RunRuntime, input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n}): Effect.Effect<void, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if (!selectedReference(run, input.attempt))\n return yield* Effect.fail(new RecordReferenceInvalid({ code: \"record-reference-invalid\" })); if (!run.expectedBySlot.has(input.slotId) || run.reservations.has(input.slotId))\n return yield* Effect.fail(coreInvalid()); run.members.set(input.slotId, Object.freeze({ slotId: input.slotId, action: input.action, attempt: Object.freeze({ originRunId: input.attempt.originRunId, attemptId: input.attempt.attemptId }) })); run.reservations.add(input.slotId); }));\n}\nfunction terminalMember(run: RunRuntime, slotId: SlotId, action: \"not-dispatched\" | \"interrupted\", absenceReason: import(\"../../run/protocol.ts\").RunAbsenceReason): Effect.Effect<void, RecordWriteError> {\n return run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if (!run.expectedBySlot.has(slotId) || run.reservations.has(slotId))\n return yield* Effect.fail(coreInvalid()); run.members.set(slotId, Object.freeze({ slotId, action, attempt: null, absenceReason })); run.reservations.add(slotId); }));\n}\nfunction encodeCore(value: unknown): {\n readonly bytes: Uint8Array;\n readonly digest: string;\n} | undefined { const bytes = canonicalBytes(value); return bytes === undefined ? undefined : Object.freeze({ bytes, digest: digest(bytes) }); }\nfunction buildRunMetadata(run: RunRuntime, completedAt: RunDocument[\"completedAt\"]) {\n const runDocument: RunDocument = Object.freeze({ runId: run.runId, experimentId: run.experimentId, context: run.context, startedAt: run.startedAt, completedAt, expectedSlots: run.expectedSlots });\n const recordEncoded = encodeRecordDocument(run.record), runEncoded = encodeRunDocument(runDocument);\n if (Result.isFailure(recordEncoded) || Result.isFailure(runEncoded))\n throw new Error(\"invalid run core\");\n const recordCore = encodeCore(recordEncoded.success), runCore = encodeCore(runEncoded.success);\n if (recordCore === undefined || runCore === undefined)\n throw new Error(\"invalid run core\");\n const slots = run.expectedSlots.map((slot, ordinal) => { const core = encodeCore(slot)!; return Object.freeze({ slotId: slot.slotId, ordinal, coreBytes: core.bytes, coreDigest: core.digest }); });\n const attempts = [...run.attempts.values()].filter((attempt) => attempt.state === \"completed\").sort((a, b) => compareCanonicalIdentity(a.attemptId, b.attemptId)).map((attempt) => { const slot = run.expectedBySlot.get(attempt.slotId)!; const encoded = encodeAttemptDocument(Object.freeze({ attemptId: attempt.attemptId, originRunId: run.runId, slotId: attempt.slotId, evalId: slot.evalId, executionIdentityDigest: slot.executionIdentityDigest, outcome: attempt.outcome! })); if (Result.isFailure(encoded))\n throw new Error(\"invalid attempt\"); const core = encodeCore(encoded.success)!; return Object.freeze({ attemptId: attempt.attemptId, attemptLocator: encodeAttemptLocator(attempt.attemptId), coreBytes: core.bytes, coreDigest: core.digest }); });\n const members = [...run.members.values()].sort((a, b) => compareCanonicalIdentity(a.slotId, b.slotId)).map((member) => { const encoded = encodeMemberDocument(member); if (Result.isFailure(encoded))\n throw new Error(\"invalid member\"); const core = encodeCore(encoded.success)!; return Object.freeze({ slotId: member.slotId, ...(member.attempt === null ? {} : { originRunId: member.attempt.originRunId, attemptId: member.attempt.attemptId }), action: member.action, coreBytes: core.bytes, coreDigest: core.digest }); });\n return Object.freeze({ runId: run.runId, writerGeneration: run.writerGeneration, startedAt: new Date(run.startedAt).toISOString(), recordCoreBytes: recordCore.bytes, recordCoreDigest: recordCore.digest, runCoreBytes: runCore.bytes, runCoreDigest: runCore.digest, slots: Object.freeze(slots), attempts: Object.freeze(attempts), members: Object.freeze(members), attachments: Object.freeze([...run.attachments.values()].map(({ metadata, ownerKind, ownerAttemptId, family, revision }) => Object.freeze({ ...metadata, ownerKind, ownerRunId: run.runId, ...(ownerAttemptId === undefined ? {} : { ownerAttemptId }), family, familyRevision: revision }))) });\n}\nfunction sealRun(run: RunRuntime, completion: RunCompletion): Effect.Effect<RecordSealReceipt, RecordWriteError> {\n return Effect.gen(function* () {\n yield* run.lock.withPermits(1)(Effect.gen(function* () { yield* assertRunOpen(run); if ([...run.attempts.values()].some(({ state }) => state !== \"completed\") || run.members.size !== run.expectedSlots.length)\n return yield* Effect.fail(coreInvalid()); run.state = \"sealing\"; }));\n const finalMetadata = buildRunMetadata(run, completion.completedAt);\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageRunFinalMetadata({ ...finalMetadata, deadlineEpochMs }));\n // Full Content/collection closure verification is read-only and does not\n // monopolize the FIFO writer ticket. The following fence is one short txn.\n const prepared = yield* sqliteEffect(() => run.client.prepareRunFinalization({ runId: run.runId, writerGeneration: run.writerGeneration, deadlineEpochMs: deadline() }));\n const finalized = yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.fenceRunFinalization({\n runId: run.runId,\n writerGeneration: run.writerGeneration,\n mutationSequence: prepared.mutationSequence,\n expectedLogicalSealIdentity: prepared.logicalSealIdentity,\n expectedSealEntryCount: prepared.sealEntryCount,\n deadlineEpochMs,\n }));\n let sealOrdinal: number | null = 0;\n while (sealOrdinal !== null) {\n const staged = yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.stageSealEntries({\n runId: run.runId,\n writerGeneration: run.writerGeneration,\n expectedLogicalSealIdentity: finalized.logicalSealIdentity,\n startOrdinal: sealOrdinal!,\n maximumRows: 256,\n deadlineEpochMs,\n }));\n sealOrdinal = staged.nextOrdinal;\n }\n yield* withWriteAdmission(run.coordination, run.root, (deadlineEpochMs) => run.client.publishRunSeal({ runId: run.runId, writerGeneration: run.writerGeneration, expectedLogicalSealIdentity: finalized.logicalSealIdentity, deadlineEpochMs }));\n run.state = \"sealed\";\n if (run.handle !== undefined)\n runSessions.delete(run.handle);\n return Object.freeze({ runId: run.runId, state: \"sealed\" as const });\n }).pipe(Effect.tapError((error) => Effect.sync(() => poison(run, error))));\n}\nfunction makeRunSession(run: RunRuntime, referenceOnly: boolean): RunWriteSession | ReferenceRunWriteSession {\n const writeDefinition = (definition: unknown, value: unknown) => { const persistence = resolvePersistence(run.catalog, definition, \"run\"); return Result.isFailure(persistence) ? Effect.fail(persistence.failure) : writeAttachment({ run, owner: \"run\", persistence: persistence.success, value }); };\n const record = Object.freeze({ write<Value, Error, Requirements>(command: RecordWriteCommand<\"run\", Value, Error, Requirements>) { const payload = recordWriteCommandPayload(command, \"run\"); return payload === undefined ? Effect.fail(recordAppendCommandInvalid()) : writeDefinition(payload.definition, payload.input); } }) as RunWriteSession[\"record\"];\n const records: OwnerRecordsWriter<\"run\"> = Object.freeze({ write: writeDefinition as OwnerRecordsWriter<\"run\">[\"write\"] });\n let session: RunWriteSession | ReferenceRunWriteSession;\n const common = { runId: run.runId, [runWriteSessionBrand]: () => undefined, referenceAttempt: (input: Parameters<RunWriteSession[\"referenceAttempt\"]>[0]) => referenceAttempt(run, input), recordAcceptedMembership: (input: Parameters<RunWriteSession[\"recordAcceptedMembership\"]>[0]) => referenceAttempt(run, { ...input, action: \"accepted\" }), recordTerminalMember: (input: Parameters<RunWriteSession[\"recordTerminalMember\"]>[0]) => terminalMember(run, input.slotId, input.action, input.absenceReason), attach: writeDefinition as RunWriteSession[\"attach\"], record, records, seal: (completion: RunCompletion) => runSessions.get(session) === run ? sealRun(run, completion) : Effect.fail(recordWriterClosed()) };\n session = Object.freeze(referenceOnly ? common : { ...common, createAttempt: ({ slotId }: {\n readonly slotId: SlotId;\n }) => createAttempt(run, slotId) }) as RunWriteSession | ReferenceRunWriteSession;\n run.handle = session;\n runSessions.set(session, run);\n return session;\n}\nfunction deterministicRecord(root: RecordRoot): RecordDocument | undefined {\n const path = storageRoot(root);\n if (path === undefined)\n return undefined;\n const format = Schema.decodeUnknownResult(RecordFormatSchema)(RECORD_FORMAT);\n const id = Schema.decodeUnknownResult(RecordIdSchema)(`record-${createHash(\"sha256\").update(path).digest(\"hex\")}`);\n return Result.isFailure(format) || Result.isFailure(id) ? undefined : Object.freeze({ format: format.success, recordId: id.success });\n}\nfunction openNewRuntime(request: CreateRunRequest, catalog: RecordAttachmentCatalog, referenceOnly: boolean): Effect.Effect<RunWriteSession | ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordEntropy | RecordCoordination | ProjectStateDatabase> {\n return Effect.gen(function* () {\n const expectedIssues = validateExpectedSlots(request.expectedSlots), context = canonicalizeRunContext(request.context);\n if (expectedIssues.length > 0 || Result.isFailure(context) || context.success.experimentId !== request.experimentId)\n return yield* Effect.fail(new RecordCoreInvalid({ code: \"record-core-invalid\", issues: nonEmptyRecordIssues(expectedIssues) ?? invalidIssues([\"context\"]) }));\n const rootPath = storageRoot(request.root);\n if (rootPath === undefined)\n return yield* Effect.fail(coreInvalid());\n const coordination = yield* RecordCoordination, entropy = yield* RecordEntropy;\n const runId = yield* mintId(entropy, RunIdSchema);\n const writerGeneration = request.writerGeneration ?? (yield* entropy.uuid);\n const projectState = yield* ProjectStateDatabase;\n const client = (yield* projectState.bind(rootPath)).record;\n const recordBytes = yield* sqliteEffect(() => client.readRecordCore());\n const storedRecord = recordBytes === undefined ? undefined : parseJson(recordBytes);\n const decodedRecord = storedRecord === undefined ? undefined : decodeRecordDocument(storedRecord);\n if (recordBytes !== undefined && (decodedRecord === undefined || Result.isFailure(decodedRecord)))\n return yield* Effect.fail(coreInvalid());\n const record = decodedRecord !== undefined && Result.isSuccess(decodedRecord) ? decodedRecord.success : deterministicRecord(request.root);\n if (record === undefined)\n return yield* Effect.fail(coreInvalid());\n yield* withWriteAdmission(coordination, request.root, (deadlineEpochMs) => client.beginRun({ runId, writerGeneration, startedAt: new Date(request.startedAt).toISOString(), deadlineEpochMs }));\n const lock = yield* Semaphore.make(1), queue = yield* Queue.bounded<AppendCommand>(MAILBOX_COMMANDS);\n const run: RunRuntime = { root: request.root, client, coordination, entropy, catalog, record, writerGeneration, runId, experimentId: request.experimentId, context: context.success, startedAt: request.startedAt, expectedSlots: Object.freeze([...request.expectedSlots]), expectedBySlot: new Map(request.expectedSlots.map((slot) => [slot.slotId, slot])), lock, queue, attempts: new Map(), members: new Map(), reservations: new Set(), families: new Set(), attachments: new Map(), state: \"open\" };\n yield* Effect.forkScoped(collectionWorker(run));\n yield* Effect.addFinalizer(() => Effect.sync(() => { if (run.state !== \"sealed\")\n run.state = \"failed\"; if (run.handle !== undefined)\n runSessions.delete(run.handle); for (const attempt of run.attempts.values())\n if (attempt.handle !== undefined)\n attemptSessions.delete(attempt.handle); }));\n return makeRunSession(run, referenceOnly);\n });\n}\nfunction decodeCore(core: SealedRunCore): {\n readonly record: RecordDocument;\n readonly run: RunDocument;\n readonly attempts: readonly AttemptDocument[];\n readonly members: readonly MemberDocument[];\n} | undefined {\n const rj = parseJson(core.recordCoreBytes), uj = parseJson(core.runCoreBytes);\n const record = rj === undefined ? undefined : decodeRecordDocument(rj), run = uj === undefined ? undefined : decodeRunDocument(uj);\n if (record === undefined || run === undefined || Result.isFailure(record) || Result.isFailure(run) || run.success.runId !== core.runId)\n return undefined;\n const attempts: AttemptDocument[] = [], members: MemberDocument[] = [];\n for (const value of core.attempts) {\n const json = parseJson(value.coreBytes), decoded = json === undefined ? undefined : decodeAttemptDocument(json);\n if (decoded === undefined || Result.isFailure(decoded))\n return undefined;\n attempts.push(decoded.success);\n }\n for (const value of core.members) {\n const json = parseJson(value.coreBytes), decoded = json === undefined ? undefined : decodeMemberDocument(json);\n if (decoded === undefined || Result.isFailure(decoded))\n return undefined;\n members.push(decoded.success);\n }\n return Object.freeze({ record: record.success, run: run.success, attempts: Object.freeze(attempts), members: Object.freeze(members) });\n}\nfunction readCore(runtime: ReaderRuntime, runId: RunId): Effect.Effect<SealedRunCore | undefined, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return Effect.succeed(runtime.coreCache.get(runId));\n}\nfunction runRef(runtime: ReaderRuntime, runId: RunId): SelectedRunRef {\n const old = runtime.runRefs.get(runId);\n if (old !== undefined)\n return old;\n const ref: SelectedRunRef = Object.freeze({ runId, [selectedRunRefBrand]: () => undefined });\n runtime.runRefs.set(runId, ref);\n runtime.runs.set(ref, runId);\n return ref;\n}\nfunction attemptRef(runtime: ReaderRuntime, runId: RunId, attemptId: AttemptId, publicationIdentity?: SelectedAttemptRef[\"publicationIdentity\"]): SelectedAttemptRef {\n const key = hashCanonicalTuple(\"niceeval.record.attempt-ref/v1\", [runId, attemptId]), old = runtime.attemptRefs.get(key);\n if (old !== undefined)\n return old;\n const ref: SelectedAttemptRef = Object.freeze({ originRunId: runId, attemptId, ...(publicationIdentity === undefined ? {} : { publicationIdentity }), [selectedAttemptRefBrand]: () => undefined });\n runtime.attemptRefs.set(key, ref);\n runtime.attempts.set(ref, { runId, attemptId });\n selectedAttemptCapabilities.set(ref, { root: runtime.root, lifecycle: runtime.lifecycle });\n return ref;\n}\nfunction ownerRef<Owner extends \"run\" | \"attempt\">(runtime: ReaderRuntime, owner: Extract<OwnerRuntime, {\n readonly kind: Owner;\n}>): SelectedOwnerRef<Owner> { const ref: SelectedOwnerRef<Owner> = Object.freeze({ [selectedOwnerRefBrand]: () => undefined }); runtime.owners.set(ref, owner); return ref; }\nfunction readRun(runtime: ReaderRuntime, ref: SelectedRunRef): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const runId = runtime.runs.get(ref);\n if (runId === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.flatMap(readCore(runtime, runId), (core): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> => {\n if (core === undefined)\n return Effect.succeed(Object.freeze({ state: \"missing\" }));\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"core-invalid\" }));\n return Effect.succeed(Object.freeze({ state: \"available\", value: Object.freeze({ ref, owner: ownerRef(runtime, { kind: \"run\", runId }), document: decoded.run, ...(core.createdRevision === undefined ? {} : { createdRevision: core.createdRevision }), members: Object.freeze(decoded.members.map((document) => Object.freeze({ document, ...(core.members.find((member) => member.slotId === document.slotId)?.bindingRevision === undefined ? {} : { bindingRevision: core.members.find((member) => member.slotId === document.slotId)!.bindingRevision! }), attempt: document.attempt === null ? null : attemptRef(runtime, document.attempt.originRunId, document.attempt.attemptId, core.members.find((member) => member.slotId === document.slotId)?.publicationIdentity) }))) }) }));\n });\n}\nfunction readAttempt(runtime: ReaderRuntime, ref: SelectedAttemptRef): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const location = runtime.attempts.get(ref);\n if (location === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.flatMap(readCore(runtime, location.runId), (core): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> => {\n if (core === undefined)\n return Effect.succeed(Object.freeze({ state: \"missing\" }));\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId: location.runId, reason: \"core-invalid\" }));\n const document = decoded.attempts.find(({ attemptId }) => attemptId === location.attemptId);\n if (document === undefined)\n return Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId: location.runId, reason: \"publication-closure-invalid\" }));\n return Effect.succeed(Object.freeze({ state: \"available\", value: Object.freeze({ ref, owner: ownerRef(runtime, { kind: \"attempt\", runId: location.runId, attemptId: location.attemptId }), document, origin: Object.freeze({ owner: ownerRef(runtime, { kind: \"run\", runId: location.runId }), runId: location.runId, experimentId: decoded.run.experimentId, startedAt: decoded.run.startedAt, context: decoded.run.context }) }) }));\n });\n}\nfunction findAttachment(core: SealedRunCore, owner: OwnerRuntime, family: string): SealedAttachmentMetadata | undefined { return core.attachments.find((a) => a.family === family && a.ownerKind === owner.kind && (owner.kind === \"run\" || a.ownerAttemptId === owner.attemptId)); }\nfunction contentStream(runtime: ReaderRuntime, handle: RecordContentHandle): Stream.Stream<Uint8Array, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Stream.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const metadata = runtime.content.get(handle);\n if (metadata === undefined)\n return Stream.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Stream.unwrap(Effect.suspend(() => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const hash = createHash(\"sha256\");\n type ContentReadState = {\n readonly after: number;\n readonly ordinal: number;\n readonly byteLength: number;\n };\n return Effect.succeed(Stream.paginate<ContentReadState, Uint8Array, RecordReaderReadError>({ after: -1, ordinal: 0, byteLength: 0 }, (state): Effect.Effect<readonly [\n readonly Uint8Array[],\n Option.Option<ContentReadState>\n ], RecordReaderReadError> => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return sqliteEffect(() => runtime.client.readContentChunkPage(metadata.contentId, state.after, CONTENT_READ_PAGE_ROWS)).pipe(Effect.flatMap((page): Effect.Effect<readonly [\n readonly Uint8Array[],\n Option.Option<ContentReadState>\n ], RecordReaderReadError> => {\n if (page.chunks.length === 0) {\n return state.ordinal === metadata.chunkCount && state.byteLength === metadata.byteLength && hash.digest(\"hex\") === metadata.digest\n ? Effect.succeed([[], Option.none()] as const)\n : Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-content\", \"Content closure does not match sealed metadata\"));\n }\n let ordinal = state.ordinal;\n let byteLength = state.byteLength;\n const output: Uint8Array[] = [];\n for (const chunk of page.chunks) {\n if (chunk.ordinal !== ordinal || digest(chunk.bytes) !== chunk.chunkDigest)\n return Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-content\", \"Content chunk inventory is invalid\"));\n const bytes = chunk.bytes;\n hash.update(bytes);\n byteLength += bytes.byteLength;\n ordinal += 1;\n output.push(bytes);\n }\n const after = page.chunks[page.chunks.length - 1]!.ordinal;\n return Effect.succeed([output, Option.some({ after, ordinal, byteLength })] as const);\n }));\n }));\n }));\n}\nfunction contentReader(runtime: ReaderRuntime): RecordAttachmentContentReader {\n const byteLength = (handle: RecordContentHandle): Effect.Effect<number, RecordReaderReadError> => { if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" })); const metadata = runtime.content.get(handle); return metadata === undefined ? Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" })) : Effect.succeed(metadata.byteLength); };\n const bytes = (handle: RecordContentHandle): Effect.Effect<Uint8Array, RecordReaderReadError> => Effect.flatMap(byteLength(handle), (size) => size > WHOLE_VALUE_MAX_BYTES ? Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: WHOLE_VALUE_MAX_BYTES, observedAtLeast: size, path: \"content\" })) : Stream.runCollect(contentStream(runtime, handle)).pipe(Effect.map((chunks) => { const output = new Uint8Array(size); let offset = 0; for (const chunk of chunks) {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n } return output; })));\n return Object.freeze({ byteLength, bytes, text: (handle: RecordTextContentHandle) => !isRecordTextContentHandle(handle) ? Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" })) : Effect.flatMap(bytes(handle), (value) => Effect.try({ try: () => new TextDecoder(\"utf-8\", { fatal: true }).decode(value), catch: () => new RecordHandleInvalid({ code: \"record-handle-invalid\" }) })), stream: (handle: RecordContentHandle) => contentStream(runtime, handle) });\n}\nfunction hydrateAttachment(runtime: ReaderRuntime, attachment: SealedAttachmentMetadata, persistence: AnyPersistence): RecordAttachmentRead<unknown> {\n if (attachment.familyRevision !== persistence.revision)\n return Object.freeze({ state: \"unsupported\", family: attachment.family, revision: attachment.familyRevision });\n const payload = parseJson(attachment.canonicalBytes);\n if (payload === undefined)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"attachment\"]) });\n if (digest(attachment.canonicalBytes) !== attachment.canonicalDigest || digest(attachment.logicalInventoryBytes) !== attachment.inventoryDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"attachment\", \"digest\"]) });\n const byHandle = new Map(attachment.contents.map((content) => [content.logicalHandle, content])), used = new Set<string>();\n const hydrated = hydrateRecordAttachmentCurrent(persistence.attachment, payload, { content: (token, declaration) => { const logicalHandle = exactMarker(token, \"$niceeval.record.content\"); if (logicalHandle === undefined && !hasOwnMarker(token, \"$niceeval.record.content\"))\n return Result.succeed(undefined); const metadata = typeof logicalHandle === \"string\" ? byHandle.get(logicalHandle) : undefined; if (metadata === undefined || declaration.maximumBytes !== undefined && metadata.byteLength > declaration.maximumBytes)\n return Result.fail({ code: \"current-content-bind-failed\" as const }); const handle = mintRecordContentHandle(declaration.kind); runtime.content.set(handle, metadata); used.add(logicalHandle as string); return Result.succeed(handle); }, reference: (token, declaration) => { const marker = exactMarker(token, \"$niceeval.record.reference\"); if (marker === undefined && !hasOwnMarker(token, \"$niceeval.record.reference\"))\n return Result.succeed(undefined); if (typeof marker !== \"object\" || marker === null || Array.isArray(marker))\n return Result.fail({ code: \"current-reference-bind-failed\" as const }); const value = marker as Record<string, unknown>; if (value.owner !== declaration.definition.owner || value.family !== declaration.definition.family || !(\"value\" in value))\n return Result.fail({ code: \"current-reference-bind-failed\" as const }); return Result.succeed(mintRecordAttachmentReference(RecordAttachmentReference.to(declaration.definition, declaration.valueSchema), value.value)); } });\n if (Result.isFailure(hydrated) || used.size !== attachment.contents.length)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"closure\"]) });\n const closure = enumerateRecordAttachmentClosure(persistence.attachment, hydrated.success);\n if (Result.isFailure(closure))\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"closure\"]) });\n const logicalReferences = new Map<string, {\n readonly owner: RecordAttachmentOwner;\n readonly family: string;\n }>();\n for (const reference of closure.success.references) {\n const wire = recordAttachmentReferenceWire(reference);\n if (wire === undefined)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\"]) });\n logicalReferences.set(hashCanonicalTuple(\"niceeval.record.reference-family/v1\", [wire.owner, wire.family]), Object.freeze({ owner: wire.owner, family: wire.family }));\n }\n const ordered = [...logicalReferences.values()].sort((left, right) => compareCanonicalCodeUnits(left.owner, right.owner) || compareCanonicalCodeUnits(left.family, right.family));\n if (ordered.length !== attachment.references.length)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\", \"count\"]) });\n for (let ordinal = 0; ordinal < ordered.length; ordinal += 1) {\n const logical = ordered[ordinal]!, physical = attachment.references[ordinal]!, canonical = canonicalBytes(logical);\n if (canonical === undefined || physical.ordinal !== ordinal || physical.owner !== logical.owner || physical.family !== logical.family || !bytesEqual(physical.canonicalBytes, canonical) || digest(physical.canonicalBytes) !== physical.referenceDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"reference\", String(ordinal)]) });\n }\n return Object.freeze({ state: \"available\", value: hydrated.success, content: contentReader(runtime) });\n}\nfunction readFamily(runtime: ReaderRuntime, ownerValue: SelectedOwnerRef, definition: unknown): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const owner = runtime.owners.get(ownerValue);\n if (owner === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const resolved = recordDefinitionAttachment(definition) ?? resolveRecordAttachmentDefinition(definition);\n if (resolved === undefined || resolved.owner !== owner.kind)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const persistence = runtime.catalog.persistence(resolved);\n if (persistence === undefined)\n return Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: owner.kind, family: resolved.family, revision: 1 }));\n return Effect.map(readCore(runtime, owner.runId), (core) => { if (core === undefined)\n return Object.freeze({ state: \"not-recorded\" as const }); const attachment = findAttachment(core, owner, resolved.family); return attachment === undefined ? Object.freeze({ state: \"not-recorded\" as const }) : hydrateAttachment(runtime, attachment, persistence as AnyPersistence); });\n}\nfunction collectionStream(runtime: ReaderRuntime, attachment: SealedAttachmentMetadata, authoring: AttemptRecordCollectionRuntime, expectedDigest: string): Stream.Stream<unknown, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Stream.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return Stream.unwrap(Effect.suspend(() => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const hash = createHash(\"sha256\");\n type CollectionReadState = {\n readonly after: number;\n readonly ordinal: number;\n readonly byteLength: number;\n };\n return Effect.succeed(Stream.paginate<CollectionReadState, unknown, RecordReaderReadError>({ after: -1, ordinal: 0, byteLength: 0 }, (state): Effect.Effect<readonly [\n readonly unknown[],\n Option.Option<CollectionReadState>\n ], RecordReaderReadError> => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n return sqliteEffect(() => runtime.client.readCollectionItemPage(attachment.attachmentId, state.after, RECORD_SQLITE_MAX_PAGE_ROWS)).pipe(Effect.flatMap((page): Effect.Effect<readonly [\n readonly unknown[],\n Option.Option<CollectionReadState>\n ], RecordReaderReadError> => {\n if (page.items.length === 0) {\n return state.ordinal === attachment.collectionItemCount && state.byteLength === attachment.collectionItemByteLength && hash.digest(\"hex\") === expectedDigest\n ? Effect.succeed([[], Option.none()] as const)\n : Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-collection\", \"Collection closure does not match sealed metadata\"));\n }\n let ordinal = state.ordinal;\n let byteLength = state.byteLength;\n const output: unknown[] = [];\n for (const item of page.items) {\n const value = parseJson(item.canonicalBytes), canonicalDigest = digest(item.canonicalBytes);\n if (item.ordinal !== ordinal || canonicalDigest !== item.canonicalDigest || item.logicalIdentity !== collectionItemLogicalIdentity(ordinal, canonicalDigest) || value === undefined)\n return Effect.fail(new SqliteRecordError(\"record-content-invalid\", \"read-collection\", \"Collection item inventory is invalid\"));\n if (!isRecordAttachmentSchema(authoring.item))\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const decoded = Schema.decodeUnknownResult(authoring.item)(value);\n if (Result.isFailure(decoded))\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n hash.update(item.canonicalBytes).update(\"\\n\");\n byteLength += item.canonicalBytes.byteLength;\n ordinal += 1;\n output.push(decoded.success);\n }\n const after = page.items[page.items.length - 1]!.ordinal;\n return Effect.succeed([output, Option.some({ after, ordinal, byteLength })] as const);\n }));\n }));\n }));\n}\ntype OpenCollectionResult = {\n readonly state: \"not-recorded\";\n} | {\n readonly state: \"unsupported\";\n readonly family: string;\n readonly revision: number;\n} | {\n readonly state: \"invalid\";\n readonly issues: NonEmptyRecordIssues;\n} | {\n readonly state: \"available\";\n readonly collection: unknown;\n readonly logicalIdentity: string;\n readonly logicalSealIdentity: string;\n readonly count: number;\n readonly digest: string;\n readonly canonicalBytes: number;\n readonly items: Stream.Stream<unknown, RecordReaderReadError>;\n};\ntype PublicOpenCollectionResult = Exclude<OpenCollectionResult, {\n readonly state: \"available\";\n}> | Omit<Extract<OpenCollectionResult, {\n readonly state: \"available\";\n}>, \"canonicalBytes\">;\nfunction publicOpenCollectionResult(opened: OpenCollectionResult): PublicOpenCollectionResult {\n if (opened.state !== \"available\")\n return opened;\n return Object.freeze({\n state: \"available\",\n collection: opened.collection,\n logicalIdentity: opened.logicalIdentity,\n logicalSealIdentity: opened.logicalSealIdentity,\n count: opened.count,\n digest: opened.digest,\n items: opened.items,\n });\n}\nfunction openCollection(runtime: ReaderRuntime, ownerValue: SelectedOwnerRef<\"attempt\">, definition: unknown): Effect.Effect<OpenCollectionResult, RecordReaderReadError> {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const owner = runtime.owners.get(ownerValue), authoring = attemptRecordCollectionRuntime(definition);\n if (owner === undefined || owner.kind !== \"attempt\" || authoring === undefined)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n return Effect.map(readCore(runtime, owner.runId), (core) => {\n if (core === undefined)\n return Object.freeze({ state: \"not-recorded\" });\n const attachment = findAttachment(core, owner, authoring.attachment.family);\n if (attachment === undefined)\n return Object.freeze({ state: \"not-recorded\" });\n if (attachment.familyRevision !== authoring.persistence.revision)\n return Object.freeze({ state: \"unsupported\", family: attachment.family, revision: attachment.familyRevision });\n if (digest(attachment.canonicalBytes) !== attachment.canonicalDigest || digest(attachment.logicalInventoryBytes) !== attachment.inventoryDigest)\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"collection\", \"digest\"]) });\n const payload = parseJson(attachment.canonicalBytes) as {\n readonly collection?: unknown;\n } | undefined;\n const inventory = parseJson(attachment.logicalInventoryBytes) as {\n readonly collection?: {\n readonly count?: unknown;\n readonly byteLength?: unknown;\n readonly digest?: unknown;\n };\n } | undefined;\n const collection = inventory?.collection;\n if (payload?.collection === undefined || collection === undefined || collection.count !== attachment.collectionItemCount || collection.byteLength !== attachment.collectionItemByteLength || typeof collection.digest !== \"string\")\n return Object.freeze({ state: \"invalid\", issues: invalidIssues([\"collection\"]) });\n return Object.freeze({ state: \"available\", collection: payload.collection, logicalIdentity: attachment.logicalIdentity, logicalSealIdentity: core.logicalSealIdentity, count: attachment.collectionItemCount, digest: collection.digest, canonicalBytes: attachment.collectionItemByteLength, items: collectionStream(runtime, attachment, authoring, collection.digest) });\n });\n}\nfunction readCollectionWhole(runtime: ReaderRuntime, owner: SelectedOwnerRef<\"attempt\">, definition: unknown): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> {\n return Effect.flatMap(openCollection(runtime, owner, definition), (opened): Effect.Effect<RecordAttachmentRead<unknown>, RecordReaderReadError> => {\n if (opened.state !== \"available\")\n return Effect.succeed(opened);\n if (opened.count > COLLECTION_READ_MAX_ROWS || opened.canonicalBytes > WHOLE_VALUE_MAX_BYTES)\n return Effect.fail(new RecordResourceLimitExceeded({ code: \"record-resource-limit-exceeded\", resource: \"file-bytes\", maximum: WHOLE_VALUE_MAX_BYTES, observedAtLeast: opened.canonicalBytes, path: \"collection\" }));\n return Stream.runCollect(opened.items).pipe(Effect.map((items): RecordAttachmentRead<unknown> => Object.freeze({ state: \"available\", value: Object.freeze({ collection: opened.collection, items: Object.freeze(items) }), content: contentReader(runtime) })));\n });\n}\nfunction makeReadSession(runtime: ReaderRuntime): RecordReadSession {\n const listRunResources: RecordReadSession[\"listRunResources\"] = (input = {}) => Effect.suspend((): Effect.Effect<RunResourcePage, RecordReaderReadError> => {\n if (runtime.lifecycle.closed)\n return Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const pageSize = input.pageSize ?? 100;\n if (!Number.isSafeInteger(pageSize) || pageSize < 1 || pageSize > 256)\n return Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const candidates = runtime.snapshot.resources.filter((run) => run.runId > (input.afterRunId ?? \"\") && (input.invocationId === undefined || run.invocationId === input.invocationId));\n const runs = Object.freeze(candidates.slice(0, pageSize));\n return Effect.succeed(Object.freeze({ cutoff: runtime.snapshot.cutoff, runs, nextAfterRunId: candidates.length > pageSize ? runs.at(-1)!.runId : null }));\n });\n const selectRuns: RecordReadSession[\"selectRuns\"] = (request?: RecordSelectionRequest) => Effect.gen(function* () {\n if (runtime.lifecycle.closed)\n return yield* Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n const requested = request?.runIds === undefined ? undefined : new Set(request.runIds);\n const cores: {\n readonly core: SealedRunCore;\n readonly decoded: NonNullable<ReturnType<typeof decodeCore>>;\n }[] = [];\n let after = \"\";\n while (true) {\n const page = runtime.snapshot.summaries.filter((summary) => summary.runId > after).slice(0, 100);\n if (page.length === 0)\n break;\n for (const summary of page) {\n after = summary.runId;\n if (requested !== undefined && !requested.has(summary.runId as RunId))\n continue;\n if (summary.logicalSealIdentity.startsWith(\"published:\") &&\n request?.includePublishedActive !== true && requested === undefined)\n continue;\n const runId = summary.runId as RunId;\n const core = yield* readCore(runtime, runId);\n if (core === undefined)\n continue;\n const decoded = decodeCore(core);\n if (decoded === undefined)\n return yield* Effect.fail(new RecordIntegrityFailure({ code: \"record-integrity-failure\", runId, reason: \"core-invalid\" }));\n cores.push({ core, decoded });\n }\n if (page.length < 100)\n break;\n }\n const problems: RecordSelectionProblem[] = [];\n if (requested !== undefined)\n for (const id of requested)\n if (!cores.some(({ core }) => core.runId === id))\n problems.push(Object.freeze({ code: \"selection-run-missing\", runId: id }));\n const runRefs = cores.map(({ core }) => runRef(runtime, core.runId as RunId));\n const runFacts: SelectedRunFacts[] = cores.map(({ core, decoded }) => Object.freeze({ run: runRef(runtime, core.runId as RunId), experimentId: decoded.run.experimentId, startedAt: decoded.run.startedAt, completedAt: decoded.run.completedAt, expectedSlots: decoded.run.expectedSlots }));\n for (const { core, decoded } of cores) {\n for (const attempt of decoded.attempts) {\n attemptRef(runtime, core.runId as RunId, attempt.attemptId, core.attempts.find((persisted) => persisted.attemptId === attempt.attemptId)?.publicationIdentity);\n }\n }\n const selection: RecordSelection = Object.freeze({ runRefs: Object.freeze(runRefs), runFacts: Object.freeze(runFacts), expectedSlots: Object.freeze(runFacts.flatMap(({ run, experimentId, expectedSlots }) => expectedSlots.map((slot) => Object.freeze({ run, experimentId, slot })))), problems: Object.freeze(problems), warnings: Object.freeze([]) as readonly RecordWarning[] });\n runtime.selections.add(selection);\n return selection;\n });\n const readRunEntry: RecordReadSession[\"readRun\"] = (ref: SelectedRunRef) => readRun(runtime, ref);\n const readAttemptEntry: RecordReadSession[\"readAttempt\"] = (ref: SelectedAttemptRef) => readAttempt(runtime, ref);\n const openCollectionEntry = ((owner: SelectedOwnerRef<\"attempt\">, definition: unknown) => Effect.map(openCollection(runtime, owner, definition), publicOpenCollectionResult)) as RecordReadSession[\"openCollection\"];\n const requireComplete: RecordReadSession[\"requireComplete\"] = (selection: RecordSelection) => Effect.gen(function* () {\n if (runtime.lifecycle.closed)\n return yield* Effect.fail(new RecordReaderClosed({ code: \"record-reader-closed\" }));\n if (!runtime.selections.has(selection))\n return yield* Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n if (selection.problems.length > 0)\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"selection-invalid\" }));\n for (const ref of selection.runRefs) {\n const runId = runtime.runs.get(ref);\n if (runId === undefined)\n return yield* Effect.fail(new RecordHandleInvalid({ code: \"record-handle-invalid\" }));\n const core = yield* readCore(runtime, runId);\n if (core === undefined)\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"inventory-invalid\" }));\n const attemptIds = new Set(core.attempts.map(({ attemptId }) => attemptId));\n for (const attachment of core.attachments) {\n if (attachment.ownerRunId !== core.runId || attachment.ownerKind === \"attempt\" && (attachment.ownerAttemptId === undefined || !attemptIds.has(attachment.ownerAttemptId)))\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"inventory-invalid\", family: attachment.family }));\n const persistence = runtime.catalog.get(attachment.ownerKind, attachment.family);\n if (persistence === undefined)\n return yield* Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: attachment.ownerKind, family: attachment.family, revision: attachment.familyRevision }));\n for (const reference of attachment.references)\n if (runtime.catalog.get(reference.owner, reference.family) === undefined)\n return yield* Effect.fail(new FamilyDefinitionRequired({ code: \"family-definition-required\", owner: reference.owner, family: reference.family, revision: 1 }));\n const hydrated = hydrateAttachment(runtime, attachment, persistence as AnyPersistence);\n if (hydrated.state !== \"available\")\n return yield* Effect.fail(new RecordSealIncomplete({ code: \"record-seal-incomplete\", reason: \"attachment-invalid\", family: attachment.family }));\n }\n }\n return Object.freeze({ selection, attachments: runtime.catalog }) satisfies RecordCompleteView;\n });\n return Object.freeze({\n listRunResources,\n selectRuns,\n readRun: readRunEntry,\n readAttempt: readAttemptEntry,\n read: ((owner: SelectedOwnerRef, definition: unknown) => attemptRecordCollectionRuntime(definition) !== undefined ? readCollectionWhole(runtime, owner as SelectedOwnerRef<\"attempt\">, definition) : readFamily(runtime, owner, definition)) as RecordReadSession[\"read\"],\n openCollection: openCollectionEntry,\n requireComplete,\n });\n}\nfunction openRead(root: RecordRoot, catalog: RecordAttachmentCatalog): Effect.Effect<RecordReadSession, RecordReaderOpenError, import(\"effect\").Scope.Scope | ProjectStateDatabase> {\n return Effect.gen(function* () {\n const rootPath = storageRoot(root);\n if (rootPath === undefined)\n return yield* Effect.fail(new RecordBootstrapInvalid({ code: \"record-bootstrap-invalid\", reason: \"record-document-invalid\" }));\n const projectState = yield* ProjectStateDatabase;\n const client = (yield* projectState.bind(rootPath)).record;\n const lifecycle: ReaderLifecycle = { closed: false };\n const snapshot = yield* captureReaderSnapshot(rootPath);\n const runtime: ReaderRuntime = { root, client, catalog, lifecycle, snapshot, runs: new WeakMap(), attempts: new WeakMap(), owners: new WeakMap(), selections: new WeakSet(), coreCache: new Map(snapshot.cores), runRefs: new Map(), attemptRefs: new Map(), content: new WeakMap() };\n yield* Effect.addFinalizer(() => Effect.sync(() => { lifecycle.closed = true; }));\n return makeReadSession(runtime);\n });\n}\nfunction closeMaintenanceFailure(error: {\n readonly code?: string;\n}): RecordMaintenanceOperationFailure { return Object.freeze({ _tag: \"RecordMaintenanceOperationFailed\", code: error.code ?? \"record-maintenance-failed\" }); }\nconst operationMigrationPlans = new WeakMap<object, RecordMigrationPlan>();\nfunction inspectMaintenanceDatabase(root: RecordRoot): Effect.Effect<ProjectRecordDatabaseInspection, SqliteRecordError> {\n const rootPath = storageRoot(root);\n if (rootPath === undefined) {\n return Effect.fail(new SqliteRecordError(\"record-database-invalid\", \"locate\", \"Record root is invalid\"));\n }\n return Effect.try({\n try: () => inspectProjectRecordDatabase(recordSqlitePath(rootPath)),\n catch: (cause) => cause instanceof SqliteRecordError\n ? cause\n : new SqliteRecordError(\"record-sqlite-error\", \"inspect-maintenance\", \"Record maintenance inspection failed\", { cause }),\n });\n}\nfunction publicFormatInspection(inspection: ProjectRecordDatabaseInspection) {\n switch (inspection.state) {\n case \"current\":\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n case \"unsupported\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: inspection.format });\n case \"foreign\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: \"foreign-sqlite\" });\n }\n}\nfunction migrationPlan(root: RecordRoot, inspection: ProjectRecordDatabaseInspection) {\n switch (inspection.state) {\n case \"current\":\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n case \"unsupported\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: inspection.format });\n case \"foreign\":\n return Object.freeze({ state: \"unsupported-format\" as const, format: \"foreign-sqlite\" });\n }\n}\nfunction maintenanceSession(root: RecordRoot): Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import(\"effect\").Scope.Scope | RecordCoordination> {\n return Effect.gen(function* () {\n const first = yield* inspectMaintenanceDatabase(root);\n if (first.state === \"current\" && first.exists) {\n const coordination = yield* RecordCoordination;\n yield* coordination.enterRecordMaintenance(root);\n }\n const inspect = () => inspectMaintenanceDatabase(root);\n return Object.freeze({\n inspect: () => Effect.map(inspect(), publicFormatInspection),\n planMigrate: () => Effect.map(inspect(), (inspection) => migrationPlan(root, inspection)),\n applyMigrate: (plan: RecordMigrationPlan) => Effect.gen(function* () {\n if (plan.state === \"already-current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n if (plan.state === \"unsupported-format\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: plan.format,\n }));\n }\n const current = yield* inspect();\n if (current.state === \"current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: current.state === \"unsupported\" ? current.format : \"foreign-sqlite\",\n }));\n }),\n });\n });\n}\nexport function makeRecordHost(input: {\n readonly records: readonly RecordContribution[];\n}): RecordHostSDK {\n const persistences = input.records.map((record) => { const runtime = recordContributionRuntime(record); if (runtime === undefined)\n throw new TypeError(\"invalid Record contribution\"); return runtime.persistence; });\n const composed = makeRecordAttachmentCatalog(persistences);\n if (Result.isFailure(composed))\n throw new TypeError(`invalid Record composition: ${composed.failure.code}`);\n const catalog = composed.success;\n const currentOpenRead: RecordHostSDK[\"current\"][\"openRead\"] = ({ root }) => openRead(root, catalog);\n const currentCreateRun: RecordHostSDK[\"current\"][\"createRun\"] = (request) => openNewRuntime(request, catalog, false) as ReturnType<RecordHostSDK[\"current\"][\"createRun\"]>;\n const currentCreateReferenceRun: RecordHostSDK[\"current\"][\"createReferenceRun\"] = (request) => openNewRuntime(request, catalog, true) as ReturnType<RecordHostSDK[\"current\"][\"createReferenceRun\"]>;\n const current: RecordHostSDK[\"current\"] = Object.freeze({ openRead: currentOpenRead, createRun: currentCreateRun, createReferenceRun: currentCreateReferenceRun });\n const normalize = (request: CreateRunRequest | {\n readonly root: RecordRoot;\n readonly core: Omit<CreateRunRequest, \"root\">;\n }): CreateRunRequest => \"core\" in request ? Object.freeze({ root: request.root, ...request.core }) : request;\n const createRunPublic: RecordHostSDK[\"createRun\"] = (request) => current.createRun(normalize(request));\n const createReferenceRunPublic: RecordHostSDK[\"createReferenceRun\"] = (request) => current.createReferenceRun(normalize(request));\n const planClean: RecordHostSDK[\"maintenance\"][\"planClean\"] = (request) => inspectIncompleteRuns(request).pipe(Effect.map((runs): RecordCleanOperationPlan => runs.length === 0 ? Object.freeze({ _tag: \"RecordCleanAlreadyClean\" }) : Object.freeze({ _tag: \"RecordCleanConfirmationRequired\", runIds: Object.freeze(runs.map(({ runId }) => runId)) })), Effect.mapError(closeMaintenanceFailure));\n const applyClean: RecordHostSDK[\"maintenance\"][\"applyClean\"] = ({ root, plan }) => cleanIncompleteRuns({ root, runIds: plan.runIds }).pipe(Effect.map((receipt): RecordCleanOperationReceipt => Object.freeze({ _tag: \"RecordCleanApplied\", ...receipt })), Effect.mapError(closeMaintenanceFailure));\n const planMigrate: RecordHostSDK[\"maintenance\"][\"planMigrate\"] = ({ root }) => Effect.scoped(Effect.flatMap(maintenanceSession(root), (session) => session.planMigrate())).pipe(Effect.map((plan): RecordMigrateOperationPlan => {\n if (plan.state === \"already-current\") {\n return Object.freeze({ _tag: \"RecordMigrationAlreadyCurrent\", format: RECORD_FORMAT });\n }\n if (plan.state === \"unsupported-format\") {\n return Object.freeze({ _tag: \"RecordMigrationUnsupported\", format: plan.format });\n }\n const operationPlan = Object.freeze({\n _tag: \"RecordMigrationReady\" as const,\n format: plan.format,\n sourceFormat: plan.sourceFormat,\n attachments: plan.attachments,\n pendingSeals: plan.pendingSeals,\n resumedSteps: plan.resumedSteps,\n });\n operationMigrationPlans.set(operationPlan, plan);\n return operationPlan;\n }), Effect.mapError(closeMaintenanceFailure));\n const applyMigrate: RecordHostSDK[\"maintenance\"][\"applyMigrate\"] = ({ root, plan }) => {\n const internal = operationMigrationPlans.get(plan);\n if (internal === undefined) {\n return Effect.fail(Object.freeze({\n _tag: \"RecordMigrationPlanStale\" as const,\n code: \"record-migration-plan-stale\" as const,\n }));\n }\n return Effect.scoped(Effect.flatMap(maintenanceSession(root), (session) => session.applyMigrate(internal))).pipe(Effect.map((receipt): RecordMigrateOperationReceipt => receipt.state === \"already-current\"\n ? Object.freeze({ _tag: \"RecordMigrationAlreadyCurrent\", format: RECORD_FORMAT })\n : Object.freeze({\n _tag: \"RecordMigrationApplied\",\n format: receipt.format,\n attachments: receipt.attachments,\n committed: receipt.committed,\n skipped: receipt.skipped,\n failed: receipt.failed,\n rebuiltSeals: receipt.rebuiltSeals,\n })), Effect.mapError(closeMaintenanceFailure));\n };\n const openMaintenance: RecordHostSDK[\"maintenance\"][\"open\"] = ({ root }) => maintenanceSession(root);\n return Object.freeze({ openRead: current.openRead, createRun: createRunPublic, createReferenceRun: createReferenceRunPublic, current, maintenance: Object.freeze({ planClean, applyClean, planMigrate, applyMigrate, open: openMaintenance }) });\n}\nexport const recordHost: RecordHostSDK = makeRecordHost({ records: (NiceEvalRecordAttachmentPersistences as readonly AnyRecordAttachmentPersistence[]).map((persistence) => recordContributionFromAttachmentPersistence(persistence)) });\n"]}