@effect/sql-pg 4.0.0-rc.111 → 4.0.0-rc.113

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 (60) hide show
  1. package/AGENTS.md +24 -9
  2. package/CLAUDE.md +24 -9
  3. package/ai-docs/package.json +2 -2
  4. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +18 -5
  5. package/ai-docs/src/01_effect/01_basics/index.md +5 -3
  6. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +1 -1
  7. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +2 -2
  8. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +2 -2
  9. package/ai-docs/src/03_stream/30_encoding.ts +5 -7
  10. package/ai-docs/src/08_observability/10_logging.ts +1 -1
  11. package/ai-docs/src/70_cli/10_basics.ts +7 -7
  12. package/ai-docs/src/71_ai/10_language-model.ts +2 -2
  13. package/ai-docs/src/71_ai/20_tools.ts +1 -1
  14. package/ai-docs/src/71_ai/30_chat.ts +1 -1
  15. package/dist/PgAuth.d.ts +93 -0
  16. package/dist/PgAuth.d.ts.map +1 -0
  17. package/dist/PgAuth.js +229 -0
  18. package/dist/PgAuth.js.map +1 -0
  19. package/dist/PgClient.d.ts +49 -82
  20. package/dist/PgClient.d.ts.map +1 -1
  21. package/dist/PgClient.js +58 -510
  22. package/dist/PgClient.js.map +1 -1
  23. package/dist/PgConnection.d.ts +177 -0
  24. package/dist/PgConnection.d.ts.map +1 -0
  25. package/dist/PgConnection.js +1786 -0
  26. package/dist/PgConnection.js.map +1 -0
  27. package/dist/PgPool.d.ts +107 -0
  28. package/dist/PgPool.d.ts.map +1 -0
  29. package/dist/PgPool.js +124 -0
  30. package/dist/PgPool.js.map +1 -0
  31. package/dist/PgProtocol.d.ts +783 -0
  32. package/dist/PgProtocol.d.ts.map +1 -0
  33. package/dist/PgProtocol.js +1202 -0
  34. package/dist/PgProtocol.js.map +1 -0
  35. package/dist/PgTypes.d.ts +429 -0
  36. package/dist/PgTypes.d.ts.map +1 -0
  37. package/dist/PgTypes.js +1511 -0
  38. package/dist/PgTypes.js.map +1 -0
  39. package/dist/index.d.ts +20 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +20 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/internal/connection.d.ts +2 -0
  44. package/dist/internal/connection.d.ts.map +1 -0
  45. package/dist/internal/connection.js +5 -0
  46. package/dist/internal/connection.js.map +1 -0
  47. package/dist/internal/sqlError.d.ts +10 -0
  48. package/dist/internal/sqlError.d.ts.map +1 -0
  49. package/dist/internal/sqlError.js +57 -0
  50. package/dist/internal/sqlError.js.map +1 -0
  51. package/package.json +8 -12
  52. package/src/PgAuth.ts +318 -0
  53. package/src/PgClient.ts +138 -681
  54. package/src/PgConnection.ts +2294 -0
  55. package/src/PgPool.ts +231 -0
  56. package/src/PgProtocol.ts +1863 -0
  57. package/src/PgTypes.ts +1998 -0
  58. package/src/index.ts +25 -0
  59. package/src/internal/connection.ts +26 -0
  60. package/src/internal/sqlError.ts +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgConnection.js","names":[],"sources":["../src/PgConnection.ts"],"sourcesContent":[null],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,cAAc;AACrC,OAAO,KAAK,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAK,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa;AACnC,OAAO,KAAK,KAAK,MAAM,cAAc;AACrC,OAAO,KAAK,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAK,YAAY,MAAM,eAAe;AAC7C,OAAO,KAAK,KAAK,MAAM,cAAc;AACrC,OAAO,KAAK,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe;AACvC,SACE,mBAAmB,EACnB,eAAe,EACf,QAAQ,EAER,YAAY,QACP,8BAA8B;AACrC,SAAS,MAAM,QAAQ,aAAa;AACpC,SAAS,WAAW,QAAQ,aAAa;AACzC,OAAO,KAAK,GAAG,MAAM,UAAU;AAE/B,OAAO,KAAK,GAAG,MAAM,UAAU;AAE/B,SAAmC,YAAY,QAAQ,0BAA0B;AACjF,SAAS,gBAAgB,EAAE,mBAAmB,QAAQ,wBAAwB;AAC9E,OAAO,KAAK,MAAM,MAAM,aAAa;AACrC,OAAO,KAAK,UAAU,MAAM,iBAAiB;AAC7C,OAAO,KAAK,OAAO,MAAM,cAAc;AAEvC;;;;;;AAMA,OAAO,MAAM,MAAM,GAAW,8BAA8B;AAqD5D;;;;AAIA,MAAM,gBAAgB,GAAI,MAAc,IAA+B;EACrE,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,OAAO,SAAS;EAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,0BAA0B,IAAI,yBAAyB;EAC1E,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS;AACrD,CAAC;AAwGD;;;;;;AAMA,OAAO,MAAM,YAAY,gBAAG,OAAO,CAAC,OAAO,CAAe,6BAA6B,CAAC;AAExF;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAM,IAAI,GAAI,OAAe,IAClC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAG,MAAM,IAC5C,MAAM,CAAC,cAAc,CACnB,MAAM,CAAC,GAAG,CACR,OAAO,CAAC,MAAM,CAAC,EACd,OAAO,IAAK,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAC3E,EACA,UAAU,IAAK,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,EAC3D;EAAE,aAAa,EAAE;AAAI,CAAE,CACxB,CAAC,IAAI,CACJ,MAAM,CAAC,aAAa,CAAC;EACnB,QAAQ,EAAE,MAAM,CAAC,cAAc;EAC/B,MAAM,EAAE,MACN,MAAM,CAAC,IAAI,CACT,IAAI,QAAQ,CAAC;IACX,MAAM,EAAE,IAAI,eAAe,CAAC;MAC1B,KAAK,EAAE,IAAI,KAAK,CAAC,sBAAsB,CAAC;MACxC,OAAO,EAAE,oCAAoC;MAC7C,SAAS,EAAE;KACZ;GACF,CAAC;CAEP,CAAC,CACH,CAAC;AA2BN,MAAM,uBAAuB,GAAG,IAAI;AACpC,MAAM,0BAA0B,GAAG,IAAI;AACvC;AACA,MAAM,gBAAgB,GAAG,GAAG;AAC5B,MAAM,oBAAoB,GAAG,GAAG;AAEhC,MAAM,gBAAgB;EACX,CAAC,MAAM,IAAY,MAAM;EACzB,MAAM;EACN,SAAS;EACT,OAAO;EAChB;EACS,QAAQ;EACR,WAAW;EACpB;EACS,QAAQ;EACR,QAAQ;EACR,SAAS;EAClB;EACS,IAAI,gBAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;EACvC;EACS,KAAK,gBAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;EACxC,MAAM,GAAG,KAAK;EACd,QAAQ;EACR,QAAQ;EACR,MAAM,GAAG,KAAK;EACL,QAAQ,gBAAG,IAAI,GAAG,EAA0C;EAC5D,UAAU,gBAAG,IAAI,GAAG,EAAc;EAC3C;EACS,eAAe,GAAyB,EAAE;EACnD;EACS,gBAAgB,GAAyB,EAAE;EACpD,YAAY,GAAG,CAAC;EAChB,sBAAsB,GAAG,KAAK;EACrB,mBAAmB,gBAAG,IAAI,GAAG,EAAc;EAC3C,UAAU;EACV,CAAC,YAAY;EAEtB,YAAY,MAAc,EAAE,QAAwB,EAAE,OAAgB,EAAE,QAAsC;IAC5G,IAAI,CAAC,MAAM,GAAG,MAAM;IACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ;IACxB,IAAI,CAAC,OAAO,GAAG,OAAO;IACtB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;IAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ;IACxB,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC;IAC5C,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK;IAC1C;IACA,IAAI,CAAC,YAAY,CAAC,GAAG;MACnB,IAAI,EAAE,IAAI;MACV,SAAS,EAAE,MAAM,IAAI,CAAC,QAAQ;MAC9B,UAAU,EAAE,IAAI,CAAC;KAClB;IACD,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC;IAC9C,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACtC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;IAC9C,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;EAChD;EAEiB,MAAM,GAAI,KAAiB,IAAU;IACpD,IAAI;MACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpD,CAAC,CAAC,OAAO,KAAK,EAAE;MACd;MACA;MACA,OAAO,IAAI,CAAC,KAAK,CACf,KAAK,YAAY,UAAU,CAAC,UAAU,GAClC,oBAAoB,CAAC,KAAK,EAAE,+CAA+C,CAAC,GAC5E,UAAU,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAC5D;IACH;IACA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAE,CAAE;EAChE,CAAC;EAEgB,aAAa,GAAI,KAAY,IAC5C,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;EAEtD,aAAa,GAAG,MAC/B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,iCAAiC,CAAC,CAAC;EAEpF,QAAQ,GAAI,OAA2C,IAAU;IAChF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;IACjC,QAAQ,OAAO,CAAC,IAAI;MAClB,KAAK,sBAAsB;QAAE;UAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;UACjD,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,YAAY,GAAiB;cACjC,SAAS,EAAE,OAAO,CAAC,GAAG;cACtB,OAAO,EAAE,OAAO,CAAC,OAAO;cACxB,OAAO,EAAE,OAAO,CAAC;aAClB;YACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;UACpE;UACA;QACF;MACA,KAAK,iBAAiB;MACtB,KAAK,gBAAgB;QACnB;IACJ;IACA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;IACxE,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;MACpC,OAAO,IAAI,CAAC,KAAK,CACf,IAAI,QAAQ,CAAC;QACX,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,EAAE,OAAO;OAC7F,CAAC,CACH;IACH;IACA,IAAI,CAAC,KAAK,CACR,oBAAoB,CAClB,IAAI,KAAK,CAAC,cAAc,OAAO,CAAC,IAAI,aAAa,CAAC,EAClD,4BAA4B,OAAO,CAAC,IAAI,aAAa,CACtD,CACF;EACH,CAAC;EAED;;;EAGA,KAAK,CAAC,KAAe,EAAE,aAAa,GAAG,IAAI;IACzC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;IACjC,IAAI,CAAC,QAAQ,GAAG,KAAK;IACrB,IAAI,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;IAC9B,IAAI,CAAC,QAAQ,GAAG,SAAS;IACzB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;IACrB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;MACtB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1E;IACA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;MAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;IAC5C;EACF;EAEA,WAAW;IACT,IAAI,CAAC,MAAM,GAAG,IAAI;IAClB,IAAI,aAAa,GAAG,IAAI;IACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;MAC/D,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QACrD,aAAa,GAAG,KAAK;MACvB,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;IACA,IAAI,CAAC,KAAK,CACR,IAAI,QAAQ,CAAC;MACX,MAAM,EAAE,IAAI,eAAe,CAAC;QAC1B,KAAK,EAAE,IAAI,KAAK,CAAC,sBAAsB,CAAC;QACxC,OAAO,EAAE,oCAAoC;QAC7C,SAAS,EAAE;OACZ;KACF,CAAC,EACF,aAAa,CACd;EACH;EAEA;EACS,WAAW,GAAG,CACrB,GAAW,EACX,MAA8B,EAC9B,KAAgC,KACvB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;EAE3E;;;;;;;;EAQiB,gBAAgB,GAAa;IAC5C,SAAS,EAAG,OAAO,IAAI;MACrB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;MACtD,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CACpC,IAAI,KAAK,CAAC,cAAc,OAAO,CAAC,IAAI,6BAA6B,CAAC,EAClE,4BAA4B,OAAO,CAAC,IAAI,6BAA6B,CACtE,CAAC;MACJ;MACA,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;IAClC,CAAC;IACD,UAAU,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE;IACtC,OAAO,EAAG,KAAK,IAAI;MACjB,MAAM,OAAO,GAAG,CACd,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EACjD,GAAG,IAAI,CAAC,eAAe,CACxB;MACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;MAChC,IAAI,CAAC,YAAY,GAAG,CAAC;MACrB,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;MAC/B,IAAI,CAAC,sBAAsB,GAAG,KAAK;MACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MAC/E;MACA,IAAI,CAAC,kBAAkB,EAAE;IAC3B;GACD;EAEgB,aAAa,GAAG,MAAc,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY;EAE9E,cAAc,GAAG,MAAe,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;EAE/F,kBAAkB,GAAG,MAAW;IAC/C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;IAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS;IACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACpD,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE;EACxC,CAAC;EAED;EACS,gBAAgB,gBAAwB,MAAM,CAAC,QAAQ,CAAE,MAAM,IAAI;IAC1E,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IACxC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;EACnE,CAAC,CAAC;EAEe,mBAAmB,GAAG,CACrC,KAAoB,EACpB,MAA4C,KACpC;IACR,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE;MACtD,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CACpC,IAAI,KAAK,CAAC,0CAA0C,CAAC,EACrD,wDAAwD,CACzD,CAAC;IACJ;IACA,IAAI,CAAC,YAAY,EAAE;IACnB;IACA;IACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,SAAS;IAC3F,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;IACjE,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;MACtD,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;MAChC,IAAI,CAAC,YAAY,GAAG,CAAC;IACvB;EACF,CAAC;EAED;EACiB,aAAa,GAAG,MAAW;IAC1C,IAAI,CAAC,sBAAsB,GAAG,KAAK;IACnC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;IACjC,IAAI,QAAQ,GAAG,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE;IACtD,IAAI,QAAQ,IAAI,CAAC,EAAE;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;IAC3C,MAAM,KAAK,GAAyB,EAAE;IACtC,IAAI,KAAK,GAAG,CAAC;IACb,OAAO,QAAQ,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;MAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;MAC3C,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;UAC1D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK;QACrC;QACA;MACF;MACA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;MACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;MACjC,QAAQ,EAAE;IACZ;IACA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;MACtB,IAAI,CAAC,kBAAkB,EAAE;MACzB;IACF;IACA,IAAI,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,GAC5B,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GACnB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,KAAK,IAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI;MACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC,CAAC,OAAO,KAAK,EAAE;MACd,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,2CAA2C,CAAC,CAAC;IACtF;EACF,CAAC;EAEgB,qBAAqB,GAAG,MAAW;IAClD,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,gBAAgB,EAAE;IAC7E,IAAI,CAAC,sBAAsB,GAAG,IAAI;IAClC;IACA,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;EACpC,CAAC;EAED;;;;;EAKiB,aAAa,GAAG,CAC/B,GAAW,EACX,MAA8B,EAC9B,QAAiB,EACjB,KAAgC,KAEhC,MAAM,CAAC,OAAO,CACZ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAK;IACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClE,IAAI,IAAU;IACd,IAAI;MACF,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;IAC7C,CAAC,CAAC,OAAO,KAAK,EAAE;MACd,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAC;IAC/E;IACA,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAyB;IAC7D,IAAI,KAAoB;IACxB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAG,MAAM,IAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3G,KAAK,GAAG;MAAE,IAAI;MAAE,QAAQ;MAAE,OAAO;MAAE,SAAS,EAAE;IAAK,CAAE;IACrD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB;IACrC,IAAI,CAAC,qBAAqB,EAAE;IAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;EAC9B,CAAC,CAAC,CAAC,EACF,KAAK,IAAI;IACR,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CACjD,MAAM,CAAC,WAAW,CAAC,MACjB,MAAM,CAAC,IAAI,CAAC,MAAK;MACf,KAAK,CAAC,SAAS,GAAG,IAAI;IACxB,CAAC,CAAC,CACH,CACF;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,OAAO;IAC5D,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;EAC3G,CAAC,CACF;EAEH;;;;;EAKS,KAAK,GAAG,CACf,GAAW,EACX,MAA8B,EAC9B,QAAiB,EACjB,KAAgC,KACS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;EAE9G;;;;EAIS,UAAU,GAAG,CACpB,GAAW,EACX,MAA8B,EAC9B,QAAiB,EACjB,KAAgC,KACS,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;EAE3G;;;;;EAKiB,OAAO,GAAG,CACzB,GAAW,EACX,MAA8B,EAC9B,QAAiB,EACjB,KAAgC,KACQ;IACxC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClE,IAAI,IAAU;IACd,IAAI;MACF,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;IAC7C,CAAC,CAAC,OAAO,KAAK,EAAE;MACd,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAC;IAC/E;IACA,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;IAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG;IAClD,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;EAC3F,CAAC;EAED;EACS,MAAM,gBAAwB,MAAM,CAAC,OAAO,CAAC,MAAK;IACzD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,OAAO,MAAM,CAAC,IAAI;IACnD,OAAO,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;EACzF,CAAC,CAAC;EAEO,GAAG,gBAAoD,MAAM,CAAC,OAAO,CAAC,MAAK;IAClF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO;IAC1C,OAAO,OAAO,KAAK,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;EAC/F,CAAC,CAAC;EAEe,YAAY,gBAAoD,MAAM,CAAC,cAAc,cACpG,MAAM,CAAC,OAAO,cAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;EACjC;EACA;EACA,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,GAAG,CACR,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACtE,MACE,MAAM,CAAC,IAAI,CAAC,MAAK;IACf,IAAI,CAAC,MAAM,GAAG,IAAI;EACpB,CAAC,CAAC,CACL,EACD,IAAI,CAAC,UAAU,CAChB,CAAC,EACJ,MACE,MAAM,CAAC,OAAO,CAAC,MAAK;IAClB,IAAI,CAAC,MAAM,GAAG,KAAK;IACnB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;EAC9B,CAAC,CAAC,CACL;EAEgB,GAAG,GAAG,CACrB,GAAW,EACX,MAA8B,EAC9B,QAAiB,EACjB,OAAgB,KACwB;IACxC,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,SAAS;IACjD,OAAO,IAAI,CAAC,SAAS,GACjB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,GAChD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;EAC1E,CAAC;EAEQ,KAAK,GAAG,CAAC,GAAW,EAAE,MAA+B,EAAE,OAAO,GAAG,IAAI,KAC5E,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC;EAEpE,WAAW,GAAG,CACrB,GAAW,EACX,MAA+B,EAC/B,OAAO,GAAG,IAAI,KAEd,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC;EAErE,MAAM,GAAG,CAAC,GAAW,EAAE,MAA+B,KAC7D,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,WAAW,CAAC;EAE/C,MAAM,GACb,OAAe,IACuD,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;EAErG,SAAS,gBAAwB,MAAM,CAAC,OAAO,CAAC,MACvD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAC3D;;AAGH;;;;;AAKA,MAAM,kBAAkB;EACb,CAAC,MAAM,IAAY,MAAM;EACzB,IAAI;EACJ,CAAC,YAAY;EACb,GAAG;EACH,SAAS;EAElB,YAAY,IAAsB;IAChC,IAAI,CAAC,IAAI,GAAG,IAAI;IAChB,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;EAC9B;EAEA,IAAI,MAAM;IACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;EACzB;EAEA,IAAI,SAAS;IACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;EAC5B;EAES,KAAK,GAAG,CAAC,GAAW,EAAE,MAA+B,EAAE,OAAO,GAAG,IAAI,KAC5E,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,IAAI,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,UAAU,CAAC;EAE5G,WAAW,GAAG,CACrB,GAAW,EACX,MAA+B,EAC/B,OAAO,GAAG,IAAI,KAEd,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,IAAI,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,UAAU,CAAC;EAE7G,MAAM,GAAG,CAAC,GAAW,EAAE,MAA+B,KAC7D,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,WAAW,CAAC;EAEpD,MAAM,GACb,OAAe,IACuD,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;;AAQrH,MAAM,SAAS,GAAG,CAAC,UAAU;AAC7B,MAAM,SAAS,GAAG,UAAU;AAE5B,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,KAAc,MAAyB;EAC7E,CAAC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;EAClD,GAAG;EACH;CACD,CAAC;AAEF,MAAM,WAAW,GAAI,KAAc,IAAuB;EACxD,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK;EAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,OAAO,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC;EAC5E,QAAQ,OAAO,KAAK;IAClB,KAAK,SAAS;MACZ,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;IACnD,KAAK,QAAQ;MACX,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;IACnD,KAAK,QAAQ;MACX,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QAC3B,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,SAAS,EAAE;UAC5C,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;QACnD;QACA,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;UAC/B,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3D;MACF;MACA,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IACrD,KAAK,QAAQ;MACX;MACA;MACA;MACA,OAAO,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC;EACtC;EACA,IAAI,KAAK,YAAY,IAAI,EAAE;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE;IAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;MAAE,OAAO,EAAE;IAAwB,CAAE,CAAC;IAC3F,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;EACzD;EACA,IAAI,KAAK,YAAY,UAAU,EAAE,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;EACnF,IAAI,KAAK,YAAY,SAAS,EAAE;IAC9B,OAAO,iBAAiB,CACtB,OAAO,CAAC,GAAG,CAAC,KAAK,EACjB,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CACjE;EACH;EACA,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAAE,OAAO,EAAE,sCAAsC,MAAM,CAAC,KAAK,CAAC;EAAE,CAAE,CAAC;AAClG,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,QAAsC,KAAuB;EACnG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,WAAW,CAAC,KAAK,CAAC;EACpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IACtB,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;MAAE,OAAO,EAAE;IAA4D,CAAE,CAAC;EACzG;EACA,IAAI,UAA8B;EAClC,MAAM,MAAM,GAAmB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;EACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;MAC1B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE;MAA2C,CAAE,CAAC;IACxF;IACA,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC;IACtC;IACA,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG;IACvB,IAAI,GAAG,KAAK,CAAC,EAAE;MACb,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE;QAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI;QACpB;MACF;MACA,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI;IACxB;IACA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;MAClC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE;MAA2C,CAAE,CAAC;IACxF;IACA,IAAI,UAAU,KAAK,SAAS,EAAE,UAAU,GAAG,GAAG,MACzC,IAAI,UAAU,KAAK,GAAG,EAAE;MAC3B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE;MAA0D,CAAE,CAAC;IACvG;IACA,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK;EACjC;EACA,IAAI,UAAU,KAAK,SAAS,EAAE;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;MAAE,OAAO,EAAE;IAA+D,CAAE,CAAC;EAC5G;EACA,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC;EAC1D,IAAI,QAAQ,KAAK,SAAS,EAAE;IAC1B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;MAAE,OAAO,EAAE,uCAAuC,UAAU;IAAE,CAAE,CAAC;EAChG;EACA,OAAO,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC5C,CAAC;AAED;;;;;;AAMA,MAAM,MAAM,GAAI,MAAiC,IAAgB;EAC/D,IAAI,MAAM,GAAG,CAAC;EACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;EAClF,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;EACzC,IAAI,MAAM,GAAG,CAAC;EACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAClD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACjC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;EAChC;EACA,OAAO,MAAM;AACf,CAAC;AAED,MAAM,WAAW,GAA2B,EAAE;AAE9C,MAAM,UAAU,GAAI,MAAmB,IAAa,MAAM,CAAC,MAAM;AACjE,MAAM,UAAU,GAAI,MAAmB,IAA4C,MAAM,CAAC,MAAM;AAEhG;;;;;AAKA,MAAM,mBAAmB,gBAAe,MAAM,CAAC,cAC7C,UAAU,CAAC,cAAc,CAAC;EAAE,MAAM,EAAE,QAAQ;EAAE,IAAI,EAAE;AAAE,CAAE,CAAC,eACzD,UAAU,CAAC,aAAa,CAAC;EAAE,MAAM,EAAE,EAAE;EAAE,OAAO,EAAE;AAAC,CAAE,CAAC,eACpD,UAAU,CAAC,UAAU,EAAE,CACxB,CAAC;AAEF;AACA,MAAM,WAAW,gBAAe,MAAM,CAAC,cACrC,UAAU,CAAC,aAAa,CAAC;EAAE,MAAM,EAAE,EAAE;EAAE,OAAO,EAAE;AAAC,CAAE,CAAC,eACpD,UAAU,CAAC,UAAU,EAAE,CACxB,CAAC;AAEF;AACA,MAAM,yBAAyB,GAAG,GAAG;AAoCrC;AACA,MAAM,aAAa,GAAG,CACpB,GAAW,EACX,UAA4C,EAC5C,cAAqC,EACrC,UAAuB,KACf;EACR,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC;IAAE,IAAI,EAAE,EAAE;IAAE,KAAK,EAAE,GAAG;IAAE;EAAc,CAAE,CAAC;EAC9E,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,OAAO;EACtD,MAAM,IAAI,GAAG,UAAU,CAAC;IAAE,MAAM,EAAE,EAAE;IAAE,SAAS,EAAE,EAAE;IAAE;EAAU,CAAE,CAAC;EAClE,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;EACpD,OAAO;IACL,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IACjE,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,KAAK,EAAE;GACR;AACH,CAAC;AAED;;;;;;;;;;AAUA,MAAM,WAAW,GAAG,CAClB,GAAW,EACX,MAA8B,EAC9B,QAAsC,EACtC,UAAuB,EACvB,KAAgC,KACxB;EACR,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;EAC3B,MAAM,UAAU,GAA6B,IAAI,KAAK,CAAC,KAAK,CAAC;EAC7D,MAAM,cAAc,GAAkB,IAAI,KAAK,CAAC,KAAK,CAAC;EACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;IAC1C,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACzD,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS;IAC7B,cAAc,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,GAAG;EACvC;EAEA,IAAI,KAAK,KAAK,SAAS,EAAE;IACvB,OAAO,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC;EACnE;EAEA,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC;EAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE;IACvC;IACA;IACA;IACA,OAAO,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC;EACnE;EACA,MAAM,IAAI,GAAG,UAAU,CAAC;IAAE,MAAM,EAAE,EAAE;IAAE,SAAS,EAAE,QAAQ,CAAC,IAAI;IAAE;EAAU,CAAE,CAAC;EAC7E,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;EACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC,IAAI;IAAE,KAAK,EAAE,GAAG;IAAE;EAAc,CAAE,CAAC;EACtH,IAAI,KAAK,KAAK,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,OAAO;EAC7E,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,EAAE;EAEtC,IAAI,KAAK,KAAK,SAAS,EAAE;IACvB,OAAO;MACL,KAAK,EAAE,WAAW,KAAK,SAAS,GAC5B,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,GACnC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;MAC3D,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;MAC/B,MAAM,EAAE,KAAK;MACb,SAAS,EAAE,KAAK;MAChB,QAAQ;MACR,WAAW,EAAE,QAAQ,CAAC,WAAW;MACjC,KAAK,EAAE;KACR;EACH;EAEA,QAAQ,CAAC,OAAO,GAAG,IAAI;EACvB,OAAO;IACL,KAAK,EAAE,WAAW,KAAK,SAAS,GAC5B,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,GAC1D,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClF,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,QAAQ;IACR,WAAW,EAAE,SAAS;IACtB,KAAK,EAAE;GACR;AACH,CAAC;AAED;;;;;;;;;AASA,MAAM,aAAa;EACR,GAAG;EACK,UAAU,gBAAG,IAAI,GAAG,EAAoB;EACjD,MAAM;EACN,OAAO,GAAG,CAAC;EAEnB,YAAY,GAAW;IACrB,IAAI,CAAC,GAAG,GAAG,GAAG;EAChB;EAEA,GAAG,CAAC,GAAW,EAAE,cAAqC;IACpD,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACzF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;IACtC,IAAI,KAAK,KAAK,SAAS,EAAE;MACvB;MACA;MACA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;MAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;MAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;MAChB,OAAO,KAAK;IACd;IACA,MAAM,QAAQ,GAAa;MACzB,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;MAC/B,GAAG;MACH,KAAK,EAAE,KAAK;MACZ,OAAO,EAAE,KAAK;MACd,WAAW,EAAE;KACd;IACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACnB,OAAO,QAAQ;EACjB;EAEA;;;;;EAKQ,IAAI,CAAC,kBAA6B;IACxC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;MACtC,IAAI,OAA6B;MACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;QAC/C,IAAI,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;UAC5E,OAAO,GAAG,QAAQ;UAClB;QACF;MACF;MACA,IAAI,OAAO,KAAK,SAAS,EAAE;MAC3B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;MACnC,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C;EACF;EAEA;;;;;;;EAOA,KAAK,CAAC,QAAkB;IACtB,IAAI,QAAQ,CAAC,OAAO,EAAE;IACtB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;EACvF;EAEA;;;;;;;;EAQA,WAAW,CAAC,QAAkB;IAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;EAC3B;EAEQ,KAAK,CAAC,IAAY;IACxB;IAAC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;MAAE,MAAM,EAAE,WAAW;MAAE;IAAI,CAAE,CAAC,CAAC;EACnF;EAEA,UAAU;IACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;IAC1B,IAAI,MAAM,KAAK,SAAS,EAAE,OAAO,SAAS;IAC1C,IAAI,CAAC,MAAM,GAAG,SAAS;IACvB,OAAO;MAAE,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;MAAE,KAAK,EAAE,MAAM,CAAC;IAAM,CAAE;EAC3F;;AAGF;;;;;AAKA,MAAM,wBAAwB,GAAI,IAAwB,IAAc,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;AAQ5G;;;;;AAKA,MAAM,kBAAkB,gBAAgB,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC;AAEhH;AACA,MAAM,eAAe,GAAI,QAAsC,IAC7D,QAAQ,KAAK,SAAS,GAClB,kBAAkB,GAClB,UAAU,CAAC,eAAe,CAC1B,CAAC,IAA0B,EAAE,SAA4B,KAAK,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC/G,OAAO,CAAC,YAAY,CACrB;AAEL,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,OAAe,KACjD,IAAI,QAAQ,CAAC;EAAE,MAAM,EAAE,IAAI,YAAY,CAAC;IAAE,KAAK;IAAE,OAAO;IAAE,SAAS,EAAE;EAAO,CAAE;AAAC,CAAE,CAAC;AAEpF;;;;;AAKA,MAAM,UAAU,GAAG,CACjB,IAAU,EACV,KAAoB,EACpB,GAAyC,EACzC,KAAiD,KAEjD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAG,KAAK,IAAI;EAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;EAC/C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAS,CAAC;EAC3B,OAAO,KAAK,EAAE;AAChB,CAAC,CAAC;AAEJ,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAE,OAAe,KAC3D,IAAI,QAAQ,CAAC;EAAE,MAAM,EAAE,IAAI,eAAe,CAAC;IAAE,KAAK;IAAE,OAAO;IAAE,SAAS,EAAE;EAAO,CAAE;AAAC,CAAE,CAAC;AAEvF,MAAM,gBAAgB,GAAI,UAAkB,IAAa,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG;AAInG;;;;;AAKA,MAAM,eAAe,GAAI,GAAW,IAA+D;EACjG,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;EACnC,IAAI,UAAU,GAAG,CAAC,EAAE,OAAO;IAAE,OAAO,EAAE,GAAG;IAAE,GAAG,EAAE,IAAI;IAAE,QAAQ,EAAE;EAAC,CAAE;EACnE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;EACxC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC;EACpD,IAAI,OAAO,KAAK,QAAQ,IAAI,WAAW,GAAG,CAAC,EAAE;IAC3C,OAAO;MACL,OAAO;MACP,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;MACnD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;KAC5C;EACH;EACA,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,WAAW,IAAI,CAAC,CAAC;EACxE,OAAO;IAAE,OAAO;IAAE,GAAG,EAAE,IAAI;IAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;EAAC,CAAE;AAC5E,CAAC;AAED,MAAM,QAAQ,GAAI,KAAa,IAAa;EAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;EACpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;IACpC,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,OAAO,KAAK;EAC1C;EACA,OAAO,IAAI;AACb,CAAC;AAED;;;;AAIA,MAAM,YAAY;EACC,IAAI;EACJ,IAAI;EACJ,MAAM;EACvB;EACS,SAAS;EAClB;EACiB,IAAI;EACJ,MAAM;EAEf,MAAM;EACN,KAAK;EACL,UAAU;EACV,YAAY;EACZ,UAAU;EACV,OAAO,GAAG,EAAE;EACZ,QAAQ,GAAG,CAAC;EACZ,GAAG,GAAkB,IAAI;EACzB,OAAO;EACP,IAAI,GAAG,KAAK;EACZ,OAAO,GAAG,KAAK;EACf,SAAS;EAEjB,YACE,IAAsB,EACtB,IAAU,EACV,QAAiB,EACjB,MAA8D;IAE9D,IAAI,CAAC,IAAI,GAAG,IAAI;IAChB,IAAI,CAAC,IAAI,GAAG,IAAI;IAChB,IAAI,CAAC,MAAM,GAAG,MAAM;IACpB,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,EAAE,GAAG,SAAS;IACrC,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,EAAE;IACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;IACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM;IACvE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW;IACpC,IAAI,CAAC,SAAS,GAAG,WAAW,EAAE,SAAS;IACvC,IAAI,CAAC,UAAU,GAAG,WAAW,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC;IACvD,IAAI,CAAC,YAAY,GAAG,WAAW,EAAE,YAAY,IAAI,WAAW;IAC5D,IAAI,CAAC,UAAU,GAAG,WAAW,EAAE,UAAU;EAC3C;EAEA,MAAM;IACJ,OAAO,IAAI,CAAC,IAAI;EAClB;EAEA,KAAK,CAAC,SAAqB;IACzB,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,SAAS,EAAE;IACjC,IAAI,CAAC,OAAO,GAAG,IAAI;IACnB,IAAI,CAAC,SAAS,GAAG,SAAS;EAC5B;EAEQ,QAAQ,CAAC,MAA4C;IAC3D,IAAI,IAAI,CAAC,IAAI,EAAE;IACf,IAAI,CAAC,IAAI,GAAG,IAAI;IAChB;IACA;IACA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;IACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,QAAQ,CAAC,OAAO,GAAG,KAAK;IACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;EACrB;EAEQ,UAAU,CAAC,OAAe;IAChC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,OAAO,EAAE,CAAC,CAAC;EACvF;EAEA,OAAO,CAAC,KAAe;IACrB,IAAI,IAAI,CAAC,IAAI,EAAE;IACf,IAAI,CAAC,IAAI,GAAG,IAAI;IAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;IACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,QAAQ,CAAC,OAAO,GAAG,KAAK;IACpD,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,GAAE,CAAE,MAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACtC;EAEA,SAAS,CAAC,OAA2C;IACnD,IAAI,IAAI,CAAC,OAAO,EAAE;MAChB,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,CAAC,SAAS,GAAE,CAAE;MACpB;MACA;IACF;IACA,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE;MAC1B,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC;MACtF,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,OAAO,CAAC,IAAI,sBAAsB,CAAC;IAC1E;IACA,QAAQ,OAAO,CAAC,IAAI;MAClB,KAAK,eAAe;QAClB,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,mCAAmC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnG,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM;QACzE;MACF,KAAK,eAAe;QAClB,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,mCAAmC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnG,IAAI,CAAC,KAAK,GAAG,MAAM;QACnB;MACF,KAAK,cAAc;QACjB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,kCAAkC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,MAAM;QACtD;MACF,KAAK,gBAAgB;QAAE;UACrB,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,oCAAoC,IAAI,CAAC,KAAK,EAAE,CAAC;UACvG,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;UAChE,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;UAC/F;UACA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM;UACvC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY;UACpD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU;UAChD;UACA;UACA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS;UAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;UACnC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO;YAC1C,QAAQ,CAAC,KAAK,GAAG,IAAI;UACvB;UACA,IAAI,CAAC,KAAK,GAAG,MAAM;UACnB;QACF;MACA,KAAK,QAAQ;QAAE;UACb,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,4BAA4B,IAAI,CAAC,KAAK,EAAE,CAAC;UAC/F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;UACnC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,QAAQ,CAAC,WAAW,GAAG,SAAS;YAChC,QAAQ,CAAC,KAAK,GAAG,IAAI;UACvB;UACA,IAAI,CAAC,KAAK,GAAG,MAAM;UACnB;QACF;MACA,KAAK,SAAS;QAAE;UACd,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YAC1D,OAAO,IAAI,CAAC,UAAU,CAAC,6BAA6B,IAAI,CAAC,KAAK,EAAE,CAAC;UACnE;UACA,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM;UAChC,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;YACxC,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,SAAS,CAAC,MAAM,eAAe,IAAI,CAAC,UAAU,SAAS,CAAC;UAChG;UACA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAClE,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,SAAS,CAAC;UACjC;QACF;MACA,KAAK,iBAAiB;QAAE;UACtB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,qCAAqC,IAAI,CAAC,KAAK,EAAE,CAAC;UACpG,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;UAClD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;UAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;UAC/B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;UACrB,IAAI,CAAC,KAAK,GAAG,UAAU;UACvB;QACF;MACA,KAAK,oBAAoB;QACvB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,wCAAwC,IAAI,CAAC,KAAK,EAAE,CAAC;QACvG,IAAI,CAAC,KAAK,GAAG,UAAU;QACvB;MACF,KAAK,eAAe;QAAE;UACpB,IAAI,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI;UACzE;UACA;UACA;UACA;UACA;UACA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;UACnC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACjE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;UAC3C;UACA;UACA;UACA;UACA,IAAI,CAAC,OAAO,GAAG,IAAI,QAAQ,CAAC;YAC1B,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,4BAA4B,EAAE,OAAO;WAC7E,CAAC;UACF,IAAI,CAAC,KAAK,GAAG,OAAO;UACpB;QACF;MACA,KAAK,eAAe;QAClB,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,mCAAmC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtG,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;UAClC,MAAM,EAAE;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;YAC5B,MAAM,EAAE,IAAI,CAAC;WACd;UACD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI;SACxB,CAAC,CAAC;MACL,KAAK,gBAAgB;MACrB,KAAK,iBAAiB;MACtB,KAAK,kBAAkB;MACvB,KAAK,UAAU;MACf,KAAK,UAAU;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,OAAO,CAAC,IAAI,yBAAyB,CAAC;MAC7E;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,OAAO,CAAC,IAAI,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;IAC7E;EACF;;AAGF,MAAM,SAAS,GAAuB,EAAE;AACxC,MAAM,WAAW,GAA0C,EAAE;AAE7D;AACA,MAAM,QAAQ,GAAG,CACf,IAAsB,EACtB,IAAU,EACV,QAAiB,KAEjB,MAAM,CAAC,QAAQ,CAAyB,MAAM,IAAI;EAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;IAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC;EACF;EACA,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAG,MAAM,IAAI;IAChE,IAAI,CAAC,QAAQ,GAAG,SAAS;IACzB,MAAM,CAAC,MAAM,CAAC;EAChB,CAAC,CAAC;EACF,IAAI,CAAC,QAAQ,GAAG,OAAO;EACvB;EACA;EACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;EACjD,IAAI;IACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;EACvC,CAAC,CAAC,OAAO,KAAK,EAAE;IACd,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,qCAAqC,CAAC,CAAC;EAChF;EAEA;EACA;EACA,OAAO,MAAM,CAAC,OAAO,CAAC,MAAK;IACzB,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,MAAM,CAAC,IAAI;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAQ,UAAU,IAAI;MAChD,MAAM,KAAK,GAAG,UAAU,CACtB,MACE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAC7B,IAAI,KAAK,CAAC,8BAA8B,CAAC,EACzC,4CAA4C,CAC7C,CAAC,EACJ,uBAAuB,CACxB;MACD,OAAO,CAAC,KAAK,CAAC,MAAK;QACjB,YAAY,CAAC,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,SAAS;QACzB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;MACzB,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;EAC1C,CAAC,CAAC;AACJ,CAAC,CAAC;AAYJ,MAAM,WAAW,GAAyB,EAAE;AAE5C;AACA,MAAM,QAAQ,GAAG,CACf,MAAkD,EAClD,QAAsC,KACkB;EACxD,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;EACxD,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;EAC5E,MAAM,YAAY,GAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;EAC3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAClD,YAAY,CAAC,KAAK,CAAC,GAAG;MAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI;MAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAAW,CAAE;EAC3F;EACA,OAAO,YAAY,CAAC,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC,OAAO;IACzB,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC;IAClC;GACD,CAAC;AACJ,CAAC;AAED;;;;;;;;AAQA,MAAM,cAAc,GAAI,MAAkD,IAAgB;EACxF,MAAM,KAAK,GAAkB,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;EACrD,IAAI,QAAQ,GAAG,KAAK;EACpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI;IAC/B,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI;IACnB,IAAI,IAAI,KAAK,WAAW,EAAE,QAAQ,GAAG,IAAI;EAC3C;EACA,IAAI,QAAQ,EAAE;IACZ,OAAQ,SAAS,IAAI;MACnB,MAAM,GAAG,GAA4B,EAAE;MACvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACjD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;UACvC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;UACvB,UAAU,EAAE,IAAI;UAChB,YAAY,EAAE,IAAI;UAClB,QAAQ,EAAE;SACX,CAAC;MACJ;MACA,OAAO,GAAG;IACZ,CAAC;EACH;EACA,OAAQ,SAAS,IAAI;IACnB,MAAM,GAAG,GAA4B,EAAE;IACvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;MACjD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;IACtC;IACA,OAAO,GAAG;EACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CACjB,IAAsB,EACtB,GAAoD,EACpD,GAAW,EACX,MAA8B,KAE9B,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,WAAU,CAAC,EAAE,KAAK;EAC3E,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;EAChC,OAAO,KAAK,CAAC,OAAO,CAClB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACpE,KAAK,CACN;EACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,OAAO,OAAO,IAAI,CAAC,QAAQ;EAC5D;EACA;EACA;EACA,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,GAAG,CAAC;IAC7B,GAAG,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC;IACnD,KAAK,EAAG,KAAK,IAAK,UAAU,CAAC,KAAK,EAAE,sCAAsC;GAC3E,CAAC;EACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;EAExB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;EAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;EAClC,IAAI,KAAK,GAAe,OAAO;EAC/B,IAAI,UAAU,GAAG,CAAC;EAClB,IAAI,UAAkC;EACtC,IAAI,MAAM,GAAe,EAAE;EAC3B,IAAI,OAA6B;EACjC,IAAI,QAAQ,GAAG,KAAK;EACpB,IAAI,IAAI,GAAG,KAAK;EAChB,IAAI,OAAO,GAAG,KAAK;EACnB,IAAI,MAAM,GAAG,KAAK;EAClB,IAAI,OAES;EACb,IAAI,SAAmC;EAEvC,MAAM,SAAS,GAAI,KAAc,IAAU;IACzC,IAAI,MAAM,KAAK,KAAK,EAAE;IACtB,MAAM,GAAG,KAAK;IACd,IAAI,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MACpB,MAAM,CAAC,MAAM,EAAE;EACtB,CAAC;EAED,MAAM,OAAO,GAAG,MAAW;IACzB,IAAI,OAAO,KAAK,SAAS,EAAE;IAC3B,MAAM,MAAM,GAAG,OAAO;IACtB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;MACrB,MAAM,KAAK,GAAG,MAAgC;MAC9C,MAAM,GAAG,EAAE;MACX,OAAO,GAAG,SAAS;MACnB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,MAAM,IAAI,QAAQ,EAAE;MACnB,OAAO,GAAG,SAAS;MACnB,MAAM,CAAC,OAAO,KAAK,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrE;EACF,CAAC;EAED,MAAM,OAAO,GAAI,KAAe,IAAU;IACxC,IAAI,IAAI,EAAE;IACV,IAAI,GAAG,IAAI;IACX,QAAQ,GAAG,IAAI;IACf,IAAI,OAAO,KAAK,SAAS,EAAE,OAAO,GAAG,KAAK;IAC1C,SAAS,GAAE,CAAE;IACb,OAAO,EAAE;EACX,CAAC;EACD;EACA;EACA,MAAM,SAAS,GAAI,KAAe,IAAU;IAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IACjB,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC;EACD,MAAM,UAAU,GAAI,OAAe,IACjC,SAAS,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,OAAO,EAAE,CAAC,CAAC;EAEjF,MAAM,SAAS,GAAI,OAA2C,IAAU;IACtE,IAAI,OAAO,EAAE;MACX,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;QACpC,IAAI,GAAG,IAAI;QACX,IAAI,CAAC,QAAQ,GAAG,SAAS;QACzB,SAAS,GAAE,CAAE;MACf;MACA;IACF;IACA,IAAI,KAAK,KAAK,OAAO,EAAE;MACrB,QAAQ,OAAO,CAAC,IAAI;QAClB,KAAK,eAAe;UAClB,QAAQ,GAAG,IAAI;UACf,IAAI,GAAG,IAAI;UACX,IAAI,CAAC,QAAQ,GAAG,SAAS;UACzB,OAAO,EAAE;UACT;QACF;UACE,OAAO,UAAU,CAAC,cAAc,OAAO,CAAC,IAAI,sBAAsB,CAAC;MACvE;IACF;IACA,QAAQ,OAAO,CAAC,IAAI;MAClB,KAAK,eAAe;QAClB,IAAI,KAAK,KAAK,OAAO,EAAE,OAAO,UAAU,CAAC,mCAAmC,KAAK,EAAE,CAAC;QACpF,KAAK,GAAG,MAAM;QACd;MACF,KAAK,cAAc;QACjB,IAAI,KAAK,KAAK,MAAM,EAAE,OAAO,UAAU,CAAC,kCAAkC,KAAK,EAAE,CAAC;QAClF,KAAK,GAAG,UAAU;QAClB;MACF,KAAK,gBAAgB;QAAE;UACrB,IAAI,KAAK,KAAK,UAAU,EAAE,OAAO,UAAU,CAAC,oCAAoC,KAAK,EAAE,CAAC;UACxF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;UAC3D,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YACvC,OAAO,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;UACzF;UACA,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM;UAClC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU;UAC3C,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS;UAChD,KAAK,GAAG,MAAM;UACd;QACF;MACA,KAAK,QAAQ;QACX,IAAI,KAAK,KAAK,UAAU,EAAE,OAAO,UAAU,CAAC,4BAA4B,KAAK,EAAE,CAAC;QAChF,KAAK,GAAG,MAAM;QACd;MACF,KAAK,SAAS;QAAE;UACd,IAAI,KAAK,KAAK,MAAM,IAAI,UAAU,KAAK,SAAS,EAAE;YAChD,OAAO,UAAU,CAAC,6BAA6B,KAAK,EAAE,CAAC;UACzD;UACA,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM;UAChC,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE;YACnC,OAAO,UAAU,CAAC,eAAe,SAAS,CAAC,MAAM,eAAe,UAAU,SAAS,CAAC;UACtF;UACA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;UAClC;QACF;MACA,KAAK,iBAAiB;QACpB,IAAI,KAAK,KAAK,MAAM,EAAE,OAAO,UAAU,CAAC,qCAAqC,KAAK,EAAE,CAAC;QACrF,KAAK,GAAG,UAAU;QAClB;MACF,KAAK,oBAAoB;QACvB,IAAI,KAAK,KAAK,MAAM,EAAE,OAAO,UAAU,CAAC,wCAAwC,KAAK,EAAE,CAAC;QACxF,KAAK,GAAG,UAAU;QAClB;MACF,KAAK,eAAe;QAAE;UACpB,OAAO,GAAG,IAAI,QAAQ,CAAC;YACrB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,4BAA4B,EAAE,OAAO;WAC7E,CAAC;UACF,KAAK,GAAG,OAAO;UACf;QACF;MACA,KAAK,eAAe;QAClB,IAAI,KAAK,KAAK,UAAU,EAAE,OAAO,UAAU,CAAC,mCAAmC,KAAK,EAAE,CAAC;QACvF,QAAQ,GAAG,IAAI;QACf,IAAI,GAAG,IAAI;QACX,IAAI,CAAC,QAAQ,GAAG,SAAS;QACzB,OAAO,EAAE;QACT;MACF,KAAK,gBAAgB;MACrB,KAAK,iBAAiB;MACtB,KAAK,kBAAkB;MACvB,KAAK,UAAU;MACf,KAAK,UAAU;QACb,OAAO,UAAU,CAAC,cAAc,OAAO,CAAC,IAAI,yBAAyB,CAAC;MACxE;QACE,OAAO,UAAU,CAAC,cAAc,OAAO,CAAC,IAAI,WAAW,KAAK,EAAE,CAAC;IACnE;EACF,CAAC;EAED,MAAM,UAAU,GAAG,MAAW;IAC5B,IAAI,IAAI,IAAI,OAAO,EAAE;IACrB,IAAI,OAAO,KAAK,SAAS,EAAE,OAAO,EAAE,MAC/B,IAAI,MAAM,CAAC,MAAM,IAAI,oBAAoB,EAAE,SAAS,CAAC,IAAI,CAAC;EACjE,CAAC;EAED;EACA;EACA,OAAO,KAAK,CAAC,YAAY,CACvB,KAAK,EACL,MAAM,CAAC,OAAO,CAAC,MAAK;IAClB,IAAI,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI;IAC5B,OAAO,GAAG,IAAI;IACd,SAAS,CAAC,KAAK,CAAC;IAChB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAQ,UAAU,IAAI;MAChD,IAAI,IAAI,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;MACxC,MAAM,KAAK,GAAG,UAAU,CACtB,MACE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAC7B,IAAI,KAAK,CAAC,+BAA+B,CAAC,EAC1C,6CAA6C,CAC9C,CAAC,EACJ,uBAAuB,CACxB;MACD,SAAS,GAAG,MAAK;QACf,YAAY,CAAC,KAAK,CAAC;QACnB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;MACzB,CAAC;IACH,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;EAC1C,CAAC,CAAC,CACH;EAED,IAAI,CAAC,QAAQ,GAAG;IAAE,SAAS;IAAE,UAAU;IAAE;EAAO,CAAE;EAClD,MAAM,CAAC,SAAS,GAAG,SAAS;EAC5B;EACA,IAAI;IACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;EACrB,CAAC,CAAC,OAAO,KAAK,EAAE;IACd,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,qCAAqC,CAAC,CAAC;EAC/E;EAEA;EACA,OAAO,MAAM,CAAC,QAAQ,CAAyD,MAAM,IAAI;IACvF,OAAO,GAAG,MAAM;IAChB,SAAS,CAAC,KAAK,CAAC;IAChB,OAAO,EAAE;IACT,IAAI,OAAO,KAAK,SAAS,EAAE;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAK;MACtB,IAAI,OAAO,KAAK,MAAM,EAAE,OAAO,GAAG,SAAS;IAC7C,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC,CAAC;AAEN,MAAM,aAAa,GAAG,CACpB,IAAsB,EACtB,GAAoD,EACpD,OAAe,KAEf,MAAM,CAAC,mBAAmB,CAAE,OAAO,IACjC,MAAM,CAAC,GAAG,CAAC,aAAS;EAClB,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC;EAC3D,IAAI,YAAY,KAAK,SAAS,EAAE,OAAO,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;EACvE,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,KAAK;EACtC,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;EAC5C,OAAO,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAS;IACxC,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,OAAO,OAAO,IAAI,CAAC,QAAQ;IAC5D,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,SAAS,EAAgB;IACpD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAC5C,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS,EAAE;MACxB,MAAM,GAAG,IAAI,GAAG,EAAE;MAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;IACpC;IACA,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IACjB,OAAO,KAAK,CAAC,YAAY,CACvB,KAAK,EACL,MAAM,CAAC,OAAO,CAAC,MAAK;MAClB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;MAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;MACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;MACrB,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;MAClD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;MAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,GACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC,GACrD,MAAM,CAAC,IAAI;MACf,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CACH;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,UAAU,EAAE,CAAC;IAC3C,OAAO,KAAK;EACd,CAAC,CAAC,CAAC,CAAC,IAAI,CACN,MAAM,CAAC,QAAQ,CAAE,KAAK,IAAK,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CACtE;AACH,CAAC,CAAC,CACH;AAEH,MAAM,iBAAiB,GAAG,CAAC,MAAsB,EAAE,GAAW,EAAE,MAAc,KAC5E,MAAM,CAAC,QAAQ,CAAQ,MAAM,IAAI;EAC/B,IAAI,IAAI,GAAG,KAAK;EAChB,IAAI,MAAc;EAClB,IAAI,KAAgD;EACpD,MAAM,MAAM,GAAG,MAAW;IACxB,IAAI,IAAI,EAAE;IACV,IAAI,GAAG,IAAI;IACX,IAAI,KAAK,KAAK,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC;IAC5C,MAAM,EAAE,OAAO,EAAE;IACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;EACrB,CAAC;EACD,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC;IAAE,GAAG;IAAE;EAAM,CAAE,CAAC;EAC7D;EACA;EACA,MAAM,IAAI,GAAG,MAAW;IACtB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;EACrB,CAAC;EACD,MAAM,KAAK,GAAG,MAAW;IACvB,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,OAAO,IAAI,EAAE;IACvC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAG,KAAiB,IAAI;MACxC,IAAI,IAAI,EAAE;MACV;MACA;MACA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,MAAM,EAAE;MAC5D,MAAM,GAAG,GAAG,MAAM;MAClB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;MACxB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;MACxB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QACrD,MAAM,EAAE;OACT,CAAC;MACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;MAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;MAC1B,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;EAC7C,CAAC;EACD,IAAI;IACF,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,GAChC,MAAM,CAAC,MAAM,EAAE,GACf,MAAM,CAAC,IAAI,KAAK,SAAS,GACzB,GAAG,CAAC,OAAO,CAAC;MAAE,IAAI,EAAE,MAAM,CAAC;IAAI,CAAE,CAAC,GAClC,GAAG,CAAC,OAAO,CAAC;MAAE,IAAI,EAAE,MAAM,CAAC,IAAI;MAAE,IAAI,EAAE,MAAM,CAAC,IAAI;MAAE,OAAO,EAAE;IAAI,CAAE,CAAC;EAC1E,CAAC,CAAC,MAAM;IACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IACnB;EACF;EACA,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,0BAA0B,CAAC;EACtD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;EAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;EAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,KAAK,EAAE,MACnC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;EAClC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,CAAC,CAAC;AAEJ,MAAM,OAAO,GAAI,MAAsB,IACrC,MAAM,CAAC,QAAQ,CAAqB,MAAM,IAAI;EAC5C,IAAI,IAAI,GAAG,KAAK;EAChB,IAAI,MAAc;EAClB,IAAI,MAA8C;EAClD,IAAI,cAA6C;EACjD,IAAI,KAAoC;EACxC,IAAI,SAAS,GAAG,CAAC;EACjB,IAAI,SAAS,GAAG,CAAC;EAEjB,MAAM,IAAI,GAAI,MAAsB,IAAU;IAC5C,IAAI,IAAI,EAAE;IACV,IAAI,GAAG,IAAI;IACX,MAAM,EAAE,OAAO,EAAE;IACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;MAAE;IAAM,CAAE,CAAC,CAAC,CAAC;EAC/C,CAAC;EACD,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,OAAe,KAClD,IAAI,CAAC,IAAI,eAAe,CAAC;IAAE,KAAK;IAAE,OAAO;IAAE,SAAS,EAAE;EAAS,CAAE,CAAC,CAAC;EACrE,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,OAAe,KAC/C,IAAI,CAAC,IAAI,mBAAmB,CAAC;IAAE,KAAK;IAAE,OAAO;IAAE,SAAS,EAAE;EAAS,CAAE,CAAC,CAAC;EAEzE,MAAM,OAAO,GAAI,KAAY,IAAK,WAAW,CAAC,KAAK,EAAE,iCAAiC,CAAC;EACvF,MAAM,OAAO,GAAG,MACd,WAAW,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,EAAE,gDAAgD,CAAC;EAE5G,MAAM,QAAQ,GAAG,MAAyB;IACxC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;MACjC,QAAQ,CACN,IAAI,KAAK,CAAC,8CAA8C,CAAC,EACzD,sCAAsC,CACvC;MACD,OAAO,SAAS;IAClB;IACA,OAAO,MAAM,CAAC,QAAQ;EACxB,CAAC;EAED,MAAM,aAAa,GAAI,OAA2C,IAAU;IAC1E,QAAQ,OAAO,CAAC,IAAI;MAClB,KAAK,kBAAkB;MACvB,KAAK,gBAAgB;MACrB,KAAK,0BAA0B;MAC/B,KAAK,iBAAiB;QACpB;MACF,KAAK,iCAAiC;QAAE;UACtC,MAAM,MAAM,GAAG,QAAQ,EAAE;UACzB,IAAI,MAAM,KAAK,SAAS,EAAE;UAC1B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC;YAAE,QAAQ,EAAE;UAAM,CAAE,CAAC,CAAC;UACpE;QACF;MACA,KAAK,2BAA2B;QAAE;UAChC,MAAM,MAAM,GAAG,QAAQ,EAAE;UACzB,IAAI,MAAM,KAAK,SAAS,EAAE;UAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC,QAAQ;YAAE,QAAQ,EAAE,MAAM;YAAE,IAAI,EAAE,OAAO,CAAC;UAAI,CAAE,CAAC;UAClG,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAClC,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC;UAC5E;UACA,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;UAAO,CAAE,CAAC,CAAC;UAC5E;QACF;MACA,KAAK,oBAAoB;QAAE;UACzB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;YACtD,OAAO,QAAQ,CACb,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAC1E,sBAAsB,MAAM,CAAC,aAAa,eAAe,CAC1D;UACH;UACA,MAAM,MAAM,GAAG,QAAQ,EAAE;UACzB,IAAI,MAAM,KAAK,SAAS,EAAE;UAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;YAAE,QAAQ,EAAE,MAAM;YAAE,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ;UAAC,CAAE,CAAC;UAC9F,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAChC,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,2CAA2C,CAAC;UAC5E;UACA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;UAC1B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,yBAAyB,CAAC;YAChD,SAAS,EAAE,MAAM,CAAC,aAAa;YAC/B,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC;WAC/B,CAAC,CAAC;UACH;QACF;MACA,KAAK,4BAA4B;QAAE;UACjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;YACtD,OAAO,WAAW,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,EAAE,+BAA+B,CAAC;UACzG;UACA,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;UACtD,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAChC,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,2CAA2C,CAAC;UAC5E;UACA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;UAC1B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;UAAQ,CAAE,CAAC,CAAC;UAC5E;QACF;MACA,KAAK,yBAAyB;QAAE;UAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;YACtD,OAAO,WAAW,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,EAAE,+BAA+B,CAAC;UACtG;UACA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;UACxD,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACpC,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,gDAAgD,CAAC;UACrF;UACA,KAAK,GAAG,SAAS;UACjB;QACF;MACA,KAAK,2BAA2B;QAC9B,OAAO,QAAQ,CACb,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,MAAM,mBAAmB,CAAC,EACrE,iDAAiD,CAClD;MACH,KAAK,gBAAgB;QACnB,SAAS,GAAG,OAAO,CAAC,GAAG;QACvB,SAAS,GAAG,OAAO,CAAC,MAAM;QAC1B;MACF,KAAK,eAAe;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,iCAAiC,EAAE,SAAS,CAAC,CAAC;MAC3F,KAAK,eAAe;QAClB,IAAI,KAAK,KAAK,SAAS,EAAE;UACvB,OAAO,QAAQ,CACb,IAAI,KAAK,CAAC,kEAAkE,CAAC,EAC7E,+CAA+C,CAChD;QACH;QACA,IAAI,GAAG,IAAI;QACX,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;UAAE,MAAM;UAAE,MAAM,EAAE,MAAO;UAAE,SAAS;UAAE;QAAS,CAAE,CAAC,CAAC;QACzE;MACF;QACE,OAAO,WAAW,CAChB,IAAI,KAAK,CAAC,cAAc,OAAO,CAAC,IAAI,yBAAyB,CAAC,EAC9D,+BAA+B,CAChC;IACL;EACF,CAAC;EAED,MAAM,MAAM,GAAI,KAAiB,IAAU;IACzC,IAAI,QAA2D;IAC/D,IAAI;MACF,QAAQ,GAAG,MAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC,CAAC,CAAC,OAAO,KAAK,EAAE;MACd,OAAO,WAAW,CAAC,KAAK,EAAE,+CAA+C,CAAC;IAC5E;IACA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;MAC9B,IAAI,IAAI,EAAE;MACV,aAAa,CAAC,OAAO,CAAC;IACxB;EACF,CAAC;EAED,MAAM,OAAO,GAAG,MAAW;IACzB,MAAM,GAAG,UAAU,CAAC,UAAU,CAAU;MAAE,cAAc,EAAE,MAAM,CAAC;IAAc,CAAE,CAAC;IAClF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC;MAC3C,IAAI,EAAE,MAAM,CAAC,QAAQ;MACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;MACzB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;EACL,CAAC;EAED,MAAM,aAAa,GAAI,KAAiB,IAAU;IAChD,IAAI,IAAI,EAAE;IACV,IAAI,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;MACrD,cAAc,KAAK,UAAU,CAAC,UAAU,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;MAAc,CAAE,CAAC;MACnF,IAAI,QAAkD;MACtD,IAAI;QACF,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;MACvC,CAAC,CAAC,OAAO,KAAK,EAAE;QACd,OAAO,WAAW,CAAC,KAAK,EAAE,yDAAyD,CAAC;MACtF;MACA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;MAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;MACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;MAC3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;QAC7D,OAAO,WAAW,CAChB,IAAI,KAAK,CAAC,6CAA6C,CAAC,EACxD,2CAA2C,CAC5C;MACH;MACA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,uCAAuC,EAAE,SAAS,CAAC,CAAC;IACjG;IACA,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;MACtB,OAAO,WAAW,CAChB,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,MAAM,kCAAkC,CAAC,EACrE,2CAA2C,CAC5C;IACH;IACA,MAAM,QAAQ,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;MACpC,OAAO,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,2CAA2C,CAAC;IACnF;IACA,IAAI,QAAQ,CAAC,OAAO,KAAK,GAAG,EAAE;MAC5B,OAAO,WAAW,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,EAAE,kCAAkC,CAAC;IACtG;IACA,MAAM,GAAG,GAAG,MAAM;IAClB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;IACzB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;MACnB,IAAI,EAAE,MAAM,CAAC,IAAI;MACjB,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;MACrD,MAAM,EAAE;KACT,CAAC;IACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;EACvC,CAAC;EAED,MAAM,KAAK,GAAG,MAAW;IACvB,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,OAAO,OAAO,EAAE;IAC1C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;EAC7C,CAAC;EAED,IAAI;IACF,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,GAChC,MAAM,CAAC,MAAM,EAAE,GACf,MAAM,CAAC,IAAI,KAAK,SAAS,GACzB,GAAG,CAAC,OAAO,CAAC;MAAE,IAAI,EAAE,MAAM,CAAC;IAAI,CAAE;IACnC;IACA;IAAA,EACE,GAAG,CAAC,OAAO,CAAC;MAAE,IAAI,EAAE,MAAM,CAAC,IAAI;MAAE,IAAI,EAAE,MAAM,CAAC,IAAI;MAAE,OAAO,EAAE;IAAI,CAAE,CAAC;EAC1E,CAAC,CAAC,OAAO,KAAK,EAAE;IACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,IAAI,QAAQ,CAAC;MACX,MAAM,EAAE,IAAI,eAAe,CAAC;QAAE,KAAK;QAAE,OAAO,EAAE,iCAAiC;QAAE,SAAS,EAAE;MAAS,CAAE;KACxG,CAAC,CACH,CAAC;IACF;EACF;EACA,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;EAC3B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;EAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;IAC/B,KAAK,EAAE;EACT,CAAC,MAAM;IACL,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;EAC/B;EAEA,OAAO,MAAM,CAAC,IAAI,CAAC,MAAK;IACtB,IAAI,IAAI,EAAE;IACV,IAAI,GAAG,IAAI;IACX,MAAM,CAAC,OAAO,EAAE;EAClB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAM,WAAW,GAAI,CAAQ,IAAI,CAAE,CAAC;AAgBpC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,KAAe,KACnD,IAAI,QAAQ,CAAC;EACX,MAAM,EAAE,IAAI,eAAe,CAAC;IAC1B,KAAK,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC;IAClC,OAAO,EAAE,iBAAiB,OAAO,EAAE;IACnC,SAAS,EAAE;GACZ;CACF,CAAC;AAEJ,MAAM,aAAa,GAAI,OAAe,IACpC,MAAM,CAAC,OAAO,CAAC,MAAK;EAClB,MAAM,MAAM,GAA6C,OAAO,CAAC,GAAG,KAAK,SAAS,GAC9E,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,GAChE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;EAC5B,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;EACtE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO;EAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,WAAW;EACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI;EAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;EAC7F,IAAI,QAAQ,KAAK,SAAS,EAAE;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;EAC3D;EACA,OAAO,MAAM,CAAC,OAAO,CAAiB;IACpC,IAAI;IACJ,IAAI;IACJ,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,aAAa,IAAI,EAAE,GAAG,SAAS,CAAC;IACrF,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK;IACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;IAC1C,QAAQ;IACR,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ;IAC1F,cAAc,EAAE,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7G,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC,eAAe,IAAI,gBAAgB;IACnF,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,cAAc,EAAE,OAAO,CAAC;GACzB,CAAC;AACJ,CAAC,CAAC;AAaJ,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,IAAY,KAA2C;EAC7F,IAAI;IACF,OAAO,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;EACxD,CAAC,CAAC,MAAM;IACN,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;EAClF;AACF,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,IAAY,KAA2C;EACvF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;EAC1B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,GACtD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,GACzE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,cAAuB,KAA8C;EAClG,IAAI,GAAQ;EACZ,IAAI;IACF,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;EACpB,CAAC,CAAC,OAAO,KAAK,EAAE;IACd,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;EACxE;EACA,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;IAClE,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,yCAAyC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;EACjG;EAEA,MAAM,MAAM,GAAc,EAAE;EAC5B,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE;IACvB,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC9D,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC,MAAM;MACL,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;MAClD,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;MACxE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO;IAC5B;EACF;EACA,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE;IACnB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC;IAC7C,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACxE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO;EAC5B;EACA,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE;IACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC1D,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAChF,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO;EACpC;EACA,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE;IACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC1D,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAChF,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO;EACpC;EACA,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC;EAC7E,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;EAChF,IAAI,QAAQ,CAAC,OAAO,KAAK,EAAE,EAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO;EAE/D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE;IAC3C,QAAQ,GAAG;MACT,KAAK,MAAM;QACT,MAAM,CAAC,IAAI,GAAG,KAAK;QACnB;MACF,KAAK,MAAM;QAAE;UACX,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC;UAC/C,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;UACxE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO;UAC1B;QACF;MACA,KAAK,MAAM;QACT,MAAM,CAAC,QAAQ,GAAG,KAAK;QACvB;MACF,KAAK,UAAU;QACb,MAAM,CAAC,QAAQ,GAAG,KAAK;QACvB;MACF,KAAK,QAAQ;QACX,MAAM,CAAC,QAAQ,GAAG,KAAK;QACvB;MACF,KAAK,kBAAkB;QACrB,MAAM,CAAC,eAAe,GAAG,KAAK;QAC9B;MACF,KAAK,iBAAiB;QAAE;UACtB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;UAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE;YAC7C,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,oCAAoC,KAAK,GAAG,CAAC,CAAC;UACrF;UACA,MAAM,CAAC,cAAc,GAAG,OAAO,KAAK,CAAC,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;UACrF;QACF;MACA,KAAK,SAAS;QACZ,QAAQ,KAAK;UACX,KAAK,SAAS;YACZ,MAAM,CAAC,GAAG,GAAG,KAAK;YAClB;UACF,KAAK,SAAS;UACd,KAAK,WAAW;UAChB,KAAK,aAAa;YAChB,MAAM,CAAC,GAAG,GAAG,IAAI;YACjB;UACF,KAAK,QAAQ;UACb,KAAK,OAAO;YACV,IAAI,cAAc,EAAE;YACpB,OAAO,YAAY,CAAC,IAAI,CACtB,WAAW,CAAC,YAAY,KAAK,yDAAyD,CAAC,CACxF;UACH;YACE,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,iCAAiC,KAAK,GAAG,CAAC,CAAC;QACpF;QACA;MACA;IACJ;EACF;EACA,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,MAA8B,EAC9B,OAAe,EACf,SAAiB,KACC;EAClB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,0BAA0B,CAAC,EAAE,MAAM,CAAC;EAC5F,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE;IAAE,KAAK;IAAE,OAAO;IAAE;EAAS,CAAE,CAAC;AACxF,CAAC","ignoreList":[]}
