@gate-forge/core 0.4.0 → 0.6.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 (94) hide show
  1. package/dist/baselines/index.js +1 -1
  2. package/dist/baselines/index.js.map +1 -1
  3. package/dist/config/index.d.ts +2 -1
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/index.js +7 -0
  6. package/dist/config/index.js.map +1 -1
  7. package/dist/fingerprints.d.ts +35 -4
  8. package/dist/fingerprints.d.ts.map +1 -1
  9. package/dist/fingerprints.js +58 -5
  10. package/dist/fingerprints.js.map +1 -1
  11. package/dist/index.d.ts +32 -10
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +29 -9
  14. package/dist/index.js.map +1 -1
  15. package/dist/mapping/resolve.d.ts +6 -2
  16. package/dist/mapping/resolve.d.ts.map +1 -1
  17. package/dist/mapping/resolve.js +122 -17
  18. package/dist/mapping/resolve.js.map +1 -1
  19. package/dist/policy/behavior.d.ts +44 -0
  20. package/dist/policy/behavior.d.ts.map +1 -0
  21. package/dist/policy/behavior.js +373 -0
  22. package/dist/policy/behavior.js.map +1 -0
  23. package/dist/policy/coverage.d.ts +4 -3
  24. package/dist/policy/coverage.d.ts.map +1 -1
  25. package/dist/policy/coverage.js +12 -6
  26. package/dist/policy/coverage.js.map +1 -1
  27. package/dist/policy/evaluate.d.ts +19 -0
  28. package/dist/policy/evaluate.d.ts.map +1 -1
  29. package/dist/policy/index.d.ts +1 -0
  30. package/dist/policy/index.d.ts.map +1 -1
  31. package/dist/policy/index.js +1 -0
  32. package/dist/policy/index.js.map +1 -1
  33. package/dist/receipt/index.d.ts +56 -4
  34. package/dist/receipt/index.d.ts.map +1 -1
  35. package/dist/receipt/index.js +139 -5
  36. package/dist/receipt/index.js.map +1 -1
  37. package/dist/report/index.js +4 -19
  38. package/dist/report/index.js.map +1 -1
  39. package/dist/schemas/behavior-catalog.d.ts +2868 -0
  40. package/dist/schemas/behavior-catalog.d.ts.map +1 -0
  41. package/dist/schemas/behavior-catalog.js +103 -0
  42. package/dist/schemas/behavior-catalog.js.map +1 -0
  43. package/dist/schemas/behavior-evidence.d.ts +174 -0
  44. package/dist/schemas/behavior-evidence.d.ts.map +1 -0
  45. package/dist/schemas/behavior-evidence.js +157 -0
  46. package/dist/schemas/behavior-evidence.js.map +1 -0
  47. package/dist/schemas/behavior-policy.d.ts +6214 -0
  48. package/dist/schemas/behavior-policy.d.ts.map +1 -0
  49. package/dist/schemas/behavior-policy.js +896 -0
  50. package/dist/schemas/behavior-policy.js.map +1 -0
  51. package/dist/schemas/execution-result.d.ts +4 -4
  52. package/dist/schemas/gate-receipt.d.ts +10 -3
  53. package/dist/schemas/gate-receipt.d.ts.map +1 -1
  54. package/dist/schemas/gate-receipt.js +46 -3
  55. package/dist/schemas/gate-receipt.js.map +1 -1
  56. package/dist/schemas/index.d.ts +3 -0
  57. package/dist/schemas/index.d.ts.map +1 -1
  58. package/dist/schemas/index.js +3 -0
  59. package/dist/schemas/index.js.map +1 -1
  60. package/dist/schemas/obligation.d.ts +1 -0
  61. package/dist/schemas/obligation.d.ts.map +1 -1
  62. package/dist/schemas/obligation.js +9 -0
  63. package/dist/schemas/obligation.js.map +1 -1
  64. package/dist/schemas/test-catalog.d.ts +20 -2
  65. package/dist/schemas/test-catalog.d.ts.map +1 -1
  66. package/dist/schemas/test-catalog.js +13 -0
  67. package/dist/schemas/test-catalog.js.map +1 -1
  68. package/dist/schemas/test-map.d.ts +4 -0
  69. package/dist/schemas/test-map.d.ts.map +1 -1
  70. package/dist/schemas/test-map.js +24 -1
  71. package/dist/schemas/test-map.js.map +1 -1
  72. package/dist/schemas/verdict.d.ts +9 -0
  73. package/dist/schemas/verdict.d.ts.map +1 -1
  74. package/dist/schemas/verdict.js +27 -6
  75. package/dist/schemas/verdict.js.map +1 -1
  76. package/dist/testing/gate-runner.d.ts.map +1 -1
  77. package/dist/testing/gate-runner.js +2 -7
  78. package/dist/testing/gate-runner.js.map +1 -1
  79. package/dist/verdict/behavior.d.ts +87 -0
  80. package/dist/verdict/behavior.d.ts.map +1 -0
  81. package/dist/verdict/behavior.js +1328 -0
  82. package/dist/verdict/behavior.js.map +1 -0
  83. package/dist/verdict/evaluate.d.ts +10 -0
  84. package/dist/verdict/evaluate.d.ts.map +1 -1
  85. package/dist/verdict/evaluate.js +188 -27
  86. package/dist/verdict/evaluate.js.map +1 -1
  87. package/dist/verdict/index.d.ts +6 -0
  88. package/dist/verdict/index.d.ts.map +1 -1
  89. package/dist/verdict/index.js +6 -0
  90. package/dist/verdict/index.js.map +1 -1
  91. package/dist/verdict/pack-verifiers.d.ts.map +1 -1
  92. package/dist/verdict/pack-verifiers.js +124 -33
  93. package/dist/verdict/pack-verifiers.js.map +1 -1
  94. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"behavior.js","sourceRoot":"","sources":["../../src/verdict/behavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAkB,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,yBAAyB,GAE1B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,sBAAsB;IACtB,2BAA2B;CAC5B,CAAC,CAAC;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IACzD,mBAAmB;IACnB,kBAAkB;IAClB,sBAAsB;IACtB,4BAA4B;IAC5B,4BAA4B;CAC7B,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,8BAA8B;IAC9B,8BAA8B;IAC9B,qCAAqC;IACrC,mCAAmC;IACnC,kCAAkC;CACnC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IAC7D,6BAA6B;IAC7B,8BAA8B;IAC9B,6BAA6B;IAC7B,wBAAwB;IACxB,gCAAgC;CACjC,CAAC,CAAC;AAEH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IACzD,4BAA4B;IAC5B,iBAAiB;IACjB,uBAAuB;IACvB,6BAA6B;IAC7B,iCAAiC;CAClC,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,4BAA4B;IAC5B,4BAA4B;IAC5B,4BAA4B;IAC5B,2BAA2B;IAC3B,uBAAuB;CACxB,CAAC,CAAC;AAEH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAClE,GAAG,qBAAqB;IACxB,GAAG,cAAc;IACjB,GAAG,oBAAoB;IACvB,GAAG,kBAAkB;IACrB,GAAG,cAAc;IACjB,GAAG,iBAAiB;CACrB,CAAC,CAAC;AA+CH;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAe;IACpD,OAAO,eAAe,CAAC,MAAmB,CAAC,CAAC;AAC9C,CAAC;AAED,yEAAyE;AACzE,SAAS,aAAa,CAAC,QAAiB,EAAE,cAAwB;IAChE,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClG,OAAO,GAAG,OAAO,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,MAAM,MAAM,GAAG,QAAmC,CAAC;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACtG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,OAAO,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,aAAa,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,uDAAuD;AACvD,SAAS,WAAW,CAAC,IAAa,EAAE,KAAc;IAChD,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,IAAiB,CAAC,KAAK,aAAa,CAAC,KAAkB,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAEnG,uEAAuE;AACvE,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QACtC,CAAC,CAAC,OAAO;aACN,KAAK,CAAC,GAAG,CAAC;aACV,KAAK,CAAC,CAAC,CAAC;aACR,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrG,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,SAAS,cAAc,CAAC,IAAa,EAAE,OAAe;IACpD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACjE,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACvE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC/F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACvG,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,SAAS,iBAAiB,CAAC,aAAsB,EAAE,GAAW;IAC5D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,GAAG,aAAa,CAAC;IAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACpG,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAqBD,uDAAuD;AACvD,SAAS,iBAAiB,CAAC,KAAc,EAAE,aAAsB;IAC/D,MAAM,CAAC,GAAG,KAA8B,CAAC;IACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAChF,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9D,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACtG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACzC,CAAC;AAED,wDAAwD;AACxD,SAAS,cAAc,CAAC,KAAc,EAAE,SAAkB;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,SAAS,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC1D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uFAAuF;AACvF,SAAS,oBAAoB,CAC3B,KAAc,EACd,GAAsB;IAEtB,MAAM,CAAC,GAAG,KAAiC,CAAC;IAC5C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAChF,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9D,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1G,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACtG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC7F,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC5D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,SAAS,GAAI,CAAyB,CAAC,KAAK,CAAC;QACnD,MAAM,OAAO,GAAI,CAA2B,CAAC,OAAO,CAAC;QACrD,MAAM,KAAK,GAAI,CAAyB,CAAC,KAAK,CAAC;QAC/C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACvG,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAChE,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACrE,uEAAuE;QACvE,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBACxG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACzC,CAAC;AAKD,4EAA4E;AAC5E,SAAS,cAAc,CACrB,SAA4G,EAC5G,QAA8B;IAE9B,MAAM,KAAK,GAAe,IAAI,GAAG,EAAE,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACxF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,QAAQ,CAAC,KAAK,4BAA4B,EAAE,CAAC;QACrG,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkE,CAAC;QAC7F,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;YAClE,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,QAAQ,CAAC,KAAK,qCAAqC,EAAE,CAAC;YAC9G,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CAAC,MAAkB,EAAE,KAAc;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvG,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACrD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvG,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAmC,CAAC,CAAC;gBAC1E,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAWD,SAAS,SAAS;IAChB,OAAO,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AAC3F,CAAC;AAED,oDAAoD;AACpD,SAAS,UAAU,CACjB,MAA2E,EAC3E,KAA0E;IAE1E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC;AAID,yEAAyE;AACzE,SAAS,cAAc,CACrB,YAAoB,EACpB,IAA6B,EAC7B,MAAkB,EAClB,KAAiB,EACjB,QAA2B,EAC3B,SAAuC,EACvC,UAA+C;IAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,IAAI,YAAY,mFAAmF;SAC5G,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,YAAY,4BAA4B,EAAE,CAAC;IAC7E,CAAC;IACD,mEAAmE;IACnE,+BAA+B;IAC/B,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAW,CAAC,CAAC;IACtD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,YAAY,wBAAwB,IAAI,CAAC,OAAO,CAAW,4BAA4B,EAAE,CAAC;IAC5H,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,WAAW,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,YAAY,aAAa,SAAS,gCAAgC,EAAE,CAAC;IACvG,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;IACvD,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,CAAC,MAAc,EAAa,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,YAAY,MAAM,MAAM,EAAE,EAAE,CAAC,CAAC;IAEpG,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnF,OAAO,IAAI,CAAC,UAAU,SAAS,2CAA2C,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,2BAA2B,CAAC,CAAC;QACtF,kFAAkF;QAClF,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC9C,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,GAAG,GAAG,SAAS,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,yCAAyC,CAAC,CAAC;QACrG,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,uCAAuC,CAAC,CAAC;QAChH,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,iCAAiC,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,2BAA2B,CAAC,CAAC;QAC7F,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAwC,CAAC;QACjF,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,oBAAoB,CAAE,MAAkC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC3F,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,WAAW,IAAI,oBAAoB,CAAC,CAAC;YAC/F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpE,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,WAAW,IAAI,iCAAiC,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3D,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,WAAW,IAAI,oCAAoC,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAE,SAAS,GAAG,IAAI,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,UAAU,SAAS,0FAA0F,CAAC,CAAC;QAC7H,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,yBAAyB,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAyB,CAAC;YAChD,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC;YAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3E,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,QAAQ,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACnC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAwC,CAAC;gBAC1E,OAAO,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE;oBACrF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;oBAC7D,OAAO,CACL,QAAQ,CAAC,EAAE;wBACX,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;wBACzD,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CACjD,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,UAAU,SAAS,KAAK,IAAI,QAAQ,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC7F,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,2CAA2C;YAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzE,OAAO,IAAI,CAAC,UAAU,SAAS,6CAA6C,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,UAAU,SAAS,qCAAqC,CAAC,CAAC;QACxE,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC,UAAU,SAAS,mCAAmC,CAAC,CAAC;YACrF,mEAAmE;YACnE,mEAAmE;YACnE,6DAA6D;YAC7D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClD,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;oBACzC,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChD,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO;oBAAE,MAAM;YACrB,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CACT,UAAU,SAAS,0HAA0H,CAC9I,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBACvC,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChD,OAAO,IAAI,CAAC,UAAU,SAAS,yCAAyC,GAAG,IAAI,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;QACD,4DAA4D;QAC5D,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,UAAU,SAAS,oCAAoC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,IAAI,CACT,UAAU,SAAS,yBAAyB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAChH,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAA4C,CAAC;YACnE,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC,UAAU,SAAS,mBAAmB,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC7G,IAAI,GAAG,GAAkB,IAAI,CAAC;YAC9B,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC7C,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChD,GAAG,GAAG,SAAS,CAAC;oBAChB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,UAAU,SAAS,gEAAgE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnH,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC;YAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAwC,CAAC;gBAC1E,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,EAAE,CAAC;oBACpF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;oBAC7D,IACE,CAAC,QAAQ,CAAC,EAAE;wBACZ,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;wBAC1D,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EACjD,CAAC;wBACD,OAAO,IAAI,CAAC,UAAU,SAAS,mBAAmB,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC;oBAC7F,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,UAAU,SAAS,sCAAsC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACjD,OAAO,IAAI,CACT,UAAU,SAAS,iBAAiB,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,KAAK,CAAC,EAAE,CACtH,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,UAAU,SAAS,iDAAiD,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC9C,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,GAAG,GAAG,SAAS,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,UAAU,SAAS,qDAAqD,CAAC,CAAC;QACxG,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAwC,CAAC;QACjF,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,UAAU,SAAS,+BAA+B,CAAC,CAAC;QAC/F,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,UAAU,SAAS,8CAA8C,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,UAAU,SAAS,+CAA+C,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,YAAY,+BAA+B,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC;AAC1H,CAAC;AAED,uEAAuE;AACvE,SAAS,iBAAiB,CACxB,YAAoB,EACpB,IAA6B,EAC7B,YAAqB,EACrB,QAA2B;IAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,MAAc,EAAa,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,YAAY,MAAM,MAAM,EAAE,EAAE,CAAC,CAAC;IACpG,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAW,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAW,uBAAuB,CAAC,CAAC;QACtG,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/G,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACrI,OAAO,IAAI,CAAC,2EAA2E,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC,2CAA2C,KAAK,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3F,OAAO,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAW,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAW,cAAc,CAAC,CAAC;QACpG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9F,OAAO,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,qBAAqB,OAAO,0BAA0B,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAkB,CAAC;QAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO,IAAI,CACT,2BAA2B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CACjG,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAClF,OAAO,IAAI,CAAC,2BAA2B,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAgC,CAAC;YAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;gBACnD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAChF,MAAM,SAAS,GAAG,GAA8B,CAAC;gBACjD,OAAO,CACJ,cAA4B,CAAC,KAAK,CACjC,CAAC,MAAM,EAAE,EAAE,CACT,OAAO,MAAM,KAAK,QAAQ;oBAC1B,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;oBACvD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;oBACzD,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CACtD;oBACD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAC/B,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAChB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAC/F,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,2BAA2B,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,+BAA+B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,YAAY,kCAAkC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC5G,CAAC;AAWD,0FAA0F;AAC1F,SAAS,qBAAqB,CAAC,IAAa,EAAE,KAAc;IAC1D,MAAM,CAAC,GAAG,KAAiC,CAAC;IAC5C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACjG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;YACrD,CAAC;YACD,MAAM,MAAM,GAAG,IAA+B,CAAC;YAC/C,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,IAAI,GAAG,EAAE,CAAC;YAC5H,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC7D,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;oBACvD,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzD,IAAI,CAAC,OAAO,CAAC,EAAE;wBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACtF,CAAC;YACH,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,IAAI,gBAAgB,EAAE,CAAC;YAClH,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YAC5E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;YAC7D,CAAC;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBACpD,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,CAAC,EAAE;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5F,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YAChF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;YACpH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YAC1G,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC;gBACtE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;YACvD,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;YAC7G,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC;gBACtE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;YACxD,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,KAAK,SAAS;YACZ,OAAO,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QAChG,KAAK,MAAM;YACT,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAC/E;YACE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAMrC;IACC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;IACzC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,YAAY,uDAAuD,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC/H,CAAC;IACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,YAAY,GAA8B,IAAI,CAAC;IACnD,IAAI,YAAY,GAA8B,IAAI,CAAC;IACnD,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5G,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1D,YAAY,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1D,YAAY,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IACtF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;AAC1F,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAsC;IACnE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE;SACxG,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SAC7B,IAAI,CAAC,cAAc,CAAC,CAAC;AAC1B,CAAC;AAED,0EAA0E;AAC1E,SAAS,iBAAiB,CACxB,UAAsB,EACtB,MAAc,EACd,OAAsC,EACtC,OAA6B,EAC7B,UAA4D;IAE5D,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC9E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,qBAAqB,MAAM,yEAAyE;YAC5H,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAiC,CAAC;IACrE,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QAClF,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EACJ,IAAI,YAAY,YAAY,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,QAAQ,CAAC,UAAU,CAAC,OAAO,IAAI;gBACpG,YAAY,KAAK,yDAAyD;YAC5E,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QACjE,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EACJ,IAAI,YAAY,YAAY,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW;gBAChG,iEAAiE;YACnE,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IACD,wEAAwE;IACxE,uEAAuE;IACvE,qEAAqE;IACrE,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IACvD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE9C,0DAA0D;IAC1D,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7F,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IAEnD,uEAAuE;IACvE,uEAAuE;IACvE,+BAA+B;IAC/B,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/E,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,+HAA+H;YACvJ,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAI,MAAM,CAAC,QAAQ,CAAY,CAAC,WAAW,EAAE,CAAC;IAClE,MAAM,UAAU,GAAwE,EAAE,CAAC;IAC3F,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAC3C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YACpB,gBAAgB,GAAG,IAAI,YAAY,mBAAmB,QAAQ,wCAAwC,CAAC;YACvG,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QACzG,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAClC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC7C,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAI,YAAY,sCAAsC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,IAAI,8BAA8B;gBAC5I,SAAS,EAAE,CAAC,QAAQ,CAAC;aACtB,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/E,gBAAgB;gBACd,IAAI,YAAY,mBAAmB,QAAQ,cAAc,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG;oBACxF,GAAG,WAAW,CAAC,IAAI,gCAAgC,UAAU,CAAC,UAAU,+BAA+B,CAAC;QAC5G,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,YAAY,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzG,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACzD,MAAM,EACJ,gBAAgB;gBAChB,IAAI,YAAY,YAAY,QAAQ,CAAC,UAAU,CAAC,EAAE,wEAAwE;YAC5H,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EACJ,IAAI,YAAY,YAAY,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY;gBACrG,6FAA6F;YAC/F,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAiE,CAAC;IAChG,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE,CAAC;QAC9D,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,6BAA6B,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,cAAc,8BAA8B;YACrJ,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,mEAAmE;IACnE,iDAAiD;IACjD,IAAI,QAAQ,CAAC,kBAAkB,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxE,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,mJAAmJ;YAC3K,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,sEAAsE;IACtE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACtC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAiC,CAAC,CAAC,MAAM,EAAE;YACxG,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,MAAM,gBAAgB,GAAI,WAAqC,CAAC,KAAK,CAAC;IACtE,+DAA+D;IAC/D,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACzH,IAAI,iBAAiB,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAE/G,uEAAuE;IACvE,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC5D,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7F,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,+BAA+B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,uDAAuD;YAC9I,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAClD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,OAAO,CAAC,eAAe,CACrE,CAAC;IACF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,+EAA+E;YACvG,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAwB;QACpC,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,QAAQ,EAAE,WAAW,CAAC,YAAY;QAClC,MAAM,EAAE,WAAW,CAAC,MAAM;KAC3B,CAAC;IACF,MAAM,QAAQ,GAAsB;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,gBAAgB;KACzB,CAAC;IACF,MAAM,WAAW,GAAG,gBAAgB,CAAC;IACrC,MAAM,UAAU,GAAI,UAAoC,CAAC,KAAK,CAAC;IAE/D,wEAAwE;IACxE,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,EAAE,IAA0C,EAAE,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/H,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,6BAA6B,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,uCAAuC;IACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAiB,EAAE,CACrD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IAC3E,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpD,IAAK,IAA2B,CAAC,IAAI,KAAK,UAAU;YAAE,eAAe,GAAG,IAAI,CAAC;QAC7E,MAAM,MAAM,GAAG,cAAc,CAC3B,YAAY,EACZ,IAA0C,EAC1C,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,CACX,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7E,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,6BAA6B,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7G,CAAC;IACH,CAAC;IACD,KAAK,eAAe,CAAC;IAErB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,iEAAiE;IACjE,IAAI,UAAU,CAAC,QAAQ,KAAK,2BAA2B,EAAE,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,WAAW,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC1D,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,IAAI,YAAY,aAAa,KAAK,gCAAgC;oBAC1E,SAAS,EAAE,CAAC,QAAQ,CAAC;iBACtB,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAClD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnF,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,IAAI,YAAY,+BAA+B,KAAK,8DAA8D;oBAC1H,SAAS,EAAE,CAAC,QAAQ,CAAC;iBACtB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,2DAA2D;IAC3D,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,WAAW,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;YAAE,SAAS;QACpE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE,SAAS;QACnD,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvD,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3D,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC5D,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,MAAM,EACJ,IAAI,YAAY,aAAa,KAAK,SAAS,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,yBAAyB;oBAC9F,mHAAmH;gBACrH,SAAS,EAAE,CAAC,QAAQ,CAAC;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;AACxD,CAAC;AAOD;;;;;GAKG;AACH,SAAS,qBAAqB,CAC5B,UAAsB,EACtB,QAA8B,EAC9B,MAAc,EACd,OAAsC,EACtC,OAA6B;IAE7B,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAAE,SAAS;QACjD,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAiB,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW;YAAE,SAAS;QAClF,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAS;QAChD,MAAM,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,SAAS;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;YAC3B,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACP,MAAM,EAAE,SAAS;oBACjB,MAAM,EACJ,IAAI,YAAY,YAAY,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW;wBACjG,wGAAwG;oBAC1G,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACrC;aACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU;YAAE,SAAS;QACtC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAI,YAAY,qBAAqB,QAAQ,CAAC,UAAU,CAAC,EAAE,yGAAyG;gBAC5K,SAAS,EAAE,EAAE;aACd;SACF,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;gBACP,MAAM,EAAE,SAAS;gBACjB,MAAM,EACJ,IAAI,YAAY,qBAAqB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU;oBACrG,oHAAoH;gBACtH,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;aAClF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAuB,CAAC;IACjD,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAE,MAA+B,CAAC,OAAO,CAAwB,CAAC;IACjH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;AAChF,CAAC;AAOD;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,UAAsB,EACtB,QAA8B,EAC9B,MAAc,EACd,QAAgB,EAChB,OAA4B,EAC5B,OAA6B;IAE7B,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAgB,EAAE,CAAC,CAAC;QACjD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE;KAC9D,CAAC,CAAC;IACH,KAAK,MAAM,CAAC;IACZ,IAAI,OAAO,CAAC,cAAc,KAAK,6BAA6B,EAAE,CAAC;QAC7D,OAAO,OAAO,CAAC,IAAI,YAAY,mBAAmB,QAAQ,sCAAsC,CAAC,CAAC;IACpG,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,IAAI,YAAY,mBAAmB,QAAQ,iBAAiB,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,OAAO,OAAO,CACZ,IAAI,YAAY,mBAAmB,QAAQ,yFAAyF,CACrI,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,kBAAkB,KAAK,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAC/D,OAAO,OAAO,CACZ,IAAI,YAAY,mBAAmB,QAAQ,iFAAiF,CAC7H,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACpD,OAAO,OAAO,CACZ,IAAI,YAAY,mBAAmB,QAAQ,sEAAsE,CAClH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,sBAAsB,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChF,OAAO,OAAO,CACZ,IAAI,YAAY,mBAAmB,QAAQ,4EAA4E,CACxH,CAAC;IACJ,CAAC;IACD,IACE,OAAO,CAAC,sBAAsB,KAAK,SAAS;QAC5C,OAAO,CAAC,sBAAsB,KAAK,IAAI;QACvC,OAAO,CAAC,sBAAsB,KAAK,OAAO,CAAC,sBAAsB,EACjE,CAAC;QACD,OAAO,OAAO,CACZ,IAAI,YAAY,mBAAmB,QAAQ,0EAA0E,CACtH,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,MAAM,cAAc,GAClB,YAAY,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;QACzC,WAAW,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;QACxC,CAAC,GAAG,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,OAAO,CACZ,IAAI,YAAY,mBAAmB,QAAQ,oFAAoF,CAChI,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,IAAI,QAAQ,CAAC,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC3D,OAAO,OAAO,CACZ,IAAI,YAAY,mBAAmB,QAAQ,wDAAwD,CACpG,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,OAAO,CACZ,IAAI,YAAY,mBAAmB,QAAQ,4DAA4D,CACxG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CACvB,UAAsB,EACtB,QAA8B,EAC9B,MAAc,EACd,OAAsC,EACtC,OAA6B;IAE7B,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;IACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;QACrD,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EACJ,IAAI,YAAY,oBAAoB,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB;gBAC3E,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,2EAA2E;YAC5G,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IACvD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACtC,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7F,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,2BAA2B,QAAQ,0GAA0G;YACrK,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,oBAAoB,QAAQ,CAAC,UAAU,CAAC,EAAE,yFAAyF;YAC3J,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACtC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,YAAY,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAiC,CAAC,CAAC,MAAM,EAAE;YACxG,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAsB;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,IAAI;QACjB,MAAM,EAAG,WAAqC,CAAC,KAAK;KACrD,CAAC;IACF,MAAM,WAAW,GAAI,WAAqC,CAAC,KAAK,CAAC;IACjE,MAAM,UAAU,GAAI,UAAoC,CAAC,KAAK,CAAC;IAC/D,uEAAuE;IACvE,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;IACnD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,iBAAiB,CAAE,OAAiC,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACrG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAI,YAAY,iEAAiE;gBACzF,SAAS,EAAE,CAAC,QAAQ,CAAC;aACtB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAI,YAAY,4FAA4F;gBACpH,SAAS,EAAE,CAAC,QAAQ,CAAC;aACtB,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAI,OAAgC,CAAC,MAAM,CAAC;QACxD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,EAAE,CAAC;gBACpF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC7D,IACE,CAAC,QAAQ,CAAC,EAAE;oBACZ,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;oBAClE,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EACzD,CAAC;oBACD,OAAO;wBACL,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,IAAI,YAAY,sBAAsB,IAAI,wEAAwE;wBAC1H,SAAS,EAAE,CAAC,QAAQ,CAAC;qBACtB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,mEAAmE;IACnE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAiB,EAAE,CACrD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IAC3E,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,cAAc,CAC3B,YAAY,EACZ,IAA0C,EAC1C,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,CACX,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7E,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,6BAA6B,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7G,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,WAAW,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;YAAE,SAAS;QACpE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE,SAAS;QACnD,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvD,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3D,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC5D,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,MAAM,EACJ,IAAI,YAAY,aAAa,KAAK,SAAS,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,yBAAyB;oBAC9F,yDAAyD;gBAC3D,SAAS,EAAE,CAAC,QAAQ,CAAC;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAC7B,QAA8B,EAC9B,OAA4B,EAC5B,SAA6E,EAC7E,YAAoB,EACpB,QAAgB,EAChB,MAAkB;IAElB,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAOlC,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAClD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,OAAO,CAAC,eAAe,CACrE,CAAC;IACF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,YAAY,mBAAmB,QAAQ,sFAAsF,CAAC;IAC3I,CAAC;IACD,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,eAAe,GAAc,EAAE,CAAC;IACtC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAE,MAAM,CAAC,IAAgC,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACxH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC/F,OAAO,IAAI,YAAY,mBAAmB,QAAQ,qBAAqB,KAAK,CAAC,CAAC,CAAW,gDAAgD,CAAC;QAC5I,CAAC;QACD,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrE,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACpC,OAAO,IAAI,YAAY,qBAAqB,SAAS,CAAC,IAAI,0BAA0B,YAAY,gDAAgD,CAAC;IACnJ,CAAC;IACD,oEAAoE;IACpE,qEAAqE;IACrE,8DAA8D;IAC9D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,YAAY,oBAAoB,MAAM,CAAC,KAAK,CAAC,oGAAoG,CAAC;QAC/J,CAAC;IACH,CAAC;IACD,oDAAoD;IACpD,MAAM,aAAa,GAA4B,EAAE,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,YAAY,mBAAmB,QAAQ,sBAAsB,IAAI,gDAAgD,CAAC;QAC/H,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,YAAY,gGAAgG,CAAC;IAC1H,CAAC;IACD,mEAAmE;IACnE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACnC,gEAAgE;QAChE,mEAAmE;QACnE,+DAA+D;QAC/D,MAAM,WAAW,GAAI,MAAM,CAAC,IAA8B,CAAC,OAAO,CAAC;QACnE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,IAAI,YAAY,kEAAkE,CAAC;QAC5F,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,IAAI,YAAY,wBAAwB,WAAW,+DAA+D,CAAC;QAC5H,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;YACxC,OAAO,IAAI,YAAY,2FAA2F,CAAC;QACrH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACvE,OAAO,IAAI,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,+DAA+D,CAAC;IACpH,CAAC;IACD,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,YAAY,mBAAmB,QAAQ,iBAAiB,IAAI,gDAAgD,CAAC;QAC1H,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACtC,CAAC;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;IACtC,MAAM,cAAc,GAClB,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;QACvF,CAAC,CAAE,YAAwC;QAC3C,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,YAAY,8FAA8F,CAAC;IACxH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type HttpRouteCandidate } from './registry.js';
2
+ import { type BehaviorObligationContext } from './behavior.js';
2
3
  import { type Obligation } from '../schemas/obligation.js';
3
4
  import type { TrustTier } from '../schemas/common.js';
4
5
  import type { CauseCode, Verdict } from '../schemas/verdict.js';
@@ -81,6 +82,15 @@ export interface VerdictContext {
81
82
  * satisfaction (no any-endpoint fallback).
82
83
  */
83
84
  httpRoutes?: readonly HttpRouteCandidate[] | null;
85
+ /**
86
+ * Trusted behavior context (plan 2026-09-19 §4.7, Phase 5): the
87
+ * compiled catalog plus obligation→case requirements from the
88
+ * controller-bound compilation — never CLI configuration, never
89
+ * record payloads. When an obligation has required cases AND names a
90
+ * strong behavior contract, aggregation runs across the required
91
+ * cases instead of the legacy any-claim-satisfied shortcut.
92
+ */
93
+ behavior?: BehaviorObligationContext | null;
84
94
  /** Injected clock instant (invariant 7) — the only time source. */
85
95
  now: Date | string;
86
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/verdict/evaluate.ts"],"names":[],"mappings":"AAuDA,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AASvB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AA+BjE,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,EAAE,SAAS,OAAO,EAM/C,CAAC;AAEF;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,8DAA8D;AAC9D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnE,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,4CAA4C;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,yEAAyE;IACzE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClD,gEAAgE;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B;;;;OAIG;IACH,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,wEAAwE;IACxE,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IAC9B,wEAAwE;IACxE,cAAc,EAAE,OAAO,CAAC;IACxB,uIAAuI;IACvI,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACxE;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAClD,mEAAmE;IACnE,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAcrD;AA62CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,cAAc,GACtB,cAAc,CAiLhB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,OAAO,EAAE,cAAc,GACtB,iBAAiB,EAAE,CAuBrB"}
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/verdict/evaluate.ts"],"names":[],"mappings":"AAuDA,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AA6CjE,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,EAAE,SAAS,OAAO,EAM/C,CAAC;AAEF;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,8DAA8D;AAC9D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnE,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,4CAA4C;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,yEAAyE;IACzE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClD,gEAAgE;IAChE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B;;;;OAIG;IACH,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,wEAAwE;IACxE,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IAC9B,wEAAwE;IACxE,cAAc,EAAE,OAAO,CAAC;IACxB,uIAAuI;IACvI,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACxE;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAAC;IAClD;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC5C,mEAAmE;IACnE,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAcrD;AAk/CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,cAAc,GACtB,cAAc,CAgNhB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,OAAO,EAAE,cAAc,GACtB,iBAAiB,EAAE,CAuBrB"}
@@ -56,8 +56,9 @@ import { z } from 'zod';
56
56
  import { capabilityFor, registerContractCapabilities, registerContractVerifier, verifierFor, } from './registry.js';
57
57
  import { registerPackVerifiers, interpretObservedPath, resolveHttpRoute } from './pack-verifiers.js';
58
58
  import { causeForVerdict } from './cause.js';
59
+ import { BEHAVIOR_CASE_CONTRACTS, evaluateRequiredCases, } from './behavior.js';
59
60
  import { canonicalJson } from '../canonical-json.js';
60
- import { fingerprint } from '../fingerprints.js';
61
+ import { fingerprintObligation } from '../fingerprints.js';
61
62
  import { compareStrings } from '../graph/util.js';
62
63
  import { isProvenancedRecord } from '../provenance.js';
63
64
  import { ClassificationSchema } from '../schemas/classification.js';
@@ -69,6 +70,20 @@ import { CRUD_CONTRACT_PREFIX, PERSISTENCE_CONTRACT_PREFIX } from '../policy/ind
69
70
  const UI_ACTION_KIND = 'ui.action';
70
71
  const UI_VISIBLE_KIND = 'ui.visible-result';
71
72
  const PERSISTENCE_KIND_PREFIX = 'persistence.';
73
+ /**
74
+ * The exact record kind the witness stamps browser/server-channel
75
+ * persistence on. Channel qualifiers below key off exact kinds (never
76
+ * prefixes): a channel stamp on any other kind is admissible NOWHERE.
77
+ */
78
+ const PERSISTENCE_ENTITY_KIND = 'persistence.entity';
79
+ /**
80
+ * Observe-channel record kind + payload discriminant (Phase 2). String
81
+ * literals (not pack imports — core never depends on packs); kept in
82
+ * lockstep with `@gate-forge/pack-playwright`'s OBSERVED_KIND /
83
+ * OBSERVE_CHANNEL.
84
+ */
85
+ const OBSERVED_RECORD_KIND = 'persistence.observed';
86
+ const OBSERVE_CHANNEL = 'observe';
72
87
  /**
73
88
  * The server-witnessed persistence channel (product-gap fix: backend-only
74
89
  * tables — e.g. a transactional outbox — can never honestly appear in a
@@ -393,6 +408,48 @@ function exactValueEchoFailure(operation, actionRecord, persistenceRecord) {
393
408
  }
394
409
  return null;
395
410
  }
411
+ /**
412
+ * Observe-channel echo (Phase 2): the witness-observed request fields
413
+ * a suite-driven test sent must be echoed exactly by the independently
414
+ * fetched persisted fields on the SAME entity. Same EVIDENCE_VALUE_MISMATCH
415
+ * semantics as the browser channel, but both sides ride ONE witness
416
+ * record (`payload.observedFields` = proxied request scalars,
417
+ * `payload.fields` = adapter read) — there is no ui.action anchor on
418
+ * this channel.
419
+ *
420
+ * Returns:
421
+ * string | null: the first echo-violation description, or null when
422
+ * every observed input value is echoed exactly.
423
+ */
424
+ function observedEchoFailure(operation, record) {
425
+ const observed = payloadOf(record)?.['observedFields'];
426
+ if (!isPlainObject(observed) || Object.keys(observed).length === 0) {
427
+ return (`exact-value echo violation (EVIDENCE_VALUE_MISMATCH): the observe record ` +
428
+ `'${labelOf(record)}' carries no witness-observed request fields, so the persisted ` +
429
+ `state cannot be echo-checked for the '${operation}' obligation (the proxy must see ` +
430
+ 'a JSON or form body to echo against)');
431
+ }
432
+ const persisted = payloadOf(record)?.['fields'];
433
+ if (!isPlainObject(persisted)) {
434
+ return (`exact-value echo violation (EVIDENCE_VALUE_MISMATCH): the observe record ` +
435
+ `'${labelOf(record)}' observed no persisted fields to echo the ` +
436
+ `'${operation}' request against`);
437
+ }
438
+ for (const key of Object.keys(observed).sort()) {
439
+ const observedValue = observed[key];
440
+ if (!isJsonValue(observedValue))
441
+ continue;
442
+ const persistedValue = persisted[key];
443
+ if (!isJsonValue(persistedValue) || canonicalJson(persistedValue) !== canonicalJson(observedValue)) {
444
+ return (`exact-value echo violation (EVIDENCE_VALUE_MISMATCH): the test sent ` +
445
+ `${key}=${canonicalJson(observedValue)} (witness-observed request) but the independently ` +
446
+ `read persisted fields on the same entity carry ` +
447
+ `${isJsonValue(persistedValue) ? canonicalJson(persistedValue) : '<none>'} — a 2xx status ` +
448
+ 'or row presence alone is insufficient');
449
+ }
450
+ }
451
+ return null;
452
+ }
396
453
  /**
397
454
  * The operation-specific postcondition a witnessed persistence record
398
455
  * must meet for the claim to be satisfiable. Every EXPECTATION is
@@ -562,8 +619,14 @@ const PERSISTENCE_CAPABILITY = {
562
619
  'Backend-only state additionally admits the server-witnessed channel: the witness runs the ' +
563
620
  "resource's adapter server probe (probeServer) ITSELF and stamps `channel: 'server'` " +
564
621
  "records carrying `declaredKind: 'server-e2e'` — admissible without the ui.action browser " +
565
- 'anchor only for obligations the supervisor registered server-e2e',
566
- testKinds: ['browser-e2e', 'server-e2e', 'api-e2e'],
622
+ 'anchor only for obligations the supervisor registered server-e2e. ' +
623
+ 'Suite-driven browser tests additionally admit the Observe channel: the witness matches ' +
624
+ "the test's own proxied mutation exchange against the adapter's trusted observe binding, " +
625
+ "reads the entity itself, and stamps `channel: 'observe'` records carrying the observed " +
626
+ 'request fields — admissible without the ui.action anchor only for obligations the ' +
627
+ 'supervisor registered observed-e2e; the request echo is graded exactly like the ' +
628
+ 'engine-entered echo (EVIDENCE_VALUE_MISMATCH on mismatch)',
629
+ testKinds: ['browser-e2e', 'observed-e2e', 'server-e2e', 'api-e2e'],
567
630
  availability: { status: 'available' },
568
631
  };
569
632
  /**
@@ -593,7 +656,7 @@ const CRUD_CAPABILITY = {
593
656
  registerContractCapabilities(PERSISTENCE_CAPABILITY);
594
657
  registerContractCapabilities(CRUD_CAPABILITY);
595
658
  /**
596
- * The built-in persistence grader: dispatches between the two evidence
659
+ * The built-in persistence grader: dispatches between the three evidence
597
660
  * channels an obligation's claim may be proven through.
598
661
  *
599
662
  * - SERVER-WITNESSED channel (`payload.channel: 'server'` + `payload.
@@ -611,18 +674,28 @@ registerContractCapabilities(CRUD_CAPABILITY);
611
674
  * `server-e2e`. Records carrying the channel WITHOUT the kind stamp
612
675
  * (impossible from an honest witness) are admissible NOWHERE — never
613
676
  * server-satisfying and excluded from the browser path (fail closed).
677
+ * - OBSERVE channel (`payload.channel: 'observe'` on a
678
+ * `persistence.observed` record, witness-stamped): satisfies WITHOUT
679
+ * the ui.action anchor when the witness-observed proxied mutation
680
+ * plus the independent adapter read meet the SAME postcondition, and
681
+ * (create/update) the observed request fields echo exactly
682
+ * (EVIDENCE_VALUE_MISMATCH on mismatch — same rule as the
683
+ * engine-entered echo). Admissible only for obligations the supervisor
684
+ * registered `observed-e2e`. Weaker than the browser channel by
685
+ * design: the suite drove the browser, so "UI was used" is NOT proven
686
+ * — only "the server stored what the proxied request sent".
614
687
  * - BROWSER channel: the historical ui.action + witnessed persistence
615
688
  * rule, byte-identical to its pre-server-channel behavior for any
616
- * evidence set that could exist without this channel (server-channel
617
- * records are excluded from its persistence set — they are not browser
618
- * evidence and must neither satisfy nor invalidate a UI-anchored
619
- * claim).
689
+ * evidence set that could exist without the newer channels (server-
690
+ * and observe-channel records are excluded from its persistence set —
691
+ * they are not browser evidence and must neither satisfy nor
692
+ * invalidate a UI-anchored claim).
620
693
  *
621
694
  * Aggregation: browser satisfaction wins (it is the stricter channel),
622
- * then server satisfaction, then the browser outcome verbatim — except
623
- * that a typed server-channel postcondition failure upgrades a browser
624
- * `missing` to `invalid` (the witness DID observe the state; the claim
625
- * declared the operation and lied).
695
+ * then server, then observe, then the browser outcome verbatim — except
696
+ * that a typed server/observe-channel postcondition failure upgrades a
697
+ * browser `missing` to `invalid` (the witness DID observe the state;
698
+ * the claim declared the operation and lied).
626
699
  */
627
700
  function persistenceClaimVerifier(claim, evidence, obligation, primaryKey) {
628
701
  const requiredOp = persistenceOperation(obligation.contract);
@@ -649,10 +722,12 @@ function persistenceClaimVerifier(claim, evidence, obligation, primaryKey) {
649
722
  // post-intent record is self-contained (the witness consumed the paired
650
723
  // pre-intent observation INTO `payload.before` at stamping time), so
651
724
  // records are graded independently against their OWN entityId — there
652
- // is no ui.action anchor to agree with.
725
+ // is no ui.action anchor to agree with. The kind must be EXACTLY
726
+ // `persistence.entity`: the witness stamps the server channel only on
727
+ // that kind, so any other kind carrying the stamp is admissible
728
+ // NOWHERE (fail closed — never server-satisfying).
653
729
  const serverQualified = evidence.filter((entry) => entry.trust === 'witnessed' &&
654
- typeof entry.record.kind === 'string' &&
655
- entry.record.kind.startsWith(PERSISTENCE_KIND_PREFIX) &&
730
+ entry.record.kind === PERSISTENCE_ENTITY_KIND &&
656
731
  payloadOf(entry.record)?.['channel'] === SERVER_CHANNEL &&
657
732
  payloadOf(entry.record)?.['declaredKind'] === SERVER_E2E_KIND);
658
733
  let serverFailure = null;
@@ -683,11 +758,67 @@ function persistenceClaimVerifier(claim, evidence, obligation, primaryKey) {
683
758
  if (serverFailure === null)
684
759
  serverFailure = failure;
685
760
  }
686
- // No qualifying server record met the postcondition: if the browser
687
- // channel merely lacks evidence, the witnessed server observation is
688
- // the sharper diagnosis — return it typed-invalid instead.
689
- if (browser.status === 'missing' && serverFailure !== null) {
690
- return { status: 'invalid', reason: `${serverFailure} (obligation '${obligation.id}')` };
761
+ // No qualifying server record met the postcondition: remember the
762
+ // sharpest diagnosis (non-empty qualified sets always leave one —
763
+ // every candidate either satisfies or records its failure), but let
764
+ // the Observe channel grade first — the combined upgrade below
765
+ // prefers the server failure, then the observe one, over a bare
766
+ // browser missing.
767
+ }
768
+ // OBSERVE channel (Phase 2): grade every qualifying observe record.
769
+ // Each record is self-contained (the witness consumed the proxied
770
+ // request, the open snapshot, and the adapter read INTO the payload
771
+ // at finalize time), so records grade independently against their OWN
772
+ // entityId — there is no ui.action anchor to agree with. Non-create/
773
+ // update operations carry no echo (presence/absence grades them).
774
+ const observeQualified = evidence.filter((entry) => entry.trust === 'witnessed' &&
775
+ typeof entry.record.kind === 'string' &&
776
+ entry.record.kind === OBSERVED_RECORD_KIND &&
777
+ payloadOf(entry.record)?.['channel'] === OBSERVE_CHANNEL);
778
+ let observeFailure = null;
779
+ if (observeQualified.length > 0) {
780
+ const graded = observeQualified
781
+ .map((entry) => ({
782
+ entry,
783
+ entity: normalizeEntityId(payloadOf(entry.record)?.['entityId'], primaryKey),
784
+ }))
785
+ .sort((a, b) => compareStrings(labelOf(a.entry.record), labelOf(b.entry.record)));
786
+ for (const candidate of graded) {
787
+ if (!candidate.entity.ok) {
788
+ if (observeFailure === null) {
789
+ observeFailure =
790
+ `observe persistence record '${labelOf(candidate.entry.record)}': ${candidate.entity.detail}`;
791
+ }
792
+ continue;
793
+ }
794
+ const failure = persistencePostconditionFailure(obligation, requiredOp, candidate.entry.record, candidate.entity.key);
795
+ if (failure !== null) {
796
+ if (observeFailure === null)
797
+ observeFailure = failure;
798
+ continue;
799
+ }
800
+ if (requiredOp === 'create' || requiredOp === 'update') {
801
+ const echoFailure = observedEchoFailure(requiredOp, candidate.entry.record);
802
+ if (echoFailure !== null) {
803
+ if (observeFailure === null)
804
+ observeFailure = echoFailure;
805
+ continue;
806
+ }
807
+ }
808
+ return {
809
+ status: 'satisfied',
810
+ recordIds: sortedUnique([candidate.entry.record.recordId].map((id) => (typeof id === 'string' ? id : ''))),
811
+ };
812
+ }
813
+ }
814
+ // No channel satisfied: a witnessed channel postcondition failure
815
+ // upgrades a bare browser missing to invalid (the witness DID observe
816
+ // state; the claim declared the operation and lied) — server first,
817
+ // then observe. Otherwise the browser outcome stands verbatim.
818
+ if (browser.status === 'missing') {
819
+ const sharp = serverFailure ?? observeFailure;
820
+ if (sharp !== null) {
821
+ return { status: 'invalid', reason: `${sharp} (obligation '${obligation.id}')` };
691
822
  }
692
823
  }
693
824
  return browser;
@@ -1374,12 +1505,7 @@ export function evaluateObligation(obligation, context) {
1374
1505
  // 3. Waivers: exact (resourceId, fingerprint) scope only (D4).
1375
1506
  // Precedence: unexpired non-stale → waived; expired → invalid (D4);
1376
1507
  // stale owner → stale (GF-17). Sorted for determinism.
1377
- const fp = fingerprint({
1378
- resourceId: verified.resourceId,
1379
- contract: verified.contract,
1380
- policyId: verified.policyId,
1381
- lifecycle: verified.lifecycle,
1382
- });
1508
+ const fp = fingerprintObligation(verified);
1383
1509
  const matching = context.waivers
1384
1510
  .map((entry) => {
1385
1511
  // Strip the engine-only flag before strict validation; a waiver
@@ -1444,7 +1570,42 @@ export function evaluateObligation(obligation, context) {
1444
1570
  .filter((record) => record !== null)
1445
1571
  .filter((record) => record.obligationId === verified.id);
1446
1572
  const consideredIds = sortedUnique(considered.map((record) => (typeof record.recordId === 'string' ? record.recordId : '')));
1447
- // 6. Per-claim evidence evaluation with deterministic aggregation:
1573
+ // 6. Required-case aggregation (plan 2026-09-19 §4.7): obligations
1574
+ // compiled from the behavior catalog with a strong behavior
1575
+ // contract grade across ALL required cases — never the legacy
1576
+ // any-claim-satisfied shortcut. A legacy record never contributes
1577
+ // to the new case set.
1578
+ const behaviorRequirements = context.behavior?.requirements?.[verified.id];
1579
+ if (behaviorRequirements !== undefined && BEHAVIOR_CASE_CONTRACTS.has(verified.contract)) {
1580
+ const behavior = context.behavior;
1581
+ const outcome = evaluateRequiredCases({
1582
+ obligation: verified,
1583
+ requiredCaseIds: behaviorRequirements,
1584
+ records: considered.map((record) => ({
1585
+ recordId: record.recordId,
1586
+ testId: record.testId,
1587
+ kind: record.kind,
1588
+ origin: record.origin,
1589
+ trust: trustOf(record),
1590
+ payload: record.payload,
1591
+ })),
1592
+ context: {
1593
+ catalog: behavior.catalog,
1594
+ requirements: behavior.requirements,
1595
+ authorityProfileDigest: behavior.authorityProfileDigest,
1596
+ plannedTestIds: claims.map((claim) => claim.testId),
1597
+ },
1598
+ httpRoutes: context.httpRoutes ?? null,
1599
+ });
1600
+ if (outcome.status === 'satisfied') {
1601
+ return { verdict: 'satisfied', reason: null, recordIds: outcome.recordIds };
1602
+ }
1603
+ if (outcome.status === 'invalid') {
1604
+ return { verdict: 'invalid', reason: outcome.reason, recordIds: outcome.recordIds };
1605
+ }
1606
+ return { verdict: 'missing', reason: outcome.reason, recordIds: outcome.recordIds };
1607
+ }
1608
+ // 7. Per-claim evidence evaluation with deterministic aggregation:
1448
1609
  // satisfied beats invalid beats missing.
1449
1610
  let firstInvalid = null;
1450
1611
  let firstMissing = null;