@davidorex/pi-context 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +195 -0
  3. package/dist/block-api.d.ts +328 -0
  4. package/dist/block-api.d.ts.map +1 -0
  5. package/dist/block-api.js +1167 -0
  6. package/dist/block-api.js.map +1 -0
  7. package/dist/block-validation.d.ts +33 -0
  8. package/dist/block-validation.d.ts.map +1 -0
  9. package/dist/block-validation.js +213 -0
  10. package/dist/block-validation.js.map +1 -0
  11. package/dist/context-dir.d.ts +93 -0
  12. package/dist/context-dir.d.ts.map +1 -0
  13. package/dist/context-dir.js +224 -0
  14. package/dist/context-dir.js.map +1 -0
  15. package/dist/context-sdk.d.ts +428 -0
  16. package/dist/context-sdk.d.ts.map +1 -0
  17. package/dist/context-sdk.js +1327 -0
  18. package/dist/context-sdk.js.map +1 -0
  19. package/dist/context.d.ts +497 -0
  20. package/dist/context.d.ts.map +1 -0
  21. package/dist/context.js +1060 -0
  22. package/dist/context.js.map +1 -0
  23. package/dist/dispatch-context.d.ts +112 -0
  24. package/dist/dispatch-context.d.ts.map +1 -0
  25. package/dist/dispatch-context.js +119 -0
  26. package/dist/dispatch-context.js.map +1 -0
  27. package/dist/execution-context.d.ts +138 -0
  28. package/dist/execution-context.d.ts.map +1 -0
  29. package/dist/execution-context.js +151 -0
  30. package/dist/execution-context.js.map +1 -0
  31. package/dist/index.d.ts +34 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +1655 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/lens-validator.d.ts +50 -0
  36. package/dist/lens-validator.d.ts.map +1 -0
  37. package/dist/lens-validator.js +46 -0
  38. package/dist/lens-validator.js.map +1 -0
  39. package/dist/lens-view.d.ts +75 -0
  40. package/dist/lens-view.d.ts.map +1 -0
  41. package/dist/lens-view.js +253 -0
  42. package/dist/lens-view.js.map +1 -0
  43. package/dist/rename-canonical-id.d.ts +64 -0
  44. package/dist/rename-canonical-id.d.ts.map +1 -0
  45. package/dist/rename-canonical-id.js +378 -0
  46. package/dist/rename-canonical-id.js.map +1 -0
  47. package/dist/roadmap-plan.d.ts +186 -0
  48. package/dist/roadmap-plan.d.ts.map +1 -0
  49. package/dist/roadmap-plan.js +534 -0
  50. package/dist/roadmap-plan.js.map +1 -0
  51. package/dist/samples-catalog.d.ts +48 -0
  52. package/dist/samples-catalog.d.ts.map +1 -0
  53. package/dist/samples-catalog.js +128 -0
  54. package/dist/samples-catalog.js.map +1 -0
  55. package/dist/schema-migrations.d.ts +82 -0
  56. package/dist/schema-migrations.d.ts.map +1 -0
  57. package/dist/schema-migrations.js +106 -0
  58. package/dist/schema-migrations.js.map +1 -0
  59. package/dist/schema-validator.d.ts +76 -0
  60. package/dist/schema-validator.d.ts.map +1 -0
  61. package/dist/schema-validator.js +219 -0
  62. package/dist/schema-validator.js.map +1 -0
  63. package/dist/schema-write.d.ts +122 -0
  64. package/dist/schema-write.d.ts.map +1 -0
  65. package/dist/schema-write.js +210 -0
  66. package/dist/schema-write.js.map +1 -0
  67. package/dist/status-vocab.d.ts +60 -0
  68. package/dist/status-vocab.d.ts.map +1 -0
  69. package/dist/status-vocab.js +109 -0
  70. package/dist/status-vocab.js.map +1 -0
  71. package/dist/test-helpers.d.ts +12 -0
  72. package/dist/test-helpers.d.ts.map +1 -0
  73. package/dist/test-helpers.js +28 -0
  74. package/dist/test-helpers.js.map +1 -0
  75. package/dist/topo.d.ts +19 -0
  76. package/dist/topo.d.ts.map +1 -0
  77. package/dist/topo.js +99 -0
  78. package/dist/topo.js.map +1 -0
  79. package/dist/update-check.d.ts +6 -0
  80. package/dist/update-check.d.ts.map +1 -0
  81. package/dist/update-check.js +82 -0
  82. package/dist/update-check.js.map +1 -0
  83. package/package.json +115 -0
  84. package/samples/blocks/context-contracts.json +3 -0
  85. package/samples/blocks/conventions.json +3 -0
  86. package/samples/blocks/decisions.json +3 -0
  87. package/samples/blocks/features.json +3 -0
  88. package/samples/blocks/framework-gaps.json +3 -0
  89. package/samples/blocks/issues.json +3 -0
  90. package/samples/blocks/layer-plans.json +3 -0
  91. package/samples/blocks/phase.json +3 -0
  92. package/samples/blocks/rationale.json +3 -0
  93. package/samples/blocks/requirements.json +3 -0
  94. package/samples/blocks/research.json +3 -0
  95. package/samples/blocks/spec-reviews.json +3 -0
  96. package/samples/blocks/story.json +3 -0
  97. package/samples/blocks/tasks.json +3 -0
  98. package/samples/blocks/verification.json +3 -0
  99. package/samples/conception.json +467 -0
  100. package/samples/schemas/context-contracts.schema.json +89 -0
  101. package/samples/schemas/conventions.schema.json +34 -0
  102. package/samples/schemas/decisions.schema.json +87 -0
  103. package/samples/schemas/features.schema.json +53 -0
  104. package/samples/schemas/framework-gaps.schema.json +64 -0
  105. package/samples/schemas/issues.schema.json +39 -0
  106. package/samples/schemas/layer-plans.schema.json +92 -0
  107. package/samples/schemas/phase.schema.json +118 -0
  108. package/samples/schemas/rationale.schema.json +24 -0
  109. package/samples/schemas/requirements.schema.json +34 -0
  110. package/samples/schemas/research.schema.json +134 -0
  111. package/samples/schemas/spec-reviews.schema.json +62 -0
  112. package/samples/schemas/story.schema.json +73 -0
  113. package/samples/schemas/tasks.schema.json +34 -0
  114. package/samples/schemas/verification.schema.json +37 -0
  115. package/schemas/bootstrap.schema.json +24 -0
  116. package/schemas/config.schema.json +193 -0
  117. package/schemas/layer.schema.json +9 -0
  118. package/schemas/priority.schema.json +9 -0
  119. package/schemas/relations.schema.json +31 -0
  120. package/schemas/severity.schema.json +9 -0
  121. package/schemas/source.schema.json +9 -0
  122. package/schemas/status.schema.json +9 -0
  123. package/schemas/verification-method.schema.json +9 -0
  124. package/skill-narrative.md +130 -0
  125. package/skills/pi-context/SKILL.md +684 -0
  126. package/skills/pi-context/references/bundled-resources.md +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-sdk.js","sourceRoot":"","sources":["../src/context-sdk.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAGN,wBAAwB,EAExB,UAAU,EACV,aAAa,EACb,iBAAiB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,+EAA+E;AAC/E,OAAO,EAMN,WAAW,EAEX,YAAY,EACZ,WAAW,EAMX,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,aAAa,EAKb,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,GACf,MAAM,cAAc,CAAC;AAStB,MAAM,UAAU,eAAe,CAAC,GAAW;IAC1C,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC3C,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC/C,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAmE,EAAE,CAAC;IACnF,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,SAAS;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACrF,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC7D,IAAK,IAAgC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC/F,MAAM,CAAC,uBAAuB;oBAC/B,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,4BAA4B;QAC7B,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,iFAAiF;AAEjF,yEAAyE;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,SAAS;IACT,QAAQ;IACR,cAAc;IACd,cAAc;IACd,OAAO;IACP,WAAW;IACX,QAAQ;IACR,WAAW;IACX,cAAc;IACd,SAAS;IACT,uBAAuB;IACvB,OAAO;CACE,CAAC;AAkBX;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,UAAkB;IACzD,OAAO,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAqB,EAAE,UAAkB;IAC3E,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAA4B,CAAC;QAC3F,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAqB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAqC,EAAE,CAAC;QAE5D,IAAI,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAqD,CAAC,EAAE,CAAC;gBACzG,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAmB;oBAC5B,IAAI;oBACJ,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC/B,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC1E,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,IAAiB,CAAC,CAAC,CAAC,SAAS;iBAC1E,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEtB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC1B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,2CAA2C;oBAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAA4C,CAAC;oBACnE,IAAI,KAAK,EAAE,UAAU,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;wBAC/D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACnG,MAAM,SAAS,GAAqB,EAAE,CAAC;wBACvC,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAC7C,KAAK,CAAC,UAAqD,CAC3D,EAAE,CAAC;4BACH,SAAS,CAAC,IAAI,CAAC;gCACd,IAAI,EAAE,KAAK;gCACX,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;gCAC3B,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;gCACpC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gCAC5E,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,QAAQ,CAAC,IAAiB,CAAC,CAAC,CAAC,SAAS;6BAC5E,CAAC,CAAC;wBACJ,CAAC;wBACD,cAAc,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;oBAClC,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO;YACN,IAAI,EAAE,UAAU;YAChB,KAAK;YACL,UAAU;YACV,SAAS;YACT,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;SACnF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,uDAAuD;AACvD,SAAS,WAAW,CAAC,IAA6B;IACjD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAQ,IAAI,CAAC,IAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvE,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACpD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC3C,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,SAAS;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACzC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,MAAM,MAAM,GAAyC,EAAE,CAAC;QACxD,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAA4B,CAAC;YAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACF,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,sBAAsB;QACvB,CAAC;QACD,OAAO;YACN,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;YAC5D,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,MAAM;SACN,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAgDD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC/C,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,EAAc,EAAE,MAAM,EAAE,EAAc,EAAE,CAAC;IAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClE,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3D,CAAC;IACD,MAAM,OAAO,GAAG,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC9E,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC9E,CAAC;AAqBD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,YAAY;IACZ,IAAI,UAAU,GAAG,SAAS,CAAC;IAC3B,IAAI,iBAAiB,GAAG,EAAE,CAAC;IAC3B,IAAI,CAAC;QACJ,UAAU,GAAG,QAAQ,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnF,iBAAiB,GAAG,QAAQ,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC;QACR,kCAAkC;IACnC,CAAC;IAED,iBAAiB;IACjB,IAAI,aAAa,GAAa,EAAE,CAAC;IACjC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,QAAQ,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChF,IAAI,GAAG;YAAE,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACR,oBAAoB;IACrB,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,wDAAwD;IACxD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,UAAsB,EAAE,CAAC;oBAClD,+CAA+C;oBAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACrC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;wBAClE,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;4BAChD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gCAChE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACtB,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,sDAAsD;IACvD,CAAC;IACD,8DAA8D;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,mEAAmE;IACnE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,SAAS,WAAW,CAAC,GAAW,EAAE,EAA8B;QAC/D,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACJ,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACR,OAAO;QACR,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3B,EAAE,CAAC,QAAQ,CAAC,CAAC;YACd,CAAC;QACF,CAAC;IACF,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,WAAW,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO;YAC/D,WAAW,EAAE,CAAC;YACd,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACR,qBAAqB;YACtB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,sGAAsG;IACtG,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,WAAW,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO;YAC3C,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACnE,IAAI,OAAO;oBAAE,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACR,qBAAqB;YACtB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,MAAM,cAAc,GAAiC,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC;QACJ,IAAI,QAAQ,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC;oBACJ,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAA4B,CAAC;oBAClE,MAAM,MAAM,GAAiC,EAAE,CAAC;oBAChD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;4BAAE,SAAS;wBAClC,MAAM,KAAK,GAAG,GAAgC,CAAC;wBAC/C,MAAM,UAAU,GAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;wBACzD,mDAAmD;wBACnD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;4BACnG,MAAM,QAAQ,GAA2B,EAAE,CAAC;4BAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gCAC1B,MAAM,CAAC,GAAG,MAAM,CAAE,IAAgC,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;gCACxE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;4BACtC,CAAC;4BACD,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;wBAChC,CAAC;wBACD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;oBAC1B,CAAC;oBACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;oBACxC,CAAC;gBACF,CAAC;gBAAC,MAAM,CAAC;oBACR,4BAA4B;gBAC7B,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,kBAAkB;IACnB,CAAC;IAED,oEAAoE;IACpE,2EAA2E;IAC3E,2EAA2E;IAC3E,oEAAoE;IACpE,wEAAwE;IACxE,yDAAyD;IACzD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAA2C,CAAC;QACpF,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACrC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QAChF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,mBAAmB;IACpB,CAAC;IAED,mCAAmC;IACnC,MAAM,KAAK,GAAiB;QAC3B,SAAS;QACT,WAAW;QACX,WAAW;QACX,UAAU;QACV,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE;QACpD,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM;QACnC,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM;KACrC,CAAC;IAEF,uBAAuB;IACvB,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,cAAc,CAAiC,CAAC;QAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,OAAO,CAAC,YAAyC,CAAC;YAChE,MAAM,QAAQ,GAA2B,EAAE,CAAC;YAC5C,MAAM,UAAU,GAA2B,EAAE,CAAC;YAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;gBAC3C,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;gBAC7C,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACpE,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,yBAAyB;IAC1B,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAA0B,CAAC;QAClE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAkC,CAAC;YAC1D,MAAM,QAAQ,GAA2B,EAAE,CAAC;YAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;gBAC3C,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QACjD,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,yBAAyB;IAC1B,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,CAA4B,CAAC;QACvE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,KAAK,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,yBAAyB;IAC1B,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,cAAc,CAAkC,CAAC;QAChF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,aAA0C,CAAC;YACjE,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;oBAAE,MAAM,EAAE,CAAC;qBAClC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;oBAAE,MAAM,EAAE,CAAC;YAC7C,CAAC;YACD,KAAK,CAAC,aAAa,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC/D,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,yBAAyB;IAC1B,CAAC;IAED,mBAAmB;IACnB,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC9C,KAAK,CAAC,UAAU,GAAG,WAAW,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAEjG,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,4EAA4E;IAC5E,kEAAkE;IAClE,IAAI,OAAkC,CAAC;IACvC,IAAI,CAAC;QACJ,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACJ,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACR,KAAK,GAAG,EAAE,CAAC;IACZ,CAAC;IAED,kEAAkE;IAClE,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,CAAC,IAA6B,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC;IAElG,8EAA8E;IAC9E,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO;YAAE,SAAS;QACpC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,aAAa;YAAE,SAAS;QACjD,QAAQ,CAAC,IAAI,CAAC;YACb,EAAE;YACF,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,WAAW,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;SACjF,CAAC,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,6EAA6E;IAC7E,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,WAAW,GAAG,CAAC,MAAc,EAAW,EAAE;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC;IAC7D,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,MAAc,EAAY,EAAE,CACjD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,sBAAsB,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5G,MAAM,cAAc,GAAG,CAAC,MAAc,EAAY,EAAE,CACnD,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7E,4EAA4E;IAC5E,yEAAyE;IACzE,qDAAqD;IACrD,MAAM,YAAY,GAAwC,EAAE,CAAC;IAC7D,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM;YAAE,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,8EAA8E;IAC9E,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,YAAY,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAClD,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACF,CAAC;IAED,8EAA8E;IAC9E,MAAM,WAAW,GAAgC,EAAE,CAAC;IAEpD,2EAA2E;IAC3E,+DAA+D;IAC/D,iEAAiE;IACjE,MAAM,YAAY,GAA2B,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5E,MAAM,QAAQ,GAAwC,EAAE,CAAC;IACzD,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,KAAK,KAAK,gBAAgB;YAAE,SAAS;QAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM;YAAE,SAAS;QAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1B,WAAW,CAAC,IAAI,CAAC;YAChB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,eAAe;YACrB,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,EAAE,sBAAsB,CAAC,CAAC,QAAQ,IAAI,OAAO,GAAG;SACtD,CAAC,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,yCAAyC;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CACzB,YAAY,EACZ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EACX,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CACzB,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACjC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAEjE,8EAA8E;IAC9E,IAAI,KAAa,CAAC;IAClB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,cAAc,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9D,CAAC;SAAM,CAAC;QACP,qEAAqE;QACrE,gBAAgB;QAChB,IAAI,eAAe,GAA0C,IAAI,CAAC;QAClE,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO;gBAAE,SAAS;YACpC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,aAAa;gBAAE,SAAS;YACjD,eAAe,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC9F,MAAM;QACP,CAAC;QACD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,EAAE,KAAK,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5G,KAAK,GAAG,UAAU,KAAK,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,KAAK,GAAG,kBAAkB,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;AACrE,CAAC;AA2BD;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,SAAkC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,IAAI,KAAK,CACd,oEAAoE,SAAS;SAC3E,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,2FAA2F,CACvG,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,SAAiB,EAAE,SAA0B;IAC1F,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAA4B,CAAC;IAClE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAc,CAAC;IAC1C,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IACvC,MAAM,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,GAA8B,CAAC;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACnC,QAAQ,EAAE,EAAE,CAAC;YACZ,KAAK,IAAI;gBACR,OAAO,EAAE,KAAK,KAAK,CAAC;YACrB,KAAK,KAAK;gBACT,OAAO,EAAE,KAAK,KAAK,CAAC;YACrB,KAAK,IAAI;gBACR,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAK,KAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClE,KAAK,SAAS;gBACb,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C;gBACC,OAAO,KAAK,CAAC;QACf,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAQD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,SAAiB,EAAE,EAAU;IACvE,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACvF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC5B,GAAW,EACX,SAAiB,EACjB,OAA4C,EAAE;IAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAA4B,CAAC;IAClE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,QAAQ,CAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,SAAiB;IACrD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAA4B,CAAC;IAClE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACjC,OAAQ,IAAI,CAAC,QAAQ,CAAe,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAkC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CACzE,CAAC;AACH,CAAC;AAmBD;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,IAAc;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;IAC9E,IAAI,MAAM,IAAI,OAAO;QACpB,MAAM,IAAI,KAAK,CACd,oGAAoG,CACpG,CAAC;IACH,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;QACtB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACtG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAElF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa;QACnC,CAAC,CAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAA+B;QAC1F,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEvC,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAoB,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAmB,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsC,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;gBACtB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED,YAAY;IACZ,MAAM,YAAY,GAAG,IAAI,CAAC,YAAsB,CAAC;IACjD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;IACnD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,YAAY,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAA8B,EAAE,CAAC;QAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC5D,IAAI,IAAI,KAAK,MAAM;oBAAE,SAAS;gBAC9B,MAAM,OAAO,GAAG,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjC,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChE,CAAC;QACF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAU,EAAE,GAAuB;IACrE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,IAAI,GAAiD,IAAI,CAAC;IAC9D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QAClC,2EAA2E;QAC3E,+EAA+E;QAC/E,wEAAwE;QACxE,uEAAuE;QACvE,mEAAmE;QACnE,gCAAgC;QAChC,IAAI,CAAC,EAAE,CAAC,MAAM;YAAE,SAAS;QACzB,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpD,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC;YAC1D,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAE5B,0EAA0E;IAC1E,sEAAsE;IACtE,yEAAyE;IACzE,sEAAsE;IACtE,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,mEAAmE;IAEnE,yEAAyE;IACzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,IAA6B,CAAC;QAClC,IAAI,CAAC;YACJ,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAA4B,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACR,SAAS,CAAC,sCAAsC;QACjD,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,SAAS;YAClC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,SAAS;gBAC9C,MAAM,IAAI,GAAG,GAA8B,CAAC;gBAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAE9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAChD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACjD,MAAM,IAAI,KAAK,CACd,qBAAqB,KAAK,qBAAqB,SAAS,mCAAmC,QAAQ,KAAK;wBACvG,gKAAgK,CACjK,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,EAAU;IACtD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,GAAa;IAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,EAA+B,CAAC;IACnD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS,CAAC,wCAAwC;QACnE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AA4BD;;;;;GAKG;AACH,SAAS,YAAY,CAAC,IAA6B,EAAE,KAAiD;IACrG,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IAC1C,MAAM,MAAM,GAA6B,EAAE,CAAC;IAE5C,0EAA0E;IAC1E,mDAAmD;IACnD,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAElC,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAW,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3D,wEAAwE;IACxE,yEAAyE;IACzE,yEAAyE;IACzE,oEAAoE;IACpE,uEAAuE;IACvE,2DAA2D;IAC3D,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/F,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,gBAAgB,IAAI,CAAC,MAAM,qBAAqB,IAAI,CAAC,aAAa,iCAAiC;oBAC5G,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;iBACtC,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,eAAe,IAAI,CAAC,KAAK,qBAAqB,IAAI,CAAC,aAAa,iCAAiC;oBAC1G,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;iBACtC,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,uBAAuB,IAAI,CAAC,aAAa,8CAA8C;oBAChG,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;iBACtC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,yEAAyE;QACzE,gEAAgE;QAChE,qEAAqE;QACrE,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,oEAAoE;QACpE,uEAAuE;QACvE,uEAAuE;QACvE,uDAAuD;QACvD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC;YACrF,IAAI,CAAC,EAAE;gBAAE,SAAS,CAAC,oDAAoD;YACvE,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,YAAY;gBAAE,SAAS,CAAC,8BAA8B;YAClF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,IACC,SAAS;gBACT,EAAE,CAAC,YAAY;gBACf,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAC5E,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,kBAAkB,SAAS,CAAC,KAAK,0BAA0B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,aAAa,GAAG;oBAC/K,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;iBACtC,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,QAAQ,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjH,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,kBAAkB,QAAQ,CAAC,KAAK,0BAA0B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,aAAa,GAAG;oBAC9K,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;iBACtC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,6EAA6E;QAC7E,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,YAAY,GAAiC,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YACjC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACrE,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,EAAE,CAAC,IAAI,KAAK,qBAAqB;oBAAE,SAAS;gBAChD,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,KAAK,EAAE,WAAW;oBAClB,IAAI,EAAE,EAAE,CAAC,IAAI;iBACb,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR;wFAC4E;QAC7E,CAAC;QAED,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,oEAAoE;QACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,GAAG,CAAC,KAAK,KAAK,eAAe;gBAAE,SAAS,CAAC,uCAAuC;YACpF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;oBAAE,SAAS;gBAClD,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzE,CAAC;YACD,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;gBACjC,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;oBAAE,SAAS;gBACtC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACjD,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAChC,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,OAAO;oBACjC,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,sDAAsD,GAAG,CAAC,EAAE,GAAG,CAAC;yBACvF,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;yBACtB,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC;oBAClC,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE;oBACxB,IAAI,EAAE,GAAG,CAAC,EAAE;iBACZ,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,8DAA8D;QAC9D,yEAAyE;QACzE,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,CAAC,IAA6B,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC;QACpG,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,GAAG,CAAC,KAAK,KAAK,oBAAoB;gBAAE,SAAS;YACjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC3C,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;gBACjC,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;oBAAE,SAAS;gBACtC,IAAI,GAAG,CAAC,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW;oBAAE,SAAS;gBACxE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;wBAAE,SAAS;oBAC9C,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,KAAK,WAAW,CAAC;oBACnD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;wBAAE,SAAS;oBAC/D,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;oBACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACtC,IAAI,CAAC,QAAQ;wBAAE,SAAS,CAAC,oDAAoD;oBAC7E,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC5C,MAAM,cAAc,GAAG,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,WAAW,KAAK,GAAG,CAAC,qBAAqB,CAAC;oBAC5G,MAAM,aAAa,GAAG,GAAG,CAAC,oBAAoB,KAAK,SAAS,IAAI,WAAW,KAAK,GAAG,CAAC,oBAAoB,CAAC;oBACzG,IAAI,cAAc,IAAI,aAAa,EAAE,CAAC;wBACrC,MAAM,CAAC,IAAI,CAAC;4BACX,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,OAAO;4BACjC,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,qDAAqD,GAAG,CAAC,EAAE,GAAG,CAAC;iCACtF,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;iCACtB,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC;4BAClC,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE;4BACxB,IAAI,EAAE,GAAG,CAAC,EAAE;yBACZ,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,4EAA4E;IAC5E,gFAAgF;IAChF,iFAAiF;IACjF,kFAAkF;IAClF,CAAC;QACA,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACjD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS;YAClD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,SAAS,GAAG,aAAa,IAAI,CAAC,KAAK,cAAc,MAAM,CAAC,IAAI,CAAC,gFAAgF;oBACtJ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,QAAQ;oBACf,IAAI,EAAE,sBAAsB;iBAC5B,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,IAAI,EAAE,EAAE,CAAC,IAAI;iBACb,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,mBAAmB,CAAC,CAAC,IAAI,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBAChG,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,yBAAyB,CAAC,CAAC,IAAI,EAAE;aACvC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC3E,OAAO;QACN,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;QAC5E,MAAM;KACN,CAAC;AACH,CAAC;AAWD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,cAAsB;IAC/E,0CAA0C;IAC1C,IAAI,OAAsD,CAAC;IAC3D,IAAI,CAAC;QACJ,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,cAAc,CAAmB,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,wDAAwD,MAAM,wBAAwB,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;IACxE,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,iBAAiB,cAAc,mCAAmC,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACd,iBAAiB,cAAc,cAAc,YAAY,CAAC,MAAM,MAAM,YAAY,CAAC,WAAW,gBAAgB,MAAM,GAAG,CACvH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACd,iBAAiB,cAAc,gBAAgB,YAAY,CAAC,MAAM,wCAAwC,CAC1G,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,QAA+C,CAAC;IACpD,IAAI,CAAC;QACJ,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAoB,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,4BAA4B,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,wBAAwB,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,wBAAwB,CAAC,CAAC;IAC1D,CAAC;IAED,0DAA0D;IAC1D,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,EAAE;QAChE,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,cAAc;KAC5B,CAAC,CAAC;IAEH,OAAO;QACN,MAAM;QACN,cAAc;QACd,kBAAkB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAC/C,cAAc,EAAE,aAAa;KAC7B,CAAC;AACH,CAAC"}
