@cimplify/sdk 0.108.0 → 0.110.2

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 (608) hide show
  1. package/LICENSE +21 -0
  2. package/dist/advanced.d.mts +4 -3
  3. package/dist/advanced.d.ts +4 -3
  4. package/dist/advanced.js +24 -24
  5. package/dist/advanced.mjs +5 -5
  6. package/dist/animation-4EXBXRVX.js +27 -0
  7. package/dist/animation-6DICNWUP.mjs +6 -0
  8. package/dist/audio-DhvyjqdA.d.mts +249 -0
  9. package/dist/audio-m0w8cnxq.d.ts +249 -0
  10. package/dist/avatars.d.mts +110 -0
  11. package/dist/avatars.d.ts +110 -0
  12. package/dist/avatars.js +82 -0
  13. package/dist/avatars.mjs +5 -0
  14. package/dist/backend-gUCzs5Kg.d.mts +3866 -0
  15. package/dist/backend-gUCzs5Kg.d.ts +3866 -0
  16. package/dist/{catalogue-B4eLL8Mi.d.ts → catalogue-CPTMyBUz.d.mts} +109 -221
  17. package/dist/catalogue-DzrTXP3v.d.mts +541 -0
  18. package/dist/catalogue-DzrTXP3v.d.ts +541 -0
  19. package/dist/{catalogue-OT89_Ifs.d.mts → catalogue-OTuS5zp-.d.ts} +109 -221
  20. package/dist/chunk-22BD3RHN.mjs +1809 -0
  21. package/dist/chunk-25T4JHEA.mjs +21 -0
  22. package/dist/chunk-2AQ237Y4.js +508 -0
  23. package/dist/chunk-2IC4H6OV.mjs +48 -0
  24. package/dist/chunk-2LHLG4OB.mjs +71 -0
  25. package/dist/chunk-2O2CG465.js +1709 -0
  26. package/dist/chunk-2Q4DTHXK.js +316 -0
  27. package/dist/chunk-2QTQ6BUH.mjs +46 -0
  28. package/dist/chunk-2UN4SFLR.mjs +100 -0
  29. package/dist/chunk-2V75I7K3.js +454 -0
  30. package/dist/chunk-2V7IL4HC.js +10 -0
  31. package/dist/chunk-34XBXUMW.js +296 -0
  32. package/dist/chunk-3C4C654I.js +71 -0
  33. package/dist/chunk-3DAD2LDF.mjs +72 -0
  34. package/dist/chunk-3GXH2NFD.mjs +4 -0
  35. package/dist/chunk-3O47ZFW3.js +961 -0
  36. package/dist/chunk-3OY3VYNF.mjs +11 -0
  37. package/dist/chunk-3S6WPBZL.js +2936 -0
  38. package/dist/chunk-3TUOUP5T.js +399 -0
  39. package/dist/chunk-3VEH23I5.mjs +1380 -0
  40. package/dist/chunk-3ZYSAW2T.mjs +263 -0
  41. package/dist/chunk-4ANVF274.js +103 -0
  42. package/dist/chunk-4C7I3ELN.js +388 -0
  43. package/dist/chunk-4DYKAYFO.mjs +8 -0
  44. package/dist/chunk-4ZDR72SG.js +329 -0
  45. package/dist/chunk-52YS45RR.js +1066 -0
  46. package/dist/chunk-5325XSCH.js +107 -0
  47. package/dist/chunk-5AD5X6AV.js +13 -0
  48. package/dist/chunk-5BYDGGWO.mjs +197 -0
  49. package/dist/chunk-5C3C7VDM.mjs +55 -0
  50. package/dist/chunk-5HFMY3D7.js +660 -0
  51. package/dist/chunk-5LH2QN3T.js +1862 -0
  52. package/dist/chunk-5PJEXSOW.js +44 -0
  53. package/dist/chunk-5SXDH3Y7.js +90 -0
  54. package/dist/chunk-5YFBGGCK.mjs +502 -0
  55. package/dist/chunk-5YWN6H5Q.mjs +133 -0
  56. package/dist/chunk-66QP3SMN.js +402 -0
  57. package/dist/chunk-6DAEZKIG.mjs +385 -0
  58. package/dist/chunk-6DATW7TB.mjs +420 -0
  59. package/dist/{chunk-JRGK3NXR.mjs → chunk-6ETDAU62.mjs} +72 -212
  60. package/dist/chunk-6H254EVP.mjs +178 -0
  61. package/dist/chunk-6PFNJPBJ.mjs +820 -0
  62. package/dist/chunk-6PJWXIFX.mjs +357 -0
  63. package/dist/chunk-6SWKWCMS.js +80 -0
  64. package/dist/chunk-6VVXXX7S.js +808 -0
  65. package/dist/chunk-6WUBSMTX.js +1403 -0
  66. package/dist/chunk-73SGZLAQ.mjs +35 -0
  67. package/dist/chunk-76L2V6KD.mjs +4 -0
  68. package/dist/chunk-7AAIAVAA.js +1531 -0
  69. package/dist/chunk-7ARSJPV3.mjs +93 -0
  70. package/dist/chunk-7BHW5GTC.mjs +1234 -0
  71. package/dist/chunk-7DQSDKDU.js +6 -0
  72. package/dist/chunk-7IQQQENP.mjs +401 -0
  73. package/dist/chunk-7KFTYENS.js +11357 -0
  74. package/dist/chunk-7SM6XSPZ.js +3171 -0
  75. package/dist/chunk-7SXOHAIR.mjs +28 -0
  76. package/dist/chunk-A2MAX6S4.js +90 -0
  77. package/dist/chunk-A33OORT7.mjs +1530 -0
  78. package/dist/{chunk-U6ACF76H.mjs → chunk-A36JRXXH.mjs} +1075 -1845
  79. package/dist/chunk-A7BU3BK4.js +52 -0
  80. package/dist/chunk-A7MQSN2V.mjs +77 -0
  81. package/dist/chunk-A7V4L2IT.mjs +416 -0
  82. package/dist/chunk-AABEK6XU.js +226 -0
  83. package/dist/chunk-AGV33FWC.mjs +5005 -0
  84. package/dist/chunk-AHNR3BXI.js +108 -0
  85. package/dist/chunk-AQ5RLBU2.mjs +286 -0
  86. package/dist/chunk-AQOE6WCG.js +1270 -0
  87. package/dist/chunk-ATAWRACV.mjs +62 -0
  88. package/dist/chunk-ATCURNUV.js +14 -0
  89. package/dist/chunk-AWPV33OO.js +6 -0
  90. package/dist/chunk-AYJPHKYV.js +337 -0
  91. package/dist/chunk-AZ5BGWHB.js +162 -0
  92. package/dist/chunk-AZAXD44P.js +1373 -0
  93. package/dist/chunk-BBGKQIJJ.mjs +406 -0
  94. package/dist/chunk-BP4JLSUA.js +1453 -0
  95. package/dist/{chunk-SUCE7FWA.mjs → chunk-BTUSVHIE.mjs} +539 -978
  96. package/dist/chunk-BU6OK542.mjs +818 -0
  97. package/dist/chunk-CVSRWM6W.js +418 -0
  98. package/dist/chunk-CYBMFMJD.mjs +247 -0
  99. package/dist/chunk-DDJLDOUX.mjs +217 -0
  100. package/dist/{chunk-V32BCG7M.js → chunk-DFZWHNRG.js} +75 -215
  101. package/dist/chunk-DJ2C7AVG.js +644 -0
  102. package/dist/chunk-DS2VU4WW.mjs +102 -0
  103. package/dist/chunk-DSAG7T5P.js +7290 -0
  104. package/dist/chunk-E2QPPH7I.js +327 -0
  105. package/dist/chunk-E65WCTIG.mjs +1187 -0
  106. package/dist/{chunk-33VCYWVL.mjs → chunk-E6QQKDNE.mjs} +30 -42
  107. package/dist/chunk-ECDK6QBF.mjs +981 -0
  108. package/dist/chunk-EIB4OWVQ.mjs +620 -0
  109. package/dist/chunk-EQUZYCGO.js +250 -0
  110. package/dist/chunk-F3UJ6ZRM.mjs +313 -0
  111. package/dist/chunk-F63N2ZTQ.js +7023 -0
  112. package/dist/chunk-F6XRYEM3.mjs +26 -0
  113. package/dist/chunk-FE6VCE4K.js +5030 -0
  114. package/dist/chunk-FLWD6GRR.js +1372 -0
  115. package/dist/chunk-FQBFWJBS.mjs +110 -0
  116. package/dist/chunk-FXVJ2HFU.js +26 -0
  117. package/dist/chunk-FZMQMQBW.js +312 -0
  118. package/dist/chunk-G3EEC44R.js +53 -0
  119. package/dist/{chunk-KG3WT4PR.mjs → chunk-GCKWKLZF.mjs} +73 -104
  120. package/dist/chunk-GCX7TY4D.mjs +6826 -0
  121. package/dist/chunk-GDB6TCSD.js +450 -0
  122. package/dist/chunk-GDCV4IWO.mjs +21 -0
  123. package/dist/chunk-GDZT5LZ5.js +170 -0
  124. package/dist/chunk-GHPUYD4I.mjs +213 -0
  125. package/dist/chunk-GHS6MIL6.mjs +1432 -0
  126. package/dist/chunk-GPS2THCL.mjs +11 -0
  127. package/dist/{chunk-EV2EVOYS.js → chunk-GTJWQAGU.js} +31 -42
  128. package/dist/chunk-GVTI6UJQ.mjs +130 -0
  129. package/dist/chunk-GXKI64OT.mjs +1138 -0
  130. package/dist/chunk-GYDYF2WX.js +275 -0
  131. package/dist/chunk-GYLP6UG4.mjs +705 -0
  132. package/dist/chunk-H3OQKK6X.js +1158 -0
  133. package/dist/chunk-H5DFSCJ6.js +40 -0
  134. package/dist/chunk-HAGEIC2L.mjs +186 -0
  135. package/dist/chunk-HAJ4JRFO.js +293 -0
  136. package/dist/chunk-HDR72GB6.js +188 -0
  137. package/dist/chunk-HF5HPS4T.mjs +40 -0
  138. package/dist/chunk-HK6LOFDS.js +218 -0
  139. package/dist/chunk-HMWYTXCY.mjs +143 -0
  140. package/dist/chunk-HPCSRCMA.js +89 -0
  141. package/dist/chunk-HSEO6TPU.js +247 -0
  142. package/dist/chunk-I5FOHCLH.js +132 -0
  143. package/dist/chunk-IDLW4NWA.mjs +85 -0
  144. package/dist/chunk-IIDZ5WUX.js +61 -0
  145. package/dist/chunk-IR74FJHU.js +2332 -0
  146. package/dist/chunk-IRVFYAKP.mjs +100 -0
  147. package/dist/{chunk-XBL3TMPC.mjs → chunk-IZDWAL53.mjs} +1795 -3287
  148. package/dist/chunk-J2KZXIU3.js +51 -0
  149. package/dist/chunk-J2U6PJSO.js +91 -0
  150. package/dist/chunk-J5AJNY2N.js +283 -0
  151. package/dist/chunk-J6KQZ4FO.mjs +821 -0
  152. package/dist/{chunk-OWW5GUSB.js → chunk-JGBCIKJV.js} +7 -6
  153. package/dist/chunk-JKGTBMU7.mjs +25 -0
  154. package/dist/chunk-JR3TNEQC.js +422 -0
  155. package/dist/chunk-JURRXY2J.mjs +29 -0
  156. package/dist/chunk-K3HW5I2A.mjs +317 -0
  157. package/dist/chunk-K46SMZ66.mjs +103 -0
  158. package/dist/chunk-K4UDGE3Z.mjs +6 -0
  159. package/dist/chunk-KDQOR4QQ.mjs +350 -0
  160. package/dist/chunk-KDTVOLHI.mjs +288 -0
  161. package/dist/chunk-KGHJH5KJ.mjs +35 -0
  162. package/dist/chunk-KIZOA5LX.mjs +140 -0
  163. package/dist/chunk-KK6HYVBI.mjs +242 -0
  164. package/dist/chunk-KMKWGXMK.js +856 -0
  165. package/dist/chunk-KPA6K5IB.js +80 -0
  166. package/dist/chunk-KU7O4IXU.mjs +260 -0
  167. package/dist/chunk-KVFNRJOR.mjs +11142 -0
  168. package/dist/chunk-KZJRSXHK.js +2432 -0
  169. package/dist/chunk-LHWPRUJL.js +79 -0
  170. package/dist/chunk-LIV3KXJG.mjs +369 -0
  171. package/dist/chunk-LKV4LACG.js +21 -0
  172. package/dist/chunk-LUY45X3U.mjs +263 -0
  173. package/dist/chunk-LYEZZEEF.mjs +17 -0
  174. package/dist/chunk-M5EXQZYY.mjs +1519 -0
  175. package/dist/chunk-ME6HGG4I.mjs +1338 -0
  176. package/dist/chunk-MEXP6DA6.js +31 -0
  177. package/dist/chunk-MG52AW3H.js +902 -0
  178. package/dist/chunk-MIPO6F72.js +334 -0
  179. package/dist/{chunk-5QW7CQBA.js → chunk-MKIJQL5Q.js} +211 -321
  180. package/dist/chunk-MN3YETVN.mjs +17 -0
  181. package/dist/chunk-MOBSBXVE.mjs +2391 -0
  182. package/dist/chunk-MOMOZEUM.mjs +88 -0
  183. package/dist/chunk-MRFUNRAP.js +62 -0
  184. package/dist/chunk-MTIHEW2M.js +433 -0
  185. package/dist/chunk-N4RGGDEL.mjs +73 -0
  186. package/dist/chunk-NH654HAT.js +10 -0
  187. package/dist/chunk-NHJUGZUR.mjs +253 -0
  188. package/dist/chunk-NMQT4HG3.mjs +757 -0
  189. package/dist/chunk-NPSYB6DC.mjs +906 -0
  190. package/dist/chunk-NW2GPMSO.js +857 -0
  191. package/dist/chunk-NXKQOQ6L.js +76 -0
  192. package/dist/chunk-NXLAZIJZ.js +309 -0
  193. package/dist/chunk-NYWNA5CF.js +148 -0
  194. package/dist/chunk-NZTKLY2W.js +1442 -0
  195. package/dist/chunk-O2ICABUD.js +36 -0
  196. package/dist/chunk-OIVVQQ22.js +862 -0
  197. package/dist/chunk-OKC2B4O3.mjs +312 -0
  198. package/dist/chunk-OLWFPDBK.js +2220 -0
  199. package/dist/chunk-OMTVH334.js +3779 -0
  200. package/dist/chunk-OQRVEM56.mjs +362 -0
  201. package/dist/chunk-OXMIBOD4.js +337 -0
  202. package/dist/chunk-PBL6YL5L.mjs +288 -0
  203. package/dist/chunk-PDOELNNQ.js +97 -0
  204. package/dist/chunk-PDQJY2GZ.js +136 -0
  205. package/dist/chunk-PKOZXD2Q.js +1274 -0
  206. package/dist/chunk-PPF2BYFL.mjs +2191 -0
  207. package/dist/chunk-PQTQKNKD.js +539 -0
  208. package/dist/chunk-PRSR4FAV.mjs +81 -0
  209. package/dist/chunk-PTRNO5UD.js +95 -0
  210. package/dist/chunk-Q2Y3VMKH.js +2000 -0
  211. package/dist/chunk-QCZOE65N.js +96 -0
  212. package/dist/chunk-QDYFLATW.mjs +52 -0
  213. package/dist/chunk-QQABGCMM.js +22 -0
  214. package/dist/chunk-QS6TRHMR.js +345 -0
  215. package/dist/chunk-R56P64LB.mjs +208 -0
  216. package/dist/chunk-RCQ2MPBV.js +428 -0
  217. package/dist/chunk-RFVRPYR2.mjs +856 -0
  218. package/dist/chunk-RKBLPGPV.js +11521 -0
  219. package/dist/chunk-RM2V4IND.mjs +327 -0
  220. package/dist/chunk-RQXN5A34.mjs +613 -0
  221. package/dist/chunk-RUVGVNOF.mjs +2687 -0
  222. package/dist/chunk-SAFJIGYB.mjs +165 -0
  223. package/dist/chunk-SKQFLBDD.js +263 -0
  224. package/dist/chunk-SMK6JU2F.mjs +2092 -0
  225. package/dist/{chunk-UVRPC2P7.js → chunk-SNNEOS5Z.js} +1984 -3476
  226. package/dist/chunk-SPCRQ6NO.mjs +1246 -0
  227. package/dist/chunk-SWX4SALA.mjs +19 -0
  228. package/dist/{chunk-JVODCGFP.mjs → chunk-SYEO2WV4.mjs} +128 -238
  229. package/dist/chunk-T2QQMX2N.js +10 -0
  230. package/dist/chunk-T3AFF3L7.mjs +57 -0
  231. package/dist/chunk-T6Z2EXYL.js +712 -0
  232. package/dist/chunk-T7LOXGYX.js +118 -0
  233. package/dist/chunk-TJCAE7RC.mjs +1315 -0
  234. package/dist/chunk-TJI3K6RP.js +137 -0
  235. package/dist/chunk-TL2SVO4P.mjs +55 -0
  236. package/dist/chunk-TM63CYGN.mjs +399 -0
  237. package/dist/chunk-TU5RYTYU.mjs +13 -0
  238. package/dist/chunk-TVJZ4GPS.js +1553 -0
  239. package/dist/chunk-TWM6DLYF.js +371 -0
  240. package/dist/chunk-U63OC4TQ.js +30 -0
  241. package/dist/{chunk-L5GKVQVJ.js → chunk-U6BVSJZ6.js} +25 -57
  242. package/dist/chunk-U6UVWEAK.mjs +792 -0
  243. package/dist/chunk-UCEPNO6N.mjs +11048 -0
  244. package/dist/{chunk-ANT574FD.js → chunk-UCR5HRYM.js} +74 -105
  245. package/dist/chunk-UG5BTOTF.mjs +334 -0
  246. package/dist/chunk-UGH37BQW.mjs +157 -0
  247. package/dist/chunk-V7ZRH3PY.mjs +271 -0
  248. package/dist/chunk-VBGHBL3E.mjs +1394 -0
  249. package/dist/chunk-VRBDAS5I.js +920 -0
  250. package/dist/chunk-VVE3Y76O.js +230 -0
  251. package/dist/chunk-W65JIRI4.mjs +1182 -0
  252. package/dist/chunk-WHYKAT7G.js +62 -0
  253. package/dist/{chunk-YOIVZ6OA.mjs → chunk-WIZRUIZB.mjs} +25 -57
  254. package/dist/chunk-WKWTDZS7.js +385 -0
  255. package/dist/chunk-WLMINRC4.mjs +78 -0
  256. package/dist/chunk-WOF3AD3J.js +22 -0
  257. package/dist/chunk-WWKMOA76.js +1262 -0
  258. package/dist/chunk-X5A5FOWW.js +615 -0
  259. package/dist/chunk-X6CN6KQF.mjs +192 -0
  260. package/dist/chunk-XD2PMH46.mjs +517 -0
  261. package/dist/chunk-XJA2NGTI.mjs +88 -0
  262. package/dist/chunk-XJIHN3BY.mjs +8 -0
  263. package/dist/chunk-XK6UDWJS.js +203 -0
  264. package/dist/chunk-XPG3N5CF.mjs +415 -0
  265. package/dist/chunk-XVZ2NKSU.mjs +74 -0
  266. package/dist/chunk-XYP45OLE.js +117 -0
  267. package/dist/chunk-XZSDGZX6.mjs +301 -0
  268. package/dist/chunk-Y2EMGN4T.mjs +120 -0
  269. package/dist/chunk-Y3XWP5XW.mjs +298 -0
  270. package/dist/chunk-Y4K22JL6.js +228 -0
  271. package/dist/chunk-Y65LXQGA.mjs +3164 -0
  272. package/dist/chunk-Y66WVMO5.mjs +87 -0
  273. package/dist/chunk-Y7JWLB25.mjs +7280 -0
  274. package/dist/chunk-YCDXAJKU.js +175 -0
  275. package/dist/chunk-YRDQCCIS.js +152 -0
  276. package/dist/chunk-YV52DGSA.js +111 -0
  277. package/dist/chunk-YXGZQPUD.js +94 -0
  278. package/dist/chunk-Z3A3AFVU.mjs +102 -0
  279. package/dist/chunk-ZCY6YKKP.mjs +475 -0
  280. package/dist/chunk-ZEQHXVU5.js +215 -0
  281. package/dist/chunk-ZF7JCXCI.js +284 -0
  282. package/dist/chunk-ZJBRUH6V.js +29 -0
  283. package/dist/chunk-ZMIL4ZOA.js +365 -0
  284. package/dist/chunk-ZR5ULMN2.mjs +337 -0
  285. package/dist/chunk-ZXREOYOW.js +87 -0
  286. package/dist/{client-BSP9U1O1.d.mts → client-CX_WR0-J.d.mts} +2 -2
  287. package/dist/client-Dytx_ZTC.d.ts +230 -0
  288. package/dist/{client-B878xeAP.d.ts → client-dqOhP9Nc.d.ts} +2 -2
  289. package/dist/client-hTKbCuhG.d.mts +230 -0
  290. package/dist/clock-B-UAjkKa.d.mts +5 -0
  291. package/dist/clock-B-UAjkKa.d.ts +5 -0
  292. package/dist/config-BlXQluJR.d.mts +36 -0
  293. package/dist/config-BlXQluJR.d.ts +36 -0
  294. package/dist/courier-Cnn-edJ4.d.ts +95 -0
  295. package/dist/courier-FmGfkvIN.d.mts +95 -0
  296. package/dist/crowd-DdHFbqKK.d.ts +186 -0
  297. package/dist/crowd-hOVSAmA3.d.mts +186 -0
  298. package/dist/danfo-BEBapFlX.d.mts +146 -0
  299. package/dist/danfo-UQ_PTIIx.d.ts +146 -0
  300. package/dist/{elements-Bty6Qs_N.d.mts → elements-DdsRig-2.d.mts} +1548 -257
  301. package/dist/{elements-Bty6Qs_N.d.ts → elements-DdsRig-2.d.ts} +1548 -257
  302. package/dist/engines/godot.d.mts +56 -0
  303. package/dist/engines/godot.d.ts +56 -0
  304. package/dist/engines/godot.js +28 -0
  305. package/dist/engines/godot.mjs +3 -0
  306. package/dist/engines/wasm.d.mts +11 -0
  307. package/dist/engines/wasm.d.ts +11 -0
  308. package/dist/engines/wasm.js +178 -0
  309. package/dist/engines/wasm.mjs +176 -0
  310. package/dist/fallback-CrG_lTFk.d.mts +270 -0
  311. package/dist/fallback-CrG_lTFk.d.ts +270 -0
  312. package/dist/fallback-KDB4Y2CE.mjs +6 -0
  313. package/dist/fallback-Y26TQENE.js +19 -0
  314. package/dist/features-CZB4rmcD.d.mts +118 -0
  315. package/dist/features-CZB4rmcD.d.ts +118 -0
  316. package/dist/fit-BWiE7rgA.d.mts +44 -0
  317. package/dist/fit-DK0oT7zO.d.ts +44 -0
  318. package/dist/five-a-side-Bv1AOUy3.d.mts +115 -0
  319. package/dist/five-a-side-EC51SJY1.d.ts +115 -0
  320. package/dist/fluid-ARr0qUIL.d.ts +939 -0
  321. package/dist/fluid-DLlEj2cs.d.mts +939 -0
  322. package/dist/game/conformance.d.mts +84 -0
  323. package/dist/game/conformance.d.ts +84 -0
  324. package/dist/game/conformance.js +1025 -0
  325. package/dist/game/conformance.mjs +994 -0
  326. package/dist/game/heap.d.mts +40 -0
  327. package/dist/game/heap.d.ts +40 -0
  328. package/dist/game/heap.js +48 -0
  329. package/dist/game/heap.mjs +7 -0
  330. package/dist/game/kit/canvas.d.mts +240 -0
  331. package/dist/game/kit/canvas.d.ts +240 -0
  332. package/dist/game/kit/canvas.js +3566 -0
  333. package/dist/game/kit/canvas.mjs +1039 -0
  334. package/dist/game/kit/courier.d.mts +17 -0
  335. package/dist/game/kit/courier.d.ts +17 -0
  336. package/dist/game/kit/courier.js +66 -0
  337. package/dist/game/kit/courier.mjs +49 -0
  338. package/dist/game/kit/danfo.d.mts +11 -0
  339. package/dist/game/kit/danfo.d.ts +11 -0
  340. package/dist/game/kit/danfo.js +109 -0
  341. package/dist/game/kit/danfo.mjs +44 -0
  342. package/dist/game/kit/engine.d.mts +29 -0
  343. package/dist/game/kit/engine.d.ts +29 -0
  344. package/dist/game/kit/engine.js +183 -0
  345. package/dist/game/kit/engine.mjs +30 -0
  346. package/dist/game/kit/five-a-side.d.mts +11 -0
  347. package/dist/game/kit/five-a-side.d.ts +11 -0
  348. package/dist/game/kit/five-a-side.js +86 -0
  349. package/dist/game/kit/five-a-side.mjs +41 -0
  350. package/dist/game/kit/frontier.d.mts +344 -0
  351. package/dist/game/kit/frontier.d.ts +344 -0
  352. package/dist/game/kit/frontier.js +435 -0
  353. package/dist/game/kit/frontier.mjs +14 -0
  354. package/dist/game/kit/genesis.d.mts +752 -0
  355. package/dist/game/kit/genesis.d.ts +752 -0
  356. package/dist/game/kit/genesis.js +380 -0
  357. package/dist/game/kit/genesis.mjs +15 -0
  358. package/dist/game/kit/ludo.d.mts +15 -0
  359. package/dist/game/kit/ludo.d.ts +15 -0
  360. package/dist/game/kit/ludo.js +87 -0
  361. package/dist/game/kit/ludo.mjs +42 -0
  362. package/dist/game/kit/runner.d.mts +12 -0
  363. package/dist/game/kit/runner.d.ts +12 -0
  364. package/dist/game/kit/runner.js +83 -0
  365. package/dist/game/kit/runner.mjs +46 -0
  366. package/dist/game/kit/shootout.d.mts +13 -0
  367. package/dist/game/kit/shootout.d.ts +13 -0
  368. package/dist/game/kit/shootout.js +122 -0
  369. package/dist/game/kit/shootout.mjs +57 -0
  370. package/dist/game/kit/slots.d.mts +392 -0
  371. package/dist/game/kit/slots.d.ts +392 -0
  372. package/dist/game/kit/slots.js +215 -0
  373. package/dist/game/kit/slots.mjs +6 -0
  374. package/dist/game/kit/tycoon.d.mts +16 -0
  375. package/dist/game/kit/tycoon.d.ts +16 -0
  376. package/dist/game/kit/tycoon.js +145 -0
  377. package/dist/game/kit/tycoon.mjs +44 -0
  378. package/dist/game/kit/word.d.mts +11 -0
  379. package/dist/game/kit/word.d.ts +11 -0
  380. package/dist/game/kit/word.js +78 -0
  381. package/dist/game/kit/word.mjs +41 -0
  382. package/dist/game/kit/worlds.d.mts +18 -0
  383. package/dist/game/kit/worlds.d.ts +18 -0
  384. package/dist/game/kit/worlds.js +74 -0
  385. package/dist/game/kit/worlds.mjs +49 -0
  386. package/dist/game/kit.d.mts +53 -0
  387. package/dist/game/kit.d.ts +53 -0
  388. package/dist/game/kit.js +2610 -0
  389. package/dist/game/kit.mjs +101 -0
  390. package/dist/game/prepared.d.mts +14 -0
  391. package/dist/game/prepared.d.ts +14 -0
  392. package/dist/game/prepared.js +81 -0
  393. package/dist/game/prepared.mjs +32 -0
  394. package/dist/game-Bx8onkhX.d.mts +1451 -0
  395. package/dist/game-fgQy2YIm.d.ts +1451 -0
  396. package/dist/game-theme-CBTw1b_d.d.mts +35 -0
  397. package/dist/game-theme-Dg-ict5A.d.ts +35 -0
  398. package/dist/game.d.mts +3546 -0
  399. package/dist/game.d.ts +3546 -0
  400. package/dist/game.js +4455 -0
  401. package/dist/game.mjs +50 -0
  402. package/dist/graphics-C6YjWYvP.d.ts +5 -0
  403. package/dist/graphics-Dk2yQnYN.d.mts +5 -0
  404. package/dist/guest-DrsA00XD.d.mts +732 -0
  405. package/dist/guest-wIdfoT05.d.ts +732 -0
  406. package/dist/hit-stop-BKkVwTq7.d.mts +43 -0
  407. package/dist/hit-stop-D-8pPYnM.d.ts +43 -0
  408. package/dist/hot-Crn9XpHJ.d.ts +29 -0
  409. package/dist/hot-DH3nOhQD.d.mts +29 -0
  410. package/dist/{index-CQStGb3B.d.mts → index-6gkHMGAq.d.mts} +2 -2
  411. package/dist/index-B8ybCKJI.d.ts +41 -0
  412. package/dist/{index-DJwXmoaP.d.ts → index-B98Xac8e.d.ts} +2 -2
  413. package/dist/{index-B7oA_1XI.d.ts → index-B_ByTtIT.d.ts} +2 -2
  414. package/dist/index-DHjNHb1c.d.mts +41 -0
  415. package/dist/{index-DhUSTAhT.d.mts → index-DbAN_VQE.d.mts} +2 -2
  416. package/dist/index.d.mts +134 -24
  417. package/dist/index.d.ts +134 -24
  418. package/dist/index.js +407 -248
  419. package/dist/index.mjs +184 -58
  420. package/dist/interactives-authoring.d.mts +231 -0
  421. package/dist/interactives-authoring.d.ts +231 -0
  422. package/dist/interactives-authoring.js +1743 -0
  423. package/dist/interactives-authoring.mjs +1704 -0
  424. package/dist/interactives-canvas.global.js +148 -0
  425. package/dist/interactives-guest.d.mts +20 -0
  426. package/dist/interactives-guest.d.ts +20 -0
  427. package/dist/interactives-guest.js +63 -0
  428. package/dist/interactives-guest.json +1 -0
  429. package/dist/interactives-guest.mjs +61 -0
  430. package/dist/interactives-jsc.global.js +9357 -0
  431. package/dist/interactives-meters.d.mts +93 -0
  432. package/dist/interactives-meters.d.ts +93 -0
  433. package/dist/interactives-meters.js +252 -0
  434. package/dist/interactives-meters.mjs +68 -0
  435. package/dist/interactives-production.d.mts +430 -0
  436. package/dist/interactives-production.d.ts +430 -0
  437. package/dist/interactives-production.js +1231 -0
  438. package/dist/interactives-production.mjs +1170 -0
  439. package/dist/interactives-record.d.mts +112 -0
  440. package/dist/interactives-record.d.ts +112 -0
  441. package/dist/interactives-record.js +302 -0
  442. package/dist/interactives-record.mjs +295 -0
  443. package/dist/interactives-runtime.d.mts +61 -0
  444. package/dist/interactives-runtime.d.ts +61 -0
  445. package/dist/interactives-runtime.js +442 -0
  446. package/dist/interactives-runtime.mjs +25 -0
  447. package/dist/interactives-studio-kernel.global.js +1 -0
  448. package/dist/interactives-studio.d.mts +806 -0
  449. package/dist/interactives-studio.d.ts +806 -0
  450. package/dist/interactives-studio.js +5741 -0
  451. package/dist/interactives-studio.mjs +5651 -0
  452. package/dist/interactives-tick.d.mts +90 -0
  453. package/dist/interactives-tick.d.ts +90 -0
  454. package/dist/interactives-tick.js +203 -0
  455. package/dist/interactives-tick.mjs +6 -0
  456. package/dist/interactives-web.d.mts +762 -0
  457. package/dist/interactives-web.d.ts +762 -0
  458. package/dist/interactives-web.js +5000 -0
  459. package/dist/interactives-web.mjs +4628 -0
  460. package/dist/interactives.d.mts +2430 -0
  461. package/dist/interactives.d.ts +2430 -0
  462. package/dist/interactives.js +5723 -0
  463. package/dist/interactives.mjs +4333 -0
  464. package/dist/juice-CoHxlpKA.d.ts +42 -0
  465. package/dist/juice-DQztFS43.d.mts +42 -0
  466. package/dist/launch-T2f4_Di4.d.mts +151 -0
  467. package/dist/launch-d6oreMzR.d.ts +151 -0
  468. package/dist/library-DXYaMFhi.d.mts +69 -0
  469. package/dist/library-DXYaMFhi.d.ts +69 -0
  470. package/dist/link-BUTqGmyi.d.mts +38 -0
  471. package/dist/link-BUTqGmyi.d.ts +38 -0
  472. package/dist/lint.js +104 -204
  473. package/dist/lint.mjs +103 -203
  474. package/dist/local-D8_I6UeL.d.mts +6967 -0
  475. package/dist/local-VZkqsCzR.d.ts +6967 -0
  476. package/dist/lockstep-BLf6dglI.d.mts +321 -0
  477. package/dist/lockstep-D50Ia0JW.d.ts +321 -0
  478. package/dist/ludo-B8ClkDqr.d.ts +205 -0
  479. package/dist/ludo-BOuohQ-M.d.mts +205 -0
  480. package/dist/mock/cli.mjs +200 -56
  481. package/dist/mock/library.js +200 -56
  482. package/dist/mock/library.mjs +200 -56
  483. package/dist/mock/msw.js +200 -56
  484. package/dist/mock/msw.mjs +200 -56
  485. package/dist/native-BodxSh03.d.mts +16 -0
  486. package/dist/native-DUHMT8gA.d.ts +16 -0
  487. package/dist/network-ZXLD7l1b.d.mts +19 -0
  488. package/dist/network-ZXLD7l1b.d.ts +19 -0
  489. package/dist/online-XeymeM9s.d.ts +381 -0
  490. package/dist/online-d7W_Al9a.d.mts +381 -0
  491. package/dist/params-DxFb5G_U.d.mts +155 -0
  492. package/dist/params-DxFb5G_U.d.ts +155 -0
  493. package/dist/play-BRRlfLhX.d.ts +940 -0
  494. package/dist/play-ClrMd_e8.d.mts +940 -0
  495. package/dist/policy-CCw8tXLm.d.mts +3078 -0
  496. package/dist/policy-CMqOSQIu.d.ts +3078 -0
  497. package/dist/ports-B_0v_P3A.d.mts +13 -0
  498. package/dist/ports-CGU_3e_0.d.ts +13 -0
  499. package/dist/prefetch-BHnicOQj.d.ts +117 -0
  500. package/dist/prefetch-CBXgYacv.d.mts +117 -0
  501. package/dist/{price-CSztR02F.d.mts → price-BOzexBww.d.mts} +1 -1
  502. package/dist/{price-C_vasx9A.d.ts → price-C1h9sPxE.d.ts} +1 -1
  503. package/dist/protocol-C8qbpUbT.d.mts +242 -0
  504. package/dist/protocol-C8qbpUbT.d.ts +242 -0
  505. package/dist/rapier-AZHT4YI7.js +7886 -0
  506. package/dist/rapier-ODEPCQA6.mjs +7792 -0
  507. package/dist/react.d.mts +157 -15
  508. package/dist/react.d.ts +157 -15
  509. package/dist/react.js +5564 -5904
  510. package/dist/react.mjs +5451 -5808
  511. package/dist/runner-CQcLL7By.d.ts +189 -0
  512. package/dist/runner-D46Yj-wE.d.mts +189 -0
  513. package/dist/runtime-BRWfkf_q.d.mts +51 -0
  514. package/dist/runtime-DyuBMkKM.d.ts +51 -0
  515. package/dist/scheduling-D2ajXpMC.d.ts +224 -0
  516. package/dist/scheduling-DSRbbaZb.d.mts +224 -0
  517. package/dist/schema-BrWxzKp6.d.mts +63 -0
  518. package/dist/schema-BrWxzKp6.d.ts +63 -0
  519. package/dist/server/evict.js +34 -37
  520. package/dist/server/evict.mjs +34 -37
  521. package/dist/server/tanstack.d.mts +49 -3
  522. package/dist/server/tanstack.d.ts +49 -3
  523. package/dist/server/tanstack.js +169 -117
  524. package/dist/server/tanstack.mjs +166 -118
  525. package/dist/{server-Dckg4Vdr.d.ts → server-D29IIuDV.d.ts} +136 -130
  526. package/dist/{server-B6dW7-Lj.d.mts → server-DQMWPnc8.d.mts} +136 -130
  527. package/dist/server.d.mts +45 -5
  528. package/dist/server.d.ts +45 -5
  529. package/dist/server.js +171 -227
  530. package/dist/server.mjs +165 -225
  531. package/dist/session-grant-CJ27DwrT.d.mts +19 -0
  532. package/dist/session-grant-CJ27DwrT.d.ts +19 -0
  533. package/dist/shootout-BJZeX6FG.d.ts +140 -0
  534. package/dist/shootout-tcZd1Rxt.d.mts +140 -0
  535. package/dist/state-replica-stMtdkVD.d.mts +42 -0
  536. package/dist/state-replica-stMtdkVD.d.ts +42 -0
  537. package/dist/studio-CowqWqez.d.mts +14 -0
  538. package/dist/studio-CowqWqez.d.ts +14 -0
  539. package/dist/styles.css +1 -1
  540. package/dist/template-AhCdB1kW.d.mts +190 -0
  541. package/dist/template-BkEGVTQj.d.ts +190 -0
  542. package/dist/terrain-BMxEc6Oc.d.ts +429 -0
  543. package/dist/terrain-C-XC1Oui.d.mts +429 -0
  544. package/dist/testing/msw.d.mts +28 -4
  545. package/dist/testing/msw.d.ts +28 -4
  546. package/dist/testing/msw.js +15 -21
  547. package/dist/testing/msw.mjs +15 -21
  548. package/dist/testing/suite.d.mts +6 -5
  549. package/dist/testing/suite.d.ts +6 -5
  550. package/dist/testing/suite.js +89 -124
  551. package/dist/testing/suite.mjs +81 -116
  552. package/dist/testing.d.mts +27 -1227
  553. package/dist/testing.d.ts +27 -1227
  554. package/dist/testing.js +127 -131
  555. package/dist/testing.mjs +19 -23
  556. package/dist/tick-transport-C8QEh8Uw.d.mts +50 -0
  557. package/dist/tick-transport-UjHY3xK1.d.ts +50 -0
  558. package/dist/timeline-protocol-hp6e8zFB.d.mts +47 -0
  559. package/dist/timeline-protocol-hp6e8zFB.d.ts +47 -0
  560. package/dist/tokens-DhanQRQS.d.mts +21 -0
  561. package/dist/tokens-K8yxwd6G.d.ts +21 -0
  562. package/dist/tree-C-Io2Hbx.d.mts +35 -0
  563. package/dist/tree-CP_qSW4H.d.ts +35 -0
  564. package/dist/tycoon-B5KHk2Xx.d.mts +255 -0
  565. package/dist/tycoon-hmHo-3HX.d.ts +255 -0
  566. package/dist/types-BQkxPwZP.d.mts +219 -0
  567. package/dist/types-D_f6UUxM.d.ts +219 -0
  568. package/dist/ui-DwHicuFv.d.mts +563 -0
  569. package/dist/ui-hi7S2YcH.d.ts +563 -0
  570. package/dist/{sign-in-DQlIdqsi.d.mts → url-52ndUruG.d.mts} +15 -1
  571. package/dist/{sign-in-DQlIdqsi.d.ts → url-52ndUruG.d.ts} +15 -1
  572. package/dist/utils.d.mts +3 -3
  573. package/dist/utils.d.ts +3 -3
  574. package/dist/utils.js +37 -37
  575. package/dist/utils.mjs +4 -4
  576. package/dist/vars-Dc_PrhBK.d.mts +511 -0
  577. package/dist/vars-Dc_PrhBK.d.ts +511 -0
  578. package/dist/vm-IUARFFAI.mjs +63 -0
  579. package/dist/vm-N7L6MGGH.js +65 -0
  580. package/dist/weave-delivery-CW-Kstut.d.mts +360 -0
  581. package/dist/weave-delivery-CW-Kstut.d.ts +360 -0
  582. package/dist/web-Dss74a7v.d.ts +883 -0
  583. package/dist/web-f9ZQPoyw.d.mts +883 -0
  584. package/dist/web-transport-C7MkBL0a.d.ts +19 -0
  585. package/dist/web-transport-aYEqXMd9.d.mts +19 -0
  586. package/dist/weight-CPGjsgjV.d.ts +92 -0
  587. package/dist/weight-tF1ODR1p.d.mts +92 -0
  588. package/dist/word-BcX9Jcmv.d.mts +70 -0
  589. package/dist/word-C7sVPLHm.d.ts +70 -0
  590. package/dist/world-PvILHDR1.d.ts +2285 -0
  591. package/dist/world-qekkXjJv.d.mts +2285 -0
  592. package/dist/worlds-Br2Pb0Cs.d.ts +109 -0
  593. package/dist/worlds-D5ydYr7d.d.mts +109 -0
  594. package/engines/c/cimplify.h +108 -0
  595. package/engines/c/cimplify.lib.js +11 -0
  596. package/engines/godot/addons/cimplify/cimplify.gd +97 -0
  597. package/engines/rust/interactives-ctx/Cargo.toml +9 -0
  598. package/engines/rust/interactives-ctx/src/lib.rs +189 -0
  599. package/package.json +189 -3
  600. package/vendor/rapier3d-compat/LICENSE +201 -0
  601. package/vendor/rapier3d-compat/PATCHES.md +61 -0
  602. package/dist/chunk-2P4KXFB6.js +0 -274
  603. package/dist/chunk-3G6RQLXK.mjs +0 -21
  604. package/dist/chunk-3V4DVXV3.mjs +0 -254
  605. package/dist/chunk-EDK3LNM6.js +0 -2436
  606. package/dist/chunk-F7J3HK27.js +0 -4549
  607. package/dist/chunk-U4MW6PYU.mjs +0 -23
  608. package/dist/chunk-XREIZ56K.js +0 -26
