@volter/browser-wali 0.1.5 → 0.1.6

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 (158) hide show
  1. package/README.md +73 -0
  2. package/dist/browser-wali-command.d.ts +3 -0
  3. package/dist/browser-wali-command.d.ts.map +1 -1
  4. package/dist/browser-wali-command.js +2 -1
  5. package/dist/browser-wali-command.js.map +1 -1
  6. package/dist/capabilities.d.ts +73 -1
  7. package/dist/capabilities.d.ts.map +1 -1
  8. package/dist/capabilities.js +86 -2
  9. package/dist/capabilities.js.map +1 -1
  10. package/dist/child-processes.d.ts +24 -0
  11. package/dist/child-processes.d.ts.map +1 -0
  12. package/dist/child-processes.js +134 -0
  13. package/dist/child-processes.js.map +1 -0
  14. package/dist/codec-protocol.d.ts +66 -0
  15. package/dist/codec-protocol.d.ts.map +1 -0
  16. package/dist/codec-protocol.js +59 -0
  17. package/dist/codec-protocol.js.map +1 -0
  18. package/dist/codec-remote.d.ts +33 -0
  19. package/dist/codec-remote.d.ts.map +1 -0
  20. package/dist/codec-remote.js +190 -0
  21. package/dist/codec-remote.js.map +1 -0
  22. package/dist/codec-worker.d.ts +2 -0
  23. package/dist/codec-worker.d.ts.map +1 -0
  24. package/dist/codec-worker.js +438 -0
  25. package/dist/codec-worker.js.map +1 -0
  26. package/dist/coherent-file-locks.d.ts.map +1 -1
  27. package/dist/coherent-file-locks.js +17 -5
  28. package/dist/coherent-file-locks.js.map +1 -1
  29. package/dist/descriptors.d.ts +49 -0
  30. package/dist/descriptors.d.ts.map +1 -0
  31. package/dist/descriptors.js +115 -0
  32. package/dist/descriptors.js.map +1 -0
  33. package/dist/events.d.ts.map +1 -1
  34. package/dist/events.js +2 -2
  35. package/dist/events.js.map +1 -1
  36. package/dist/filesystem-protocol.d.ts +28 -1
  37. package/dist/filesystem-protocol.d.ts.map +1 -1
  38. package/dist/filesystem-protocol.js +18 -0
  39. package/dist/filesystem-protocol.js.map +1 -1
  40. package/dist/filesystem-remote.d.ts +26 -2
  41. package/dist/filesystem-remote.d.ts.map +1 -1
  42. package/dist/filesystem-remote.js +132 -23
  43. package/dist/filesystem-remote.js.map +1 -1
  44. package/dist/filesystem-worker.js +274 -34
  45. package/dist/filesystem-worker.js.map +1 -1
  46. package/dist/filesystem.d.ts +30 -1
  47. package/dist/filesystem.d.ts.map +1 -1
  48. package/dist/filesystem.js +180 -50
  49. package/dist/filesystem.js.map +1 -1
  50. package/dist/fork-worker.d.ts +2 -0
  51. package/dist/fork-worker.d.ts.map +1 -0
  52. package/dist/fork-worker.js +52 -0
  53. package/dist/fork-worker.js.map +1 -0
  54. package/dist/host.d.ts +36 -0
  55. package/dist/host.d.ts.map +1 -0
  56. package/dist/host.js +153 -0
  57. package/dist/host.js.map +1 -0
  58. package/dist/loopback-host.d.ts +25 -1
  59. package/dist/loopback-host.d.ts.map +1 -1
  60. package/dist/loopback-host.js +447 -13
  61. package/dist/loopback-host.js.map +1 -1
  62. package/dist/memory.d.ts +65 -2
  63. package/dist/memory.d.ts.map +1 -1
  64. package/dist/memory.js +306 -49
  65. package/dist/memory.js.map +1 -1
  66. package/dist/module-layout.d.ts +2 -0
  67. package/dist/module-layout.d.ts.map +1 -1
  68. package/dist/module-layout.js +4 -2
  69. package/dist/module-layout.js.map +1 -1
  70. package/dist/monotonic-clock.d.ts +12 -0
  71. package/dist/monotonic-clock.d.ts.map +1 -0
  72. package/dist/monotonic-clock.js +14 -0
  73. package/dist/monotonic-clock.js.map +1 -0
  74. package/dist/network-protocol.d.ts +12 -1
  75. package/dist/network-protocol.d.ts.map +1 -1
  76. package/dist/network-protocol.js +6 -0
  77. package/dist/network-protocol.js.map +1 -1
  78. package/dist/network-worker.js +149 -20
  79. package/dist/network-worker.js.map +1 -1
  80. package/dist/network.d.ts +15 -3
  81. package/dist/network.d.ts.map +1 -1
  82. package/dist/network.js +74 -39
  83. package/dist/network.js.map +1 -1
  84. package/dist/process-adapter.d.ts +4 -1
  85. package/dist/process-adapter.d.ts.map +1 -1
  86. package/dist/process-adapter.js +3 -3
  87. package/dist/process-adapter.js.map +1 -1
  88. package/dist/process-bridge.d.ts +43 -0
  89. package/dist/process-bridge.d.ts.map +1 -1
  90. package/dist/process-bridge.js +30 -1
  91. package/dist/process-bridge.js.map +1 -1
  92. package/dist/program.d.ts +60 -1
  93. package/dist/program.d.ts.map +1 -1
  94. package/dist/program.js +92 -31
  95. package/dist/program.js.map +1 -1
  96. package/dist/runtime.d.ts.map +1 -1
  97. package/dist/runtime.js +491 -134
  98. package/dist/runtime.js.map +1 -1
  99. package/dist/select.d.ts +16 -0
  100. package/dist/select.d.ts.map +1 -0
  101. package/dist/select.js +100 -0
  102. package/dist/select.js.map +1 -0
  103. package/dist/shared-pipes.d.ts +17 -6
  104. package/dist/shared-pipes.d.ts.map +1 -1
  105. package/dist/shared-pipes.js +94 -70
  106. package/dist/shared-pipes.js.map +1 -1
  107. package/dist/signals.d.ts +48 -0
  108. package/dist/signals.d.ts.map +1 -0
  109. package/dist/signals.js +232 -0
  110. package/dist/signals.js.map +1 -0
  111. package/dist/snapshot-filesystem.d.ts +128 -2
  112. package/dist/snapshot-filesystem.d.ts.map +1 -1
  113. package/dist/snapshot-filesystem.js +481 -53
  114. package/dist/snapshot-filesystem.js.map +1 -1
  115. package/dist/spawn-policy.d.ts +5 -0
  116. package/dist/spawn-policy.d.ts.map +1 -0
  117. package/dist/spawn-policy.js +29 -0
  118. package/dist/spawn-policy.js.map +1 -0
  119. package/dist/stdin.d.ts +2 -0
  120. package/dist/stdin.d.ts.map +1 -1
  121. package/dist/stdin.js +4 -0
  122. package/dist/stdin.js.map +1 -1
  123. package/dist/symlink.d.ts +8 -0
  124. package/dist/symlink.d.ts.map +1 -1
  125. package/dist/symlink.js +13 -0
  126. package/dist/symlink.js.map +1 -1
  127. package/dist/system.d.ts +152 -1
  128. package/dist/system.d.ts.map +1 -1
  129. package/dist/system.js +226 -7
  130. package/dist/system.js.map +1 -1
  131. package/dist/thread-coordinator-worker.d.ts +1 -0
  132. package/dist/thread-coordinator-worker.d.ts.map +1 -1
  133. package/dist/thread-coordinator-worker.js +1 -0
  134. package/dist/thread-coordinator-worker.js.map +1 -1
  135. package/dist/thread-worker.js +241 -122
  136. package/dist/thread-worker.js.map +1 -1
  137. package/dist/threads.d.ts +12 -2
  138. package/dist/threads.d.ts.map +1 -1
  139. package/dist/threads.js +30 -10
  140. package/dist/threads.js.map +1 -1
  141. package/dist/types.d.ts +39 -0
  142. package/dist/types.d.ts.map +1 -1
  143. package/dist/websocket-peer.d.ts.map +1 -1
  144. package/dist/websocket-peer.js +4 -14
  145. package/dist/websocket-peer.js.map +1 -1
  146. package/dist/worker-program-protocol.d.ts +70 -3
  147. package/dist/worker-program-protocol.d.ts.map +1 -1
  148. package/dist/worker-program-worker.js +115 -23
  149. package/dist/worker-program-worker.js.map +1 -1
  150. package/dist/worker-program.d.ts +25 -1
  151. package/dist/worker-program.d.ts.map +1 -1
  152. package/dist/worker-program.js +470 -61
  153. package/dist/worker-program.js.map +1 -1
  154. package/dist/worker-standby.d.ts +3 -0
  155. package/dist/worker-standby.d.ts.map +1 -0
  156. package/dist/worker-standby.js +17 -0
  157. package/dist/worker-standby.js.map +1 -0
  158. package/package.json +20 -6
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,iBAAiB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,wEAAwE;AACxE,wEAAwE;AACxE,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,0EAA0E;AAC1E,8EAA8E;AAC9E,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,8EAA8E;AAC9E,8EAA8E;AAC9E,yEAAyE;AACzE,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,eAAe,GAAG,CAAC,CAAC,CAAC;AAC3B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,uBAAuB,GAAG,sBAAsB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC7F,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACrC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAC5C,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAgB9B,MAAM,UAAU,4BAA4B;IAC1C,OAAO,IAAI,iBAAiB,CAAC,UAAU,CAAC,iBAAiB;UACrD,CAAC,iCAAiC,GAAG,0BAA0B,GAAG,0BAA0B,CAAC,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,IAAI,iBAAiB,CAAC,UAAU,CAAC,iBAAiB,GAAG,uBAAuB,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,OAAO,iBAAiB;IAMT;IACA;IAEA;IACA;IAEA;IAXF,QAAQ,GAAoB,EAAE,CAAC;IAC/B,cAAc,CAAa;IACpC,oBAAoB,GAAG,KAAK,CAAC;IAErC,YACmB,MAAgC,EAChC,QAAgF,EACjG,gBAAoC,EACnB,OAA4C,EAC5C,eAA6E,EAC9F,kBAAsC,EACrB,MAAkC;QANlC,WAAM,GAAN,MAAM,CAA0B;QAChC,aAAQ,GAAR,QAAQ,CAAwE;QAEhF,YAAO,GAAP,OAAO,CAAqC;QAC5C,oBAAe,GAAf,eAAe,CAA8D;QAE7E,WAAM,GAAN,MAAM,CAA4B;QAEnD,MAAM,OAAO,GAAG,gBAAgB,IAAI,0BAA0B,EAAE,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;cACjD,iCAAiC,GAAG,0BAA0B,GAAG,0BAA0B,EAAE,CAAC;YAChG,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAEgB,cAAc,CAAyB;IAExD,gBAAgB;QACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,MAA2B,CAAC;IACzD,CAAC;IAED,YAAY;QACV,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAG,IAAI,CAAC,cAAc,CAAC,MAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/G,CAAC;IAED,WAAW,CAAC,QAA4B;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,OAAO;QACL,OAAO;YACL,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CACrE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAC/F;YACD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACjH,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7E,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAC1E,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CACxF;YACD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACvG,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SAClG,CAAC;IACJ,CAAC;IAEO,GAAG,CAAC,SAAiB;QAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACvE,IAAI,SAAS,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,wEAAwE;QACxE,2EAA2E;QAC3E,sEAAsE;QACtE,0EAA0E;QAC1E,sBAAsB;QACtB,IAAI,SAAS,GAAG,iBAAiB;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAEO,IAAI,CAAC,SAAiB,EAAE,MAAc,EAAE,UAAkB,EAAE,KAAa,EAAE,EAAU,EAAE,MAAc;QAC3G,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QACjE,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,GAAG,CAAC,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QACvE,IAAI,YAAoC,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qEAAqE;gBACrE,iEAAiE;gBACjE,6DAA6D;gBAC7D,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,MAAM,aAAa,MAAM,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACtJ,OAAO,CAAC,GAAG,CAAC;YACd,CAAC;YACD,IAAI,CAAC,YAAY;gBAAE,OAAO,CAAC,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,IAAI,aAA6E,CAAC;QAClF,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvD,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,aAAa;gBAAE,OAAO,CAAC,MAAM,CAAC;QACrC,CAAC;aAAM,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;mBACzF,OAAO,CAAC,UAAU,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;YAC5E,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;gBACzB,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;gBACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,KAAK,KAAK,eAAe;YAAE,OAAO,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,eAAe,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QACrF,MAAM,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,MAAM,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YACzC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,IAAI,YAAY;gBAAE,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEO,QAAQ,CAAC,OAAe,EAAE,MAAc,EAAE,UAAkB;QAClE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QACrD,MAAM,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QACtG,IAAI,OAAO;YAAE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;aACxC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO,CAAC,MAAM,CAAC;QAC/D,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,MAAM,CAAC,OAAe,EAAE,MAAc;QAC5C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QACrD,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QACzG,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,sEAAsE;QACtE,wEAAwE;QACxE,mEAAmE;QACnE,2EAA2E;QAC3E,qEAAqE;QACrE,0EAA0E;QAC1E,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,oEAAoE;QACpE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;gBACvC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG;gBAAE,OAAO,CAAC,MAAM,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC;YAC3D,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC;QAC7E,yEAAyE;QACzE,oEAAoE;QACpE,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,UAAU,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;YAC1C,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC;QACxB,CAAC;QACD,gFAAgF;QAChF,kEAAkE;QAClE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,cAAc,CAAC,KAAa,EAAE,GAAW;QAC/C,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,GAAG,IAAI,KAAK;YAAE,OAAO;QACzB,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChF,IAAI,KAAK,GAAG,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9D,OAAO,GAAG,GAAG,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,wBAAwB,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAChH,IAAI,IAAI,KAAK,OAAO;gBAAE,MAAM;YAC5B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,KAAa,EAAE,GAAW;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,SAAS,GAAG,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,GAAG,GAAG,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAEO,oBAAoB,CAAC,KAAa,EAAE,GAAW;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,0BAA0B,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;gBAChE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC;oBAAE,SAAS;gBAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;oBAAE,SAAS;gBAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,SAAS,GAAG,WAAW,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrF,IAAI,KAAK,GAAG,SAAS,IAAI,GAAG,GAAG,WAAW;oBAAE,OAAO,IAAI,CAAC;YAC1D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,OAAe,EAAE,SAAiB,EAAE,SAAiB,EAAE,KAAa,EAAE,SAAiB;QACpG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QAC9G,IAAI,KAAK,GAAG,CAAC,CAAC,cAAc,GAAG,YAAY,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QACxE,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,OAAO,IAAI,SAAS,CAAC,GAAG,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC;QACrH,IAAI,OAAO,EAAE,YAAY,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,CAAC;QACxD,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;QACjC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO,CAAC,MAAM,CAAC;QAE7D,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,IAAI,OAAO;gBAAE,OAAO,CAAC,GAAG,GAAG,OAAO,GAAG,OAAO,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;QACtC,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,oDAAoD;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC;YACpD,IAAI,OAAO;gBAAE,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;YACvC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,cAAc;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QAE9C,MAAM,MAAM,GAAG,KAAK,GAAG,YAAY;YACjC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,MAAM,KAAK,eAAe;YAAE,OAAO,CAAC,MAAM,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,eAAe,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QACzH,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7D,OAAO,CAAC,MAAM,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3G,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;YACvB,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;YACxB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;gBAClF,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAEO,OAAO,CAAC,OAAe,EAAE,MAAc,EAAE,MAAc;QAC7D,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QACpG,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,OAAe,EAAE,MAAc,EAAE,KAAa;QAC1D,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC;QAClG,MAAM,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QACtG,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACjF,CAAC;IAEO,YAAY,CAAC,OAAsB,EAAE,KAAa,EAAE,GAAW;QACrE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClG,CAAC;IAEO,kBAAkB,CACxB,GAAW,EACX,MAAc,EACd,IAAY;QAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAe,CAAC;QACtC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;YAClB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,0BAA0B,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;gBAChE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,CAAC;gBAC5D,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAChB,IAAI,QAAQ,GAAG,CAAC;wBAAE,QAAQ,GAAG,IAAI,CAAC;oBAClC,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;uBAC/D,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;uBAChE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS;uBACxE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,KAAK,UAAU;uBAC1E,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACnE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,mBAAmB,EAAE,CAAC,CAAC,CAAC;oBAChF,OAAO;wBACL,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC;wBAC1D,IAAI;wBACJ,QAAQ,EAAE,kBAAkB,GAAG,CAAC;qBACjC,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,GAAG,CAAC;gBAAE,OAAO;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,KAAK,KAAK,eAAe;gBAAE,OAAO;YACtC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,eAAe,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,eAAe,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,mBAAmB,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,oBAAoB,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACpD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAe,CAAC;QACtC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,mBAAmB,CAAC,CAAC;YACtE,IAAI,UAAU,GAAG,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,GAAG,mBAAmB,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QAC1F,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAe,CAAC;QACtC,OAAO,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC;IAEO,oBAAoB;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAe,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAEO,OAAO,CAAC,IAAY;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACpC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBACpE,IAAI,SAAS,GAAG,IAAI;oBAAE,SAAS;gBAC/B,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvE,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE,eAAe,CAAC,CAAC;YAChG,CAAC;YACD,uEAAuE;YACvE,wEAAwE;YACxE,yEAAyE;YACzE,gEAAgE;YAChE,IAAI,MAAM,GAAG,IAAI,GAAG,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC/B,OAAO,eAAe,CAAC;YACzB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAO;QACtC,OAAO,CAAC,eAAe,CACrB,IAAI,CAAC,cAAc,EACnB,mBAAmB,EACnB,CAAC,EACD,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAChC,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACnC,CAAC;IAEO,OAAO,CAAC,KAAa,EAAE,GAAW;QACxC,IAAI,KAAK,GAAG,iBAAiB,IAAI,GAAG,IAAI,KAAK;YAAE,OAAO;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,SAAS,GAAG,GAAG,CAAC;YACpB,SAAS,CAAC;gBACR,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;oBAC3D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;oBACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjE,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClF,IAAI,QAAQ,GAAG,WAAW,IAAI,UAAU,GAAG,SAAS;wBAAE,SAAS;oBAC/D,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;oBAChD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;oBAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,IAAI,CAAC,CAAC;oBACV,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;gBACD,IAAI,CAAC,MAAM;oBAAE,MAAM;YACrB,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1E,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;iBAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpC,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;oBAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;oBACjE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACtE,IAAI,CAAC,sBAAsB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBACvC,OAAO;gBACT,CAAC;gBACD,sEAAsE;gBACtE,sEAAsE;gBACtE,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,IAAI,YAAY,GAAG,QAAQ,CAAC;gBAC5B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC9E,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;wBAAC,QAAQ,GAAG,IAAI,CAAC;wBAAC,YAAY,GAAG,IAAI,CAAC;oBAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,YAAY,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;oBACpE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAa,EAAE,GAAW;QAC5C,IAAI,GAAG,GAAG,WAAW;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC;YACzF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,kBAAkB,CAAC,KAAa;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QACrH,2EAA2E;QAC3E,0EAA0E;QAC1E,sCAAsC;QACtC,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO;QAC5C,IAAI,CAAC,GAAG,CAAC,6CAA6C,gBAAgB,UAAU;cAC5E,IAAI,OAAO,kBAAkB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,yBAAyB;cAC9E,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC;IACtE,CAAC;IAEO,UAAU,CAAC,MAAc;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACtF,IAAI,GAAG,GAAG,QAAQ;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,2BAA2B,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/F,CAAC;IAEO,kBAAkB,CAAC,KAAa;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QACtH,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO;QACxC,IAAI,CAAC,GAAG,CAAC,qDAAqD,KAAK,YAAY;cAC3E,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC;IAC1E,CAAC;IAEO,WAAW,CAAC,MAAc,EAAE,IAAY;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;cACnG,wCAAwC,KAAK,IAAI,CAAC,CAAC;IACzD,CAAC;IAEO,GAAG,CAAC,MAAc;QACxB,MAAM,IAAI,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEO,WAAW;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,CAAC;YAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACxH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;cACxH,eAAe,QAAQ,IAAI,gBAAgB,mBAAmB,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACvG,CAAC;IAEO,sBAAsB,CAAC,QAAgB;QAC7C,IAAI,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAChF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,qBAAqB,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;QAChB,OAAO;YACL,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,sBAAsB,CAAC,KAAK,CAAC;YAChF,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC;YACtE,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,2BAA2B,CAAC,KAAK,CAAC;YACxF,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,qBAAqB,CAAC,KAAK,CAAC;SAC9E,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;IACnE,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;QAC9D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,gGAAgG;IACxF,eAAe,CAAC,IAAY;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9H,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAEO,gBAAgB;QACtB,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1E,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC/D,IAAI,KAAK,GAAG,IAAI,KAAK,MAAM;oBAAE,SAAS;gBACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACjE,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;YACR,CAAC;YACD,IAAI,CAAC,SAAS;gBAAE,OAAO;QACzB,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,OAAuB;QAClE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5G,CAAC;IAEO,cAAc,CAAC,GAAW;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;QAChD,IAAI,GAAG,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;YAC7D,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,SAAiB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,WAAW,CAAC;AACjF,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,MAAc;IACrD,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,eAAe,KAAK,CAAC;WAC1D,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,MAAM,IAAI,aAAa,CAAC;AACvF,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,iCAAiC,GAAG,IAAI,GAAG,0BAA0B,CAAC;AAC/E,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,sBAAsB,GAAG,IAAI,GAAG,gBAAgB,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,KAAK,GAAG,UAAU,CAAC;IACvB,IAAI,MAAM,GAAG,UAAU,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC"}
@@ -5,5 +5,7 @@ export interface WaliMemoryLayout {
5
5
  shared: boolean;
6
6
  }