@@ -0,0 +1,497 @@
1
+ /**
2
+ * pi-context substrate SDK — config-driven vocabulary registries from line 1.
3
+ *
4
+ * This module owns the substrate primitives ported from
5
+ * `analysis/poc-degree-zero-lens/render.ts` and extended with the
6
+ * config-as-canonical-registry shape per the step-2 plan.
7
+ *
8
+ * Design constraint: imports only from `./context-dir` (path constants),
9
+ * `./schema-validator` (AJV bridge), and node builtins. This module resolves
10
+ * the substrate dir via `resolveContextDir` from `./context-dir` without
11
+ * forming a cycle through context-sdk; it must therefore stay at a strictly
12
+ * lower layer than context-sdk.
13
+ *
14
+ * Closes structurally:
15
+ * - FGAP-001 (hierarchical block storage via closure-table per DEC-0009)
16
+ * - FGAP-013 (status vocabulary registry — `config.status_buckets`)
17
+ * - issue-089 class (PLAN- prefix collision — `config.block_kinds[].prefix`
18
+ * makes prefix conflicts a config-registration-time concern, not a
19
+ * fixture-write-time crash)
20
+ */
21
+ import type { DispatchContext } from "./dispatch-context.js";
22
+ import { ValidationError } from "./schema-validator.js";
23
+ export interface ConfigBlock {
24
+ schema_version: string;
25
+ root: string;
26
+ naming?: Record<string, string>;
27
+ layers?: LayerDecl[];
28
+ block_kinds: BlockKindDecl[];
29
+ status_buckets?: Record<string, StatusBucket>;
30
+ display_strings?: Record<string, string>;
31
+ relation_types?: RelationTypeDecl[];
32
+ hierarchy?: HierarchyDecl[];
33
+ lenses?: LensSpec[];
34
+ invariants?: InvariantDecl[];
35
+ installed_schemas?: string[];
36
+ installed_blocks?: string[];
37
+ }
38
+ /**
39
+ * The eleven config registries `amendConfigEntry` can target. Each name maps to
40
+ * a top-level `ConfigBlock` property; the scalars `schema_version` / `root` are
41
+ * intentionally NOT addressable (they are not registries — mutate them via a
42
+ * whole-config write). The set is kept in sync with `ConfigBlock` by hand.
43
+ */
44
+ export type AmendRegistry = "block_kinds" | "relation_types" | "lenses" | "layers" | "invariants" | "status_buckets" | "display_strings" | "naming" | "installed_schemas" | "installed_blocks" | "hierarchy";
45
+ /** The scoped amend verbs. `add` requires the key absent; `replace` / `remove`
46
+ * require it present (OP-CORRECTNESS, decidable from the loaded config alone). */
47
+ export type AmendOperation = "add" | "replace" | "remove";
48
+ /**
49
+ * Outcome of one `amendConfigEntry` call. `modified` is false only for a
50
+ * structural no-op (none occur today — every op either mutates or throws — but
51
+ * the field is reserved for future idempotent-replace semantics). `previousValue`
52
+ * carries the displaced / removed entry for `replace` / `remove` (undefined for
53
+ * `add`).
54
+ */
55
+ export interface AmendResult {
56
+ modified: boolean;
57
+ operation: AmendOperation;
58
+ registry: AmendRegistry;
59
+ key: string;
60
+ previousValue?: unknown;
61
+ }
62
+ export interface LayerDecl {
63
+ id: string;
64
+ display_name: string;
65
+ description?: string;
66
+ }
67
+ export interface BlockKindDecl {
68
+ canonical_id: string;
69
+ display_name: string;
70
+ prefix: string;
71
+ schema_path: string;
72
+ array_key: string;
73
+ data_path: string;
74
+ layer?: string;
75
+ }
76
+ export type StatusBucket = "complete" | "in_progress" | "blocked" | "todo" | "unknown";
77
+ export interface RelationTypeDecl {
78
+ canonical_id: string;
79
+ display_name: string;
80
+ category: "ordering" | "data_flow" | "membership";
81
+ cycle_allowed?: boolean;
82
+ source_kinds?: string[];
83
+ target_kinds?: string[];
84
+ }
85
+ export interface HierarchyDecl {
86
+ parent_block: string;
87
+ child_block: string;
88
+ relation_type: string;
89
+ }
90
+ /**
91
+ * Config-declared substrate invariant (DEC-0025: vocabulary lives in DATA, not
92
+ * source). Two classes, both enforced generically by validateContext — no
93
+ * block/status/relation_type literal appears in the consumer loops:
94
+ *
95
+ * - `requires-edge`: items in `block` matching the optional `where` predicate
96
+ * must occupy `direction`'s endpoint on ≥1 edge whose relation_type ∈
97
+ * `relation_types`.
98
+ * - `status-consistency`: for items in `block` (optionally gated by
99
+ * `when_bucket` on the item's own status bucket), the related item across an
100
+ * edge whose relation_type ∈ `relation_types` (item at `direction`, target at
101
+ * the other endpoint) must have status bucket === `require_target_bucket`
102
+ * and/or !== `forbid_target_bucket`.
103
+ *
104
+ * The status-bucket fields use the inline string-union rather than importing
105
+ * StatusBucket from status-vocab: status-vocab imports loadContext from
106
+ * THIS module, so importing StatusBucket back would form a cycle. The union is
107
+ * kept in sync with StatusBucket (context.ts:64) by hand.
108
+ */
109
+ export interface InvariantDecl {
110
+ id: string;
111
+ class: "requires-edge" | "status-consistency";
112
+ block: string;
113
+ where?: Record<string, string | number | boolean>;
114
+ relation_types: string[];
115
+ direction: "as_parent" | "as_child";
116
+ when_bucket?: "complete" | "in_progress" | "blocked" | "todo" | "unknown";
117
+ require_target_bucket?: "complete" | "in_progress" | "blocked" | "todo" | "unknown";
118
+ forbid_target_bucket?: "complete" | "in_progress" | "blocked" | "todo" | "unknown";
119
+ severity?: "error" | "warning";
120
+ message?: string;
121
+ }
122
+ export interface LensSpec {
123
+ id: string;
124
+ bins: string[];
125
+ kind?: "target" | "composition";
126
+ target?: string;
127
+ targets?: string[];
128
+ members?: CompositionMember[];
129
+ relation_type?: string;
130
+ derived_from_field?: string | null;
131
+ render_uncategorized?: boolean;
132
+ }
133
+ export interface CompositionMember {
134
+ lens?: string;
135
+ from?: string;
136
+ where?: Record<string, string | number | boolean>;
137
+ }
138
+ export interface Edge {
139
+ parent: string;
140
+ child: string;
141
+ relation_type: string;
142
+ ordinal?: number;
143
+ }
144
+ export interface ItemRecord {
145
+ id: string;
146
+ [k: string]: unknown;
147
+ }
148
+ export interface SubstrateValidationIssue {
149
+ code: "edge_parent_not_in_bins" | "edge_unresolved_parent" | "edge_unresolved_child" | "edge_unknown_relation_type" | "edge_parent_wrong_block" | "edge_child_wrong_block" | "edge_cycle_detected";
150
+ message: string;
151
+ edge?: Edge;
152
+ cycle?: string[];
153
+ relation_type?: string;
154
+ }
155
+ export interface SubstrateValidationResult {
156
+ status: "clean" | "warnings" | "invalid";
157
+ issues: SubstrateValidationIssue[];
158
+ }
159
+ export interface ContextData {
160
+ config: ConfigBlock | null;
161
+ relations: Edge[];
162
+ }
163
+ export interface CurationSuggestion {
164
+ payload: Edge;
165
+ reason: string;
166
+ }
167
+ /**
168
+ * Resolve the substrate root for `cwd` — pointer-canonical (DEC-0045 / FGAP-079).
169
+ *
170
+ * Returns `resolveContextDir(cwd)` (the `.pi-context.json` pointer dir) for ALL
171
+ * substrate path resolution. `config.root` is NOT a path-resolution input:
172
+ * config.json and relations.json are pinned to the pointer dir by necessity
173
+ * (`projectRoot` must read config.json to learn `config.root`, so config.json
174
+ * cannot itself relocate), so honoring `config.root` for blocks/schemas would
175
+ * split the substrate across two dirs (config/relations at the pointer; blocks/
176
+ * schemas at config.root) — incoherent. Substrate relocation is properly done
177
+ * by flipping the pointer (future `/context migrate`, DEC-0036 step-5), which
178
+ * moves the whole substrate coherently.
179
+ *
180
+ * `config.root` is retained as optional config DATA (DEC-0041 — config carries
181
+ * the substrate dir name for display/round-trip) but is unused for resolution.
182
+ * In practice `adoptConception` sets `config.root` == the pointer dir, so this
183
+ * is behavior-preserving wherever the two coincide; it removes the latent
184
+ * divergence (writes honoring config.root while reads/validation use the
185
+ * pointer) that surfaced under FGAP-077.
186
+ */
187
+ /**
188
+ * Load and AJV-validate `<cwd>/.project/config.json` against the bundled
189
+ * config.schema.json. Returns null when the file is absent. Throws
190
+ * ValidationError on schema failure; throws Error with file context on
191
+ * read/parse failure.
192
+ */
193
+ export declare function loadConfig(cwd: string): ConfigBlock | null;
194
+ /**
195
+ * Destination path of an installed SCHEMA asset — `<root>/<SCHEMAS_DIR>/<name>.schema.json`.
196
+ * `root` is the already-resolved substrate root (`projectRoot(cwd)`). This is the
197
+ * single source of the schema-dest derivation; `installContext` and
198
+ * `findUnmaterializedAssets` both route through it so installer and detector
199
+ * cannot drift.
200
+ */
201
+ export declare function installedSchemaDestPath(root: string, name: string): string;
202
+ /** Destination path of an installed BLOCK asset — `<root>/<name>.json`. `root` is `projectRoot(cwd)`. */
203
+ export declare function installedBlockDestPath(root: string, name: string): string;
204
+ /**
205
+ * The declared-but-not-materialized installed assets for `config`: the subset of
206
+ * `config.installed_schemas` / `installed_blocks` whose destination file is
207
+ * absent on disk. Empty arrays when everything declared is present (or nothing
208
+ * is declared — vacuously materialized). Pure read, no copy — answers "is the
209
+ * substrate fully installed?" via the SAME path derivation `installContext`
210
+ * writes to, so the question and the act cannot diverge.
211
+ */
212
+ export declare function findUnmaterializedAssets(cwd: string, config: ConfigBlock): {
213
+ schemas: string[];
214
+ blocks: string[];
215
+ };
216
+ /**
217
+ * Load and AJV-validate `<cwd>/.project/relations.json`. Returns [] when the
218
+ * file is absent. Schema shape is `Edge[]` at the top level (array, not
219
+ * `{edges: [...]}`); the validator enforces this.
220
+ */
221
+ export declare function loadRelations(cwd: string): Edge[];
222
+ /**
223
+ * Atomic, AJV-validated write of `<resolveContextDir(cwd)>/relations.json`
224
+ * (top-level `Edge[]` array). Delegates to block-api's `writeTypedFile` against
225
+ * the bundled relations schema. Importing `writeTypedFile` here is cycle-safe:
226
+ * block-api imports only `resolveContextDir`-class path constants and does NOT
227
+ * import context, so this module remains at a strictly lower layer in the read
228
+ * direction while reaching up to block-api for the shared atomic-write surface.
229
+ *
230
+ * `ctx` is threaded through for attestation parity with the rest of the write
231
+ * surface; the relations schema is a flat array and declares no envelope author
232
+ * fields, so stamping is a structural no-op today (consistent with the
233
+ * top-level-array stamping semantics documented in block-api).
234
+ */
235
+ export declare function writeRelations(cwd: string, edges: Edge[], ctx?: DispatchContext): void;
236
+ /**
237
+ * Append closure-table edges to `<resolveContextDir(cwd)>/relations.json`,
238
+ * skipping any whose (parent, child, relation_type) triple already exists
239
+ * on-disk OR appears earlier in this same batch. The write-twin of
240
+ * `writeRelations` (whole-file replace) for the additive case. Creates
241
+ * relations.json (flat `Edge[]` array) when absent.
242
+ *
243
+ * Guards are DEFERRED to `validateContext` by design: this surface performs
244
+ * only AJV-shape validation (whole-array against the relations schema) and the
245
+ * exact-duplicate-no-op above. Reference integrity — endpoints resolve,
246
+ * relation_type is registered, no cycle under hierarchy relation_types — is NOT
247
+ * checked here. This is forced by the layer graph: `appendRelations` lives in
248
+ * context, which imports only block-api; endpoint resolution needs
249
+ * `buildIdIndex` from context-sdk, and importing context-sdk here would invert
250
+ * the dependency direction. Registration / endpoint / cycle violations are
251
+ * caught later by `validateContext`.
252
+ *
253
+ * `ctx` is threaded for attestation parity with `writeRelations`; the relations
254
+ * schema is a flat array with no envelope author fields, so stamping is a
255
+ * structural no-op today (consistent with the top-level-array stamping
256
+ * semantics documented in block-api).
257
+ */
258
+ export declare function appendRelations(cwd: string, edges: Edge[], ctx?: DispatchContext): {
259
+ appended: number;
260
+ skipped: number;
261
+ };
262
+ /**
263
+ * Append a single closure-table edge. Convenience over `appendRelations`:
264
+ * returns `{ appended }` reflecting whether the edge was new (true) or an
265
+ * exact (parent, child, relation_type) duplicate of an existing edge (false →
266
+ * no-op). Same deferred-guard semantics as `appendRelations`.
267
+ */
268
+ export declare function appendRelation(cwd: string, edge: Edge, ctx?: DispatchContext): {
269
+ appended: boolean;
270
+ };
271
+ /**
272
+ * Atomic, AJV-validated write of `<resolveContextDir(cwd)>/config.json`.
273
+ * Delegates to block-api's `writeTypedFile` against the bundled config schema.
274
+ * Same cycle-safety reasoning as `writeRelations`.
275
+ */
276
+ export declare function writeConfig(cwd: string, config: ConfigBlock, ctx?: DispatchContext): void;
277
+ /**
278
+ * Result shape from `adoptConception`. `adopted` is false (no-op) when a config
279
+ * already exists; `schemaCount` / `blockCount` then report the EXISTING config's
280
+ * declared counts. `configPath` / `root` are relative-to-cwd display paths.
281
+ */
282
+ export interface AdoptResult {
283
+ adopted: boolean;
284
+ configPath: string;
285
+ root: string;
286
+ schemaCount: number;
287
+ blockCount: number;
288
+ }
289
+ /**
290
+ * accept-all: adopt the package's canonical packaged conception
291
+ * (samples/conception.json) as this substrate's config.json (DEC-0037 / DEC-0038
292
+ * accept-all mode). Writes config ONLY (does not install assets — run
293
+ * installContext after). Idempotent: never clobbers an existing config
294
+ * (DEC-0011/0038 offer-don't-impose). The conception ships NO root (it is a
295
+ * template, not an instance — DEC-0041/FGAP-094); this function SETS root to the
296
+ * ACTUAL substrate dir name (resolved from the .pi-context.json pointer) on the
297
+ * adopted config. Validated via writeConfig (whole-config AJV).
298
+ */
299
+ export declare function adoptConception(cwd: string): AdoptResult;
300
+ /**
301
+ * Scoped add / replace / remove of ONE entry in ONE config registry.
302
+ *
303
+ * Two guard tiers, both decidable here:
304
+ * 1. OP-CORRECTNESS (local, in-config invariants — the analog of
305
+ * rename-canonical-id's existence/collision guards): `add` requires the key
306
+ * ABSENT (collision → throw); `replace` / `remove` require it PRESENT
307
+ * (missing → throw). Every such throw fires BEFORE any write, so a guard
308
+ * failure leaves config.json byte-untouched.
309
+ * 2. SHAPE: automatic + free via `writeConfig`'s whole-config AJV validation —
310
+ * a malformed entry (e.g. a relation_type missing its required `category`,
311
+ * or a status_bucket value outside the enum) fails the write and throws
312
+ * ValidationError, again leaving the file unchanged (atomic tmp+rename).
313
+ *
314
+ * Cross-registry referential integrity (removing a relation_type / lens / layer
315
+ * / block_kind that is still referenced by an edge or another registry) is
316
+ * DEFERRED to `validateContext` by design — the same layer-graph constraint that
317
+ * defers `appendRelation`'s integrity checks (this module imports only block-api;
318
+ * referential checks need buildIdIndex from context-sdk, which would invert the
319
+ * dependency). `remove` therefore emits NO write-time warning.
320
+ *
321
+ * Mutation works on a deep clone of the loaded config (the
322
+ * load → JSON.parse(JSON.stringify(config)) → mutate → writeConfig precedent
323
+ * from rename-canonical-id); the original is never touched until the single
324
+ * `writeConfig` at the end (skipped under `dryRun`).
325
+ *
326
+ * `ctx` is forwarded to `writeConfig` for attestation parity with the rest of
327
+ * the write surface; the config schema declares no envelope author fields, so
328
+ * stamping is a structural no-op today (consistent with `writeConfig`).
329
+ *
330
+ * @param registry one of the eleven `AmendRegistry` names (validated; scalars
331
+ * `schema_version` / `root` are rejected as non-registries).
332
+ * @param operation `add` | `replace` | `remove` (validated).
333
+ * @param key the entry key — id for keyed-array, map key for map, the
334
+ * string value for string-array, a JSON-encoded triple for the
335
+ * hierarchy value-array.
336
+ * @param entry the entry payload: object for keyed-array / value-array, the
337
+ * value for map; required for `add` / `replace`, omitted for
338
+ * `remove`. For string-array, when provided it must equal `key`.
339
+ * @throws Error on unknown registry / operation, missing entry for add/replace,
340
+ * absent config, OP-CORRECTNESS violation, or key/entry divergence.
341
+ * @throws ValidationError (from `writeConfig`) on a SHAPE violation.
342
+ */
343
+ export declare function amendConfigEntry(cwd: string, registry: string, operation: string, key: string, entry?: unknown, ctx?: DispatchContext, opts?: {
344
+ dryRun?: boolean;
345
+ }): AmendResult;
346
+ /**
347
+ * Cached `(loadConfig, loadRelations)` pair, keyed by absolute cwd. Cache
348
+ * invalidates when either `config.json` or `relations.json` mtime changes —
349
+ * deleting the file (mtime → 0) also invalidates so a config-removal is
350
+ * picked up. Direct, intentional cache flush is not exposed; tests that
351
+ * need to bypass call `loadConfig`/`loadRelations` directly.
352
+ */
353
+ export declare function loadContext(cwd: string): ContextData;
354
+ /**
355
+ * Synthesize edges from a per-item field for a derived lens. Returns [] when
356
+ * `lens.derived_from_field` is null / undefined (caller should source edges
357
+ * from authored relations instead).
358
+ */
359
+ export declare function synthesizeFromField(lens: LensSpec, items: ItemRecord[]): Edge[];
360
+ /**
361
+ * Edges visible to traversal/projection for a given lens. Auto-derived lens →
362
+ * edges synthesized from items at read-time. Hand-curated lens → filter
363
+ * authored edges by relation_type.
364
+ */
365
+ export declare function edgesForLens(lens: LensSpec, items: ItemRecord[], authoredEdges: Edge[]): Edge[];
366
+ /**
367
+ * Walk descendants of `parentId` along edges of a given relation_type. Cycle-
368
+ * safe via a visited-set: revisit short-circuits, so a back-edge does not
369
+ * loop, but `validateRelations` is the surface that flags the cycle.
370
+ */
371
+ export declare function walkDescendants(parentId: string, relationType: string, edges: Edge[]): string[];
372
+ /**
373
+ * Walk ancestors of `itemId` along edges of a given relation_type — the
374
+ * reverse-direction traversal of walkDescendants. Iterates edges where
375
+ * `e.child === node && e.relation_type === relationType` and recurses on
376
+ * `e.parent`. Cycle-safe via a visited-set mirroring walkDescendants:
377
+ * revisit short-circuits, so a back-edge does not loop, but
378
+ * `validateRelations` is the surface that flags the cycle.
379
+ *
380
+ * Returns the ancestor id list (may include multiple distinct parents
381
+ * when the closure-table edge set is a DAG with merges). Order is
382
+ * traversal-order (closest ancestors first) matching walkDescendants'
383
+ * BFS-like semantic; callers MUST treat the result as a set or sort if
384
+ * deterministic order is required.
385
+ *
386
+ * Pure function — operates on the Edge[] argument; does NOT read substrate.
387
+ */
388
+ export declare function walkAncestors(itemId: string, relationType: string, edges: Edge[]): string[];
389
+ /**
390
+ * Find all closure-table edges incident on `itemId`, returning the full
391
+ * Edge[] records — NOT id arrays. Distinguishing semantic vs walkDescendants
392
+ * and walkAncestors which return string[] id chains for traversal; this
393
+ * primitive surfaces edge-level inspection (relation_type + ordinal preserved
394
+ * per record) for callers that need the relationship-typed view rather than
395
+ * the projected id set.
396
+ *
397
+ * Direction semantics:
398
+ * "inbound" — edges where `e.child === itemId` (edges pointing AT itemId)
399
+ * "outbound" — edges where `e.parent === itemId` (edges FROM itemId)
400
+ * "both" — union of inbound + outbound (default).
401
+ *
402
+ * Self-loop handling: an edge with `parent === child === itemId` is a
403
+ * self-loop. Under "both" direction such an edge matches BOTH the inbound
404
+ * and outbound filters. The implementation iterates edges once with a
405
+ * single inclusion predicate per direction, so a self-loop is returned
406
+ * EXACTLY ONCE under "both" — never duplicated. This is the cleaner
407
+ * option: callers reasoning about reference-uniqueness do not need to
408
+ * dedup, and an edge identity in relations.json maps to a single result
409
+ * record.
410
+ *
411
+ * Multiple relation_types between the same (parent, child) pair preserve
412
+ * as DISTINCT result entries — each edge is a separate relationship
413
+ * record, queries on it must not collapse.
414
+ *
415
+ * Pure function — operates on the Edge[] argument; does NOT read substrate.
416
+ */
417
+ export declare function findReferences(itemId: string, edges: Edge[], direction?: "inbound" | "outbound" | "both"): Edge[];
418
+ /**
419
+ * Project items into bins under a lens. Items reachable through `lensEdges`
420
+ * with parent ∈ `lens.bins` go to that bin; remaining items go to
421
+ * "(uncategorized)". Caller picks whether to include the uncategorized
422
+ * bucket via `lens.render_uncategorized`.
423
+ */
424
+ export declare function groupByLens(items: ItemRecord[], lens: LensSpec, lensEdges: Edge[]): Map<string, ItemRecord[]>;
425
+ /**
426
+ * Universal display-name lookup. Resolution order:
427
+ * 1. `cfg.naming[canonicalId]` if present (explicit alias)
428
+ * 2. matching `block_kinds[].display_name` whose `canonical_id` matches
429
+ * 3. canonical id itself (POC A identity-vs-display decoupling)
430
+ */
431
+ export declare function displayName(cfg: ConfigBlock | null, canonicalId: string): string;
432
+ /**
433
+ * List items that fell to the (uncategorized) bucket plus a template for
434
+ * emitting append-block-item payloads. Suggestion intentionally carries the
435
+ * edge payload only — the calling ceremony decides which bin to file under.
436
+ */
437
+ export declare function listUncategorized(lens: LensSpec, grouped: Map<string, ItemRecord[]>): {
438
+ uncategorized: ItemRecord[];
439
+ suggestionTemplate: (binName: string, item: ItemRecord) => CurationSuggestion;
440
+ };
441
+ /**
442
+ * Validate authored edges against `config` registries (lenses + hierarchy +
443
+ * relation_types) and the cross-block id index supplied by the caller.
444
+ * Emits seven structured issue codes:
445
+ * - edge_unknown_relation_type
446
+ * - edge_parent_not_in_bins (lens edges)
447
+ * - edge_unresolved_parent / edge_parent_wrong_block (hierarchy edges)
448
+ * - edge_unresolved_child / edge_child_wrong_block (lens or hierarchy)
449
+ * - edge_cycle_detected (DFS recursion-stack on hierarchy relation_types)
450
+ *
451
+ * `itemsByBlock` is indexed by `BlockKindDecl.canonical_id` for hierarchy
452
+ * checks (parent / child must reside in the declared block) and by
453
+ * `LensSpec.target` for lens checks. Callers supply the index — this
454
+ * module does not read blocks itself, keeping it independent of block-api.
455
+ */
456
+ export declare function validateRelations(config: ConfigBlock, relations: Edge[], itemsByBlock: Record<string, ItemRecord[]>): SubstrateValidationResult;
457
+ /**
458
+ * Result of resolving a composition lens. members carries the per-member
459
+ * resolution; unionedItems is the deduped union (by item.id) used by
460
+ * loadLensView; perItemOrigin maps item.id → originating block name (or
461
+ * sub-lens id when the member resolves through another lens).
462
+ */
463
+ export interface ResolvedComposition {
464
+ members: Array<{
465
+ source: {
466
+ lens?: string;
467
+ from?: string;
468
+ where?: Record<string, string | number | boolean>;
469
+ };
470
+ items: ItemRecord[];
471
+ }>;
472
+ unionedItems: ItemRecord[];
473
+ perItemOrigin: Map<string, string>;
474
+ }
475
+ /**
476
+ * Resolve a composition lens by walking each member declaration:
477
+ * - { lens: <id> }: lookup the named sub-lens in config.lenses; if it's
478
+ * also composition, recurse via resolveCompositionInternal carrying
479
+ * the visited-set; if it's target, load its target block items.
480
+ * - { from: <block>, where: <field-equality> }: read the block items and
481
+ * filter by field-equality predicate.
482
+ *
483
+ * Cycle detection: if a sub-lens reference forms a cycle in the composition
484
+ * graph (lens A → lens B → lens A), throws an Error with message
485
+ * "composition_cycle_detected: <cycle path>".
486
+ *
487
+ * Throws when:
488
+ * - lens is not kind="composition"
489
+ * - composition members reference a non-existent sub-lens id
490
+ * - composition members reference a sub-lens that throws on resolution
491
+ * - cycle detected
492
+ *
493
+ * Caller (loadLensView) catches Error and returns { error: <message> }.
494
+ */
495
+ export declare function resolveComposition(cwd: string, lens: LensSpec): ResolvedComposition;
496
+ export { ValidationError };
497
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}