@@ -0,0 +1,2092 @@
1
+ import { GameError } from './chunk-XJIHN3BY.mjs';
2
+ import { __export } from './chunk-25T4JHEA.mjs';
3
+
4
+ // src/game/kernel/fmath.ts
5
+ var fmath_exports = {};
6
+ __export(fmath_exports, {
7
+ FMATH_CONSTANTS: () => FMATH_CONSTANTS,
8
+ acos: () => acos,
9
+ asin: () => asin,
10
+ atan: () => atan,
11
+ atan2: () => atan2,
12
+ cos: () => cos,
13
+ exp: () => exp,
14
+ exp2: () => exp2,
15
+ f32Bits: () => f32Bits,
16
+ f32From: () => f32From,
17
+ log: () => log,
18
+ log2: () => log2,
19
+ pow: () => pow,
20
+ sin: () => sin,
21
+ tan: () => tan
22
+ });
23
+ var f64 = new Float64Array(1), w64 = new Uint32Array(f64.buffer), f32 = new Float32Array(1), w32 = new Uint32Array(f32.buffer), fround = Math.fround;
24
+ function f32Bits(x) {
25
+ return f32[0] = x, w32[0];
26
+ }
27
+ function f32From(bits) {
28
+ return w32[0] = bits >>> 0, f32[0];
29
+ }
30
+ function f64From(hi, lo) {
31
+ return w64[0] = lo >>> 0, w64[1] = hi >>> 0, f64[0];
32
+ }
33
+ function lowWord(x) {
34
+ return f64[0] = x, w64[0];
35
+ }
36
+ function d(hex) {
37
+ return f64From(Number.parseInt(hex.slice(0, 8), 16), Number.parseInt(hex.slice(8), 16));
38
+ }
39
+ var EXP2_TABLE = [
40
+ "3ff0000000000000",
41
+ "3fefd9b0d3158574",
42
+ "3fefb5586cf9890f",
43
+ "3fef9301d0125b51",
44
+ "3fef72b83c7d517b",
45
+ "3fef54873168b9aa",
46
+ "3fef387a6e756238",
47
+ "3fef1e9df51fdee1",
48
+ "3fef06fe0a31b715",
49
+ "3feef1a7373aa9cb",
50
+ "3feedea64c123422",
51
+ "3feece086061892d",
52
+ "3feebfdad5362a27",
53
+ "3feeb42b569d4f82",
54
+ "3feeab07dd485429",
55
+ "3feea47eb03a5585",
56
+ "3feea09e667f3bcd",
57
+ "3fee9f75e8ec5f74",
58
+ "3feea11473eb0187",
59
+ "3feea589994cce13",
60
+ "3feeace5422aa0db",
61
+ "3feeb737b0cdc5e5",
62
+ "3feec49182a3f090",
63
+ "3feed503b23e255d",
64
+ "3feee89f995ad3ad",
65
+ "3feeff76f2fb5e47",
66
+ "3fef199bdd85529c",
67
+ "3fef3720dcef9069",
68
+ "3fef5818dcfba487",
69
+ "3fef7c97337b9b5f",
70
+ "3fefa4afa2a490da",
71
+ "3fefd0765b6e4540"
72
+ ], EXP2_HI = EXP2_TABLE.map((h) => Number.parseInt(h.slice(0, 8), 16)), EXP2_LO = EXP2_TABLE.map((h) => Number.parseInt(h.slice(8), 16)), EXP2_POLY = [d("3fac6af84b912394"), d("3fcebfce50fac4f3"), d("3fe62e42ff0c52d6")], EXP_POLY = [d("3ebc6af84b912394"), d("3f2ebfce50fac4f3"), d("3f962e42ff0c52d6")], INV_LN2_N = d("40471547652b82fe"), SHIFT = d("4338000000000000"), SHIFT_SCALED = d("42e8000000000000"), EXP_LOW = -104, EXP_HIGH = 89, EXP2_LOW = -151, EXP2_HIGH = 129, INV_C = [
73
+ "3ff661ec79f8f3be",
74
+ "3ff571ed4aaf883d",
75
+ "3ff49539f0f010b0",
76
+ "3ff3c995b0b80385",
77
+ "3ff30d190c8864a5",
78
+ "3ff25e227b0b8ea0",
79
+ "3ff1bb4a4a1a343f",
80
+ "3ff12358f08ae5ba",
81
+ "3ff0953f419900a7",
82
+ "3ff0000000000000",
83
+ "3fee608cfd9a47ac",
84
+ "3feca4b31f026aa0",
85
+ "3feb2036576afce6",
86
+ "3fe9c2d163a1aa2d",
87
+ "3fe886e6037841ed",
88
+ "3fe767dcf5534862"
89
+ ].map(d), LOG_C = [
90
+ "bfd57bf7808caade",
91
+ "bfd2bef0a7c06ddb",
92
+ "bfd01eae7f513a67",
93
+ "bfcb31d8a68224e9",
94
+ "bfc6574f0ac07758",
95
+ "bfc1aa2bc79c8100",
96
+ "bfba4e76ce8c0e5e",
97
+ "bfb1973c5a611ccc",
98
+ "bfa252f438e10c1e",
99
+ "0000000000000000",
100
+ "3faaa5aa5df25984",
101
+ "3fbc5e53aa362eb4",
102
+ "3fc526e57720db08",
103
+ "3fcbc2860d224770",
104
+ "3fd1058bc8a07ee1",
105
+ "3fd4043057b6ee09"
106
+ ].map(d), LOG2_C = [
107
+ "bfdefec65b963019",
108
+ "bfdb0b6832d4fca4",
109
+ "bfd7418b0a1fb77b",
110
+ "bfd39de91a6dcf7b",
111
+ "bfd01d9bf3f2b631",
112
+ "bfc97c1d1b3b7af0",
113
+ "bfc2f9e393af3c9f",
114
+ "bfb960cbbf788d5c",
115
+ "bfaa6f9db6475fce",
116
+ "0000000000000000",
117
+ "3fb338ca9f24f53d",
118
+ "3fc476a9543891ba",
119
+ "3fce840b4ac4e4d2",
120
+ "3fd40645f0c6651c",
121
+ "3fd88e9c2c1b9ff8",
122
+ "3fdce0a44eb17bcc"
123
+ ].map(d), LN2 = d("3fe62e42fefa39ef"), LOG_POLY = ["bfd00ea348b88334", "3fd5575b0be00b6a", "bfdffffef20a4123"].map(d), LOG2_POLY = ["bfd712b6f70a7e4d", "3fdecabf496832e0", "bfe715479ffae3de", "3ff715475f35c8b8"].map(d), POW_POLY = ["3fd27616c9496e0b", "bfd71969a075c67a", "3fdec70a6ca7badd", "bfe7154748bef6c8", "3ff71547652ab82b"].map(d), POW_SIGN_BIAS = 65536, POW_OVERFLOW = d("405fffffffd1d571"), POW_SATURATE = d("405fffffffa3aae2"), POW_UNDERFLOW = -150, LOG_OFF = 1060306944, SUBNORMAL_SCALE = 8388608, SUBNORMAL_BIAS = 23 << 23, MIN_NORMAL = 8388608, INFINITY_BITS = 2139095040, ONE_BITS = 1065353216, SIGN = 2147483648, ABS = 2147483647, EXPONENT_MASK = 4286578688, F32_MAX = f32From(2139095039), HPI_INV = d("41645f306dc9c883"), HPI = d("3ff921fb54442d18"), PI63 = d("3c1921fb54442d18"), COS_C1 = d("bfdffffffd0c621c"), COS_C2 = d("3fa55553e1068f19"), COS_C3 = d("bf56c087e89a359d"), COS_C4 = d("3ef99343027bf8c3"), SIN_S1 = d("bfc555545995a603"), SIN_S2 = d("3f81107605230bc4"), SIN_S3 = d("bf2994eb3774cf24"), QUADRANT_SIGN = [1, -1, -1, 1], LARGE_TOP = 1071, QUADRANT_ROUND = 8388608, INV_PIO4 = [
124
+ 162,
125
+ 41721,
126
+ 10680707,
127
+ 2734261102,
128
+ 4186140238,
129
+ 2205044292,
130
+ 1850622997,
131
+ 1313084713,
132
+ 1142237692,
133
+ 355073063,
134
+ 704390999,
135
+ 4230436817,
136
+ 660066805,
137
+ 1473377588,
138
+ 3522507997,
139
+ 4113882560,
140
+ 886948059,
141
+ 3720403810,
142
+ 3235603093,
143
+ 3680671129,
144
+ 1653971260,
145
+ 2509847619,
146
+ 2570863504,
147
+ 1011060801
148
+ ], QUARTER_PI = Math.PI / 4, HALF_PI = Math.PI / 2, TAN_PI_8 = d("3fda827999fcef34"), ATAN_TERMS = 14, ATAN_COEFFS = Array.from({ length: (14) }, (_, k) => (k % 2 === 0 ? 1 : -1) * (1 / (2 * k + 1))), U64 = (1n << 64n) - 1n, U32 = (1n << 32n) - 1n;
149
+ function clampTo(x, low2, high2) {
150
+ return Number.isNaN(x) ? low2 : Math.min(Math.max(x, low2), high2);
151
+ }
152
+ function exp2Table(xd, shift, poly2, signBias) {
153
+ let shifted = xd + shift, ki = lowWord(shifted), kd = shifted - shift, r = xd - kd, i = ki & 31, hi = EXP2_HI[i] + (ki + signBias >>> 0 << 15) >>> 0, s = f64From(hi, EXP2_LO[i]), z = poly2[0] * r + poly2[1], r2 = r * r, y = poly2[2] * r + 1;
154
+ return (z * r2 + y) * s;
155
+ }
156
+ function exp(x) {
157
+ return Number.isNaN(x) ? Number.NaN : fround(exp2Table(INV_LN2_N * clampTo(x, (-104), (89)), SHIFT, EXP_POLY, 0));
158
+ }
159
+ function exp2(x) {
160
+ return Number.isNaN(x) ? Number.NaN : fround(exp2Table(clampTo(x, (-151), (129)), SHIFT_SCALED, EXP2_POLY, 0));
161
+ }
162
+ function normalized(ix) {
163
+ let abs = (ix & (2147483647)) >>> 0;
164
+ return abs >= (8388608) ? abs : f32Bits(fround(f32From(abs) * (8388608))) - SUBNORMAL_BIAS >>> 0;
165
+ }
166
+ function split(ix) {
167
+ let tmp = ix - (1060306944) >>> 0, i = tmp >>> 19 & 15, top = (tmp & (4286578688)) >>> 0, k = (top | 0) >> 23, z = f32From(ix - top >>> 0);
168
+ return [i, k, z * INV_C[i] - 1];
169
+ }
170
+ function logSpecial(x, y) {
171
+ let ix = f32Bits(x);
172
+ return ix << 1 >>> 0 ? ix === (2139095040) ? x : (ix & (2147483648)) !== 0 || ix << 1 >>> 0 >= (2139095040) << 1 >>> 0 ? Number.NaN : y : Number.NEGATIVE_INFINITY;
173
+ }
174
+ function log(x) {
175
+ let [i, k, r] = split(normalized(f32Bits(x))), y0 = LOG_C[i] + k * LN2, r2 = r * r, y = LOG_POLY[1] * r + LOG_POLY[2];
176
+ return y = LOG_POLY[0] * r2 + y, y = y * r2 + (y0 + r), logSpecial(fround(x), fround(y));
177
+ }
178
+ function log2(x) {
179
+ let [i, k, r] = split(normalized(f32Bits(x))), y0 = LOG2_C[i] + k, r2 = r * r, y = LOG2_POLY[1] * r + LOG2_POLY[2];
180
+ y = LOG2_POLY[0] * r2 + y;
181
+ let p = LOG2_POLY[3] * r + y0;
182
+ return y = y * r2 + p, logSpecial(fround(x), fround(y));
183
+ }
184
+ function powLog2(ix) {
185
+ let [i, k, r] = split(ix), y0 = LOG2_C[i] + k, r2 = r * r, y = POW_POLY[0] * r + POW_POLY[1], p = POW_POLY[2] * r + POW_POLY[3], r4 = r2 * r2, q = POW_POLY[4] * r + y0;
186
+ return q = p * r2 + q, y * r4 + q;
187
+ }
188
+ function integerKind(iy) {
189
+ let e = iy >>> 23 & 255;
190
+ if (e < 127) return 0;
191
+ if (e > 150) return 2;
192
+ let shift = 150 - e;
193
+ return (shift === 0 ? 0 : (iy & (1 << shift >>> 0) - 1) >>> 0) !== 0 ? 0 : (iy & 1 << shift >>> 0) !== 0 ? 1 : 2;
194
+ }
195
+ function zeroInfNan(i) {
196
+ return (i << 1 >>> 0) - 1 >>> 0 >= ((2139095040) << 1 >>> 0) - 1 >>> 0;
197
+ }
198
+ function pow(xIn, yIn) {
199
+ let x = fround(xIn), y = fround(yIn), ix = f32Bits(x), iy = f32Bits(y), ax = ix << 1 >>> 0 >>> 1;
200
+ if (zeroInfNan(iy))
201
+ return !(iy << 1 >>> 0) || ix === (1065353216) ? 1 : ix << 1 >>> 0 > (2139095040) << 1 >>> 0 || iy << 1 >>> 0 > (2139095040) << 1 >>> 0 ? Number.NaN : ax === (1065353216) ? 1 : ax < (1065353216) == ((iy & (2147483648)) === 0) ? 0 : fround(y * y);
202
+ let yint = integerKind(iy), negative = (ix & (2147483648)) !== 0, odd = negative && yint === 1;
203
+ if (zeroInfNan(ix)) {
204
+ if (Number.isNaN(x)) return Number.NaN;
205
+ let square = fround(x * x), x2 = odd ? -square : square;
206
+ return (iy & (2147483648)) !== 0 ? fround(1 / x2) : x2;
207
+ }
208
+ if (negative && yint === 0) return Number.NaN;
209
+ let ylogx = y * powLog2(normalized(ix)), signed = (magnitude) => odd ? -magnitude : magnitude;
210
+ return ylogx > POW_OVERFLOW ? signed(Number.POSITIVE_INFINITY) : ylogx > POW_SATURATE ? signed(F32_MAX) : ylogx <= (-150) ? signed(0) : fround(exp2Table(clampTo(ylogx, (-151), (129)), SHIFT_SCALED, EXP2_POLY, odd ? (65536) : 0));
211
+ }
212
+ function poly(x, n, flip, s) {
213
+ let xs = x * s, x2 = x * x, x3 = x2 * xs, x4 = x2 * x2, x5 = x3 * x2, x6 = x4 * x2, c2 = COS_C3 * flip + x2 * (COS_C4 * flip), s1 = SIN_S2 + x2 * SIN_S3, c1 = flip + x2 * (COS_C1 * flip), sv = xs + x3 * SIN_S1, cv = c1 + x4 * (COS_C2 * flip), sine = sv + x5 * s1, cosine = cv + x6 * c2;
214
+ return (n & 1) !== 0 ? [cosine, sine] : [sine, cosine];
215
+ }
216
+ function sincosWide(xIn) {
217
+ let x = fround(xIn), bits = f32Bits(x);
218
+ if ((bits >>> 20 & 2047) < (1071)) {
219
+ let n2 = (x * HPI_INV | 0) + (8388608) >> 24;
220
+ return poly(x - n2 * HPI, n2, (n2 & 2) !== 0 ? -1 : 1, QUADRANT_SIGN[n2 & 3]);
221
+ }
222
+ if (!Number.isFinite(x)) return [Number.NaN, Number.NaN];
223
+ let sign = bits >>> 31, at = bits >>> 26 & 15, shift = bits >>> 23 & 7, m = BigInt((bits & 16777215 | 8388608) << shift >>> 0), res0 = m * BigInt(INV_PIO4[at]) & U32, res1 = m * BigInt(INV_PIO4[at + 4]), res = (m * BigInt(INV_PIO4[at + 8]) >> 32n | res0 << 32n) & U64;
224
+ res = res + res1 & U64;
225
+ let n = (res + (1n << 61n) & U64) >> 62n;
226
+ res = res - (n << 62n) & U64;
227
+ let signedRes = res >= 1n << 63n ? res - (1n << 64n) : res, reduced2 = Number(signedRes) * PI63, quadrant = Number(n) + sign | 0;
228
+ return poly(reduced2, Number(n), (quadrant & 2) !== 0 ? -1 : 1, QUADRANT_SIGN[quadrant & 3]);
229
+ }
230
+ function sin(x) {
231
+ return fround(sincosWide(x)[0]);
232
+ }
233
+ function cos(x) {
234
+ return fround(sincosWide(x)[1]);
235
+ }
236
+ function tan(x) {
237
+ let [s, c] = sincosWide(x);
238
+ return fround(s / c);
239
+ }
240
+ function atanUnit(t) {
241
+ let big = t > TAN_PI_8, u = big ? (t - 1) / (t + 1) : t, u2 = u * u, p = 0;
242
+ for (let k = (14) - 1; k >= 0; k--) p = ATAN_COEFFS[k] + u2 * p;
243
+ return (big ? QUARTER_PI : 0) + u * p;
244
+ }
245
+ function atan2Wide(y, x) {
246
+ if (Number.isNaN(x) || Number.isNaN(y)) return Number.NaN;
247
+ let ax = Math.abs(x), ay = Math.abs(y), high2 = Math.max(ax, ay), low2 = Math.min(ax, ay), t = high2 === 0 ? 0 : low2 === Number.POSITIVE_INFINITY ? 1 : low2 / high2, v = atanUnit(t);
248
+ return ay > ax && (v = HALF_PI - v), (x < 0 || Object.is(x, -0)) && (v = Math.PI - v), y < 0 || Object.is(y, -0) ? -v : v;
249
+ }
250
+ function atan2(y, x) {
251
+ return fround(atan2Wide(fround(y), fround(x)));
252
+ }
253
+ function atan(x) {
254
+ return fround(atan2Wide(fround(x), 1));
255
+ }
256
+ function asin(xIn) {
257
+ let x = fround(xIn);
258
+ return Math.abs(x) > 1 ? Number.NaN : fround(atan2Wide(x, Math.sqrt((1 - x) * (1 + x))));
259
+ }
260
+ function acos(xIn) {
261
+ let x = fround(xIn);
262
+ return Math.abs(x) > 1 ? Number.NaN : fround(atan2Wide(Math.sqrt((1 - x) * (1 + x)), x));
263
+ }
264
+ var FMATH_CONSTANTS = {
265
+ EXP2_HI,
266
+ EXP2_LO,
267
+ EXP2_POLY,
268
+ EXP_POLY,
269
+ INV_LN2_N,
270
+ SHIFT,
271
+ SHIFT_SCALED,
272
+ EXP_LOW: (-104),
273
+ EXP_HIGH: (89),
274
+ EXP2_LOW: (-151),
275
+ EXP2_HIGH: (129),
276
+ INV_C,
277
+ LOG_C,
278
+ LOG2_C,
279
+ LN2,
280
+ LOG_POLY,
281
+ LOG2_POLY,
282
+ POW_POLY,
283
+ POW_SIGN_BIAS: (65536),
284
+ POW_OVERFLOW,
285
+ POW_SATURATE,
286
+ POW_UNDERFLOW: (-150),
287
+ LOG_OFF: (1060306944),
288
+ SUBNORMAL_SCALE: (8388608),
289
+ SUBNORMAL_BIAS,
290
+ MIN_NORMAL: (8388608),
291
+ INFINITY_BITS: (2139095040),
292
+ ONE_BITS: (1065353216),
293
+ F32_MAX,
294
+ HPI_INV,
295
+ HPI,
296
+ PI63,
297
+ COS_C1,
298
+ COS_C2,
299
+ COS_C3,
300
+ COS_C4,
301
+ SIN_S1,
302
+ SIN_S2,
303
+ SIN_S3,
304
+ LARGE_TOP: (1071),
305
+ QUADRANT_ROUND: (8388608),
306
+ INV_PIO4,
307
+ QUARTER_PI,
308
+ HALF_PI,
309
+ TAN_PI_8,
310
+ ATAN_COEFFS
311
+ };
312
+
313
+ // src/game/kernel/isa.ts
314
+ var isa_exports = {};
315
+ __export(isa_exports, {
316
+ ACCESS_ARRAY: () => (65536),
317
+ ACCESS_HIGH: () => (4096),
318
+ ACCESS_INDEXED: () => ACCESS_INDEXED,
319
+ ACCESS_NEIGHBOUR: () => (1024),
320
+ ACCESS_POOL: () => ACCESS_POOL,
321
+ ACCESS_READ: () => (256),
322
+ ACCESS_SCRATCH: () => (2048),
323
+ ACCESS_SPAWN: () => (8192),
324
+ ACCESS_TABLE: () => ACCESS_TABLE,
325
+ ACCESS_TABLE_MASK: () => (15),
326
+ ACCESS_TABLE_SHIFT: () => (19),
327
+ ACCESS_WRITE: () => (512),
328
+ ARG_FMAX: () => (1),
329
+ ARG_FMIN: () => (0),
330
+ ARG_IMAX: () => (3),
331
+ ARG_IMIN: () => (2),
332
+ ARG_UMAX: () => (5),
333
+ ARG_UMIN: () => (4),
334
+ ATTACH_AUDIO: () => (5),
335
+ ATTACH_CHEMISTRY_GRID: () => (7),
336
+ ATTACH_SPAWN_TABLE: () => (9),
337
+ ATTACH_UI: () => (4),
338
+ ATTACH_VOXELS: () => (6),
339
+ CELL_WRAP: () => CELL_WRAP,
340
+ CHANNEL_WORDS: () => (4),
341
+ CROSS_BLOCK: () => (256),
342
+ CROSS_OP: () => CROSS_OP,
343
+ CURVE_BEZIER: () => (3),
344
+ CURVE_HEADER: () => (4),
345
+ CURVE_HERMITE: () => (2),
346
+ CURVE_LINEAR: () => (1),
347
+ CURVE_MAX_CHANNELS: () => (4),
348
+ CURVE_MAX_KEYS: () => (256),
349
+ CURVE_STEP: () => (0),
350
+ DATA_FLOAD: () => (12290),
351
+ DATA_KEYOF: () => (12288),
352
+ DATA_LIST: () => (12304),
353
+ DATA_LIST_MAX: () => (4096),
354
+ DATA_PGET: () => (12305),
355
+ DATA_PICK: () => (12336),
356
+ DATA_PSET: () => (12306),
357
+ DATA_REPORT_HEADER: () => (70),
358
+ DATA_ROWOF: () => (12289),
359
+ DATA_ROWS: () => (12291),
360
+ DATA_SEND: () => (12320),
361
+ DATA_TABLES: () => (16),
362
+ DATA_TALLIES: () => (64),
363
+ DATA_TALLY: () => (12307),
364
+ DEFAULT_EVENT_CAPACITY: () => (4096),
365
+ DST_BITS: () => (8),
366
+ EVENT_HEADER_WORDS: () => (2),
367
+ EVENT_STRIDE: () => (10),
368
+ FIELD_MAX: () => (64),
369
+ FLAG_GROUPS: () => (2),
370
+ FLAG_NEIGHBOURS: () => (1),
371
+ GRAPH_EMPTY: () => (4294967295),
372
+ GROUP_DEFAULT: () => (1),
373
+ GROUP_WORDS: () => (4),
374
+ H_ARGS: () => (5),
375
+ H_CONSTANTS: () => (6),
376
+ H_EVENTS: () => (14),
377
+ H_FLAGS: () => (2),
378
+ H_GROUPS: () => (9),
379
+ H_INSTRUCTIONS: () => (8),
380
+ H_LOOPS: () => (7),
381
+ H_MAGIC: () => (0),
382
+ H_POSITION_X: () => (11),
383
+ H_POSITION_Y: () => (12),
384
+ H_POSITION_Z: () => (13),
385
+ H_REGISTERS: () => (3),
386
+ H_SLOTS: () => (4),
387
+ H_STATE: () => (10),
388
+ H_VERSION: () => (1),
389
+ INSTRUCTION_WORDS: () => (4),
390
+ KERNEL_CALLS_FEATURE: () => KERNEL_CALLS_FEATURE,
391
+ KERNEL_CALL_EXPORT_NAMES: () => KERNEL_CALL_EXPORT_NAMES,
392
+ KERNEL_DATA_EXPORT_NAMES: () => KERNEL_DATA_EXPORT_NAMES,
393
+ KERNEL_EXPORT_NAMES: () => KERNEL_EXPORT_NAMES,
394
+ KERNEL_EXTENDED_FEATURE: () => KERNEL_EXTENDED_FEATURE,
395
+ KERNEL_FEATURE: () => KERNEL_FEATURE,
396
+ KERNEL_GATHER_FEATURE: () => KERNEL_GATHER_FEATURE,
397
+ KERNEL_ISA_BASE: () => (1),
398
+ KERNEL_ISA_CALLS: () => (2),
399
+ KERNEL_ISA_EXTENDED: () => (4),
400
+ KERNEL_ISA_VERSION: () => (4),
401
+ KERNEL_ISA_WRITES: () => (3),
402
+ KERNEL_LIBRARY_PATH: () => KERNEL_LIBRARY_PATH,
403
+ KERNEL_MLP_FEATURE: () => KERNEL_MLP_FEATURE,
404
+ KERNEL_MOE_FEATURE: () => KERNEL_MOE_FEATURE,
405
+ KERNEL_QUERY_RANK_FEATURE: () => KERNEL_QUERY_RANK_FEATURE,
406
+ KERNEL_SCAN_FEATURE: () => KERNEL_SCAN_FEATURE,
407
+ KERNEL_SIMD_FEATURE: () => KERNEL_SIMD_FEATURE,
408
+ KERNEL_STAGE_EXPORT_NAMES: () => KERNEL_STAGE_EXPORT_NAMES,
409
+ KERNEL_WRITES_FEATURE: () => KERNEL_WRITES_FEATURE,
410
+ KERNEL_WRITE_EXPORT_NAMES: () => KERNEL_WRITE_EXPORT_NAMES,
411
+ KIND_BOOL: () => (3),
412
+ KIND_F32: () => (0),
413
+ KIND_I32: () => (1),
414
+ KIND_U32: () => (2),
415
+ LIBRARY_HEADER_WORDS: () => (4),
416
+ LIBRARY_MAGIC: () => (827083587),
417
+ LOOKUP_OP: () => LOOKUP_OP,
418
+ LOOP_COUNT_F32: () => (1),
419
+ LUT1_HEADER: () => (4),
420
+ LUT1_MAX: () => (65536),
421
+ LUT2_HEADER: () => (8),
422
+ LUT2_MAX: () => LUT2_MAX,
423
+ LUT_LINEAR: () => (1),
424
+ LUT_WRAP: () => (2),
425
+ MAX_CHANNELS: () => (64),
426
+ MAX_EVENT_WORDS: () => (8),
427
+ MAX_GROUPS: () => (256),
428
+ MAX_REGISTERS: () => (4096),
429
+ MAX_SLOTS: () => (256),
430
+ MAX_SPAWN_FIELDS: () => (64),
431
+ MAX_TRIPS: () => (65536),
432
+ MAX_UNIFORMS: () => (4096),
433
+ MLP_MAX_OUTPUTS: () => (32),
434
+ MLP_MAX_WIDTH: () => (128),
435
+ NONE: () => (4294967295),
436
+ Op: () => Op,
437
+ PICK_F32: () => (1),
438
+ PICK_U32: () => (0),
439
+ PROGRAM_HEADER_WORDS: () => (16),
440
+ PROGRAM_MAGIC: () => (827345731),
441
+ QFILTER_ANY: () => (2),
442
+ QFILTER_EQUAL: () => (1),
443
+ QFILTER_NONE: () => (3),
444
+ QUERY_BOX: () => (2),
445
+ QUERY_CONE: () => (1),
446
+ QUERY_FILTERED: () => (4),
447
+ QUERY_SEGMENT: () => (3),
448
+ QUERY_SHAPE: () => (3),
449
+ QUERY_SPHERE: () => (0),
450
+ RECUR: () => RECUR,
451
+ RECUR_EXCLUSIVE: () => (32),
452
+ RECUR_KINDS: () => (17),
453
+ RECUR_KIND_MASK: () => (31),
454
+ RECUR_WIDE: () => (64),
455
+ REDUCE_FMAX: () => (3),
456
+ REDUCE_FMIN: () => (2),
457
+ REDUCE_FSUM: () => (0),
458
+ REDUCE_IMAX: () => (5),
459
+ REDUCE_IMIN: () => (4),
460
+ REDUCE_ISUM: () => (1),
461
+ REDUCE_UMAX: () => (7),
462
+ REDUCE_UMIN: () => (6),
463
+ RING_COUNT: () => (0),
464
+ RING_DROPPED: () => (1),
465
+ RING_HEADER_WORDS: () => (2),
466
+ SAMPLER_WORDS: () => (8),
467
+ SAMPLE_BILINEAR: () => (1),
468
+ SAMPLE_NEAREST: () => (0),
469
+ SAMPLE_NORMAL_X: () => (2),
470
+ SAMPLE_NORMAL_Y: () => (3),
471
+ SAMPLE_NORMAL_Z: () => (4),
472
+ SCAN_F_EXCLUSIVE: () => (1),
473
+ SCAN_F_INCLUSIVE: () => (0),
474
+ SCAN_I_EXCLUSIVE: () => (3),
475
+ SCAN_I_INCLUSIVE: () => (2),
476
+ SCATTER_FADD: () => (0),
477
+ SCATTER_IADD: () => (1),
478
+ SEND: () => SEND,
479
+ SERVICE_ANCHOR: () => (16),
480
+ SERVICE_BITS: () => (8),
481
+ SERVICE_CHEMISTRY: () => (21),
482
+ SERVICE_CLIP_WEIGHT: () => (11),
483
+ SERVICE_FLOW: () => (5),
484
+ SERVICE_FORCE: () => (6),
485
+ SERVICE_GROUND_HEIGHT: () => (3),
486
+ SERVICE_IK_TARGET: () => (13),
487
+ SERVICE_IMPULSE: () => (7),
488
+ SERVICE_INSTANCE: () => (14),
489
+ SERVICE_INSTANCE_COLOUR: () => (15),
490
+ SERVICE_KILL: () => (23),
491
+ SERVICE_LINE_OF_SIGHT: () => (2),
492
+ SERVICE_MASK: () => (255),
493
+ SERVICE_OVERLAP: () => (9),
494
+ SERVICE_PATH: () => (4),
495
+ SERVICE_PICK: () => (18),
496
+ SERVICE_PLAY_CLIP: () => (12),
497
+ SERVICE_RAYCAST: () => (1),
498
+ SERVICE_SIGNATURES: () => SERVICE_SIGNATURES,
499
+ SERVICE_SOUND: () => (17),
500
+ SERVICE_SPAWN: () => (22),
501
+ SERVICE_SWEEP: () => (10),
502
+ SERVICE_VELOCITY: () => (8),
503
+ SERVICE_VOXEL_GET: () => (19),
504
+ SERVICE_VOXEL_SET: () => (20),
505
+ SIMD_CROSS: () => (28948),
506
+ SIMD_CROSS_WIDTH: () => (3),
507
+ SIMD_DOT: () => (28944),
508
+ SIMD_DOT_F32: () => (0),
509
+ SIMD_DOT_I32: () => (1),
510
+ SIMD_EXTRACT: () => (28929),
511
+ SIMD_LANE_BITS: () => (3),
512
+ SIMD_LANE_MASK: () => SIMD_LANE_MASK,
513
+ SIMD_LENGTH: () => (28946),
514
+ SIMD_MAP: () => (28672),
515
+ SIMD_MAP_OPS: () => (256),
516
+ SIMD_MAX_WIDTH: () => (4),
517
+ SIMD_MIN_WIDTH: () => (2),
518
+ SIMD_NORMALIZE: () => (28947),
519
+ SIMD_PACK: () => (28931),
520
+ SIMD_REDUCE: () => (28945),
521
+ SIMD_REPLACE: () => (28930),
522
+ SIMD_SCALAR_A: () => (8),
523
+ SIMD_SCALAR_B: () => (16),
524
+ SIMD_SCALAR_C: () => (32),
525
+ SIMD_SHUFFLE: () => (28928),
526
+ SIMD_WIDTH_MASK: () => (7),
527
+ SORT_DESCENDING: () => (4),
528
+ SORT_KEY_F32: () => (2),
529
+ SORT_KEY_I32: () => (1),
530
+ SORT_KEY_MASK: () => (3),
531
+ SORT_KEY_U32: () => (0),
532
+ SORT_RADIX_BITS: () => (8),
533
+ SPAWN_STATS_WORDS: () => (3),
534
+ STATUS_FAILURE: () => (0),
535
+ STATUS_RUNNING: () => (2),
536
+ STATUS_SUCCESS: () => (1),
537
+ UNIFORM: () => (2147483648),
538
+ XOP: () => (175),
539
+ XOP_COMPONENTS_EDGES: () => (20483),
540
+ XOP_COMPONENTS_GRID: () => (20480),
541
+ XOP_DEDUP: () => (4),
542
+ XOP_FIELD: () => (17),
543
+ XOP_GATHER: () => (16),
544
+ XOP_GROUP: () => (3),
545
+ XOP_MAX: () => (65535),
546
+ XOP_MLP_IN: () => (24576),
547
+ XOP_MLP_MOE: () => (24579),
548
+ XOP_MLP_OUT: () => (24578),
549
+ XOP_MLP_RUN: () => (24577),
550
+ XOP_PROPAGATE_GRID: () => (20482),
551
+ XOP_QFILTER: () => (4098),
552
+ XOP_QRANK: () => (4100),
553
+ XOP_QSHAPE: () => (4097),
554
+ XOP_QSTOP: () => (4099),
555
+ XOP_QUERY: () => (4096),
556
+ XOP_RANGE: () => XOP_RANGE,
557
+ XOP_RANGE_SHIFT: () => (12),
558
+ XOP_REACH_GRID: () => (20481),
559
+ XOP_RECUR: () => (32),
560
+ XOP_RECUR_IN: () => (33),
561
+ XOP_SORT: () => (1),
562
+ XOP_TOPK: () => (2),
563
+ crossRow: () => crossRow,
564
+ curveWords: () => curveWords,
565
+ deferredService: () => deferredService,
566
+ lookupOp: () => lookupOp,
567
+ operandCount: () => operandCount,
568
+ recurCoefficient: () => recurCoefficient,
569
+ recurFloatOutput: () => recurFloatOutput,
570
+ recurStateWords: () => recurStateWords,
571
+ recurSub: () => recurSub,
572
+ serviceOf: () => serviceOf,
573
+ serviceVersion: () => serviceVersion,
574
+ sortKey: () => sortKey,
575
+ stageEndingOp: () => stageEndingOp,
576
+ stageEnds: () => stageEnds,
577
+ xopRange: () => xopRange
578
+ });
579
+ var KERNEL_ISA_VERSION = 4, KERNEL_ISA_BASE = 1, KERNEL_ISA_CALLS = 2, KERNEL_ISA_WRITES = 3, KERNEL_FEATURE = "kernel_isa_1", KERNEL_CALLS_FEATURE = "kernel_isa_2", KERNEL_WRITES_FEATURE = "kernel_isa_3", KERNEL_ISA_EXTENDED = 4, KERNEL_EXTENDED_FEATURE = "kernel_isa_4", PROGRAM_MAGIC = 827345731, LIBRARY_MAGIC = 827083587, PROGRAM_HEADER_WORDS = 16, LIBRARY_HEADER_WORDS = 4, INSTRUCTION_WORDS = 4, GROUP_WORDS = 4, NONE = 4294967295, UNIFORM = 2147483648, DST_BITS = 8, MAX_REGISTERS = 4096, MAX_SLOTS = 256, MAX_UNIFORMS = 4096, MAX_GROUPS = 256, MAX_TRIPS = 65536, KERNEL_LIBRARY_PATH = "kernels.ckl", H_MAGIC = 0, H_VERSION = 1, H_FLAGS = 2, H_REGISTERS = 3, H_SLOTS = 4, H_ARGS = 5, H_CONSTANTS = 6, H_LOOPS = 7, H_INSTRUCTIONS = 8, H_GROUPS = 9, H_STATE = 10, H_POSITION_X = 11, H_POSITION_Y = 12, H_POSITION_Z = 13, H_EVENTS = 14, CHANNEL_WORDS = 4, MAX_CHANNELS = 64, MAX_EVENT_WORDS = 8, EVENT_HEADER_WORDS = 2, EVENT_STRIDE = 10, FLAG_NEIGHBOURS = 1, FLAG_GROUPS = 2, KIND_F32 = 0, KIND_I32 = 1, KIND_U32 = 2, KIND_BOOL = 3, ACCESS_READ = 256, ACCESS_WRITE = 512, ACCESS_NEIGHBOUR = 1024, ACCESS_SCRATCH = 2048, ACCESS_HIGH = 4096, ACCESS_SPAWN = 8192, SERVICE_RAYCAST = 1, SERVICE_LINE_OF_SIGHT = 2, SERVICE_GROUND_HEIGHT = 3, SERVICE_PATH = 4, SERVICE_FLOW = 5, SERVICE_FORCE = 6, SERVICE_IMPULSE = 7, SERVICE_VELOCITY = 8, SERVICE_OVERLAP = 9, SERVICE_SWEEP = 10, SERVICE_CLIP_WEIGHT = 11, SERVICE_PLAY_CLIP = 12, SERVICE_IK_TARGET = 13, SERVICE_INSTANCE = 14, SERVICE_INSTANCE_COLOUR = 15, SERVICE_ANCHOR = 16, SERVICE_SOUND = 17, SERVICE_PICK = 18, SERVICE_VOXEL_GET = 19, SERVICE_VOXEL_SET = 20, SERVICE_CHEMISTRY = 21, SERVICE_SPAWN = 22, SERVICE_KILL = 23, SERVICE_BITS = 8, SERVICE_MASK = 255, MAX_SPAWN_FIELDS = 64;
580
+ function serviceOf(dst) {
581
+ return dst & 255;
582
+ }
583
+ function operandCount(dst) {
584
+ return dst >>> 8;
585
+ }
586
+ function serviceVersion(service) {
587
+ return service >= 6 ? 3 : 2;
588
+ }
589
+ function deferredService(service) {
590
+ return service === 22 || service === 23;
591
+ }
592
+ var PHYSICS_WRITE = { args: [2, 0, 0, 0], results: [] }, SERVICE_SIGNATURES = {
593
+ 1: { args: [0, 0, 0, 0, 0, 0, 0], results: [0, 0, 0, 0, 2, 3] },
594
+ 2: { args: [0, 0, 0, 0, 0, 0], results: [3] },
595
+ 3: { args: [0, 0], results: [0] },
596
+ 4: { args: [0, 0, 0, 0, 0, 0], results: [0, 0, 0, 2] },
597
+ 5: { args: [0, 0, 0], results: [0, 0, 0, 0, 2] },
598
+ 6: PHYSICS_WRITE,
599
+ 7: PHYSICS_WRITE,
600
+ 8: PHYSICS_WRITE,
601
+ 9: { args: [0, 0, 0, 0], results: [2, 2] },
602
+ 10: { args: [0, 0, 0, 0, 0, 0, 0, 0, 2], results: [0, 0, 0, 0, 2, 3] },
603
+ 11: { args: [2, 0], results: [] },
604
+ 12: { args: [2, 2, 3, 0, 0], results: [2] },
605
+ 13: { args: [2, 0, 0, 0, 0], results: [] },
606
+ 14: { args: [2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], results: [] },
607
+ 15: { args: [2, 2, 0, 0, 0, 0], results: [] },
608
+ 16: { args: [2, 0, 0, 0], results: [] },
609
+ 17: { args: [2, 2, 0, 0, 0, 0], results: [] },
610
+ 18: { args: [0, 0, 0, 0, 0, 0, 0], results: [0, 2, 2, 3] },
611
+ 19: { args: [0, 0, 0], results: [2, 3] },
612
+ 20: { args: [0, 0, 0, 2], results: [] },
613
+ 21: { args: [2, 2, 2], results: [2, 0, 2] },
614
+ 23: { args: [], results: [] }
615
+ }, ATTACH_UI = 4, ATTACH_AUDIO = 5, ATTACH_VOXELS = 6, ATTACH_CHEMISTRY_GRID = 7, ATTACH_SPAWN_TABLE = 9, SPAWN_STATS_WORDS = 3, GROUP_DEFAULT = 1, LOOP_COUNT_F32 = 1, Op = {
616
+ NOP: 0,
617
+ MOV: 1,
618
+ LOAD: 2,
619
+ STORE: 3,
620
+ ROW: 4,
621
+ SEL: 5,
622
+ JNONE: 6,
623
+ LOOP_INIT: 8,
624
+ LOOP_NEXT: 9,
625
+ NEIGHBOURS: 11,
626
+ NLOAD: 12,
627
+ OUTER: 13,
628
+ NROW: 14,
629
+ ACC_FADD: 15,
630
+ ACC_FMIN: 16,
631
+ ACC_FMAX: 17,
632
+ ACC_IADD: 18,
633
+ EXT: 19,
634
+ FADD: 20,
635
+ FSUB: 21,
636
+ FMUL: 22,
637
+ FDIV: 23,
638
+ FMIN: 24,
639
+ FMAX: 25,
640
+ FMOD: 26,
641
+ FPOW: 27,
642
+ FATAN2: 28,
643
+ FMULADD: 29,
644
+ FMULSUB: 30,
645
+ FSUBMUL: 31,
646
+ FADDMUL: 32,
647
+ FCLAMP: 33,
648
+ FLERP: 34,
649
+ FLOG2: 39,
650
+ FNEG: 40,
651
+ FABS: 41,
652
+ FSQRT: 42,
653
+ FFLOOR: 43,
654
+ FCEIL: 44,
655
+ FROUND: 45,
656
+ FTRUNC: 46,
657
+ FSIGN: 47,
658
+ FSIN: 48,
659
+ FCOS: 49,
660
+ FTAN: 50,
661
+ FASIN: 51,
662
+ FACOS: 52,
663
+ FATAN: 53,
664
+ FEXP: 54,
665
+ FLOG: 55,
666
+ FLEN2: 56,
667
+ FLEN3: 57,
668
+ FDOT2: 58,
669
+ FDOT3: 59,
670
+ FLT: 60,
671
+ FLE: 61,
672
+ FEQ: 62,
673
+ FNE: 63,
674
+ IADD: 70,
675
+ ISUB: 71,
676
+ IMUL: 72,
677
+ IREM: 73,
678
+ UREM: 74,
679
+ IAND: 75,
680
+ IOR: 76,
681
+ IXOR: 77,
682
+ ISHL: 78,
683
+ ISHR: 79,
684
+ IUSHR: 80,
685
+ IMIN: 81,
686
+ IMAX: 82,
687
+ UMIN: 83,
688
+ UMAX: 84,
689
+ INEG: 85,
690
+ IABS: 86,
691
+ INOT: 87,
692
+ ILT: 90,
693
+ ILE: 91,
694
+ IEQ: 92,
695
+ INE: 93,
696
+ ULT: 94,
697
+ ULE: 95,
698
+ ITOF: 100,
699
+ UTOF: 101,
700
+ FTOI: 102,
701
+ BTOF: 103,
702
+ BTOI: 104,
703
+ FTOB: 105,
704
+ ITOB: 106,
705
+ MAND: 110,
706
+ MOR: 111,
707
+ MANDN: 112,
708
+ MNOT: 113,
709
+ NOISE2: 120,
710
+ NOISE3: 121,
711
+ HASH: 122,
712
+ RAND: 123,
713
+ EMIT: 124,
714
+ CALL: 125,
715
+ UADDC: 126,
716
+ USUBB: 127,
717
+ UMULHI: 128
718
+ }, STATUS_FAILURE = 0, STATUS_SUCCESS = 1, STATUS_RUNNING = 2, KERNEL_EXPORT_NAMES = [
719
+ "engine_kernel_isa",
720
+ "engine_kernel_load",
721
+ "engine_kernel_unload",
722
+ "engine_kernel_bind",
723
+ "engine_kernel_unbind",
724
+ "engine_kernel_run",
725
+ "engine_kernel_events",
726
+ "engine_kernel_clear_events"
727
+ ], KERNEL_CALL_EXPORT_NAMES = ["engine_kernel_attach"], KERNEL_WRITE_EXPORT_NAMES = ["engine_kernel_attach_handle", "engine_kernel_spawns"], KERNEL_STAGE_EXPORT_NAMES = [
728
+ "engine_kernel_stage_begin",
729
+ "engine_kernel_stage_uniforms",
730
+ "engine_kernel_stage_column",
731
+ "engine_kernel_stage_storage",
732
+ "engine_kernel_stage_records",
733
+ "engine_kernel_stage_call",
734
+ "engine_kernel_stage_finish",
735
+ "engine_kernel_stage_end"
736
+ ], KERNEL_DATA_EXPORT_NAMES = ["engine_kernel_bind_table", "engine_kernel_bind_pool", "engine_kernel_data"], DATA_REPORT_HEADER = 70, RING_HEADER_WORDS = 2, RING_COUNT = 0, RING_DROPPED = 1, DEFAULT_EVENT_CAPACITY = 4096, CROSS_OP = {
737
+ REDUCE: 160,
738
+ ARG: 161,
739
+ HIST: 162,
740
+ SCATTER: 163,
741
+ SCAN: 164,
742
+ COMPACT: 165
743
+ }, ACCESS_ARRAY = 65536, CROSS_BLOCK = 256, REDUCE_FSUM = 0, REDUCE_ISUM = 1, REDUCE_FMIN = 2, REDUCE_FMAX = 3, REDUCE_IMIN = 4, REDUCE_IMAX = 5, REDUCE_UMIN = 6, REDUCE_UMAX = 7, ARG_FMIN = 0, ARG_FMAX = 1, ARG_IMIN = 2, ARG_IMAX = 3, ARG_UMIN = 4, ARG_UMAX = 5, SCATTER_FADD = 0, SCATTER_IADD = 1, SCAN_F_INCLUSIVE = 0, SCAN_F_EXCLUSIVE = 1, SCAN_I_INCLUSIVE = 2, SCAN_I_EXCLUSIVE = 3;
744
+ function crossRow(op) {
745
+ return op >= CROSS_OP.REDUCE && op <= CROSS_OP.COMPACT;
746
+ }
747
+ var LOOKUP_OP = {
748
+ CURVE: 176,
749
+ LUT1: 177,
750
+ LUT2: 178,
751
+ SAMPLE: 179,
752
+ CELL: 180
753
+ }, ACCESS_INDEXED = 1 << 18, CURVE_STEP = 0, CURVE_LINEAR = 1, CURVE_HERMITE = 2, CURVE_BEZIER = 3, CURVE_HEADER = 4, CURVE_MAX_KEYS = 256, CURVE_MAX_CHANNELS = 4, LUT1_HEADER = 4, LUT1_MAX = 65536, LUT2_HEADER = 8, LUT2_MAX = 1 << 20, LUT_LINEAR = 1, LUT_WRAP = 2, SAMPLER_WORDS = 8, SAMPLE_NEAREST = 0, SAMPLE_BILINEAR = 1, SAMPLE_NORMAL_X = 2, SAMPLE_NORMAL_Y = 3, SAMPLE_NORMAL_Z = 4, CELL_WRAP = 1 << 24;
754
+ function lookupOp(op) {
755
+ return op >= LOOKUP_OP.CURVE && op <= LOOKUP_OP.CELL;
756
+ }
757
+ var XOP_QUERY = 4096, XOP_QSHAPE = 4097, XOP_QFILTER = 4098, XOP_QSTOP = 4099, XOP_QRANK = 4100, KERNEL_QUERY_RANK_FEATURE = "kernel_query_rank_1", QUERY_SPHERE = 0, QUERY_CONE = 1, QUERY_BOX = 2, QUERY_SEGMENT = 3, QUERY_SHAPE = 3, QUERY_FILTERED = 4, QFILTER_EQUAL = 1, QFILTER_ANY = 2, QFILTER_NONE = 3;
758
+ function curveWords(kind, keys, channels) {
759
+ let per = kind === (2) ? 2 : kind === (3) ? 3 : 1;
760
+ return (4) + keys + keys * channels * per;
761
+ }
762
+ var XOP = 175, XOP_MAX = 65535, XOP_RANGE_SHIFT = 12, XOP_RANGE = { CROSS: 0, SAMPLING: 1, NARROW: 2, DATA: 3, STDLIB: 4, SYSTEMS: 5, NEURAL: 6, SIMD: 7 }, XOP_MLP_IN = 24576, XOP_MLP_RUN = 24577, XOP_MLP_OUT = 24578, XOP_MLP_MOE = 24579, KERNEL_MOE_FEATURE = "kernel_moe_1", MLP_MAX_WIDTH = 128, MLP_MAX_OUTPUTS = 32, SIMD_MAP = 28672, SIMD_MAP_OPS = 256, SIMD_SHUFFLE = 28928, SIMD_EXTRACT = 28929, SIMD_REPLACE = 28930, SIMD_PACK = 28931, SIMD_DOT = 28944, SIMD_REDUCE = 28945, SIMD_LENGTH = 28946, SIMD_NORMALIZE = 28947, SIMD_CROSS = 28948, SIMD_MIN_WIDTH = 2, SIMD_MAX_WIDTH = 4, SIMD_WIDTH_MASK = 7, SIMD_SCALAR_A = 8, SIMD_SCALAR_B = 16, SIMD_SCALAR_C = 32, SIMD_LANE_BITS = 3, SIMD_LANE_MASK = (1 << (3)) - 1, SIMD_DOT_F32 = 0, SIMD_DOT_I32 = 1, SIMD_CROSS_WIDTH = 3, KERNEL_SIMD_FEATURE = "kernel_simd_1";
763
+ function xopRange(sub) {
764
+ return sub >>> (12);
765
+ }
766
+ var ACCESS_TABLE_SHIFT = 19, ACCESS_TABLE_MASK = 15, ACCESS_TABLE = (15) << (19), ACCESS_POOL = 1 << 23, DATA_TABLES = 16, DATA_KEYOF = 12288, DATA_ROWOF = 12289, DATA_FLOAD = 12290, DATA_ROWS = 12291, DATA_LIST = 12304, DATA_PGET = 12305, DATA_PSET = 12306, DATA_TALLY = 12307, DATA_SEND = 12320, DATA_PICK = 12336, DATA_LIST_MAX = 4096, DATA_TALLIES = 64, SEND = { SET: 0, FADD: 1, FMUL: 2, FMIN: 3, FMAX: 4, IADD: 5, IMIN: 6, IMAX: 7, UMIN: 8, UMAX: 9, OR: 10, AND: 11, PUSH: 12 }, PICK_U32 = 0, PICK_F32 = 1, XOP_SORT = 1, XOP_TOPK = 2, XOP_GROUP = 3, XOP_DEDUP = 4, XOP_GATHER = 16, XOP_FIELD = 17, FIELD_MAX = 64, KERNEL_GATHER_FEATURE = "kernel_gather_1", XOP_RECUR = 32, XOP_RECUR_IN = 33, KERNEL_SCAN_FEATURE = "kernel_scan_1", KERNEL_MLP_FEATURE = "kernel_mlp_1", RECUR = {
767
+ LINEAR_F32: 0,
768
+ LINEAR_U32: 1,
769
+ FEEDBACK_F32: 2,
770
+ PHASE_F64: 3,
771
+ ADD_F32: 4,
772
+ MUL_F32: 5,
773
+ MIN_F32: 6,
774
+ MAX_F32: 7,
775
+ ADD_INT: 8,
776
+ MUL_INT: 9,
777
+ MIN_I32: 10,
778
+ MAX_I32: 11,
779
+ MIN_U32: 12,
780
+ MAX_U32: 13,
781
+ AND: 14,
782
+ OR: 15,
783
+ XOR: 16
784
+ }, RECUR_KINDS = 17, RECUR_KIND_MASK = 31, RECUR_EXCLUSIVE = 32, RECUR_WIDE = 64;
785
+ function recurSub(sub) {
786
+ return sub === (32) || sub === (33);
787
+ }
788
+ function recurStateWords(kind) {
789
+ return kind === RECUR.FEEDBACK_F32 || kind === RECUR.PHASE_F64 ? 2 : 1;
790
+ }
791
+ function recurCoefficient(kind) {
792
+ return kind <= RECUR.PHASE_F64;
793
+ }
794
+ function recurFloatOutput(kind) {
795
+ return kind === RECUR.LINEAR_F32 || kind === RECUR.FEEDBACK_F32 || kind === RECUR.PHASE_F64 || kind >= RECUR.ADD_F32 && kind <= RECUR.MAX_F32;
796
+ }
797
+ var XOP_COMPONENTS_GRID = 20480, XOP_REACH_GRID = 20481, XOP_PROPAGATE_GRID = 20482, XOP_COMPONENTS_EDGES = 20483, GRAPH_EMPTY = 4294967295, SORT_KEY_U32 = 0, SORT_KEY_I32 = 1, SORT_KEY_F32 = 2, SORT_KEY_MASK = 3, SORT_DESCENDING = 4, SORT_RADIX_BITS = 8;
798
+ function sortKey(kind, raw) {
799
+ return kind === (1) ? (raw ^ 2147483648) >>> 0 : kind === (2) ? (raw & 2147483648) !== 0 ? ~raw >>> 0 : (raw | 2147483648) >>> 0 : raw >>> 0;
800
+ }
801
+ function stageEnds(sub) {
802
+ switch (xopRange(sub)) {
803
+ case XOP_RANGE.CROSS:
804
+ return sub >= (1) && sub <= (4) || recurSub(sub);
805
+ case XOP_RANGE.SYSTEMS:
806
+ return sub >= (20480) && sub <= (20483);
807
+ default:
808
+ return false;
809
+ }
810
+ }
811
+ function stageEndingOp(op, sub) {
812
+ return op === (175) && stageEnds(sub);
813
+ }
814
+
815
+ // src/game/kernel/fmath64.ts
816
+ var fmath64_exports = {};
817
+ __export(fmath64_exports, {
818
+ acos: () => acos2,
819
+ asin: () => asin2,
820
+ atan: () => atan3,
821
+ atan2: () => atan22,
822
+ cos: () => cos2,
823
+ exp: () => exp3,
824
+ log: () => log3,
825
+ log2: () => log22,
826
+ pow: () => pow2,
827
+ scalbn: () => scalbn,
828
+ sin: () => sin2,
829
+ tan: () => tan2
830
+ });
831
+ var view = new Float64Array(1), words = new Uint32Array(view.buffer);
832
+ function high(x) {
833
+ return view[0] = x, words[1];
834
+ }
835
+ function low(x) {
836
+ return view[0] = x, words[0];
837
+ }
838
+ function fromWords(hi, lo) {
839
+ return words[1] = hi >>> 0, words[0] = lo >>> 0, view[0];
840
+ }
841
+ function withLow(x, lo) {
842
+ return view[0] = x, words[0] = lo >>> 0, view[0];
843
+ }
844
+ function withHigh(x, hi) {
845
+ return view[0] = x, words[1] = hi >>> 0, view[0];
846
+ }
847
+ function twoPow(n) {
848
+ return fromWords(1023 + n << 20, 0);
849
+ }
850
+ function scalbn(x, n) {
851
+ if (n > 1023)
852
+ x *= twoPow(1023), n -= 1023, n > 1023 && (x *= twoPow(1023), n -= 1023, n > 1023 && (n = 1023));
853
+ else if (n < -1022) {
854
+ let mul = twoPow(-1022) * twoPow(53), add = 969;
855
+ x *= mul, n += add, n < -1022 && (x *= mul, n += add, n < -1022 && (n = -1022));
856
+ }
857
+ return x * twoPow(n);
858
+ }
859
+ var S1 = -0.16666666666666632, S2 = 0.00833333333332249, S3 = -1984126982985795e-19, S4 = 27557313707070068e-22, S5 = -2.5050760253406863e-8, S6 = 158969099521155e-24;
860
+ function kSin(x, y, iy) {
861
+ let z = x * x, w = z * z, r = (0.00833333333332249) + z * ((-1984126982985795e-19) + z * (27557313707070068e-22)) + z * w * ((-2.5050760253406863e-8) + z * (158969099521155e-24)), v = z * x;
862
+ return iy === 0 ? x + v * ((-0.16666666666666632) + z * r) : x - (z * (0.5 * y - v * r) - y - v * (-0.16666666666666632));
863
+ }
864
+ var C1 = 0.0416666666666666, C2 = -0.001388888888887411, C3 = 2480158728947673e-20, C4 = -2.7557314351390663e-7, C5 = 2087572321298175e-24, C6 = -11359647557788195e-27;
865
+ function kCos(x, y) {
866
+ let z = x * x, w = z * z, r = z * ((0.0416666666666666) + z * ((-0.001388888888887411) + z * (2480158728947673e-20))) + w * w * ((-2.7557314351390663e-7) + z * ((2087572321298175e-24) + z * (-11359647557788195e-27))), hz = 0.5 * z, v = 1 - hz;
867
+ return v + (1 - v - hz + (z * r - x * y));
868
+ }
869
+ var T = [
870
+ 0.3333333333333341,
871
+ 0.13333333333320124,
872
+ 0.05396825397622605,
873
+ 0.021869488294859542,
874
+ 0.0088632398235993,
875
+ 0.0035920791075913124,
876
+ 0.0014562094543252903,
877
+ 5880412408202641e-19,
878
+ 2464631348184699e-19,
879
+ 7817944429395571e-20,
880
+ 7140724913826082e-20,
881
+ -18558637485527546e-21,
882
+ 2590730518636337e-20
883
+ ], PIO4 = 0.7853981633974483, PIO4_LO = 3061616997868383e-32;
884
+ function zeroLow(x) {
885
+ return withLow(x, 0);
886
+ }
887
+ function kTan(x, y, odd) {
888
+ let hx = high(x), big = (hx & 2147483647) >>> 0 >= 1072010280;
889
+ big && (hx >>> 31 && (x = -x, y = -y), x = (0.7853981633974483) - x + ((3061616997868383e-32) - y), y = 0);
890
+ let z = x * x, w = z * z, r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))), v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))), s = z * x;
891
+ r = y + z * (s * (r + v) + y) + s * T[0];
892
+ let ww = x + r;
893
+ if (big) {
894
+ let sign = hx >>> 31, ss = 1 - 2 * odd, vv = ss - 2 * (x + (r - ww * ww / (ww + ss)));
895
+ return sign !== 0 ? -vv : vv;
896
+ }
897
+ if (odd === 0) return ww;
898
+ let w0 = zeroLow(ww), v0 = r - (w0 - x), a = -1 / ww, a0 = zeroLow(a);
899
+ return a0 + a * (1 + a0 * w0 + a0 * v0);
900
+ }
901
+ var IPIO2 = [
902
+ 10680707,
903
+ 7228996,
904
+ 1387004,
905
+ 2578385,
906
+ 16069853,
907
+ 12639074,
908
+ 9804092,
909
+ 4427841,
910
+ 16666979,
911
+ 11263675,
912
+ 12935607,
913
+ 2387514,
914
+ 4345298,
915
+ 14681673,
916
+ 3074569,
917
+ 13734428,
918
+ 16653803,
919
+ 1880361,
920
+ 10960616,
921
+ 8533493,
922
+ 3062596,
923
+ 8710556,
924
+ 7349940,
925
+ 6258241,
926
+ 3772886,
927
+ 3769171,
928
+ 3798172,
929
+ 8675211,
930
+ 12450088,
931
+ 3874808,
932
+ 9961438,
933
+ 366607,
934
+ 15675153,
935
+ 9132554,
936
+ 7151469,
937
+ 3571407,
938
+ 2607881,
939
+ 12013382,
940
+ 4155038,
941
+ 6285869,
942
+ 7677882,
943
+ 13102053,
944
+ 15825725,
945
+ 473591,
946
+ 9065106,
947
+ 15363067,
948
+ 6271263,
949
+ 9264392,
950
+ 5636912,
951
+ 4652155,
952
+ 7056368,
953
+ 13614112,
954
+ 10155062,
955
+ 1944035,
956
+ 9527646,
957
+ 15080200,
958
+ 6658437,
959
+ 6231200,
960
+ 6832269,
961
+ 16767104,
962
+ 5075751,
963
+ 3212806,
964
+ 1398474,
965
+ 7579849,
966
+ 6349435,
967
+ 12618859
968
+ ], PIO2_PARTS = [
969
+ 1.570796251296997,
970
+ 7549789415861596e-23,
971
+ 5390302529957765e-30,
972
+ 3282003415807913e-37,
973
+ 1270655753080676e-44,
974
+ 12293330898111133e-52,
975
+ 27337005381646456e-60,
976
+ 21674168387780482e-67
977
+ ], X1P24 = 16777216, X1P_24 = 1 / 16777216;
978
+ function remPio2Large(x, y, e0) {
979
+ let nx = x.length, f = new Array(20).fill(0), fq = new Array(20).fill(0), q = new Array(20).fill(0), iq = new Array(20).fill(0), jx = nx - 1, jv = Math.trunc((e0 - 3) / 24);
980
+ jv < 0 && (jv = 0);
981
+ let q0 = e0 - 24 * (jv + 1), j = jv - jx, m = jx + 4;
982
+ for (let i = 0; i <= m; i++)
983
+ f[i] = j < 0 ? 0 : IPIO2[j], j++;
984
+ for (let i = 0; i <= 4; i++) {
985
+ let fw2 = 0;
986
+ for (let k = 0; k <= jx; k++) fw2 += x[k] * f[jx + i - k];
987
+ q[i] = fw2;
988
+ }
989
+ let jz = 4, z = 0, n = 0, ih = 0;
990
+ for (; ; ) {
991
+ let i = 0;
992
+ z = q[jz];
993
+ for (let k = jz; k >= 1; k--) {
994
+ let fw2 = X1P_24 * z | 0;
995
+ iq[i] = z - (16777216) * fw2 | 0, z = q[k - 1] + fw2, i++;
996
+ }
997
+ if (z = scalbn(z, q0), z -= 8 * Math.floor(z * 0.125), n = z | 0, z -= n, ih = 0, q0 > 0 ? (i = iq[jz - 1] >> 24 - q0, n += i, iq[jz - 1] -= i << 24 - q0, ih = iq[jz - 1] >> 23 - q0) : q0 === 0 ? ih = iq[jz - 1] >> 23 : z >= 0.5 && (ih = 2), ih > 0) {
998
+ n += 1;
999
+ let carry = 0;
1000
+ for (let k = 0; k < jz; k++) {
1001
+ let v = iq[k];
1002
+ carry === 0 ? v !== 0 && (carry = 1, iq[k] = 16777216 - v) : iq[k] = 16777215 - v;
1003
+ }
1004
+ q0 > 0 && (q0 === 1 ? iq[jz - 1] &= 8388607 : q0 === 2 && (iq[jz - 1] &= 4194303)), ih === 2 && (z = 1 - z, carry !== 0 && (z -= scalbn(1, q0)));
1005
+ }
1006
+ if (z === 0) {
1007
+ let acc2 = 0;
1008
+ for (let k = jz - 1; k >= 4; k--) acc2 |= iq[k];
1009
+ if (acc2 === 0) {
1010
+ let k = 1;
1011
+ for (; iq[4 - k] === 0; ) k++;
1012
+ for (let t = jz + 1; t <= jz + k; t++) {
1013
+ f[jx + t] = IPIO2[jv + t];
1014
+ let fw2 = 0;
1015
+ for (let s = 0; s <= jx; s++) fw2 += x[s] * f[jx + t - s];
1016
+ q[t] = fw2;
1017
+ }
1018
+ jz += k;
1019
+ continue;
1020
+ }
1021
+ }
1022
+ break;
1023
+ }
1024
+ if (z === 0)
1025
+ for (jz -= 1, q0 -= 24; iq[jz] === 0; )
1026
+ jz -= 1, q0 -= 24;
1027
+ else if (z = scalbn(z, -q0), z >= (16777216)) {
1028
+ let fw2 = X1P_24 * z | 0;
1029
+ iq[jz] = z - (16777216) * fw2 | 0, jz += 1, q0 += 24, iq[jz] = fw2;
1030
+ } else
1031
+ iq[jz] = z | 0;
1032
+ let fw = scalbn(1, q0);
1033
+ for (let i = jz; i >= 0; i--)
1034
+ q[i] = fw * iq[i], fw *= X1P_24;
1035
+ for (let i = jz; i >= 0; i--) {
1036
+ let acc2 = 0;
1037
+ for (let k = 0; k <= 4 && k <= jz - i; k++) acc2 += PIO2_PARTS[k] * q[i + k];
1038
+ fq[jz - i] = acc2;
1039
+ }
1040
+ let acc = 0;
1041
+ for (let i = jz; i >= 0; i--) acc += fq[i];
1042
+ y[0] = ih === 0 ? acc : -acc, acc = fq[0] - acc;
1043
+ for (let i = 1; i <= jz; i++) acc += fq[i];
1044
+ return y[1] = ih === 0 ? acc : -acc, n & 7;
1045
+ }
1046
+ var TO_INT = 1.5 / 2220446049250313e-31, INV_PIO2 = 0.6366197723675814, PIO2_1 = 1.5707963267341256, PIO2_1T = 6077100506506192e-26, PIO2_2 = 6077100506303966e-26, PIO2_2T = 20222662487959506e-37, PIO2_3 = 20222662487111665e-37, PIO2_3T = 84784276603689e-45, reduced = [0, 0];
1047
+ function medium(x, ix) {
1048
+ let fn = x * (0.6366197723675814) + TO_INT - TO_INT, n = fn | 0, r = x - fn * (1.5707963267341256), w = fn * (6077100506506192e-26), y0 = r - w, ex = ix >>> 20, ey = high(y0) >>> 20 & 2047;
1049
+ if (ex - ey > 16) {
1050
+ let t = r;
1051
+ w = fn * (6077100506303966e-26), r = t - w, w = fn * (20222662487959506e-37) - (t - r - w), y0 = r - w, ey = high(y0) >>> 20 & 2047, ex - ey > 49 && (t = r, w = fn * (20222662487111665e-37), r = t - w, w = fn * (84784276603689e-45) - (t - r - w), y0 = r - w);
1052
+ }
1053
+ return reduced[0] = y0, reduced[1] = r - y0 - w, n;
1054
+ }
1055
+ function step(x, sign, k) {
1056
+ if (sign === 0) {
1057
+ let z2 = x - k * (1.5707963267341256), y02 = z2 - k * (6077100506506192e-26);
1058
+ return reduced[0] = y02, reduced[1] = z2 - y02 - k * (6077100506506192e-26), k;
1059
+ }
1060
+ let z = x + k * (1.5707963267341256), y0 = z + k * (6077100506506192e-26);
1061
+ return reduced[0] = y0, reduced[1] = z - y0 + k * (6077100506506192e-26), -k;
1062
+ }
1063
+ function remPio2(x) {
1064
+ let sign = high(x) >>> 31, ix = (high(x) & 2147483647) >>> 0;
1065
+ if (ix <= 1074752122)
1066
+ return (ix & 1048575) === 598523 ? medium(x, ix) : ix <= 1073928572 ? step(x, sign, 1) : step(x, sign, 2);
1067
+ if (ix <= 1075594811)
1068
+ return ix <= 1075183036 ? ix === 1074977148 ? medium(x, ix) : step(x, sign, 3) : ix === 1075388923 ? medium(x, ix) : step(x, sign, 4);
1069
+ if (ix < 1094263291) return medium(x, ix);
1070
+ if (ix >= 2146435072)
1071
+ return reduced[0] = x - x, reduced[1] = reduced[0], 0;
1072
+ let z = fromWords((high(x) & 1048575 | 1046 << 20) >>> 0, low(x)), tx = [0, 0, 0];
1073
+ for (let i2 = 0; i2 < 2; i2++)
1074
+ tx[i2] = z | 0, z = (z - tx[i2]) * (16777216);
1075
+ tx[2] = z;
1076
+ let i = 2;
1077
+ for (; i !== 0 && tx[i] === 0; ) i--;
1078
+ let ty = [0, 0, 0], n = remPio2Large(tx.slice(0, i + 1), ty, (ix >> 20) - 1046);
1079
+ return sign !== 0 ? (reduced[0] = -ty[0], reduced[1] = -ty[1], -n) : (reduced[0] = ty[0], reduced[1] = ty[1], n);
1080
+ }
1081
+ function sin2(x) {
1082
+ let ix = (high(x) & 2147483647) >>> 0;
1083
+ if (ix <= 1072243195)
1084
+ return ix < 1045430272 ? x : kSin(x, 0, 0);
1085
+ if (ix >= 2146435072) return x - x;
1086
+ let n = remPio2(x), [y0, y1] = reduced;
1087
+ switch (n & 3) {
1088
+ case 0:
1089
+ return kSin(y0, y1, 1);
1090
+ case 1:
1091
+ return kCos(y0, y1);
1092
+ case 2:
1093
+ return -kSin(y0, y1, 1);
1094
+ default:
1095
+ return -kCos(y0, y1);
1096
+ }
1097
+ }
1098
+ function cos2(x) {
1099
+ let ix = (high(x) & 2147483647) >>> 0;
1100
+ if (ix <= 1072243195)
1101
+ return ix < 1044816030 && (x | 0) === 0 ? 1 : kCos(x, 0);
1102
+ if (ix >= 2146435072) return x - x;
1103
+ let n = remPio2(x), [y0, y1] = reduced;
1104
+ switch (n & 3) {
1105
+ case 0:
1106
+ return kCos(y0, y1);
1107
+ case 1:
1108
+ return -kSin(y0, y1, 1);
1109
+ case 2:
1110
+ return -kCos(y0, y1);
1111
+ default:
1112
+ return kSin(y0, y1, 1);
1113
+ }
1114
+ }
1115
+ function tan2(x) {
1116
+ let ix = (high(x) & 2147483647) >>> 0;
1117
+ if (ix <= 1072243195)
1118
+ return ix < 1044381696 ? x : kTan(x, 0, 0);
1119
+ if (ix >= 2146435072) return x - x;
1120
+ let n = remPio2(x);
1121
+ return kTan(reduced[0], reduced[1], n & 1);
1122
+ }
1123
+ var ATANHI = [0.4636476090008061, 0.7853981633974483, 0.982793723247329, 1.5707963267948966], ATANLO = [22698777452961687e-33, 3061616997868383e-32, 13903311031230998e-33, 6123233995736766e-32], AT = [
1124
+ 0.3333333333333293,
1125
+ -0.19999999999876483,
1126
+ 0.14285714272503466,
1127
+ -0.11111110405462356,
1128
+ 0.09090887133436507,
1129
+ -0.0769187620504483,
1130
+ 0.06661073137387531,
1131
+ -0.058335701337905735,
1132
+ 0.049768779946159324,
1133
+ -0.036531572744216916,
1134
+ 0.016285820115365782
1135
+ ];
1136
+ function atan3(x) {
1137
+ let ix = high(x), sign = ix >>> 31;
1138
+ if (ix = (ix & 2147483647) >>> 0, ix >= 1141899264) {
1139
+ if (Number.isNaN(x)) return x;
1140
+ let z2 = ATANHI[3] + fromWords(0, 58720256);
1141
+ return sign !== 0 ? -z2 : z2;
1142
+ }
1143
+ let id;
1144
+ if (ix < 1071382528) {
1145
+ if (ix < 1044381696) return x;
1146
+ id = -1;
1147
+ } else
1148
+ x = Math.abs(x), ix < 1072889856 ? ix < 1072037888 ? (x = (2 * x - 1) / (2 + x), id = 0) : (x = (x - 1) / (x + 1), id = 1) : ix < 1073971200 ? (x = (x - 1.5) / (1 + 1.5 * x), id = 2) : (x = -1 / x, id = 3);
1149
+ let z = x * x, w = z * z, s1 = z * (AT[0] + w * (AT[2] + w * (AT[4] + w * (AT[6] + w * (AT[8] + w * AT[10]))))), s2 = w * (AT[1] + w * (AT[3] + w * (AT[5] + w * (AT[7] + w * AT[9]))));
1150
+ if (id < 0) return x - x * (s1 + s2);
1151
+ let r = ATANHI[id] - (x * (s1 + s2) - ATANLO[id] - x);
1152
+ return sign !== 0 ? -r : r;
1153
+ }
1154
+ var PI = 3.141592653589793, PI_LO = 12246467991473532e-32;
1155
+ function atan22(y, x) {
1156
+ if (Number.isNaN(x) || Number.isNaN(y)) return x + y;
1157
+ let ix = high(x), lx = low(x), iy = high(y), ly = low(y);
1158
+ if ((ix - 1072693248 >>> 0 | lx) === 0) return atan3(y);
1159
+ let m = iy >>> 31 & 1 | ix >>> 30 & 2;
1160
+ if (ix = (ix & 2147483647) >>> 0, iy = (iy & 2147483647) >>> 0, (iy | ly) === 0)
1161
+ return m === 0 || m === 1 ? y : m === 2 ? (3.141592653589793) : -(3.141592653589793);
1162
+ if ((ix | lx) === 0) return m & 1 ? -(3.141592653589793) / 2 : (3.141592653589793) / 2;
1163
+ if (ix === 2146435072)
1164
+ return iy === 2146435072 ? m === 0 ? (3.141592653589793) / 4 : m === 1 ? -(3.141592653589793) / 4 : m === 2 ? 3 * (3.141592653589793) / 4 : -3 * (3.141592653589793) / 4 : m === 0 ? 0 : m === 1 ? -0 : m === 2 ? (3.141592653589793) : -(3.141592653589793);
1165
+ if (ix + (64 << 20) >>> 0 < iy || iy === 2146435072) return m & 1 ? -(3.141592653589793) / 2 : (3.141592653589793) / 2;
1166
+ let z = m & 2 && iy + (64 << 20) >>> 0 < ix ? 0 : atan3(Math.abs(y / x));
1167
+ return m === 0 ? z : m === 1 ? -z : m === 2 ? (3.141592653589793) - (z - (12246467991473532e-32)) : z - (12246467991473532e-32) - (3.141592653589793);
1168
+ }
1169
+ var PIO2_HI = 1.5707963267948966, PIO2_LO = 6123233995736766e-32, PS0 = 0.16666666666666666, PS1 = -0.3255658186224009, PS2 = 0.20121253213486293, PS3 = -0.04005553450067941, PS4 = 7915349942898145e-19, PS5 = 3479331075960212e-20, QS1 = -2.403394911734414, QS2 = 2.0209457602335057, QS3 = -0.6882839716054533, QS4 = 0.07703815055590194;
1170
+ function ratio(z) {
1171
+ let p = z * ((0.16666666666666666) + z * ((-0.3255658186224009) + z * ((0.20121253213486293) + z * ((-0.04005553450067941) + z * ((7915349942898145e-19) + z * (3479331075960212e-20)))))), q = 1 + z * ((-2.403394911734414) + z * ((2.0209457602335057) + z * ((-0.6882839716054533) + z * (0.07703815055590194))));
1172
+ return p / q;
1173
+ }
1174
+ function asin2(x) {
1175
+ let hx = high(x), ix = (hx & 2147483647) >>> 0;
1176
+ if (ix >= 1072693248) {
1177
+ let lx = low(x);
1178
+ return (ix - 1072693248 >>> 0 | lx) === 0 ? x * (1.5707963267948966) + fromWords(946864128, 0) : 0 / (x - x);
1179
+ }
1180
+ if (ix < 1071644672)
1181
+ return ix >= 1048576 && ix < 1045430272 ? x : x + x * ratio(x * x);
1182
+ let z = (1 - Math.abs(x)) * 0.5, s = Math.sqrt(z), r = ratio(z), v;
1183
+ if (ix >= 1072640819)
1184
+ v = (1.5707963267948966) - (2 * (s + s * r) - (6123233995736766e-32));
1185
+ else {
1186
+ let f = withLow(s, 0), c = (z - f * f) / (s + f);
1187
+ v = 0.5 * (1.5707963267948966) - (2 * s * r - ((6123233995736766e-32) - 2 * c) - (0.5 * (1.5707963267948966) - 2 * f));
1188
+ }
1189
+ return hx >>> 31 ? -v : v;
1190
+ }
1191
+ function acos2(x) {
1192
+ let x1p120 = fromWords(946864128, 0), hx = high(x), ix = (hx & 2147483647) >>> 0;
1193
+ if (ix >= 1072693248) {
1194
+ let lx = low(x);
1195
+ return (ix - 1072693248 >>> 0 | lx) === 0 ? hx >>> 31 ? 2 * (1.5707963267948966) + x1p120 : 0 : 0 / (x - x);
1196
+ }
1197
+ if (ix < 1071644672)
1198
+ return ix <= 1012924416 ? (1.5707963267948966) + x1p120 : (1.5707963267948966) - (x - ((6123233995736766e-32) - x * ratio(x * x)));
1199
+ if (hx >>> 31) {
1200
+ let z2 = (1 + x) * 0.5, s2 = Math.sqrt(z2), w2 = ratio(z2) * s2 - (6123233995736766e-32);
1201
+ return 2 * ((1.5707963267948966) - (s2 + w2));
1202
+ }
1203
+ let z = (1 - x) * 0.5, s = Math.sqrt(z), df = withLow(s, 0), c = (z - df * df) / (s + df), w = ratio(z) * s + c;
1204
+ return 2 * (df + w);
1205
+ }
1206
+ var LN2HI = 0.6931471803691238, LN2LO = 19082149292705877e-26, INVLN2 = 1.4426950408889634, P1 = 0.16666666666666602, P2 = -0.0027777777777015593, P3 = 6613756321437934e-20, P4 = -16533902205465252e-22, P5 = 41381367970572385e-24;
1207
+ function exp3(x) {
1208
+ let x1p1023 = fromWords(2145386496, 0), hx = high(x), sign = hx >>> 31;
1209
+ if (hx = (hx & 2147483647) >>> 0, hx >= 1082532651) {
1210
+ if (Number.isNaN(x)) return x;
1211
+ if (x > 709.782712893384) return x * x1p1023;
1212
+ if (x < -708.3964185322641 && x < -745.1332191019411) return 0;
1213
+ }
1214
+ let k, hi, lo;
1215
+ if (hx > 1071001154)
1216
+ hx >= 1072734898 ? k = (1.4426950408889634) * x + (sign === 0 ? 0.5 : -0.5) | 0 : k = 1 - sign - sign, hi = x - k * (0.6931471803691238), lo = k * (19082149292705877e-26), x = hi - lo;
1217
+ else if (hx > 1043333120)
1218
+ k = 0, hi = x, lo = 0;
1219
+ else
1220
+ return 1 + x;
1221
+ let xx = x * x, c = x - xx * ((0.16666666666666602) + xx * ((-0.0027777777777015593) + xx * ((6613756321437934e-20) + xx * ((-16533902205465252e-22) + xx * (41381367970572385e-24))))), y = 1 + (x * c / (2 - c) - lo + hi);
1222
+ return k === 0 ? y : scalbn(y, k);
1223
+ }
1224
+ var LG1 = 0.6666666666666735, LG2 = 0.3999999999940942, LG3 = 0.2857142874366239, LG4 = 0.22222198432149784, LG5 = 0.1818357216161805, LG6 = 0.15313837699209373, LG7 = 0.14798198605116586, X1P54 = 18014398509481984;
1225
+ function reduceLog(x) {
1226
+ let hx = high(x), k = 0;
1227
+ if (hx < 1048576 || hx >>> 31) {
1228
+ if (x === 0) return -1 / (x * x);
1229
+ if (hx >>> 31) return (x - x) / 0;
1230
+ k -= 54, x *= (18014398509481984), hx = high(x);
1231
+ } else {
1232
+ if (hx >= 2146435072)
1233
+ return x;
1234
+ if (hx === 1072693248 && low(x) === 0)
1235
+ return 0;
1236
+ }
1237
+ return hx = hx + 614242 >>> 0, k += (hx >>> 20) - 1023, hx = (hx & 1048575) + 1072079006 >>> 0, { f: withHigh(x, hx) - 1, k };
1238
+ }
1239
+ function log3(x) {
1240
+ let red = reduceLog(x);
1241
+ if (typeof red == "number") return red;
1242
+ let { f, k } = red, hfsq = 0.5 * f * f, s = f / (2 + f), z = s * s, w = z * z, t1 = w * ((0.3999999999940942) + w * ((0.22222198432149784) + w * (0.15313837699209373))), r = z * ((0.6666666666666735) + w * ((0.2857142874366239) + w * ((0.1818357216161805) + w * (0.14798198605116586)))) + t1, dk = k;
1243
+ return s * (hfsq + r) + dk * (19082149292705877e-26) - hfsq + f + dk * (0.6931471803691238);
1244
+ }
1245
+ var IVLN2HI = 1.4426950407214463, IVLN2LO = 16751713164886512e-26;
1246
+ function log22(x) {
1247
+ let red = reduceLog(x);
1248
+ if (typeof red == "number") return red;
1249
+ let { f, k } = red, hfsq = 0.5 * f * f, s = f / (2 + f), z = s * s, w = z * z, t1 = w * ((0.3999999999940942) + w * ((0.22222198432149784) + w * (0.15313837699209373))), r = z * ((0.6666666666666735) + w * ((0.2857142874366239) + w * ((0.1818357216161805) + w * (0.14798198605116586)))) + t1, hi = withLow(f - hfsq, 0), lo = f - hi - hfsq + s * (hfsq + r), valHi = hi * (1.4426950407214463), valLo = (lo + hi) * (16751713164886512e-26) + lo * (1.4426950407214463), y = k;
1250
+ return w = y + valHi, valLo += y - w + valHi, valHi = w, valLo + valHi;
1251
+ }
1252
+ var BP = [1, 1.5], DP_H = [0, 0.5849624872207642], DP_L = [0, 1350039202129749e-23], TWO53 = 9007199254740992, HUGE = 1e300, TINY = 1e-300, L1 = 0.5999999999999946, L2 = 0.4285714285785502, L3 = 0.33333332981837743, L4 = 0.272728123808534, L5 = 0.23066074577556175, L6 = 0.20697501780033842, LG2F = 0.6931471805599453, LG2_H = 0.6931471824645996, LG2_L = -1.904654299957768e-9, OVT = 8008566259537294e-32, CP = 0.9617966939259756, CP_H = 0.9617967009544373, CP_L = -7.028461650952758e-9, IVLN2 = 1.4426950408889634, IVLN2_H = 1.4426950216293335, IVLN2_L = 19259629911266175e-24;
1253
+ function pow2(x, y) {
1254
+ let hx = high(x) | 0, lx = low(x), hy = high(y) | 0, ly = low(y), ix = hx & 2147483647, iy = hy & 2147483647;
1255
+ if ((iy | ly) === 0 || hx === 1072693248 && lx === 0) return 1;
1256
+ if (ix > 2146435072 || ix === 2146435072 && lx !== 0 || iy > 2146435072 || iy === 2146435072 && ly !== 0) return x + y;
1257
+ let yisint = 0, k, j;
1258
+ if (hx < 0 && (iy >= 1128267776 ? yisint = 2 : iy >= 1072693248 && (k = (iy >> 20) - 1023, k > 20 ? (j = ly >>> 52 - k | 0, j << 52 - k === (ly | 0) && (yisint = 2 - (j & 1))) : ly === 0 && (j = iy >> 20 - k, j << 20 - k === iy && (yisint = 2 - (j & 1))))), ly === 0) {
1259
+ if (iy === 2146435072)
1260
+ return (ix - 1072693248 | lx) === 0 ? 1 : ix >= 1072693248 ? hy >= 0 ? y : 0 : hy >= 0 ? 0 : -y;
1261
+ if (iy === 1072693248) return hy >= 0 ? x : 1 / x;
1262
+ if (hy === 1073741824) return x * x;
1263
+ if (hy === 1071644672 && hx >= 0) return Math.sqrt(x);
1264
+ }
1265
+ let ax = Math.abs(x);
1266
+ if (lx === 0 && (ix === 2146435072 || ix === 0 || ix === 1072693248)) {
1267
+ let z2 = ax;
1268
+ return hy < 0 && (z2 = 1 / z2), hx < 0 && ((ix - 1072693248 | yisint) === 0 ? z2 = (z2 - z2) / (z2 - z2) : yisint === 1 && (z2 = -z2)), z2;
1269
+ }
1270
+ let s = 1;
1271
+ if (hx < 0) {
1272
+ if (yisint === 0) return (x - x) / (x - x);
1273
+ yisint === 1 && (s = -1);
1274
+ }
1275
+ let t1, t2;
1276
+ if (iy > 1105199104) {
1277
+ if (iy > 1139802112) {
1278
+ if (ix <= 1072693247) return hy < 0 ? (1e300) * (1e300) : (1e-300) * (1e-300);
1279
+ if (ix >= 1072693248) return hy > 0 ? (1e300) * (1e300) : (1e-300) * (1e-300);
1280
+ }
1281
+ if (ix < 1072693247) return hy < 0 ? s * (1e300) * (1e300) : s * (1e-300) * (1e-300);
1282
+ if (ix > 1072693248) return hy > 0 ? s * (1e300) * (1e300) : s * (1e-300) * (1e-300);
1283
+ let t3 = ax - 1, w2 = t3 * t3 * (0.5 - t3 * (0.3333333333333333 - t3 * 0.25)), u2 = (1.4426950216293335) * t3, v2 = t3 * (19259629911266175e-24) - w2 * (1.4426950408889634);
1284
+ t1 = withLow(u2 + v2, 0), t2 = v2 - (t1 - u2);
1285
+ } else {
1286
+ let n2 = 0;
1287
+ ix < 1048576 && (ax *= (9007199254740992), n2 -= 53, ix = high(ax) | 0), n2 += (ix >> 20) - 1023, j = ix & 1048575;
1288
+ let kk;
1289
+ ix = j | 1072693248, j <= 235662 ? kk = 0 : j < 767610 ? kk = 1 : (kk = 0, n2 += 1, ix -= 1048576), ax = withHigh(ax, ix >>> 0);
1290
+ let u2 = ax - BP[kk], v2 = 1 / (ax + BP[kk]), ss = u2 * v2, sH = withLow(ss, 0), tH = fromWords((ix >>> 1 | 536870912) + 524288 + (kk << 18) >>> 0, 0), tL = ax - (tH - BP[kk]), sL = v2 * (u2 - sH * tH - sH * tL), s2 = ss * ss, r2 = s2 * s2 * ((0.5999999999999946) + s2 * ((0.4285714285785502) + s2 * ((0.33333332981837743) + s2 * ((0.272728123808534) + s2 * ((0.23066074577556175) + s2 * (0.20697501780033842))))));
1291
+ r2 += sL * (sH + ss), s2 = sH * sH, tH = withLow(3 + s2 + r2, 0), tL = r2 - (tH - 3 - s2);
1292
+ let uu = sH * tH, vv = sL * tH + tL * ss, pH2 = withLow(uu + vv, 0), pL2 = vv - (pH2 - uu), zH = (0.9617967009544373) * pH2, zL = (-7.028461650952758e-9) * pH2 + pL2 * (0.9617966939259756) + DP_L[kk], t3 = n2;
1293
+ t1 = withLow(zH + zL + DP_H[kk] + t3, 0), t2 = zL - (t1 - t3 - DP_H[kk] - zH);
1294
+ }
1295
+ let y1 = withLow(y, 0), pL = (y - y1) * t1 + y * t2, pH = y1 * t1, z = pL + pH, jj = high(z) | 0, ii = low(z) | 0;
1296
+ if (jj >= 1083179008) {
1297
+ if ((jj - 1083179008 | ii) !== 0 || pL + (8008566259537294e-32) > z - pH) return s * (1e300) * (1e300);
1298
+ } else if ((jj & 2147483647) >= 1083231232 && (((jj >>> 0) - 3230714880 | ii) !== 0 || pL <= z - pH))
1299
+ return s * (1e-300) * (1e-300);
1300
+ let i = jj & 2147483647;
1301
+ k = (i >> 20) - 1023;
1302
+ let n = 0;
1303
+ if (i > 1071644672) {
1304
+ n = jj + (1048576 >> k + 1) | 0, k = ((n & 2147483647) >> 20) - 1023;
1305
+ let t3 = fromWords((n & ~(1048575 >> k)) >>> 0, 0);
1306
+ n = (n & 1048575 | 1048576) >> 20 - k, jj < 0 && (n = -n), pH -= t3;
1307
+ }
1308
+ let t = withLow(pL + pH, 0), u = t * (0.6931471824645996), v = (pL - (t - pH)) * (0.6931471805599453) + t * (-1.904654299957768e-9);
1309
+ z = u + v;
1310
+ let w = v - (z - u), tt = z * z, tt1 = z - tt * ((0.16666666666666602) + tt * ((-0.0027777777777015593) + tt * ((6613756321437934e-20) + tt * ((-16533902205465252e-22) + tt * (41381367970572385e-24)))));
1311
+ return z = 1 - (z * tt1 / (tt1 - 2) - (w + z * w) - z), jj = high(z) | 0, jj = jj + (n << 20) | 0, jj >> 20 <= 0 ? z = scalbn(z, n) : z = withHigh(z, jj >>> 0), s * z;
1312
+ }
1313
+
1314
+ // src/game/kernel/lanes.ts
1315
+ var lanes_exports = {};
1316
+ __export(lanes_exports, {
1317
+ CANONICAL_NAN32: () => (2143289344),
1318
+ INSERT_WIDTH_SHIFT: () => (8),
1319
+ LANE_OP: () => LANE_OP,
1320
+ evalLane: () => evalLane,
1321
+ joinF64: () => joinF64,
1322
+ joinU64: () => joinU64,
1323
+ laneSignature: () => laneSignature,
1324
+ runLanes: () => runLanes,
1325
+ toUint32: () => toUint32,
1326
+ toUint64: () => toUint64
1327
+ });
1328
+ var LANE_OP = {
1329
+ F64_ADD: 8192,
1330
+ F64_SUB: 8193,
1331
+ F64_MUL: 8194,
1332
+ F64_DIV: 8195,
1333
+ F64_MIN: 8196,
1334
+ F64_MAX: 8197,
1335
+ F64_MOD: 8198,
1336
+ F64_POW: 8199,
1337
+ F64_ATAN2: 8200,
1338
+ F64_NEG: 8208,
1339
+ F64_ABS: 8209,
1340
+ F64_SQRT: 8210,
1341
+ F64_FLOOR: 8211,
1342
+ F64_CEIL: 8212,
1343
+ F64_ROUND: 8213,
1344
+ F64_TRUNC: 8214,
1345
+ F64_SIGN: 8215,
1346
+ F64_SIN: 8216,
1347
+ F64_COS: 8217,
1348
+ F64_TAN: 8218,
1349
+ F64_ASIN: 8219,
1350
+ F64_ACOS: 8220,
1351
+ F64_ATAN: 8221,
1352
+ F64_EXP: 8222,
1353
+ F64_LOG: 8223,
1354
+ F64_LOG2: 8224,
1355
+ F64_LT: 8240,
1356
+ F64_LE: 8241,
1357
+ F64_EQ: 8242,
1358
+ F64_NE: 8243,
1359
+ F64_FROM_F32: 8256,
1360
+ F64_FROM_I32: 8257,
1361
+ F64_FROM_U32: 8258,
1362
+ F64_TO_F32: 8259,
1363
+ F64_TO_I32: 8260,
1364
+ F64_TO_U32: 8261,
1365
+ F64_FROM_U64: 8262,
1366
+ F64_TO_U64: 8263,
1367
+ BIT_POPCNT: 8448,
1368
+ BIT_CLZ: 8449,
1369
+ BIT_CTZ: 8450,
1370
+ BIT_ROTL: 8451,
1371
+ BIT_ROTR: 8452,
1372
+ BIT_EXTRACT: 8453,
1373
+ BIT_INSERT: 8454,
1374
+ BIT_MORTON2: 8455,
1375
+ BIT_MORTON3: 8456,
1376
+ BIT_UNMORTON2: 8457,
1377
+ BIT_UNMORTON3: 8458,
1378
+ BIT64_POPCNT: 8464,
1379
+ BIT64_CLZ: 8465,
1380
+ BIT64_CTZ: 8466,
1381
+ BIT64_ROTL: 8467,
1382
+ BIT64_ROTR: 8468,
1383
+ BIT64_EXTRACT: 8469,
1384
+ BIT64_INSERT: 8470,
1385
+ BIT64_MORTON2: 8471,
1386
+ BIT64_MORTON3: 8472,
1387
+ BIT64_UNMORTON2: 8473,
1388
+ BIT64_UNMORTON3: 8474,
1389
+ U64_SHL: 8480,
1390
+ U64_SHR: 8481,
1391
+ U64_MUL: 8482,
1392
+ U64_DIV: 8483,
1393
+ U64_REM: 8484
1394
+ }, INSERT_WIDTH_SHIFT = 8, CANONICAL_NAN32 = 2143289344, L = LANE_OP, A = 1, B = 2, C = 4, EA = 8, EB = 16, PAIR = (1) | (2), PAIRS = (1) | (2) | (4) | (8), TWO32 = 4294967296, TWO64 = 18446744073709552e3, MASK64 = (1n << 64n) - 1n;
1395
+ function laneSignature(sub) {
1396
+ if (sub >= L.F64_ADD && sub <= L.F64_ATAN2 || sub >= L.U64_MUL && sub <= L.U64_REM) return [PAIRS, 2];
1397
+ if (sub === L.U64_SHL || sub === L.U64_SHR) return [PAIR | (4), 2];
1398
+ if (sub >= L.F64_NEG && sub <= L.F64_LOG2 || sub === L.F64_FROM_U64 || sub === L.F64_TO_U64) return [PAIR, 2];
1399
+ if (sub >= L.F64_LT && sub <= L.F64_NE) return [PAIRS, 1];
1400
+ if (sub >= L.F64_FROM_F32 && sub <= L.F64_FROM_U32) return [(1), 2];
1401
+ if (sub >= L.F64_TO_F32 && sub <= L.F64_TO_U32) return [PAIR, 1];
1402
+ switch (sub) {
1403
+ case L.BIT_POPCNT:
1404
+ case L.BIT_CLZ:
1405
+ case L.BIT_CTZ:
1406
+ return [(1), 1];
1407
+ case L.BIT_ROTL:
1408
+ case L.BIT_ROTR:
1409
+ case L.BIT_MORTON2:
1410
+ return [(1) | (2), 1];
1411
+ case L.BIT_EXTRACT:
1412
+ case L.BIT_MORTON3:
1413
+ return [(1) | (2) | (4), 1];
1414
+ case L.BIT_INSERT:
1415
+ return [(1) | (2) | (4) | (8), 1];
1416
+ case L.BIT_UNMORTON2:
1417
+ return [(1), 2];
1418
+ case L.BIT_UNMORTON3:
1419
+ return [(1), 3];
1420
+ case L.BIT64_POPCNT:
1421
+ case L.BIT64_CLZ:
1422
+ case L.BIT64_CTZ:
1423
+ return [PAIR, 1];
1424
+ case L.BIT64_ROTL:
1425
+ case L.BIT64_ROTR:
1426
+ case L.BIT64_MORTON3:
1427
+ return [PAIR | (4), 2];
1428
+ case L.BIT64_EXTRACT:
1429
+ return [PAIRS, 2];
1430
+ case L.BIT64_INSERT:
1431
+ return [PAIRS | (16), 2];
1432
+ case L.BIT64_MORTON2:
1433
+ case L.BIT64_UNMORTON2:
1434
+ return [PAIR, 2];
1435
+ case L.BIT64_UNMORTON3:
1436
+ return [PAIR, 3];
1437
+ default:
1438
+ return null;
1439
+ }
1440
+ }
1441
+ var view2 = new Float64Array(1), halves = new Uint32Array(view2.buffer), f322 = new Float32Array(1), f32bits = new Uint32Array(f322.buffer);
1442
+ function joinF64(lo, hi) {
1443
+ return halves[0] = lo >>> 0, halves[1] = hi >>> 0, view2[0];
1444
+ }
1445
+ function splitF64(x, out) {
1446
+ if (Number.isNaN(x)) {
1447
+ out[0] = 0, out[1] = 2146959360;
1448
+ return;
1449
+ }
1450
+ view2[0] = x, out[0] = halves[0], out[1] = halves[1];
1451
+ }
1452
+ function joinU64(lo, hi) {
1453
+ return BigInt(hi >>> 0) << 32n | BigInt(lo >>> 0);
1454
+ }
1455
+ function splitU64(v, out) {
1456
+ let w = v & MASK64;
1457
+ out[0] = Number(w & 0xffffffffn), out[1] = Number(w >> 32n);
1458
+ }
1459
+ function jsMin(x, y) {
1460
+ return Number.isNaN(x) || Number.isNaN(y) ? Number.NaN : x === y ? Object.is(x, -0) || Object.is(y, -0) ? -0 : x : x < y ? x : y;
1461
+ }
1462
+ function jsMax(x, y) {
1463
+ return Number.isNaN(x) || Number.isNaN(y) ? Number.NaN : x === y ? Object.is(x, 0) || Object.is(y, 0) ? 0 : x : x > y ? x : y;
1464
+ }
1465
+ function jsPow(x, y) {
1466
+ return Number.isNaN(y) || Math.abs(x) === 1 && !Number.isFinite(y) ? Number.NaN : pow2(x, y);
1467
+ }
1468
+ function jsRound(x) {
1469
+ if (!Number.isFinite(x) || x === 0) return x;
1470
+ let r = Math.floor(x), v = x - r >= 0.5 ? r + 1 : r;
1471
+ return v === 0 && x < 0 ? -0 : v;
1472
+ }
1473
+ function jsSign(x) {
1474
+ return x > 0 ? 1 : x < 0 ? -1 : x;
1475
+ }
1476
+ function toUint32(x) {
1477
+ if (!Number.isFinite(x)) return 0;
1478
+ let m = Math.trunc(x) % (4294967296);
1479
+ return (m < 0 ? m + (4294967296) : m) >>> 0;
1480
+ }
1481
+ function toUint64(x) {
1482
+ if (!Number.isFinite(x)) return 0n;
1483
+ let t = Math.trunc(x), q = BigInt(Math.abs(t) % (18446744073709552e3));
1484
+ return t < 0 ? -q & MASK64 : q;
1485
+ }
1486
+ function binary64(sub, x, y) {
1487
+ switch (sub) {
1488
+ case L.F64_ADD:
1489
+ return x + y;
1490
+ case L.F64_SUB:
1491
+ return x - y;
1492
+ case L.F64_MUL:
1493
+ return x * y;
1494
+ case L.F64_DIV:
1495
+ return x / y;
1496
+ case L.F64_MIN:
1497
+ return jsMin(x, y);
1498
+ case L.F64_MAX:
1499
+ return jsMax(x, y);
1500
+ case L.F64_MOD:
1501
+ return x % y;
1502
+ case L.F64_POW:
1503
+ return jsPow(x, y);
1504
+ default:
1505
+ return atan22(x, y);
1506
+ }
1507
+ }
1508
+ function unary64(sub, x) {
1509
+ switch (sub) {
1510
+ case L.F64_NEG:
1511
+ return -x;
1512
+ case L.F64_ABS:
1513
+ return Math.abs(x);
1514
+ case L.F64_SQRT:
1515
+ return Math.sqrt(x);
1516
+ case L.F64_FLOOR:
1517
+ return Math.floor(x);
1518
+ case L.F64_CEIL:
1519
+ return Math.ceil(x);
1520
+ case L.F64_ROUND:
1521
+ return jsRound(x);
1522
+ case L.F64_TRUNC:
1523
+ return Math.trunc(x);
1524
+ case L.F64_SIGN:
1525
+ return jsSign(x);
1526
+ case L.F64_SIN:
1527
+ return sin2(x);
1528
+ case L.F64_COS:
1529
+ return cos2(x);
1530
+ case L.F64_TAN:
1531
+ return tan2(x);
1532
+ case L.F64_ASIN:
1533
+ return asin2(x);
1534
+ case L.F64_ACOS:
1535
+ return acos2(x);
1536
+ case L.F64_ATAN:
1537
+ return atan3(x);
1538
+ case L.F64_EXP:
1539
+ return exp3(x);
1540
+ case L.F64_LOG:
1541
+ return log3(x);
1542
+ default:
1543
+ return log22(x);
1544
+ }
1545
+ }
1546
+ function ones(width, bits) {
1547
+ return width >= bits ? (1n << BigInt(bits)) - 1n : (1n << BigInt(width)) - 1n;
1548
+ }
1549
+ function extract(a, offset, width, bits) {
1550
+ return a >> BigInt(offset & bits - 1) & ones(width >>> 0, bits);
1551
+ }
1552
+ function insert(base, value, offset, width, bits) {
1553
+ let at = BigInt(offset & bits - 1), field = ones(width >>> 0, bits) << at;
1554
+ return (base & ~field | value << at & field) & ones(bits, bits);
1555
+ }
1556
+ function spread(v, bits, step2) {
1557
+ let out = 0n;
1558
+ for (let k = 0; k < bits; k++) out |= (v >> BigInt(k) & 1n) << BigInt(k * step2);
1559
+ return out;
1560
+ }
1561
+ function gather(v, bits, step2, at) {
1562
+ let out = 0n;
1563
+ for (let k = 0; k < bits; k++) out |= (v >> BigInt(k * step2 + at) & 1n) << BigInt(k);
1564
+ return out;
1565
+ }
1566
+ function popcount(v) {
1567
+ let n = 0;
1568
+ for (; v > 0n; )
1569
+ n += Number(v & 1n), v >>= 1n;
1570
+ return n;
1571
+ }
1572
+ function clz(v, bits) {
1573
+ let n = 0;
1574
+ for (let k = bits - 1; k >= 0 && (v >> BigInt(k) & 1n) === 0n; k--) n++;
1575
+ return n;
1576
+ }
1577
+ function ctz(v, bits) {
1578
+ let n = 0;
1579
+ for (let k = 0; k < bits && (v >> BigInt(k) & 1n) === 0n; k++) n++;
1580
+ return n;
1581
+ }
1582
+ function rotl(v, s, bits) {
1583
+ let n = BigInt(s & bits - 1), mask = ones(bits, bits);
1584
+ return (v << n | v >> BigInt(bits) - n) & mask;
1585
+ }
1586
+ function wide64(sub, x, y) {
1587
+ switch (sub) {
1588
+ case L.U64_SHL:
1589
+ return x << (y & 63n) & MASK64;
1590
+ case L.U64_SHR:
1591
+ return x >> (y & 63n);
1592
+ case L.U64_MUL:
1593
+ return x * y & MASK64;
1594
+ case L.U64_DIV:
1595
+ return y === 0n ? 0n : x / y;
1596
+ default:
1597
+ return y === 0n ? 0n : x % y;
1598
+ }
1599
+ }
1600
+ var laneIn = new Uint32Array(5), laneOut = new Uint32Array(3);
1601
+ function runLanes(sub, inputs, targets, n, read, write) {
1602
+ let signature = laneSignature(sub);
1603
+ if (signature === null) return;
1604
+ let [mask, outputs] = signature;
1605
+ for (let k = 0; k < n; k++) {
1606
+ for (let w = 0; w < 5; w++) laneIn[w] = mask & 1 << w ? read(inputs[w], k) : 0;
1607
+ evalLane(sub, laneIn, laneOut);
1608
+ for (let o = 0; o < outputs; o++) write(targets[o], k, laneOut[o]);
1609
+ }
1610
+ }
1611
+ function evalLane(sub, v, out) {
1612
+ out[0] = 0, out[1] = 0, out[2] = 0;
1613
+ let word = (r) => {
1614
+ out[0] = Number(r) >>> 0;
1615
+ };
1616
+ if (sub >= L.F64_ADD && sub <= L.F64_ATAN2) return splitF64(binary64(sub, joinF64(v[0], v[1]), joinF64(v[2], v[3])), out);
1617
+ if (sub >= L.U64_MUL && sub <= L.U64_REM) return splitU64(wide64(sub, joinU64(v[0], v[1]), joinU64(v[2], v[3])), out);
1618
+ if (sub === L.U64_SHL || sub === L.U64_SHR) return splitU64(wide64(sub, joinU64(v[0], v[1]), BigInt(v[2])), out);
1619
+ if (sub >= L.F64_NEG && sub <= L.F64_LOG2) return splitF64(unary64(sub, joinF64(v[0], v[1])), out);
1620
+ if (sub === L.F64_FROM_U64) return splitF64(v[1] * (4294967296) + v[0], out);
1621
+ if (sub === L.F64_TO_U64) return splitU64(toUint64(joinF64(v[0], v[1])), out);
1622
+ if (sub >= L.F64_LT && sub <= L.F64_NE) {
1623
+ let x2 = joinF64(v[0], v[1]), y2 = joinF64(v[2], v[3]), t = sub === L.F64_LT ? x2 < y2 : sub === L.F64_LE ? x2 <= y2 : sub === L.F64_EQ ? x2 === y2 : x2 !== y2;
1624
+ out[0] = t ? 4294967295 : 0;
1625
+ return;
1626
+ }
1627
+ if (sub === L.F64_FROM_F32)
1628
+ return f32bits[0] = v[0], splitF64(f322[0], out);
1629
+ if (sub === L.F64_FROM_I32) return splitF64(v[0] | 0, out);
1630
+ if (sub === L.F64_FROM_U32) return splitF64(v[0] >>> 0, out);
1631
+ if (sub === L.F64_TO_F32) {
1632
+ let x2 = Math.fround(joinF64(v[0], v[1]));
1633
+ Number.isNaN(x2) ? out[0] = (2143289344) : (f322[0] = x2, out[0] = f32bits[0]);
1634
+ return;
1635
+ }
1636
+ if (sub === L.F64_TO_I32 || sub === L.F64_TO_U32) return word(toUint32(joinF64(v[0], v[1])));
1637
+ let a = BigInt(v[0]), b = BigInt(v[1]), c = BigInt(v[2]), x = joinU64(v[0], v[1]), y = joinU64(v[2], v[3]);
1638
+ switch (sub) {
1639
+ case L.BIT_POPCNT:
1640
+ return word(popcount(a));
1641
+ case L.BIT_CLZ:
1642
+ return word(clz(a, 32));
1643
+ case L.BIT_CTZ:
1644
+ return word(ctz(a, 32));
1645
+ case L.BIT_ROTL:
1646
+ return word(rotl(a, v[1], 32));
1647
+ case L.BIT_ROTR:
1648
+ return word(rotl(a, 32 - (v[1] & 31) & 31, 32));
1649
+ case L.BIT_EXTRACT:
1650
+ return word(extract(a, v[1], v[2], 32));
1651
+ case L.BIT_INSERT:
1652
+ return word(insert(a, b, v[2], v[3], 32));
1653
+ case L.BIT_MORTON2:
1654
+ return word(spread(a, 16, 2) | spread(b, 16, 2) << 1n);
1655
+ case L.BIT_MORTON3:
1656
+ return word(spread(a, 10, 3) | spread(b, 10, 3) << 1n | spread(c, 10, 3) << 2n);
1657
+ case L.BIT_UNMORTON2:
1658
+ out[0] = Number(gather(a, 16, 2, 0)), out[1] = Number(gather(a, 16, 2, 1));
1659
+ return;
1660
+ case L.BIT_UNMORTON3:
1661
+ out[0] = Number(gather(a, 10, 3, 0)), out[2] = Number(gather(a, 10, 3, 1)), out[1] = Number(gather(a, 10, 3, 2));
1662
+ return;
1663
+ case L.BIT64_POPCNT:
1664
+ return word(popcount(x));
1665
+ case L.BIT64_CLZ:
1666
+ return word(clz(x, 64));
1667
+ case L.BIT64_CTZ:
1668
+ return word(ctz(x, 64));
1669
+ case L.BIT64_ROTL:
1670
+ return splitU64(rotl(x, v[2], 64), out);
1671
+ case L.BIT64_ROTR:
1672
+ return splitU64(rotl(x, 64 - (v[2] & 63) & 63, 64), out);
1673
+ case L.BIT64_EXTRACT:
1674
+ return splitU64(extract(x, v[2], v[3], 64), out);
1675
+ case L.BIT64_INSERT:
1676
+ return splitU64(insert(x, y, v[4] & 255, v[4] >>> (8), 64), out);
1677
+ case L.BIT64_MORTON2:
1678
+ return splitU64(spread(a, 32, 2) | spread(b, 32, 2) << 1n, out);
1679
+ case L.BIT64_MORTON3:
1680
+ return splitU64(spread(a, 21, 3) | spread(b, 21, 3) << 1n | spread(c, 21, 3) << 2n, out);
1681
+ case L.BIT64_UNMORTON2:
1682
+ out[0] = Number(gather(x, 32, 2, 0)), out[1] = Number(gather(x, 32, 2, 1));
1683
+ return;
1684
+ case L.BIT64_UNMORTON3:
1685
+ out[0] = Number(gather(x, 21, 3, 0)), out[2] = Number(gather(x, 21, 3, 1)), out[1] = Number(gather(x, 21, 3, 2));
1686
+ return;
1687
+ }
1688
+ }
1689
+
1690
+ // src/game/kernel/data.ts
1691
+ var TRUE = 4294967295, MIN_SLOTS = 16, FNV_OFFSET = 2166136261, FNV_PRIME = 16777619, COMMAND_WORDS = 4, DEFAULT_COMMANDS = 8192, DEFAULT_PICKS = 256, STORAGE_F32 = 0, STORAGE_I32 = 1, STORAGE_U32 = 2;
1692
+ function symbol(name) {
1693
+ let bytes = new TextEncoder().encode(name), hash = (2166136261);
1694
+ for (let byte of bytes) hash = Math.imul(hash ^ byte, (16777619)) >>> 0;
1695
+ return hash >>> 0;
1696
+ }
1697
+ function mix(value) {
1698
+ let x = value >>> 0;
1699
+ return x ^= x >>> 16, x = Math.imul(x, 2146121005), x ^= x >>> 15, x = Math.imul(x, 2221713035), (x ^ x >>> 16) >>> 0;
1700
+ }
1701
+ function tableOf(word) {
1702
+ return word >>> (19) & (15);
1703
+ }
1704
+ function isPool(word) {
1705
+ return (word & ACCESS_POOL) !== 0;
1706
+ }
1707
+ function readAs(kind, storage, raw) {
1708
+ return kind === 0 ? storage === (0) ? f32Bits(raw) : f32Bits(Math.fround(storage === (1) ? raw | 0 : raw >>> 0)) : kind === 3 ? raw !== 0 && !Number.isNaN(raw) ? (4294967295) : 0 : storage === (0) ? (raw | 0) >>> 0 : raw >>> 0;
1709
+ }
1710
+ function writeAs(kind, storage, value) {
1711
+ return storage === (0) ? kind === 0 ? f32From(value) : kind === 3 ? value !== 0 ? 1 : 0 : Math.fround(kind === 1 ? value | 0 : value >>> 0) : kind === 0 ? f32From(value) | 0 : kind === 3 ? value !== 0 ? 1 : 0 : value;
1712
+ }
1713
+ function sameColumn(p, q) {
1714
+ return p.values === q.values || p.values.buffer === q.values.buffer && p.values.byteOffset === q.values.byteOffset && p.values.length > 0;
1715
+ }
1716
+ function exact(kind, storage) {
1717
+ return kind === 0 ? storage === (0) : kind === 1 || kind === 2 ? storage === (1) || storage === (2) : false;
1718
+ }
1719
+ function fmin(a, b) {
1720
+ return a < b ? a : b < a ? b : Number.isNaN(a) ? a : b;
1721
+ }
1722
+ function fmax(a, b) {
1723
+ return a > b ? a : b > a ? b : Number.isNaN(a) ? a : b;
1724
+ }
1725
+ function command(mode, current, value) {
1726
+ let f = f32From, b = f32Bits;
1727
+ switch (mode) {
1728
+ case SEND.FADD:
1729
+ return b(Math.fround(f(current) + f(value)));
1730
+ case SEND.FMUL:
1731
+ return b(Math.fround(f(current) * f(value)));
1732
+ case SEND.FMIN:
1733
+ return b(fmin(f(current), f(value)));
1734
+ case SEND.FMAX:
1735
+ return b(fmax(f(current), f(value)));
1736
+ case SEND.IADD:
1737
+ return current + value >>> 0;
1738
+ case SEND.IMIN:
1739
+ return Math.min(current | 0, value | 0) >>> 0;
1740
+ case SEND.IMAX:
1741
+ return Math.max(current | 0, value | 0) >>> 0;
1742
+ case SEND.UMIN:
1743
+ return Math.min(current >>> 0, value >>> 0);
1744
+ case SEND.UMAX:
1745
+ return Math.max(current >>> 0, value >>> 0);
1746
+ case SEND.OR:
1747
+ return (current | value) >>> 0;
1748
+ case SEND.AND:
1749
+ return (current & value) >>> 0;
1750
+ default:
1751
+ return value >>> 0;
1752
+ }
1753
+ }
1754
+ function pickOrder(mode, key) {
1755
+ return mode === (0) ? key >>> 0 : Number.isNaN(f32From(key)) ? 4294967295 : sortKey((2), key);
1756
+ }
1757
+ var KeyIndex = class {
1758
+ constructor(capacity) {
1759
+ this.capacity = capacity;
1760
+ this.epoch = 0;
1761
+ let slots = (16);
1762
+ for (; slots < capacity * 2; ) slots *= 2;
1763
+ this.keys = new Uint32Array(slots), this.rows = new Uint32Array(slots), this.stamps = new Uint32Array(slots), this.mask = slots - 1;
1764
+ }
1765
+ build(count, key) {
1766
+ this.epoch = this.epoch + 1 >>> 0, this.epoch === 0 && (this.stamps.fill(0), this.epoch = 1);
1767
+ let n = Math.min(count, this.capacity);
1768
+ for (let row = 0; row < n; row++) {
1769
+ let k = key(row) >>> 0;
1770
+ if (k === 4294967295) continue;
1771
+ let h = mix(k) & this.mask;
1772
+ for (; ; ) {
1773
+ if (this.stamps[h] !== this.epoch) {
1774
+ this.stamps[h] = this.epoch, this.keys[h] = k, this.rows[h] = row;
1775
+ break;
1776
+ }
1777
+ if (this.keys[h] === k) break;
1778
+ h = h + 1 & this.mask;
1779
+ }
1780
+ }
1781
+ }
1782
+ find(key) {
1783
+ let k = key >>> 0;
1784
+ if (k === 4294967295) return 4294967295;
1785
+ let h = mix(k) & this.mask;
1786
+ for (; ; ) {
1787
+ if (this.stamps[h] !== this.epoch) return 4294967295;
1788
+ if (this.keys[h] === k) return this.rows[h];
1789
+ h = h + 1 & this.mask;
1790
+ }
1791
+ }
1792
+ }, Keep = class {
1793
+ constructor(capacity, words2) {
1794
+ this.capacity = capacity;
1795
+ this.words = words2;
1796
+ this.len = 0;
1797
+ this.dropped = 0;
1798
+ this.heaped = false;
1799
+ this.a = new Float64Array(capacity), this.b = new Float64Array(capacity), this.c = new Float64Array(capacity), this.data = new Uint32Array(capacity * words2), this.heap = new Uint32Array(capacity);
1800
+ }
1801
+ clear() {
1802
+ this.len = 0, this.dropped = 0, this.heaped = false;
1803
+ }
1804
+ compare(p, q) {
1805
+ return this.a[p] - this.a[q] || this.b[p] - this.b[q] || this.c[p] - this.c[q];
1806
+ }
1807
+ below(a, b, c, slot) {
1808
+ return a !== this.a[slot] ? a < this.a[slot] : b !== this.b[slot] ? b < this.b[slot] : c < this.c[slot];
1809
+ }
1810
+ siftDown(start) {
1811
+ let n = this.heap.length, at = start;
1812
+ for (; ; ) {
1813
+ let left = 2 * at + 1, right = left + 1, top = at;
1814
+ if (left < n && this.compare(this.heap[left], this.heap[top]) > 0 && (top = left), right < n && this.compare(this.heap[right], this.heap[top]) > 0 && (top = right), top === at) return;
1815
+ let t = this.heap[at];
1816
+ this.heap[at] = this.heap[top], this.heap[top] = t, at = top;
1817
+ }
1818
+ }
1819
+ insert(a, b, c, payload) {
1820
+ let slot;
1821
+ if (this.len < this.capacity)
1822
+ slot = this.len++;
1823
+ else {
1824
+ if (this.dropped++, this.capacity === 0) return;
1825
+ if (!this.heaped) {
1826
+ for (let k = 0; k < this.capacity; k++) this.heap[k] = k;
1827
+ for (let at = (this.capacity >> 1) - 1; at >= 0; at--) this.siftDown(at);
1828
+ this.heaped = true;
1829
+ }
1830
+ let top = this.heap[0];
1831
+ if (!this.below(a, b, c, top)) return;
1832
+ slot = top;
1833
+ }
1834
+ if (this.a[slot] = a, this.b[slot] = b, this.c[slot] = c, payload !== null) for (let w = 0; w < this.words; w++) this.data[slot * this.words + w] = payload[w];
1835
+ this.heaped && this.siftDown(0);
1836
+ }
1837
+ }, ListSweep = class {
1838
+ constructor(at, len, table, k) {
1839
+ this.at = at;
1840
+ this.len = len;
1841
+ this.table = table;
1842
+ this.k = k;
1843
+ this.used = new Uint8Array(0);
1844
+ this.blocks = 0;
1845
+ this.unplaced = 0;
1846
+ }
1847
+ bind(blocks) {
1848
+ this.blocks = blocks, this.used = new Uint8Array(blocks);
1849
+ }
1850
+ run(at, len, lenKind, count) {
1851
+ this.used.fill(0), this.unplaced = 0;
1852
+ let read = (column, row) => readAs(2, column.storage, column.values[row]), write = (column, kind, row, value) => {
1853
+ column.values[row] = writeAs(kind, column.storage, value);
1854
+ }, open = false;
1855
+ for (let row = 0; row < count; row++) {
1856
+ let a = read(at, row);
1857
+ if (a === 0) {
1858
+ open = true;
1859
+ continue;
1860
+ }
1861
+ let offset = a - 1, block = Math.floor(offset / this.k);
1862
+ if (offset % this.k === 0 && block < this.blocks && this.used[block] === 0) {
1863
+ this.used[block] = 1, read(len, row) > this.k && write(len, lenKind, row, this.k);
1864
+ continue;
1865
+ }
1866
+ write(at, 2, row, 0), write(len, lenKind, row, 0), open = true;
1867
+ }
1868
+ if (!open) return;
1869
+ let cursor = 0;
1870
+ for (let row = 0; row < count; row++)
1871
+ if (read(at, row) === 0) {
1872
+ for (; cursor < this.blocks && this.used[cursor] !== 0; ) cursor++;
1873
+ if (write(len, lenKind, row, 0), cursor === this.blocks) {
1874
+ this.unplaced++;
1875
+ continue;
1876
+ }
1877
+ this.used[cursor] = 1, write(at, 2, row, cursor * this.k + 1), cursor++;
1878
+ }
1879
+ }
1880
+ };
1881
+ function dataOps(code) {
1882
+ let out = [], pc = 0;
1883
+ for (; pc + 1 < code.length; ) {
1884
+ let i = code[pc];
1885
+ if (i.op === (175)) {
1886
+ xopRange(i.dst) === XOP_RANGE.DATA && out.push({ pc, i, ext: code[pc + 1] }), pc += 2;
1887
+ continue;
1888
+ }
1889
+ pc++;
1890
+ }
1891
+ return out;
1892
+ }
1893
+ function listDecls(code) {
1894
+ return dataOps(code).filter((o) => o.i.dst === (12304)).map((o) => ({ at: o.i.a, len: o.i.b, pool: o.i.c, k: o.ext.a }));
1895
+ }
1896
+ var DataMachine = class {
1897
+ constructor(slots, code, capacity) {
1898
+ this.slots = slots;
1899
+ this.code = code;
1900
+ this.tableCapacity = new Array((16)).fill(0);
1901
+ this.tableCount = new Array((16)).fill(0);
1902
+ this.bound = new Array((16)).fill(false);
1903
+ this.used = 1;
1904
+ this.snaps = /* @__PURE__ */ new Map();
1905
+ this.indexes = /* @__PURE__ */ new Map();
1906
+ this.pools = /* @__PURE__ */ new Map();
1907
+ this.sweeps = [];
1908
+ this.sites = [];
1909
+ this.commandCapacity = (8192);
1910
+ this.pickCapacity = (256);
1911
+ this.counter = 0;
1912
+ this.tallies = new Uint32Array((64));
1913
+ this.stats = { sent: 0, applied: 0, dropped: 0, overflow: 0 };
1914
+ this.payload = new Uint32Array((4));
1915
+ let ops = dataOps(code);
1916
+ this.active = ops.length > 0, slots.forEach((slot, k) => {
1917
+ let word = slot.word ?? 0, table = tableOf(word);
1918
+ this.used |= 1 << table, table !== 0 && !isPool(word) && (word & 256) !== 0 && this.snaps.set(k, { table, values: new Float64Array(0), active: false });
1919
+ });
1920
+ for (let decl of listDecls(code)) {
1921
+ if (this.pools.has(decl.pool)) continue;
1922
+ let table = tableOf(slots[decl.pool].word ?? 0), sweep = this.sweeps.findIndex((s) => s.at === decl.at && s.len === decl.len);
1923
+ sweep < 0 && (this.sweeps.push(new ListSweep(decl.at, decl.len, table, decl.k)), sweep = this.sweeps.length - 1), this.pools.set(decl.pool, { decl, words: 0, bound: false, sweep });
1924
+ }
1925
+ for (let { pc, i } of ops)
1926
+ i.dst === (12288) ? (this.used |= 1 << i.b, this.indexes.has(i.c) || this.indexes.set(i.c, { table: i.b, index: new KeyIndex(0) })) : i.dst === (12289) ? this.used |= 1 << i.b : i.dst === (12291) ? this.used |= 1 << i.a : i.dst === (12336) && this.sites.push({ pc, n: i.a, rows: new Uint32Array(0), len: 0 });
1927
+ this.commands = new Keep(this.commandCapacity, (4)), this.picks = [], this.bindPicks(this.pickCapacity), this.bindStorage(0, capacity), this.tableCapacity[0] = capacity, this.bound[0] = true;
1928
+ }
1929
+ bindStorage(table, capacity) {
1930
+ for (let snap of this.snaps.values()) snap.table === table && (snap.values = new Float64Array(capacity));
1931
+ for (let entry of this.indexes.values()) entry.table === table && (entry.index = new KeyIndex(capacity));
1932
+ }
1933
+ get tablesUsed() {
1934
+ return this.used;
1935
+ }
1936
+ get poolDecls() {
1937
+ return [...this.pools.values()].map((p) => p.decl);
1938
+ }
1939
+ get unplaced() {
1940
+ return this.sweeps.reduce((sum, s) => sum + s.unplaced, 0);
1941
+ }
1942
+ bindTable(table, capacity) {
1943
+ if (table < 1 || table >= (16)) throw new GameError("invalid_argument", `kernel tables are numbered 1..${(16) - 1}`);
1944
+ this.tableCapacity[table] = capacity, this.bound[table] = true, this.bindStorage(table, capacity);
1945
+ }
1946
+ bindPool(slot, words2) {
1947
+ let pool = this.pools.get(slot);
1948
+ if (pool === void 0) throw new GameError("invalid_argument", `slot ${slot} is not a list pool`);
1949
+ pool.words = words2, pool.bound = true;
1950
+ let sweep = this.sweeps[pool.sweep], blocks = 1 / 0;
1951
+ for (let p of this.pools.values()) p.sweep === pool.sweep && (blocks = Math.min(blocks, p.bound ? Math.floor(p.words / sweep.k) : 1 / 0));
1952
+ blocks !== 1 / 0 && sweep.bind(blocks);
1953
+ }
1954
+ bindCommands(capacity) {
1955
+ this.commandCapacity = capacity, this.commands = new Keep(capacity, (4));
1956
+ }
1957
+ bindPicks(capacity) {
1958
+ this.pickCapacity = capacity, this.picks = this.sites.map(() => new Keep(capacity, 0));
1959
+ for (let site of this.sites) site.rows = new Uint32Array(capacity);
1960
+ }
1961
+ setCount(table, count) {
1962
+ if (count > this.tableCapacity[table]) throw new GameError("capacity_exceeded", `table ${table} holds ${count} rows but was bound with capacity ${this.tableCapacity[table]}`);
1963
+ this.tableCount[table] = count;
1964
+ }
1965
+ count(table) {
1966
+ return this.tableCount[table];
1967
+ }
1968
+ pickRows(site) {
1969
+ let s = this.sites[site];
1970
+ return s === void 0 ? new Uint32Array(0) : s.rows.subarray(0, s.len);
1971
+ }
1972
+ prepare(columns, count) {
1973
+ if (this.active) {
1974
+ this.tableCount[0] = count;
1975
+ for (let t = 1; t < (16); t++)
1976
+ if ((this.used & 1 << t) !== 0 && !this.bound[t]) throw new GameError("invalid_argument", `this kernel reads table ${t}, which is not bound; pass the table as its Rows argument`);
1977
+ for (let [slot, pool] of this.pools) if (!pool.bound) throw new GameError("invalid_argument", `list pool slot ${slot} is not bound`);
1978
+ for (let [slot, snap] of this.snaps) {
1979
+ let column = columns[slot];
1980
+ if (snap.active = this.slots.some((s, k) => tableOf(s.word ?? 0) === 0 && !isPool(s.word ?? 0) && ((s.word ?? 0) & 512) !== 0 && sameColumn(columns[k], column)), snap.active) {
1981
+ let n = this.tableCount[snap.table];
1982
+ for (let row = 0; row < n; row++) snap.values[row] = column.values[row];
1983
+ }
1984
+ }
1985
+ for (let sweep of this.sweeps) sweep.run(columns[sweep.at], columns[sweep.len], this.slots[sweep.len].kind, this.tableCount[sweep.table]);
1986
+ for (let [slot, entry] of this.indexes) {
1987
+ let column = columns[slot], kind = this.slots[slot].kind;
1988
+ entry.index.build(this.tableCount[entry.table], (row) => readAs(kind, column.storage, column.values[row]));
1989
+ }
1990
+ this.commands.clear();
1991
+ for (let p of this.picks) p.clear();
1992
+ this.tallies.fill(0), this.counter = 0, this.stats = { sent: 0, applied: 0, dropped: 0, overflow: 0 };
1993
+ }
1994
+ }
1995
+ exec(pc, i, ext, n, columns, host) {
1996
+ let on = (mask, k) => mask === 4294967295 || host.lane(mask, k) !== 0;
1997
+ switch (i.dst) {
1998
+ case (12288): {
1999
+ let index = this.indexes.get(i.c).index;
2000
+ for (let k = 0; k < n; k++) host.set(ext.dst, k, index.find(host.lane(i.a, k)));
2001
+ return;
2002
+ }
2003
+ case (12289): {
2004
+ let count = this.tableCount[i.b];
2005
+ for (let k = 0; k < n; k++) {
2006
+ let v = host.lane(i.a, k) >>> 0;
2007
+ host.set(ext.dst, k, v < count ? v : 4294967295);
2008
+ }
2009
+ return;
2010
+ }
2011
+ case (12290): {
2012
+ let slot = this.slots[i.a], column = columns[i.a], count = this.tableCount[tableOf(slot.word ?? 0)], snap = this.snaps.get(i.a), values = snap !== void 0 && snap.active ? snap.values : column.values;
2013
+ for (let k = 0; k < n; k++) {
2014
+ let r = host.lane(i.b, k) >>> 0;
2015
+ host.set(ext.dst, k, r < count ? readAs(slot.kind, column.storage, values[r]) : 0);
2016
+ }
2017
+ return;
2018
+ }
2019
+ case (12291): {
2020
+ let count = this.tableCount[i.a];
2021
+ for (let k = 0; k < n; k++) host.set(ext.dst, k, count);
2022
+ return;
2023
+ }
2024
+ case (12305):
2025
+ case (12306): {
2026
+ let pool = this.pools.get(i.a), at = columns[pool.decl.at], column = columns[i.a], kind = this.slots[i.a].kind, setting = i.dst === (12306), mask = setting ? ext.a : i.c;
2027
+ for (let k = 0; k < n; k++) {
2028
+ let value = 0;
2029
+ if (on(mask, k)) {
2030
+ let base = readAs(2, at.storage, at.values[host.row(k)]), e = host.lane(i.b, k) >>> 0, cell = base - 1 + e;
2031
+ base !== 0 && e < pool.decl.k && cell < pool.words && (setting ? column.values[cell] = writeAs(kind, column.storage, host.lane(i.c, k)) : value = readAs(kind, column.storage, column.values[cell]));
2032
+ }
2033
+ setting || host.set(ext.dst, k, value);
2034
+ }
2035
+ return;
2036
+ }
2037
+ case (12307): {
2038
+ let active = 0;
2039
+ for (let k = 0; k < n; k++) on(i.b, k) && active++;
2040
+ this.tallies[i.a] = this.tallies[i.a] + active >>> 0;
2041
+ return;
2042
+ }
2043
+ case (12320): {
2044
+ let count = this.tableCount[tableOf(this.slots[i.a].word ?? 0)];
2045
+ for (let k = 0; k < n; k++) {
2046
+ let target = host.lane(i.b, k) >>> 0;
2047
+ !on(ext.a, k) || target >= count || (this.payload[0] = i.a, this.payload[1] = ext.b, this.payload[2] = target, this.payload[3] = host.lane(i.c, k), this.commands.insert(host.row(k), this.counter++, 0, this.payload));
2048
+ }
2049
+ return;
2050
+ }
2051
+ case (12336): {
2052
+ let site = this.sites.findIndex((s) => s.pc === pc), keep = this.picks[site];
2053
+ for (let k = 0; k < n; k++)
2054
+ on(i.c, k) && keep.insert(pickOrder(ext.a, host.lane(i.b, k)), host.row(k), 0, null);
2055
+ return;
2056
+ }
2057
+ default:
2058
+ return;
2059
+ }
2060
+ }
2061
+ finish(columns, uniforms) {
2062
+ this.active && (this.finishCommands(columns), this.sites.forEach((site, s) => {
2063
+ let keep = this.picks[s], order = Array.from({ length: keep.len }, (_, k) => k).sort((p, q) => keep.compare(p, q)), want = Math.max(uniforms[site.n & 2147483647] | 0, 0), n = Math.min(want, order.length, site.rows.length);
2064
+ for (let k = 0; k < n; k++) site.rows[k] = keep.b[order[k]];
2065
+ site.len = n;
2066
+ }));
2067
+ }
2068
+ finishCommands(columns) {
2069
+ let keep = this.commands, offered = keep.len + keep.dropped;
2070
+ if (keep.len === 0) return;
2071
+ let table = (k) => tableOf(this.slots[keep.data[k * (4)]].word ?? 0), order = Array.from({ length: keep.len }, (_, k) => k);
2072
+ order.sort((p, q) => table(p) - table(q) || keep.data[p * (4) + 2] - keep.data[q * (4) + 2] || keep.compare(p, q));
2073
+ let overflow = 0;
2074
+ for (let k of order) {
2075
+ let at = k * (4), slot = keep.data[at], mode = keep.data[at + 1], row = keep.data[at + 2], value = keep.data[at + 3], kind = this.slots[slot].kind, column = columns[slot];
2076
+ if (mode === SEND.PUSH) {
2077
+ let pool = this.pools.get(slot), base = columns[pool.decl.at], length = columns[pool.decl.len], start = readAs(2, base.storage, base.values[row]), used = readAs(2, length.storage, length.values[row]), cell = start - 1 + used;
2078
+ if (start === 0 || used >= pool.decl.k || cell >= pool.words) {
2079
+ overflow++;
2080
+ continue;
2081
+ }
2082
+ column.values[cell] = writeAs(kind, column.storage, value), length.values[row] = writeAs(this.slots[pool.decl.len].kind, length.storage, used + 1);
2083
+ continue;
2084
+ }
2085
+ let current = readAs(kind, column.storage, column.values[row]), next = command(mode, current, value);
2086
+ (exact(kind, column.storage) || current !== next) && (column.values[row] = writeAs(kind, column.storage, next));
2087
+ }
2088
+ this.stats = { sent: offered, applied: keep.len - overflow, dropped: offered - keep.len, overflow };
2089
+ }
2090
+ };
2091
+
2092
+ export { ACCESS_ARRAY, ACCESS_INDEXED, ACCESS_NEIGHBOUR, ACCESS_READ, ACCESS_SCRATCH, ACCESS_SPAWN, ACCESS_WRITE, ARG_FMAX, ARG_FMIN, ARG_IMAX, ARG_IMIN, ARG_UMIN, ATTACH_AUDIO, ATTACH_CHEMISTRY_GRID, ATTACH_SPAWN_TABLE, ATTACH_UI, ATTACH_VOXELS, CANONICAL_NAN32, CELL_WRAP, CHANNEL_WORDS, CROSS_BLOCK, CROSS_OP, CURVE_HEADER, CURVE_HERMITE, CURVE_LINEAR, CURVE_STEP, DATA_FLOAD, DATA_KEYOF, DATA_LIST, DATA_LIST_MAX, DATA_PGET, DATA_PICK, DATA_PSET, DATA_REPORT_HEADER, DATA_ROWOF, DATA_ROWS, DATA_SEND, DATA_TABLES, DATA_TALLIES, DATA_TALLY, DEFAULT_EVENT_CAPACITY, DST_BITS, DataMachine, EVENT_HEADER_WORDS, EVENT_STRIDE, FLAG_GROUPS, FLAG_NEIGHBOURS, FMATH_CONSTANTS, GRAPH_EMPTY, GROUP_DEFAULT, GROUP_WORDS, H_ARGS, H_CONSTANTS, H_EVENTS, H_FLAGS, H_GROUPS, H_INSTRUCTIONS, H_LOOPS, H_MAGIC, H_POSITION_X, H_POSITION_Y, H_POSITION_Z, H_REGISTERS, H_SLOTS, H_STATE, H_VERSION, INSTRUCTION_WORDS, KERNEL_CALL_EXPORT_NAMES, KERNEL_DATA_EXPORT_NAMES, KERNEL_EXPORT_NAMES, KERNEL_ISA_BASE, KERNEL_ISA_CALLS, KERNEL_ISA_EXTENDED, KERNEL_ISA_VERSION, KERNEL_ISA_WRITES, KERNEL_SCAN_FEATURE, KERNEL_STAGE_EXPORT_NAMES, KERNEL_WRITE_EXPORT_NAMES, KIND_BOOL, KIND_F32, KIND_I32, KIND_U32, LIBRARY_HEADER_WORDS, LIBRARY_MAGIC, LOOKUP_OP, LOOP_COUNT_F32, LUT1_HEADER, LUT2_HEADER, LUT_LINEAR, LUT_WRAP, ListSweep, MAX_CHANNELS, MAX_EVENT_WORDS, MAX_TRIPS, MLP_MAX_OUTPUTS, MLP_MAX_WIDTH, NONE, Op, PROGRAM_HEADER_WORDS, PROGRAM_MAGIC, QFILTER_ANY, QFILTER_EQUAL, QFILTER_NONE, QUERY_BOX, QUERY_CONE, QUERY_FILTERED, QUERY_SEGMENT, QUERY_SHAPE, QUERY_SPHERE, RECUR, RECUR_EXCLUSIVE, RECUR_KIND_MASK, RECUR_WIDE, REDUCE_FMAX, REDUCE_FMIN, REDUCE_FSUM, REDUCE_IMAX, REDUCE_IMIN, REDUCE_ISUM, REDUCE_UMIN, RING_COUNT, RING_DROPPED, RING_HEADER_WORDS, SAMPLER_WORDS, SAMPLE_BILINEAR, SAMPLE_NEAREST, SAMPLE_NORMAL_X, SAMPLE_NORMAL_Y, SAMPLE_NORMAL_Z, SCAN_F_EXCLUSIVE, SCAN_F_INCLUSIVE, SCAN_I_INCLUSIVE, SCATTER_FADD, SERVICE_ANCHOR, SERVICE_CHEMISTRY, SERVICE_CLIP_WEIGHT, SERVICE_FLOW, SERVICE_FORCE, SERVICE_GROUND_HEIGHT, SERVICE_IK_TARGET, SERVICE_IMPULSE, SERVICE_INSTANCE, SERVICE_INSTANCE_COLOUR, SERVICE_KILL, SERVICE_LINE_OF_SIGHT, SERVICE_OVERLAP, SERVICE_PATH, SERVICE_PICK, SERVICE_PLAY_CLIP, SERVICE_RAYCAST, SERVICE_SIGNATURES, SERVICE_SOUND, SERVICE_SWEEP, SERVICE_VELOCITY, SERVICE_VOXEL_GET, SERVICE_VOXEL_SET, SIMD_CROSS, SIMD_DOT, SIMD_DOT_F32, SIMD_EXTRACT, SIMD_LANE_BITS, SIMD_LANE_MASK, SIMD_LENGTH, SIMD_MAP, SIMD_MAP_OPS, SIMD_NORMALIZE, SIMD_PACK, SIMD_REDUCE, SIMD_REPLACE, SIMD_SCALAR_A, SIMD_SCALAR_B, SIMD_SCALAR_C, SIMD_SHUFFLE, SIMD_WIDTH_MASK, SORT_DESCENDING, SORT_KEY_MASK, SORT_RADIX_BITS, SPAWN_STATS_WORDS, STATUS_FAILURE, STATUS_RUNNING, STATUS_SUCCESS, UNIFORM, XOP, XOP_COMPONENTS_EDGES, XOP_COMPONENTS_GRID, XOP_FIELD, XOP_GATHER, XOP_GROUP, XOP_MLP_IN, XOP_MLP_MOE, XOP_MLP_OUT, XOP_QFILTER, XOP_QRANK, XOP_QSHAPE, XOP_QSTOP, XOP_QUERY, XOP_RANGE, XOP_REACH_GRID, XOP_RECUR_IN, XOP_SORT, XOP_TOPK, acos, asin, atan, atan2, cos, crossRow, curveWords, deferredService, evalLane, exp, f32Bits, f32From, fmath64_exports, fmath_exports, isa_exports, joinF64, joinU64, laneSignature, lanes_exports, log, log2, lookupOp, operandCount, pow, readAs, recurStateWords, recurSub, runLanes, serviceOf, sin, sortKey, stageEndingOp, stageEnds, symbol, tan, toUint32, toUint64, xopRange };