7
7
  export declare function createImportedMemory(source: WaliModuleSource, supplied?: WebAssembly.Memory): WebAssembly.Memory | undefined;
8
+ /** A process's memory, as its module's `env.memory` import declares it. */
9
+ export declare function memoryForLayout(layout: WaliMemoryLayout): WebAssembly.Memory;
8
10
  export declare function findImportedMemory(bytes: Uint8Array): WaliMemoryLayout | undefined;
9
11
  //# sourceMappingURL=module-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-layout.d.ts","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,CAc5H;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,CA8BlF"}
1
+ {"version":3,"file":"module-layout.d.ts","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,CAM5H;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAS5E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,CA8BlF"}
@@ -5,8 +5,10 @@ export function createImportedMemory(source, supplied) {
5
5
  return;
6
6
  const bytes = source instanceof Uint8Array ? source : new Uint8Array(source);
7
7
  const layout = findImportedMemory(bytes);
8
- if (!layout)
9
- return;
8
+ return layout ? memoryForLayout(layout) : undefined;
9
+ }
10
+ /** A process's memory, as its module's `env.memory` import declares it. */
11
+ export function memoryForLayout(layout) {
10
12
  if (layout.shared && layout.maximum === undefined) {
11
13
  throw new Error("A shared WALI memory import must declare a maximum.");
12
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module-layout.js","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,oBAAoB,CAAC,MAAwB,EAAE,QAA6B;IAC1F,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,MAAM,YAAY,WAAW,CAAC,MAAM;QAAE,OAAO;IACjD,MAAM,KAAK,GAAG,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACpE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;QAC/C,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC1F,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACjF,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACzC,IAAI,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ;oBAAE,OAAO,MAAM,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB,EAAE,MAA0B;IAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,cAAc,CAAC,KAAiB,EAAE,MAA0B,EAAE,IAAY;IACjF,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACnB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,GAAG,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB,EAAE,MAA0B;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACpC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC9F,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAiB,EAAE,MAA0B,EAAE,MAAc;IAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;IACpB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB,EAAE,MAA0B;IAC7D,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7G,CAAC"}
1
+ {"version":3,"file":"module-layout.js","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CLOCK_MONOTONIC, as every worker of every process reads it. A worker's
3
+ * `performance.now()` counts from that worker's own start, so a process whose
4
+ * main thread, pthreads, network and event workers each read their own holds
5
+ * one monotonic clock per worker, seconds apart: a pthread pool starts after
6
+ * its main thread by the time the module takes to instantiate. A deadline one
7
+ * thread computes and another waits on then fires late by that gap (a tokio
8
+ * runtime's timers and reactor park did, by 7 to 20 s). `timeOrigin + now()`
9
+ * is one high-resolution timeline across workers.
10
+ */
11
+ export declare function monotonicMilliseconds(): number;
12
+ //# sourceMappingURL=monotonic-clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monotonic-clock.d.ts","sourceRoot":"","sources":["../src/monotonic-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * CLOCK_MONOTONIC, as every worker of every process reads it. A worker's
3
+ * `performance.now()` counts from that worker's own start, so a process whose
4
+ * main thread, pthreads, network and event workers each read their own holds
5
+ * one monotonic clock per worker, seconds apart: a pthread pool starts after
6
+ * its main thread by the time the module takes to instantiate. A deadline one
7
+ * thread computes and another waits on then fires late by that gap (a tokio
8
+ * runtime's timers and reactor park did, by 7 to 20 s). `timeOrigin + now()`
9
+ * is one high-resolution timeline across workers.
10
+ */
11
+ export function monotonicMilliseconds() {
12
+ return typeof performance === "undefined" ? Date.now() : performance.timeOrigin + performance.now();
13
+ }
14
+ //# sourceMappingURL=monotonic-clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monotonic-clock.js","sourceRoot":"","sources":["../src/monotonic-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACtG,CAAC"}
@@ -20,7 +20,17 @@ export declare const enum NetworkOperation {
20
20
  TimerFdSetTime = 17,
21
21
  Bind = 18,
22
22
  Listen = 19,
23
- Accept = 20
23
+ Accept = 20,
24
+ ChildRegister = 21,
25
+ ChildForget = 22,
26
+ ChildWait = 23,
27
+ ChildExists = 24,
28
+ PidFdOpen = 25,
29
+ PollMany = 26
30
+ }
31
+ export interface WaliNetworkRequest {
32
+ requestId: number;
33
+ process: import("./process-bridge.js").BrowserProcessSharedState;
24
34
  }
25
35
  export interface WaliNetworkChannel {
26
36
  port: MessagePort;
@@ -36,6 +46,7 @@ export interface NetworkWorkerInitializeMessage {
36
46
  sharedPipes?: import("./shared-pipes.js").WaliSharedPipeState;
37
47
  stdin?: SharedArrayBuffer;
38
48
  stdioAliasRegistry?: SharedArrayBuffer;
49
+ signals?: SharedArrayBuffer;
39
50
  loopbackPort?: MessagePort;
40
51
  }
41
52
  export interface NetworkWorkerAttachMessage extends WaliNetworkChannel {
@@ -1 +1 @@
1
- {"version":3,"file":"network-protocol.d.ts","sourceRoot":"","sources":["../src/network-protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAEhD,0BAAkB,gBAAgB;IAChC,MAAM,IAAI;IACV,OAAO,IAAI;IACX,IAAI,IAAI;IACR,OAAO,IAAI;IACX,KAAK,IAAI;IACT,KAAK,IAAI;IACT,IAAI,IAAI;IACR,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,UAAU,KAAK;IACf,YAAY,KAAK;IACjB,SAAS,KAAK;IACd,WAAW,KAAK;IAChB,OAAO,KAAK;IACZ,UAAU,KAAK;IACf,aAAa,KAAK;IAClB,cAAc,KAAK;IACnB,IAAI,KAAK;IACT,MAAM,KAAK;IACX,MAAM,KAAK;CACZ;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,mBAAmB,EAAE,mBAAmB,CAAC;IAC9D,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAAG,8BAA8B,GAAG,0BAA0B,CAAC"}
1
+ {"version":3,"file":"network-protocol.d.ts","sourceRoot":"","sources":["../src/network-protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAEhD,0BAAkB,gBAAgB;IAChC,MAAM,IAAI;IACV,OAAO,IAAI;IACX,IAAI,IAAI;IACR,OAAO,IAAI;IACX,KAAK,IAAI;IACT,KAAK,IAAI;IACT,IAAI,IAAI;IACR,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,UAAU,KAAK;IACf,YAAY,KAAK;IACjB,SAAS,KAAK;IACd,WAAW,KAAK;IAChB,OAAO,KAAK;IACZ,UAAU,KAAK;IACf,aAAa,KAAK;IAClB,cAAc,KAAK;IACnB,IAAI,KAAK;IACT,MAAM,KAAK;IACX,MAAM,KAAK;IACX,aAAa,KAAK;IAClB,WAAW,KAAK;IAChB,SAAS,KAAK;IACd,WAAW,KAAK;IAChB,SAAS,KAAK;IACd,QAAQ,KAAK;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,qBAAqB,EAAE,yBAAyB,CAAC;CAClE;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,mBAAmB,EAAE,mBAAmB,CAAC;IAC9D,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAAG,8BAA8B,GAAG,0BAA0B,CAAC"}
@@ -22,5 +22,11 @@ export var NetworkOperation;
22
22
  NetworkOperation[NetworkOperation["Bind"] = 18] = "Bind";
23
23
  NetworkOperation[NetworkOperation["Listen"] = 19] = "Listen";
24
24
  NetworkOperation[NetworkOperation["Accept"] = 20] = "Accept";
25
+ NetworkOperation[NetworkOperation["ChildRegister"] = 21] = "ChildRegister";
26
+ NetworkOperation[NetworkOperation["ChildForget"] = 22] = "ChildForget";
27
+ NetworkOperation[NetworkOperation["ChildWait"] = 23] = "ChildWait";
28
+ NetworkOperation[NetworkOperation["ChildExists"] = 24] = "ChildExists";
29
+ NetworkOperation[NetworkOperation["PidFdOpen"] = 25] = "PidFdOpen";
30
+ NetworkOperation[NetworkOperation["PollMany"] = 26] = "PollMany";
25
31
  })(NetworkOperation || (NetworkOperation = {}));
26
32
  //# sourceMappingURL=network-protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network-protocol.js","sourceRoot":"","sources":["../src/network-protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,CAAC;AAEhD,MAAM,CAAN,IAAkB,gBAqBjB;AArBD,WAAkB,gBAAgB;IAChC,2DAAU,CAAA;IACV,6DAAW,CAAA;IACX,uDAAQ,CAAA;IACR,6DAAW,CAAA;IACX,yDAAS,CAAA;IACT,yDAAS,CAAA;IACT,uDAAQ,CAAA;IACR,+DAAY,CAAA;IACZ,iEAAa,CAAA;IACb,oEAAe,CAAA;IACf,wEAAiB,CAAA;IACjB,kEAAc,CAAA;IACd,sEAAgB,CAAA;IAChB,8DAAY,CAAA;IACZ,oEAAe,CAAA;IACf,0EAAkB,CAAA;IAClB,4EAAmB,CAAA;IACnB,wDAAS,CAAA;IACT,4DAAW,CAAA;IACX,4DAAW,CAAA;AACb,CAAC,EArBiB,gBAAgB,KAAhB,gBAAgB,QAqBjC"}
1
+ {"version":3,"file":"network-protocol.js","sourceRoot":"","sources":["../src/network-protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,CAAC;AAEhD,MAAM,CAAN,IAAkB,gBA2BjB;AA3BD,WAAkB,gBAAgB;IAChC,2DAAU,CAAA;IACV,6DAAW,CAAA;IACX,uDAAQ,CAAA;IACR,6DAAW,CAAA;IACX,yDAAS,CAAA;IACT,yDAAS,CAAA;IACT,uDAAQ,CAAA;IACR,+DAAY,CAAA;IACZ,iEAAa,CAAA;IACb,oEAAe,CAAA;IACf,wEAAiB,CAAA;IACjB,kEAAc,CAAA;IACd,sEAAgB,CAAA;IAChB,8DAAY,CAAA;IACZ,oEAAe,CAAA;IACf,0EAAkB,CAAA;IAClB,4EAAmB,CAAA;IACnB,wDAAS,CAAA;IACT,4DAAW,CAAA;IACX,4DAAW,CAAA;IACX,0EAAkB,CAAA;IAClB,sEAAgB,CAAA;IAChB,kEAAc,CAAA;IACd,sEAAgB,CAAA;IAChB,kEAAc,CAAA;IACd,gEAAa,CAAA;AACf,CAAC,EA3BiB,gBAAgB,KAAhB,gBAAgB,QA2BjC"}
@@ -1,6 +1,9 @@
1
1
  import { NETWORK_FD_MIN, NetworkOperation, } from "./network-protocol.js";
2
- import { pollWaliSharedPipeState } from "./shared-pipes.js";
2
+ import { WaliChildProcesses } from "./child-processes.js";
3
+ import { WaliSignals } from "./signals.js";
4
+ import { pollWaliSharedPipeState, waliSharedPipeGeneration } from "./shared-pipes.js";
3
5
  import { SharedWaliStdinReader } from "./stdin.js";
6
+ import { monotonicMilliseconds } from "./monotonic-clock.js";
4
7
  const scope = globalThis;
5
8
  const EPOLL_EVENT_BYTES = 16;
6
9
  const EPOLL_DATA_OFFSET = 8;
@@ -15,6 +18,15 @@ let maxBytes = 64 * 1024 * 1024;
15
18
  let networkBytes = 0;
16
19
  const externalConnections = new Set();
17
20
  let nextFd = NETWORK_FD_MIN;
21
+ const descriptorWaiters = new Set();
22
+ let signals;
23
+ function notifyDescriptors() { for (const resolve of [...descriptorWaiters])
24
+ resolve(); }
25
+ const children = new WaliChildProcesses((minimum = NETWORK_FD_MIN) => {
26
+ nextFd = Math.max(nextFd, minimum);
27
+ return nextFd++;
28
+ }, (pid, status) => { signals?.raise(17, pid, status); });
29
+ children.onChange(notifyDescriptors);
18
30
  let sharedPipes;
19
31
  let stdin;
20
32
  let stdioAliasRegistry;
@@ -39,6 +51,23 @@ scope.onmessage = (event) => {
39
51
  stdioAliasRegistry = event.data.stdioAliasRegistry
40
52
  ? new Int32Array(event.data.stdioAliasRegistry)
41
53
  : undefined;
54
+ if (event.data.signals) {
55
+ signals = new WaliSignals(event.data.signals);
56
+ const shared = signals.words;
57
+ const waitAsync = Atomics.waitAsync;
58
+ if (!waitAsync) {
59
+ scope.postMessage({ kind: "error", message: "WALI signal delivery requires Atomics.waitAsync." });
60
+ return;
61
+ }
62
+ void (async () => {
63
+ for (;;) {
64
+ const generation = Atomics.load(shared, 1);
65
+ // wakes blocked polls and child waits, and so notifies descriptors
66
+ children.wake();
67
+ await waitAsync(shared, 1, generation).value;
68
+ }
69
+ })();
70
+ }
42
71
  loopbackPort = event.data.loopbackPort;
43
72
  if (loopbackPort) {
44
73
  loopbackPort.onmessage = (message) => {
@@ -55,12 +84,19 @@ scope.onmessage = (event) => {
55
84
  function attach(channel) {
56
85
  const control = new Int32Array(channel.control);
57
86
  const payload = new Uint8Array(channel.payload);
58
- channel.port.onmessage = (event) => { void dispatch(control, payload, event.data); };
87
+ channel.port.onmessage = (event) => {
88
+ void dispatch(control, payload, typeof event.data === "number" ? event.data : event.data.requestId, typeof event.data === "number" ? undefined : event.data.process);
89
+ };
59
90
  channel.port.start();
60
91
  }
61
- async function dispatch(control, payload, requestId) {
92
+ async function dispatch(control, payload, requestId, process) {
62
93
  if (Atomics.load(control, 0) !== requestId)
63
94
  return;
95
+ // Reaping is irreversible. Claim a wait before it starts so the transport
96
+ // watchdog cannot retire it and lose the child's status or filesystem patch.
97
+ const claimed = [NetworkOperation.ChildWait, NetworkOperation.PollMany, NetworkOperation.EpollWait].includes(Atomics.load(control, 1));
98
+ if (claimed && Atomics.compareExchange(control, 0, requestId, -requestId) !== requestId)
99
+ return;
64
100
  let result = -38;
65
101
  let output = new Uint8Array();
66
102
  try {
@@ -68,7 +104,10 @@ async function dispatch(control, payload, requestId) {
68
104
  const inputLength = Atomics.load(control, 3);
69
105
  const args = Array.from({ length: 10 }, (_, index) => Atomics.load(control, 5 + index));
70
106
  const input = payload.slice(0, inputLength);
71
- ({ result, output } = await operate(operation, args, input));
107
+ ({ result, output } = await operate(operation, args, input, process));
108
+ if ([NetworkOperation.EpollControl, NetworkOperation.Send, NetworkOperation.Receive,
109
+ NetworkOperation.Close, NetworkOperation.TimerFdSetTime].includes(operation))
110
+ notifyDescriptors();
72
111
  }
73
112
  catch {
74
113
  result = -5;
@@ -80,7 +119,7 @@ async function dispatch(control, payload, requestId) {
80
119
  // Claim this generation before touching the shared response buffers. A
81
120
  // watchdog may have retired it and started a later request while operate()
82
121
  // was pending; stale completions must never corrupt that request.
83
- if (Atomics.compareExchange(control, 0, requestId, -requestId) !== requestId)
122
+ if (!claimed && Atomics.compareExchange(control, 0, requestId, -requestId) !== requestId)
84
123
  return;
85
124
  if (output.byteLength > 0)
86
125
  payload.set(output);
@@ -89,7 +128,21 @@ async function dispatch(control, payload, requestId) {
89
128
  Atomics.store(control, 0, requestId + 1);
90
129
  Atomics.notify(control, 0);
91
130
  }
92
- async function operate(operation, args, input) {
131
+ async function operate(operation, args, input, process) {
132
+ if (operation === NetworkOperation.ChildRegister)
133
+ return scalar(process ? children.register(args[0], process) : -22);
134
+ if (operation === NetworkOperation.ChildForget)
135
+ return scalar(children.forget(args[0]));
136
+ if (operation === NetworkOperation.ChildExists)
137
+ return scalar(children.has(args[0]) ? 1 : 0);
138
+ if (operation === NetworkOperation.ChildWait) {
139
+ const mask = signalMask(args[2] ?? 0, args[3] ?? 0);
140
+ return scalar(process ? await children.wait(args[0], args[1], process, () => !!signals && (signals.pending() & ~mask) !== 0n) : -22);
141
+ }
142
+ if (operation === NetworkOperation.PidFdOpen)
143
+ return scalar(children.open(args[0], args[1]));
144
+ if (operation === NetworkOperation.PollMany)
145
+ return pollMany(input, args[0], signalMask(args[1], args[2]));
93
146
  if (operation === NetworkOperation.Socket)
94
147
  return scalar(createSocket(args[0], args[1], args[2]));
95
148
  if (operation === NetworkOperation.EpollCreate)
@@ -103,8 +156,19 @@ async function operate(operation, args, input) {
103
156
  if (operation === NetworkOperation.EpollControl)
104
157
  return scalar(epollControl(args[0], args[1], args[2], input));
105
158
  if (operation === NetworkOperation.EpollWait)
106
- return epollWait(args[0], args[1], args[2]);
159
+ return epollWait(args[0], args[1], args[2], signalMask(args[3], args[4]));
107
160
  const fd = args[0];
161
+ if (children.owns(fd)) {
162
+ if (operation === NetworkOperation.Close)
163
+ return scalar(children.close(fd));
164
+ if (operation === NetworkOperation.Poll)
165
+ return scalar(children.poll(fd, args[1]));
166
+ if (operation === NetworkOperation.Fcntl)
167
+ return scalar(children.fcntl(fd, args[1], args[2]));
168
+ if (operation === NetworkOperation.Duplicate)
169
+ return scalar(children.fcntl(fd, 0, 0));
170
+ return scalar(-22);
171
+ }
108
172
  if (operation === NetworkOperation.Close && epolls.has(fd)) {
109
173
  epolls.delete(fd);
110
174
  return scalar(0);
@@ -162,6 +226,47 @@ function createEpoll() {
162
226
  epolls.set(fd, new Map());
163
227
  return fd;
164
228
  }
229
+ function signalMask(low, high) { return BigInt(low >>> 0) | (BigInt(high >>> 0) << 32n); }
230
+ async function pollMany(input, timeout, mask = 0n) {
231
+ if (input.byteLength % 8 !== 0)
232
+ return scalar(-22);
233
+ const output = input.slice();
234
+ const view = new DataView(output.buffer);
235
+ const original = new DataView(input.buffer, input.byteOffset, input.byteLength);
236
+ const deadline = timeout < 0 ? Infinity : Date.now() + timeout;
237
+ for (;;) {
238
+ if (signals && (signals.pending() & ~mask) !== 0n)
239
+ return scalar(-4);
240
+ let count = 0;
241
+ let processOnly = true;
242
+ for (let offset = 0; offset < input.byteLength; offset += 8) {
243
+ const fd = view.getInt32(offset, true);
244
+ const events = view.getInt16(offset + 4, true);
245
+ const socket = sockets.get(fd);
246
+ const ready = fd < 0 ? 0 : children.poll(fd, events)
247
+ ?? (sharedPipes ? pollWaliSharedPipeState(sharedPipes, fd, events) : undefined)
248
+ ?? (isStdinDescriptor(fd) && stdin ? ((events & 1) && stdin.poll() ? 1 : 0) : undefined)
249
+ ?? (socket ? pollSocket(socket, events) : undefined)
250
+ ?? (fd >= NETWORK_FD_MIN ? 0x20 : original.getInt16(offset + 6, true));
251
+ if (fd >= 0 && !children.owns(fd))
252
+ processOnly = false;
253
+ view.setInt16(offset + 6, ready, true);
254
+ if (ready !== 0)
255
+ count++;
256
+ }
257
+ if (count || timeout === 0 || Date.now() >= deadline)
258
+ return { result: count, output };
259
+ await waitForDescriptorChange(processOnly ? deadline - Date.now() : 2);
260
+ }
261
+ }
262
+ function waitForDescriptorChange(delay) {
263
+ return new Promise((resolve) => {
264
+ const done = () => { if (timer !== undefined)
265
+ clearTimeout(timer); descriptorWaiters.delete(done); resolve(); };
266
+ descriptorWaiters.add(done);
267
+ const timer = Number.isFinite(delay) ? setTimeout(done, Math.max(0, delay)) : undefined;
268
+ });
269
+ }
165
270
  function duplicateEpoll(fd, minimum) {
166
271
  const registrations = epolls.get(fd);
167
272
  if (!registrations)
@@ -240,7 +345,7 @@ function createSocketPair(domain, type, protocol) {
240
345
  }
241
346
  function epollControl(epollFd, operation, fd, input) {
242
347
  const sharedPipe = sharedPipes ? pollWaliSharedPipeState(sharedPipes, fd, 0) : undefined;
243
- if (!sockets.has(fd) && sharedPipe === undefined && !(isStdinDescriptor(fd) && stdin))
348
+ if (!sockets.has(fd) && !children.owns(fd) && sharedPipe === undefined && !(isStdinDescriptor(fd) && stdin))
244
349
  return -9;
245
350
  let registrations = epolls.get(epollFd);
246
351
  if (!registrations) {
@@ -262,6 +367,7 @@ function epollControl(epollFd, operation, fd, input) {
262
367
  events,
263
368
  data: input.slice(EPOLL_DATA_OFFSET, EPOLL_EVENT_BYTES),
264
369
  lastReady: 0,
370
+ lastPipeGeneration: sharedPipes ? waliSharedPipeGeneration(sharedPipes, fd) ?? 0 : 0,
265
371
  lastStdinGeneration: isStdinDescriptor(fd) && stdin ? stdin.generation() : 0,
266
372
  lastEventGeneration: socket?.kind === "event"
267
373
  ? socket.generation
@@ -269,21 +375,30 @@ function epollControl(epollFd, operation, fd, input) {
269
375
  });
270
376
  return 0;
271
377
  }
272
- async function epollWait(epollFd, maximum, timeout) {
378
+ async function epollWait(epollFd, maximum, timeout, mask = 0n) {
273
379
  const registrations = epolls.get(epollFd);
274
380
  if (!registrations)
275
381
  return scalar(-9);
382
+ if (maximum <= 0)
383
+ return scalar(-22);
276
384
  const startedAt = Date.now();
277
- // The synchronous pthread RPC has a finite watchdog. Wake long and infinite
278
- // epoll waits cooperatively so Tokio can recompute timers instead of turning
279
- // the transport watchdog into the impossible Linux result -ETIMEDOUT.
280
- const deadline = startedAt + (timeout < 0 ? 1_000 : Math.min(timeout, 1_000));
385
+ // This blocking RPC is claimed before dispatch, so an infinite guest wait
386
+ // needs no synthetic timeout to placate the request transport watchdog.
387
+ const deadline = timeout < 0 ? Infinity : startedAt + timeout;
281
388
  do {
389
+ if (signals && (signals.pending() & ~mask) !== 0n)
390
+ return scalar(-4);
282
391
  const events = [];
283
392
  for (const [fd, registration] of registrations) {
284
393
  const socket = sockets.get(fd);
285
394
  const pollEvents = ((registration.events & 1) ? 1 : 0) | ((registration.events & 4) ? 4 : 0);
286
- const externalReady = sharedPipes ? pollWaliSharedPipeState(sharedPipes, fd, pollEvents) : undefined;
395
+ // Read the generation first so a write racing this poll is still seen
396
+ // on the next poll, even if readiness was already observed here.
397
+ const pipeGeneration = sharedPipes
398
+ ? waliSharedPipeGeneration(sharedPipes, fd) ?? registration.lastPipeGeneration
399
+ : registration.lastPipeGeneration;
400
+ const externalReady = children.poll(fd, pollEvents)
401
+ ?? (sharedPipes ? pollWaliSharedPipeState(sharedPipes, fd, pollEvents) : undefined);
287
402
  const terminalReady = isStdinDescriptor(fd) && stdin
288
403
  ? ((pollEvents & 1) && stdin.poll() ? 1 : 0)
289
404
  : undefined;
@@ -295,6 +410,7 @@ async function epollWait(epollFd, maximum, timeout) {
295
410
  ? stdin.generation()
296
411
  : registration.lastStdinGeneration;
297
412
  const edgeReady = (currentReady & ~registration.lastReady)
413
+ | (pipeGeneration !== registration.lastPipeGeneration ? currentReady : 0)
298
414
  | (stdinGeneration !== registration.lastStdinGeneration ? currentReady : 0)
299
415
  | (socket?.kind === "event" && socket.generation !== registration.lastEventGeneration
300
416
  ? currentReady
@@ -306,6 +422,7 @@ async function epollWait(epollFd, maximum, timeout) {
306
422
  ? currentReady
307
423
  : (registration.events & 0x8000_0000) !== 0 ? edgeReady : currentReady;
308
424
  registration.lastReady = currentReady;
425
+ registration.lastPipeGeneration = pipeGeneration;
309
426
  registration.lastStdinGeneration = stdinGeneration;
310
427
  registration.lastEventGeneration = socket?.kind === "event"
311
428
  ? socket.generation
@@ -327,7 +444,9 @@ async function epollWait(epollFd, maximum, timeout) {
327
444
  }
328
445
  if (timeout === 0 || Date.now() >= deadline)
329
446
  return { result: 0, output: new Uint8Array() };
330
- await new Promise((resolve) => setTimeout(resolve, 2));
447
+ // Other descriptor sources retain the existing shared-pipe/socket scan.
448
+ await waitForDescriptorChange([...registrations.keys()].every(fd => children.owns(fd))
449
+ ? deadline - Date.now() : 2);
331
450
  } while (true);
332
451
  }
333
452
  function isStdinDescriptor(fd) {
@@ -470,7 +589,7 @@ function bindSocket(socket, address) {
470
589
  const port = target.port === 0 ? allocateLoopbackPort() : target.port;
471
590
  if (port <= 0 || listenersByPort.has(port))
472
591
  return -98;
473
- socket.bound = { address: target.address, port };
592
+ socket.bound = { address: target.address, port, ...(target.port === 0 ? { ephemeral: true } : {}) };
474
593
  return 0;
475
594
  }
476
595
  async function listenSocket(socket, backlog) {
@@ -485,7 +604,17 @@ async function listenSocket(socket, backlog) {
485
604
  const existing = listenersByPort.get(socket.bound.port);
486
605
  if (existing && existing !== socket)
487
606
  return -98;
488
- const result = await requestLoopbackListen(socket.bound.port);
607
+ let result = await requestLoopbackListen(socket.bound.port);
608
+ // This worker sees its own listeners, the project's port table every
609
+ // server's: a port it chose for port 0 that another server holds is
610
+ // passed over for the next free one, as the kernel would never have chosen it.
611
+ while (result === -98 && socket.bound.ephemeral) {
612
+ const next = allocateLoopbackPort(socket.bound.port + 1);
613
+ if (next <= 0)
614
+ break;
615
+ socket.bound = { ...socket.bound, port: next };
616
+ result = await requestLoopbackListen(next);
617
+ }
489
618
  if (result < 0)
490
619
  return result;
491
620
  socket.listening = true;
@@ -609,8 +738,8 @@ function isLoopbackBindAddress(address) {
609
738
  function isLoopbackConnectAddress(address) {
610
739
  return address === "127.0.0.1" || address === "::1";
611
740
  }
612
- function allocateLoopbackPort() {
613
- for (let port = 49_152; port <= 65_535; port += 1) {
741
+ function allocateLoopbackPort(from = 49_152) {
742
+ for (let port = from; port <= 65_535; port += 1) {
614
743
  if (!listenersByPort.has(port))
615
744
  return port;
616
745
  }
@@ -860,7 +989,7 @@ function writeTimespec(view, offset, nanoseconds) {
860
989
  view.setBigInt64(offset + 8, nanoseconds % 1000000000n, true);
861
990
  }
862
991
  function nowNanoseconds(clockId) {
863
- const milliseconds = clockId === 0 ? performance.timeOrigin + performance.now() : performance.now();
992
+ const milliseconds = clockId === 0 ? performance.timeOrigin + performance.now() : monotonicMilliseconds();
864
993
  return BigInt(Math.floor(milliseconds * 1_000_000));
865
994
  }
866
995
  function dnsResponse(query) {