@@ -0,0 +1,107 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Duration from "effect/Duration";
3
+ import * as Effect from "effect/Effect";
4
+ import type * as Scope from "effect/Scope";
5
+ import type { SqlError } from "effect/unstable/sql/SqlError";
6
+ import * as PgConnection from "./PgConnection.ts";
7
+ /**
8
+ * The runtime type identifier for `PgPool`.
9
+ *
10
+ * @category type IDs
11
+ * @since 4.0.0
12
+ */
13
+ export declare const TypeId: TypeId;
14
+ /**
15
+ * The type-level identifier for `PgPool`.
16
+ *
17
+ * @category type IDs
18
+ * @since 4.0.0
19
+ */
20
+ export type TypeId = "~@effect/sql-pg/PgPool";
21
+ /**
22
+ * Connection and sizing settings for a PostgreSQL session pool.
23
+ *
24
+ * **Details**
25
+ *
26
+ * The defaults are 0 to 10 connections and a 10-second idle timeout.
27
+ * `connectionTTL` replaces connections that exceed the configured lifetime.
28
+ * Every connection is used at least once, so a TTL of zero disables reuse.
29
+ *
30
+ * With `multiplex` enabled, fibers may share pooled connections for pipelined
31
+ * queries. Reserved connections remain exclusive. Without multiplexing, every
32
+ * checkout is exclusive.
33
+ *
34
+ * @category models
35
+ * @since 4.0.0
36
+ */
37
+ export interface Config extends PgConnection.Config {
38
+ readonly idleTimeout?: Duration.Input | undefined;
39
+ readonly maxConnections?: number | undefined;
40
+ readonly minConnections?: number | undefined;
41
+ readonly connectionTTL?: Duration.Input | undefined;
42
+ /**
43
+ * How many statements may share one connection when `multiplex` is on.
44
+ * Defaults to `32`. Statements are pipelined into one write, so a higher
45
+ * number means fewer round trips, but it also means a slow statement holds
46
+ * up more of the statements queued behind it.
47
+ */
48
+ readonly multiplexConcurrency?: number | undefined;
49
+ }
50
+ /**
51
+ * A PostgreSQL session pool.
52
+ *
53
+ * @category models
54
+ * @since 4.0.0
55
+ */
56
+ export interface PgPool {
57
+ readonly [TypeId]: TypeId;
58
+ readonly config: Config;
59
+ /**
60
+ * Checks out a session until the scope closes. Without multiplexing the
61
+ * checkout is exclusive. With multiplexing the
62
+ * session may be shared with other fibers, so multi-statement work should
63
+ * use `reserve` instead.
64
+ */
65
+ readonly get: Effect.Effect<PgConnection.PgConnection, SqlError, Scope.Scope>;
66
+ /**
67
+ * Checks out a session for exclusive use until the scope closes. Use this for
68
+ * transactions and listeners on a multiplexed pool.
69
+ */
70
+ readonly reserve: Effect.Effect<PgConnection.PgConnection, SqlError, Scope.Scope>;
71
+ /**
72
+ * Removes a session so the pool can replace it. Fatal protocol and socket
73
+ * errors invalidate sessions automatically.
74
+ */
75
+ /**
76
+ * Lends a session for the duration of one effect and takes it back on any
77
+ * exit, without opening a scope for it.
78
+ *
79
+ * **Details**
80
+ *
81
+ * For work that finishes with the effect that runs it. A lease that has to
82
+ * outlive its effect - a stream, a transaction - takes `get` or `reserve`.
83
+ */
84
+ readonly use: <A, E, R>(f: (connection: PgConnection.PgConnection) => Effect.Effect<A, E, R>) => Effect.Effect<A, E | SqlError, R>;
85
+ readonly invalidate: (connection: PgConnection.PgConnection) => Effect.Effect<void>;
86
+ }
87
+ /**
88
+ * The service tag for `PgPool`.
89
+ *
90
+ * @category services
91
+ * @since 4.0.0
92
+ */
93
+ export declare const PgPool: Context.Service<PgPool, PgPool>;
94
+ /**
95
+ * Creates a scoped PostgreSQL session pool.
96
+ *
97
+ * **Details**
98
+ *
99
+ * Connections are opened lazily up to `maxConnections` and released down to
100
+ * `minConnections` after `idleTimeout` without use. Closing the scope shuts
101
+ * the pool down and releases every session.
102
+ *
103
+ * @category constructors
104
+ * @since 4.0.0
105
+ */
106
+ export declare const make: (options: Config) => Effect.Effect<PgPool, SqlError, Scope.Scope>;
107
+ //# sourceMappingURL=PgPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgPool.d.ts","sourceRoot":"","sources":["../src/PgPool.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAIjD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,MAAiC,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,wBAAwB,CAAA;AAE7C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,MAAO,SAAQ,YAAY,CAAC,MAAM;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACnD;AAED;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7E;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACjF;;;OAGG;IACH;;;;;;;;OAQG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACpB,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACjE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACpF;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,iCAAmD,CAAA;AAEtE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,mEA2Gf,CAAA"}
package/dist/PgPool.js ADDED
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Pools of native `PgConnection` sessions.
3
+ *
4
+ * @since 4.0.0
5
+ */
6
+ import * as Clock from "effect/Clock";
7
+ import * as Context from "effect/Context";
8
+ import * as Duration from "effect/Duration";
9
+ import * as Effect from "effect/Effect";
10
+ import * as Pool from "effect/Pool";
11
+ import { connectionInternals } from "./internal/connection.js";
12
+ import * as PgConnection from "./PgConnection.js";
13
+ const defaultMultiplexConcurrency = 32;
14
+ /**
15
+ * The runtime type identifier for `PgPool`.
16
+ *
17
+ * @category type IDs
18
+ * @since 4.0.0
19
+ */
20
+ export const TypeId = "~@effect/sql-pg/PgPool";
21
+ /**
22
+ * The service tag for `PgPool`.
23
+ *
24
+ * @category services
25
+ * @since 4.0.0
26
+ */
27
+ export const PgPool = /*#__PURE__*/Context.Service("@effect/sql-pg/PgPool");
28
+ /**
29
+ * Creates a scoped PostgreSQL session pool.
30
+ *
31
+ * **Details**
32
+ *
33
+ * Connections are opened lazily up to `maxConnections` and released down to
34
+ * `minConnections` after `idleTimeout` without use. Closing the scope shuts
35
+ * the pool down and releases every session.
36
+ *
37
+ * @category constructors
38
+ * @since 4.0.0
39
+ */
40
+ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
41
+ const clock = yield* Clock.Clock;
42
+ const runFork = Effect.runForkWith(yield* Effect.context());
43
+ const multiplex = options.multiplex ?? false;
44
+ const connectionTTL = options.connectionTTL !== undefined ? Duration.toMillis(Duration.fromInputUnsafe(options.connectionTTL)) : undefined;
45
+ const deadConnections = new Set();
46
+ const createdAt = new WeakMap();
47
+ const checkedOut = new WeakSet();
48
+ // Assigned below, once the pool exists. `acquire` only runs when the pool
49
+ // opens a connection, which is always after that.
50
+ let pool;
51
+ const acquire = Effect.tap(PgConnection.make(options), connection => Effect.sync(() => {
52
+ createdAt.set(connection, clock.currentTimeMillisUnsafe());
53
+ const internals = connectionInternals(connection);
54
+ internals.fatalHooks.add(() => {
55
+ deadConnections.add(connection);
56
+ // `deadConnections` is only read by the next checkout, and a checkout
57
+ // already waiting for this connection would never get that far. Tell
58
+ // the pool now so it can replace the connection and admit them.
59
+ runFork(Pool.invalidate(pool, connection));
60
+ });
61
+ // Pinning a shared session has to take it out of circulation, or a
62
+ // second checkout lands on the connection its own stream is holding.
63
+ if (multiplex) internals.reserve = Pool.reserve(pool, connection);
64
+ }));
65
+ const maxConnections = options.maxConnections ?? 10;
66
+ pool = yield* Pool.makeWithTTL({
67
+ acquire,
68
+ min: options.minConnections ?? 0,
69
+ max: maxConnections,
70
+ concurrency: multiplex ? Math.max(1, options.multiplexConcurrency ?? defaultMultiplexConcurrency) : 1,
71
+ timeToLive: options.idleTimeout ?? Duration.seconds(10),
72
+ timeToLiveStrategy: "usage"
73
+ });
74
+ const expired = connection => {
75
+ if (connectionInternals(connection).deadError() !== undefined) return true;
76
+ if (connectionTTL === undefined) return false;
77
+ if (!checkedOut.has(connection)) {
78
+ checkedOut.add(connection);
79
+ return false;
80
+ }
81
+ const openedAt = createdAt.get(connection);
82
+ return openedAt !== undefined && clock.currentTimeMillisUnsafe() - openedAt >= connectionTTL;
83
+ };
84
+ // A checkout runs per statement, so the case where nothing has died and the
85
+ // first connection is usable stays a plain flatMap; retrying is the
86
+ // exception and pays for the loop.
87
+ const retry = Effect.gen(function* () {
88
+ while (true) {
89
+ if (deadConnections.size > 0) {
90
+ const dead = Array.from(deadConnections);
91
+ deadConnections.clear();
92
+ yield* Effect.forEach(dead, connection => Pool.invalidate(pool, connection), {
93
+ discard: true
94
+ });
95
+ }
96
+ const connection = yield* Pool.get(pool);
97
+ if (expired(connection)) {
98
+ yield* Pool.invalidate(pool, connection);
99
+ continue;
100
+ }
101
+ return connection;
102
+ }
103
+ });
104
+ const get = Effect.suspend(() => deadConnections.size > 0 ? retry : Effect.flatMap(Pool.get(pool), connection => expired(connection) ? Effect.andThen(Pool.invalidate(pool, connection), retry) : Effect.succeed(connection)));
105
+ // `pin` reserves the pool item itself, so this needs no help.
106
+ const reserve = Effect.flatMap(get, connection => connection.pin);
107
+ // `Pool.use` cannot check the session it hands over before running the
108
+ // effect, so it is only taken when there is nothing to check: no session is
109
+ // known dead, and no lifetime can have run out. Otherwise the scoped
110
+ // checkout does its replacement pass first. Checking inside the callback
111
+ // instead would hold one lease while acquiring another, which deadlocks a
112
+ // pool of one.
113
+ const use = f => Effect.suspend(() => connectionTTL === undefined && deadConnections.size === 0 ? Pool.use(pool, f) : Effect.scoped(Effect.flatMap(get, f)));
114
+ const pgPool = {
115
+ [TypeId]: TypeId,
116
+ config: options,
117
+ get,
118
+ reserve,
119
+ use,
120
+ invalidate: connection => Pool.invalidate(pool, connectionInternals(connection).base)
121
+ };
122
+ return pgPool;
123
+ });
124
+ //# sourceMappingURL=PgPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgPool.js","names":[],"sources":["../src/PgPool.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,OAAO,KAAK,KAAK,MAAM,cAAc;AACrC,OAAO,KAAK,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa;AAGnC,SAAS,mBAAmB,QAAQ,0BAA0B;AAC9D,OAAO,KAAK,YAAY,MAAM,mBAAmB;AAEjD,MAAM,2BAA2B,GAAG,EAAE;AAEtC;;;;;;AAMA,OAAO,MAAM,MAAM,GAAW,wBAAwB;AAgFtD;;;;;;AAMA,OAAO,MAAM,MAAM,gBAAG,OAAO,CAAC,OAAO,CAAS,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;AAYA,OAAO,MAAM,IAAI,gBAAG,MAAM,CAAC,UAAU,CAAC,WAAU,OAAe;EAC7D,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK;EAChC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;EAE3D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK;EAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,GACrD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAClE,SAAS;EACb,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6B;EAC5D,MAAM,SAAS,GAAG,IAAI,OAAO,EAAqC;EAClE,MAAM,UAAU,GAAG,IAAI,OAAO,EAA6B;EAE3D;EACA;EACA,IAAI,IAAoD;EACxD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAG,UAAU,IAChE,MAAM,CAAC,IAAI,CAAC,MAAK;IACf,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,uBAAuB,EAAE,CAAC;IAC1D,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC;IACjD,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,MAAK;MAC5B,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;MAC/B;MACA;MACA;MACA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF;IACA;IACA,IAAI,SAAS,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;EACnE,CAAC,CAAC,CAAC;EAEL,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE;EACnD,IAAI,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC;IAC7B,OAAO;IACP,GAAG,EAAE,OAAO,CAAC,cAAc,IAAI,CAAC;IAChC,GAAG,EAAE,cAAc;IACnB,WAAW,EAAE,SAAS,GAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,oBAAoB,IAAI,2BAA2B,CAAC,GACxE,CAAC;IACL,UAAU,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,kBAAkB,EAAE;GACrB,CAAC;EAEF,MAAM,OAAO,GAAI,UAAqC,IAAa;IACjE,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE,OAAO,IAAI;IAC1E,IAAI,aAAa,KAAK,SAAS,EAAE,OAAO,KAAK;IAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;MAC/B,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;MAC1B,OAAO,KAAK;IACd;IACA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;IAC1C,OAAO,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,uBAAuB,EAAE,GAAG,QAAQ,IAAI,aAAa;EAC9F,CAAC;EAED;EACA;EACA;EACA,MAAM,KAAK,GAAoE,MAAM,CAAC,GAAG,CAAC,aAAS;IACjG,OAAO,IAAI,EAAE;MACX,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;QACxC,eAAe,CAAC,KAAK,EAAE;QACvB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAG,UAAU,IAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;UAAE,OAAO,EAAE;QAAI,CAAE,CAAC;MACnG;MACA,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;MACxC,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC;QACxC;MACF;MACA,OAAO,UAAU;IACnB;EACF,CAAC,CAAC;EAEF,MAAM,GAAG,GAAoE,MAAM,CAAC,OAAO,CAAC,MAC1F,eAAe,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAG,UAAU,IAC3E,OAAO,CAAC,UAAU,CAAC,GACf,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,GACxD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAClC;EAED;EACA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAG,UAAU,IAAK,UAAU,CAAC,GAAG,CAAC;EAEnE;EACA;EACA;EACA;EACA;EACA;EACA,MAAM,GAAG,GACP,CAAoE,IAEpE,MAAM,CAAC,OAAO,CAAC,MACb,aAAa,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,GACrD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAC1C;EAEH,MAAM,MAAM,GAAW;IACrB,CAAC,MAAM,GAAG,MAAM;IAChB,MAAM,EAAE,OAAO;IACf,GAAG;IACH,OAAO;IACP,GAAG;IACH,UAAU,EAAG,UAAU,IAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAiC;GACpH;EACD,OAAO,MAAM;AACf,CAAC,CAAC","ignoreList":[]}