numpy-ts 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/README.md +4 -3
  2. package/dist/esm/common/broadcasting.js +1 -1
  3. package/dist/esm/common/dtype.js +1 -1
  4. package/dist/esm/common/float16-conv.js +1 -0
  5. package/dist/esm/common/internal/compute.js +1 -1
  6. package/dist/esm/common/internal/indexing.js +1 -1
  7. package/dist/esm/common/ndarray-core.js +1 -1
  8. package/dist/esm/common/ops/advanced.js +1 -1
  9. package/dist/esm/common/ops/arithmetic.js +1 -1
  10. package/dist/esm/common/ops/bitwise.js +1 -1
  11. package/dist/esm/common/ops/comparison.js +1 -1
  12. package/dist/esm/common/ops/complex.js +1 -1
  13. package/dist/esm/common/ops/exponential.js +1 -1
  14. package/dist/esm/common/ops/fft.js +1 -1
  15. package/dist/esm/common/ops/formatting.js +1 -1
  16. package/dist/esm/common/ops/gradient.js +1 -1
  17. package/dist/esm/common/ops/hyperbolic.js +1 -1
  18. package/dist/esm/common/ops/linalg.js +2 -2
  19. package/dist/esm/common/ops/logic.js +1 -1
  20. package/dist/esm/common/ops/random.js +1 -1
  21. package/dist/esm/common/ops/reduction.js +1 -1
  22. package/dist/esm/common/ops/rounding.js +1 -1
  23. package/dist/esm/common/ops/sets.js +1 -1
  24. package/dist/esm/common/ops/shape.js +1 -1
  25. package/dist/esm/common/ops/sorting.js +1 -1
  26. package/dist/esm/common/ops/statistics.js +1 -1
  27. package/dist/esm/common/ops/trig.js +1 -1
  28. package/dist/esm/common/storage.js +1 -1
  29. package/dist/esm/common/wasm/abs.js +1 -0
  30. package/dist/esm/common/wasm/add.js +1 -0
  31. package/dist/esm/common/wasm/arccos.js +1 -0
  32. package/dist/esm/common/wasm/arcsin.js +1 -0
  33. package/dist/esm/common/wasm/arctan.js +1 -0
  34. package/dist/esm/common/wasm/argpartition.js +1 -0
  35. package/dist/esm/common/wasm/argsort.js +1 -0
  36. package/dist/esm/common/wasm/bins/abs.wasm.js +1 -0
  37. package/dist/esm/common/wasm/bins/add.wasm.js +1 -0
  38. package/dist/esm/common/wasm/bins/arccos.wasm.js +1 -0
  39. package/dist/esm/common/wasm/bins/arcsin.wasm.js +1 -0
  40. package/dist/esm/common/wasm/bins/arctan.wasm.js +1 -0
  41. package/dist/esm/common/wasm/bins/argpartition.wasm.js +1 -0
  42. package/dist/esm/common/wasm/bins/argsort.wasm.js +1 -0
  43. package/dist/esm/common/wasm/bins/bitwise_and.wasm.js +1 -0
  44. package/dist/esm/common/wasm/bins/bitwise_count.wasm.js +1 -0
  45. package/dist/esm/common/wasm/bins/bitwise_not.wasm.js +1 -0
  46. package/dist/esm/common/wasm/bins/bitwise_or.wasm.js +1 -0
  47. package/dist/esm/common/wasm/bins/bitwise_xor.wasm.js +1 -0
  48. package/dist/esm/common/wasm/bins/cholesky.wasm.js +1 -0
  49. package/dist/esm/common/wasm/bins/clip.wasm.js +1 -0
  50. package/dist/esm/common/wasm/bins/convolve.wasm.js +1 -0
  51. package/dist/esm/common/wasm/bins/copysign.wasm.js +1 -0
  52. package/dist/esm/common/wasm/bins/correlate.wasm.js +1 -0
  53. package/dist/esm/common/wasm/bins/cos.wasm.js +1 -0
  54. package/dist/esm/common/wasm/bins/cosh.wasm.js +1 -0
  55. package/dist/esm/common/wasm/bins/cross.wasm.js +1 -0
  56. package/dist/esm/common/wasm/bins/diff.wasm.js +1 -0
  57. package/dist/esm/common/wasm/bins/divide.wasm.js +1 -0
  58. package/dist/esm/common/wasm/bins/dot.wasm.js +1 -0
  59. package/dist/esm/common/wasm/bins/exp.wasm.js +1 -0
  60. package/dist/esm/common/wasm/bins/exp2.wasm.js +1 -0
  61. package/dist/esm/common/wasm/bins/fft.wasm.js +1 -0
  62. package/dist/esm/common/wasm/bins/flip.wasm.js +1 -0
  63. package/dist/esm/common/wasm/bins/frexp.wasm.js +1 -0
  64. package/dist/esm/common/wasm/bins/gather.wasm.js +1 -0
  65. package/dist/esm/common/wasm/bins/gcd.wasm.js +1 -0
  66. package/dist/esm/common/wasm/bins/gradient.wasm.js +1 -0
  67. package/dist/esm/common/wasm/bins/heaviside.wasm.js +1 -0
  68. package/dist/esm/common/wasm/bins/hypot.wasm.js +1 -0
  69. package/dist/esm/common/wasm/bins/indices.wasm.js +1 -0
  70. package/dist/esm/common/wasm/bins/inner.wasm.js +1 -0
  71. package/dist/esm/common/wasm/bins/kron.wasm.js +1 -0
  72. package/dist/esm/common/wasm/bins/ldexp.wasm.js +1 -0
  73. package/dist/esm/common/wasm/bins/left_shift.wasm.js +1 -0
  74. package/dist/esm/common/wasm/bins/lexsort.wasm.js +1 -0
  75. package/dist/esm/common/wasm/bins/logaddexp.wasm.js +1 -0
  76. package/dist/esm/common/wasm/bins/logical_and.wasm.js +1 -0
  77. package/dist/esm/common/wasm/bins/logical_not.wasm.js +1 -0
  78. package/dist/esm/common/wasm/bins/logical_or.wasm.js +1 -0
  79. package/dist/esm/common/wasm/bins/logical_xor.wasm.js +1 -0
  80. package/dist/esm/common/wasm/bins/matmul.wasm.js +1 -0
  81. package/dist/esm/common/wasm/bins/matvec.wasm.js +1 -0
  82. package/dist/esm/common/wasm/bins/max.wasm.js +1 -0
  83. package/dist/esm/common/wasm/bins/min.wasm.js +1 -0
  84. package/dist/esm/common/wasm/bins/mul.wasm.js +1 -0
  85. package/dist/esm/common/wasm/bins/neg.wasm.js +1 -0
  86. package/dist/esm/common/wasm/bins/outer.wasm.js +1 -0
  87. package/dist/esm/common/wasm/bins/pad.wasm.js +1 -0
  88. package/dist/esm/common/wasm/bins/partition.wasm.js +1 -0
  89. package/dist/esm/common/wasm/bins/power.wasm.js +1 -0
  90. package/dist/esm/common/wasm/bins/qr.wasm.js +1 -0
  91. package/dist/esm/common/wasm/bins/reciprocal.wasm.js +1 -0
  92. package/dist/esm/common/wasm/bins/reduce_all.wasm.js +1 -0
  93. package/dist/esm/common/wasm/bins/reduce_any.wasm.js +1 -0
  94. package/dist/esm/common/wasm/bins/reduce_argmax.wasm.js +1 -0
  95. package/dist/esm/common/wasm/bins/reduce_argmin.wasm.js +1 -0
  96. package/dist/esm/common/wasm/bins/reduce_count_nz.wasm.js +1 -0
  97. package/dist/esm/common/wasm/bins/reduce_max.wasm.js +1 -0
  98. package/dist/esm/common/wasm/bins/reduce_mean.wasm.js +1 -0
  99. package/dist/esm/common/wasm/bins/reduce_min.wasm.js +1 -0
  100. package/dist/esm/common/wasm/bins/reduce_nanmax.wasm.js +1 -0
  101. package/dist/esm/common/wasm/bins/reduce_nanmin.wasm.js +1 -0
  102. package/dist/esm/common/wasm/bins/reduce_nansum.wasm.js +1 -0
  103. package/dist/esm/common/wasm/bins/reduce_prod.wasm.js +1 -0
  104. package/dist/esm/common/wasm/bins/reduce_quantile.wasm.js +1 -0
  105. package/dist/esm/common/wasm/bins/reduce_std.wasm.js +1 -0
  106. package/dist/esm/common/wasm/bins/reduce_sum.wasm.js +1 -0
  107. package/dist/esm/common/wasm/bins/reduce_var.wasm.js +1 -0
  108. package/dist/esm/common/wasm/bins/repeat.wasm.js +1 -0
  109. package/dist/esm/common/wasm/bins/right_shift.wasm.js +1 -0
  110. package/dist/esm/common/wasm/bins/rng.wasm.js +1 -0
  111. package/dist/esm/common/wasm/bins/roll.wasm.js +1 -0
  112. package/dist/esm/common/wasm/bins/rot90.wasm.js +1 -0
  113. package/dist/esm/common/wasm/bins/searchsorted.wasm.js +1 -0
  114. package/dist/esm/common/wasm/bins/sign.wasm.js +1 -0
  115. package/dist/esm/common/wasm/bins/sinh.wasm.js +1 -0
  116. package/dist/esm/common/wasm/bins/sort.wasm.js +1 -0
  117. package/dist/esm/common/wasm/bins/sqrt.wasm.js +1 -0
  118. package/dist/esm/common/wasm/bins/square.wasm.js +1 -0
  119. package/dist/esm/common/wasm/bins/sub.wasm.js +1 -0
  120. package/dist/esm/common/wasm/bins/svd.wasm.js +1 -0
  121. package/dist/esm/common/wasm/bins/tan.wasm.js +1 -0
  122. package/dist/esm/common/wasm/bins/tanh.wasm.js +1 -0
  123. package/dist/esm/common/wasm/bins/tile.wasm.js +1 -0
  124. package/dist/esm/common/wasm/bins/vdot.wasm.js +1 -0
  125. package/dist/esm/common/wasm/bins/vecdot.wasm.js +1 -0
  126. package/dist/esm/common/wasm/bins/vecmat.wasm.js +1 -0
  127. package/dist/esm/common/wasm/bitwise_and.js +1 -0
  128. package/dist/esm/common/wasm/bitwise_count.js +1 -0
  129. package/dist/esm/common/wasm/bitwise_not.js +1 -0
  130. package/dist/esm/common/wasm/bitwise_or.js +1 -0
  131. package/dist/esm/common/wasm/bitwise_xor.js +1 -0
  132. package/dist/esm/common/wasm/cholesky.js +1 -0
  133. package/dist/esm/common/wasm/clip.js +1 -0
  134. package/dist/esm/common/wasm/config.js +1 -0
  135. package/dist/esm/common/wasm/convolve.js +1 -0
  136. package/dist/esm/common/wasm/copysign.js +1 -0
  137. package/dist/esm/common/wasm/correlate.js +1 -0
  138. package/dist/esm/common/wasm/cos.js +1 -0
  139. package/dist/esm/common/wasm/cosh.js +1 -0
  140. package/dist/esm/common/wasm/cross.js +1 -0
  141. package/dist/esm/common/wasm/diff.js +1 -0
  142. package/dist/esm/common/wasm/divide.js +1 -0
  143. package/dist/esm/common/wasm/dot.js +1 -0
  144. package/dist/esm/common/wasm/exp.js +1 -0
  145. package/dist/esm/common/wasm/exp2.js +1 -0
  146. package/dist/esm/common/wasm/fft.js +1 -0
  147. package/dist/esm/common/wasm/flip.js +1 -0
  148. package/dist/esm/common/wasm/frexp.js +1 -0
  149. package/dist/esm/common/wasm/gather.js +1 -0
  150. package/dist/esm/common/wasm/gcd.js +1 -0
  151. package/dist/esm/common/wasm/gradient.js +1 -0
  152. package/dist/esm/common/wasm/heaviside.js +1 -0
  153. package/dist/esm/common/wasm/hypot.js +1 -0
  154. package/dist/esm/common/wasm/indices.js +1 -0
  155. package/dist/esm/common/wasm/inner.js +1 -0
  156. package/dist/esm/common/wasm/kron.js +1 -0
  157. package/dist/esm/common/wasm/ldexp.js +1 -0
  158. package/dist/esm/common/wasm/left_shift.js +1 -0
  159. package/dist/esm/common/wasm/lexsort.js +1 -0
  160. package/dist/esm/common/wasm/logaddexp.js +1 -0
  161. package/dist/esm/common/wasm/logical_and.js +1 -0
  162. package/dist/esm/common/wasm/logical_not.js +1 -0
  163. package/dist/esm/common/wasm/logical_or.js +1 -0
  164. package/dist/esm/common/wasm/logical_xor.js +1 -0
  165. package/dist/esm/common/wasm/matmul.js +1 -0
  166. package/dist/esm/common/wasm/matvec.js +1 -0
  167. package/dist/esm/common/wasm/max.js +1 -0
  168. package/dist/esm/common/wasm/min.js +1 -0
  169. package/dist/esm/common/wasm/mul.js +1 -0
  170. package/dist/esm/common/wasm/neg.js +1 -0
  171. package/dist/esm/common/wasm/outer.js +1 -0
  172. package/dist/esm/common/wasm/pad.js +1 -0
  173. package/dist/esm/common/wasm/partition.js +1 -0
  174. package/dist/esm/common/wasm/power.js +1 -0
  175. package/dist/esm/common/wasm/qr.js +1 -0
  176. package/dist/esm/common/wasm/reciprocal.js +1 -0
  177. package/dist/esm/common/wasm/reduce_all.js +1 -0
  178. package/dist/esm/common/wasm/reduce_any.js +1 -0
  179. package/dist/esm/common/wasm/reduce_argmax.js +1 -0
  180. package/dist/esm/common/wasm/reduce_argmin.js +1 -0
  181. package/dist/esm/common/wasm/reduce_count_nz.js +1 -0
  182. package/dist/esm/common/wasm/reduce_max.js +1 -0
  183. package/dist/esm/common/wasm/reduce_mean.js +1 -0
  184. package/dist/esm/common/wasm/reduce_min.js +1 -0
  185. package/dist/esm/common/wasm/reduce_nanmax.js +1 -0
  186. package/dist/esm/common/wasm/reduce_nanmin.js +1 -0
  187. package/dist/esm/common/wasm/reduce_nansum.js +1 -0
  188. package/dist/esm/common/wasm/reduce_prod.js +1 -0
  189. package/dist/esm/common/wasm/reduce_quantile.js +1 -0
  190. package/dist/esm/common/wasm/reduce_std.js +1 -0
  191. package/dist/esm/common/wasm/reduce_sum.js +1 -0
  192. package/dist/esm/common/wasm/reduce_var.js +1 -0
  193. package/dist/esm/common/wasm/repeat.js +1 -0
  194. package/dist/esm/common/wasm/right_shift.js +1 -0
  195. package/dist/esm/common/wasm/rng.js +1 -0
  196. package/dist/esm/common/wasm/roll.js +1 -0
  197. package/dist/esm/common/wasm/rot90.js +1 -0
  198. package/dist/esm/common/wasm/runtime.js +1 -0
  199. package/dist/esm/common/wasm/searchsorted.js +1 -0
  200. package/dist/esm/common/wasm/sign.js +1 -0
  201. package/dist/esm/common/wasm/sinh.js +1 -0
  202. package/dist/esm/common/wasm/sort.js +1 -0
  203. package/dist/esm/common/wasm/sqrt.js +1 -0
  204. package/dist/esm/common/wasm/square.js +1 -0
  205. package/dist/esm/common/wasm/sub.js +1 -0
  206. package/dist/esm/common/wasm/svd.js +1 -0
  207. package/dist/esm/common/wasm/tan.js +1 -0
  208. package/dist/esm/common/wasm/tanh.js +1 -0
  209. package/dist/esm/common/wasm/tile.js +1 -0
  210. package/dist/esm/common/wasm/vdot.js +1 -0
  211. package/dist/esm/common/wasm/vecdot.js +1 -0
  212. package/dist/esm/common/wasm/vecmat.js +1 -0
  213. package/dist/esm/core/advanced.js +1 -1
  214. package/dist/esm/core/arithmetic.js +1 -1
  215. package/dist/esm/core/bitwise.js +1 -1
  216. package/dist/esm/core/complex.js +1 -1
  217. package/dist/esm/core/creation.js +1 -1
  218. package/dist/esm/core/formatting.js +1 -1
  219. package/dist/esm/core/gradient.js +1 -1
  220. package/dist/esm/core/index.js +1 -1
  221. package/dist/esm/core/linalg.js +1 -1
  222. package/dist/esm/core/logic.js +1 -1
  223. package/dist/esm/core/polynomial.js +1 -1
  224. package/dist/esm/core/reduction.js +1 -1
  225. package/dist/esm/core/rounding.js +1 -1
  226. package/dist/esm/core/sets.js +1 -1
  227. package/dist/esm/core/shape-extra.js +1 -1
  228. package/dist/esm/core/shape.js +1 -1
  229. package/dist/esm/core/sorting.js +1 -1
  230. package/dist/esm/core/statistics.js +1 -1
  231. package/dist/esm/core/trig.js +1 -1
  232. package/dist/esm/core/typechecking.js +1 -1
  233. package/dist/esm/core/types.js +1 -1
  234. package/dist/esm/core/utility.js +1 -1
  235. package/dist/esm/core.js +1 -1
  236. package/dist/esm/full/index.js +1 -1
  237. package/dist/esm/full/ndarray.js +1 -1
  238. package/dist/esm/index.js +1 -1
  239. package/dist/esm/io/file-ops.js +1 -0
  240. package/dist/esm/io/filesystem.js +1 -0
  241. package/dist/esm/io/index.js +1 -1
  242. package/dist/esm/io/npy/format.js +1 -1
  243. package/dist/esm/io/npy/index.js +1 -1
  244. package/dist/esm/io/npy/parser.js +1 -1
  245. package/dist/esm/io/npy/serializer.js +2 -2
  246. package/dist/esm/io/npz/index.js +1 -1
  247. package/dist/esm/io/npz/parser.js +1 -1
  248. package/dist/esm/io/npz/serializer.js +1 -1
  249. package/dist/esm/io/txt/index.js +1 -1
  250. package/dist/esm/io/txt/parser.js +1 -1
  251. package/dist/esm/io/zip/index.js +1 -1
  252. package/dist/esm/io/zip/reader.js +1 -1
  253. package/dist/esm/io/zip/types.js +1 -1
  254. package/dist/esm/io/zip/writer.js +1 -1
  255. package/dist/esm/node.js +1 -1
  256. package/dist/numpy-ts.browser.js +6 -6
  257. package/dist/types/common/dtype.d.ts +9 -4
  258. package/dist/types/common/float16-conv.d.ts +27 -0
  259. package/dist/types/common/internal/indexing.d.ts +15 -18
  260. package/dist/types/common/ndarray-core.d.ts +3 -13
  261. package/dist/types/common/ops/linalg.d.ts +13 -12
  262. package/dist/types/common/ops/random.d.ts +10 -5
  263. package/dist/types/common/ops/sets.d.ts +1 -1
  264. package/dist/types/common/ops/shape.d.ts +11 -0
  265. package/dist/types/common/storage.d.ts +4 -0
  266. package/dist/types/common/wasm/abs.d.ts +14 -0
  267. package/dist/types/common/wasm/add.d.ts +19 -0
  268. package/dist/types/common/wasm/arccos.d.ts +15 -0
  269. package/dist/types/common/wasm/arcsin.d.ts +15 -0
  270. package/dist/types/common/wasm/arctan.d.ts +15 -0
  271. package/dist/types/common/wasm/argpartition.d.ts +18 -0
  272. package/dist/types/common/wasm/argsort.d.ts +18 -0
  273. package/dist/types/common/wasm/bins/abs.wasm.d.ts +7 -0
  274. package/dist/types/common/wasm/bins/add.wasm.d.ts +17 -0
  275. package/dist/types/common/wasm/bins/arccos.wasm.d.ts +5 -0
  276. package/dist/types/common/wasm/bins/arcsin.wasm.d.ts +5 -0
  277. package/dist/types/common/wasm/bins/arctan.wasm.d.ts +5 -0
  278. package/dist/types/common/wasm/bins/argpartition.wasm.d.ts +21 -0
  279. package/dist/types/common/wasm/bins/argsort.wasm.d.ts +25 -0
  280. package/dist/types/common/wasm/bins/bitwise_and.wasm.d.ts +5 -0
  281. package/dist/types/common/wasm/bins/bitwise_count.wasm.d.ts +9 -0
  282. package/dist/types/common/wasm/bins/bitwise_not.wasm.d.ts +5 -0
  283. package/dist/types/common/wasm/bins/bitwise_or.wasm.d.ts +5 -0
  284. package/dist/types/common/wasm/bins/bitwise_xor.wasm.d.ts +5 -0
  285. package/dist/types/common/wasm/bins/cholesky.wasm.d.ts +3 -0
  286. package/dist/types/common/wasm/bins/clip.wasm.d.ts +11 -0
  287. package/dist/types/common/wasm/bins/convolve.wasm.d.ts +3 -0
  288. package/dist/types/common/wasm/bins/copysign.wasm.d.ts +21 -0
  289. package/dist/types/common/wasm/bins/correlate.wasm.d.ts +3 -0
  290. package/dist/types/common/wasm/bins/cos.wasm.d.ts +3 -0
  291. package/dist/types/common/wasm/bins/cosh.wasm.d.ts +5 -0
  292. package/dist/types/common/wasm/bins/cross.wasm.d.ts +9 -0
  293. package/dist/types/common/wasm/bins/diff.wasm.d.ts +13 -0
  294. package/dist/types/common/wasm/bins/divide.wasm.d.ts +23 -0
  295. package/dist/types/common/wasm/bins/dot.wasm.d.ts +9 -0
  296. package/dist/types/common/wasm/bins/exp.wasm.d.ts +5 -0
  297. package/dist/types/common/wasm/bins/exp2.wasm.d.ts +5 -0
  298. package/dist/types/common/wasm/bins/fft.wasm.d.ts +22 -0
  299. package/dist/types/common/wasm/bins/flip.wasm.d.ts +7 -0
  300. package/dist/types/common/wasm/bins/frexp.wasm.d.ts +2 -0
  301. package/dist/types/common/wasm/bins/gather.wasm.d.ts +32 -0
  302. package/dist/types/common/wasm/bins/gcd.wasm.d.ts +3 -0
  303. package/dist/types/common/wasm/bins/gradient.wasm.d.ts +11 -0
  304. package/dist/types/common/wasm/bins/heaviside.wasm.d.ts +5 -0
  305. package/dist/types/common/wasm/bins/hypot.wasm.d.ts +13 -0
  306. package/dist/types/common/wasm/bins/indices.wasm.d.ts +3 -0
  307. package/dist/types/common/wasm/bins/inner.wasm.d.ts +9 -0
  308. package/dist/types/common/wasm/bins/kron.wasm.d.ts +9 -0
  309. package/dist/types/common/wasm/bins/ldexp.wasm.d.ts +3 -0
  310. package/dist/types/common/wasm/bins/left_shift.wasm.d.ts +9 -0
  311. package/dist/types/common/wasm/bins/lexsort.wasm.d.ts +11 -0
  312. package/dist/types/common/wasm/bins/logaddexp.wasm.d.ts +21 -0
  313. package/dist/types/common/wasm/bins/logical_and.wasm.d.ts +13 -0
  314. package/dist/types/common/wasm/bins/logical_not.wasm.d.ts +7 -0
  315. package/dist/types/common/wasm/bins/logical_or.wasm.d.ts +13 -0
  316. package/dist/types/common/wasm/bins/logical_xor.wasm.d.ts +13 -0
  317. package/dist/types/common/wasm/bins/matmul.wasm.d.ts +9 -0
  318. package/dist/types/common/wasm/bins/matvec.wasm.d.ts +9 -0
  319. package/dist/types/common/wasm/bins/max.wasm.d.ts +21 -0
  320. package/dist/types/common/wasm/bins/min.wasm.d.ts +21 -0
  321. package/dist/types/common/wasm/bins/mul.wasm.d.ts +17 -0
  322. package/dist/types/common/wasm/bins/neg.wasm.d.ts +9 -0
  323. package/dist/types/common/wasm/bins/outer.wasm.d.ts +9 -0
  324. package/dist/types/common/wasm/bins/pad.wasm.d.ts +7 -0
  325. package/dist/types/common/wasm/bins/partition.wasm.d.ts +21 -0
  326. package/dist/types/common/wasm/bins/power.wasm.d.ts +13 -0
  327. package/dist/types/common/wasm/bins/qr.wasm.d.ts +3 -0
  328. package/dist/types/common/wasm/bins/reciprocal.wasm.d.ts +7 -0
  329. package/dist/types/common/wasm/bins/reduce_all.wasm.d.ts +7 -0
  330. package/dist/types/common/wasm/bins/reduce_any.wasm.d.ts +7 -0
  331. package/dist/types/common/wasm/bins/reduce_argmax.wasm.d.ts +11 -0
  332. package/dist/types/common/wasm/bins/reduce_argmin.wasm.d.ts +11 -0
  333. package/dist/types/common/wasm/bins/reduce_count_nz.wasm.d.ts +7 -0
  334. package/dist/types/common/wasm/bins/reduce_max.wasm.d.ts +20 -0
  335. package/dist/types/common/wasm/bins/reduce_mean.wasm.d.ts +21 -0
  336. package/dist/types/common/wasm/bins/reduce_min.wasm.d.ts +20 -0
  337. package/dist/types/common/wasm/bins/reduce_nanmax.wasm.d.ts +3 -0
  338. package/dist/types/common/wasm/bins/reduce_nanmin.wasm.d.ts +3 -0
  339. package/dist/types/common/wasm/bins/reduce_nansum.wasm.d.ts +3 -0
  340. package/dist/types/common/wasm/bins/reduce_prod.wasm.d.ts +19 -0
  341. package/dist/types/common/wasm/bins/reduce_quantile.wasm.d.ts +2 -0
  342. package/dist/types/common/wasm/bins/reduce_std.wasm.d.ts +11 -0
  343. package/dist/types/common/wasm/bins/reduce_sum.wasm.d.ts +17 -0
  344. package/dist/types/common/wasm/bins/reduce_var.wasm.d.ts +11 -0
  345. package/dist/types/common/wasm/bins/repeat.wasm.d.ts +7 -0
  346. package/dist/types/common/wasm/bins/right_shift.wasm.d.ts +17 -0
  347. package/dist/types/common/wasm/bins/rng.wasm.d.ts +60 -0
  348. package/dist/types/common/wasm/bins/roll.wasm.d.ts +7 -0
  349. package/dist/types/common/wasm/bins/rot90.wasm.d.ts +7 -0
  350. package/dist/types/common/wasm/bins/searchsorted.wasm.d.ts +21 -0
  351. package/dist/types/common/wasm/bins/sign.wasm.d.ts +7 -0
  352. package/dist/types/common/wasm/bins/sinh.wasm.d.ts +5 -0
  353. package/dist/types/common/wasm/bins/sort.wasm.d.ts +27 -0
  354. package/dist/types/common/wasm/bins/sqrt.wasm.d.ts +7 -0
  355. package/dist/types/common/wasm/bins/square.wasm.d.ts +9 -0
  356. package/dist/types/common/wasm/bins/sub.wasm.d.ts +17 -0
  357. package/dist/types/common/wasm/bins/svd.wasm.d.ts +2 -0
  358. package/dist/types/common/wasm/bins/tan.wasm.d.ts +3 -0
  359. package/dist/types/common/wasm/bins/tanh.wasm.d.ts +5 -0
  360. package/dist/types/common/wasm/bins/tile.wasm.d.ts +7 -0
  361. package/dist/types/common/wasm/bins/vdot.wasm.d.ts +3 -0
  362. package/dist/types/common/wasm/bins/vecdot.wasm.d.ts +9 -0
  363. package/dist/types/common/wasm/bins/vecmat.wasm.d.ts +9 -0
  364. package/dist/types/common/wasm/bitwise_and.d.ts +9 -0
  365. package/dist/types/common/wasm/bitwise_count.d.ts +11 -0
  366. package/dist/types/common/wasm/bitwise_not.d.ts +9 -0
  367. package/dist/types/common/wasm/bitwise_or.d.ts +9 -0
  368. package/dist/types/common/wasm/bitwise_xor.d.ts +9 -0
  369. package/dist/types/common/wasm/cholesky.d.ts +20 -0
  370. package/dist/types/common/wasm/clip.d.ts +13 -0
  371. package/dist/types/common/wasm/config.d.ts +21 -0
  372. package/dist/types/common/wasm/convolve.d.ts +14 -0
  373. package/dist/types/common/wasm/copysign.d.ts +19 -0
  374. package/dist/types/common/wasm/correlate.d.ts +14 -0
  375. package/dist/types/common/wasm/cos.d.ts +15 -0
  376. package/dist/types/common/wasm/cosh.d.ts +15 -0
  377. package/dist/types/common/wasm/cross.d.ts +15 -0
  378. package/dist/types/common/wasm/diff.d.ts +15 -0
  379. package/dist/types/common/wasm/divide.d.ts +11 -0
  380. package/dist/types/common/wasm/dot.d.ts +14 -0
  381. package/dist/types/common/wasm/exp.d.ts +15 -0
  382. package/dist/types/common/wasm/exp2.d.ts +15 -0
  383. package/dist/types/common/wasm/fft.d.ts +65 -0
  384. package/dist/types/common/wasm/flip.d.ts +13 -0
  385. package/dist/types/common/wasm/frexp.d.ts +9 -0
  386. package/dist/types/common/wasm/gather.d.ts +23 -0
  387. package/dist/types/common/wasm/gcd.d.ts +11 -0
  388. package/dist/types/common/wasm/gradient.d.ts +13 -0
  389. package/dist/types/common/wasm/heaviside.d.ts +11 -0
  390. package/dist/types/common/wasm/hypot.d.ts +21 -0
  391. package/dist/types/common/wasm/indices.d.ts +10 -0
  392. package/dist/types/common/wasm/inner.d.ts +20 -0
  393. package/dist/types/common/wasm/kron.d.ts +13 -0
  394. package/dist/types/common/wasm/ldexp.d.ts +9 -0
  395. package/dist/types/common/wasm/left_shift.d.ts +11 -0
  396. package/dist/types/common/wasm/lexsort.d.ts +14 -0
  397. package/dist/types/common/wasm/logaddexp.d.ts +21 -0
  398. package/dist/types/common/wasm/logical_and.d.ts +19 -0
  399. package/dist/types/common/wasm/logical_not.d.ts +13 -0
  400. package/dist/types/common/wasm/logical_or.d.ts +19 -0
  401. package/dist/types/common/wasm/logical_xor.d.ts +19 -0
  402. package/dist/types/common/wasm/matmul.d.ts +18 -0
  403. package/dist/types/common/wasm/matvec.d.ts +13 -0
  404. package/dist/types/common/wasm/max.d.ts +11 -0
  405. package/dist/types/common/wasm/min.d.ts +11 -0
  406. package/dist/types/common/wasm/mul.d.ts +19 -0
  407. package/dist/types/common/wasm/neg.d.ts +13 -0
  408. package/dist/types/common/wasm/outer.d.ts +13 -0
  409. package/dist/types/common/wasm/pad.d.ts +14 -0
  410. package/dist/types/common/wasm/partition.d.ts +20 -0
  411. package/dist/types/common/wasm/power.d.ts +19 -0
  412. package/dist/types/common/wasm/qr.d.ts +17 -0
  413. package/dist/types/common/wasm/reciprocal.d.ts +9 -0
  414. package/dist/types/common/wasm/reduce_all.d.ts +14 -0
  415. package/dist/types/common/wasm/reduce_any.d.ts +14 -0
  416. package/dist/types/common/wasm/reduce_argmax.d.ts +14 -0
  417. package/dist/types/common/wasm/reduce_argmin.d.ts +14 -0
  418. package/dist/types/common/wasm/reduce_count_nz.d.ts +14 -0
  419. package/dist/types/common/wasm/reduce_max.d.ts +19 -0
  420. package/dist/types/common/wasm/reduce_mean.d.ts +19 -0
  421. package/dist/types/common/wasm/reduce_min.d.ts +19 -0
  422. package/dist/types/common/wasm/reduce_nanmax.d.ts +14 -0
  423. package/dist/types/common/wasm/reduce_nanmin.d.ts +14 -0
  424. package/dist/types/common/wasm/reduce_nansum.d.ts +14 -0
  425. package/dist/types/common/wasm/reduce_prod.d.ts +20 -0
  426. package/dist/types/common/wasm/reduce_quantile.d.ts +15 -0
  427. package/dist/types/common/wasm/reduce_std.d.ts +14 -0
  428. package/dist/types/common/wasm/reduce_sum.d.ts +20 -0
  429. package/dist/types/common/wasm/reduce_var.d.ts +14 -0
  430. package/dist/types/common/wasm/repeat.d.ts +14 -0
  431. package/dist/types/common/wasm/right_shift.d.ts +11 -0
  432. package/dist/types/common/wasm/rng.d.ts +65 -0
  433. package/dist/types/common/wasm/roll.d.ts +13 -0
  434. package/dist/types/common/wasm/rot90.d.ts +14 -0
  435. package/dist/types/common/wasm/runtime.d.ts +55 -0
  436. package/dist/types/common/wasm/searchsorted.d.ts +12 -0
  437. package/dist/types/common/wasm/sign.d.ts +14 -0
  438. package/dist/types/common/wasm/sinh.d.ts +15 -0
  439. package/dist/types/common/wasm/sort.d.ts +20 -0
  440. package/dist/types/common/wasm/sqrt.d.ts +15 -0
  441. package/dist/types/common/wasm/square.d.ts +13 -0
  442. package/dist/types/common/wasm/sub.d.ts +19 -0
  443. package/dist/types/common/wasm/svd.d.ts +18 -0
  444. package/dist/types/common/wasm/tan.d.ts +15 -0
  445. package/dist/types/common/wasm/tanh.d.ts +15 -0
  446. package/dist/types/common/wasm/tile.d.ts +14 -0
  447. package/dist/types/common/wasm/vdot.d.ts +16 -0
  448. package/dist/types/common/wasm/vecdot.d.ts +15 -0
  449. package/dist/types/common/wasm/vecmat.d.ts +13 -0
  450. package/dist/types/core/index.d.ts +94 -1
  451. package/dist/types/core/linalg.d.ts +10 -10
  452. package/dist/types/core/reduction.d.ts +17 -17
  453. package/dist/types/core/rounding.d.ts +0 -2
  454. package/dist/types/core/sets.d.ts +1 -1
  455. package/dist/types/core/sorting.d.ts +1 -1
  456. package/dist/types/full/index.d.ts +20 -18
  457. package/dist/types/full/ndarray.d.ts +16 -22
  458. package/dist/types/index.d.ts +18 -3
  459. package/dist/types/io/file-ops.d.ts +269 -0
  460. package/dist/types/io/filesystem.d.ts +21 -0
  461. package/dist/types/io/zip/types.d.ts +2 -1
  462. package/dist/types/node.d.ts +3 -275
  463. package/package.json +54 -35
  464. package/dist/numpy-ts.node-io.cjs +0 -8
  465. package/dist/numpy-ts.node-io.cjs.map +0 -7
  466. package/dist/numpy-ts.node-io.mjs +0 -8
  467. package/dist/numpy-ts.node-io.mjs.map +0 -7
  468. package/dist/numpy-ts.node.cjs +0 -8
  469. package/dist/numpy-ts.node.cjs.map +0 -7
@@ -1,7 +1,7 @@
1
- "use strict";var np=(()=>{var Ms=Object.defineProperty;var FN=Object.getOwnPropertyDescriptor;var BN=Object.getOwnPropertyNames;var TN=Object.prototype.hasOwnProperty;var EN=(r,t)=>{for(var e in t)Ms(r,e,{get:t[e],enumerable:!0})},ON=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of BN(t))!TN.call(r,o)&&o!==e&&Ms(r,o,{get:()=>t[o],enumerable:!(n=FN(t,o))||n.enumerable});return r};var UN=r=>ON(Ms({},"__esModule",{value:!0}),r);var v1={};EN(v1,{Complex:()=>U,DTYPE_TO_DESCR:()=>Ns,InvalidNpyError:()=>hr,NDArray:()=>er,NDArrayCore:()=>P,SUPPORTED_DTYPES:()=>$c,UnsupportedDTypeError:()=>jr,__version__:()=>M1,abs:()=>Yc,absolute:()=>Yc,acos:()=>ol,acosh:()=>ul,add:()=>Qd,all:()=>kg,allclose:()=>St,amax:()=>We,amin:()=>Ye,angle:()=>Jb,any:()=>Rg,append:()=>ph,apply_along_axis:()=>Jd,apply_over_axes:()=>Kd,arange:()=>eA,arccos:()=>ol,arccosh:()=>ul,arcsin:()=>nl,arcsinh:()=>il,arctan:()=>al,arctan2:()=>sl,arctanh:()=>cl,argmax:()=>Fg,argmin:()=>vg,argpartition:()=>jh,argsort:()=>qh,argwhere:()=>Gh,around:()=>rl,array:()=>tA,array2string:()=>es,array_equal:()=>ja,array_equiv:()=>La,array_repr:()=>ns,array_split:()=>Qo,array_str:()=>Mt,asanyarray:()=>yA,asarray:()=>uA,asarray_chkfinite:()=>AA,ascontiguousarray:()=>dA,asfortranarray:()=>bA,asin:()=>nl,asinh:()=>il,atan:()=>al,atan2:()=>sl,atanh:()=>cl,atleast_1d:()=>ea,atleast_2d:()=>na,atleast_3d:()=>oa,average:()=>$g,base_repr:()=>rs,binary_repr:()=>ts,bincount:()=>Xh,bindex:()=>kd,bitwise_and:()=>Vb,bitwise_count:()=>Yb,bitwise_invert:()=>Zc,bitwise_left_shift:()=>Xc,bitwise_not:()=>Zc,bitwise_or:()=>Pb,bitwise_right_shift:()=>Jc,bitwise_xor:()=>jb,block:()=>Mh,broadcast_arrays:()=>Oa,broadcast_shapes:()=>Ua,broadcast_to:()=>Bd,byteswap:()=>cs,can_cast:()=>mo,cbrt:()=>gb,ceil:()=>rh,choose:()=>Od,clip:()=>Fb,column_stack:()=>_h,common_type:()=>ys,compress:()=>Ud,concat:()=>el,concatenate:()=>el,conj:()=>Kc,conjugate:()=>Kc,convolve:()=>Qh,copy:()=>pA,copysign:()=>ag,copyto:()=>qa,corrcoef:()=>r0,correlate:()=>Kh,cos:()=>n0,cosh:()=>f0,count_nonzero:()=>xa,cov:()=>Hh,cross:()=>LA,cumprod:()=>Hc,cumsum:()=>Qc,cumulative_prod:()=>Hc,cumulative_sum:()=>Qc,deg2rad:()=>u0,degrees:()=>s0,delete:()=>tl,delete_:()=>tl,diag:()=>hA,diag_indices:()=>jd,diag_indices_from:()=>Ld,diagflat:()=>NA,diagonal:()=>TA,diff:()=>vA,digitize:()=>Jh,divide:()=>yb,divmod:()=>Nb,dot:()=>BA,dsplit:()=>ta,dstack:()=>zh,ediff1d:()=>FA,einsum:()=>Vo,einsum_path:()=>Po,empty:()=>Hb,empty_like:()=>fA,equal:()=>pg,exp:()=>eb,exp2:()=>nb,expand_dims:()=>Nh,expm1:()=>ob,extract:()=>Zh,eye:()=>sA,fabs:()=>hb,fft:()=>_1,fill:()=>ms,fill_diagonal:()=>Pa,fix:()=>th,flatnonzero:()=>Yh,flatten:()=>Ah,flip:()=>Th,fliplr:()=>Eh,flipud:()=>Oh,float_power:()=>Sb,floor:()=>eh,floor_divide:()=>db,fmax:()=>Eb,fmin:()=>Ob,fmod:()=>wb,format_float_positional:()=>Qa,format_float_scientific:()=>Ha,frexp:()=>Ib,frombuffer:()=>wA,fromfile:()=>MA,fromfunction:()=>IA,fromiter:()=>zA,fromregex:()=>I1,fromstring:()=>_A,full:()=>rA,full_like:()=>mA,gcd:()=>zb,genfromtxt:()=>w1,geomspace:()=>aA,get_printoptions:()=>Ja,geterr:()=>Ya,gradient:()=>Ea,greater:()=>cg,greater_equal:()=>lg,heaviside:()=>Cb,histogram:()=>va,histogram2d:()=>Fa,histogram_bin_edges:()=>Ta,histogramdd:()=>Ba,hsplit:()=>ra,hstack:()=>Ih,hypot:()=>a0,i0:()=>qb,identity:()=>iA,iindex:()=>$d,imag:()=>Xb,in1d:()=>ah,indices:()=>qd,inner:()=>UA,insert:()=>yh,interp:()=>$b,intersect1d:()=>sh,invert:()=>Lb,isclose:()=>dg,iscomplex:()=>eg,iscomplexobj:()=>ya,isdtype:()=>ha,isfinite:()=>JA,isfortran:()=>ba,isin:()=>ih,isinf:()=>KA,isnan:()=>QA,isnat:()=>HA,isneginf:()=>rg,isposinf:()=>tg,isreal:()=>ng,isrealobj:()=>da,isscalar:()=>Aa,issubdtype:()=>As,item:()=>ss,iterable:()=>ga,ix_:()=>Va,kron:()=>EA,lcm:()=>_b,ldexp:()=>Mb,left_shift:()=>Xc,less:()=>fg,less_equal:()=>mg,lexsort:()=>Vh,linalg:()=>Zo,linspace:()=>nA,loadNpz:()=>x1,loadNpzSync:()=>C1,log:()=>ab,log10:()=>ib,log1p:()=>ub,log2:()=>sb,logaddexp:()=>cb,logaddexp2:()=>lb,logical_and:()=>GA,logical_not:()=>ZA,logical_or:()=>YA,logical_xor:()=>XA,logspace:()=>oA,mask_indices:()=>Xd,matmul:()=>WA,matrix_transpose:()=>qA,matvec:()=>PA,max:()=>We,maximum:()=>Bb,may_share_memory:()=>Wa,mean:()=>zg,median:()=>Eg,meshgrid:()=>Wc,min:()=>Ye,min_scalar_type:()=>bs,minimum:()=>Tb,mintypecode:()=>hs,mod:()=>pb,modf:()=>vb,moveaxis:()=>xh,multiply:()=>rb,nan_to_num:()=>Ub,nanargmax:()=>Zg,nanargmin:()=>Yg,nancumprod:()=>Jg,nancumsum:()=>Xg,nanmax:()=>Gg,nanmean:()=>Pg,nanmedian:()=>Kg,nanmin:()=>Wg,nanpercentile:()=>Hg,nanprod:()=>Vg,nanquantile:()=>Qg,nanstd:()=>Lg,nansum:()=>qg,nanvar:()=>jg,ndim:()=>os,negative:()=>fb,nextafter:()=>ig,nonzero:()=>Wh,not_equal:()=>yg,ones:()=>Qb,ones_like:()=>lA,outer:()=>$A,packbits:()=>Wb,pad:()=>dh,parseNpy:()=>A1,parseNpyData:()=>h1,parseNpyHeader:()=>g1,parseNpz:()=>N1,parseNpzSync:()=>D1,parseTxt:()=>S1,partition:()=>Ph,percentile:()=>Og,permute_dims:()=>VA,place:()=>ka,poly:()=>bg,polyadd:()=>Ag,polyder:()=>gg,polydiv:()=>hg,polyfit:()=>Ng,polyint:()=>Dg,polymul:()=>xg,polysub:()=>Cg,polyval:()=>Sg,positive:()=>bb,pow:()=>Gc,power:()=>Gc,printoptions:()=>Ka,prod:()=>_g,promote_types:()=>Na,ptp:()=>Mg,put:()=>_t,put_along_axis:()=>$a,putmask:()=>Ra,quantile:()=>Ug,rad2deg:()=>c0,radians:()=>i0,random:()=>z1,ravel:()=>gh,ravel_multi_index:()=>Vd,real:()=>Zb,real_if_close:()=>og,reciprocal:()=>Ab,remainder:()=>xb,repeat:()=>Bh,require:()=>gA,reshape:()=>bh,resize:()=>kh,result_type:()=>ds,right_shift:()=>Jc,rint:()=>nh,roll:()=>$h,rollaxis:()=>Ch,roots:()=>wg,rot90:()=>Uh,round:()=>rl,round_:()=>wa,row_stack:()=>Jo,searchsorted:()=>wt,select:()=>Rd,serializeNpy:()=>yo,serializeNpz:()=>wd,serializeNpzSync:()=>Id,serializeTxt:()=>Fd,set_printoptions:()=>Xa,setdiff1d:()=>uh,seterr:()=>Za,setxor1d:()=>ch,shape:()=>fo,shares_memory:()=>Ga,sign:()=>mb,signbit:()=>sg,sin:()=>e0,sinc:()=>Rb,sinh:()=>l0,size:()=>as,sort:()=>Rh,sort_complex:()=>Lh,spacing:()=>ug,split:()=>Ko,sqrt:()=>tb,square:()=>Db,squeeze:()=>hh,stack:()=>Sh,std:()=>Tg,subtract:()=>Hd,sum:()=>Ig,swapaxes:()=>Dh,take:()=>Td,take_along_axis:()=>Ed,tan:()=>o0,tanh:()=>m0,tensordot:()=>kA,tile:()=>Fh,tobytes:()=>us,tofile:()=>fs,tolist:()=>is,trace:()=>Hr,transpose:()=>OA,trapezoid:()=>t0,tri:()=>DA,tril:()=>xA,tril_indices:()=>Wd,tril_indices_from:()=>Gd,trim_zeros:()=>fh,triu:()=>CA,triu_indices:()=>Yd,triu_indices_from:()=>Zd,true_divide:()=>Ro,trunc:()=>oh,typename:()=>gs,union1d:()=>lh,unique:()=>Ia,unique_all:()=>za,unique_counts:()=>_a,unique_inverse:()=>Ma,unique_values:()=>mh,unpackbits:()=>Gb,unravel_index:()=>Pd,unstack:()=>vh,unwrap:()=>kb,vander:()=>SA,var:()=>ma,variance:()=>Bg,vdot:()=>jo,vecdot:()=>RA,vecmat:()=>jA,view:()=>ls,vsplit:()=>Ho,vstack:()=>wh,where:()=>Da,zeros:()=>Kb,zeros_like:()=>cA});var U=class r{constructor(t,e=0){this.re=t,this.im=e}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new r(this.re,-this.im)}add(t){return typeof t=="number"?new r(this.re+t,this.im):new r(this.re+t.re,this.im+t.im)}sub(t){return typeof t=="number"?new r(this.re-t,this.im):new r(this.re-t.re,this.im-t.im)}mul(t){return typeof t=="number"?new r(this.re*t,this.im*t):new r(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)}div(t){if(typeof t=="number")return new r(this.re/t,this.im/t);let e=t.re*t.re+t.im*t.im;return new r((this.re*t.re+this.im*t.im)/e,(this.im*t.re-this.re*t.im)/e)}neg(){return new r(-this.re,-this.im)}equals(t){return this.re===t.re&&this.im===t.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(t){if(t instanceof r)return t;if(typeof t=="number")return new r(t,0);if(Array.isArray(t))return new r(t[0]??0,t[1]??0);if(typeof t=="object"&&t!==null&&"re"in t)return new r(t.re??0,t.im??0);throw new Error(`Cannot convert ${t} to Complex`)}static isComplex(t){return t instanceof r||typeof t=="object"&&t!==null&&"re"in t&&"im"in t}};function Dl(r){return r instanceof U||typeof r=="object"&&r!==null&&"re"in r}function wo(r){if(!r.includes(":")){if(r.includes("."))throw new Error(`Invalid slice index: "${r}" (must be integer)`);let a=parseInt(r,10);if(isNaN(a))throw new Error(`Invalid slice index: "${r}"`);return{start:a,stop:null,step:1,isIndex:!0}}let t=r.split(":");if(t.length>3)throw new Error(`Invalid slice notation: "${r}" (too many colons)`);let e=t[0]===""?null:parseInt(t[0],10),n=t[1]===""||t[1]===void 0?null:parseInt(t[1],10),o=t[2]===""||t[2]===void 0?1:parseInt(t[2],10);if(e!==null&&isNaN(e))throw new Error(`Invalid start index in slice: "${r}"`);if(n!==null&&isNaN(n))throw new Error(`Invalid stop index in slice: "${r}"`);if(isNaN(o))throw new Error(`Invalid step in slice: "${r}"`);if(o===0)throw new Error("Slice step cannot be zero");return{start:e,stop:n,step:o,isIndex:!1}}function Io(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let u=e<0?t+e:e;if(u<0||u>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:u,stop:u+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var tr="float64";function K(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function Wr(r){switch(r){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function Ur(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function Or(r){return r==="float64"||r==="float32"}function E(r){return r==="int64"||r==="uint64"}function B(r){return r==="complex64"||r==="complex128"}function L(r,t,e){if(B(r)){let n=e?` ${e}`:"";throw new TypeError(`ufunc '${t}' not supported for complex dtype '${r}'.${n}`)}}function Bt(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function or(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(B(r)||B(t)){if(B(r)&&B(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=B(r)?r:t,l=B(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(Or(r)||Or(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),u=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,i=u(r),s=u(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&i===s){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(o&&n&&i===s){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(e&&n||o&&a){let c=Math.max(i,s);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?i>s?r:s===8?"int16":s===16?"int32":s===32?"int64":"float64":o&&n?s>i?t:i===8?"int16":i===16?"int32":i===32?"int64":"float64":"float64"}var S=class r{constructor(t,e,n,o,a){this._isCContiguous=-1;this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){if(this._isCContiguous!==-1)return this._isCContiguous===1;let t=this._shape,e=this._strides,n=t.length,o;if(n===0)o=!0;else if(n===1)o=e[0]===1;else{o=!0;let a=1;for(let u=n-1;u>=0;u--){if(e[u]!==a){o=!1;break}a*=t[u]}}return this._isCContiguous=o?1:0,o}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=B(this._dtype),u;if(o===0)u=this._offset;else{let i=t;u=this._offset;for(let s=0;s<o;s++){let c=1;for(let f=s+1;f<o;f++)c*=e[f];let l=Math.floor(i/c);i=i%c,u+=l*n[s]}}if(a){let i=u*2,s=this._data[i],c=this._data[i+1];return new U(s,c)}return this._data[u]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,u=B(this._dtype),i;if(a===0)i=this._offset;else{let s=t;i=this._offset;for(let c=0;c<a;c++){let l=1;for(let m=c+1;m<a;m++)l*=n[m];let f=Math.floor(s/l);s=s%l,i+=f*o[c]}}if(u){let s=i*2,c,l;e instanceof U?(c=e.re,l=e.im):typeof e=="object"&&e!==null&&"re"in e?(c=e.re,l=e.im??0):(c=Number(e),l=0),this._data[s]=c,this._data[s+1]=l}else this._data[i]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];if(B(this._dtype)){let o=n*2,a=this._data[o],u=this._data[o+1];return new U(a,u)}return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];if(B(this._dtype)){let a=o*2,u,i;e instanceof U?(u=e.re,i=e.im):typeof e=="object"&&e!==null&&"re"in e?(u=e.re,i=e.im??0):(u=Number(e),i=0),this._data[a]=u,this._data[a+1]=i}else this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=B(e),a=K(e);if(!a)throw new Error(`Cannot copy array with dtype ${e}`);let u=o?n*2:n,i=new a(u);if(this.isCContiguous&&this._offset===0)if(E(e)){let s=this._data,c=i;for(let l=0;l<u;l++)c[l]=s[l]}else i.set(this._data.subarray(0,u));else if(E(e)){let s=i;for(let c=0;c<n;c++)s[c]=this.iget(c)}else if(o){let s=i;for(let c=0;c<n;c++){let l=this.iget(c);s[c*2]=l.re,s[c*2+1]=l.im}}else for(let s=0;s<n;s++)i[s]=this.iget(s);return new r(i,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let u=o??r._computeStrides(e),i=a??0;return new r(t,e,u,i,n)}static zeros(t,e=tr){let n=t.reduce((s,c)=>s*c,1),o=B(e),a=K(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,i=new a(u);return new r(i,t,r._computeStrides(t),0,e)}static ones(t,e=tr){let n=t.reduce((s,c)=>s*c,1),o=B(e),a=K(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let u=o?n*2:n,i=new a(u);if(E(e))i.fill(BigInt(1));else if(o){let s=i;for(let c=0;c<n;c++)s[c*2]=1,s[c*2+1]=0}else i.fill(1);return new r(i,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}};function lr(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var $N={threshold:1e3,edgeitems:3,precision:8,linewidth:75,floatmode:"maxprec",suppress:!0,separator:" ",prefix:"",suffix:"",nanstr:"nan",infstr:"inf",sign:"-",legacy:!1},ur={...$N};function Sl(r){ur={...ur,...r}}function wl(){return{...ur}}function Il(r){let t=null,e={_savedOptions:null,enter(){t={...ur},e._savedOptions=t,ur={...ur,...r}},exit(){t&&(ur=t,t=null,e._savedOptions=null)},apply(n){e.enter();try{return n()}finally{e.exit()}}};return e}function Et(r,t=null,e=!0,n=!0,o="k",a="-",u=null,i=null,s=null){let c=t??ur.precision;if(!Number.isFinite(r))return Number.isNaN(r)?ur.nanstr:(r>0?"":"-")+ur.infstr;let l;if(e&&t===null?(l=r.toString(),n&&!l.includes(".")&&!l.includes("e")&&(l+=".0")):l=r.toFixed(c),s!==null){let f=l.indexOf(".");if(f!==-1){let m=l.length-f-1;m<s&&(l+="0".repeat(s-m))}else n&&(l+="."+"0".repeat(s))}if(o!=="k"&&l.includes(".")){if(o==="."||o==="0"||o==="-"){let f=l.length;for(;f>0&&l[f-1]==="0";)f--;l=l.slice(0,f)}o==="0"&&l.endsWith(".")&&(l+="0"),o==="-"&&l.endsWith(".")&&(l=l.slice(0,-1))}if(r>=0&&!Object.is(r,-0)&&(a==="+"?l="+"+l:a===" "&&(l=" "+l)),u!==null&&l.length<u&&(l=" ".repeat(u-l.length)+l),i!==null){let f=l.indexOf(".");if(f!==-1){let m=l.length-f-1;m<i&&(l+="0".repeat(i-m))}}return l}function Tt(r,t=null,e=!0,n="k",o="-",a=null,u=2,i=null){let s=t??ur.precision;if(!Number.isFinite(r))return Number.isNaN(r)?ur.nanstr:(r>0?"":"-")+ur.infstr;let c=r.toExponential(s);if(i!==null){let d=c.indexOf("e"),b=c.slice(0,d),A=c.slice(d),g=b.indexOf(".");if(g!==-1){let h=b.length-g-1;h<i&&(c=b+"0".repeat(i-h)+A)}}if(n!=="k"){let d=c.indexOf("e"),b=c.slice(0,d),A=c.slice(d);b.includes(".")&&((n==="."||n==="0"||n==="-")&&(b=b.replace(/0+$/,"")),n==="0"&&b.endsWith(".")&&(b+="0"),n==="-"&&(b=b.replace(/\.$/,""))),c=b+A}let l=c.indexOf("e"),f=c.slice(0,l),m=c.slice(l+1),p=m[0]==="-"?"-":"+",y=m.replace(/^[+-]/,"");for(;y.length<u;)y="0"+y;return c=f+"e"+p+y,r>=0&&!Object.is(r,-0)&&(o==="+"?c="+"+c:o===" "&&(c=" "+c)),a!==null&&c.length<a&&(c=" ".repeat(a-c.length)+c),c}function zl(r,t=2,e=0){if(t<2||t>36)throw new Error("base must be between 2 and 36");r=Math.trunc(r);let n;if(r<0?n="-"+Math.abs(r).toString(t).toUpperCase():n=r.toString(t).toUpperCase(),e>0){let o="0".repeat(e);n.startsWith("-")?n="-"+o+n.slice(1):n=o+n}return n}function _l(r,t=null){if(r=Math.trunc(r),t!==null&&r<0){if(r=Math.pow(2,t)+r,r<0)throw new Error("width too small for negative number");let o=r.toString(2);return o.length<t&&(o="0".repeat(t-o.length)+o),o}let e;return r<0?e="-"+Math.abs(r).toString(2):e=r.toString(2),t!==null&&e.length<t&&(e="0".repeat(t-e.length)+e),e}function _o(r,t,e){if(r instanceof U){let n=_o(r.re,"float64",e),o=_o(Math.abs(r.im),"float64",e),a=r.im>=0?"+":"-";return`${n}${a}${o}j`}return typeof r=="boolean"?r?" True":"False":typeof r=="bigint"?r.toString():Number.isFinite(r)?t==="float32"||t==="float64"?e.suppress&&Math.abs(r)<1e-10&&r!==0?"0.":Et(r,e.precision,!1,!0,"k",e.sign):r.toString():Number.isNaN(r)?e.nanstr:(r>0?"":"-")+e.infstr}function kN(r,t){let e=[],n=r.shape,o=n.length,a=r.strides;function u(i,s){if(s===o){let m=0;for(let p=0;p<o;p++)m+=i[p]*a[p];e.push(r.iget(m));return}let c=n[s];if(n.reduce((m,p)=>m*p,1)>t.threshold&&c>2*t.edgeitems){for(let m=0;m<t.edgeitems;m++)i[s]=m,u(i,s+1);for(let m=c-t.edgeitems;m<c;m++)i[s]=m,u(i,s+1)}else for(let m=0;m<c;m++)i[s]=m,u(i,s+1)}return o>0?u(new Array(o).fill(0),0):e.push(r.iget(0)),e}function xl(r,t){return r<0||Object.is(r,-0)?"-"+Math.abs(r).toString()+".":t==="+"?"+"+r.toString()+".":t===" "?" "+r.toString()+".":r.toString()+"."}function at(r,t,e){let n=r.indexOf(".");if(n===-1)return r.padStart(t+(e>0?1+e:0));let o=r.slice(0,n),a=r.slice(n+1),u=o.padStart(t),i=e>0?a.padEnd(e):a;return u+"."+i}function Cl(r){let t=0,e=0;for(let n of r){let o=n.indexOf(".");o===-1?t=Math.max(t,n.length):(t=Math.max(t,o),e=Math.max(e,n.length-o-1))}return{maxLeft:t,maxRight:e}}function vs(r,t){let e=r.filter(m=>Number.isFinite(m));if(e.length===0){let m=r.map(y=>Number.isNaN(y)?t.nanstr:(y>0?"":"-")+t.infstr),p=m.length>0?Math.max(...m.map(y=>y.length)):1;return y=>Number.isNaN(y)?t.nanstr.padStart(p):Number.isFinite(y)?y.toString().padStart(p):((y>0?"":"-")+t.infstr).padStart(p)}let n=t.suppress?e.map(m=>Math.abs(m)<1e-10&&m!==0?0:m):e,o=n.map(Math.abs).filter(m=>m>0),a=o.length>0?Math.max(...o):0,u=o.length>0?Math.min(...o):0;if(a>=1e16||u>0&&u<1e-4||u>0&&a/u>1e3){let m=n.map(h=>Tt(h,t.precision,!1,".",t.sign)),p=0;for(let h of m){let N=h.indexOf("e"),D=N!==-1?h.slice(0,N):h,x=D.indexOf(".");x!==-1&&(p=Math.max(p,D.length-x-1))}let y=Math.max(p,0),d=Math.max(y,1),b=y===0?".":"k",A=n.map(h=>Tt(h,d,!1,b,t.sign));for(let h of r)Number.isFinite(h)||A.push(Number.isNaN(h)?t.nanstr:(h>0?"":"-")+t.infstr);let g=Math.max(...A.map(h=>h.length));return h=>(t.suppress&&Math.abs(h)<1e-10&&h!==0&&Number.isFinite(h)&&(h=0),Number.isNaN(h)?t.nanstr.padStart(g):Number.isFinite(h)?Tt(h,d,!1,b,t.sign).padStart(g):((h>0?"":"-")+t.infstr).padStart(g))}if(n.every(m=>Number.isInteger(m))){let m=n.map(d=>xl(d,t.sign));for(let d of r)Number.isFinite(d)||m.push(Number.isNaN(d)?t.nanstr:(d>0?"":"-")+t.infstr);let{maxLeft:p,maxRight:y}=Cl(m);return d=>(t.suppress&&Math.abs(d)<1e-10&&d!==0&&Number.isFinite(d)&&(d=0),Number.isNaN(d)?at(t.nanstr,p,y):Number.isFinite(d)?at(xl(d,t.sign),p,y):at((d>0?"":"-")+t.infstr,p,y))}let c=n.map(m=>Et(m,t.precision,!1,!0,".",t.sign));for(let m of r)Number.isFinite(m)||c.push(Number.isNaN(m)?t.nanstr:(m>0?"":"-")+t.infstr);let{maxLeft:l,maxRight:f}=Cl(c);return m=>(t.suppress&&Math.abs(m)<1e-10&&m!==0&&Number.isFinite(m)&&(m=0),Number.isNaN(m)?at(t.nanstr,l,f):Number.isFinite(m)?at(Et(m,t.precision,!1,!0,".",t.sign),l,f):at((m>0?"":"-")+t.infstr,l,f))}function RN(r,t){let e=r.dtype,n=kN(r,t);if(n.length===0)return a=>_o(a,e,t);if(e==="bool")return a=>a?" True":"False";if(e==="int64"||e==="uint64"){let a=n.map(i=>i.toString()),u=Math.max(...a.map(i=>i.length));return i=>i.toString().padStart(u)}if(e.startsWith("int")||e.startsWith("uint")){let a=n.map(i=>i.toString()),u=Math.max(...a.map(i=>i.length));return i=>i.toString().padStart(u)}if(e==="complex64"||e==="complex128"){let a=n.map(c=>c.re),u=n.map(c=>Math.abs(c.im)),i=vs(a,t),s=vs(u,t);return c=>{let l=c,f=i(l.re),m=s(Math.abs(l.im)),p=l.im>=0?"+":"-";return`${f}${p}${m}j`}}let o=vs(n,t);return a=>o(a)}function zo(r,t,e,n,o,a){let u=r.shape,i=u.length;if(e===i){let d=0,b=r.strides;for(let g=0;g<i;g++)d+=t[g]*b[g];let A=r.iget(d);return o(A)}let s=u[e],c=n.threshold,l=n.edgeitems,m=u.reduce((d,b)=>d*b,1)>c&&s>2*l,p=[],y=[...t];if(m){for(let d=0;d<l;d++)y[e]=d,p.push(zo(r,y,e+1,n,o,a+1));p.push("...");for(let d=s-l;d<s;d++)y[e]=d,p.push(zo(r,y,e+1,n,o,a+1))}else for(let d=0;d<s;d++)y[e]=d,p.push(zo(r,y,e+1,n,o,a+1));if(e===i-1){let d="["+p.join(n.separator)+"]";if(a+d.length<n.linewidth)return d;let b=" ".repeat(a+1),A=n.linewidth-a-1,g=[],h="";for(let N=0;N<p.length;N++){let D=p[N];if(h==="")h=D;else{let x=h+n.separator+D;x.length<A?h=x:(g.push(h),h=D)}}return h&&g.push(h),"["+g.join(`
2
- `+b)+"]"}else{let d=" ".repeat(a+1),b=i-e-2,A=`
1
+ "use strict";var np=(()=>{var z1=Object.create;var Qn=Object.defineProperty;var j1=Object.getOwnPropertyDescriptor;var $1=Object.getOwnPropertyNames;var A8=Object.getPrototypeOf,r8=Object.prototype.hasOwnProperty;var Cn=(A=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(A,{get:(r,I)=>(typeof require<"u"?require:r)[I]}):A)(function(A){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+A+'" is not supported')});var I8=(A,r)=>{for(var I in r)Qn(A,I,{get:r[I],enumerable:!0})},em=(A,r,I,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of $1(r))!r8.call(A,o)&&o!==I&&Qn(A,o,{get:()=>r[o],enumerable:!(t=j1(r,o))||t.enumerable});return A};var an=(A,r,I)=>(I=A!=null?z1(A8(A)):{},em(r||!A||!A.__esModule?Qn(I,"default",{value:A,enumerable:!0}):I,A)),t8=A=>em(Qn({},"__esModule",{value:!0}),A);var nV={};I8(nV,{Complex:()=>X,DTYPE_TO_DESCR:()=>xC,InvalidNpyError:()=>tr,NDArray:()=>sA,NDArrayCore:()=>IA,SUPPORTED_DTYPES:()=>uy,UnsupportedDTypeError:()=>vr,__version__:()=>iV,abs:()=>Jy,absolute:()=>Jy,acos:()=>Ty,acosh:()=>Zy,add:()=>y9,all:()=>g6,allclose:()=>Et,amax:()=>rg,amin:()=>tg,angle:()=>DY,any:()=>i6,append:()=>J6,apply_along_axis:()=>D9,apply_over_axes:()=>f9,arange:()=>wY,arccos:()=>Ty,arccosh:()=>Zy,arcsin:()=>Xy,arcsinh:()=>Wy,arctan:()=>Oy,arctan2:()=>Vy,arctanh:()=>zy,argmax:()=>$4,argmin:()=>j4,argpartition:()=>a1,argsort:()=>n1,argwhere:()=>E1,around:()=>_y,array:()=>hY,array2string:()=>fC,array_equal:()=>eC,array_equiv:()=>gC,array_repr:()=>yC,array_split:()=>eQ,array_str:()=>mt,asanyarray:()=>JY,asarray:()=>GY,asarray_chkfinite:()=>LY,ascontiguousarray:()=>xY,asfortranarray:()=>UY,asin:()=>Xy,asinh:()=>Wy,atan:()=>Oy,atan2:()=>Vy,atanh:()=>zy,atleast_1d:()=>QQ,atleast_2d:()=>CQ,atleast_3d:()=>aQ,average:()=>e6,base_repr:()=>cC,binary_repr:()=>DC,bincount:()=>D1,bindex:()=>e9,bitwise_and:()=>nY,bitwise_count:()=>EY,bitwise_invert:()=>xy,bitwise_left_shift:()=>Uy,bitwise_not:()=>xy,bitwise_or:()=>QY,bitwise_right_shift:()=>Ly,bitwise_xor:()=>CY,block:()=>z6,broadcast_arrays:()=>zQ,broadcast_shapes:()=>jQ,broadcast_to:()=>$H,byteswap:()=>bC,can_cast:()=>Vi,cbrt:()=>H9,ceil:()=>h6,choose:()=>I9,clip:()=>j9,column_stack:()=>Z6,common_type:()=>SC,compress:()=>t9,concat:()=>vy,concatenate:()=>vy,conj:()=>Hy,conjugate:()=>Hy,convolve:()=>m1,copy:()=>MY,copysign:()=>N4,copyto:()=>IC,corrcoef:()=>h1,correlate:()=>y1,cos:()=>b1,cosh:()=>q1,count_nonzero:()=>JQ,cov:()=>l1,cross:()=>B4,cumprod:()=>Py,cumsum:()=>Yy,cumulative_prod:()=>Py,cumulative_sum:()=>Yy,deg2rad:()=>S1,degrees:()=>F1,delete:()=>Ky,delete_:()=>Ky,diag:()=>YY,diag_indices:()=>C9,diag_indices_from:()=>a9,diagflat:()=>PY,diagonal:()=>r4,diff:()=>zY,digitize:()=>f1,divide:()=>J9,divmod:()=>P9,dot:()=>$Y,dsplit:()=>nQ,dstack:()=>W6,ediff1d:()=>jY,einsum:()=>Vn,einsum_path:()=>Wn,empty:()=>mY,empty_like:()=>kY,equal:()=>J4,exp:()=>w9,exp2:()=>d9,expand_dims:()=>_6,expm1:()=>b9,extract:()=>c1,eye:()=>NY,fabs:()=>Y9,fft:()=>gV,fill:()=>FC,fill_diagonal:()=>oC,fix:()=>w6,flatnonzero:()=>u1,flatten:()=>H6,flip:()=>r1,fliplr:()=>I1,flipud:()=>t1,float_power:()=>X9,floor:()=>d6,floor_divide:()=>x9,fmax:()=>rY,fmin:()=>IY,fmod:()=>T9,format_float_positional:()=>EC,format_float_scientific:()=>uC,frexp:()=>O9,frombuffer:()=>TY,fromfile:()=>ZY,fromfunction:()=>OY,fromiter:()=>VY,fromregex:()=>oV,fromregexFile:()=>W1,fromregexFileSync:()=>Z1,fromstring:()=>WY,full:()=>lY,full_like:()=>qY,gcd:()=>V9,genfromtxt:()=>tV,genfromtxtFile:()=>O1,genfromtxtFileSync:()=>V1,geomspace:()=>pY,get_printoptions:()=>BC,geterr:()=>QC,gradient:()=>ZQ,greater:()=>R4,greater_equal:()=>k4,hasFloat16:()=>uA,heaviside:()=>v9,histogram:()=>TQ,histogram2d:()=>OQ,histogram_bin_edges:()=>WQ,histogramdd:()=>VQ,hsplit:()=>iQ,hstack:()=>V6,hypot:()=>N1,i0:()=>iY,identity:()=>FY,iindex:()=>o9,imag:()=>cY,in1d:()=>N6,indices:()=>i9,inner:()=>o4,insert:()=>x6,interp:()=>oY,intersect1d:()=>F6,invert:()=>aY,isclose:()=>U4,iscomplex:()=>d4,iscomplexobj:()=>pQ,isdtype:()=>RQ,isfinite:()=>f4,isfortran:()=>FQ,isin:()=>G6,isinf:()=>y4,isnan:()=>m4,isnat:()=>l4,isneginf:()=>h4,isposinf:()=>w4,isreal:()=>b4,isrealobj:()=>NQ,isscalar:()=>GQ,issubdtype:()=>qC,item:()=>hC,iterable:()=>SQ,ix_:()=>tC,kron:()=>I4,lcm:()=>W9,ldexp:()=>Z9,left_shift:()=>Uy,less:()=>q4,less_equal:()=>M4,lexsort:()=>Q1,linalg:()=>rQ,linspace:()=>dY,load:()=>U1,loadNpy:()=>$y,loadNpySync:()=>Am,loadNpz:()=>AV,loadNpzFile:()=>tm,loadNpzFileSync:()=>om,loadNpzSync:()=>rV,loadSync:()=>L1,loadtxt:()=>K1,loadtxtSync:()=>v1,log:()=>p9,log10:()=>F9,log1p:()=>G9,log2:()=>N9,logaddexp:()=>S9,logaddexp2:()=>R9,logical_and:()=>E4,logical_not:()=>c4,logical_or:()=>u4,logical_xor:()=>D4,logspace:()=>bY,mask_indices:()=>c9,matmul:()=>s4,matrix_transpose:()=>n4,matvec:()=>C4,max:()=>rg,maximum:()=>$9,may_share_memory:()=>iC,mean:()=>W4,median:()=>I6,meshgrid:()=>qy,min:()=>tg,min_scalar_type:()=>kC,minimum:()=>AY,mintypecode:()=>JC,mod:()=>M9,modf:()=>z9,moveaxis:()=>v6,multiply:()=>l9,nan_to_num:()=>tY,nanargmax:()=>c6,nanargmin:()=>u6,nancumprod:()=>f6,nancumsum:()=>D6,nanmax:()=>E6,nanmean:()=>C6,nanmedian:()=>y6,nanmin:()=>s6,nanpercentile:()=>l6,nanprod:()=>Q6,nanquantile:()=>m6,nanstd:()=>B6,nansum:()=>n6,nanvar:()=>a6,ndim:()=>mC,negative:()=>k9,nextafter:()=>G4,nonzero:()=>s1,not_equal:()=>x4,ones:()=>yY,ones_like:()=>RY,outer:()=>e4,packbits:()=>BY,pad:()=>U6,parseNpy:()=>WO,parseNpyData:()=>zO,parseNpyHeader:()=>ZO,parseNpz:()=>jO,parseNpzSync:()=>$O,parseTxt:()=>IV,partition:()=>C1,percentile:()=>t6,permute_dims:()=>Q4,place:()=>AC,poly:()=>L4,polyadd:()=>H4,polyder:()=>Y4,polydiv:()=>P4,polyfit:()=>_4,polyint:()=>K4,polymul:()=>v4,polysub:()=>X4,polyval:()=>T4,positive:()=>U9,pow:()=>My,power:()=>My,printoptions:()=>sC,prod:()=>Z4,promote_types:()=>kQ,ptp:()=>z4,put:()=>yt,put_along_axis:()=>$Q,putmask:()=>rC,quantile:()=>o6,rad2deg:()=>R1,radians:()=>G1,random:()=>eV,ravel:()=>Y6,ravel_multi_index:()=>n9,real:()=>uY,real_if_close:()=>p4,reciprocal:()=>L9,remainder:()=>K9,repeat:()=>A1,require:()=>HY,reshape:()=>L6,resize:()=>g1,result_type:()=>RC,right_shift:()=>Ly,rint:()=>b6,roll:()=>e1,rollaxis:()=>X6,roots:()=>O4,rot90:()=>o1,round:()=>_y,row_stack:()=>tQ,save:()=>H1,saveNpy:()=>rm,saveNpySync:()=>Im,saveNpzFile:()=>zC,saveNpzFileSync:()=>x1,saveSync:()=>Y1,savetxt:()=>X1,savetxtSync:()=>T1,savez:()=>P1,savez_compressed:()=>_1,searchsorted:()=>ct,select:()=>g9,serializeNpy:()=>DI,serializeNpz:()=>LC,serializeNpzSync:()=>HC,serializeTxt:()=>dt,set_printoptions:()=>aC,setdiff1d:()=>S6,seterr:()=>CC,setxor1d:()=>R6,shape:()=>Ti,shares_memory:()=>nC,sign:()=>q9,signbit:()=>F4,sin:()=>d1,sinc:()=>gY,sinh:()=>k1,size:()=>lC,sort:()=>i1,sort_complex:()=>B1,spacing:()=>S4,split:()=>oQ,sqrt:()=>h9,square:()=>_9,squeeze:()=>P6,stack:()=>T6,std:()=>r6,subtract:()=>m9,sum:()=>V4,swapaxes:()=>K6,take:()=>A9,take_along_axis:()=>r9,tan:()=>p1,tanh:()=>M1,tensordot:()=>g4,tile:()=>$6,tobytes:()=>dC,tofile:()=>NC,tolist:()=>wC,trace:()=>A4,transpose:()=>t4,trapezoid:()=>w1,tri:()=>_Y,tril:()=>KY,tril_indices:()=>B9,tril_indices_from:()=>s9,trim_zeros:()=>q6,triu:()=>vY,triu_indices:()=>E9,triu_indices_from:()=>u9,true_divide:()=>Mn,trunc:()=>p6,typename:()=>MC,union1d:()=>k6,unique:()=>_Q,unique_all:()=>KQ,unique_counts:()=>vQ,unique_inverse:()=>XQ,unique_values:()=>M6,unpackbits:()=>sY,unravel_index:()=>Q9,unstack:()=>j6,unwrap:()=>eY,vander:()=>XY,var:()=>dQ,variance:()=>A6,vdot:()=>Zn,vecdot:()=>i4,vecmat:()=>a4,view:()=>pC,vsplit:()=>gQ,vstack:()=>O6,wasmConfig:()=>K,where:()=>MQ,zeros:()=>fY,zeros_like:()=>SY});var X=class A{constructor(r,I=0){this.re=r,this.im=I}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new A(this.re,-this.im)}add(r){return typeof r=="number"?new A(this.re+r,this.im):new A(this.re+r.re,this.im+r.im)}sub(r){return typeof r=="number"?new A(this.re-r,this.im):new A(this.re-r.re,this.im-r.im)}mul(r){return typeof r=="number"?new A(this.re*r,this.im*r):new A(this.re*r.re-this.im*r.im,this.re*r.im+this.im*r.re)}div(r){if(typeof r=="number")return new A(this.re/r,this.im/r);let I=r.re*r.re+r.im*r.im;return new A((this.re*r.re+this.im*r.im)/I,(this.im*r.re-this.re*r.im)/I)}neg(){return new A(-this.re,-this.im)}equals(r){return this.re===r.re&&this.im===r.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(r){if(r instanceof A)return r;if(typeof r=="number")return new A(r,0);if(Array.isArray(r))return new A(r[0]??0,r[1]??0);if(typeof r=="object"&&r!==null&&"re"in r)return new A(r.re??0,r.im??0);throw new Error(`Cannot convert ${r} to Complex`)}static isComplex(r){return r instanceof A||typeof r=="object"&&r!==null&&"re"in r&&"im"in r}};function gm(A){return A instanceof X||typeof A=="object"&&A!==null&&"re"in A}var uA=typeof globalThis.Float16Array<"u",cA="float64";function iA(A){switch(A){case"float64":return Float64Array;case"float32":return Float32Array;case"float16":return uA?Float16Array:Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${A}`)}}function Zr(A){switch(A){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"float16":case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${A}`)}}function SA(A){return A==="int64"||A==="int32"||A==="int16"||A==="int8"||A==="uint64"||A==="uint32"||A==="uint16"||A==="uint8"}function fA(A){return A==="float64"||A==="float32"||A==="float16"}function P(A){return A==="int64"||A==="uint64"}function k(A){return A==="complex64"||A==="complex128"}function gA(A,r,I){if(k(A)){let t=I?` ${I}`:"";throw new TypeError(`ufunc '${r}' not supported for complex dtype '${A}'.${t}`)}}function St(A){if(A==="complex128")return"float64";if(A==="complex64")return"float32";throw new Error(`${A} is not a complex dtype`)}function tA(A,r){if(A===r)return A;if(A==="bool")return r;if(r==="bool")return A;if(k(A)||k(r)){if(k(A)&&k(r))return A==="complex128"||r==="complex128"?"complex128":"complex64";let Q=k(A)?A:r,C=k(A)?r:A;return Q==="complex128"||C==="float64"||C==="int64"||C==="uint64"||C==="int32"||C==="uint32"?"complex128":"complex64"}if(fA(A)||fA(r)){if(A==="float64"||r==="float64")return"float64";if(A==="float32"||r==="float32"){let Q=A==="float32"?r:A;return Q==="int32"||Q==="int64"||Q==="uint32"||Q==="uint64"?"float64":"float32"}if(A==="float16"||r==="float16"){let Q=A==="float16"?r:A;return Q==="float16"||Q==="int8"||Q==="uint8"?"float16":Q==="int16"||Q==="uint16"?"float32":"float64"}return"float32"}let I=A.startsWith("int"),t=r.startsWith("int"),o=A.startsWith("uint"),e=r.startsWith("uint"),g=Q=>Q.includes("64")?64:Q.includes("32")?32:Q.includes("16")?16:Q.includes("8")?8:0,i=g(A),n=g(r);if(A==="int64"&&r==="uint64"||A==="uint64"&&r==="int64")return"float64";if(I&&e&&i===n){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(o&&t&&i===n){if(n===8)return"int16";if(n===16)return"int32";if(n===32)return"int64"}if(I&&t||o&&e){let Q=Math.max(i,n);return I?Q===64?"int64":Q===32?"int32":Q===16?"int16":"int8":Q===64?"uint64":Q===32?"uint32":Q===16?"uint16":"uint8"}return I&&e?i>n?A:n===8?"int16":n===16?"int32":n===32?"int64":"float64":o&&t?n>i?r:i===8?"int16":i===16?"int32":i===32?"int64":"float64":"float64"}var Bn=64,d=class A{constructor(r,I,t,o,e){this._isCContiguous=-1;this._data=r,this._shape=I,this._strides=t,this._offset=o,this._dtype=e}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((r,I)=>r*I,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){if(this._isCContiguous!==-1)return this._isCContiguous===1;let r=this._shape,I=this._strides,t=r.length,o;if(t===0)o=!0;else if(t===1)o=I[0]===1;else{o=!0;let e=1;for(let g=t-1;g>=0;g--){if(I[g]!==e){o=!1;break}e*=r[g]}}return this._isCContiguous=o?1:0,o}get isFContiguous(){let r=this._shape,I=this._strides,t=r.length;if(t===0)return!0;if(t===1)return I[0]===1;let o=1;for(let e=0;e<t;e++){if(I[e]!==o)return!1;o*=r[e]}return!0}iget(r){let I=this._shape,t=this._strides,o=I.length,e=k(this._dtype),g;if(o===0)g=this._offset;else{let i=r;g=this._offset;for(let n=0;n<o;n++){let Q=1;for(let a=n+1;a<o;a++)Q*=I[a];let C=Math.floor(i/Q);i=i%Q,g+=C*t[n]}}if(e){let i=g*2,n=this._data[i],Q=this._data[i+1];return new X(n,Q)}return this._data[g]}iset(r,I){let t=this._shape,o=this._strides,e=t.length,g=k(this._dtype),i;if(e===0)i=this._offset;else{let n=r;i=this._offset;for(let Q=0;Q<e;Q++){let C=1;for(let B=Q+1;B<e;B++)C*=t[B];let a=Math.floor(n/C);n=n%C,i+=a*o[Q]}}if(g){let n=i*2,Q,C;I instanceof X?(Q=I.re,C=I.im):typeof I=="object"&&I!==null&&"re"in I?(Q=I.re,C=I.im??0):(Q=Number(I),C=0),this._data[n]=Q,this._data[n+1]=C}else this._data[i]=I}get(...r){let I=this._strides,t=this._offset;for(let o=0;o<r.length;o++)t+=r[o]*I[o];if(k(this._dtype)){let o=t*2,e=this._data[o],g=this._data[o+1];return new X(e,g)}return this._data[t]}set(r,I){let t=this._strides,o=this._offset;for(let e=0;e<r.length;e++)o+=r[e]*t[e];if(k(this._dtype)){let e=o*2,g,i;I instanceof X?(g=I.re,i=I.im):typeof I=="object"&&I!==null&&"re"in I?(g=I.re,i=I.im??0):(g=Number(I),i=0),this._data[e]=g,this._data[e+1]=i}else this._data[o]=I}copy(){let r=Array.from(this._shape),I=this._dtype,t=this.size,o=k(I),e=iA(I);if(!e)throw new Error(`Cannot copy array with dtype ${I}`);let g=o?t*2:t,i=new e(g);if(this.isCContiguous&&this._offset===0)i.set(this._data.subarray(0,g));else if(P(I)){let n=i;for(let Q=0;Q<t;Q++)n[Q]=this.iget(Q)}else if(o){let n=i;for(let Q=0;Q<t;Q++){let C=this.iget(Q);n[Q*2]=C.re,n[Q*2+1]=C.im}}else for(let n=0;n<t;n++)i[n]=this.iget(n);return new A(i,r,A._computeStrides(r),0,I)}static fromData(r,I,t,o,e){if(I.length>Bn)throw new Error(`maximum supported dimension for an ndarray is currently ${Bn}, found ${I.length}`);let g=o??A._computeStrides(I),i=e??0;return new A(r,I,g,i,t)}static zeros(r,I=cA){if(r.length>Bn)throw new Error(`maximum supported dimension for an ndarray is currently ${Bn}, found ${r.length}`);let t=r.reduce((n,Q)=>n*Q,1),o=k(I),e=iA(I);if(!e)throw new Error(`Cannot create array with dtype ${I}`);let g=o?t*2:t,i=new e(g);return new A(i,r,A._computeStrides(r),0,I)}static ones(r,I=cA){let t=r.reduce((n,Q)=>n*Q,1),o=k(I),e=iA(I);if(!e)throw new Error(`Cannot create array with dtype ${I}`);let g=o?t*2:t,i=new e(g);if(P(I))i.fill(BigInt(1));else if(o){let n=i;for(let Q=0;Q<t;Q++)n[Q*2]=1,n[Q*2+1]=0}else i.fill(1);return new A(i,r,A._computeStrides(r),0,I)}static _computeStrides(r){let I=new Array(r.length),t=1;for(let o=r.length-1;o>=0;o--)I[o]=t,t*=r[o];return I}};function XA(A){let r=new Array(A.length),I=1;for(let t=A.length-1;t>=0;t--)r[t]=I,I*=A[t];return r}var K={thresholdMultiplier:1,wasmCallCount:0};var jC=null,$C=0,sn=0;function T(){return jC||(jC=new WebAssembly.Memory({initial:17})),jC}function x(A){let r=T(),I=sn+A,t=r.buffer.byteLength;if(I>t){let o=Math.ceil((I-t)/65536);r.grow(o)}}function U(A=sn){$C=A,K.wasmCallCount++}function W(A){A>sn&&(sn=A)}function H(A){let r=$C+7&-8;return $C=r+A,r}function R(A){let r=H(A.byteLength),I=T();return new Uint8Array(I.buffer,r,A.byteLength).set(new Uint8Array(A.buffer,A.byteOffset,A.byteLength)),r}function _(A,r,I){let t=T(),o=new I(new ArrayBuffer(r*I.BYTES_PER_ELEMENT),0,r);return new Uint8Array(o.buffer,0,o.byteLength).set(new Uint8Array(t.buffer,A,o.byteLength)),o}function AA(A,r){return r==="float16"&&uA?new Float32Array(A):A}function eA(A,r){if(r==="float16"&&uA){let I=new Float16Array(A.length);return I.set(A),I}return A}var o8="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",Rt=null;function kI(){if(Rt)return Rt;let A=atob(o8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Rt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Rt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Rt}function im(A,r,I){kI().exports.flip_f64(A,r,I)}function Aa(A,r,I){kI().exports.flip_f32(A,r,I)}function ra(A,r,I){kI().exports.flip_i64(A,r,I)}function Ia(A,r,I){kI().exports.flip_i32(A,r,I)}function En(A,r,I){kI().exports.flip_i16(A,r,I)}function ta(A,r,I){kI().exports.flip_i8(A,r,I)}var e8=64,g8={float64:im,float32:Aa,float16:uA?En:Aa,int64:ra,uint64:ra,int32:Ia,uint32:Ia,int16:En,uint16:En,int8:ta,uint8:ta},i8={float64:Float64Array,float32:Float32Array,float16:uA?Float16Array:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function oa(A){if(!A.isCContiguous)return null;let r=A.size;if(r<e8*K.thresholdMultiplier)return null;let I=A.dtype,t=g8[I],o=i8[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT,g=r*e,i=r*e;x(g+i),U();let n=A.offset,Q=A.data.subarray(n,n+r),C=R(Q),a=H(i);t(C,a,r);let B=_(a,r,o);return d.fromData(B,Array.from(A.shape),I)}var n8="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",kt=null;function qI(){if(kt)return kt;let A=atob(n8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);kt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=kt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),kt}function nm(A,r,I,t,o,e){qI().exports.tile_2d_f64(A,r,I,t,o,e)}function ea(A,r,I,t,o,e){qI().exports.tile_2d_f32(A,r,I,t,o,e)}function ga(A,r,I,t,o,e){qI().exports.tile_2d_i64(A,r,I,t,o,e)}function ia(A,r,I,t,o,e){qI().exports.tile_2d_i32(A,r,I,t,o,e)}function na(A,r,I,t,o,e){qI().exports.tile_2d_i16(A,r,I,t,o,e)}function Qa(A,r,I,t,o,e){qI().exports.tile_2d_i8(A,r,I,t,o,e)}var Q8=64,C8={float64:nm,float32:ea,int64:ga,uint64:ga,int32:ia,uint32:ia,int16:na,uint16:na,int8:Qa,uint8:Qa,float16:ea},a8={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function Ca(A,r,I){if(!A.isCContiguous||A.shape.length!==2)return null;let t=A.size;if(t<Q8*K.thresholdMultiplier)return null;let o=A.dtype,e=C8[o],g=a8[o];if(!e||!g)return null;let i=A.shape[0],n=A.shape[1],Q=i*r*n*I,C=g.BYTES_PER_ELEMENT,a=t*C,B=Q*C;x(a+B),U();let s=o==="float16",E=A.offset,u=A.data.subarray(E,E+t);s&&(u=AA(u,o));let D=R(u),y=H(B);e(D,y,i,n,r,I);let f=_(y,Q,g);return d.fromData(s?eA(f,o):f,[i*r,n*I],o)}var B8="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",qt=null;function MI(){if(qt)return qt;let A=atob(B8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);qt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=qt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),qt}function Qm(A,r,I,t){MI().exports.roll_f64(A,r,I,t)}function aa(A,r,I,t){MI().exports.roll_f32(A,r,I,t)}function Ba(A,r,I,t){MI().exports.roll_i64(A,r,I,t)}function sa(A,r,I,t){MI().exports.roll_i32(A,r,I,t)}function Ea(A,r,I,t){MI().exports.roll_i16(A,r,I,t)}function ua(A,r,I,t){MI().exports.roll_i8(A,r,I,t)}var s8=64,E8={float64:Qm,float32:aa,int64:Ba,uint64:Ba,int32:sa,uint32:sa,int16:Ea,uint16:Ea,int8:ua,uint8:ua,float16:aa},u8={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function Cm(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<s8*K.thresholdMultiplier)return null;let t=A.dtype,o=E8[t],e=u8[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g;x(i+n),U();let Q=t==="float16",C=A.offset,a=A.data.subarray(C,C+I);Q&&(a=AA(a,t));let B=R(a),s=H(n);o(B,s,I,r);let E=_(s,I,e);return d.fromData(Q?eA(E,t):E,Array.from(A.shape),t)}var c8="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",Mt=null;function JI(){if(Mt)return Mt;let A=atob(c8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Mt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Mt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Mt}function am(A,r,I,t){JI().exports.rot90_f64(A,r,I,t)}function Bm(A,r,I,t){JI().exports.rot90_f32(A,r,I,t)}function ca(A,r,I,t){JI().exports.rot90_i64(A,r,I,t)}function Da(A,r,I,t){JI().exports.rot90_i32(A,r,I,t)}function fa(A,r,I,t){JI().exports.rot90_i16(A,r,I,t)}function ya(A,r,I,t){JI().exports.rot90_i8(A,r,I,t)}var D8=64,f8={float64:am,float32:Bm,int64:ca,uint64:ca,int32:Da,uint32:Da,int16:fa,uint16:fa,int8:ya,uint8:ya},y8={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function sm(A){if(!A.isCContiguous||A.shape.length!==2)return null;let r=A.size;if(r<D8*K.thresholdMultiplier)return null;let I=A.dtype,t=f8[I],o=y8[I];if(!t||!o)return null;let e=A.shape[0],g=A.shape[1],i=o.BYTES_PER_ELEMENT,n=r*i,Q=r*i;x(n+Q),U();let C=A.offset,a=A.data.subarray(C,C+r),B=R(a),s=H(Q);t(B,s,e,g);let E=_(s,r,o);return d.fromData(E,[g,e],I)}var m8="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADBwYAAAAAAAAGCQF/AUGAgMAACwdOBgpyZXBlYXRfZjY0AAAKcmVwZWF0X2YzMgABCnJlcGVhdF9pNjQAAgpyZXBlYXRfaTMyAAMKcmVwZWF0X2kxNgAECXJlcGVhdF9pOAAFCt4JBsIBBQR/AXwBfwF7AX8CQCACRQ0AIANFDQAgA0EDdCEEIANBfnEhBUEAIQYgA0ECSSEHA0AgACAGQQN0aisDACEIQQAhCQJAAkAgBw0AIAj9FCEKIAUhCyABIQkDQCAJIAr9CwMAIAlBEGohCSALQX5qIgsNAAsgBSEJIAMgBUYNAQsgAyAJayELIAEgCUEDdGohCQNAIAkgCDkDACAJQQhqIQkgC0F/aiILDQALCyABIARqIQEgBkEBaiIGIAJHDQALCwvCAQUEfwF9AX8BewF/AkAgAkUNACADRQ0AIANBAnQhBCADQXxxIQVBACEGIANBBEkhBwNAIAAgBkECdGoqAgAhCEEAIQkCQAJAIAcNACAI/RMhCiAFIQsgASEJA0AgCSAK/QsCACAJQRBqIQkgC0F8aiILDQALIAUhCSADIAVGDQELIAMgCWshCyABIAlBAnRqIQkDQCAJIAg4AgAgCUEEaiEJIAtBf2oiCw0ACwsgASAEaiEBIAZBAWoiBiACRw0ACwsLwgEFBH8BfgF/AXsBfwJAIAJFDQAgA0UNACADQQN0IQQgA0F+cSEFQQAhBiADQQJJIQcDQCAAIAZBA3RqKQMAIQhBACEJAkACQCAHDQAgCP0SIQogBSELIAEhCQNAIAkgCv0LAwAgCUEQaiEJIAtBfmoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQN0aiEJA0AgCSAINwMAIAlBCGohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC74BAwZ/AXsBfwJAIAJFDQAgA0UNACADQQJ0IQQgA0F8cSEFQQAhBiADQQRJIQcDQCAAIAZBAnRqKAIAIQhBACEJAkACQCAHDQAgCP0RIQogBSELIAEhCQNAIAkgCv0LAgAgCUEQaiEJIAtBfGoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQJ0aiEJA0AgCSAINgIAIAlBBGohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC74BAwZ/AXsBfwJAIAJFDQAgA0UNACADQQF0IQQgA0F4cSEFQQAhBiADQQhJIQcDQCAAIAZBAXRqLwEAIQhBACEJAkACQCAHDQAgCP0QIQogBSELIAEhCQNAIAkgCv0LAQAgCUEQaiEJIAtBeGoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQF0aiEJA0AgCSAIOwEAIAlBAmohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC48CAQh/AkAgAkUNACADRQ0AIAJBA3EhBEEAIQUCQCACQX9qQQNJDQAgA0EBdCEGIANBAnQhByADQQNsIQggAkF8cSEJQQAhBSABIQIDQCAAIAVqIQoCQCADRSILDQAgAiAKLQAAIAP8CwALAkAgCw0AIAIgA2ogCkEBai0AACAD/AsACwJAIAsNACACIAZqIApBAmotAAAgA/wLAAsCQCALDQAgAiAIaiAKQQNqLQAAIAP8CwALIAIgB2ohAiAJIAVBBGoiBUcNAAsLIARFDQAgACAFaiECIAEgBSADbGohCwNAAkAgA0UNACALIAItAAAgA/wLAAsgCyADaiELIAJBAWohAiAEQX9qIgQNAAsLCw==",Jt=null;function xI(){if(Jt)return Jt;let A=atob(m8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Jt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Jt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Jt}function Em(A,r,I,t){xI().exports.repeat_f64(A,r,I,t)}function ma(A,r,I,t){xI().exports.repeat_f32(A,r,I,t)}function la(A,r,I,t){xI().exports.repeat_i64(A,r,I,t)}function ha(A,r,I,t){xI().exports.repeat_i32(A,r,I,t)}function wa(A,r,I,t){xI().exports.repeat_i16(A,r,I,t)}function da(A,r,I,t){xI().exports.repeat_i8(A,r,I,t)}var l8=64,h8={float64:Em,float32:ma,int64:la,uint64:la,int32:ha,uint32:ha,int16:wa,uint16:wa,int8:da,uint8:da,float16:ma},w8={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function um(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<l8*K.thresholdMultiplier)return null;let t=A.dtype,o=h8[t],e=w8[t];if(!o||!e)return null;let g=I*r,i=e.BYTES_PER_ELEMENT,n=I*i,Q=g*i;x(n+Q),U();let C=t==="float16",a=A.offset,B=A.data.subarray(a,a+I);C&&(B=AA(B,t));let s=R(B),E=H(Q);o(s,E,I,r);let u=_(E,g,e);return d.fromData(C?eA(u,t):u,[g],t)}function cm(A){if(!A.includes(":")){if(A.includes("."))throw new Error(`Invalid slice index: "${A}" (must be integer)`);let e=parseInt(A,10);if(isNaN(e))throw new Error(`Invalid slice index: "${A}"`);return{start:e,stop:null,step:1,isIndex:!0}}let r=A.split(":");if(r.length>3)throw new Error(`Invalid slice notation: "${A}" (too many colons)`);let I=r[0]===""?null:parseInt(r[0],10),t=r[1]===""||r[1]===void 0?null:parseInt(r[1],10),o=r[2]===""||r[2]===void 0?1:parseInt(r[2],10);if(I!==null&&isNaN(I))throw new Error(`Invalid start index in slice: "${A}"`);if(t!==null&&isNaN(t))throw new Error(`Invalid stop index in slice: "${A}"`);if(isNaN(o))throw new Error(`Invalid step in slice: "${A}"`);if(o===0)throw new Error("Slice step cannot be zero");return{start:I,stop:t,step:o,isIndex:!1}}function Dm(A,r){let{start:I,stop:t}=A,{step:o,isIndex:e}=A;if(e){if(I===null)throw new Error("Index cannot be null");let g=I<0?r+I:I;if(g<0||g>=r)throw new Error(`Index ${I} is out of bounds for size ${r}`);return{start:g,stop:g+1,step:1,isIndex:!0}}return o>0?(I===null&&(I=0),t===null&&(t=r)):(I===null&&(I=r-1),t===null&&(t=-r-1)),I<0&&(I=r+I),t<0&&(t=r+t),I=Math.max(0,Math.min(I,r)),t=Math.max(-1,Math.min(t,r)),{start:I,stop:t,step:o,isIndex:!1}}function fm(A,...r){if(r.length===0)return A;if(r.length>A.ndim)throw new Error(`Too many indices for array: array is ${A.ndim}-dimensional, but ${r.length} were indexed`);let I=r.map((g,i)=>{let n=cm(g);return Dm(n,A.shape[i])});for(;I.length<A.ndim;)I.push({start:0,stop:A.shape[I.length],step:1,isIndex:!1});let t=[],o=[],e=A.offset;for(let g=0;g<I.length;g++){let i=I[g];if(e+=i.start*A.strides[g],i.isIndex)continue;let n=Math.max(0,Math.ceil((i.stop-i.start)/i.step));t.push(n),o.push(A.strides[g]*i.step)}return d.fromData(A.data,t,A.dtype,o,e)}function yA(A,r){let I=A.size,t=A.dtype,o=r.indexOf(-1),e;if(o!==-1){let Q=r.reduce((a,B,s)=>s===o?a:a*B,1),C=I/Q;if(!Number.isInteger(C))throw new Error(`cannot reshape array of size ${I} into shape ${JSON.stringify(r)}`);e=r.map((a,B)=>B===o?C:a)}else e=r;if(e.reduce((Q,C)=>Q*C,1)!==I)throw new Error(`cannot reshape array of size ${I} into shape ${JSON.stringify(e)}`);if(A.isCContiguous){let Q=A.data;return d.fromData(Q,e,t,XA(e),0)}let n=A.copy().data;return d.fromData(n,e,t,XA(e),0)}function lI(A){let r=A.size,I=A.dtype,t=iA(I);if(!t)throw new Error(`Cannot flatten array with dtype ${I}`);let o=k(I),e=o?r*2:r;if(A.isCContiguous){let n=A.data,Q=o?A.offset*2:A.offset,C=n.slice(Q,Q+e);return d.fromData(C,[r],I,[1],0)}let g=new t(e),i=P(I);if(o)for(let n=0;n<r;n++){let Q=A.iget(n);g[n*2]=Q.re,g[n*2+1]=Q.im}else for(let n=0;n<r;n++){let Q=A.iget(n);g[n]=Q}return d.fromData(g,[r],I,[1],0)}function UI(A){let r=A.size,I=A.dtype;if(A.isCContiguous){let t=A.data;return d.fromData(t,[r],I,[1],0)}return lI(A)}function ba(A,r){let I=A.shape,t=I.length,o=A.strides,e=A.data,g=A.dtype,i;if(r===void 0)i=Array.from({length:t},(a,B)=>t-1-B);else{if(r.length!==t)throw new Error(`axes must have length ${t}, got ${r.length}`);let a=new Set;for(let B of r){let s=B<0?t+B:B;if(s<0||s>=t)throw new Error(`axis ${B} is out of bounds for array of dimension ${t}`);if(a.has(s))throw new Error("repeated axis in transpose");a.add(s)}i=r.map(B=>B<0?t+B:B)}let n=i.map(a=>I[a]),Q=Array.from(o),C=i.map(a=>Q[a]);return d.fromData(e,n,g,C,A.offset)}function ym(A,r){let I=A.shape,t=I.length,o=A.strides,e=A.data,g=A.dtype;if(r===void 0){let i=[],n=[];for(let Q=0;Q<t;Q++)I[Q]!==1&&(i.push(I[Q]),n.push(o[Q]));return d.fromData(e,i,g,n,A.offset)}else{let i=r<0?t+r:r;if(i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);if(I[i]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${r} has size ${I[i]})`);let n=[],Q=[];for(let C=0;C<t;C++)C!==i&&(n.push(I[C]),Q.push(o[C]));return d.fromData(e,n,g,Q,A.offset)}}function mI(A,r){let I=A.shape,t=I.length,o=A.strides,e=A.data,g=A.dtype,i=r;if(i<0&&(i=t+r+1),i<0||i>t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t+1}`);let n=[...Array.from(I)];n.splice(i,0,1);let Q=[...Array.from(o)],C=i<t?o[i]*(I[i]||1):1;return Q.splice(i,0,C),d.fromData(e,n,g,Q,A.offset)}function mm(A,r,I){let t=A.shape,o=t.length,e=A.strides,g=A.data,i=A.dtype,n=r<0?o+r:r,Q=I<0?o+I:I;if(n<0||n>=o)throw new Error(`axis1 ${r} is out of bounds for array of dimension ${o}`);if(Q<0||Q>=o)throw new Error(`axis2 ${I} is out of bounds for array of dimension ${o}`);if(n===Q)return d.fromData(g,Array.from(t),i,Array.from(e),A.offset);let C=Array.from(t),a=Array.from(e);return[C[n],C[Q]]=[C[Q],C[n]],[a[n],a[Q]]=[a[Q],a[n]],d.fromData(g,C,i,a,A.offset)}function pa(A,r,I){let t=A.ndim,o=Array.isArray(r)?r:[r],e=Array.isArray(I)?I:[I];if(o.length!==e.length)throw new Error("source and destination must have the same number of elements");let g=o.map(Q=>{let C=Q<0?t+Q:Q;if(C<0||C>=t)throw new Error(`source axis ${Q} is out of bounds for array of dimension ${t}`);return C}),i=e.map(Q=>{let C=Q<0?t+Q:Q;if(C<0||C>=t)throw new Error(`destination axis ${Q} is out of bounds for array of dimension ${t}`);return C});if(new Set(g).size!==g.length)throw new Error("repeated axis in source");if(new Set(i).size!==i.length)throw new Error("repeated axis in destination");let n=[];for(let Q=0;Q<t;Q++)g.includes(Q)||n.push(Q);for(let Q=0;Q<g.length;Q++){let C=i[Q];n.splice(C,0,g[Q])}return ba(A,n)}function zr(A,r=0){if(A.length===0)throw new Error("need at least one array to concatenate");if(A.length===1)return A[0].copy();let I=A[0],t=I.ndim,o=I.dtype,e=r<0?t+r:r;if(e<0||e>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);for(let s=1;s<A.length;s++){let E=A[s];if(E.ndim!==t)throw new Error("all the input arrays must have same number of dimensions");for(let u=0;u<t;u++)if(u!==e&&E.shape[u]!==I.shape[u])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let g=Array.from(I.shape),i=I.shape[e];for(let s=1;s<A.length;s++)i+=A[s].shape[e];g[e]=i;let n=g.reduce((s,E)=>s*E,1),Q=iA(o);if(!Q)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let C=new Q(n),a=XA(g),B=0;for(let s of A){let E=s.shape[e];d8(s,C,g,a,e,B,o),B+=E}return d.fromData(C,g,o)}function d8(A,r,I,t,o,e,g){let i=A.shape,n=i.length,Q=A.size,C=g==="int64"||g==="uint64";if(o===0&&A.isCContiguous&&n>0){let s=e*t[0],E=A.data,u=A.offset,D=u+Q;r.set(E.subarray(u,D),s);return}if(o===1&&n===2&&A.isCContiguous){let s=i[0],E=i[1],u=I[1],D=A.data,y=A.offset;for(let f=0;f<s;f++){let c=y+f*E,m=f*u+e;r.set(D.subarray(c,c+E),m)}return}if(g==="float16"&&uA&&A.isCContiguous){let s=new Float32Array(A.data.subarray(A.offset,A.offset+Q)),E=new Array(n).fill(0),u=e*t[o];for(let D=0;D<Q;D++){let y=u;for(let f=0;f<n;f++)y+=E[f]*t[f];r[y]=s[D];for(let f=n-1;f>=0&&(E[f]++,!(E[f]<i[f]));f--)E[f]=0}return}let a=new Array(n).fill(0),B=e*t[o];for(let s=0;s<Q;s++){let E=A.iget(s),u=B;for(let D=0;D<n;D++)u+=a[D]*t[D];r[u]=E;for(let D=n-1;D>=0&&(a[D]++,!(a[D]<i[D]));D--)a[D]=0}}function lm(A,r=0){if(A.length===0)throw new Error("need at least one array to stack");let I=A[0],t=I.shape,o=I.ndim,e=r<0?o+1+r:r;if(e<0||e>o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o+1}`);for(let i=1;i<A.length;i++){let n=A[i];if(n.ndim!==o)throw new Error("all input arrays must have the same shape");for(let Q=0;Q<o;Q++)if(n.shape[Q]!==t[Q])throw new Error("all input arrays must have the same shape")}let g=A.map(i=>mI(i,e));return zr(g,e)}function hm(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?yA(I,[1,I.shape[0]]):I);return zr(r,0)}function Na(A){if(A.length===0)throw new Error("need at least one array to stack");return A.every(I=>I.ndim===1)?zr(A,0):zr(A,1)}function wm(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?yA(mI(yA(I,[1,I.shape[0]]),2),[1,I.shape[0],1]):I.ndim===2?mI(I,2):I);return zr(r,2)}function dm(A,r,I=0){let t=A.shape,o=t.length,e=I<0?o+I:I;if(e<0||e>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let g=t[e],i;if(typeof r=="number"){if(g%r!==0)throw new Error("array split does not result in an equal division");let n=g/r;i=[];for(let Q=1;Q<r;Q++)i.push(Q*n)}else i=r;return bm(A,i,e)}function xt(A,r,I=0){let t=A.shape,o=t.length,e=I<0?o+I:I;if(e<0||e>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let g=t[e],i;if(typeof r=="number"){let n=r,Q=Math.floor(g/n),C=g%n;i=[];let a=0;for(let B=0;B<n-1;B++)a+=Q+(B<C?1:0),i.push(a)}else i=r;return bm(A,i,e)}function bm(A,r,I){let t=A.shape,o=t[I],e=[0,...r,o],g=[];for(let i=0;i<e.length-1;i++){let n=e[i],Q=e[i+1];if(n>Q)throw new Error("split indices must be in ascending order");let C=Array.from(t);C[I]=Q-n;let a=A.offset+n*A.strides[I];g.push(d.fromData(A.data,C,A.dtype,Array.from(A.strides),a))}return g}function pm(A,r){if(A.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return xt(A,r,0)}function Nm(A,r){if(A.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let I=A.ndim===1?0:1;return xt(A,r,I)}function Fm(A,r){let I=A.shape,t=I.length,o=A.dtype,e=Array.isArray(r)?r:[r];if(t===2&&e.length===2&&A.isCContiguous){let f=Ca(A,e[0],e[1]);if(f)return f}if(t===1&&e.length===1&&A.isCContiguous){let f=Ca(A,1,e[0]);if(f)return d.fromData(f.data,[A.size*e[0]],A.dtype)}let g=Math.max(t,e.length),i=new Array(g).fill(1),n=new Array(g).fill(1);for(let f=0;f<t;f++)i[g-t+f]=I[f];for(let f=0;f<e.length;f++)n[g-e.length+f]=e[f];let Q=i.map((f,c)=>f*n[c]),C=Q.reduce((f,c)=>f*c,1),a=iA(o);if(!a)throw new Error(`Cannot tile array with dtype ${o}`);let B=new a(C),s=XA(Q),E=A;t<g&&(E=yA(A,i));let u=o==="int64"||o==="uint64",D=E.strides;if(o==="float16"&&uA&&E.isCContiguous){let f=E.size,c=new Float32Array(E.data.subarray(E.offset,E.offset+f)),m=new Float32Array(C),l=new Array(g).fill(0);for(let w=0;w<C;w++){let h=0;for(let b=0;b<g;b++){let p=l[b]%i[b];h+=p*D[b]}m[w]=c[h];for(let b=g-1;b>=0&&(l[b]++,!(l[b]<Q[b]));b--)l[b]=0}return B.set(m),d.fromData(B,Q,o)}let y=new Array(g).fill(0);for(let f=0;f<C;f++){let c=E.offset;for(let w=0;w<g;w++){let h=y[w]%i[w];c+=h*D[w]}let m=E.data[c],l=0;for(let w=0;w<g;w++)l+=y[w]*s[w];B[l]=m;for(let w=g-1;w>=0&&(y[w]++,!(y[w]<Q[w]));w--)y[w]=0}return d.fromData(B,Q,o)}function Gm(A,r,I){let t=A.shape,o=t.length,e=A.dtype,g=A.size;if(I===void 0){if(typeof r=="number"&&A.isCContiguous){let b=um(A,r);if(b)return b}let f=g,c=Array.isArray(r)?r:new Array(f).fill(r);if(c.length!==f)throw new Error(`operands could not be broadcast together with shape (${f},) (${c.length},)`);let m=c.reduce((b,p)=>b+p,0),l=iA(e);if(!l)throw new Error(`Cannot repeat array with dtype ${e}`);let w=new l(m);if(e==="float16"&&uA&&A.isCContiguous){let b=new Float32Array(A.data.subarray(A.offset,A.offset+f)),p=new Float32Array(m),N=0;for(let F=0;F<f;F++){let S=b[F],M=c[F];for(let Y=0;Y<M;Y++)p[N++]=S}return w.set(p),d.fromData(w,[m],e)}let h=0;for(let b=0;b<f;b++){let p=A.iget(b),N=c[b];for(let F=0;F<N;F++)w[h++]=p}return d.fromData(w,[m],e)}let i=I<0?o+I:I;if(i<0||i>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let n=t[i],Q=Array.isArray(r)?r:new Array(n).fill(r);if(Q.length!==n)throw new Error(`operands could not be broadcast together with shape (${n},) (${Q.length},)`);let C=Array.from(t);C[i]=Q.reduce((f,c)=>f+c,0);let a=C.reduce((f,c)=>f*c,1),B=iA(e);if(!B)throw new Error(`Cannot repeat array with dtype ${e}`);let s=new B(a),E=XA(C),u=new Array(o).fill(0),D=e==="int64"||e==="uint64",y=[0];for(let f=0;f<n;f++)y.push(y[f]+Q[f]);if(e==="float16"&&uA&&A.isCContiguous){let f=new Float32Array(A.data.subarray(A.offset,A.offset+g)),c=new Float32Array(a);for(let m=0;m<g;m++){let l=f[m],w=u[i],h=Q[w],b=0;for(let F=0;F<o;F++)F!==i&&(b+=u[F]*E[F]);let p=E[i],N=y[w];for(let F=0;F<h;F++)c[b+(N+F)*p]=l;for(let F=o-1;F>=0&&(u[F]++,!(u[F]<t[F]));F--)u[F]=0}return s.set(c),d.fromData(s,C,e)}for(let f=0;f<g;f++){let c=A.iget(f),m=u[i],l=Q[m],w=0;for(let p=0;p<o;p++)p!==i&&(w+=u[p]*E[p]);let h=E[i],b=y[m];for(let p=0;p<l;p++){let N=w+(b+p)*h;s[N]=c}for(let p=o-1;p>=0&&(u[p]++,!(u[p]<t[p]));p--)u[p]=0}return d.fromData(s,C,e)}function Sm(A,r){let I=A.shape,t=I.length,o=A.dtype,e=A.size,g;if(r===void 0)g=new Set(Array.from({length:t},(B,s)=>s));else if(typeof r=="number"){let B=r<0?t+r:r;if(B<0||B>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);g=new Set([B])}else g=new Set(r.map(B=>{let s=B<0?t+B:B;if(s<0||s>=t)throw new Error(`axis ${B} is out of bounds for array of dimension ${t}`);return s}));let i=iA(o);if(!i)throw new Error(`Cannot flip array with dtype ${o}`);let n=P(o);if(g.size===t&&A.isCContiguous&&!k(o)){let B=oa(A);if(B)return B}let Q=new i(e);if(t===1&&A.isCContiguous){if(o==="float16"&&uA){let E=A.offset,u=new Float32Array(A.data.subarray(E,E+e)),D=new Float32Array(e);for(let y=0;y<e;y++)D[y]=u[e-1-y];return Q.set(D),d.fromData(Q,[...I],o)}let B=A.data,s=A.offset;for(let E=0;E<e;E++)Q[E]=B[s+e-1-E];return d.fromData(Q,[...I],o)}if(t===2&&A.isCContiguous){let B=I[0],s=I[1],E=A.offset,u=A.data;if(g.size===2){for(let D=0;D<e;D++)Q[D]=u[E+e-1-D];return d.fromData(Q,[...I],o)}if(g.size===1){if(g.has(0)){for(let D=0;D<B;D++){let y=E+(B-1-D)*s,f=D*s;for(let c=0;c<s;c++)Q[f+c]=u[y+c]}return d.fromData(Q,[...I],o)}else if(g.has(1)){for(let D=0;D<B;D++){let y=E+D*s,f=D*s;for(let c=0;c<s;c++)Q[f+c]=u[y+s-1-c]}return d.fromData(Q,[...I],o)}}}let C=new Array(t),a=new Array(t).fill(0);for(let B=0;B<e;B++){for(let u=0;u<t;u++)C[u]=g.has(u)?I[u]-1-a[u]:a[u];let s=A.offset;for(let u=0;u<t;u++)s+=C[u]*A.strides[u];let E=A.data[s];Q[B]=E;for(let u=t-1;u>=0&&(a[u]++,!(a[u]<I[u]));u--)a[u]=0}return d.fromData(Q,[...I],o)}function Rm(A,r=1,I=[0,1]){let t=A.shape,o=t.length,e=A.dtype;if(o<2)throw new Error("Input must be at least 2-D");let g=I[0]<0?o+I[0]:I[0],i=I[1]<0?o+I[1]:I[1];if(g<0||g>=o||i<0||i>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(g===i)throw new Error("Axes must be different");if(r=(r%4+4)%4,r===0)return A.copy();if(o===2&&g===0&&i===1&&A.isCContiguous){if(r===1){let f=sm(A);if(f)return f}else if(r===2){let f=oa(A);if(f)return f}}let n=iA(e);if(!n)throw new Error(`Cannot rotate array with dtype ${e}`);let Q=[...t];(r===1||r===3)&&([Q[g],Q[i]]=[Q[i],Q[g]]);let C=Q.reduce((f,c)=>f*c,1),a=new n(C),B=P(e),s=A.data;if(o===2&&g===0&&i===1){let f=t[0],c=t[1];if(r===1){let m=c,l=f;if(B){let w=s,h=a;for(let b=0;b<m;b++){let p=b*l,N=c-1-b;for(let F=0;F<l;F++)h[p+F]=w[F*c+N]}}else{let w=s,h=a;for(let b=0;b<m;b++){let p=b*l,N=c-1-b;for(let F=0;F<l;F++)h[p+F]=w[F*c+N]}}}else if(r===2)if(B){let m=s,l=a;for(let w=0;w<f;w++){let h=w*c,b=(f-1-w)*c;for(let p=0;p<c;p++)l[h+p]=m[b+(c-1-p)]}}else{let m=s,l=a;for(let w=0;w<f;w++){let h=w*c,b=(f-1-w)*c;for(let p=0;p<c;p++)l[h+p]=m[b+(c-1-p)]}}else{let m=c,l=f;if(B){let w=s,h=a;for(let b=0;b<m;b++){let p=b*l;for(let N=0;N<l;N++)h[p+N]=w[(f-1-N)*c+b]}}else{let w=s,h=a;for(let b=0;b<m;b++){let p=b*l;for(let N=0;N<l;N++)h[p+N]=w[(f-1-N)*c+b]}}}return d.fromData(a,Q,e)}let E=XA(Q),u=XA(t),D=new Array(o).fill(0),y=new Array(o);for(let f=0;f<A.size;f++){for(let h=0;h<o;h++)y[h]=D[h];let c,m;r===1?(c=t[i]-1-D[i],m=D[g]):r===2?(c=t[g]-1-D[g],m=t[i]-1-D[i],y[g]=c,y[i]=m):(c=D[i],m=t[g]-1-D[g]),r!==2&&(y[g]=c,y[i]=m);let l=0;for(let h=0;h<o;h++)l+=y[h]*E[h];let w=0;for(let h=0;h<o;h++)w+=D[h]*u[h];if(B){let h=s,b=a;b[l]=h[w]}else{let h=s,b=a;b[l]=h[w]}for(let h=o-1;h>=0&&(D[h]++,!(D[h]<t[h]));h--)D[h]=0}return d.fromData(a,Q,e)}function hI(A,r,I){let t=A.shape,o=t.length,e=A.dtype,g=A.size;if(I===void 0){let E=Array.isArray(r)?r.reduce((c,m)=>c+m,0):r;if(A.isCContiguous){let c=Cm(A,E);if(c)return c}let u=lI(A),D=iA(e);if(!D)throw new Error(`Cannot roll array with dtype ${e}`);let y=new D(g),f=P(e);if(e==="float16"&&uA&&u.isCContiguous){let c=new Float32Array(u.data.subarray(u.offset,u.offset+g)),m=new Float32Array(g);for(let l=0;l<g;l++){let w=((l-E)%g+g)%g;m[l]=c[w]}return y.set(m),d.fromData(y,[...t],e)}for(let c=0;c<g;c++){let m=((c-E)%g+g)%g,l=u.iget(m);y[c]=l}return d.fromData(y,[...t],e)}let i=Array.isArray(r)?r:[r],n=Array.isArray(I)?I:[I];if(i.length!==n.length)throw new Error("shift and axis must have the same length");let Q=n.map(E=>{let u=E<0?o+E:E;if(u<0||u>=o)throw new Error(`axis ${E} is out of bounds for array of dimension ${o}`);return u}),C=iA(e);if(!C)throw new Error(`Cannot roll array with dtype ${e}`);let a=new C(g),B=P(e),s=new Array(o).fill(0);if(e==="float16"&&uA&&A.isCContiguous){let E=new Float32Array(A.data.subarray(A.offset,A.offset+g)),u=new Float32Array(g),D=A.strides;for(let y=0;y<g;y++){let f=[...s];for(let m=0;m<Q.length;m++){let l=Q[m],w=t[l],h=i[m];f[l]=((f[l]-h)%w+w)%w}let c=0;for(let m=0;m<o;m++)c+=f[m]*D[m];u[y]=E[c];for(let m=o-1;m>=0&&(s[m]++,!(s[m]<t[m]));m--)s[m]=0}return a.set(u),d.fromData(a,[...t],e)}for(let E=0;E<g;E++){let u=[...s];for(let f=0;f<Q.length;f++){let c=Q[f],m=t[c],l=i[f];u[c]=((u[c]-l)%m+m)%m}let D=A.offset;for(let f=0;f<o;f++)D+=u[f]*A.strides[f];let y=A.data[D];a[E]=y;for(let f=o-1;f>=0&&(s[f]++,!(s[f]<t[f]));f--)s[f]=0}return d.fromData(a,[...t],e)}function km(A,r,I=0){let t=A.ndim,o=r<0?t+r:r;if(o<0||o>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let e=I<0?t+I:I;if(e<0||e>t)throw new Error(`start ${I} is out of bounds`);return o<e&&e--,o===e?d.fromData(A.data,Array.from(A.shape),A.dtype,Array.from(A.strides),A.offset):pa(A,o,e)}function qm(A,r){if(A.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return xt(A,r,2)}function Mm(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?yA(I,[I.shape[0],1]):I);return Na(r)}function Jm(A,r){let I=A.dtype,t=r.reduce((n,Q)=>n*Q,1),o=A.size,e=iA(I);if(!e)throw new Error(`Cannot resize array with dtype ${I}`);let g=new e(t),i=P(I);for(let n=0;n<t;n++){let Q=n%o,C=A.iget(Q);g[n]=C}return d.fromData(g,r,I)}function xm(A){return A.map(r=>r.ndim===0?yA(r,[1]):r)}function Um(A){return A.map(r=>r.ndim===0?yA(r,[1,1]):r.ndim===1?yA(r,[1,r.shape[0]]):r)}function Lm(A){return A.map(r=>r.ndim===0?yA(r,[1,1,1]):r.ndim===1?yA(r,[1,r.shape[0],1]):r.ndim===2?yA(r,[r.shape[0],r.shape[1],1]):r)}function Hm(A,r=0){let I=A.shape,t=I.length,o=r<0?t+r:r;if(o<0||o>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let e=I[o],g=new Array(e),i=A.data,n=A.dtype,Q=A.strides,C=A.offset,a=[],B=[];for(let E=0;E<t;E++)E!==o&&(a.push(I[E]),B.push(Q[E]));let s=Q[o];for(let E=0;E<e;E++)g[E]=d.fromData(i,a,n,B,C+E*s);return g}function Ym(A,r=1){if(A.length===0)throw new Error("need at least one array to block");return A.length===1?A[0].copy():zr(A,-1)}var b8={threshold:1e3,edgeitems:3,precision:8,linewidth:75,floatmode:"maxprec",suppress:!0,separator:" ",prefix:"",suffix:"",nanstr:"nan",infstr:"inf",sign:"-",legacy:!1},RA={...b8};function Km(A){RA={...RA,...A}}function vm(){return{...RA}}function Xm(A){let r=null,I={_savedOptions:null,enter(){r={...RA},I._savedOptions=r,RA={...RA,...A}},exit(){r&&(RA=r,r=null,I._savedOptions=null)},apply(t){I.enter();try{return t()}finally{I.exit()}}};return I}function Lt(A,r=null,I=!0,t=!0,o="k",e="-",g=null,i=null,n=null){let Q=r??RA.precision;if(!Number.isFinite(A))return Number.isNaN(A)?RA.nanstr:(A>0?"":"-")+RA.infstr;let C;if(I&&r===null?(C=A.toString(),t&&!C.includes(".")&&!C.includes("e")&&(C+=".0")):C=A.toFixed(Q),n!==null){let a=C.indexOf(".");if(a!==-1){let B=C.length-a-1;B<n&&(C+="0".repeat(n-B))}else t&&(C+="."+"0".repeat(n))}if(o!=="k"&&C.includes(".")){if(o==="."||o==="0"||o==="-"){let a=C.length;for(;a>0&&C[a-1]==="0";)a--;C=C.slice(0,a)}o==="0"&&C.endsWith(".")&&(C+="0"),o==="-"&&C.endsWith(".")&&(C=C.slice(0,-1))}if(A>=0&&!Object.is(A,-0)&&(e==="+"?C="+"+C:e===" "&&(C=" "+C)),g!==null&&C.length<g&&(C=" ".repeat(g-C.length)+C),i!==null){let a=C.indexOf(".");if(a!==-1){let B=C.length-a-1;B<i&&(C+="0".repeat(i-B))}}return C}function Ut(A,r=null,I=!0,t="k",o="-",e=null,g=2,i=null){let n=r??RA.precision;if(!Number.isFinite(A))return Number.isNaN(A)?RA.nanstr:(A>0?"":"-")+RA.infstr;let Q=A.toExponential(n);if(i!==null){let u=Q.indexOf("e"),D=Q.slice(0,u),y=Q.slice(u),f=D.indexOf(".");if(f!==-1){let c=D.length-f-1;c<i&&(Q=D+"0".repeat(i-c)+y)}}if(t!=="k"){let u=Q.indexOf("e"),D=Q.slice(0,u),y=Q.slice(u);D.includes(".")&&((t==="."||t==="0"||t==="-")&&(D=D.replace(/0+$/,"")),t==="0"&&D.endsWith(".")&&(D+="0"),t==="-"&&(D=D.replace(/\.$/,""))),Q=D+y}let C=Q.indexOf("e"),a=Q.slice(0,C),B=Q.slice(C+1),s=B[0]==="-"?"-":"+",E=B.replace(/^[+-]/,"");for(;E.length<g;)E="0"+E;return Q=a+"e"+s+E,A>=0&&!Object.is(A,-0)&&(o==="+"?Q="+"+Q:o===" "&&(Q=" "+Q)),e!==null&&Q.length<e&&(Q=" ".repeat(e-Q.length)+Q),Q}function Tm(A,r=2,I=0){if(r<2||r>36)throw new Error("base must be between 2 and 36");A=Math.trunc(A);let t;if(A<0?t="-"+Math.abs(A).toString(r).toUpperCase():t=A.toString(r).toUpperCase(),I>0){let o="0".repeat(I);t.startsWith("-")?t="-"+o+t.slice(1):t=o+t}return t}function Om(A,r=null){if(A=Math.trunc(A),r!==null&&A<0){if(A=Math.pow(2,r)+A,A<0)throw new Error("width too small for negative number");let o=A.toString(2);return o.length<r&&(o="0".repeat(r-o.length)+o),o}let I;return A<0?I="-"+Math.abs(A).toString(2):I=A.toString(2),r!==null&&I.length<r&&(I="0".repeat(r-I.length)+I),I}function Dn(A,r,I){if(A instanceof X){let t=Dn(A.re,"float64",I),o=Dn(Math.abs(A.im),"float64",I),e=A.im>=0?"+":"-";return`${t}${e}${o}j`}return typeof A=="boolean"?A?" True":"False":typeof A=="bigint"?A.toString():Number.isFinite(A)?r==="float16"||r==="float32"||r==="float64"?I.suppress&&Math.abs(A)<1e-10&&A!==0?"0.":Lt(A,I.precision,!1,!0,"k",I.sign):A.toString():Number.isNaN(A)?I.nanstr:(A>0?"":"-")+I.infstr}function p8(A,r){let I=[],t=A.shape,o=t.length,e=A.strides;function g(i,n){if(n===o){let B=0;for(let s=0;s<o;s++)B+=i[s]*e[s];I.push(A.iget(B));return}let Q=t[n];if(t.reduce((B,s)=>B*s,1)>r.threshold&&Q>2*r.edgeitems){for(let B=0;B<r.edgeitems;B++)i[n]=B,g(i,n+1);for(let B=Q-r.edgeitems;B<Q;B++)i[n]=B,g(i,n+1)}else for(let B=0;B<Q;B++)i[n]=B,g(i,n+1)}return o>0?g(new Array(o).fill(0),0):I.push(A.iget(0)),I}function Pm(A,r){return A<0||Object.is(A,-0)?"-"+Math.abs(A).toString()+".":r==="+"?"+"+A.toString()+".":r===" "?" "+A.toString()+".":A.toString()+"."}function LI(A,r,I){let t=A.indexOf(".");if(t===-1)return A.padStart(r+(I>0?1+I:0));let o=A.slice(0,t),e=A.slice(t+1),g=o.padStart(r),i=I>0?e.padEnd(I):e;return g+"."+i}function _m(A){let r=0,I=0;for(let t of A){let o=t.indexOf(".");o===-1?r=Math.max(r,t.length):(r=Math.max(r,o),I=Math.max(I,t.length-o-1))}return{maxLeft:r,maxRight:I}}function Fa(A,r){let I=A.filter(B=>Number.isFinite(B));if(I.length===0){let B=A.map(E=>Number.isNaN(E)?r.nanstr:(E>0?"":"-")+r.infstr),s=B.length>0?Math.max(...B.map(E=>E.length)):1;return E=>Number.isNaN(E)?r.nanstr.padStart(s):Number.isFinite(E)?E.toString().padStart(s):((E>0?"":"-")+r.infstr).padStart(s)}let t=r.suppress?I.map(B=>Math.abs(B)<1e-10&&B!==0?0:B):I,o=t.map(Math.abs).filter(B=>B>0),e=o.length>0?Math.max(...o):0,g=o.length>0?Math.min(...o):0;if(e>=1e16||g>0&&g<1e-4||g>0&&e/g>1e3){let B=t.map(c=>Ut(c,r.precision,!1,".",r.sign)),s=0;for(let c of B){let m=c.indexOf("e"),l=m!==-1?c.slice(0,m):c,w=l.indexOf(".");w!==-1&&(s=Math.max(s,l.length-w-1))}let E=Math.max(s,0),u=Math.max(E,1),D=E===0?".":"k",y=t.map(c=>Ut(c,u,!1,D,r.sign));for(let c of A)Number.isFinite(c)||y.push(Number.isNaN(c)?r.nanstr:(c>0?"":"-")+r.infstr);let f=Math.max(...y.map(c=>c.length));return c=>(r.suppress&&Math.abs(c)<1e-10&&c!==0&&Number.isFinite(c)&&(c=0),Number.isNaN(c)?r.nanstr.padStart(f):Number.isFinite(c)?Ut(c,u,!1,D,r.sign).padStart(f):((c>0?"":"-")+r.infstr).padStart(f))}if(t.every(B=>Number.isInteger(B))){let B=t.map(u=>Pm(u,r.sign));for(let u of A)Number.isFinite(u)||B.push(Number.isNaN(u)?r.nanstr:(u>0?"":"-")+r.infstr);let{maxLeft:s,maxRight:E}=_m(B);return u=>(r.suppress&&Math.abs(u)<1e-10&&u!==0&&Number.isFinite(u)&&(u=0),Number.isNaN(u)?LI(r.nanstr,s,E):Number.isFinite(u)?LI(Pm(u,r.sign),s,E):LI((u>0?"":"-")+r.infstr,s,E))}let Q=t.map(B=>Lt(B,r.precision,!1,!0,".",r.sign));for(let B of A)Number.isFinite(B)||Q.push(Number.isNaN(B)?r.nanstr:(B>0?"":"-")+r.infstr);let{maxLeft:C,maxRight:a}=_m(Q);return B=>(r.suppress&&Math.abs(B)<1e-10&&B!==0&&Number.isFinite(B)&&(B=0),Number.isNaN(B)?LI(r.nanstr,C,a):Number.isFinite(B)?LI(Lt(B,r.precision,!1,!0,".",r.sign),C,a):LI((B>0?"":"-")+r.infstr,C,a))}function N8(A,r){let I=A.dtype,t=p8(A,r);if(t.length===0)return e=>Dn(e,I,r);if(I==="bool")return e=>e?" True":"False";if(I==="int64"||I==="uint64"){let e=t.map(i=>i.toString()),g=Math.max(...e.map(i=>i.length));return i=>i.toString().padStart(g)}if(I.startsWith("int")||I.startsWith("uint")){let e=t.map(i=>i.toString()),g=Math.max(...e.map(i=>i.length));return i=>i.toString().padStart(g)}if(I==="complex64"||I==="complex128"){let e=t.map(Q=>Q.re),g=t.map(Q=>Math.abs(Q.im)),i=Fa(e,r),n=Fa(g,r);return Q=>{let C=Q,a=i(C.re),B=n(Math.abs(C.im)),s=C.im>=0?"+":"-";return`${a}${s}${B}j`}}let o=Fa(t,r);return e=>o(e)}function cn(A,r,I,t,o,e){let g=A.shape,i=g.length;if(I===i){let u=0,D=A.strides;for(let f=0;f<i;f++)u+=r[f]*D[f];let y=A.iget(u);return o(y)}let n=g[I],Q=t.threshold,C=t.edgeitems,B=g.reduce((u,D)=>u*D,1)>Q&&n>2*C,s=[],E=[...r];if(B){for(let u=0;u<C;u++)E[I]=u,s.push(cn(A,E,I+1,t,o,e+1));s.push("...");for(let u=n-C;u<n;u++)E[I]=u,s.push(cn(A,E,I+1,t,o,e+1))}else for(let u=0;u<n;u++)E[I]=u,s.push(cn(A,E,I+1,t,o,e+1));if(I===i-1){let u="["+s.join(t.separator)+"]";if(e+u.length<t.linewidth)return u;let D=" ".repeat(e+1),y=t.linewidth-e-1,f=[],c="";for(let m=0;m<s.length;m++){let l=s[m];if(c==="")c=l;else{let w=c+t.separator+l;w.length<y?c=w:(f.push(c),c=l)}}return c&&f.push(c),"["+f.join(`
2
+ `+D)+"]"}else{let u=" ".repeat(e+1),D=i-I-2,y=`
3
3
  `+`
4
- `.repeat(Math.max(0,b))+d;return"["+p.join(A)+"]"}}function Mo(r,t=null,e=null,n=null,o=" ",a="",u="",i=null,s=null,c=null,l=null){let f={...ur,linewidth:t??ur.linewidth,precision:e??ur.precision,suppress:n??ur.suppress,separator:o,prefix:a,suffix:u,threshold:i??ur.threshold,edgeitems:s??ur.edgeitems,floatmode:c??ur.floatmode,sign:l??ur.sign};if(r.ndim===0){let d=r.iget(0);return _o(d,r.dtype,f)}let m=RN(r,f),p=f.prefix.length,y=zo(r,new Array(r.ndim).fill(0),0,f,m,p);return f.prefix+y+f.suffix}function Ml(r,t=null,e=null,n=null){let a="array("+Mo(r,t,e,n,", ");return r.dtype!=="float64"&&(a+=`, dtype='${r.dtype}'`),a+=")",a}function vo(r,t=null,e=null,n=null){return Mo(r,t,e,n)}var P=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get itemsize(){return Wr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(E(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let i=a;if(i<0&&(i=this.shape[u]+i),i<0||i>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return i}),o=this.dtype;if(B(o))this._storage.set(n,e);else if(E(o)){let a=e instanceof U?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof U?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof U?e.re:Number(e);this._storage.set(n,a)}}iget(t){return this._storage.iget(t)}iset(t,e){this._storage.iset(t,e)}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=K(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let i=new u(a),s=this.data;if(E(n)&&!E(t)){let l=s;if(t==="bool")for(let f=0;f<a;f++)i[f]=l[f]!==BigInt(0)?1:0;else for(let f=0;f<a;f++)i[f]=Number(l[f])}else if(!E(n)&&E(t)){let l=s;for(let f=0;f<a;f++)i[f]=BigInt(Math.round(Number(l[f])))}else if(t==="bool"){let l=s;for(let f=0;f<a;f++)i[f]=l[f]!==0?1:0}else if(n==="bool"&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else if(!E(n)&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else{let l=s;for(let f=0;f<a;f++)i[f]=l[f]}let c=S.fromData(i,o,t);return new r(c)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((s,c)=>{let l=wo(s);return Io(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let s=0;s<e.length;s++){let c=e[s];if(a+=c.start*this._storage.strides[s],c.step===0)continue;let l=Math.max(0,Math.ceil((c.stop-c.start)/c.step));n.push(l),o.push(this._storage.strides[s]*c.step)}let u=S.fromData(this._storage.data,n,this._storage.dtype,o,a),i=this._base??this;return new r(u,i)}toString(){return vo(this._storage)}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let i=0;i<t[a];i++)o[a]=i,u.push(n(o,a+1));return u};return n(new Array(e),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let n=this._storage.data,o=n.BYTES_PER_ELEMENT,a=this._storage.offset*o,u=this.size*o;return n.buffer.slice(a,a+u)}let e=this.copy()._storage.data;return e.buffer.slice(0,this.size*e.BYTES_PER_ELEMENT)}item(...t){if(t.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(t.length===1){let e=t[0];if(e<0||e>=this.size)throw new Error(`index ${e} is out of bounds for size ${this.size}`);return this._storage.iget(e)}return this.get(t)}};function z(r){return r instanceof P||r&&typeof r=="object"&&"storage"in r&&r.storage instanceof S?r.storage:r}function v(r,t){return P.fromStorage(r,t)}function Nr(r,t){let e=t.base??t;return P.fromStorage(r,e)}function $r(r){return r.map(t=>v(t))}function st(r,t){return r.map(e=>Nr(e,t))}function Fo(r){return[v(r[0]),v(r[1])]}function Fs(r){return new P(r)}function VN(r){return!!(r instanceof P||r&&typeof r=="object"&&"storage"in r&&r.storage instanceof S)}function wr(r,t=tr){let e=S.zeros(r,t);return new P(e)}function Bo(r,t=tr){let e=S.ones(r,t);return new P(e)}function To(r,t=tr){return wr(r,t)}function Eo(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=tr);let o=K(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((s,c)=>s*c,1),u=new o(a);if(E(n)){let s=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));u.fill(s)}else n==="bool"?u.fill(t?1:0):u.fill(Number(t));let i=S.fromData(u,r,n);return new P(i)}function PN(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function vl(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>vl(t)):!1}function Fl(r){return Dl(r)?!0:Array.isArray(r)?r.some(t=>Fl(t)):!1}function jN(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function Q(r,t){if(r instanceof P)return!t||r.dtype===t?r.copy():r.astype(t);let e=vl(r),n=Fl(r),o=PN(r),a=o.reduce((p,y)=>p*y,1),u=t;u||(n?u="complex128":e?u="int64":u=tr);let i=B(u),s=K(u);if(!s)throw new Error(`Cannot create array with dtype ${u}`);let c=i?a*2:a,l=new s(c),f=jN(r);if(E(u)){let p=l;for(let y=0;y<a;y++){let d=f[y];p[y]=typeof d=="bigint"?d:BigInt(Math.round(Number(d)))}}else if(u==="bool"){let p=l;for(let y=0;y<a;y++)p[y]=f[y]?1:0}else if(i){let p=l;for(let y=0;y<a;y++){let d=f[y],b,A;d instanceof U?(b=d.re,A=d.im):typeof d=="object"&&d!==null&&"re"in d?(b=d.re,A=d.im??0):(b=Number(d),A=0),p[y*2]=b,p[y*2+1]=A}}else{let p=l;for(let y=0;y<a;y++){let d=f[y];p[y]=Number(d)}}let m=S.fromData(l,o,u);return new P(m)}function Bs(r,t,e=1,n=tr){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let u=Math.max(0,Math.ceil((a-o)/e)),i=K(n);if(!i)throw new Error(`Cannot create arange array with dtype ${n}`);let s=new i(u);if(E(n))for(let l=0;l<u;l++)s[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<u;l++)s[l]=o+l*e!==0?1:0;else for(let l=0;l<u;l++)s[l]=o+l*e;let c=S.fromData(s,[u],n);return new P(c)}function Ts(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return Q([],n);if(e===1)return Q([r],n);let o=K(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),u=(t-r)/(e-1);if(E(n))for(let s=0;s<e;s++)a[s]=BigInt(Math.round(r+s*u));else if(n==="bool")for(let s=0;s<e;s++)a[s]=r+s*u!==0?1:0;else for(let s=0;s<e;s++)a[s]=r+s*u;let i=S.fromData(a,[e],n);return new P(i)}function Es(r,t,e=50,n=10,o=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return Q([],o);if(e===1)return Q([Math.pow(n,r)],o);let a=K(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let u=new a(e),i=(t-r)/(e-1);if(E(o))for(let c=0;c<e;c++){let l=r+c*i;u[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*i;u[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*i;u[c]=Math.pow(n,l)}let s=S.fromData(u,[e],o);return new P(s)}function Os(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return Q([],n);if(e===1)return Q([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let u=K(n);if(!u)throw new Error(`Cannot create geomspace array with dtype ${n}`);let i=new u(e),s=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-s)/(e-1);if(E(n))for(let m=0;m<e;m++){let p=o*Math.exp(s+m*l);i[m]=BigInt(Math.round(p))}else if(n==="bool")for(let m=0;m<e;m++){let p=o*Math.exp(s+m*l);i[m]=p!==0?1:0}else for(let m=0;m<e;m++){let p=o*Math.exp(s+m*l);i[m]=p}let f=S.fromData(i,[e],n);return new P(f)}function Oo(r,t,e=0,n=tr){let o=t??r,a=wr([r,o],n),u=a.data;if(E(n)){let i=u;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(i[s*o+c]=BigInt(1))}}else{let i=u;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(i[s*o+c]=1)}}return a}function Us(r,t=tr){return Oo(r,r,0,t)}function Xr(r,t){return VN(r)?!t||r.dtype===t?r:r.astype(t):Q(r,t)}function $s(r,t){return wr(Array.from(r.shape),t??r.dtype)}function ks(r,t){return Bo(Array.from(r.shape),t??r.dtype)}function Rs(r,t){return To(Array.from(r.shape),t??r.dtype)}function qs(r,t,e){return Eo(Array.from(r.shape),t,e??r.dtype)}function Vs(r){return r.copy()}function Ps(r,t){return Xr(r,t)}function js(r,t){return Xr(r,t).copy()}function Ls(r,t){return Xr(r,t).copy()}function Ws(r,t){let e=Xr(r,t),n=e.data;for(let o=0;o<n.length;o++){let a=n[o];if(!Number.isFinite(a))throw new Error("array must not contain infs or NaNs")}return e}function Gs(r,t,e){let n=r;return t&&t!==r.dtype&&(n=n.astype(t)),n}function LN(r){let t=r.data,e=S.fromData(t.slice(),[t.length],r.dtype);return Fs(e)}function Uo(r,t=0){let e=r.shape,n=r.data,o=r.dtype;if(e.length===1){let a=e[0],u=a+Math.abs(t),i=wr([u,u],o),s=i.data;for(let c=0;c<a;c++){let l=t>=0?c:c-t,f=t>=0?c+t:c;l>=0&&l<u&&f>=0&&f<u&&(s[l*u+f]=n[c])}return i}else if(e.length===2){let a=e[0],u=e[1],i=Math.min(t>=0?Math.min(a,u-t):Math.min(a+t,u),Math.max(0,t>=0?u-t:a+t));if(i<=0)return Q([],o);let s=[];for(let c=0;c<i;c++){let l=t>=0?c:c-t,f=t>=0?c+t:c;l>=0&&l<a&&f>=0&&f<u&&s.push(n[l*u+f])}return Q(s,o)}throw new Error("Input must be 1-D or 2-D")}function Ys(r,t=0){let e=LN(r);return Uo(e,t)}function Zs(r,t,e=0,n=tr){let o=t??r,a=wr([r,o],n),u=a.data;for(let i=0;i<r;i++)for(let s=0;s<=Math.min(i+e,o-1);s++)s>=0&&(u[i*o+s]=1);return a}function Xs(r,t=0){let e=r.shape;if(e.length<2)throw new Error("Input must be at least 2-D");let n=r.copy(),o=n.data,a=e[e.length-2],u=e[e.length-1],i=e.slice(0,-2).reduce((c,l)=>c*l,1),s=a*u;for(let c=0;c<i;c++){let l=c*s;for(let f=0;f<a;f++)for(let m=f+t+1;m<u;m++)o[l+f*u+m]=0}return n}function Js(r,t=0){let e=r.shape;if(e.length<2)throw new Error("Input must be at least 2-D");let n=r.copy(),o=n.data,a=e[e.length-2],u=e[e.length-1],i=e.slice(0,-2).reduce((c,l)=>c*l,1),s=a*u;for(let c=0;c<i;c++){let l=c*s;for(let f=0;f<a;f++)for(let m=0;m<Math.min(f+t,u);m++)o[l+f*u+m]=0}return n}function Ks(r,t,e=!1){let n=r.size,o=t??n,a=r.data,u=wr([n,o],r.dtype),i=u.data;for(let s=0;s<n;s++){let c=a[s];for(let l=0;l<o;l++){let f=e?l:o-1-l;i[s*o+l]=Math.pow(c,f)}}return u}function Qs(r,t=tr,e=-1,n=0){let o=K(t);if(!o)throw new Error(`Unsupported dtype: ${t}`);let a;if(r instanceof ArrayBuffer){let i=n,s=e<0?(r.byteLength-i)/o.BYTES_PER_ELEMENT:e;a=new o(r,i,s)}else{let i=n,s=e<0?r.length:n+e,c=Array.from(r.slice(i,s));a=new o(c.length);for(let l=0;l<c.length;l++)a[l]=c[l]}let u=S.fromData(a,[a.length],t);return Fs(u)}function Hs(r,t,e=tr){let n=t.reduce((c,l)=>c*l,1),o=K(e);if(!o)throw new Error(`Unsupported dtype: ${e}`);let a=new o(n),u=[],i=1;for(let c=t.length-1;c>=0;c--)u.unshift(i),i*=t[c];for(let c=0;c<n;c++){let l=[],f=c;for(let m=0;m<t.length;m++)l.push(Math.floor(f/u[m])),f=f%u[m];a[c]=r(...l)}let s=S.fromData(a,t,e);return Fs(s)}function ri(r,t=tr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return Q(n,t)}function ti(r,t=tr,e=-1,n){let o=n??/\s+/,u=r.split(o).filter(s=>s.trim()!=="").map(s=>parseFloat(s.trim())),i=e>=0?u.slice(0,e):u;return Q(i,t)}function ei(r,t=tr,e=-1,n=""){throw new Error("fromfile requires Node.js file system access")}function Gr(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let u=0;u<o;u++){let i=u<o-e?1:r[u-(o-e)],s=u<o-n?1:t[u-(o-n)];if(i===s)a[u]=i;else if(i===1)a[u]=s;else if(s===1)a[u]=i;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function WN(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let i=o-n+u,s=r[u],c=e[i];if(s===c)a[i]=t[u];else if(s===1)a[i]=0;else throw new Error("Invalid broadcast")}return a}function $o(r,t){let e=WN(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function sr(r,t,e,n){let o=or(r.dtype,t.dtype),a=r.shape,u=t.shape;if(a.length===u.length&&a.every((y,d)=>y===u[d])&&r.isCContiguous&&t.isCContiguous&&!E(r.dtype)&&!E(t.dtype)&&!E(o)){let y=r.size,d=S.zeros(Array.from(a),o),b=d.data,A=r.data,g=t.data,h=r.offset,N=t.offset;if(h===0&&N===0)for(let D=0;D<y;D++)b[D]=e(A[D],g[D]);else for(let D=0;D<y;D++)b[D]=e(A[h+D],g[N+D]);return d}let s=Gr(r.shape,t.shape),c=$o(r,s),l=$o(t,s),f=S.zeros(s,o),m=f.data,p=f.size;if(E(o)){let y=m;for(let d=0;d<p;d++){let b=c.iget(d),A=l.iget(d),g=b instanceof U?b.re:b,h=A instanceof U?A.re:A,N=typeof g=="bigint"?g:BigInt(Math.round(g)),D=typeof h=="bigint"?h:BigInt(Math.round(h));n==="add"?y[d]=N+D:n==="subtract"?y[d]=N-D:n==="multiply"?y[d]=N*D:n==="divide"?y[d]=N/D:y[d]=BigInt(Math.round(e(Number(N),Number(D))))}}else{let y=E(r.dtype)||E(t.dtype);for(let d=0;d<p;d++){let b=c.iget(d),A=l.iget(d),g=Number(b),h=Number(A);m[d]=e(g,h)}}return f}function Ir(r,t,e){let n=Gr(r.shape,t.shape),o=$o(r,n),a=$o(t,n),u=n.reduce((c,l)=>c*l,1),i=new Uint8Array(u),s=E(r.dtype)||E(t.dtype);for(let c=0;c<u;c++){let l=o.iget(c),f=a.iget(c),m=Number(l),p=Number(f);i[c]=e(m,p)?1:0}return S.fromData(i,n,"bool")}function ir(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,i=e?n:n!=="float32"&&n!=="float64"?"float64":n,s=S.zeros(o,i),c=s.data,l=r.data,f=r.offset,m=r.isCContiguous;if(E(n))if(E(i)){let p=c;if(m)for(let y=0;y<a;y++){let d=Number(l[f+y]);p[y]=BigInt(Math.round(t(d)))}else for(let y=0;y<a;y++)p[y]=BigInt(Math.round(t(Number(r.iget(y)))))}else if(m)for(let p=0;p<a;p++)c[p]=t(Number(l[f+p]));else for(let p=0;p<a;p++)c[p]=t(Number(r.iget(p)));else if(m)if(f===0)for(let p=0;p<a;p++)c[p]=t(Number(l[p]));else for(let p=0;p<a;p++)c[p]=t(Number(l[f+p]));else for(let p=0;p<a;p++)c[p]=t(Number(r.iget(p)));return s}function ni(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Dr(r,t){return[r[t*2],r[t*2+1]]}function br(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function Ol(r,t){if(typeof t=="number")return Bl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return Bl(r,e)}return ni(r,t)?GN(r,t):sr(r,t,(e,n)=>e+n,"add")}function GN(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=n.data,s=r.offset,c=t.offset;if(B(e)){let l=i,f=B(r.dtype),m=B(t.dtype);for(let p=0;p<o;p++){let[y,d]=f?Dr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Dr(u,c+p):[Number(u[c+p]),0];br(l,p,y+b,d+A)}return n}if(E(e)){let l=i;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[s+m]=="bigint"?a[s+m]:BigInt(Math.round(Number(a[s+m]))),y=typeof u[c+m]=="bigint"?u[c+m]:BigInt(Math.round(Number(u[c+m])));l[m]=p+y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[s+y]+p[c+y]}}else if(E(r.dtype)||E(t.dtype))for(let f=0;f<o;f++){let m=typeof a[s+f]=="bigint"?Number(a[s+f]):a[s+f],p=typeof u[c+f]=="bigint"?Number(u[c+f]):u[c+f];i[f]=m+p}else if(s===0&&c===0)for(let f=0;f<o;f++)i[f]=a[f]+u[f];else for(let f=0;f<o;f++)i[f]=a[s+f]+u[c+f];return n}function Ul(r,t){if(typeof t=="number")return Tl(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return Tl(r,e)}return ni(r,t)?YN(r,t):sr(r,t,(e,n)=>e-n,"subtract")}function YN(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=n.data,s=r.offset,c=t.offset;if(B(e)){let l=i,f=B(r.dtype),m=B(t.dtype);for(let p=0;p<o;p++){let[y,d]=f?Dr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Dr(u,c+p):[Number(u[c+p]),0];br(l,p,y-b,d-A)}return n}if(E(e)){let l=i;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[s+m]=="bigint"?a[s+m]:BigInt(Math.round(Number(a[s+m]))),y=typeof u[c+m]=="bigint"?u[c+m]:BigInt(Math.round(Number(u[c+m])));l[m]=p-y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[s+y]-p[c+y]}}else if(E(r.dtype)||E(t.dtype))for(let f=0;f<o;f++){let m=typeof a[s+f]=="bigint"?Number(a[s+f]):a[s+f],p=typeof u[c+f]=="bigint"?Number(u[c+f]):u[c+f];i[f]=m-p}else if(s===0&&c===0)for(let f=0;f<o;f++)i[f]=a[f]-u[f];else for(let f=0;f<o;f++)i[f]=a[s+f]-u[c+f];return n}function $l(r,t){if(typeof t=="number")return El(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return El(r,e)}return ni(r,t)?ZN(r,t):sr(r,t,(e,n)=>e*n,"multiply")}function ZN(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=n.data,s=r.offset,c=t.offset;if(B(e)){let l=i,f=B(r.dtype),m=B(t.dtype);for(let p=0;p<o;p++){let[y,d]=f?Dr(a,s+p):[Number(a[s+p]),0],[b,A]=m?Dr(u,c+p):[Number(u[c+p]),0],g=y*b-d*A,h=y*A+d*b;br(l,p,g,h)}return n}if(E(e)){let l=i;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[s+m]=="bigint"?a[s+m]:BigInt(Math.round(Number(a[s+m]))),y=typeof u[c+m]=="bigint"?u[c+m]:BigInt(Math.round(Number(u[c+m])));l[m]=p*y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[s+y]*p[c+y]}}else if(E(r.dtype)||E(t.dtype))for(let f=0;f<o;f++){let m=typeof a[s+f]=="bigint"?Number(a[s+f]):a[s+f],p=typeof u[c+f]=="bigint"?Number(u[c+f]):u[c+f];i[f]=m*p}else if(s===0&&c===0)for(let f=0;f<o;f++)i[f]=a[f]*u[f];else for(let f=0;f<o;f++)i[f]=a[s+f]*u[c+f];return n}function kl(r,t){if(typeof t=="number")return XN(r,t);let e=B(r.dtype),n=B(t.dtype);if(e||n){let l=or(r.dtype,t.dtype),f=S.zeros(Array.from(r.shape),l),m=f.data,p=r.size,y=r.data,d=t.data,b=r.offset,A=t.offset;for(let g=0;g<p;g++){let[h,N]=e?Dr(y,b+g):[Number(y[b+g]),0],[D,x]=n?Dr(d,A+g):[Number(d[A+g]),0],C=D*D+x*x,w=(h*D+N*x)/C,_=(N*D-h*x)/C;br(m,g,w,_)}return f}let o=r.dtype==="float64",a=t.dtype==="float64",u=r.dtype==="float32",i=t.dtype==="float32";if(o||a){let l=o?r:it(r,"float64"),f=a?t:it(t,"float64");return sr(l,f,(m,p)=>m/p,"divide")}if(u||i){let l=u?r:it(r,"float32"),f=i?t:it(t,"float32");return sr(l,f,(m,p)=>m/p,"divide")}let s=it(r,"float64"),c=it(t,"float64");return sr(s,c,(l,f)=>l/f,"divide")}function it(r,t){let e=S.zeros(Array.from(r.shape),t),n=r.size,o=e.data;if(r.isCContiguous){let a=r.data,u=r.offset;for(let i=0;i<n;i++)o[i]=Number(a[u+i])}else for(let a=0;a<n;a++)o[a]=Number(r.iget(a));return e}function Bl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=Dr(l,u+m);br(f,m,p+t,y)}else for(let m=0;m<a;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;br(f,m,y+t,d)}}else if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]+f}else for(let m=0;m<a;m++)l[m]=r.iget(m)+f}else if(i)if(u===0)for(let l=0;l<a;l++)c[l]=Number(o[l])+t;else for(let l=0;l<a;l++)c[l]=Number(o[u+l])+t;else for(let l=0;l<a;l++)c[l]=Number(r.iget(l))+t;return s}function Tl(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=Dr(l,u+m);br(f,m,p-t,y)}else for(let m=0;m<a;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;br(f,m,y-t,d)}}else if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]-f}else for(let m=0;m<a;m++)l[m]=r.iget(m)-f}else if(i)for(let l=0;l<a;l++)c[l]=Number(o[u+l])-t;else for(let l=0;l<a;l++)c[l]=Number(r.iget(l))-t;return s}function El(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(B(e)){let l=o,f=c;if(i)for(let m=0;m<a;m++){let[p,y]=Dr(l,u+m);br(f,m,p*t,y*t)}else for(let m=0;m<a;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;br(f,m,y*t,d*t)}}else if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]*f}else for(let m=0;m<a;m++)l[m]=r.iget(m)*f}else if(i)if(u===0)for(let l=0;l<a;l++)c[l]=Number(o[l])*t;else for(let l=0;l<a;l++)c[l]=Number(o[u+l])*t;else for(let l=0;l<a;l++)c[l]=Number(r.iget(l))*t;return s}function XN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous;if(B(e)){let m=S.zeros(n,e),p=m.data;if(i){let y=o;for(let d=0;d<a;d++){let[b,A]=Dr(y,u+d);br(p,d,b/t,A/t)}}else for(let y=0;y<a;y++){let d=r.iget(y),b=d.re??Number(d),A=d.im??0;br(p,y,b/t,A/t)}return m}let c=e!=="float32"&&e!=="float64"?"float64":e,l=S.zeros(n,c),f=l.data;if(i)for(let m=0;m<a;m++)f[m]=Number(o[u+m])/t;else for(let m=0;m<a;m++)f[m]=Number(r.iget(m))/t;return l}function Rl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous;if(B(t)){let c=Bt(t),l=S.zeros(e,c),f=l.data;if(u){let m=n;for(let p=0;p<o;p++){let y=m[(a+p)*2],d=m[(a+p)*2+1];f[p]=Math.sqrt(y*y+d*d)}}else for(let m=0;m<o;m++){let p=r.iget(m),y=p.re??Number(p),d=p.im??0;f[m]=Math.sqrt(y*y+d*d)}return l}let i=S.zeros(e,t),s=i.data;if(E(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++){let m=l[a+f];c[f]=m<0n?-m:m}}else for(let l=0;l<o;l++){let f=r.iget(l);c[l]=f<0n?-f:f}}else if(u)if(a===0)for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[a+c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(r.iget(c)));return i}function ql(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(B(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++){let[m,p]=Dr(l,a+f);br(c,f,-m,-p)}}else for(let l=0;l<o;l++){let f=r.iget(l),m=f.re??Number(f),p=f.im??0;br(c,l,-m,-p)}}else if(E(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++)c[f]=-l[a+f]}else for(let l=0;l<o;l++)c[l]=-r.iget(l)}else if(u)if(a===0)for(let c=0;c<o;c++)s[c]=-Number(n[c]);else for(let c=0;c<o;c++)s[c]=-Number(n[a+c]);else for(let c=0;c<o;c++)s[c]=-Number(r.iget(c));return i}function Vl(r){L(r.dtype,"sign","Sign is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(E(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++){let m=l[a+f];c[f]=m>0n?1n:m<0n?-1n:0n}}else for(let l=0;l<o;l++){let f=r.iget(l);c[l]=f>0n?1n:f<0n?-1n:0n}}else if(u)for(let c=0;c<o;c++){let l=Number(n[a+c]);s[c]=l>0?1:l<0?-1:0}else for(let c=0;c<o;c++){let l=Number(r.iget(c));s[c]=l>0?1:l<0?-1:0}return i}function ko(r,t){return L(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"mod","Modulo is not defined for complex numbers."),typeof t=="number"?JN(r,t):sr(r,t,(e,n)=>(e%n+n)%n,"mod")}function JN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++){let y=m[u+p];l[p]=(y%f+f)%f}}else for(let m=0;m<a;m++){let p=r.iget(m);l[m]=(p%f+f)%f}}else if(i)for(let l=0;l<a;l++){let f=Number(o[u+l]);c[l]=(f%t+t)%t}else for(let l=0;l<a;l++){let f=Number(r.iget(l));c[l]=(f%t+t)%t}return s}function oi(r,t){return L(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t=="number"?KN(r,t):sr(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function KN(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;for(let p=0;p<a;p++)l[p]=m[u+p]/f}else for(let m=0;m<a;m++)l[m]=r.iget(m)/f}else if(i)for(let l=0;l<a;l++)c[l]=Math.floor(Number(o[u+l])/t);else for(let l=0;l<a;l++)c[l]=Math.floor(Number(r.iget(l))/t);return s}function Pl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(B(t)){let c=s;if(u){let l=n;for(let f=0;f<o;f++)c[f*2]=l[(a+f)*2],c[f*2+1]=l[(a+f)*2+1]}else for(let l=0;l<o;l++){let f=r.iget(l);c[l*2]=f.re??Number(f),c[l*2+1]=f.im??0}}else if(u)for(let c=0;c<o;c++)s[c]=n[a+c];else for(let c=0;c<o;c++)s[c]=r.iget(c);return i}function jl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=r.isCContiguous;if(B(t)){let f=S.zeros(e,t),m=f.data;if(u){let p=n;for(let y=0;y<o;y++){let d=p[(a+y)*2],b=p[(a+y)*2+1],A=d*d+b*b;m[y*2]=d/A,m[y*2+1]=-b/A}}else for(let p=0;p<o;p++){let y=r.iget(p),d=y.re??Number(y),b=y.im??0,A=d*d+b*b;m[p*2]=d/A,m[p*2+1]=-b/A}return f}let s=t!=="float32"&&t!=="float64"?"float64":t,c=S.zeros(e,s),l=c.data;if(u)if(a===0)for(let f=0;f<o;f++)l[f]=1/Number(n[f]);else for(let f=0;f<o;f++)l[f]=1/Number(n[a+f]);else for(let f=0;f<o;f++)l[f]=1/Number(r.iget(f));return c}function Ll(r){let t=r.dtype;L(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,i=t!=="float32"&&t!=="float64"?"float64":t,s=S.zeros(e,i),c=s.data;if(r.isCContiguous)for(let l=0;l<o;l++)c[l]=Math.cbrt(Number(n[a+l]));else for(let l=0;l<o;l++)c[l]=Math.cbrt(Number(r.iget(l)));return s}function Wl(r){let t=r.dtype;L(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=r.offset,u=t==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data;if(r.isCContiguous)if(a===0)for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(n[a+c]));else for(let c=0;c<o;c++)s[c]=Math.abs(Number(r.iget(c)));return i}function Gl(r,t){let e=oi(r,t),n=ko(r,t);return[e,n]}function Yl(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),u=a.data;if(B(t)){let i=n,s=u;for(let c=0;c<o;c++){let l=i[c*2],f=i[c*2+1];s[c*2]=l*l-f*f,s[c*2+1]=2*l*f}}else if(E(t)){let i=n,s=u;for(let c=0;c<o;c++)s[c]=i[c]*i[c]}else for(let i=0;i<o;i++){let s=Number(n[i]);u[i]=s*s}return a}function Zl(r,t){return ko(r,t)}function Xl(r,t){L(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data;if(typeof t=="number")for(let s=0;s<o;s++){let c=Number(r.iget(s));c<0?i[s]=0:c===0?i[s]=t:i[s]=1}else{let s=t.shape;if(n.every((c,l)=>c===s[l]))for(let c=0;c<o;c++){let l=Number(r.iget(c));l<0?i[c]=0:l===0?i[c]=Number(t.iget(c)):i[c]=1}else for(let c=0;c<o;c++){let l=Number(r.iget(c)),f=c%t.size;l<0?i[c]=0:l===0?i[c]=Number(t.iget(f)):i[c]=1}}return u}function Jl(r,t){let e=r.dtype;if(B(e)){let n=r.size,o=S.zeros(Array.from(r.shape),e),a=o.data;if(typeof t=="number")if(r.isCContiguous){let u=r.data,i=r.offset;for(let s=0;s<n;s++){let c=u[(i+s)*2],l=u[(i+s)*2+1],f=Math.hypot(c,l),m=Math.atan2(l,c),p=Math.pow(f,t),y=m*t;a[s*2]=p*Math.cos(y),a[s*2+1]=p*Math.sin(y)}}else for(let u=0;u<n;u++){let i=r.iget(u),s=Math.hypot(i.re,i.im),c=Math.atan2(i.im,i.re),l=Math.pow(s,t),f=c*t;a[u*2]=l*Math.cos(f),a[u*2+1]=l*Math.sin(f)}else{let u=B(t.dtype);if(r.isCContiguous&&t.isCContiguous){let i=r.data,s=r.offset,c=t.data,l=t.offset;for(let f=0;f<n;f++){let m=i[(s+f)*2],p=i[(s+f)*2+1],y,d;if(u){let C=c;y=C[(l+f)*2],d=C[(l+f)*2+1]}else y=Number(c[l+f]),d=0;let b=Math.hypot(m,p),A=Math.atan2(p,m),g=Math.log(b),h=A,N=y*g-d*h,D=y*h+d*g,x=Math.exp(N);a[f*2]=x*Math.cos(D),a[f*2+1]=x*Math.sin(D)}}else for(let i=0;i<n;i++){let s=r.iget(i),c,l;if(u){let g=t.iget(i);c=g.re,l=g.im}else c=Number(t.iget(i)),l=0;let f=Math.hypot(s.re,s.im),m=Math.atan2(s.im,s.re),p=Math.log(f),y=m,d=c*p-l*y,b=c*y+l*p,A=Math.exp(d);a[i*2]=A*Math.cos(b),a[i*2+1]=A*Math.sin(b)}}return o}if(typeof t=="number"){let n=S.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.size;if(r.isCContiguous){let u=r.data,i=r.offset;for(let s=0;s<a;s++)o[s]=Math.pow(Number(u[i+s]),t)}else for(let u=0;u<a;u++)o[u]=Math.pow(Number(r.iget(u)),t);return n}return sr(r,t,(n,o)=>Math.pow(n,o),"float_power")}function Kl(r,t){if(L(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"fmod","fmod is not defined for complex numbers."),typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let u=Number(n[a]);n[a]=u-Math.trunc(u/t)*t}return e}return sr(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function Ql(r){L(r.dtype,"frexp","frexp is not defined for complex numbers.");let t=S.zeros(Array.from(r.shape),"float64"),e=S.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.size;for(let u=0;u<a;u++){let i=Number(r.iget(u));if(i===0||!isFinite(i))n[u]=i,o[u]=0;else{let s=Math.floor(Math.log2(Math.abs(i)))+1,c=i/Math.pow(2,s);n[u]=c,o[u]=s}}return[t,e]}function Hl(r,t){L(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&L(t.dtype,"gcd","GCD is only defined for integers.");let e=(i,s)=>{for(i=Math.abs(Math.trunc(i)),s=Math.abs(Math.trunc(s));s!==0;){let c=s;s=i%s,i=c}return i};if(typeof t=="number"){let i=S.zeros(Array.from(r.shape),"int32"),s=i.data,c=r.size,l=Math.abs(Math.trunc(t));if(r.isCContiguous){let f=r.data,m=r.offset;for(let p=0;p<c;p++)s[p]=e(Number(f[m+p]),l)}else for(let f=0;f<c;f++)s[f]=e(Number(r.iget(f)),l);return i}let n=sr(r,t,e,"gcd"),o=S.zeros(Array.from(n.shape),"int32"),a=o.data,u=n.size;if(n.isCContiguous){let i=n.data,s=n.offset;for(let c=0;c<u;c++)a[c]=Math.round(Number(i[s+c]))}else for(let i=0;i<u;i++)a[i]=Math.round(Number(n.iget(i)));return o}function rf(r,t){L(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&L(t.dtype,"lcm","LCM is only defined for integers.");let e=(s,c)=>{for(s=Math.abs(Math.trunc(s)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=s%c,s=l}return s},n=(s,c)=>(s=Math.abs(Math.trunc(s)),c=Math.abs(Math.trunc(c)),s===0||c===0?0:s*c/e(s,c));if(typeof t=="number"){let s=S.zeros(Array.from(r.shape),"int32"),c=s.data,l=r.size,f=Math.abs(Math.trunc(t));if(r.isCContiguous){let m=r.data,p=r.offset;for(let y=0;y<l;y++)c[y]=n(Number(m[p+y]),f)}else for(let m=0;m<l;m++)c[m]=n(Number(r.iget(m)),f);return s}let o=sr(r,t,n,"lcm"),a=S.zeros(Array.from(o.shape),"int32"),u=a.data,i=o.size;if(o.isCContiguous){let s=o.data,c=o.offset;for(let l=0;l<i;l++)u[l]=Math.round(Number(s[c+l]))}else for(let s=0;s<i;s++)u[s]=Math.round(Number(o.iget(s)));return a}function tf(r,t){if(L(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&L(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=Math.pow(2,t);for(let u=0;u<o;u++)n[u]=Number(r.iget(u))*a;return e}return sr(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function ef(r){L(r.dtype,"modf","modf is not defined for complex numbers.");let t=S.zeros(Array.from(r.shape),"float64"),e=S.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.size;for(let u=0;u<a;u++){let i=Number(r.iget(u)),s=Math.trunc(i);o[u]=s,n[u]=i-s}return[t,e]}function nf(r,t,e){L(r.dtype,"clip","clip is not supported for complex numbers.");let n=r.dtype,o=Array.from(r.shape),a=r.size,u=S.zeros(o,n),i=u.data,s=t===null||typeof t=="number",c=e===null||typeof e=="number",l=t===null?-1/0:typeof t=="number"?t:null,f=e===null?1/0:typeof e=="number"?e:null,m=r.isCContiguous,p=r.data,y=r.offset,d=!s&&t.isCContiguous,b=s?null:t.data,A=s?0:t.offset,g=s?0:t.size,h=!c&&e.isCContiguous,N=c?null:e.data,D=c?0:e.offset,x=c?0:e.size;if(E(n)){let C=i;if(m&&(s||d)&&(c||h)){let w=p,_=b,I=N;for(let M=0;M<a;M++){let T=w[y+M],O=s?l===-1/0?T:BigInt(Math.round(l)):_[A+M%g],$=c?f===1/0?T:BigInt(Math.round(f)):I[D+M%x];T<O&&(T=O),T>$&&(T=$),C[M]=T}}else for(let w=0;w<a;w++){let _=r.iget(w),I=s?l===-1/0?_:BigInt(Math.round(l)):t.iget(w%t.size),M=c?f===1/0?_:BigInt(Math.round(f)):e.iget(w%e.size);_<I&&(_=I),_>M&&(_=M),C[w]=_}}else if(m&&(s||d)&&(c||h))for(let C=0;C<a;C++){let w=Number(p[y+C]),_=s?l:Number(b[A+C%g]),I=c?f:Number(N[D+C%x]);w<_&&(w=_),w>I&&(w=I),i[C]=w}else for(let C=0;C<a;C++){let w=Number(r.iget(C)),_=s?l:Number(t.iget(C%t.size)),I=c?f:Number(e.iget(C%e.size));w<_&&(w=_),w>I&&(w=I),i[C]=w}return u}function of(r,t){if(L(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"maximum","maximum is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]>l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);u[s]=isNaN(c)||isNaN(t)?NaN:Math.max(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.max(e,n),"maximum")}function af(r,t){if(L(r.dtype,"minimum","minimum is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"minimum","minimum is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]<l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);u[s]=isNaN(c)||isNaN(t)?NaN:Math.min(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.min(e,n),"minimum")}function sf(r,t){if(L(r.dtype,"fmax","fmax is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"fmax","fmax is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]>l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);isNaN(c)?u[s]=t:isNaN(t)?u[s]=c:u[s]=Math.max(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.max(e,n),"fmax")}function uf(r,t){if(L(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"fmin","fmin is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,e),u=a.data,i=r.data;if(E(e)){let s=u,c=i,l=BigInt(Math.round(t));for(let f=0;f<o;f++)s[f]=c[f]<l?c[f]:l}else for(let s=0;s<o;s++){let c=Number(i[s]);isNaN(c)?u[s]=t:isNaN(t)?u[s]=c:u[s]=Math.min(c,t)}return a}return sr(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.min(e,n),"fmin")}function cf(r,t=0,e,n){L(r.dtype,"nan_to_num","nan_to_num is not supported for complex numbers.");let o=r.dtype,a=Array.from(r.shape),u=r.size,i=e!==void 0?e:Number.MAX_VALUE,s=n!==void 0?n:-Number.MAX_VALUE,c=S.zeros(a,o),l=c.data,f=r.data;if(E(o)){let m=l,p=f;for(let y=0;y<u;y++)m[y]=p[y]}else for(let m=0;m<u;m++){let p=Number(f[m]);isNaN(p)?l[m]=t:p===1/0?l[m]=i:p===-1/0?l[m]=s:l[m]=p}return c}function lf(r,t,e,n,o){L(r.dtype,"interp","interp is not supported for complex numbers."),L(t.dtype,"interp","interp is not supported for complex numbers."),L(e.dtype,"interp","interp is not supported for complex numbers.");let a=Array.from(r.shape),u=r.size,i=S.zeros(a,"float64"),s=i.data,c=r.data,l=t.data,f=e.data,m=t.size,p=n!==void 0?n:Number(f[0]),y=o!==void 0?o:Number(f[m-1]);for(let d=0;d<u;d++){let b=Number(c[d]);if(b<=Number(l[0])){s[d]=p;continue}if(b>=Number(l[m-1])){s[d]=y;continue}let A=0,g=m-1;for(;g-A>1;){let w=Math.floor((A+g)/2);Number(l[w])<=b?A=w:g=w}let h=Number(l[A]),N=Number(l[g]),D=Number(f[A]),x=Number(f[g]),C=(b-h)/(N-h);s[d]=D+C*(x-D)}return i}function ff(r,t=Math.PI,e=-1,n=2*Math.PI){L(r.dtype,"unwrap","unwrap is not supported for complex numbers.");let o=Array.from(r.shape),a=o.length;if(e<0&&(e+=a),e<0||e>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);if(a===1){let c=r.size,l=S.zeros(o,"float64"),f=l.data,m=r.data;if(c===0)return l;f[0]=Number(m[0]);let p=0;for(let y=1;y<c;y++){let d=Number(m[y-1]),b=Number(m[y]),A=b-d;A=(A+n/2)%n-n/2,A===-n/2&&b-d>0&&(A=n/2),Math.abs(A)>t&&(p-=Math.round((b-d-A)/n)*n),f[y]=b+p}return l}let u=S.zeros(o,"float64"),i=u.data,s=r.data;for(let c=0;c<r.size;c++)i[c]=Number(s[c]);if(a===2){let[c,l]=o;if(e===0)for(let f=0;f<l;f++){let m=0;for(let p=1;p<c;p++){let y=(p-1)*l+f,d=p*l+f,b=i[y],A=i[d],g=A-b;g=(g+n/2)%n-n/2,g===-n/2&&A-b>0&&(g=n/2),Math.abs(g)>t&&(m-=Math.round((A-b-g)/n)*n),i[d]=A+m}}else for(let f=0;f<c;f++){let m=0;for(let p=1;p<l;p++){let y=f*l+(p-1),d=f*l+p,b=i[y],A=i[d],g=A-b;g=(g+n/2)%n-n/2,g===-n/2&&A-b>0&&(g=n/2),Math.abs(g)>t&&(m-=Math.round((A-b-g)/n)*n),i[d]=A+m}}}return u}function mf(r){L(r.dtype,"sinc","sinc is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"float64"),o=n.data,a=r.data;for(let u=0;u<e;u++){let i=Number(a[u]);if(i===0)o[u]=1;else{let s=Math.PI*i;o[u]=Math.sin(s)/s}}return n}function pf(r){L(r.dtype,"i0","i0 is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"float64"),o=n.data,a=r.data;for(let u=0;u<e;u++){let i=Math.abs(Number(a[u]));o[u]=QN(i)}return n}function QN(r){let t=Math.abs(r);if(t<3.75){let e=r/3.75,n=e*e;return 1+n*(3.5156229+n*(3.0899424+n*(1.2067492+n*(.2659732+n*(.0360768+n*.0045813)))))}else{let e=3.75/t;return Math.exp(t)/Math.sqrt(t)*(.39894228+e*(.01328592+e*(.00225319+e*(-.00157565+e*(.00916281+e*(-.02057706+e*(.02635537+e*(-.01647633+e*.00392377))))))))}}function yf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.sqrt(l*l+f*f),p=Math.sqrt((m+l)/2),y=(f>=0?1:-1)*Math.sqrt((m-l)/2);u[c*2]=p,u[c*2+1]=y}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.sqrt(c*c+l*l),m=Math.sqrt((f+c)/2),p=(l>=0?1:-1)*Math.sqrt((f-c)/2);u[i*2]=m,u[i*2+1]=p}return a}return ir(r,Math.sqrt,!1)}function df(r,t){if(typeof t=="number")return tD(r,t);let e=B(r.dtype),n=B(t.dtype);return e||n?rD(r,t):sr(r,t,Math.pow,"power")}function rD(r,t){let e=B(r.dtype),n=B(t.dtype),o=r.dtype==="complex128"||t.dtype==="complex128"||t.dtype==="float64"?"complex128":"complex64",a=Array.from(r.shape),u=r.size,i=S.zeros(a,o),s=i.data,c=r.isCContiguous,l=t.isCContiguous,f=r.offset,m=t.offset;for(let p=0;p<u;p++){let y,d;if(e)if(c){let w=r.data;y=w[(f+p)*2],d=w[(f+p)*2+1]}else{let w=r.iget(p);y=w.re,d=w.im}else y=Number(r.iget(p)),d=0;let b,A;if(n)if(l){let w=t.data;b=w[(m+p)*2],A=w[(m+p)*2+1]}else{let w=t.iget(p);b=w.re,A=w.im}else b=Number(t.iget(p)),A=0;let g=Math.sqrt(y*y+d*d),h=Math.atan2(d,y),N=Math.log(g),D=b*N-A*h,x=b*h+A*N,C=Math.exp(D);s[p*2]=C*Math.cos(x),s[p*2+1]=C*Math.sin(x)}return i}function tD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=r.offset,i=r.isCContiguous;if(B(e)){let p=S.zeros(n,e),y=p.data;if(i){let d=o;for(let b=0;b<a;b++){let A=d[(u+b)*2],g=d[(u+b)*2+1],h=Math.sqrt(A*A+g*g),N=Math.atan2(g,A),D=Math.pow(h,t),x=N*t;y[b*2]=D*Math.cos(x),y[b*2+1]=D*Math.sin(x)}}else for(let d=0;d<a;d++){let b=r.iget(d),A=b.re,g=b.im,h=Math.sqrt(A*A+g*g),N=Math.atan2(g,A),D=Math.pow(h,t),x=N*t;y[d*2]=D*Math.cos(x),y[d*2+1]=D*Math.sin(x)}return p}let l=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,f=S.zeros(n,l),m=f.data;if(E(e))if(E(l)&&Number.isInteger(t)&&t>=0)if(i){let p=o,y=m;for(let d=0;d<a;d++)y[d]=p[u+d]**BigInt(t)}else{let p=m;for(let y=0;y<a;y++)p[y]=r.iget(y)**BigInt(t)}else if(i)for(let p=0;p<a;p++)m[p]=Math.pow(Number(o[u+p]),t);else for(let p=0;p<a;p++)m[p]=Math.pow(Number(r.iget(p)),t);else if(i)for(let p=0;p<a;p++)m[p]=Math.pow(Number(o[u+p]),t);else for(let p=0;p<a;p++)m[p]=Math.pow(Number(r.iget(p)),t);return f}function bf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.exp(l);u[c*2]=m*Math.cos(f),u[c*2+1]=m*Math.sin(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.exp(c);u[i*2]=f*Math.cos(l),u[i*2+1]=f*Math.sin(l)}return a}return ir(r,Math.exp,!1)}function Af(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=Math.LN2,u=S.zeros(e,t),i=u.data;if(o){let s=r.data,c=r.offset;for(let l=0;l<n;l++){let f=s[(c+l)*2],m=s[(c+l)*2+1],p=Math.exp(f*a),y=m*a;i[l*2]=p*Math.cos(y),i[l*2+1]=p*Math.sin(y)}}else for(let s=0;s<n;s++){let c=r.iget(s),l=c.re,f=c.im,m=Math.exp(l*a),p=f*a;i[s*2]=m*Math.cos(p),i[s*2+1]=m*Math.sin(p)}return u}return ir(r,e=>Math.pow(2,e),!1)}function gf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.exp(l);u[c*2]=m*Math.cos(f)-1,u[c*2+1]=m*Math.sin(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.exp(c);u[i*2]=f*Math.cos(l)-1,u[i*2+1]=f*Math.sin(l)}return a}return ir(r,Math.expm1,!1)}function hf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.sqrt(l*l+f*f),p=Math.atan2(f,l);u[c*2]=Math.log(m),u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.sqrt(c*c+l*l),m=Math.atan2(l,c);u[i*2]=Math.log(f),u[i*2+1]=m}return a}return ir(r,Math.log,!1)}function Nf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=1/Math.LN2,u=S.zeros(e,t),i=u.data;if(o){let s=r.data,c=r.offset;for(let l=0;l<n;l++){let f=s[(c+l)*2],m=s[(c+l)*2+1],p=Math.sqrt(f*f+m*m),y=Math.atan2(m,f);i[l*2]=Math.log(p)*a,i[l*2+1]=y*a}}else for(let s=0;s<n;s++){let c=r.iget(s),l=c.re,f=c.im,m=Math.sqrt(l*l+f*f),p=Math.atan2(f,l);i[s*2]=Math.log(m)*a,i[s*2+1]=p*a}return u}return ir(r,Math.log2,!1)}function Df(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=1/Math.LN10,u=S.zeros(e,t),i=u.data;if(o){let s=r.data,c=r.offset;for(let l=0;l<n;l++){let f=s[(c+l)*2],m=s[(c+l)*2+1],p=Math.sqrt(f*f+m*m),y=Math.atan2(m,f);i[l*2]=Math.log(p)*a,i[l*2+1]=y*a}}else for(let s=0;s<n;s++){let c=r.iget(s),l=c.re,f=c.im,m=Math.sqrt(l*l+f*f),p=Math.atan2(f,l);i[s*2]=Math.log(m)*a,i[s*2+1]=p*a}return u}return ir(r,Math.log10,!1)}function xf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=1+l,p=Math.sqrt(m*m+f*f),y=Math.atan2(f,m);u[c*2]=Math.log(p),u[c*2+1]=y}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=1+c,m=Math.sqrt(f*f+l*l),p=Math.atan2(l,f);u[i*2]=Math.log(m),u[i*2+1]=p}return a}return ir(r,Math.log1p,!1)}function Cf(r,t){return L(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t=="number"?nD(r,t):eD(r,t)}function eD(r,t){let e=Gr(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data;for(let c=0;c<n;c++){let l=(E(o),Number(r.iget(c))),f=(E(a),Number(t.iget(c))),m=Math.max(l,f),p=Math.min(l,f);s[c]=m+Math.log1p(Math.exp(p-m))}return i}function nD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=r.isCContiguous,u=e==="float32"?"float32":"float64",i=S.zeros(n,u),s=i.data;if(a){let c=r.offset;for(let l=0;l<o;l++){let f=Number(r.data[c+l]),m=Math.max(f,t),p=Math.min(f,t);s[l]=m+Math.log1p(Math.exp(p-m))}}else for(let c=0;c<o;c++){let l=Number(r.iget(c)),f=Math.max(l,t),m=Math.min(l,t);s[c]=f+Math.log1p(Math.exp(m-f))}return i}function Sf(r,t){return L(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t!="number"&&L(t.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t=="number"?aD(r,t):oD(r,t)}function oD(r,t){let e=Gr(r.shape,t.shape),n=e.reduce((l,f)=>l*f,1),o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data,c=Math.LOG2E;for(let l=0;l<n;l++){let f=(E(o),Number(r.iget(l))),m=(E(a),Number(t.iget(l))),p=Math.max(f,m),y=Math.min(f,m);s[l]=p+Math.log1p(Math.pow(2,y-p))*c}return i}function aD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=r.isCContiguous,u=e==="float32"?"float32":"float64",i=S.zeros(n,u),s=i.data,c=Math.LOG2E;if(a){let l=r.offset;for(let f=0;f<o;f++){let m=Number(r.data[l+f]),p=Math.max(m,t),y=Math.min(m,t);s[f]=p+Math.log1p(Math.pow(2,y-p))*c}}else for(let l=0;l<o;l++){let f=Number(r.iget(l)),m=Math.max(f,t),p=Math.min(f,t);s[l]=m+Math.log1p(Math.pow(2,p-m))*c}return i}function Ot(r,t){let e=typeof t=="number"?t:z(t);return v(Ol(z(r),e))}function Ut(r,t){let e=typeof t=="number"?t:z(t);return v(Ul(z(r),e))}function $t(r,t){let e=typeof t=="number"?t:z(t);return v($l(z(r),e))}function kt(r){return v(yf(z(r)))}function Rt(r,t){let e=typeof t=="number"?t:z(t);return v(df(z(r),e))}function qt(r){return v(bf(z(r)))}function Vt(r){return v(Af(z(r)))}function Pt(r){return v(gf(z(r)))}function jt(r){return v(hf(z(r)))}function Lt(r){return v(Nf(z(r)))}function Wt(r){return v(Df(z(r)))}function Gt(r){return v(xf(z(r)))}function Yt(r,t){let e=typeof t=="number"?t:z(t);return v(Cf(z(r),e))}function Zt(r,t){let e=typeof t=="number"?t:z(t);return v(Sf(z(r),e))}function Xt(r){return v(Rl(z(r)))}function Jt(r){return v(ql(z(r)))}function Kt(r){return v(Vl(z(r)))}function Qt(r,t){let e=typeof t=="number"?t:z(t);return v(ko(z(r),e))}function ut(r,t){let e=typeof t=="number"?t:z(t);return v(kl(z(r),e))}var Ro=ut;function Ht(r,t){let e=typeof t=="number"?t:z(t);return v(oi(z(r),e))}function re(r){return v(Pl(z(r)))}function te(r){return v(jl(z(r)))}function ee(r){return v(Ll(z(r)))}function ne(r){return v(Wl(z(r)))}function oe(r,t){let e=typeof t=="number"?t:z(t);return Fo(Gl(z(r),e))}function ae(r){return v(Yl(z(r)))}function se(r,t){let e=typeof t=="number"?t:z(t);return v(Zl(z(r),e))}function ie(r,t){let e=typeof t=="number"?t:z(t);return v(Xl(z(r),e))}function ai(r,t){let e=typeof t=="number"?t:z(t);return v(Jl(z(r),e))}function si(r,t){let e=typeof t=="number"?t:z(t);return v(Kl(z(r),e))}function ii(r){return Fo(Ql(z(r)))}function ui(r,t){let e=typeof t=="number"?t:z(t);return v(Hl(z(r),e))}function ci(r,t){let e=typeof t=="number"?t:z(t);return v(rf(z(r),e))}function li(r,t){let e=typeof t=="number"?t:z(t);return v(tf(z(r),e))}function fi(r){return Fo(ef(z(r)))}function ue(r,t,e){let n=t===null?null:typeof t=="number"?t:z(t),o=e===null?null:typeof e=="number"?e:z(e);return v(nf(z(r),n,o))}function mi(r,t){let e=typeof t=="number"?t:z(t);return v(of(z(r),e))}function pi(r,t){let e=typeof t=="number"?t:z(t);return v(af(z(r),e))}function yi(r,t){let e=typeof t=="number"?t:z(t);return v(sf(z(r),e))}function di(r,t){let e=typeof t=="number"?t:z(t);return v(uf(z(r),e))}function bi(r,t=0,e,n){return v(cf(z(r),t,e,n))}function Ai(r,t,e,n,o){return v(lf(z(r),z(t),z(e),n,o))}function gi(r,t=Math.PI,e=-1,n=2*Math.PI){return v(ff(z(r),t,e,n))}function hi(r){return v(mf(z(r)))}function Ni(r){return v(pf(z(r)))}function _f(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1];u[c*2]=Math.sin(l)*Math.cosh(f),u[c*2+1]=Math.cos(l)*Math.sinh(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im;u[i*2]=Math.sin(c)*Math.cosh(l),u[i*2+1]=Math.cos(c)*Math.sinh(l)}return a}return ir(r,Math.sin,!1)}function Mf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1];u[c*2]=Math.cos(l)*Math.cosh(f),u[c*2+1]=-Math.sin(l)*Math.sinh(f)}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im;u[i*2]=Math.cos(c)*Math.cosh(l),u[i*2+1]=-Math.sin(c)*Math.sinh(l)}return a}return ir(r,Math.cos,!1)}function vf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],m=Math.cos(2*l)+Math.cosh(2*f);u[c*2]=Math.sin(2*l)/m,u[c*2+1]=Math.sinh(2*f)/m}}else for(let i=0;i<n;i++){let s=r.iget(i),c=s.re,l=s.im,f=Math.cos(2*c)+Math.cosh(2*l);u[i*2]=Math.sin(2*c)/f,u[i*2+1]=Math.sinh(2*l)/f}return a}return ir(r,Math.tan,!1)}function Ff(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=wf(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=wf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.asin,!1)}function wf(r,t){let e=-t,n=r,o=r*r-t*t,a=2*r*t,u=1-o,i=-a,s=Math.sqrt(u*u+i*i),c=Math.sqrt((s+u)/2),l=(i>=0?1:-1)*Math.sqrt((s-u)/2),f=e+c,m=n+l,p=Math.sqrt(f*f+m*m),y=Math.log(p),b=Math.atan2(m,f),A=-y;return Math.abs(t)<1e-15&&r>1&&(A=-A),[b,A]}function Bf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=If(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=If(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.acos,!1)}function If(r,t){let e=r*r-t*t,n=2*r*t,o=1-e,a=-n,u=Math.sqrt(o*o+a*a),i=Math.sqrt((u+o)/2),c=-((a>=0?1:-1)*Math.sqrt((u-o)/2)),l=i,f=r+c,m=t+l,p=Math.sqrt(f*f+m*m),y=Math.log(p),b=Math.atan2(m,f),A=-y;return Math.abs(t)<1e-15&&r>1&&(A=-A),[b,A]}function Tf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.isCContiguous,a=S.zeros(e,t),u=a.data;if(o){let i=r.data,s=r.offset;for(let c=0;c<n;c++){let l=i[(s+c)*2],f=i[(s+c)*2+1],[m,p]=zf(l,f);u[c*2]=m,u[c*2+1]=p}}else for(let i=0;i<n;i++){let s=r.iget(i),[c,l]=zf(s.re,s.im);u[i*2]=c,u[i*2+1]=l}return a}return ir(r,Math.atan,!1)}function zf(r,t){let e=-t,n=r,o=1-e,a=-n,u=1+e,i=n,s=u*u+i*i,c=(o*u+a*i)/s,l=(a*u-o*i)/s,f=Math.sqrt(c*c+l*l),m=Math.log(f);return[-Math.atan2(l,c)/2,m/2]}function Ef(r,t){return L(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t=="number"?uD(r,t):iD(r,t)}function iD(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data,c=r.isCContiguous,l=t.isCContiguous;if(c&&l){let f=r.offset,m=t.offset;for(let p=0;p<n;p++){let y=Number(r.data[f+p]),d=Number(t.data[m+p]);s[p]=Math.atan2(y,d)}}else if(c){let f=r.offset;for(let m=0;m<n;m++){let p=Number(r.data[f+m]),y=Number(t.iget(m));s[m]=Math.atan2(p,y)}}else if(l){let f=t.offset;for(let m=0;m<n;m++){let p=Number(r.iget(m)),y=Number(t.data[f+m]);s[m]=Math.atan2(p,y)}}else for(let f=0;f<n;f++){let m=Number(r.iget(f)),p=Number(t.iget(f));s[f]=Math.atan2(m,p)}return i}function uD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data;if(r.isCContiguous){let c=r.data,l=r.offset;if(E(e))for(let f=0;f<o;f++)i[f]=Math.atan2(Number(c[l+f]),t);else for(let f=0;f<o;f++)i[f]=Math.atan2(Number(c[l+f]),t)}else for(let c=0;c<o;c++)i[c]=Math.atan2(Number(r.iget(c)),t);return u}function Of(r,t){return L(r.dtype,"hypot","hypot is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"hypot","hypot is only defined for real numbers."),typeof t=="number"?lD(r,t):cD(r,t)}function cD(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,u=o==="float32"&&a==="float32"?"float32":"float64",i=S.zeros(e,u),s=i.data,c=r.isCContiguous,l=t.isCContiguous;if(c&&l){let f=r.offset,m=t.offset;for(let p=0;p<n;p++){let y=Number(r.data[f+p]),d=Number(t.data[m+p]);s[p]=Math.hypot(y,d)}}else if(c){let f=r.offset;for(let m=0;m<n;m++){let p=Number(r.data[f+m]),y=Number(t.iget(m));s[m]=Math.hypot(p,y)}}else if(l){let f=t.offset;for(let m=0;m<n;m++){let p=Number(r.iget(m)),y=Number(t.data[f+m]);s[m]=Math.hypot(p,y)}}else for(let f=0;f<n;f++){let m=Number(r.iget(f)),p=Number(t.iget(f));s[f]=Math.hypot(m,p)}return i}function lD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data;if(r.isCContiguous){let c=r.data,l=r.offset;if(E(e))for(let f=0;f<o;f++)i[f]=Math.hypot(Number(c[l+f]),t);else for(let f=0;f<o;f++)i[f]=Math.hypot(Number(c[l+f]),t)}else for(let c=0;c<o;c++)i[c]=Math.hypot(Number(r.iget(c)),t);return u}function Di(r){L(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return ir(r,e=>e*t,!1)}function xi(r){L(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return ir(r,e=>e*t,!1)}function Uf(r){return xi(r)}function $f(r){return Di(r)}function kf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1];u[i*2]=Math.sinh(s)*Math.cos(c),u[i*2+1]=Math.cosh(s)*Math.sin(c)}return a}return ir(r,Math.sinh,!1)}function Rf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1];u[i*2]=Math.cosh(s)*Math.cos(c),u[i*2+1]=Math.sinh(s)*Math.sin(c)}return a}return ir(r,Math.cosh,!1)}function qf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=Math.cosh(2*s)+Math.cos(2*c);u[i*2]=Math.sinh(2*s)/l,u[i*2+1]=Math.sin(2*c)/l}return a}return ir(r,Math.tanh,!1)}function Vf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=s*s-c*c,f=2*s*c,m=l+1,p=f,y=Math.sqrt(m*m+p*p),d=Math.sqrt((y+m)/2),b=(p>=0?1:-1)*Math.sqrt((y-m)/2),A=s+d,g=c+b,h=Math.sqrt(A*A+g*g);u[i*2]=Math.log(h),u[i*2+1]=Math.atan2(g,A)}return a}return ir(r,Math.asinh,!1)}function Pf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=s*s-c*c,f=2*s*c,m=l-1,p=f,y=Math.sqrt(m*m+p*p),d=Math.sqrt((y+m)/2),b=(p>=0?1:-1)*Math.sqrt((y-m)/2),A=s+d,g=c+b,h=Math.sqrt(A*A+g*g),N=Math.log(h),D=Math.atan2(g,A);Math.abs(c)<1e-15&&s<1&&(D=-D),u[i*2]=N,u[i*2+1]=D}return a}return ir(r,Math.acosh,!1)}function jf(r){let t=r.dtype;if(B(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=S.zeros(e,t),u=a.data;for(let i=0;i<n;i++){let s=o[i*2],c=o[i*2+1],l=1+s,f=c,m=1-s,p=-c,y=m*m+p*p,d=(l*m+f*p)/y,b=(f*m-l*p)/y,A=Math.sqrt(d*d+b*b),g=Math.log(A),h=Math.atan2(b,d);u[i*2]=g/2,u[i*2+1]=h/2}return a}return ir(r,Math.atanh,!1)}function ce(r){return v(_f(z(r)))}function le(r){return v(Mf(z(r)))}function fe(r){return v(vf(z(r)))}function me(r){return v(Ff(z(r)))}function pe(r){return v(Bf(z(r)))}function ye(r){return v(Tf(z(r)))}function de(r,t){let e=typeof t=="number"?t:z(t);return v(Ef(z(r),e))}function be(r,t){let e=typeof t=="number"?t:z(t);return v(Of(z(r),e))}function Ae(r){return v(Di(z(r)))}function ge(r){return v(xi(z(r)))}function Ci(r){return v(Uf(z(r)))}function Si(r){return v($f(z(r)))}function he(r){return v(kf(z(r)))}function Ne(r){return v(Rf(z(r)))}function De(r){return v(qf(z(r)))}function xe(r){return v(Vf(z(r)))}function Ce(r){return v(Pf(z(r)))}function Se(r){return v(jf(z(r)))}function cr(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((f,m,p)=>p===o?f:f*m,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((f,m)=>m===o?l:f)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return S.fromData(c,a,n,lr(a),0)}let s=r.copy().data;return S.fromData(s,a,n,lr(a),0)}function Jr(r){let t=r.size,e=r.dtype,n=K(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let i=r.data.slice(r.offset,r.offset+t);return S.fromData(i,[t],e,[1],0)}let o=new n(t),a=E(e);for(let u=0;u<t;u++){let i=r.iget(u);o[u]=i}return S.fromData(o,[t],e,[1],0)}function ct(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return S.fromData(n,[t],e,[1],0)}return Jr(r)}function wi(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,i;if(t===void 0)i=Array.from({length:n},(f,m)=>n-1-m);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let f=new Set;for(let m of t){let p=m<0?n+m:m;if(p<0||p>=n)throw new Error(`axis ${m} is out of bounds for array of dimension ${n}`);if(f.has(p))throw new Error("repeated axis in transpose");f.add(p)}i=t.map(m=>m<0?n+m:m)}let s=i.map(f=>e[f]),c=Array.from(o),l=i.map(f=>c[f]);return S.fromData(a,s,u,l,r.offset)}function Ii(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype;if(t===void 0){let i=[],s=[];for(let c=0;c<n;c++)e[c]!==1&&(i.push(e[c]),s.push(o[c]));return i.length===0&&(i.push(1),s.push(1)),S.fromData(a,i,u,s,r.offset)}else{let i=t<0?n+t:t;if(i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[i]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[i]})`);let s=[],c=[];for(let l=0;l<n;l++)l!==i&&(s.push(e[l]),c.push(o[l]));return S.fromData(a,s,u,c,r.offset)}}function we(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,u=r.dtype,i=t;if(i<0&&(i=n+t+1),i<0||i>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let s=[...Array.from(e)];s.splice(i,0,1);let c=[...Array.from(o)],l=i<n?o[i]*(e[i]||1):1;return c.splice(i,0,l),S.fromData(a,s,u,c,r.offset)}function Lf(r,t,e){let n=r.shape,o=n.length,a=r.strides,u=r.data,i=r.dtype,s=t<0?o+t:t,c=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(s===c)return S.fromData(u,Array.from(n),i,Array.from(a),r.offset);let l=Array.from(n),f=Array.from(a);return[l[s],l[c]]=[l[c],l[s]],[f[s],f[c]]=[f[c],f[s]],S.fromData(u,l,i,f,r.offset)}function zi(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let u=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),i=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(u).size!==u.length)throw new Error("repeated axis in source");if(new Set(i).size!==i.length)throw new Error("repeated axis in destination");let s=[];for(let c=0;c<n;c++)u.includes(c)||s.push(c);for(let c=0;c<u.length;c++){let l=i[c];s.splice(l,0,u[c])}return wi(r,s)}function Yr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let p=1;p<r.length;p++){let y=r[p];if(y.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let d=0;d<n;d++)if(d!==a&&y.shape[d]!==e.shape[d])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let u=Array.from(e.shape),i=e.shape[a];for(let p=1;p<r.length;p++)i+=r[p].shape[a];u[a]=i;let s=u.reduce((p,y)=>p*y,1),c=K(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(s),f=lr(u),m=0;for(let p of r){let y=p.shape[a];pD(p,l,u,f,a,m,o),m+=y}return S.fromData(l,u,o)}function pD(r,t,e,n,o,a,u){let i=r.shape,s=i.length,c=r.size,l=u==="int64"||u==="uint64";if(o===0&&r.isCContiguous&&s>0){let p=a*n[0],y=r.data,d=r.offset,b=d+c;t.set(y.subarray(d,b),p);return}if(o===1&&s===2&&r.isCContiguous){let p=i[0],y=i[1],d=e[1],b=r.data,A=r.offset;for(let g=0;g<p;g++){let h=A+g*y,N=g*d+a;t.set(b.subarray(h,h+y),N)}return}let f=new Array(s).fill(0),m=a*n[o];for(let p=0;p<c;p++){let y=r.iget(p),d=m;for(let b=0;b<s;b++)d+=f[b]*n[b];t[d]=y;for(let b=s-1;b>=0&&(f[b]++,!(f[b]<i[b]));b--)f[b]=0}}function Wf(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let i=1;i<r.length;i++){let s=r[i];if(s.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(s.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let u=r.map(i=>we(i,a));return Yr(u,a)}function Gf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?cr(e,[1,e.shape[0]]):e);return Yr(t,0)}function _i(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Yr(r,0):Yr(r,1)}function Yf(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?cr(we(cr(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?we(e,2):e);return Yr(t,2)}function Zf(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],i;if(typeof t=="number"){if(u%t!==0)throw new Error("array split does not result in an equal division");let s=u/t;i=[];for(let c=1;c<t;c++)i.push(c*s)}else i=t;return Xf(r,i,a)}function Ie(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[a],i;if(typeof t=="number"){let s=t,c=Math.floor(u/s),l=u%s;i=[];let f=0;for(let m=0;m<s-1;m++)f+=c+(m<l?1:0),i.push(f)}else i=t;return Xf(r,i,a)}function Xf(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],u=[];for(let i=0;i<a.length-1;i++){let s=a[i],c=a[i+1];if(s>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-s;let f=r.offset+s*r.strides[e];u.push(S.fromData(r.data,l,r.dtype,Array.from(r.strides),f))}return u}function Jf(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return Ie(r,t,0)}function Kf(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let e=r.ndim===1?0:1;return Ie(r,t,e)}function Qf(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],u=Math.max(n,a.length),i=new Array(u).fill(1),s=new Array(u).fill(1);for(let g=0;g<n;g++)i[u-n+g]=e[g];for(let g=0;g<a.length;g++)s[u-a.length+g]=a[g];let c=i.map((g,h)=>g*s[h]),l=c.reduce((g,h)=>g*h,1),f=K(o);if(!f)throw new Error(`Cannot tile array with dtype ${o}`);let m=new f(l),p=lr(c),y=r;n<u&&(y=cr(r,i));let d=o==="int64"||o==="uint64",b=y.strides,A=new Array(u).fill(0);for(let g=0;g<l;g++){let h=y.offset;for(let x=0;x<u;x++){let C=A[x]%i[x];h+=C*b[x]}let N=y.data[h],D=0;for(let x=0;x<u;x++)D+=A[x]*p[x];m[D]=N;for(let x=u-1;x>=0&&(A[x]++,!(A[x]<c[x]));x--)A[x]=0}return S.fromData(m,c,o)}function Hf(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let g=u,h=Array.isArray(t)?t:new Array(g).fill(t);if(h.length!==g)throw new Error(`operands could not be broadcast together with shape (${g},) (${h.length},)`);let N=h.reduce((w,_)=>w+_,0),D=K(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let x=new D(N),C=0;for(let w=0;w<g;w++){let _=r.iget(w),I=h[w];for(let M=0;M<I;M++)x[C++]=_}return S.fromData(x,[N],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[i],c=Array.isArray(t)?t:new Array(s).fill(t);if(c.length!==s)throw new Error(`operands could not be broadcast together with shape (${s},) (${c.length},)`);let l=Array.from(n);l[i]=c.reduce((g,h)=>g+h,0);let f=l.reduce((g,h)=>g*h,1),m=K(a);if(!m)throw new Error(`Cannot repeat array with dtype ${a}`);let p=new m(f),y=lr(l),d=new Array(o).fill(0),b=a==="int64"||a==="uint64",A=[0];for(let g=0;g<s;g++)A.push(A[g]+c[g]);for(let g=0;g<u;g++){let h=r.iget(g),N=d[i],D=c[N],x=0;for(let _=0;_<o;_++)_!==i&&(x+=d[_]*y[_]);let C=y[i],w=A[N];for(let _=0;_<D;_++){let I=x+(w+_)*C;p[I]=h}for(let _=o-1;_>=0&&(d[_]++,!(d[_]<n[_]));_--)d[_]=0}return S.fromData(p,l,a)}function rm(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,u;if(t===void 0)u=new Set(Array.from({length:n},(m,p)=>p));else if(typeof t=="number"){let m=t<0?n+t:t;if(m<0||m>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);u=new Set([m])}else u=new Set(t.map(m=>{let p=m<0?n+m:m;if(p<0||p>=n)throw new Error(`axis ${m} is out of bounds for array of dimension ${n}`);return p}));let i=K(o);if(!i)throw new Error(`Cannot flip array with dtype ${o}`);let s=new i(a),c=E(o);if(n===1&&r.isCContiguous){let m=r.data,p=r.offset;for(let y=0;y<a;y++)s[y]=m[p+a-1-y];return S.fromData(s,[...e],o)}if(n===2&&r.isCContiguous){let m=e[0],p=e[1],y=r.data,d=r.offset;if(u.size===2){for(let b=0;b<a;b++)s[b]=y[d+a-1-b];return S.fromData(s,[...e],o)}if(u.size===1){if(u.has(0)){for(let b=0;b<m;b++){let A=d+(m-1-b)*p,g=b*p;for(let h=0;h<p;h++)s[g+h]=y[A+h]}return S.fromData(s,[...e],o)}else if(u.has(1)){for(let b=0;b<m;b++){let A=d+b*p,g=b*p;for(let h=0;h<p;h++)s[g+h]=y[A+p-1-h]}return S.fromData(s,[...e],o)}}}let l=new Array(n),f=new Array(n).fill(0);for(let m=0;m<a;m++){for(let d=0;d<n;d++)l[d]=u.has(d)?e[d]-1-f[d]:f[d];let p=r.offset;for(let d=0;d<n;d++)p+=l[d]*r.strides[d];let y=r.data[p];s[m]=y;for(let d=n-1;d>=0&&(f[d]++,!(f[d]<e[d]));d--)f[d]=0}return S.fromData(s,[...e],o)}function tm(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let u=e[0]<0?o+e[0]:e[0],i=e[1]<0?o+e[1]:e[1];if(u<0||u>=o||i<0||i>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(u===i)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let s=K(a);if(!s)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[u],c[i]]=[c[i],c[u]]);let l=c.reduce((g,h)=>g*h,1),f=new s(l),m=E(a),p=r.data;if(o===2&&u===0&&i===1){let g=n[0],h=n[1];if(t===1){let N=h,D=g;if(m){let x=p,C=f;for(let w=0;w<N;w++){let _=w*D,I=h-1-w;for(let M=0;M<D;M++)C[_+M]=x[M*h+I]}}else{let x=p,C=f;for(let w=0;w<N;w++){let _=w*D,I=h-1-w;for(let M=0;M<D;M++)C[_+M]=x[M*h+I]}}}else if(t===2)if(m){let N=p,D=f;for(let x=0;x<g;x++){let C=x*h,w=(g-1-x)*h;for(let _=0;_<h;_++)D[C+_]=N[w+(h-1-_)]}}else{let N=p,D=f;for(let x=0;x<g;x++){let C=x*h,w=(g-1-x)*h;for(let _=0;_<h;_++)D[C+_]=N[w+(h-1-_)]}}else{let N=h,D=g;if(m){let x=p,C=f;for(let w=0;w<N;w++){let _=w*D;for(let I=0;I<D;I++)C[_+I]=x[(g-1-I)*h+w]}}else{let x=p,C=f;for(let w=0;w<N;w++){let _=w*D;for(let I=0;I<D;I++)C[_+I]=x[(g-1-I)*h+w]}}}return S.fromData(f,c,a)}let y=lr(c),d=lr(n),b=new Array(o).fill(0),A=new Array(o);for(let g=0;g<r.size;g++){for(let C=0;C<o;C++)A[C]=b[C];let h,N;t===1?(h=n[i]-1-b[i],N=b[u]):t===2?(h=n[u]-1-b[u],N=n[i]-1-b[i],A[u]=h,A[i]=N):(h=b[i],N=n[u]-1-b[u]),t!==2&&(A[u]=h,A[i]=N);let D=0;for(let C=0;C<o;C++)D+=A[C]*y[C];let x=0;for(let C=0;C<o;C++)x+=b[C]*d[C];if(m){let C=p,w=f;w[D]=C[x]}else{let C=p,w=f;w[D]=C[x]}for(let C=o-1;C>=0&&(b[C]++,!(b[C]<n[C]));C--)b[C]=0}return S.fromData(f,c,a)}function em(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=r.size;if(e===void 0){let y=Array.isArray(t)?t.reduce((h,N)=>h+N,0):t,d=Jr(r),b=K(a);if(!b)throw new Error(`Cannot roll array with dtype ${a}`);let A=new b(u),g=E(a);for(let h=0;h<u;h++){let N=((h-y)%u+u)%u,D=d.iget(N);A[h]=D}return S.fromData(A,[...n],a)}let i=Array.isArray(t)?t:[t],s=Array.isArray(e)?e:[e];if(i.length!==s.length)throw new Error("shift and axis must have the same length");let c=s.map(y=>{let d=y<0?o+y:y;if(d<0||d>=o)throw new Error(`axis ${y} is out of bounds for array of dimension ${o}`);return d}),l=K(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let f=new l(u),m=E(a),p=new Array(o).fill(0);for(let y=0;y<u;y++){let d=[...p];for(let g=0;g<c.length;g++){let h=c[g],N=n[h],D=i[g];d[h]=((d[h]-D)%N+N)%N}let b=r.offset;for(let g=0;g<o;g++)b+=d[g]*r.strides[g];let A=r.data[b];f[y]=A;for(let g=o-1;g>=0&&(p[g]++,!(p[g]<n[g]));g--)p[g]=0}return S.fromData(f,[...n],a)}function nm(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?S.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):zi(r,o,a)}function om(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return Ie(r,t,2)}function am(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?cr(e,[e.shape[0],1]):e);return _i(t)}function sm(r,t){let e=r.dtype,n=t.reduce((s,c)=>s*c,1),o=r.size,a=K(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let u=new a(n),i=E(e);for(let s=0;s<n;s++){let c=s%o,l=r.iget(c);u[s]=l}return S.fromData(u,t,e)}function im(r){return r.map(t=>t.ndim===0?cr(t,[1]):t)}function um(r){return r.map(t=>t.ndim===0?cr(t,[1,1]):t.ndim===1?cr(t,[1,t.shape[0]]):t)}function cm(r){return r.map(t=>t.ndim===0?cr(t,[1,1,1]):t.ndim===1?cr(t,[1,t.shape[0],1]):t.ndim===2?cr(t,[t.shape[0],t.shape[1],1]):t)}function lm(r,t=0){let e=r.shape,n=e.length,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e[o],u=[];for(let i=0;i<a;i++){let s=[];for(let f=0;f<n;f++)f===o?s.push({start:i,stop:i+1,step:1}):s.push({start:0,stop:e[f],step:1});let c=yD(r,s),l=Ii(c,o);u.push(l)}return u}function fm(r,t=1){if(r.length===0)throw new Error("need at least one array to block");return r.length===1?r[0].copy():Yr(r,-1)}function yD(r,t){let e=r.shape,n=r.strides,o=r.offset,a=r.dtype,u=r.data,i=[],s=[];for(let c=0;c<e.length;c++){let l=t[c],{start:f,stop:m,step:p}=l,y=Math.ceil((m-f)/p);i.push(y),s.push(n[c]*p),o+=f*n[c]}return S.fromData(u,i,a,s,o)}function kr(r,t){if(r instanceof U||t instanceof U){let e=r instanceof U?r:new U(Number(r),0),n=t instanceof U?t:new U(Number(t),0);return e.mul(n)}return typeof r=="bigint"&&typeof t=="bigint"?Number(r*t):Number(r)*Number(t)}function dD(r,t,e,n,o,a,u,i,s){for(let c=0;c<e;c++)for(let l=0;l<a;l++)for(let f=0;f<u;f++){let m=0;for(let p=0;p<i;p++)m+=r[t+c*i+p]*n[o+l*i*u+p*u+f];s[c*a*u+l*u+f]=m}}function bD(r,t,e,n,o,a,u,i,s,c){for(let l=0;l<e;l++)for(let f=0;f<u;f++){let m=0;for(let p=0;p<s;p++){let y=n===1?p:l*s+p,d=i===1?p:f*s+p;m+=r[t+y]*o[a+d]}c[e===1?f:l*u+f]=m}}function AD(r,t,e,n,o,a,u,i,s,c,l,f){for(let y=0;y<e*n;y++)l[y]=0;let m=r==="transpose",p=t==="transpose";if(!m&&!p)for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[y*i+A]??0)*(s[A*c+d]??0);l[y*f+d]=a*b}else if(m&&!p)for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[A*i+y]??0)*(s[A*c+d]??0);l[y*f+d]=a*b}else if(!m&&p)for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[y*i+A]??0)*(s[d*c+A]??0);l[y*f+d]=a*b}else for(let y=0;y<e;y++)for(let d=0;d<n;d++){let b=0;for(let A=0;A<o;A++)b+=(u[A*i+y]??0)*(s[d*c+A]??0);l[y*f+d]=a*b}}function ft(r,t){let e=r.ndim,n=t.ndim,o=B(r.dtype)||B(t.dtype);if(e===0||n===0){let a=e===0?r.get():null,u=n===0?t.get():null;if(e===0&&n===0)return kr(a,u);if(e===0){let i=or(r.dtype,t.dtype),s=S.zeros([...t.shape],i),c=(l,f)=>{let m=new Array(f.length),p=l;for(let y=f.length-1;y>=0;y--)m[y]=p%f[y],p=Math.floor(p/f[y]);return m};for(let l=0;l<t.size;l++){let f=c(l,t.shape),m=t.get(...f);s.set(f,kr(a,m))}return s}else{let i=or(r.dtype,t.dtype),s=S.zeros([...r.shape],i),c=(l,f)=>{let m=new Array(f.length),p=l;for(let y=f.length-1;y>=0;y--)m[y]=p%f[y],p=Math.floor(p/f[y]);return m};for(let l=0;l<r.size;l++){let f=c(l,r.shape),m=r.get(...f);s.set(f,kr(m,u))}return s}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let i=0,s=0;for(let c=0;c<a;c++){let l=r.get(c),f=t.get(c),m=kr(l,f);m instanceof U?(i+=m.re,s+=m.im):i+=m}return new U(i,s)}let u=0;for(let i=0;i<a;i++){let s=r.get(i),c=t.get(i);typeof s=="bigint"&&typeof c=="bigint"?u=Number(u)+Number(s*c):u+=Number(s)*Number(c)}return u}if(e===2&&n===2)return Ar(r,t);if(e===2&&n===1){let[a,u]=r.shape,i=t.shape[0];if(u!==i)throw new Error(`dot: incompatible shapes (${a},${u}) and (${i},)`);let s=or(r.dtype,t.dtype),c=S.zeros([a],s);if(o)for(let l=0;l<a;l++){let f=0,m=0;for(let p=0;p<u;p++){let y=r.get(l,p),d=t.get(p),b=y instanceof U?y:new U(Number(y),0),A=d instanceof U?d:new U(Number(d),0);f+=b.re*A.re-b.im*A.im,m+=b.re*A.im+b.im*A.re}c.set([l],new U(f,m))}else for(let l=0;l<a;l++){let f=0;for(let m=0;m<u;m++){let p=r.get(l,m),y=t.get(m);typeof p=="bigint"&&typeof y=="bigint"?f=Number(f)+Number(p*y):f+=Number(p)*Number(y)}c.set([l],f)}return c}if(e===1&&n===2){let a=r.shape[0],[u,i]=t.shape;if(a!==u)throw new Error(`dot: incompatible shapes (${a},) and (${u},${i})`);let s=or(r.dtype,t.dtype),c=S.zeros([i],s);if(o)for(let l=0;l<i;l++){let f=0,m=0;for(let p=0;p<a;p++){let y=r.get(p),d=t.get(p,l),b=y instanceof U?y:new U(Number(y),0),A=d instanceof U?d:new U(Number(d),0);f+=b.re*A.re-b.im*A.im,m+=b.re*A.im+b.im*A.re}c.set([l],new U(f,m))}else for(let l=0;l<i;l++){let f=0;for(let m=0;m<a;m++){let p=r.get(m),y=t.get(m,l);typeof p=="bigint"&&typeof y=="bigint"?f=Number(f)+Number(p*y):f+=Number(p)*Number(y)}c.set([l],f)}return c}if(e>2&&n===1){let a=r.shape[e-1],u=t.shape[0];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${u},)`);let i=[...r.shape.slice(0,-1)],s=or(r.dtype,t.dtype),c=S.zeros(i,s),l=i.reduce((f,m)=>f*m,1);if(o)for(let f=0;f<l;f++){let m=0,p=0,y=f,d=[];for(let b=i.length-1;b>=0;b--)d[b]=y%i[b],y=Math.floor(y/i[b]);for(let b=0;b<a;b++){let A=[...d,b],g=r.get(...A),h=t.get(b),N=g instanceof U?g:new U(Number(g),0),D=h instanceof U?h:new U(Number(h),0);m+=N.re*D.re-N.im*D.im,p+=N.re*D.im+N.im*D.re}c.set(d,new U(m,p))}else for(let f=0;f<l;f++){let m=0,p=f,y=[];for(let d=i.length-1;d>=0;d--)y[d]=p%i[d],p=Math.floor(p/i[d]);for(let d=0;d<a;d++){let b=[...y,d],A=r.get(...b),g=t.get(d);typeof A=="bigint"&&typeof g=="bigint"?m=Number(m)+Number(A*g):m+=Number(A)*Number(g)}c.set(y,m)}return c}if(e===1&&n>2){let a=r.shape[0],u=1,i=t.shape[u];if(a!==i)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let s=[...t.shape.slice(0,u),...t.shape.slice(u+1)],c=or(r.dtype,t.dtype),l=S.zeros(s,c),f=s.reduce((m,p)=>m*p,1);if(o)for(let m=0;m<f;m++){let p=m,y=[];for(let h=s.length-1;h>=0;h--)y[h]=p%s[h],p=Math.floor(p/s[h]);let d=y.slice(0,u),b=y.slice(u),A=0,g=0;for(let h=0;h<a;h++){let N=r.get(h),D=[...d,h,...b],x=t.get(...D),C=N instanceof U?N:new U(Number(N),0),w=x instanceof U?x:new U(Number(x),0);A+=C.re*w.re-C.im*w.im,g+=C.re*w.im+C.im*w.re}l.set(y,new U(A,g))}else for(let m=0;m<f;m++){let p=m,y=[];for(let g=s.length-1;g>=0;g--)y[g]=p%s[g],p=Math.floor(p/s[g]);let d=y.slice(0,u),b=y.slice(u),A=0;for(let g=0;g<a;g++){let h=r.get(g),N=[...d,g,...b],D=t.get(...N);typeof h=="bigint"&&typeof D=="bigint"?A=Number(A)+Number(h*D):A+=Number(h)*Number(D)}l.set(y,A)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],u=t.shape[n-2];if(a!==u)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],s=or(r.dtype,t.dtype),c=S.zeros(i,s),l=r.shape.slice(0,-1).reduce((y,d)=>y*d,1),f=t.shape.slice(0,-2).reduce((y,d)=>y*d,1),m=t.shape[n-1],p=a;if(o)for(let y=0;y<l;y++)for(let d=0;d<f;d++)for(let b=0;b<m;b++){let A=0,g=0;for(let D=0;D<p;D++){let x=[],C=y;for(let $=r.shape.length-2;$>=0;$--)x.unshift(C%r.shape[$]),C=Math.floor(C/r.shape[$]);x.push(D);let w=r.get(...x),_=[],I=d;for(let $=t.shape.length-3;$>=0;$--)_.unshift(I%t.shape[$]),I=Math.floor(I/t.shape[$]);_.push(D,b);let M=t.get(..._),T=w instanceof U?w:new U(Number(w),0),O=M instanceof U?M:new U(Number(M),0);A+=T.re*O.re-T.im*O.im,g+=T.re*O.im+T.im*O.re}let h=y*f*m+d*m+b,N=c.data;N[h*2]=A,N[h*2+1]=g}else if(r.isCContiguous&&t.isCContiguous&&!E(r.dtype)&&!E(t.dtype))dD(r.data,r.offset,l,t.data,t.offset,f,m,p,c.data);else for(let y=0;y<l;y++)for(let d=0;d<f;d++)for(let b=0;b<m;b++){let A=0;for(let h=0;h<p;h++){let N=y*p+h,D=d*p*m+h*m+b,x=r.iget(N),C=t.iget(D);typeof x=="bigint"&&typeof C=="bigint"?A=Number(A)+Number(x*C):A+=Number(x)*Number(C)}let g=y*f*m+d*m+b;c.data[g]=A}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function Ar(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let u=or(r.dtype,t.dtype);if(B(u)){let D=S.zeros([e,a],u),x=D.data;for(let C=0;C<e;C++)for(let w=0;w<a;w++){let _=0,I=0;for(let T=0;T<n;T++){let O=r.iget(C*n+T),$=t.iget(T*a+w);_+=O.re*$.re-O.im*$.im,I+=O.re*$.im+O.im*$.re}let M=C*a+w;x[M*2]=_,x[M*2+1]=I}return D}let i=u.startsWith("int")||u.startsWith("uint")||u==="bool"?"float64":u;if(i!=="float64")throw new Error(`matmul currently only supports float64, got ${i}`);let s=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(s=s.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,f=0]=r.strides,[m=0,p=0]=t.strides,y=f>l,d=p>m,b=y?"transpose":"no-transpose",A=d?"transpose":"no-transpose",g,h;y?g=f:g=l,d?h=p:h=m;let N=S.zeros([e,a],"float64");return AD(b,A,e,a,n,1,s,g,c,h,N.data,a),N}function ym(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e);if(B(r.dtype)){let a=0,u=0;for(let i=0;i<n;i++){let s=r.get(i,i);a+=s.re,u+=s.im}return new U(a,u)}let o=0;for(let a=0;a<n;a++){let u=r.get(a,a);typeof u=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+u:o=(typeof o=="bigint"?Number(o):o)+u}return o}function Qr(r,t){return wi(r,t)}function dm(r,t){let e=r.ndim,n=t.ndim,o=B(r.dtype)||B(t.dtype),a=r.shape[e-1],u=t.shape[n-1];if(a!==u)throw new Error(`inner: incompatible shapes - last dimensions ${a} and ${u} don't match`);if(e===1&&n===1)return ft(r,t);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],s=or(r.dtype,t.dtype),c=S.zeros(i,s),l=e===1?1:r.shape.slice(0,-1).reduce((p,y)=>p*y,1),f=n===1?1:t.shape.slice(0,-1).reduce((p,y)=>p*y,1),m=a;if(o)for(let p=0;p<l;p++)for(let y=0;y<f;y++){let d=0,b=0;for(let h=0;h<m;h++){let N,D;if(e===1)N=r.get(h);else{let w=[],_=p,I=r.shape.slice(0,-1);for(let M=I.length-1;M>=0;M--)w.unshift(_%I[M]),_=Math.floor(_/I[M]);w.push(h),N=r.get(...w)}if(n===1)D=t.get(h);else{let w=[],_=y,I=t.shape.slice(0,-1);for(let M=I.length-1;M>=0;M--)w.unshift(_%I[M]),_=Math.floor(_/I[M]);w.push(h),D=t.get(...w)}let x=N instanceof U?N:new U(Number(N),0),C=D instanceof U?D:new U(Number(D),0);d+=x.re*C.re-x.im*C.im,b+=x.re*C.im+x.im*C.re}if(i.length===0)return new U(d,b);let A=l===1?y:p*f+y,g=c.data;g[A*2]=d,g[A*2+1]=b}else if(r.isCContiguous&&t.isCContiguous&&!E(r.dtype)&&!E(t.dtype)){if(i.length===0){let p=r.data,y=t.data,d=r.offset,b=t.offset,A=0;for(let g=0;g<m;g++)A+=p[d+g]*y[b+g];return A}bD(r.data,r.offset,l,e,t.data,t.offset,f,n,m,c.data)}else for(let p=0;p<l;p++)for(let y=0;y<f;y++){let d=0;for(let A=0;A<m;A++){let g=e===1?A:p*m+A,h=n===1?A:y*m+A,N=r.iget(g),D=t.iget(h);typeof N=="bigint"&&typeof D=="bigint"?d=Number(d)+Number(N*D):d+=Number(N)*Number(D)}if(i.length===0)return d;let b=l===1?y:p*f+y;c.data[b]=d}return c}function Fi(r,t){let e=r.ndim===1?r:ct(r),n=t.ndim===1?t:ct(t),o=e.size,a=n.size,u=or(r.dtype,t.dtype),i=S.zeros([o,a],u);for(let s=0;s<o;s++)for(let c=0;c<a;c++){let l=e.get(s),f=n.get(c),m=kr(l,f);i.set([s,c],m)}return i}function bm(r,t,e){let n,o;if(typeof e=="number"){let y=e;if(y<0)throw new Error("tensordot: axes must be non-negative");if(y>r.ndim||y>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:y},(d,b)=>r.ndim-y+b),o=Array.from({length:y},(d,b)=>b)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let y=0;y<n.length;y++){let d=n[y],b=o[y];if(d<0||d>=r.ndim||b<0||b>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[d]!==t.shape[b])throw new Error(`tensordot: shape mismatch on axes ${d} and ${b}: ${r.shape[d]} != ${t.shape[b]}`)}let a=[],u=[];for(let y=0;y<r.ndim;y++)n.includes(y)||a.push(y);for(let y=0;y<t.ndim;y++)o.includes(y)||u.push(y);let i=[...a.map(y=>r.shape[y]),...u.map(y=>t.shape[y])],s=or(r.dtype,t.dtype),c=B(s),l=y=>y instanceof U?{re:y.re,im:y.im}:{re:Number(y),im:0};if(i.length===0){let y=0,d=0,b=n.map(A=>r.shape[A]).reduce((A,g)=>A*g,1);for(let A=0;A<b;A++){let g=A,h=new Array(n.length);for(let w=n.length-1;w>=0;w--){let _=n[w];h[w]=g%r.shape[_],g=Math.floor(g/r.shape[_])}let N=new Array(r.ndim),D=new Array(t.ndim);for(let w=0;w<n.length;w++)N[n[w]]=h[w];for(let w=0;w<o.length;w++)D[o[w]]=h[w];let x=r.get(...N),C=t.get(...D);if(c){let w=l(x),_=l(C);y+=w.re*_.re-w.im*_.im,d+=w.re*_.im+w.im*_.re}else typeof x=="bigint"&&typeof C=="bigint"?y+=Number(x*C):y+=Number(x)*Number(C)}return c?new U(y,d):y}let f=S.zeros(i,s),m=i.reduce((y,d)=>y*d,1),p=n.map(y=>r.shape[y]).reduce((y,d)=>y*d,1);for(let y=0;y<m;y++){let d=y,b=[];for(let D=i.length-1;D>=0;D--)b[D]=d%i[D],d=Math.floor(d/i[D]);let A=b.slice(0,a.length),g=b.slice(a.length),h=0,N=0;for(let D=0;D<p;D++){d=D;let x=[];for(let M=n.length-1;M>=0;M--){let T=n[M];x[M]=d%r.shape[T],d=Math.floor(d/r.shape[T])}let C=new Array(r.ndim),w=new Array(t.ndim);for(let M=0;M<a.length;M++)C[a[M]]=A[M];for(let M=0;M<u.length;M++)w[u[M]]=g[M];for(let M=0;M<n.length;M++)C[n[M]]=x[M],w[o[M]]=x[M];let _=r.get(...C),I=t.get(...w);if(c){let M=l(_),T=l(I);h+=M.re*T.re-M.im*T.im,N+=M.re*T.im+M.im*T.re}else typeof _=="bigint"&&typeof I=="bigint"?h+=Number(_*I):h+=Number(_)*Number(I)}c?f.set(b,new U(h,N)):f.set(b,h)}return f}function Am(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let u=e<0?a+e:e,i=n<0?a+n:n;if(u<0||u>=a||i<0||i>=a)throw new Error("axis out of bounds");if(u===i)throw new Error("axis1 and axis2 cannot be the same");let s=o[u],c=o[i],l;t>=0?l=Math.max(0,Math.min(s,c-t)):l=Math.max(0,Math.min(s+t,c));let f=[];for(let d=0;d<a;d++)d!==u&&d!==i&&f.push(o[d]);f.push(l);let m=S.zeros(f,r.dtype),p=o.filter((d,b)=>b!==u&&b!==i),y=p.reduce((d,b)=>d*b,1);for(let d=0;d<y;d++){let b=d,A=[];for(let g=p.length-1;g>=0;g--)A.unshift(b%p[g]),b=Math.floor(b/p[g]);for(let g=0;g<l;g++){let h=new Array(a),N=0;for(let C=0;C<a;C++)C===u?h[C]=t>=0?g:g-t:C===i?h[C]=t>=0?g+t:g:h[C]=A[N++];let D=[...A,g],x=r.get(...h);m.set(D,x)}}return m}function gm(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=hm(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(d=>d.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let u=new Map;for(let d=0;d<t.length;d++){let b=a[d],A=t[d];if(b.length!==A.ndim)throw new Error(`einsum: operand ${d} has ${A.ndim} dimensions but subscript '${b}' has ${b.length} indices`);for(let g=0;g<b.length;g++){let h=b[g],N=A.shape[g];if(u.has(h)){if(u.get(h)!==N)throw new Error(`einsum: size mismatch for index '${h}': ${u.get(h)} vs ${N}`)}else u.set(h,N)}}for(let d of o)if(!u.has(d))throw new Error(`einsum: output subscript contains unknown index '${d}'`);let i=new Set(o),s=new Set;for(let d of a)for(let b of d)s.add(b);let c=[];for(let d of s)i.has(d)||c.push(d);if(t.length===2&&a.length===2){let[d,b]=a,[A,g]=t;if(d.length===2&&b.length===2&&o.length===2&&A.ndim===2&&g.ndim===2){let[h,N]=[d[0],d[1]],[D,x]=[b[0],b[1]],[C,w]=[o[0],o[1]];if(h===C&&x===w&&N===D&&c.length===1&&c[0]===N||h===C&&x===w&&N===D&&c.length===1&&c[0]===N)return Ar(A,g);if(N===C&&x===w&&h===D&&c.length===1&&c[0]===h){let _=Qr(A);return Ar(_,g)}if(h===C&&D===w&&N===x&&c.length===1&&c[0]===N){let _=Qr(g);return Ar(A,_)}}if(d.length===1&&b.length===1&&d===b&&o.length===0&&A.ndim===1&&g.ndim===1)return Mi(t,a,c,u);if(d&&b&&d.length===1&&b.length===1&&o.length===2&&o===d+b&&c.length===0&&A.ndim===1&&g.ndim===1)return Fi(A,g)}if(t.length===1&&a[0].length===2&&o.length===0){let d=a[0];if(d[0]===d[1]&&t[0].ndim===2)return Mi(t,a,c,u)}let l=Array.from(o).map(d=>u.get(d));if(l.length===0)return Mi(t,a,c,u);let f=t[0].dtype;for(let d=1;d<t.length;d++)f=or(f,t[d].dtype);let m=S.zeros(l,f),p=l.reduce((d,b)=>d*b,1),y=1;for(let d of c)y*=u.get(d);for(let d=0;d<p;d++){let b=gD(d,l),A=new Map;for(let h=0;h<o.length;h++)A.set(o[h],b[h]);let g=0;for(let h=0;h<y;h++){let N=h;for(let x=c.length-1;x>=0;x--){let C=c[x],w=u.get(C);A.set(C,N%w),N=Math.floor(N/w)}let D=1;for(let x=0;x<t.length;x++){let C=t[x],w=a[x],_=[];for(let M of w)_.push(A.get(M));let I=C.get(..._);D*=Number(I)}g+=D}m.set(b,g)}return m}function hm(r){let t=new Map,e=r.split(",");for(let o of e)for(let a of o.trim())t.set(a,(t.get(a)||0)+1);let n=[];for(let[o,a]of t)a===1&&n.push(o);return n.sort().join("")}function Mi(r,t,e,n){let o=!1;for(let c of r)if(B(c.dtype)){o=!0;break}let a=c=>c instanceof U?{re:c.re,im:c.im}:{re:Number(c),im:0},u=1;for(let c of e)u*=n.get(c);let i=0,s=0;for(let c=0;c<u;c++){let l=new Map,f=c;for(let y=e.length-1;y>=0;y--){let d=e[y],b=n.get(d);l.set(d,f%b),f=Math.floor(f/b)}let m=1,p=0;for(let y=0;y<r.length;y++){let d=r[y],b=t[y],A=[];for(let h of b)A.push(l.get(h));let g=d.get(...A);if(o){let h=a(g),N=m*h.re-p*h.im,D=m*h.im+p*h.re;m=N,p=D}else m*=Number(g)}i+=m,s+=p}return o?new U(i,s):i}function gD(r,t){let e=new Array(t.length),n=r;for(let o=t.length-1;o>=0;o--)e[o]=n%t[o],n=Math.floor(n/t[o]);return e}function Nm(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,u=or(r.dtype,t.dtype),i=Math.max(o,a),s=new Array(i),c=new Array(i).fill(1),l=new Array(i).fill(1);for(let y=0;y<o;y++)c[i-o+y]=e[y];for(let y=0;y<a;y++)l[i-a+y]=n[y];for(let y=0;y<i;y++)s[y]=c[y]*l[y];let f=S.zeros(s,u),m=e.reduce((y,d)=>y*d,1),p=n.reduce((y,d)=>y*d,1);for(let y=0;y<m;y++){let d=y,b=new Array(o);for(let h=o-1;h>=0;h--)b[h]=d%e[h],d=Math.floor(d/e[h]);let A=new Array(i).fill(0);for(let h=0;h<o;h++)A[i-o+h]=b[h];let g=r.get(...b);for(let h=0;h<p;h++){let N=h,D=new Array(a);for(let I=a-1;I>=0;I--)D[I]=N%n[I],N=Math.floor(N/n[I]);let x=new Array(i).fill(0);for(let I=0;I<a;I++)x[i-a+I]=D[I];let C=t.get(...D),w=new Array(i);for(let I=0;I<i;I++)w[I]=A[I]*l[I]+x[I];let _=kr(g,C);f.set(w,_)}}return f}function Dm(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let u=(w,_)=>w<0?_+w:w,i=u(e,r.ndim),s=u(n,t.ndim),c=or(r.dtype,t.dtype),l=B(c),f=(w,..._)=>{let I=w.get(..._);return I instanceof U?I:Number(I)},m=(w,_)=>{if(w instanceof U||_ instanceof U){let I=w instanceof U?w:new U(w,0),M=_ instanceof U?_:new U(_,0);return I.mul(M)}return w*_},p=(w,_)=>{if(w instanceof U||_ instanceof U){let I=w instanceof U?w:new U(w,0),M=_ instanceof U?_:new U(_,0);return I.sub(M)}return w-_};if(r.ndim===1&&t.ndim===1){let w=r.shape[0],_=t.shape[0];if(w===3&&_===3){let I=f(r,0),M=f(r,1),T=f(r,2),O=f(t,0),$=f(t,1),k=f(t,2),V=S.zeros([3],c);return V.set([0],p(m(M,k),m(T,$))),V.set([1],p(m(T,O),m(I,k))),V.set([2],p(m(I,$),m(M,O))),V}else if(w===2&&_===2){let I=f(r,0),M=f(r,1),T=f(t,0),O=f(t,1);return p(m(I,O),m(M,T))}else if(w===2&&_===3||w===3&&_===2){let I=f(r,0),M=f(r,1),T=w===3?f(r,2):l?new U(0,0):0,O=f(t,0),$=f(t,1),k=_===3?f(t,2):l?new U(0,0):0,V=S.zeros([3],c);return V.set([0],p(m(M,k),m(T,$))),V.set([1],p(m(T,O),m(I,k))),V.set([2],p(m(I,$),m(M,O))),V}else throw new Error(`cross: incompatible dimensions for cross product: ${w} and ${_}`)}let y=r.shape[i],d=t.shape[s];if(y!==2&&y!==3||d!==2&&d!==3)throw new Error(`cross: incompatible dimensions for cross product: ${y} and ${d}`);let b=y===2&&d===2?0:3,A=[...r.shape.slice(0,i),...r.shape.slice(i+1)],g=[...t.shape.slice(0,s),...t.shape.slice(s+1)];if(A.length!==g.length)throw new Error("cross: incompatible shapes for cross product");for(let w=0;w<A.length;w++)if(A[w]!==g[w])throw new Error("cross: incompatible shapes for cross product");let h=A,N=o<0?h.length+1+o:o,D;if(b===0?D=h:D=[...h.slice(0,N),b,...h.slice(N)],D.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let x=S.zeros(D,c),C=h.reduce((w,_)=>w*_,1);for(let w=0;w<C;w++){let _=w,I=[];for(let J=h.length-1;J>=0;J--)I[J]=_%h[J],_=Math.floor(_/h[J]);let M=[...I.slice(0,i),0,...I.slice(i)],T=[...I.slice(0,s),0,...I.slice(s)],O=J=>(M[i]=J,f(r,...M)),$=J=>(T[s]=J,f(t,...T)),k=O(0),V=O(1),j=y===3?O(2):l?new U(0,0):0,R=$(0),Y=$(1),X=d===3?$(2):l?new U(0,0):0;if(b===0)x.set(I,p(m(k,Y),m(V,R)));else{let J=p(m(V,X),m(j,Y)),rr=p(m(j,R),m(k,X)),yr=p(m(k,Y),m(V,R)),nr=(dr,Er)=>{let vN=[...I.slice(0,N),dr,...I.slice(N)];x.set(vN,Er)};nr(0,J),nr(1,rr),nr(2,yr)}}return x}function lt(r,t=2,e,n=!1){if(typeof t!="number")throw new Error("vector_norm: ord must be a number");if(e==null){let c=r.ndim===1?r:ct(r),l=c.size,f;if(t===1/0){f=0;for(let m=0;m<l;m++)f=Math.max(f,Math.abs(Number(c.get(m))))}else if(t===-1/0){f=1/0;for(let m=0;m<l;m++)f=Math.min(f,Math.abs(Number(c.get(m))))}else if(t===0){f=0;for(let m=0;m<l;m++)Number(c.get(m))!==0&&f++}else if(t===1){f=0;for(let m=0;m<l;m++)f+=Math.abs(Number(c.get(m)))}else if(t===2){f=0;for(let m=0;m<l;m++){let p=Number(c.get(m));f+=p*p}f=Math.sqrt(f)}else{f=0;for(let m=0;m<l;m++)f+=Math.pow(Math.abs(Number(c.get(m))),t);f=Math.pow(f,1/t)}if(n){let m=new Array(r.ndim).fill(1),p=S.zeros(m,"float64");return p.set(new Array(r.ndim).fill(0),f),p}return f}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return lt(r,t,null,!1);let u=S.zeros(a,"float64"),i=r.shape[o],s=a.reduce((c,l)=>c*l,1);for(let c=0;c<s;c++){let l=c,f=[];for(let y=a.length-1;y>=0;y--)f[y]=l%a[y],l=Math.floor(l/a[y]);let m=n?[...f.slice(0,o),0,...f.slice(o+1)]:[...f.slice(0,o),0,...f.slice(o)],p;if(t===1/0){p=0;for(let y=0;y<i;y++)m[o]=y,p=Math.max(p,Math.abs(Number(r.get(...m))))}else if(t===-1/0){p=1/0;for(let y=0;y<i;y++)m[o]=y,p=Math.min(p,Math.abs(Number(r.get(...m))))}else if(t===0){p=0;for(let y=0;y<i;y++)m[o]=y,Number(r.get(...m))!==0&&p++}else if(t===1){p=0;for(let y=0;y<i;y++)m[o]=y,p+=Math.abs(Number(r.get(...m)))}else if(t===2){p=0;for(let y=0;y<i;y++){m[o]=y;let d=Number(r.get(...m));p+=d*d}p=Math.sqrt(p)}else{p=0;for(let y=0;y<i;y++)m[o]=y,p+=Math.pow(Math.abs(Number(r.get(...m))),t);p=Math.pow(p,1/t)}u.set(f,p)}return u}function Kr(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let u=0;u<n;u++)for(let i=0;i<o;i++){let s=Number(r.get(u,i));a+=s*s}a=Math.sqrt(a)}else if(t==="nuc"){let{s:u}=Zr(r);a=0;for(let i=0;i<u.size;i++)a+=Number(u.get(i))}else if(t===1){a=0;for(let u=0;u<o;u++){let i=0;for(let s=0;s<n;s++)i+=Math.abs(Number(r.get(s,u)));a=Math.max(a,i)}}else if(t===-1){a=1/0;for(let u=0;u<o;u++){let i=0;for(let s=0;s<n;s++)i+=Math.abs(Number(r.get(s,u)));a=Math.min(a,i)}}else if(t===1/0){a=0;for(let u=0;u<n;u++){let i=0;for(let s=0;s<o;s++)i+=Math.abs(Number(r.get(u,s)));a=Math.max(a,i)}}else if(t===-1/0){a=1/0;for(let u=0;u<n;u++){let i=0;for(let s=0;s<o;s++)i+=Math.abs(Number(r.get(u,s)));a=Math.min(a,i)}}else if(t===2){let{s:u}=Zr(r);a=Number(u.get(0))}else if(t===-2){let{s:u}=Zr(r);a=Number(u.get(u.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let u=S.zeros([1,1],"float64");return u.set([0,0],a),u}return a}function xm(r,t=null,e=null,n=!1){if(t===null)return e===null?lt(r,2,null,n):typeof e=="number"?lt(r,2,e,n):Kr(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return Kr(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return Kr(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return lt(r,t??2,e,n)}function Bi(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=S.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let y=0;y<n;y++)a.set([p,y],Number(r.get(p,y)));let u=[],i=[];for(let p=0;p<o;p++){let y=e-p,d=[];for(let D=p;D<e;D++)d.push(Number(a.get(D,p)));let b=0;for(let D=0;D<y;D++)b+=d[D]*d[D];if(b=Math.sqrt(b),b<1e-15){u.push(d),i.push(0);continue}let A=d[0]>=0?1:-1,g=d[0]+A*b,h=[1];for(let D=1;D<y;D++)h.push(d[D]/g);let N=A*g/b;i.push(N),u.push(h);for(let D=p;D<n;D++){let x=0;for(let C=0;C<y;C++)x+=h[C]*Number(a.get(p+C,D));for(let C=0;C<y;C++)a.set([p+C,D],Number(a.get(p+C,D))-N*h[C]*x)}}if(t==="raw"){let p=S.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let b=0;b<n;b++)p.set([d,b],Number(a.get(d,b)));let y=S.zeros([o],"float64");for(let d=0;d<o;d++)y.set([d],i[d]);return{h:p,tau:y}}if(t==="r"){let p=S.zeros([o,n],"float64");for(let y=0;y<o;y++)for(let d=y;d<n;d++)p.set([y,d],Number(a.get(y,d)));return p}let s=t==="complete"?e:o,c=S.zeros([e,s],"float64");for(let p=0;p<Math.min(e,s);p++)c.set([p,p],1);for(let p=o-1;p>=0;p--){let y=u[p],d=i[p],b=e-p;for(let A=p;A<s;A++){let g=0;for(let h=0;h<b;h++)g+=y[h]*Number(c.get(p+h,A));for(let h=0;h<b;h++)c.set([p+h,A],Number(c.get(p+h,A))-d*y[h]*g)}}let l=S.zeros([e,s],"float64");for(let p=0;p<e;p++)for(let y=0;y<s;y++)l.set([p,y],Number(c.get(p,y)));let f=t==="complete"?e:o,m=S.zeros([f,n],"float64");for(let p=0;p<f;p++)for(let y=0;y<n;y++)y>=p&&m.set([p,y],Number(a.get(p,y)));return{q:l,r:m}}function Cm(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=S.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let i=0;i<=u;i++){let s=0;if(u===i){for(let l=0;l<i;l++)s+=Number(a.get(i,l))**2;let c=Number(r.get(i,i))-s;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([i,i],Math.sqrt(c))}else{for(let l=0;l<i;l++)s+=Number(a.get(u,l))*Number(a.get(i,l));let c=Number(a.get(i,i));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([u,i],(Number(r.get(u,i))-s)/c)}}if(t){let u=S.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let s=i;s<o;s++)u.set([i,s],Number(a.get(s,i)));return u}return a}function Zr(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=S.zeros([e,e],"float64");for(let f=0;f<e;f++)for(let m=0;m<e;m++){let p=0;for(let y=0;y<t;y++)p+=Number(r.get(y,f))*Number(r.get(y,m));o.set([f,m],p)}let{values:a,vectors:u}=Ti(o),i=Array.from({length:e},(f,m)=>m);i.sort((f,m)=>a[m]-a[f]);let s=S.zeros([n],"float64");for(let f=0;f<n;f++){let m=a[i[f]];s.set([f],Math.sqrt(Math.max(0,m)))}let c=S.zeros([e,e],"float64");for(let f=0;f<e;f++)for(let m=0;m<e;m++)c.set([f,m],u[m][i[f]]);let l=S.zeros([t,t],"float64");for(let f=0;f<t;f++)for(let m=0;m<n;m++){let p=Number(s.get(m));if(p>1e-10){let y=0;for(let d=0;d<e;d++)y+=Number(r.get(f,d))*Number(c.get(m,d));l.set([f,m],y/p)}}if(t>n)for(let f=n;f<t;f++){let m=new Array(t).fill(0);m[f]=1;for(let y=0;y<f;y++){let d=0;for(let b=0;b<t;b++)d+=m[b]*Number(l.get(b,y));for(let b=0;b<t;b++)m[b]=m[b]-d*Number(l.get(b,y))}let p=0;for(let y=0;y<t;y++)p+=m[y]*m[y];if(p=Math.sqrt(p),p>1e-10)for(let y=0;y<t;y++)l.set([y,f],m[y]/p)}return{u:l,s,vt:c}}function Ti(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let i=0;i<t;i++){o.push([]);for(let s=0;s<t;s++)o[i].push(Number(r.get(i,s)))}let a=[];for(let i=0;i<t;i++){a.push([]);for(let s=0;s<t;s++)a[i].push(i===s?1:0)}for(let i=0;i<e;i++){let s=0,c=0,l=1;for(let h=0;h<t;h++)for(let N=h+1;N<t;N++)Math.abs(o[h][N])>s&&(s=Math.abs(o[h][N]),c=h,l=N);if(s<n)break;let f=o[c][c],m=o[l][l],p=o[c][l],y;Math.abs(f-m)<1e-15?y=Math.PI/4:y=.5*Math.atan2(2*p,m-f);let d=Math.cos(y),b=Math.sin(y),A=d*d*f+b*b*m-2*b*d*p,g=b*b*f+d*d*m+2*b*d*p;o[c][c]=A,o[l][l]=g,o[c][l]=0,o[l][c]=0;for(let h=0;h<t;h++)if(h!==c&&h!==l){let N=o[h][c],D=o[h][l];o[h][c]=d*N-b*D,o[c][h]=o[h][c],o[h][l]=b*N+d*D,o[l][h]=o[h][l]}for(let h=0;h<t;h++){let N=a[h][c],D=a[h][l];a[h][c]=d*N-b*D,a[h][l]=b*N+d*D}}let u=[];for(let i=0;i<t;i++)u.push(o[i][i]);return{values:u,vectors:a}}function Ei(r,t=!0,e=!0){let n=Zr(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,u=Math.min(o,a),i=S.zeros([o,u],"float64");for(let c=0;c<o;c++)for(let l=0;l<u;l++)i.set([c,l],Number(n.u.get(c,l)));let s=S.zeros([u,a],"float64");for(let c=0;c<u;c++)for(let l=0;l<a;l++)s.set([c,l],Number(n.vt.get(c,l)));return{u:i,s:n.s,vt:s}}return n}function Sm(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:u}=qo(r),i=a.data,s=u;for(let c=0;c<n;c++)s*=i[c*n+c];return s}function qo(r){let[t,e]=r.shape,n=t,o=e,a=S.zeros([n,o],"float64"),u=a.data,i=r.data;for(let l=0;l<n*o;l++)u[l]=Number(i[l]);let s=Array.from({length:n},(l,f)=>f),c=1;for(let l=0;l<Math.min(n,o);l++){let f=Math.abs(u[l*o+l]),m=l;for(let y=l+1;y<n;y++){let d=Math.abs(u[y*o+l]);d>f&&(f=d,m=y)}if(m!==l){for(let d=0;d<o;d++){let b=u[l*o+d];u[l*o+d]=u[m*o+d],u[m*o+d]=b}let y=s[l];s[l]=s[m],s[m]=y,c=-c}let p=u[l*o+l];if(Math.abs(p)>1e-15)for(let y=l+1;y<n;y++){let d=u[y*o+l]/p;u[y*o+l]=d;for(let b=l+1;b<o;b++)u[y*o+b]=u[y*o+b]-d*u[l*o+b]}}return{lu:a,piv:s,sign:c}}function ze(r){if(r.ndim!==2)throw new Error(`inv: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`inv: matrix must be square, got ${t}x${e}`);let n=t,{lu:o,piv:a}=qo(r),u=o.data,i=S.zeros([n,n],"float64"),s=i.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let f=0;f<n;f++){let m=a[f]===c?1:0;for(let p=0;p<f;p++)m-=u[f*n+p]*l[p];l[f]=m}for(let f=n-1;f>=0;f--){let m=l[f];for(let y=f+1;y<n;y++)m-=u[f*n+y]*s[y*n+c];let p=u[f*n+f];if(Math.abs(p)<1e-15)throw new Error("inv: singular matrix");s[f*n+c]=m/p}}return i}function pm(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=qo(r),u=o.data,i=t.data,s=new Float64Array(n);for(let m=0;m<n;m++)s[m]=Number(i[a[m]]);let c=new Float64Array(n);for(let m=0;m<n;m++){let p=s[m];for(let y=0;y<m;y++)p-=u[m*n+y]*c[y];c[m]=p}let l=S.zeros([n],"float64"),f=l.data;for(let m=n-1;m>=0;m--){let p=c[m];for(let d=m+1;d<n;d++)p-=u[m*n+d]*f[d];let y=u[m*n+m];if(Math.abs(y)<1e-15)throw new Error("solve: singular matrix");f[m]=p/y}return l}function Oi(r,t){if(r.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`solve: coefficient matrix must be square, got ${e}x${n}`);let o=e;if(t.ndim===1){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},)`);return pm(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],u=S.zeros([o,a],"float64");for(let i=0;i<a;i++){let s=S.zeros([o],"float64");for(let l=0;l<o;l++)s.set([l],Number(t.get(l,i)));let c=pm(r,s);for(let l=0;l<o;l++)u.set([l,i],Number(c.get(l)))}return u}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function wm(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:u,vt:i}=Zr(r),s=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,f=Number(u.get(0))*c,m=0;for(let g=0;g<s;g++)Number(u.get(g))>f&&m++;let p=t.ndim===1?cr(t,[t.size,1]):t,y=p.shape[1];if(p.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let d=S.zeros([o,y],"float64");for(let g=0;g<y;g++){let h=new Array(n).fill(0);for(let N=0;N<n;N++)for(let D=0;D<n;D++)h[N]+=Number(a.get(D,N))*Number(p.get(D,g));for(let N=0;N<o;N++){let D=0;for(let x=0;x<s;x++){let C=Number(u.get(x));C>f&&(D+=Number(i.get(x,N))*h[x]/C)}d.set([N,g],D)}}let b;if(n>o){b=S.zeros([y],"float64");for(let g=0;g<y;g++){let h=0;for(let N=0;N<n;N++){let D=0;for(let C=0;C<o;C++)D+=Number(r.get(N,C))*Number(d.get(C,g));let x=D-Number(p.get(N,g));h+=x*x}b.set([g],h)}}else b=S.zeros([0],"float64");return{x:t.ndim===1?cr(d,[o]):d,residuals:b,rank:m,s:u}}function Im(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s:i}=Zr(r),s=Math.min(e,n),c=Number(i.get(0)),l=Number(i.get(s-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=Kr(r,t),a=ze(r),u=Kr(a,t);return o*u}function zm(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let u=0;u<r.size;u++)if(Number(r.get(u))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=Zr(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let u=0;u<e.size;u++)Number(e.get(u))>o&&a++;return a}function _m(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=S.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,u=t;t<0&&(a=ze(r),u=-t);let i=S.zeros([o,o],"float64");for(let c=0;c<o;c++)i.set([c,c],1);let s=S.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)s.set([c,l],Number(a.get(c,l)));for(;u>0;)u&1&&(i=Ar(i,s)),s=Ar(s,s),u>>=1;return i}function Mm(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:u}=Zr(r),i=Math.min(e,n),c=Number(a.get(0))*t,l=S.zeros([n,e],"float64");for(let f=0;f<n;f++)for(let m=0;m<e;m++){let p=0;for(let y=0;y<i;y++){let d=Number(a.get(y));d>c&&(p+=Number(u.get(y,f))*Number(o.get(m,y))/d)}l.set([f,m],p)}return l}function Ui(r){if(r.ndim!==2)throw new Error(`eig: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`eig: matrix must be square, got ${t}x${e}`);let n=t,o=!0;r:for(let l=0;l<n;l++)for(let f=l+1;f<n;f++)if(Math.abs(Number(r.get(l,f))-Number(r.get(f,l)))>1e-10){o=!1;break r}if(o){let{values:l,vectors:f}=Ti(r),m=S.zeros([n],"float64"),p=S.zeros([n,n],"float64");for(let y=0;y<n;y++){m.set([y],l[y]);for(let d=0;d<n;d++)p.set([d,y],f[d][y])}return{w:m,v:p}}let{values:a,vectors:u,hasComplexEigenvalues:i}=hD(r);i&&console.warn("numpy-ts: eig() detected complex eigenvalues which cannot be represented. Results are real approximations and may be inaccurate. For symmetric matrices, use eigh() instead.");let s=S.zeros([n],"float64"),c=S.zeros([n,n],"float64");for(let l=0;l<n;l++){s.set([l],a[l]);for(let f=0;f<n;f++)c.set([f,l],u[f][l])}return{w:s,v:c}}function hD(r){let t=r.shape[0],e=1e3,n=1e-10,o=S.zeros([t,t],"float64");for(let c=0;c<t;c++)for(let l=0;l<t;l++)o.set([c,l],Number(r.get(c,l)));let a=S.zeros([t,t],"float64");for(let c=0;c<t;c++)a.set([c,c],1);for(let c=0;c<e;c++){let l=0;for(let y=0;y<t;y++)for(let d=0;d<t;d++)y!==d&&(l+=Number(o.get(y,d))**2);if(Math.sqrt(l)<n*t)break;let f=Bi(o,"reduced"),m=f.q,p=f.r;o=Ar(p,m),a=Ar(a,m)}let u=!1;for(let c=0;c<t-1;c++){let l=Math.abs(Number(o.get(c+1,c))),f=Math.abs(Number(o.get(c,c))),m=Math.abs(Number(o.get(c+1,c+1))),p=Math.max(f,m,1e-10);if(l/p>1e-6){u=!0;break}}let i=[];for(let c=0;c<t;c++)i.push(Number(o.get(c,c)));let s=[];for(let c=0;c<t;c++){s.push([]);for(let l=0;l<t;l++)s[c].push(Number(a.get(c,l)))}return{values:i,vectors:s,hasComplexEigenvalues:u}}function $i(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=S.zeros([o,o],"float64");for(let f=0;f<o;f++)for(let m=0;m<o;m++)t==="L"?f>=m&&(a.set([f,m],Number(r.get(f,m))),a.set([m,f],Number(r.get(f,m)))):m>=f&&(a.set([f,m],Number(r.get(f,m))),a.set([m,f],Number(r.get(f,m))));let{values:u,vectors:i}=Ti(a),s=Array.from({length:o},(f,m)=>m);s.sort((f,m)=>u[f]-u[m]);let c=S.zeros([o],"float64"),l=S.zeros([o,o],"float64");for(let f=0;f<o;f++){c.set([f],u[s[f]]);for(let m=0;m<o;m++)l.set([m,f],i[m][s[f]])}return{w:c,v:l}}function vm(r){let{w:t}=Ui(r);return t}function Fm(r,t="L"){let{w:e}=$i(r,t);return e}function Bm(r,t){let e=Jr(r),n=Jr(t),o=e.shape[0],a=n.shape[0];if(o!==a)throw new Error(`vdot: arrays must have same number of elements, got ${o} and ${a}`);if(B(r.dtype)||B(t.dtype)){let s=0,c=0;for(let l=0;l<o;l++){let f=e.get(l),m=n.get(l),p=f instanceof U?f.re:Number(f),y=f instanceof U?-f.im:0,d=m instanceof U?m.re:Number(m),b=m instanceof U?m.im:0;s+=p*d+y*b,c+=p*b-y*d}return Math.abs(c)<1e-15?s:new U(s,c)}let i=0;for(let s=0;s<o;s++){let c=e.get(s),l=n.get(s);typeof c=="bigint"&&typeof l=="bigint"?i=(typeof i=="bigint"?i:BigInt(i))+c*l:i=(typeof i=="bigint"?Number(i):i)+Number(c)*Number(l)}return i}function Tm(r,t,e=-1){let n=r.ndim,o=t.ndim,a=e<0?n+e:e,u=e<0?o+e:e;if(a<0||a>=n)throw new Error(`vecdot: axis ${e} out of bounds for array with ${n} dimensions`);if(u<0||u>=o)throw new Error(`vecdot: axis ${e} out of bounds for array with ${o} dimensions`);let i=r.shape[a],s=t.shape[u];if(i!==s)throw new Error(`vecdot: axis dimensions must match, got ${i} and ${s}`);if(n===1&&o===1)return ft(r,t);let c=[...r.shape.slice(0,a),...r.shape.slice(a+1)],l=[...t.shape.slice(0,u),...t.shape.slice(u+1)],f=i,m=B(r.dtype)||B(t.dtype),p=or(r.dtype,t.dtype),y=c.length>l.length?c:l;if(y.length===0){let A=m?new U(0,0):0;for(let g=0;g<f;g++){let h=r.get(g),N=t.get(g),D=kr(h,N);if(A instanceof U||D instanceof U){let x=A instanceof U?A:new U(Number(A),0),C=D instanceof U?D:new U(Number(D),0);A=x.add(C)}else typeof A=="bigint"||typeof D=="bigint"?A=BigInt(A)+BigInt(D):A=A+D}return A}let d=S.zeros(y,p),b=y.reduce((A,g)=>A*g,1);for(let A=0;A<b;A++){let g=[],h=A;for(let C=y.length-1;C>=0;C--)g.unshift(h%y[C]),h=Math.floor(h/y[C]);let N=[...g.slice(0,a),0,...g.slice(a)],D=[...g.slice(0,u),0,...g.slice(u)],x=m?new U(0,0):0;for(let C=0;C<f;C++){N[a]=C,D[u]=C;let w=r.get(...N),_=t.get(...D),I=kr(w,_);if(x instanceof U||I instanceof U){let M=x instanceof U?x:new U(Number(x),0),T=I instanceof U?I:new U(Number(I),0);x=M.add(T)}else typeof x=="bigint"||typeof I=="bigint"?x=BigInt(x)+BigInt(I):x=x+I}d.set(g,x)}return d}function Em(r){if(r.ndim<2)throw new Error(`matrix_transpose: input must have at least 2 dimensions, got ${r.ndim}D`);let t=Array.from({length:r.ndim},(n,o)=>o),e=t.length-1;return t[e]=e-1,t[e-1]=e,Qr(r,t)}function Om(r,t){return Qr(r,t)}function Um(r,t){if(r.ndim<2)throw new Error(`matvec: x1 must have at least 2 dimensions, got ${r.ndim}D`);if(t.ndim<1)throw new Error(`matvec: x2 must have at least 1 dimension, got ${t.ndim}D`);let e=r.shape[r.ndim-2],n=r.shape[r.ndim-1],o=t.shape[t.ndim-1];if(n!==o)throw new Error(`matvec: last axis of x1 (${n}) must match last axis of x2 (${o})`);if(r.ndim===2&&t.ndim===1)return ft(r,t);let a=r.shape.slice(0,-2),u=t.shape.slice(0,-1),i=Math.max(a.length,u.length),s=[...Array(i-a.length).fill(1),...a],c=[...Array(i-u.length).fill(1),...u],l=[];for(let b=0;b<i;b++){let A=s[b],g=c[b];if(A!==1&&g!==1&&A!==g)throw new Error(`matvec: batch dimensions not broadcastable: ${a} vs ${u}`);l.push(Math.max(A,g))}let f=[...l,e],m=or(r.dtype,t.dtype),p=S.zeros(f,m),y=B(m),d=l.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=[],g=b;for(let D=l.length-1;D>=0;D--)A.unshift(g%l[D]),g=Math.floor(g/l[D]);let h=A.slice(-(a.length||1)).map((D,x)=>(a[x]??1)===1?0:D),N=A.slice(-(u.length||1)).map((D,x)=>(u[x]??1)===1?0:D);for(let D=0;D<e;D++){let x=y?new U(0,0):0;for(let w=0;w<n;w++){let _=[...h,D,w],I=[...N,w],M=r.get(..._),T=t.get(...I),O=kr(M,T);if(x instanceof U||O instanceof U){let $=x instanceof U?x:new U(Number(x),0),k=O instanceof U?O:new U(Number(O),0);x=$.add(k)}else typeof x=="bigint"||typeof O=="bigint"?x=BigInt(x)+BigInt(O):x=x+O}let C=[...A,D];p.set(C,x)}}return p}function $m(r,t){if(r.ndim<1)throw new Error(`vecmat: x1 must have at least 1 dimension, got ${r.ndim}D`);if(t.ndim<2)throw new Error(`vecmat: x2 must have at least 2 dimensions, got ${t.ndim}D`);let e=r.shape[r.ndim-1],n=t.shape[t.ndim-2],o=t.shape[t.ndim-1];if(e!==n)throw new Error(`vecmat: last axis of x1 (${e}) must match second-to-last axis of x2 (${n})`);if(r.ndim===1&&t.ndim===2)return ft(r,t);let a=r.shape.slice(0,-1),u=t.shape.slice(0,-2),i=Math.max(a.length,u.length),s=[...Array(i-a.length).fill(1),...a],c=[...Array(i-u.length).fill(1),...u],l=[];for(let b=0;b<i;b++){let A=s[b],g=c[b];if(A!==1&&g!==1&&A!==g)throw new Error(`vecmat: batch dimensions not broadcastable: ${a} vs ${u}`);l.push(Math.max(A,g))}let f=[...l,o],m=or(r.dtype,t.dtype),p=S.zeros(f,m),y=B(m),d=l.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=[],g=b;for(let D=l.length-1;D>=0;D--)A.unshift(g%l[D]),g=Math.floor(g/l[D]);let h=A.slice(-(a.length||1)).map((D,x)=>(a[x]??1)===1?0:D),N=A.slice(-(u.length||1)).map((D,x)=>(u[x]??1)===1?0:D);for(let D=0;D<o;D++){let x=y?new U(0,0):0;for(let w=0;w<e;w++){let _=[...h,w],I=[...N,w,D],M=r.get(..._),T=t.get(...I),O=kr(M,T);if(x instanceof U||O instanceof U){let $=x instanceof U?x:new U(Number(x),0),k=O instanceof U?O:new U(Number(O),0);x=$.add(k)}else typeof x=="bigint"||typeof O=="bigint"?x=BigInt(x)+BigInt(O):x=x+O}let C=[...A,D];p.set(C,x)}}return p}function km(r){if(r.ndim!==2)throw new Error(`slogdet: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`slogdet: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return{sign:1,logabsdet:0};let{lu:o,sign:a}=qo(r),u=o.data,i=0,s=a;for(let c=0;c<n;c++){let l=u[c*n+c];if(l===0)return{sign:0,logabsdet:-1/0};l<0&&(s=-s),i+=Math.log(Math.abs(l))}return{sign:s,logabsdet:i}}function Rm(r){return Ei(r,!0,!1)}function qm(r){if(r.length<2)throw new Error("multi_dot: need at least 2 arrays");if(r.length===2)return Ar(r[0],r[1]);let t=r[0];for(let e=1;e<r.length;e++)t=Ar(t,r[e]);return t}function Vm(r,t=2){if(t<=0)throw new Error(`tensorinv: ind must be positive, got ${t}`);let e=r.shape,n=r.ndim;if(n<t)throw new Error(`tensorinv: array has ${n} dimensions, ind=${t} is too large`);let o=1;for(let c=0;c<t;c++)o*=e[c];let a=1;for(let c=t;c<n;c++)a*=e[c];if(o!==a)throw new Error(`tensorinv: product of first ${t} dimensions (${o}) must equal product of remaining dimensions (${a})`);let u=cr(r,[o,a]),i=ze(u),s=[...e.slice(t),...e.slice(0,t)];return cr(i,s)}function Pm(r,t,e){let n=r.shape,o=t.shape,a=r.ndim,u=t.ndim,i;e==null?i=Array.from({length:u},(h,N)=>a-u+N):i=e.map(h=>h<0?a+h:h);let s=[];for(let h=0;h<a;h++)i.includes(h)||s.push(h);let c=[...s,...i],l=Qr(r,c),m=i.map(h=>n[h]).reduce((h,N)=>h*N,1),y=s.map(h=>n[h]).reduce((h,N)=>h*N,1),d=o.reduce((h,N)=>h*N,1);if(m!==d)throw new Error(`tensorsolve: dimensions don't match - sum dimensions product (${m}) != b total elements (${d})`);if(y!==m)throw new Error(`tensorsolve: non-square problem - other dimensions product (${y}) != sum dimensions product (${m})`);let b=cr(l,[y,m]),A=cr(t,[m]),g=Oi(b,A);return cr(g,[...o])}function jm(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=hm(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(m=>m.trim());if(a.length!==t.length)throw new Error(`einsum_path: expected ${a.length} operands, got ${t.length}`);let u=t.map(m=>Array.isArray(m)?m:Array.from(m.shape)),i=new Map;for(let m=0;m<t.length;m++){let p=a[m],y=u[m];if(p.length!==y.length)throw new Error(`einsum_path: operand ${m} has ${y.length} dimensions but subscript '${p}' has ${p.length} indices`);for(let d=0;d<p.length;d++){let b=p[d],A=y[d];if(i.has(b)&&i.get(b)!==A)throw new Error(`einsum_path: size mismatch for index '${b}': ${i.get(b)} vs ${A}`);i.set(b,A)}}if(t.length===1){let m=[[0]];return[m,vi(r,u,m,i)]}if(t.length===2){let m=[[0,1]];return[m,vi(r,u,m,i)]}let s=[],c=[...a],l=[...u],f=t.map((m,p)=>p);for(;c.length>1;){let m=0,p=1,y=1/0;for(let A=0;A<c.length;A++)for(let g=A+1;g<c.length;g++){let h=ND(c[A],c[g],l[A],l[g],o,i);h<y&&(y=h,m=A,p=g)}s.push([f[m],f[p]]);let[d,b]=DD(c[m],c[p],l[m],l[p],o,i);c.splice(p,1),c.splice(m,1),l.splice(p,1),l.splice(m,1),f.splice(p,1),f.splice(m,1),c.push(d),l.push(b),f.push(-1)}return[s,vi(r,u,s,i)]}function ND(r,t,e,n,o,a){let u=new Set(r),i=new Set(t),s=1;for(let c of u)s*=a.get(c)||1;for(let c of i)u.has(c)||(s*=a.get(c)||1);return s}function DD(r,t,e,n,o,a){let u=new Set([...r,...t]),i=new Map;for(let f of r)i.set(f,(i.get(f)||0)+1);for(let f of t)i.set(f,(i.get(f)||0)+1);let s=new Set(o),c=[];for(let f of u)(s.has(f)||i.get(f)===1)&&c.push(f);c.sort();let l=c.map(f=>a.get(f));return[c.join(""),l]}function vi(r,t,e,n){let o=[];o.push(" Complete contraction: "+r),o.push(" Operand shapes: "+t.map(u=>`(${u.join(", ")})`).join(", ")),o.push(" Contraction path: "+JSON.stringify(e));let a=0;for(let u of t)a+=u.reduce((i,s)=>i*s,1);return o.push(" Estimated FLOPS: ~"+a.toExponential(2)),o.join(`
5
- `)}function mt(r,t){let e=ft(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:v(e)}function Hr(r){return ym(z(r))}function pt(r,t=0,e=0,n=1){return v(Am(z(r),t,e,n))}function ki(r,t){return v(Nm(z(r),z(t)))}function yt(r,t){return Nr(Qr(z(r),t),r)}function dt(r,t){let e=dm(z(r),z(t));return typeof e=="number"||typeof e=="bigint"||e instanceof U?e:v(e)}function bt(r,t){return v(Fi(z(r),z(t)))}function At(r,t,e=2){let n=bm(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Vo(r,...t){let e=t.map(o=>z(o)),n=gm(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Po(r,...t){let e=t.map(n=>z(n));return jm(r,...e)}function jo(r,t){return Bm(z(r),z(t))}function Lo(r,t,e=-1){let n=Tm(z(r),z(t),e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Wo(r){return Nr(Em(z(r)),r)}function Go(r,t){return Nr(Om(z(r),t),r)}function Ri(r,t){return v(Um(z(r),z(t)))}function qi(r,t){return v($m(z(r),z(t)))}function Yo(r,t,e=-1,n=-1,o=-1,a){let u=Dm(z(r),z(t),e,n,o,a);return typeof u=="number"||u instanceof U?u:v(u)}function _e(r,t){return v(Ar(z(r),z(t)))}var Zo={matmul:(r,t)=>v(Ar(z(r),z(t))),dot:(r,t)=>mt(r,t),det:r=>Sm(z(r)),inv:r=>v(ze(z(r))),solve:(r,t)=>v(Oi(z(r),z(t))),lstsq:(r,t,e)=>{let n=wm(z(r),z(t),e);return{x:v(n.x),residuals:v(n.residuals),rank:n.rank,s:v(n.s)}},norm:(r,t,e,n)=>{let o=xm(z(r),t,e,n);return typeof o=="number"?o:v(o)},cond:(r,t)=>Im(z(r),t),matrix_rank:(r,t)=>zm(z(r),t),matrix_power:(r,t)=>v(_m(z(r),t)),pinv:(r,t)=>v(Mm(z(r),t)),qr:(r,t)=>{let e=Bi(z(r),t);return"h"in e&&"tau"in e?{h:v(e.h),tau:v(e.tau)}:"q"in e&&"r"in e?{q:v(e.q),r:v(e.r)}:v(e)},cholesky:(r,t)=>v(Cm(z(r),t)),svd:(r,t,e)=>{let n=Ei(z(r),t,e);return"u"in n&&"s"in n&&"vt"in n?{u:v(n.u),s:v(n.s),vt:v(n.vt)}:v(n)},eig:r=>{let t=Ui(z(r));return{w:v(t.w),v:v(t.v)}},eigh:(r,t)=>{let e=$i(z(r),t);return{w:v(e.w),v:v(e.v)}},eigvals:r=>v(vm(z(r))),eigvalsh:(r,t)=>v(Fm(z(r),t)),slogdet:r=>km(z(r)),svdvals:r=>v(Rm(z(r))),multi_dot:r=>v(qm(r.map(t=>z(t)))),tensorinv:(r,t)=>v(Vm(z(r),t)),tensorsolve:(r,t,e)=>v(Pm(z(r),z(t),e)),vector_norm:(r,t,e,n)=>{let o=lt(z(r),t,e,n);return typeof o=="number"?o:v(o)},matrix_norm:(r,t,e)=>{let n=Kr(z(r),t,e);return typeof n=="number"?n:v(n)},cross:(r,t,e,n,o,a)=>Yo(r,t,e,n,o,a),matrix_transpose:r=>Wo(r),permute_dims:(r,t)=>Go(r,t),trace:r=>Hr(r),diagonal:(r,t,e,n)=>pt(r,t,e,n),outer:(r,t)=>bt(r,t),inner:(r,t)=>dt(r,t),tensordot:(r,t,e)=>At(r,t,e),vecdot:(r,t,e)=>Lo(r,t,e),transpose:(r,t)=>yt(r,t)};function Me(r,t){return v(cr(z(r),t))}function Br(r){return v(Jr(z(r)))}function ve(r){return v(ct(z(r)))}function Fe(r,t){return Nr(Ii(z(r),t),r)}function Be(r,t){return Nr(we(z(r),t),r)}function Te(r,t,e){return Nr(Lf(z(r),t,e),r)}function Ee(r,t,e){return Nr(zi(z(r),t,e),r)}function Vi(r,t,e=0){return Nr(nm(z(r),t,e),r)}function gt(r,t=0){return v(Yr(r.map(e=>z(e)),t))}function Pi(r,t=0){return v(Wf(r.map(e=>z(e)),t))}function Xo(r){return v(Gf(r.map(t=>z(t))))}function ji(r){return v(_i(r.map(t=>z(t))))}function Li(r){return v(Yf(r.map(t=>z(t))))}function Wi(r){return v(am(r.map(t=>z(t))))}var Jo=Xo;function Gi(r){return v(fm(r.map(t=>z(t))))}function Ko(r,t,e=0){return st(Zf(z(r),t,e),r)}function Qo(r,t,e=0){return st(Ie(z(r),t,e),r)}function Ho(r,t){return st(Jf(z(r),t),r)}function ra(r,t){return st(Kf(z(r),t),r)}function ta(r,t){return st(om(z(r),t),r)}function Yi(r,t=0){return $r(lm(z(r),t))}function Zi(r,t){return v(Qf(z(r),t))}function Oe(r,t,e){return v(Hf(z(r),t,e))}function Ue(r,t){return v(rm(z(r),t))}function Xi(r){return Ue(r,1)}function Ji(r){return Ue(r,0)}function Ki(r,t=1,e=[0,1]){return v(tm(z(r),t,e))}function Qi(r,t,e){return v(em(z(r),t,e))}function $e(r,t){return v(sm(z(r),t))}function ea(...r){let t=im(r.map(e=>z(e)));return t.length===1?v(t[0]):$r(t)}function na(...r){let t=um(r.map(e=>z(e)));return t.length===1?v(t[0]):$r(t)}function oa(...r){let t=cm(r.map(e=>z(e)));return t.length===1?v(t[0]):$r(t)}function xr(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function Z(r,t,e){let n=e;for(let o=0;o<r.length;o++)n+=r[o]*t[o];return n}function G(r,t,e,n){let o=n.length,a=new Array(o),u=Array.from(n).filter((s,c)=>c!==t),i=r;for(let s=u.length-1;s>=0;s--)a[s>=t?s+1:s]=i%u[s],i=Math.floor(i/u[s]);return a[t]=e,a}function ke(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0)if(B(n)){let A=0,g=0;if(l){let h=i;for(let N=0;N<u;N++)A+=h[(s+N)*2],g+=h[(s+N)*2+1]}else for(let h=0;h<u;h++){let N=r.iget(h);A+=N.re,g+=N.im}return new U(A,g)}else if(E(n)){let A=BigInt(0);if(l){let g=i;for(let h=0;h<u;h++)A+=g[s+h]}else for(let g=0;g<u;g++)A+=r.iget(g);return Number(A)}else{let A=0;if(l)if(s===0)for(let g=0;g<u;g++)A+=Number(i[g]);else for(let g=0;g<u;g++)A+=Number(i[s+g]);else for(let g=0;g<u;g++)A+=Number(r.iget(g));return A}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return ke(r);let p=S.zeros(m,n),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(B(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=0,D=0;for(let x=0;x<d;x++){let C=G(h,f,x,o),w=Z(C,c,s);N+=A[w*2],D+=A[w*2+1]}g[h*2]=N,g[h*2+1]=D}}else if(E(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=BigInt(0);for(let D=0;D<d;D++){let x=G(h,f,D,o),C=Z(x,c,s);N+=A[C]}g[h]=N}}else for(let A=0;A<b;A++){let g=0;for(let h=0;h<d;h++){let N=G(A,f,h,o),D=Z(N,c,s);g+=Number(i[D])}y[A]=g}if(e){let A=[...o];return A[f]=1,S.fromData(y,A,n)}return p}function la(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let m=ke(r);return m instanceof U?new U(m.re/r.size,m.im/r.size):m/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let u=ke(r,t,e);if(typeof u=="number")return u/o[a];if(u instanceof U)return new U(u.re/o[a],u.im/o[a]);let i=o[a],s=n;B(n)?s=n:(E(n)||n.startsWith("int")||n.startsWith("uint"))&&(s="float64");let c=S.zeros(Array.from(u.shape),s),l=c.data,f=u.data;if(B(n)){let m=f,p=l,y=u.size;for(let d=0;d<y;d++)p[d*2]=m[d*2]/i,p[d*2+1]=m[d*2+1]/i}else if(E(n)){let m=f;for(let p=0;p<l.length;p++)l[p]=Number(m[p])/i}else for(let m=0;m<l.length;m++)l[m]=Number(f[m])/i;return c}function ht(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides;if(B(n)){let b=i;if(t===void 0){if(u===0)throw new Error("max of empty array");let C=b[s*2],w=b[s*2+1];for(let _=1;_<u;_++){let I=b[(s+_)*2],M=b[(s+_)*2+1];if(isNaN(I)||isNaN(M))return new U(NaN,NaN);(I>C||I===C&&M>w)&&(C=I,w=M)}return isNaN(C)||isNaN(w)?new U(NaN,NaN):new U(C,w)}let A=t;if(A<0&&(A=a+A),A<0||A>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((C,w)=>w!==A);if(g.length===0)return ht(r);let h=S.zeros(g,n),N=h.data,D=o[A],x=g.reduce((C,w)=>C*w,1);for(let C=0;C<x;C++){let w=G(C,A,0,o),_=Z(w,c,s),I=b[_*2],M=b[_*2+1];for(let T=1;T<D;T++){let O=G(C,A,T,o),$=Z(O,c,s),k=b[$*2],V=b[$*2+1];if(isNaN(k)||isNaN(V)){I=NaN,M=NaN;break}(k>I||k===I&&V>M)&&(I=k,M=V)}N[C*2]=I,N[C*2+1]=M}if(e){let C=[...o];return C[A]=1,S.fromData(N,C,n)}return h}if(t===void 0){if(u===0)throw new Error("max of empty array");if(r.isCContiguous){let b=i[s];if(s===0)for(let A=1;A<u;A++)i[A]>b&&(b=i[A]);else for(let A=1;A<u;A++)i[s+A]>b&&(b=i[s+A]);return Number(b)}else{let b=r.iget(0);for(let A=1;A<u;A++){let g=r.iget(A);g>b&&(b=g)}return Number(b)}}let l=t;if(l<0&&(l=a+l),l<0||l>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let f=Array.from(o).filter((b,A)=>A!==l);if(f.length===0)return ht(r);let m=S.zeros(f,n),p=m.data,y=o[l],d=f.reduce((b,A)=>b*A,1);if(E(n)){let b=i,A=p;for(let g=0;g<d;g++){let h=G(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=G(g,l,x,o),w=Z(C,c,s),_=b[w];_>D&&(D=_)}A[g]=D}}else for(let b=0;b<d;b++){let A=-1/0;for(let g=0;g<y;g++){let h=G(b,l,g,o),N=Z(h,c,s),D=Number(i[N]);D>A&&(A=D)}p[b]=A}if(e){let b=[...o];return b[l]=1,S.fromData(p,b,n)}return m}function Hi(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0)if(B(n)){let A=1,g=0;if(l){let h=i;for(let N=0;N<u;N++){let D=h[(s+N)*2],x=h[(s+N)*2+1],C=A*D-g*x,w=A*x+g*D;A=C,g=w}}else for(let h=0;h<u;h++){let N=r.iget(h),D=N.re,x=N.im,C=A*D-g*x,w=A*x+g*D;A=C,g=w}return new U(A,g)}else if(E(n)){let A=BigInt(1);if(l){let g=i;for(let h=0;h<u;h++)A*=g[s+h]}else for(let g=0;g<u;g++)A*=r.iget(g);return Number(A)}else{let A=1;if(l)if(s===0)for(let g=0;g<u;g++)A*=Number(i[g]);else for(let g=0;g<u;g++)A*=Number(i[s+g]);else for(let g=0;g<u;g++)A*=Number(r.iget(g));return A}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return Hi(r);let p=S.zeros(m,n),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(B(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=1,D=0;for(let x=0;x<d;x++){let C=G(h,f,x,o),w=Z(C,c,s),_=A[w*2],I=A[w*2+1],M=N*_-D*I,T=N*I+D*_;N=M,D=T}g[h*2]=N,g[h*2+1]=D}}else if(E(n)){let A=i,g=y;for(let h=0;h<b;h++){let N=BigInt(1);for(let D=0;D<d;D++){let x=G(h,f,D,o),C=Z(x,c,s);N*=A[C]}g[h]=N}}else for(let A=0;A<b;A++){let g=1;for(let h=0;h<d;h++){let N=G(A,f,h,o),D=Z(N,c,s);g*=Number(i[D])}y[A]=g}if(e){let A=[...o];return A[f]=1,S.fromData(y,A,n)}return p}function Nt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides;if(B(n)){let b=i;if(t===void 0){if(u===0)throw new Error("min of empty array");let C=b[s*2],w=b[s*2+1];for(let _=1;_<u;_++){let I=b[(s+_)*2],M=b[(s+_)*2+1];if(isNaN(I)||isNaN(M))return new U(NaN,NaN);(I<C||I===C&&M<w)&&(C=I,w=M)}return isNaN(C)||isNaN(w)?new U(NaN,NaN):new U(C,w)}let A=t;if(A<0&&(A=a+A),A<0||A>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((C,w)=>w!==A);if(g.length===0)return Nt(r);let h=S.zeros(g,n),N=h.data,D=o[A],x=g.reduce((C,w)=>C*w,1);for(let C=0;C<x;C++){let w=G(C,A,0,o),_=Z(w,c,s),I=b[_*2],M=b[_*2+1];for(let T=1;T<D;T++){let O=G(C,A,T,o),$=Z(O,c,s),k=b[$*2],V=b[$*2+1];if(isNaN(k)||isNaN(V)){I=NaN,M=NaN;break}(k<I||k===I&&V<M)&&(I=k,M=V)}N[C*2]=I,N[C*2+1]=M}if(e){let C=[...o];return C[A]=1,S.fromData(N,C,n)}return h}if(t===void 0){if(u===0)throw new Error("min of empty array");if(r.isCContiguous){let b=i[s];if(s===0)for(let A=1;A<u;A++)i[A]<b&&(b=i[A]);else for(let A=1;A<u;A++)i[s+A]<b&&(b=i[s+A]);return Number(b)}else{let b=r.iget(0);for(let A=1;A<u;A++){let g=r.iget(A);g<b&&(b=g)}return Number(b)}}let l=t;if(l<0&&(l=a+l),l<0||l>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let f=Array.from(o).filter((b,A)=>A!==l);if(f.length===0)return Nt(r);let m=S.zeros(f,n),p=m.data,y=o[l],d=f.reduce((b,A)=>b*A,1);if(E(n)){let b=i,A=p;for(let g=0;g<d;g++){let h=G(g,l,0,o),N=Z(h,c,s),D=b[N];for(let x=1;x<y;x++){let C=G(g,l,x,o),w=Z(C,c,s),_=b[w];_<D&&(D=_)}A[g]=D}}else for(let b=0;b<d;b++){let A=1/0;for(let g=0;g<y;g++){let h=G(b,l,g,o),N=Z(h,c,s),D=Number(i[N]);D<A&&(A=D)}p[b]=A}if(e){let b=[...o];return b[l]=1,S.fromData(p,b,n)}return m}function zr(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function ru(r,t){let e=r.dtype,n=B(e),o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0){if(u===0)throw new Error("argmin of empty array");if(n)if(l){let A=i,g=A[s*2],h=A[s*2+1],N=0;for(let D=1;D<u;D++){let x=A[(s+D)*2],C=A[(s+D)*2+1];zr(x,C,g,h)<0&&(g=x,h=C,N=D)}return N}else{let A=r.iget(0),g=A.re,h=A.im,N=0;for(let D=1;D<u;D++){let x=r.iget(D);zr(x.re,x.im,g,h)<0&&(g=x.re,h=x.im,N=D)}return N}if(l){let A=i[s],g=0;if(s===0)for(let h=1;h<u;h++)i[h]<A&&(A=i[h],g=h);else for(let h=1;h<u;h++)i[s+h]<A&&(A=i[s+h],g=h);return g}else{let A=r.iget(0),g=0;for(let h=1;h<u;h++){let N=r.iget(h);N<A&&(A=N,g=h)}return g}}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return ru(r);let p=S.zeros(m,"int32"),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(n){let A=i;for(let g=0;g<b;g++){let h=G(g,f,0,o),N=Z(h,c,s),D=A[N*2],x=A[N*2+1],C=0;for(let w=1;w<d;w++){let _=G(g,f,w,o),I=Z(_,c,s),M=A[I*2],T=A[I*2+1];zr(M,T,D,x)<0&&(D=M,x=T,C=w)}y[g]=C}}else if(E(e)){let A=i;for(let g=0;g<b;g++){let h=G(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=G(g,f,C,o),_=Z(w,c,s),I=A[_];I<D&&(D=I,x=C)}y[g]=x}}else for(let A=0;A<b;A++){let g=1/0,h=0;for(let N=0;N<d;N++){let D=G(A,f,N,o),x=Z(D,c,s),C=Number(i[x]);C<g&&(g=C,h=N)}y[A]=h}return p}function tu(r,t){let e=r.dtype,n=B(e),o=r.shape,a=o.length,u=r.size,i=r.data,s=r.offset,c=r.strides,l=r.isCContiguous;if(t===void 0){if(u===0)throw new Error("argmax of empty array");if(n)if(l){let A=i,g=A[s*2],h=A[s*2+1],N=0;for(let D=1;D<u;D++){let x=A[(s+D)*2],C=A[(s+D)*2+1];zr(x,C,g,h)>0&&(g=x,h=C,N=D)}return N}else{let A=r.iget(0),g=A.re,h=A.im,N=0;for(let D=1;D<u;D++){let x=r.iget(D);zr(x.re,x.im,g,h)>0&&(g=x.re,h=x.im,N=D)}return N}if(l){let A=i[s],g=0;for(let h=1;h<u;h++)i[s+h]>A&&(A=i[s+h],g=h);return g}else{let A=r.iget(0),g=0;for(let h=1;h<u;h++){let N=r.iget(h);N>A&&(A=N,g=h)}return g}}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let m=Array.from(o).filter((A,g)=>g!==f);if(m.length===0)return tu(r);let p=S.zeros(m,"int32"),y=p.data,d=o[f],b=m.reduce((A,g)=>A*g,1);if(n){let A=i;for(let g=0;g<b;g++){let h=G(g,f,0,o),N=Z(h,c,s),D=A[N*2],x=A[N*2+1],C=0;for(let w=1;w<d;w++){let _=G(g,f,w,o),I=Z(_,c,s),M=A[I*2],T=A[I*2+1];zr(M,T,D,x)>0&&(D=M,x=T,C=w)}y[g]=C}}else if(E(e)){let A=i;for(let g=0;g<b;g++){let h=G(g,f,0,o),N=Z(h,c,s),D=A[N],x=0;for(let C=1;C<d;C++){let w=G(g,f,C,o),_=Z(w,c,s),I=A[_];I>D&&(D=I,x=C)}y[g]=x}}else for(let A=0;A<b;A++){let g=-1/0,h=0;for(let N=0;N<d;N++){let D=G(A,f,N,o),x=Z(D,c,s),C=Number(i[x]);C>g&&(g=C,h=N)}y[A]=h}return p}function eu(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.size,s=r.data,c=r.offset,l=r.strides,f=la(r,t,n),m=r.isCContiguous;if(t===void 0){if(B(o)){let C=f,w=0;if(m){let _=s;for(let I=0;I<i;I++){let M=_[(c+I)*2],T=_[(c+I)*2+1],O=M-C.re,$=T-C.im;w+=O*O+$*$}}else for(let _=0;_<i;_++){let I=r.iget(_),M=I.re-C.re,T=I.im-C.im;w+=M*M+T*T}return w/(i-e)}let D=f,x=0;if(m)for(let C=0;C<i;C++){let w=Number(s[c+C])-D;x+=w*w}else for(let C=0;C<i;C++){let w=Number(r.iget(C))-D;x+=w*w}return x/(i-e)}let p=t;if(p<0&&(p=u+p),p<0||p>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let y=a[p],d=f,b=d.data,A=n?d.shape:Array.from(a).filter((D,x)=>x!==p),g=S.zeros(Array.from(A),"float64"),h=g.data,N=A.reduce((D,x)=>D*x,1);if(B(o)){let D=s,x=b;for(let C=0;C<N;C++){let w=0,_=x[C*2],I=x[C*2+1];for(let M=0;M<y;M++){let T=G(C,p,M,a),O=Z(T,l,c),$=D[O*2],k=D[O*2+1],V=$-_,j=k-I;w+=V*V+j*j}h[C]=w/(y-e)}}else for(let D=0;D<N;D++){let x=0,C=Number(b[D]);for(let w=0;w<y;w++){let _=G(D,p,w,a),I=Z(_,l,c),M=Number(s[I])-C;x+=M*M}h[D]=x/(y-e)}return g}function Lm(r,t,e=0,n=!1){let o=eu(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=S.zeros(Array.from(o.shape),"float64"),u=o.data,i=a.data;for(let s=0;s<u.length;s++)i[s]=Math.sqrt(Number(u[s]));return a}function nu(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data,i=r.offset,s=r.strides,c=r.isCContiguous;if(t===void 0){if(c){for(let b=0;b<a;b++)if(!u[i+b])return!1}else for(let b=0;b<a;b++)if(!r.iget(b))return!1;return!0}let l=t;if(l<0&&(l=o+l),l<0||l>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let f=Array.from(n).filter((b,A)=>A!==l);if(f.length===0)return nu(r);let m=S.zeros(f,"bool"),p=m.data,y=n[l],d=f.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=!0;for(let g=0;g<y;g++){let h=G(b,l,g,n),N=Z(h,s,i);if(!u[N]){A=!1;break}}p[b]=A?1:0}if(e){let b=[...n];return b[l]=1,S.fromData(p,b,"bool")}return m}function ou(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,u=r.data,i=r.offset,s=r.strides,c=r.isCContiguous;if(t===void 0){if(c){for(let b=0;b<a;b++)if(u[i+b])return!0}else for(let b=0;b<a;b++)if(r.iget(b))return!0;return!1}let l=t;if(l<0&&(l=o+l),l<0||l>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let f=Array.from(n).filter((b,A)=>A!==l);if(f.length===0)return ou(r);let m=S.zeros(f,"bool"),p=m.data,y=n[l],d=f.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=!1;for(let g=0;g<y;g++){let h=G(b,l,g,n),N=Z(h,s,i);if(u[N]){A=!0;break}}p[b]=A?1:0}if(e){let b=[...n];return b[l]=1,S.fromData(p,b,"bool")}return m}function Wm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides,s=r.isCContiguous;if(B(e)){let b=a,A=r.size;if(t===void 0){let I=S.zeros([A],e),M=I.data,T=0,O=0;if(s)for(let $=0;$<A;$++)T+=b[(u+$)*2],O+=b[(u+$)*2+1],M[$*2]=T,M[$*2+1]=O;else for(let $=0;$<A;$++){let k=r.iget($);T+=k.re,O+=k.im,M[$*2]=T,M[$*2+1]=O}return I}let g=t;if(g<0&&(g=o+g),g<0||g>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let h=S.zeros([...n],e),N=h.data,D=n[g],x=[],C=1;for(let I=o-1;I>=0;I--)x.unshift(C),C*=n[I];let w=r.size,_=x[g];for(let I=0;I<w;I++){let M=Math.floor(I/_)%D,T=new Array(o),O=I;for(let k=o-1;k>=0;k--)T[k]=O%n[k],O=Math.floor(O/n[k]);let $=Z(T,i,u);M===0?(N[I*2]=b[$*2],N[I*2+1]=b[$*2+1]):(N[I*2]=N[(I-_)*2]+b[$*2],N[I*2+1]=N[(I-_)*2+1]+b[$*2+1])}return h}if(t===void 0){let b=r.size,A=new Float64Array(b),g=0;if(s)for(let h=0;h<b;h++)g+=Number(a[u+h]),A[h]=g;else for(let h=0;h<b;h++)g+=Number(r.iget(h)),A[h]=g;return S.fromData(A,[b],"float64")}let c=t;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let l=new Float64Array(r.size),f=n[c],m=[],p=1;for(let b=o-1;b>=0;b--)m.unshift(p),p*=n[b];let y=r.size,d=m[c];for(let b=0;b<y;b++){let A=Math.floor(b/d)%f,g=new Array(o),h=b;for(let D=o-1;D>=0;D--)g[D]=h%n[D],h=Math.floor(h/n[D]);let N=Z(g,i,u);A===0?l[b]=Number(a[N]):l[b]=l[b-d]+Number(a[N])}return S.fromData(l,[...n],"float64")}function Gm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides,s=r.isCContiguous;if(B(e)){let b=a,A=r.size;if(t===void 0){let I=S.zeros([A],e),M=I.data,T=1,O=0;if(s)for(let $=0;$<A;$++){let k=b[(u+$)*2],V=b[(u+$)*2+1],j=T*k-O*V,R=T*V+O*k;T=j,O=R,M[$*2]=T,M[$*2+1]=O}else for(let $=0;$<A;$++){let k=r.iget($),V=k.re,j=k.im,R=T*V-O*j,Y=T*j+O*V;T=R,O=Y,M[$*2]=T,M[$*2+1]=O}return I}let g=t;if(g<0&&(g=o+g),g<0||g>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let h=S.zeros([...n],e),N=h.data,D=n[g],x=[],C=1;for(let I=o-1;I>=0;I--)x.unshift(C),C*=n[I];let w=r.size,_=x[g];for(let I=0;I<w;I++){let M=Math.floor(I/_)%D,T=new Array(o),O=I;for(let k=o-1;k>=0;k--)T[k]=O%n[k],O=Math.floor(O/n[k]);let $=Z(T,i,u);if(M===0)N[I*2]=b[$*2],N[I*2+1]=b[$*2+1];else{let k=N[(I-_)*2],V=N[(I-_)*2+1],j=b[$*2],R=b[$*2+1];N[I*2]=k*j-V*R,N[I*2+1]=k*R+V*j}}return h}if(t===void 0){let b=r.size,A=new Float64Array(b),g=1;if(s)for(let h=0;h<b;h++)g*=Number(a[u+h]),A[h]=g;else for(let h=0;h<b;h++)g*=Number(r.iget(h)),A[h]=g;return S.fromData(A,[b],"float64")}let c=t;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let l=new Float64Array(r.size),f=n[c],m=[],p=1;for(let b=o-1;b>=0;b--)m.unshift(p),p*=n[b];let y=r.size,d=m[c];for(let b=0;b<y;b++){let A=Math.floor(b/d)%f,g=new Array(o),h=b;for(let D=o-1;D>=0;D--)g[D]=h%n[D],h=Math.floor(h/n[D]);let N=Z(g,i,u);A===0?l[b]=Number(a[N]):l[b]=l[b-d]*Number(a[N])}return S.fromData(l,[...n],"float64")}function Ym(r,t,e=!1){let n=r.dtype;if(B(n)){let f=ht(r,t,e),m=Nt(r,t,e);if(f instanceof U&&m instanceof U)return new U(f.re-m.re,f.im-m.im);let p=f,y=m,d=p.data,b=y.data,A=new Float64Array(p.size*2);for(let g=0;g<p.size;g++)A[g*2]=d[g*2]-b[g*2],A[g*2+1]=d[g*2+1]-b[g*2+1];return S.fromData(A,[...p.shape],n)}let o=ht(r,t,e),a=Nt(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let u=o,i=a,s=u.data,c=i.data,l=new Float64Array(u.size);for(let f=0;f<u.size;f++)l[f]=Number(s[f])-Number(c[f]);return S.fromData(l,[...u.shape],"float64")}function Zm(r,t,e=!1){return qe(r,.5,t,e)}function Xm(r,t,e,n=!1){return qe(r,t/100,e,n)}function qe(r,t,e,n=!1){if(L(r.dtype,"quantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(e===void 0){let d=[];if(r.isCContiguous)for(let x=0;x<r.size;x++)d.push(Number(u[i+x]));else for(let x=0;x<r.size;x++)d.push(Number(r.iget(x)));d.sort((x,C)=>x-C);let A=d.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)return d[h];let D=g-h;return d[h]*(1-D)+d[N]*D}let c=e;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return qe(r,t);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=[];for(let D=0;D<m;D++){let x=G(d,c,D,o),C=Z(x,s,i);b.push(Number(u[C]))}b.sort((D,x)=>D-x);let A=b.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)p[d]=b[h];else{let D=g-h;p[d]=b[h]*(1-D)+b[N]*D}}let y=S.fromData(p,l,"float64");if(n){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function aa(r,t,e,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(e===void 0)return la(r,t,n);if(B(o)){let g=i,h=e.data,N=e.offset;if(t===void 0){let M=0,T=0,O=0;if(r.isCContiguous)for(let k=0;k<r.size;k++){let V=Number(h[N+k%e.size]),j=g[(s+k)*2],R=g[(s+k)*2+1];M+=j*V,T+=R*V,O+=V}else for(let k=0;k<r.size;k++){let V=Number(h[N+k%e.size]),j=r.iget(k);M+=j.re*V,T+=j.im*V,O+=V}return O===0?new U(NaN,NaN):new U(M/O,T/O)}let D=t;if(D<0&&(D=u+D),D<0||D>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let x=Array.from(a).filter((M,T)=>T!==D);if(x.length===0)return aa(r,void 0,e);let C=x.reduce((M,T)=>M*T,1),w=a[D],_=S.zeros(x,o),I=_.data;for(let M=0;M<C;M++){let T=0,O=0,$=0;for(let k=0;k<w;k++){let V=G(M,D,k,a),j=Z(V,c,s),R=Number(h[N+k%e.size]),Y=g[j*2],X=g[j*2+1];T+=Y*R,O+=X*R,$+=R}$===0?(I[M*2]=NaN,I[M*2+1]=NaN):(I[M*2]=T/$,I[M*2+1]=O/$)}if(n){let M=[...a];return M[D]=1,S.fromData(I,M,o)}return _}let l=e.offset;if(t===void 0){let g=0,h=0,N=e.data;if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=Number(N[l+x%e.size]);g+=Number(i[s+x])*C,h+=C}else for(let x=0;x<r.size;x++){let C=Number(N[l+x%e.size]);g+=Number(r.iget(x))*C,h+=C}return h===0?NaN:g/h}let f=t;if(f<0&&(f=u+f),f<0||f>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let m=Array.from(a).filter((g,h)=>h!==f);if(m.length===0)return aa(r,void 0,e);let p=m.reduce((g,h)=>g*h,1),y=a[f],d=e.data,b=new Float64Array(p);for(let g=0;g<p;g++){let h=0,N=0;for(let D=0;D<y;D++){let x=G(g,f,D,a),C=Z(x,c,s),w=Number(d[l+D%e.size]);h+=Number(i[C])*w,N+=w}b[g]=N===0?NaN:h/N}let A=S.fromData(b,m,"float64");if(n){let g=[...a];return g[f]=1,S.fromData(b,g,"float64")}return A}function ar(r,t){return isNaN(r)||isNaN(t)}function au(r,t,e=!1){let n=r.dtype,o=B(n),a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(t===void 0){if(o){let g=i,h=0,N=0;if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=g[(s+x)*2],w=g[(s+x)*2+1];ar(C,w)||(h+=C,N+=w)}else for(let x=0;x<r.size;x++){let C=r.iget(x),w=C.re,_=C.im;ar(w,_)||(h+=w,N+=_)}return new U(h,N)}let b=0;if(r.isCContiguous)for(let g=0;g<r.size;g++){let h=Number(i[s+g]);isNaN(h)||(b+=h)}else for(let g=0;g<r.size;g++){let h=Number(r.iget(g));isNaN(h)||(b+=h)}return b}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return au(r);let m=f.reduce((b,A)=>b*A,1),p=a[l];if(o){let b=i,A=new Float64Array(m*2);for(let g=0;g<m;g++){let h=0,N=0;for(let D=0;D<p;D++){let x=G(g,l,D,a),C=Z(x,c,s),w=b[C*2],_=b[C*2+1];ar(w,_)||(h+=w,N+=_)}A[g*2]=h,A[g*2+1]=N}if(e){let g=[...a];return g[l]=1,S.fromData(A,g,n)}return S.fromData(A,f,n)}let y=new Float64Array(m);for(let b=0;b<m;b++){let A=0;for(let g=0;g<p;g++){let h=G(b,l,g,a),N=Z(h,c,s),D=Number(i[N]);isNaN(D)||(A+=D)}y[b]=A}let d=S.fromData(y,f,"float64");if(e){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function su(r,t,e=!1){let n=r.dtype,o=B(n),a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(t===void 0){if(o){let g=i,h=1,N=0;if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=g[(s+x)*2],w=g[(s+x)*2+1];if(!ar(C,w)){let _=h*C-N*w,I=h*w+N*C;h=_,N=I}}else for(let x=0;x<r.size;x++){let C=r.iget(x),w=C.re,_=C.im;if(!ar(w,_)){let I=h*w-N*_,M=h*_+N*w;h=I,N=M}}return new U(h,N)}let b=1;if(r.isCContiguous)for(let g=0;g<r.size;g++){let h=Number(i[s+g]);isNaN(h)||(b*=h)}else for(let g=0;g<r.size;g++){let h=Number(r.iget(g));isNaN(h)||(b*=h)}return b}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return su(r);let m=f.reduce((b,A)=>b*A,1),p=a[l];if(o){let b=i,A=new Float64Array(m*2);for(let g=0;g<m;g++){let h=1,N=0;for(let D=0;D<p;D++){let x=G(g,l,D,a),C=Z(x,c,s),w=b[C*2],_=b[C*2+1];if(!ar(w,_)){let I=h*w-N*_,M=h*_+N*w;h=I,N=M}}A[g*2]=h,A[g*2+1]=N}if(e){let g=[...a];return g[l]=1,S.fromData(A,g,n)}return S.fromData(A,f,n)}let y=new Float64Array(m);for(let b=0;b<m;b++){let A=1;for(let g=0;g<p;g++){let h=G(b,l,g,a),N=Z(h,c,s),D=Number(i[N]);isNaN(D)||(A*=D)}y[b]=A}let d=S.fromData(y,f,"float64");if(e){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function iu(r,t,e=!1){let n=r.dtype,o=B(n),a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(t===void 0){if(o){let h=i,N=0,D=0,x=0;if(r.isCContiguous)for(let w=0;w<r.size;w++){let _=h[(s+w)*2],I=h[(s+w)*2+1];ar(_,I)||(N+=_,D+=I,x++)}else for(let w=0;w<r.size;w++){let _=r.iget(w),I=_.re,M=_.im;ar(I,M)||(N+=I,D+=M,x++)}return x===0?new U(NaN,NaN):new U(N/x,D/x)}let b=0,A=0;if(r.isCContiguous)for(let h=0;h<r.size;h++){let N=Number(i[s+h]);isNaN(N)||(b+=N,A++)}else for(let h=0;h<r.size;h++){let N=Number(r.iget(h));isNaN(N)||(b+=N,A++)}return A===0?NaN:b/A}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return iu(r);let m=f.reduce((b,A)=>b*A,1),p=a[l];if(o){let b=i,A=new Float64Array(m*2);for(let g=0;g<m;g++){let h=0,N=0,D=0;for(let x=0;x<p;x++){let C=G(g,l,x,a),w=Z(C,c,s),_=b[w*2],I=b[w*2+1];ar(_,I)||(h+=_,N+=I,D++)}D===0?(A[g*2]=NaN,A[g*2+1]=NaN):(A[g*2]=h/D,A[g*2+1]=N/D)}if(e){let g=[...a];return g[l]=1,S.fromData(A,g,n)}return S.fromData(A,f,n)}let y=new Float64Array(m);for(let b=0;b<m;b++){let A=0,g=0;for(let h=0;h<p;h++){let N=G(b,l,h,a),D=Z(N,c,s),x=Number(i[D]);isNaN(x)||(A+=x,g++)}y[b]=g===0?NaN:A/g}let d=S.fromData(y,f,"float64");if(e){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function Re(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,u=a.length,i=r.data,s=r.offset,c=r.strides;if(B(o)){let b=i;if(t===void 0){let C=0,w=0,_=0,I=r.isCContiguous;if(I)for(let $=0;$<r.size;$++){let k=b[(s+$)*2],V=b[(s+$)*2+1];ar(k,V)||(C+=k,w+=V,_++)}else for(let $=0;$<r.size;$++){let k=r.iget($),V=k.re,j=k.im;ar(V,j)||(C+=V,w+=j,_++)}if(_-e<=0)return NaN;let M=C/_,T=w/_,O=0;if(I)for(let $=0;$<r.size;$++){let k=b[(s+$)*2],V=b[(s+$)*2+1];if(!ar(k,V)){let j=k-M,R=V-T;O+=j*j+R*R}}else for(let $=0;$<r.size;$++){let k=r.iget($),V=k.re,j=k.im;if(!ar(V,j)){let R=V-M,Y=j-T;O+=R*R+Y*Y}}return O/(_-e)}let A=t;if(A<0&&(A=u+A),A<0||A>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let g=Array.from(a).filter((C,w)=>w!==A);if(g.length===0)return Re(r,void 0,e);let h=g.reduce((C,w)=>C*w,1),N=a[A],D=new Float64Array(h);for(let C=0;C<h;C++){let w=0,_=0,I=0;for(let $=0;$<N;$++){let k=G(C,A,$,a),V=Z(k,c,s),j=b[V*2],R=b[V*2+1];ar(j,R)||(w+=j,_+=R,I++)}if(I-e<=0){D[C]=NaN;continue}let M=w/I,T=_/I,O=0;for(let $=0;$<N;$++){let k=G(C,A,$,a),V=Z(k,c,s),j=b[V*2],R=b[V*2+1];if(!ar(j,R)){let Y=j-M,X=R-T;O+=Y*Y+X*X}}D[C]=O/(I-e)}let x=S.fromData(D,g,"float64");if(n){let C=[...a];return C[A]=1,S.fromData(D,C,"float64")}return x}if(t===void 0){let b=0,A=0,g=r.isCContiguous;if(g)for(let D=0;D<r.size;D++){let x=Number(i[s+D]);isNaN(x)||(b+=x,A++)}else for(let D=0;D<r.size;D++){let x=Number(r.iget(D));isNaN(x)||(b+=x,A++)}if(A-e<=0)return NaN;let h=b/A,N=0;if(g)for(let D=0;D<r.size;D++){let x=Number(i[s+D]);isNaN(x)||(N+=(x-h)**2)}else for(let D=0;D<r.size;D++){let x=Number(r.iget(D));isNaN(x)||(N+=(x-h)**2)}return N/(A-e)}let l=t;if(l<0&&(l=u+l),l<0||l>=u)throw new Error(`axis ${t} is out of bounds for array of dimension ${u}`);let f=Array.from(a).filter((b,A)=>A!==l);if(f.length===0)return Re(r,void 0,e);let m=f.reduce((b,A)=>b*A,1),p=a[l],y=new Float64Array(m);for(let b=0;b<m;b++){let A=0,g=0;for(let D=0;D<p;D++){let x=G(b,l,D,a),C=Z(x,c,s),w=Number(i[C]);isNaN(w)||(A+=w,g++)}if(g-e<=0){y[b]=NaN;continue}let h=A/g,N=0;for(let D=0;D<p;D++){let x=G(b,l,D,a),C=Z(x,c,s),w=Number(i[C]);isNaN(w)||(N+=(w-h)**2)}y[b]=N/(g-e)}let d=S.fromData(y,f,"float64");if(n){let b=[...a];return b[l]=1,S.fromData(y,b,"float64")}return d}function Jm(r,t,e=0,n=!1){let o=Re(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,u=new Float64Array(a.size);for(let i=0;i<a.size;i++)u[i]=Math.sqrt(Number(a.data[i]));return S.fromData(u,[...a.shape],"float64")}function sa(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(B(n)){let d=u;if(t===void 0){let x=1/0,C=1/0,w=!1;if(r.isCContiguous)for(let I=0;I<r.size;I++){let M=d[(i+I)*2],T=d[(i+I)*2+1];isNaN(M)||isNaN(T)||(w?(M<x||M===x&&T<C)&&(x=M,C=T):(x=M,C=T,w=!0))}else for(let I=0;I<r.size;I++){let M=r.iget(I),T=M.re,O=M.im;isNaN(T)||isNaN(O)||(w?(T<x||T===x&&O<C)&&(x=T,C=O):(x=T,C=O,w=!0))}return w?new U(x,C):new U(NaN,NaN)}let b=t;if(b<0&&(b=a+b),b<0||b>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let A=Array.from(o).filter((x,C)=>C!==b);if(A.length===0)return sa(r);let g=A.reduce((x,C)=>x*C,1),h=o[b],N=new Float64Array(g*2);for(let x=0;x<g;x++){let C=1/0,w=1/0,_=!1;for(let I=0;I<h;I++){let M=G(x,b,I,o),T=Z(M,s,i),O=d[T*2],$=d[T*2+1];isNaN(O)||isNaN($)||(_?(O<C||O===C&&$<w)&&(C=O,w=$):(C=O,w=$,_=!0))}N[x*2]=_?C:NaN,N[x*2+1]=_?w:NaN}let D=S.fromData(N,A,n);if(e){let x=[...o];return x[b]=1,S.fromData(N,x,n)}return D}if(t===void 0){let d=1/0;if(r.isCContiguous)for(let A=0;A<r.size;A++){let g=Number(u[i+A]);!isNaN(g)&&g<d&&(d=g)}else for(let A=0;A<r.size;A++){let g=Number(r.iget(A));!isNaN(g)&&g<d&&(d=g)}return d===1/0?NaN:d}let c=t;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return sa(r);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=1/0;for(let A=0;A<m;A++){let g=G(d,c,A,o),h=Z(g,s,i),N=Number(u[h]);!isNaN(N)&&N<b&&(b=N)}p[d]=b===1/0?NaN:b}let y=S.fromData(p,l,"float64");if(e){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function ia(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(B(n)){let d=u;if(t===void 0){let x=-1/0,C=-1/0,w=!1;if(r.isCContiguous)for(let I=0;I<r.size;I++){let M=d[(i+I)*2],T=d[(i+I)*2+1];isNaN(M)||isNaN(T)||(w?(M>x||M===x&&T>C)&&(x=M,C=T):(x=M,C=T,w=!0))}else for(let I=0;I<r.size;I++){let M=r.iget(I),T=M.re,O=M.im;isNaN(T)||isNaN(O)||(w?(T>x||T===x&&O>C)&&(x=T,C=O):(x=T,C=O,w=!0))}return w?new U(x,C):new U(NaN,NaN)}let b=t;if(b<0&&(b=a+b),b<0||b>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let A=Array.from(o).filter((x,C)=>C!==b);if(A.length===0)return ia(r);let g=A.reduce((x,C)=>x*C,1),h=o[b],N=new Float64Array(g*2);for(let x=0;x<g;x++){let C=-1/0,w=-1/0,_=!1;for(let I=0;I<h;I++){let M=G(x,b,I,o),T=Z(M,s,i),O=d[T*2],$=d[T*2+1];isNaN(O)||isNaN($)||(_?(O>C||O===C&&$>w)&&(C=O,w=$):(C=O,w=$,_=!0))}N[x*2]=_?C:NaN,N[x*2+1]=_?w:NaN}let D=S.fromData(N,A,n);if(e){let x=[...o];return x[b]=1,S.fromData(N,x,n)}return D}if(t===void 0){let d=-1/0;if(r.isCContiguous)for(let A=0;A<r.size;A++){let g=Number(u[i+A]);!isNaN(g)&&g>d&&(d=g)}else for(let A=0;A<r.size;A++){let g=Number(r.iget(A));!isNaN(g)&&g>d&&(d=g)}return d===-1/0?NaN:d}let c=t;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return ia(r);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=-1/0;for(let A=0;A<m;A++){let g=G(d,c,A,o),h=Z(g,s,i),N=Number(u[h]);!isNaN(N)&&N>b&&(b=N)}p[d]=b===-1/0?NaN:b}let y=S.fromData(p,l,"float64");if(e){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function ua(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(B(e)){let p=a;if(t===void 0){let h=1/0,N=1/0,D=-1;if(r.isCContiguous)for(let C=0;C<r.size;C++){let w=p[(u+C)*2],_=p[(u+C)*2+1];!ar(w,_)&&zr(w,_,h,N)<0&&(h=w,N=_,D=C)}else for(let C=0;C<r.size;C++){let w=r.iget(C),_=w.re,I=w.im;!ar(_,I)&&zr(_,I,h,N)<0&&(h=_,N=I,D=C)}return D}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,N)=>N!==y);if(d.length===0)return ua(r);let b=d.reduce((h,N)=>h*N,1),A=n[y],g=new Int32Array(b);for(let h=0;h<b;h++){let N=1/0,D=1/0,x=0;for(let C=0;C<A;C++){let w=G(h,y,C,n),_=Z(w,i,u),I=p[_*2],M=p[_*2+1];!ar(I,M)&&zr(I,M,N,D)<0&&(N=I,D=M,x=C)}g[h]=x}return S.fromData(g,d,"int32")}if(t===void 0){let p=1/0,y=-1;if(r.isCContiguous)for(let b=0;b<r.size;b++){let A=Number(a[u+b]);!isNaN(A)&&A<p&&(p=A,y=b)}else for(let b=0;b<r.size;b++){let A=Number(r.iget(b));!isNaN(A)&&A<p&&(p=A,y=b)}return y}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let c=Array.from(n).filter((p,y)=>y!==s);if(c.length===0)return ua(r);let l=c.reduce((p,y)=>p*y,1),f=n[s],m=new Int32Array(l);for(let p=0;p<l;p++){let y=1/0,d=0;for(let b=0;b<f;b++){let A=G(p,s,b,n),g=Z(A,i,u),h=Number(a[g]);!isNaN(h)&&h<y&&(y=h,d=b)}m[p]=d}return S.fromData(m,c,"int32")}function ca(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(B(e)){let p=a;if(t===void 0){let h=-1/0,N=-1/0,D=-1;if(r.isCContiguous)for(let C=0;C<r.size;C++){let w=p[(u+C)*2],_=p[(u+C)*2+1];!ar(w,_)&&zr(w,_,h,N)>0&&(h=w,N=_,D=C)}else for(let C=0;C<r.size;C++){let w=r.iget(C),_=w.re,I=w.im;!ar(_,I)&&zr(_,I,h,N)>0&&(h=_,N=I,D=C)}return D}let y=t;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let d=Array.from(n).filter((h,N)=>N!==y);if(d.length===0)return ca(r);let b=d.reduce((h,N)=>h*N,1),A=n[y],g=new Int32Array(b);for(let h=0;h<b;h++){let N=-1/0,D=-1/0,x=0;for(let C=0;C<A;C++){let w=G(h,y,C,n),_=Z(w,i,u),I=p[_*2],M=p[_*2+1];!ar(I,M)&&zr(I,M,N,D)>0&&(N=I,D=M,x=C)}g[h]=x}return S.fromData(g,d,"int32")}if(t===void 0){let p=-1/0,y=-1;if(r.isCContiguous)for(let b=0;b<r.size;b++){let A=Number(a[u+b]);!isNaN(A)&&A>p&&(p=A,y=b)}else for(let b=0;b<r.size;b++){let A=Number(r.iget(b));!isNaN(A)&&A>p&&(p=A,y=b)}return y}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let c=Array.from(n).filter((p,y)=>y!==s);if(c.length===0)return ca(r);let l=c.reduce((p,y)=>p*y,1),f=n[s],m=new Int32Array(l);for(let p=0;p<l;p++){let y=-1/0,d=0;for(let b=0;b<f;b++){let A=G(p,s,b,n),g=Z(A,i,u),h=Number(a[g]);!isNaN(h)&&h>y&&(y=h,d=b)}m[p]=d}return S.fromData(m,c,"int32")}function Km(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset;if(B(e)){let d=a,b=r.size;if(t===void 0){let I=S.zeros([b],e),M=I.data,T=0,O=0;if(r.isCContiguous)for(let k=0;k<b;k++){let V=d[(u+k)*2],j=d[(u+k)*2+1];ar(V,j)||(T+=V,O+=j),M[k*2]=T,M[k*2+1]=O}else for(let k=0;k<b;k++){let V=r.iget(k),j=V.re,R=V.im;ar(j,R)||(T+=j,O+=R),M[k*2]=T,M[k*2+1]=O}return I}let A=t;if(A<0&&(A=o+A),A<0||A>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=S.zeros([...n],e),h=g.data,N=n[A],D=[],x=1;for(let I=o-1;I>=0;I--)D.unshift(x),x*=n[I];let C=r.size,w=D[A];if(r.isCContiguous)for(let I=0;I<C;I++){let M=d[(u+I)*2],T=d[(u+I)*2+1],O=Math.floor(I/w)%N,$=ar(M,T);O===0?(h[I*2]=$?0:M,h[I*2+1]=$?0:T):(h[I*2]=h[(I-w)*2]+($?0:M),h[I*2+1]=h[(I-w)*2+1]+($?0:T))}else for(let I=0;I<C;I++){let M=r.iget(I),T=M.re,O=M.im,$=Math.floor(I/w)%N,k=ar(T,O);$===0?(h[I*2]=k?0:T,h[I*2+1]=k?0:O):(h[I*2]=h[(I-w)*2]+(k?0:T),h[I*2+1]=h[(I-w)*2+1]+(k?0:O))}return g}if(t===void 0){let d=r.size,b=new Float64Array(d),A=0;if(r.isCContiguous)for(let h=0;h<d;h++){let N=Number(a[u+h]);isNaN(N)||(A+=N),b[h]=A}else for(let h=0;h<d;h++){let N=Number(r.iget(h));isNaN(N)||(A+=N),b[h]=A}return S.fromData(b,[d],"float64")}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),c=n[i],l=[],f=1;for(let d=o-1;d>=0;d--)l.unshift(f),f*=n[d];let m=r.size,p=l[i];if(r.isCContiguous)for(let d=0;d<m;d++){let b=Number(a[u+d]);Math.floor(d/p)%c===0?s[d]=isNaN(b)?0:b:s[d]=s[d-p]+(isNaN(b)?0:b)}else for(let d=0;d<m;d++){let b=Number(r.iget(d));Math.floor(d/p)%c===0?s[d]=isNaN(b)?0:b:s[d]=s[d-p]+(isNaN(b)?0:b)}return S.fromData(s,[...n],"float64")}function Qm(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data,u=r.offset;if(B(e)){let d=a,b=r.size;if(t===void 0){let I=S.zeros([b],e),M=I.data,T=1,O=0;if(r.isCContiguous)for(let k=0;k<b;k++){let V=d[(u+k)*2],j=d[(u+k)*2+1];if(!ar(V,j)){let R=T*V-O*j,Y=T*j+O*V;T=R,O=Y}M[k*2]=T,M[k*2+1]=O}else for(let k=0;k<b;k++){let V=r.iget(k),j=V.re,R=V.im;if(!ar(j,R)){let Y=T*j-O*R,X=T*R+O*j;T=Y,O=X}M[k*2]=T,M[k*2+1]=O}return I}let A=t;if(A<0&&(A=o+A),A<0||A>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=S.zeros([...n],e),h=g.data,N=n[A],D=[],x=1;for(let I=o-1;I>=0;I--)D.unshift(x),x*=n[I];let C=r.size,w=D[A];if(r.isCContiguous)for(let I=0;I<C;I++){let M=d[(u+I)*2],T=d[(u+I)*2+1],O=Math.floor(I/w)%N,$=ar(M,T);if(O===0)h[I*2]=$?1:M,h[I*2+1]=$?0:T;else{let k=h[(I-w)*2],V=h[(I-w)*2+1];$?(h[I*2]=k,h[I*2+1]=V):(h[I*2]=k*M-V*T,h[I*2+1]=k*T+V*M)}}else for(let I=0;I<C;I++){let M=r.iget(I),T=M.re,O=M.im,$=Math.floor(I/w)%N,k=ar(T,O);if($===0)h[I*2]=k?1:T,h[I*2+1]=k?0:O;else{let V=h[(I-w)*2],j=h[(I-w)*2+1];k?(h[I*2]=V,h[I*2+1]=j):(h[I*2]=V*T-j*O,h[I*2+1]=V*O+j*T)}}return g}if(t===void 0){let d=r.size,b=new Float64Array(d),A=1;if(r.isCContiguous)for(let h=0;h<d;h++){let N=Number(a[u+h]);isNaN(N)||(A*=N),b[h]=A}else for(let h=0;h<d;h++){let N=Number(r.iget(h));isNaN(N)||(A*=N),b[h]=A}return S.fromData(b,[d],"float64")}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),c=n[i],l=[],f=1;for(let d=o-1;d>=0;d--)l.unshift(f),f*=n[d];let m=r.size,p=l[i];if(r.isCContiguous)for(let d=0;d<m;d++){let b=Number(a[u+d]);Math.floor(d/p)%c===0?s[d]=isNaN(b)?1:b:s[d]=s[d-p]*(isNaN(b)?1:b)}else for(let d=0;d<m;d++){let b=Number(r.iget(d));Math.floor(d/p)%c===0?s[d]=isNaN(b)?1:b:s[d]=s[d-p]*(isNaN(b)?1:b)}return S.fromData(s,[...n],"float64")}function uu(r,t,e=!1){L(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data,u=r.offset,i=r.strides;if(t===void 0){let y=[];if(r.isCContiguous)for(let g=0;g<r.size;g++){let h=Number(a[u+g]);isNaN(h)||y.push(h)}else for(let g=0;g<r.size;g++){let h=Number(r.iget(g));isNaN(h)||y.push(h)}if(y.length===0)return NaN;y.sort((g,h)=>g-h);let b=y.length,A=Math.floor(b/2);return b%2===0?(y[A-1]+y[A])/2:y[A]}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let c=Array.from(n).filter((y,d)=>d!==s);if(c.length===0)return uu(r);let l=c.reduce((y,d)=>y*d,1),f=n[s],m=new Float64Array(l);for(let y=0;y<l;y++){let d=[];for(let g=0;g<f;g++){let h=G(y,s,g,n),N=Z(h,i,u),D=Number(a[N]);isNaN(D)||d.push(D)}if(d.length===0){m[y]=NaN;continue}d.sort((g,h)=>g-h);let b=d.length,A=Math.floor(b/2);b%2===0?m[y]=(d[A-1]+d[A])/2:m[y]=d[A]}let p=S.fromData(m,c,"float64");if(e){let y=[...n];return y[s]=1,S.fromData(m,y,"float64")}return p}function fa(r,t,e,n=!1){if(L(r.dtype,"nanquantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,u=r.data,i=r.offset,s=r.strides;if(e===void 0){let d=[];if(r.isCContiguous)for(let x=0;x<r.size;x++){let C=Number(u[i+x]);isNaN(C)||d.push(C)}else for(let x=0;x<r.size;x++){let C=Number(r.iget(x));isNaN(C)||d.push(C)}if(d.length===0)return NaN;d.sort((x,C)=>x-C);let A=d.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)return d[h];let D=g-h;return d[h]*(1-D)+d[N]*D}let c=e;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let l=Array.from(o).filter((d,b)=>b!==c);if(l.length===0)return fa(r,t);let f=l.reduce((d,b)=>d*b,1),m=o[c],p=new Float64Array(f);for(let d=0;d<f;d++){let b=[];for(let D=0;D<m;D++){let x=G(d,c,D,o),C=Z(x,s,i),w=Number(u[C]);isNaN(w)||b.push(w)}if(b.length===0){p[d]=NaN;continue}b.sort((D,x)=>D-x);let A=b.length,g=t*(A-1),h=Math.floor(g),N=Math.ceil(g);if(h===N)p[d]=b[h];else{let D=g-h;p[d]=b[h]*(1-D)+b[N]*D}}let y=S.fromData(p,l,"float64");if(n){let d=[...o];return d[c]=1,S.fromData(p,d,"float64")}return y}function Hm(r,t,e,n=!1){return fa(r,t/100,e,n)}function Ve(r,t,e){let n=ke(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Pe(r,t,e){let n=la(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function je(r,t,e){let n=Hi(z(r),t,e);return typeof n=="number"||typeof n=="bigint"||n instanceof U?n:v(n)}function Le(r,t,e){let n=ht(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}var We=Le;function Ge(r,t,e){let n=Nt(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}var Ye=Ge;function Ze(r,t,e){let n=Ym(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function Xe(r,t){let e=ru(z(r),t);return typeof e=="number"?e:v(e)}function Je(r,t){let e=tu(z(r),t);return typeof e=="number"?e:v(e)}function rt(r,t,e,n){let o=eu(z(r),t,e,n);return typeof o=="number"?o:v(o)}var ma=rt;function Ke(r,t,e,n){let o=Lm(z(r),t,e,n);return typeof o=="number"?o:v(o)}function Qe(r,t,e){let n=Zm(z(r),t,e);return typeof n=="number"?n:v(n)}function He(r,t,e,n){let o=Xm(z(r),t,e,n);return typeof o=="number"?o:v(o)}function rn(r,t,e,n){let o=qe(z(r),t,e,n);return typeof o=="number"?o:v(o)}function tn(r,t,e,n){let o=e?z(e):void 0,a=aa(z(r),t,o,n);return typeof a=="number"||a instanceof U?a:v(a)}function en(r,t,e){let n=nu(z(r),t,e);return typeof n=="boolean"?n:v(n)}function nn(r,t,e){let n=ou(z(r),t,e);return typeof n=="boolean"?n:v(n)}function on(r,t){return v(Wm(z(r),t))}function an(r,t){return v(Gm(z(r),t))}function sn(r,t,e){let n=au(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function un(r,t,e){let n=su(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function cn(r,t,e){let n=iu(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function ln(r,t,e,n){let o=Re(z(r),t,e,n);return typeof o=="number"?o:v(o)}function fn(r,t,e,n){let o=Jm(z(r),t,e,n);return typeof o=="number"?o:v(o)}function mn(r,t,e){let n=sa(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function pn(r,t,e){let n=ia(z(r),t,e);return typeof n=="number"||n instanceof U?n:v(n)}function yn(r,t){let e=ua(z(r),t);return typeof e=="number"?e:v(e)}function dn(r,t){let e=ca(z(r),t);return typeof e=="number"?e:v(e)}function bn(r,t){return v(Km(z(r),t))}function An(r,t){return v(Qm(z(r),t))}function gn(r,t,e){let n=uu(z(r),t,e);return typeof n=="number"?n:v(n)}function hn(r,t,e,n){let o=fa(z(r),t,e,n);return typeof o=="number"?o:v(o)}function Nn(r,t,e,n){let o=Hm(z(r),t,e,n);return typeof o=="number"?o:v(o)}function xt(r){return r!==0&&r!==0n}function Rr(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function Dn(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function tp(r,t){return typeof t=="number"?wD(r,t):Dn(r,t)?SD(r,t):Ir(r,t,(e,n)=>xt(e)&&xt(n))}function SD(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=E(r.dtype),c=E(t.dtype),l=B(r.dtype),f=B(t.dtype);if(l||f)for(let m=0;m<i;m++){let p=l?Rr(n,a+m):n[a+m]!==0,y=f?Rr(o,u+m):o[u+m]!==0;e[m]=p&&y?1:0}else if(s||c)for(let m=0;m<i;m++){let p=s?n[a+m]!==0n:n[a+m]!==0,y=c?o[u+m]!==0n:o[u+m]!==0;e[m]=p&&y?1:0}else for(let m=0;m<i;m++)e[m]=n[a+m]!==0&&o[u+m]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function wD(r,t){let e=new Uint8Array(r.size),n=t!==0,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(B(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=Rr(i,u+s)&&n?1:0}else if(E(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=i[u+s]!==0n&&n?1:0}else if(u===0)for(let i=0;i<o;i++)e[i]=a[i]!==0&&n?1:0;else for(let i=0;i<o;i++)e[i]=a[u+i]!==0&&n?1:0}else if(B(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a);e[a]=(u.re!==0||u.im!==0)&&n?1:0}else if(E(r.dtype))for(let a=0;a<o;a++)e[a]=r.iget(a)!==0n&&n?1:0;else for(let a=0;a<o;a++)e[a]=Number(r.iget(a))!==0&&n?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function ep(r,t){if(typeof t=="number")return rp(r,t);if(t.size===1&&!B(t.dtype)&&r.dtype===t.dtype){let e=Number(t.iget(0));return rp(r,e)}return Dn(r,t)?ID(r,t):Ir(r,t,(e,n)=>xt(e)||xt(n))}function ID(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=E(r.dtype),c=E(t.dtype),l=B(r.dtype),f=B(t.dtype);if(l||f)for(let m=0;m<i;m++){let p=l?Rr(n,a+m):n[a+m]!==0,y=f?Rr(o,u+m):o[u+m]!==0;e[m]=p||y?1:0}else if(s||c)for(let m=0;m<i;m++){let p=s?n[a+m]!==0n:n[a+m]!==0,y=c?o[u+m]!==0n:o[u+m]!==0;e[m]=p||y?1:0}else for(let m=0;m<i;m++)e[m]=n[a+m]!==0||o[u+m]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function rp(r,t){let e=new Uint8Array(r.size),n=t!==0,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(B(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=Rr(i,u+s)||n?1:0}else if(E(r.dtype)){let i=a;for(let s=0;s<o;s++)e[s]=i[u+s]!==0n||n?1:0}else if(u===0)for(let i=0;i<o;i++)e[i]=a[i]!==0||n?1:0;else for(let i=0;i<o;i++)e[i]=a[u+i]!==0||n?1:0}else if(B(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a);e[a]=u.re!==0||u.im!==0||n?1:0}else if(E(r.dtype))for(let a=0;a<o;a++)e[a]=r.iget(a)!==0n||n?1:0;else for(let a=0;a<o;a++)e[a]=Number(r.iget(a))!==0||n?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function np(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=Rr(a,o+u)?0:1}else if(E(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=a[o+u]===0n?1:0}else if(o===0)for(let a=0;a<e;a++)t[a]=n[a]===0?1:0;else for(let a=0;a<e;a++)t[a]=n[o+a]===0?1:0}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n);t[n]=o.re===0&&o.im===0?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=r.iget(n)===0n?1:0;else for(let n=0;n<e;n++)t[n]=Number(r.iget(n))===0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function op(r,t){return typeof t=="number"?_D(r,t):Dn(r,t)?zD(r,t):Ir(r,t,(e,n)=>xt(e)!==xt(n))}function zD(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.offset,u=t.offset,i=r.size,s=E(r.dtype),c=E(t.dtype),l=B(r.dtype),f=B(t.dtype);if(l||f)for(let m=0;m<i;m++){let p=l?Rr(n,a+m):n[a+m]!==0,y=f?Rr(o,u+m):o[u+m]!==0;e[m]=p!==y?1:0}else if(s||c)for(let m=0;m<i;m++){let p=s?n[a+m]!==0n:n[a+m]!==0,y=c?o[u+m]!==0n:o[u+m]!==0;e[m]=p!==y?1:0}else for(let m=0;m<i;m++){let p=n[a+m]!==0,y=o[u+m]!==0;e[m]=p!==y?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function _D(r,t){let e=new Uint8Array(r.size),n=t!==0,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(B(r.dtype)){let i=a;for(let s=0;s<o;s++){let c=Rr(i,u+s);e[s]=c!==n?1:0}}else if(E(r.dtype)){let i=a;for(let s=0;s<o;s++){let c=i[u+s]!==0n;e[s]=c!==n?1:0}}else if(u===0)for(let i=0;i<o;i++){let s=a[i]!==0;e[i]=s!==n?1:0}else for(let i=0;i<o;i++){let s=a[u+i]!==0;e[i]=s!==n?1:0}}else if(B(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a),i=u.re!==0||u.im!==0;e[a]=i!==n?1:0}else if(E(r.dtype))for(let a=0;a<o;a++){let u=r.iget(a)!==0n;e[a]=u!==n?1:0}else for(let a=0;a<o;a++){let u=Number(r.iget(a))!==0;e[a]=u!==n?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function ap(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1];t[u]=Number.isFinite(i)&&Number.isFinite(s)?1:0}}else if(E(r.dtype))for(let a=0;a<e;a++)t[a]=1;else if(o===0)for(let a=0;a<e;a++)t[a]=Number.isFinite(n[a])?1:0;else for(let a=0;a<e;a++){let u=n[o+a];t[a]=Number.isFinite(u)?1:0}}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n);t[n]=Number.isFinite(o.re)&&Number.isFinite(o.im)?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=1;else for(let n=0;n<e;n++)t[n]=Number.isFinite(Number(r.iget(n)))?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function sp(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1],c=!Number.isFinite(i)&&!Number.isNaN(i),l=!Number.isFinite(s)&&!Number.isNaN(s);t[u]=c||l?1:0}}else if(E(r.dtype))for(let a=0;a<e;a++)t[a]=0;else if(o===0)for(let a=0;a<e;a++){let u=n[a];t[a]=!Number.isFinite(u)&&!Number.isNaN(u)?1:0}else for(let a=0;a<e;a++){let u=n[o+a];t[a]=!Number.isFinite(u)&&!Number.isNaN(u)?1:0}}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n),a=!Number.isFinite(o.re)&&!Number.isNaN(o.re),u=!Number.isFinite(o.im)&&!Number.isNaN(o.im);t[n]=a||u?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=0;else for(let n=0;n<e;n++){let o=Number(r.iget(n));t[n]=!Number.isFinite(o)&&!Number.isNaN(o)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function ip(r){let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(B(r.dtype)){let a=n;for(let u=0;u<e;u++){let i=a[(o+u)*2],s=a[(o+u)*2+1];t[u]=Number.isNaN(i)||Number.isNaN(s)?1:0}}else if(E(r.dtype))for(let a=0;a<e;a++)t[a]=0;else for(let a=0;a<e;a++)t[a]=Number.isNaN(n[o+a])?1:0}else if(B(r.dtype))for(let n=0;n<e;n++){let o=r.iget(n);t[n]=Number.isNaN(o.re)||Number.isNaN(o.im)?1:0}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=0;else for(let n=0;n<e;n++)t[n]=Number.isNaN(Number(r.iget(n)))?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function up(r){let t=new Uint8Array(r.size);return S.fromData(t,Array.from(r.shape),"bool")}function cp(r,t){if(L(r.dtype,"copysign","copysign is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"copysign","copysign is only defined for real numbers."),typeof t=="number")return vD(r,t);if(Dn(r,t))return MD(r,t);let e=Gr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=pa(r,e),i=pa(t,e);for(let s=0;s<n;s++){let c=Number(u.iget(s)),l=Number(i.iget(s));a[s]=Math.sign(l)*Math.abs(c)}return o}function MD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=E(r.dtype),l=E(t.dtype);for(let f=0;f<o;f++){let m=c?Number(a[i+f]):a[i+f],p=l?Number(u[s+f]):u[s+f];n[f]=Math.sign(p)*Math.abs(m)}return e}function vD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=Math.sign(t);if(!r.isCContiguous){for(let s=0;s<o;s++)n[s]=a*Math.abs(Number(r.iget(s)));return e}let u=r.data,i=r.offset;if(E(r.dtype)){let s=u;for(let c=0;c<o;c++)n[c]=a*Math.abs(Number(s[i+c]))}else if(i===0)for(let s=0;s<o;s++)n[s]=a*Math.abs(u[s]);else for(let s=0;s<o;s++)n[s]=a*Math.abs(u[i+s]);return e}function lp(r){L(r.dtype,"signbit","signbit is only defined for real numbers.");let t=new Uint8Array(r.size),e=r.size;if(r.isCContiguous){let n=r.data,o=r.offset;if(E(r.dtype)){let a=n;for(let u=0;u<e;u++)t[u]=a[o+u]<0n?1:0}else for(let a=0;a<e;a++){let u=n[o+a];t[a]=u<0||Object.is(u,-0)?1:0}}else if(E(r.dtype))for(let n=0;n<e;n++)t[n]=r.iget(n)<0n?1:0;else for(let n=0;n<e;n++){let o=Number(r.iget(n));t[n]=o<0||Object.is(o,-0)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function fp(r,t){if(L(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t!="number"&&L(t.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t=="number")return BD(r,t);if(Dn(r,t))return FD(r,t);let e=Gr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,u=pa(r,e),i=pa(t,e);for(let s=0;s<n;s++){let c=Number(u.iget(s)),l=Number(i.iget(s));a[s]=Dt(c,l)}return o}function FD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=E(r.dtype),l=E(t.dtype);for(let f=0;f<o;f++){let m=c?Number(a[i+f]):a[i+f],p=l?Number(u[s+f]):u[s+f];n[f]=Dt(m,p)}return e}function BD(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size;if(r.isCContiguous){let a=r.data,u=r.offset;if(E(r.dtype)){let i=a;for(let s=0;s<o;s++)n[s]=Dt(Number(i[u+s]),t)}else for(let i=0;i<o;i++)n[i]=Dt(a[u+i],t)}else for(let a=0;a<o;a++)n[a]=Dt(Number(r.iget(a)),t);return e}function Dt(r,t){if(Number.isNaN(r)||Number.isNaN(t))return NaN;if(r===t)return t;if(r===0)return t>0?Number.MIN_VALUE:-Number.MIN_VALUE;let e=new ArrayBuffer(8),n=new Float64Array(e),o=new BigInt64Array(e);n[0]=r;let a=o[0];return r>0&&t>r||r<0&&t>r?a=a+1n:a=a-1n,o[0]=a,n[0]}function mp(r){L(r.dtype,"spacing","spacing is only defined for real numbers.");let t=S.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.size;if(r.isCContiguous){let o=r.data,a=r.offset;if(E(r.dtype)){let u=o;for(let i=0;i<n;i++)e[i]=cu(Number(u[a+i]))}else for(let u=0;u<n;u++)e[u]=cu(o[a+u])}else for(let o=0;o<n;o++)e[o]=cu(Number(r.iget(o)));return t}function cu(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=Dt(r,1/0);return Math.abs(e-r)}function pa(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let u=n-e+a,i=r.shape[a],s=t[u];if(i===s)o[u]=r.strides[a];else if(i===1)o[u]=0;else throw new Error("Invalid broadcast")}return S.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function pp(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(B(t))if(r.isCContiguous){let o=r.offset,a=r.data;for(let u=0;u<e;u++)n[u]=a[(o+u)*2+1]!==0?1:0}else for(let o=0;o<e;o++){let a=r.iget(o);n[o]=a.im!==0?1:0}return S.fromData(n,Array.from(r.shape),"bool")}function yp(r){return B(r.dtype)}function dp(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(B(t))if(r.isCContiguous){let o=r.offset,a=r.data;for(let u=0;u<e;u++)n[u]=a[(o+u)*2+1]===0?1:0}else for(let o=0;o<e;o++){let a=r.iget(o);n[o]=a.im===0?1:0}else n.fill(1);return S.fromData(n,Array.from(r.shape),"bool")}function bp(r){return!B(r.dtype)}function Ap(r){L(r.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.size;if(!E(r.dtype))if(r.isCContiguous){let n=r.data,o=r.offset;for(let a=0;a<e;a++){let u=n[o+a];t[a]=u===-1/0?1:0}}else for(let n=0;n<e;n++)t[n]=Number(r.iget(n))===-1/0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function gp(r){L(r.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.size;if(!E(r.dtype))if(r.isCContiguous){let n=r.data,o=r.offset;for(let a=0;a<e;a++){let u=n[o+a];t[a]=u===1/0?1:0}}else for(let n=0;n<e;n++)t[n]=Number(r.iget(n))===1/0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function hp(r){return r.isFContiguous}function Np(r,t=100){let e=r.dtype;if(B(e)){let n=r.size,a=t*(e==="complex64"?11920929e-14:2220446049250313e-31);if(r.isCContiguous){let u=r.data,i=r.offset,s=!0;for(let c=0;c<n;c++){let l=u[(i+c)*2+1];if(Math.abs(l)>a){s=!1;break}}if(s){let c=e==="complex64"?"float32":"float64",l=S.zeros(Array.from(r.shape),c),f=l.data;for(let m=0;m<n;m++)f[m]=u[(i+m)*2];return l}}else{let u=!0;for(let i=0;i<n;i++){let s=r.iget(i);if(Math.abs(s.im)>a){u=!1;break}}if(u){let i=e==="complex64"?"float32":"float64",s=S.zeros(Array.from(r.shape),i),c=s.data;for(let l=0;l<n;l++){let f=r.iget(l);c[l]=f.re}return s}}return r.copy()}return r.copy()}function Dp(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function xp(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function Cp(r,t){let n={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[t];return n?n.includes(r):!1}function Sp(r,t){let e=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],n=e.indexOf(r),o=e.indexOf(t);return n<=o?r:t}function qr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let u=a.length-t+n,i=u<0?1:a[u];if(i!==1){if(o===1)o=i;else if(o!==i)return null}}e[n]=o}return e}function ED(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let u=0;u<n;u++){let i=o-n+u,s=r[u],c=e[i];if(s===c)a[i]=t[u];else if(s===1)a[i]=0;else throw new Error("Invalid broadcast")}return a}function _r(r,t){let e=ED(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function tt(r,t){return[r[t*2],r[t*2+1]]}function wp(r,t){if(B(r.dtype))return tt(r.data,t);let e=r.iget(t);return e instanceof U?[e.re,e.im]:[Number(e),0]}function Ct(r,t,e){let n=qr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=_r(r,n),a=_r(t,n),u=n.reduce((s,c)=>s*c,1),i=new Uint8Array(u);for(let s=0;s<u;s++){let[c,l]=wp(o,s),[f,m]=wp(a,s);i[s]=e(c,l,f,m)?1:0}return S.fromData(i,n,"bool")}function Ip(r,t){return typeof t=="number"?OD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o?e>o:n>a):Ir(r,t,(e,n)=>e>n)}function zp(r,t){return typeof t=="number"?UD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):Ir(r,t,(e,n)=>e>=n)}function _p(r,t){return typeof t=="number"?$D(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o?e<o:n<a):Ir(r,t,(e,n)=>e<n)}function Mp(r,t){return typeof t=="number"?kD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):Ir(r,t,(e,n)=>e<=n)}function vp(r,t){return typeof t=="number"?RD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e===o&&n===a):Ir(r,t,(e,n)=>e===n)}function Fp(r,t){return typeof t=="number"?qD(r,t):B(r.dtype)||B(t.dtype)?Ct(r,t,(e,n,o,a)=>e!==o||n!==a):Ir(r,t,(e,n)=>e!==n)}function lu(r,t,e=1e-5,n=1e-8){return typeof t=="number"?VD(r,t,e,n):Ir(r,t,(o,a)=>{let u=Math.abs(o-a),i=n+e*Math.abs(a);return u<=i})}function Bp(r,t,e=1e-5,n=1e-8){let o=lu(r,t,e,n),a=o.data;for(let u=0;u<o.size;u++)if(a[u]===0)return!1;return!0}function Tp(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=qr(e);if(n===null)return!1;let o=_r(r,n),a=_r(t,n),u=n.length,i=n.reduce((l,f)=>l*f,1),s=E(o.dtype),c=E(a.dtype);for(let l=0;l<i;l++){let f=l,m=new Array(u);for(let d=u-1;d>=0;d--)m[d]=f%n[d],f=Math.floor(f/n[d]);let p=o.get(...m),y=a.get(...m);if(s||c){let d=typeof p=="bigint"?p:BigInt(Number(p)),b=typeof y=="bigint"?y:BigInt(Number(y));if(d!==b)return!1}else if(p!==y)return!1}return!0}function OD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s>t:c>0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re>t:u.im>0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]>t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))>t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function UD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s>=t:c>=0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re>=t:u.im>=0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]>=t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))>=t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function $D(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s<t:c<0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re<t:u.im<0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]<t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))<t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function kD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.isCContiguous;if(B(r.dtype))if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++){let[s,c]=tt(a,u+i);e[i]=(s!==t?s<=t:c<=0)?1:0}}else for(let a=0;a<n;a++){let u=r.iget(a);e[a]=(u.re!==t?u.re<=t:u.im<=0)?1:0}else if(o){let a=r.data,u=r.offset;for(let i=0;i<n;i++)e[i]=a[u+i]<=t?1:0}else for(let a=0;a<n;a++)e[a]=Number(r.iget(a))<=t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function RD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.dtype,a=r.isCContiguous;if(B(o))if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++){let[c,l]=tt(u,i+s);e[s]=c===t&&l===0?1:0}}else for(let u=0;u<n;u++){let i=r.iget(u);e[u]=i.re===t&&i.im===0?1:0}else if(E(o)){let u=BigInt(Math.round(t));if(a){let i=r.data,s=r.offset;for(let c=0;c<n;c++)e[c]=i[s+c]===u?1:0}else for(let i=0;i<n;i++)e[i]=r.iget(i)===u?1:0}else if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++)e[s]=u[i+s]===t?1:0}else for(let u=0;u<n;u++)e[u]=Number(r.iget(u))===t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function qD(r,t){let e=new Uint8Array(r.size),n=r.size,o=r.dtype,a=r.isCContiguous;if(B(o))if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++){let[c,l]=tt(u,i+s);e[s]=c!==t||l!==0?1:0}}else for(let u=0;u<n;u++){let i=r.iget(u);e[u]=i.re!==t||i.im!==0?1:0}else if(a){let u=r.data,i=r.offset;for(let s=0;s<n;s++)e[s]=u[i+s]!==t?1:0}else for(let u=0;u<n;u++)e[u]=Number(r.iget(u))!==t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function VD(r,t,e,n){let o=new Uint8Array(r.size),a=r.size,u=n+e*Math.abs(t);if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<a;c++){let l=Math.abs(Number(i[s+c])-t);o[c]=l<=u?1:0}}else for(let i=0;i<a;i++){let s=Math.abs(Number(r.iget(i))-t);o[i]=s<=u?1:0}return S.fromData(o,Array.from(r.shape),"bool")}function xn(r,t){let e=typeof t=="number"?t:z(t);return v(tp(z(r),e))}function Cn(r,t){let e=typeof t=="number"?t:z(t);return v(ep(z(r),e))}function Sn(r){return v(np(z(r)))}function wn(r,t){let e=typeof t=="number"?t:z(t);return v(op(z(r),e))}function In(r){return v(ap(z(r)))}function zn(r){return v(sp(z(r)))}function _n(r){return v(ip(z(r)))}function Mn(r){return v(up(z(r)))}function fu(r){return v(Ap(z(r)))}function mu(r){return v(gp(z(r)))}function pu(r){return v(pp(z(r)))}function ya(r){return yp(z(r))}function yu(r){return v(dp(z(r)))}function da(r){return bp(z(r))}function du(r,t){return v(Np(z(r),t))}function ba(r){return hp(z(r))}function Aa(r){return Dp(r)}function ga(r){return xp(r)}function ha(r,t){return Cp(r,t)}function Na(r,t){return Sp(r,t)}function vn(r,t){let e=typeof t=="number"?t:z(t);return v(cp(z(r),e))}function Fn(r){return v(lp(z(r)))}function Bn(r,t){let e=typeof t=="number"?t:z(t);return v(fp(z(r),e))}function Tn(r){return v(mp(z(r)))}function En(r,t){return v(Ip(z(r),typeof t=="number"?t:z(t)))}function On(r,t){return v(zp(z(r),typeof t=="number"?t:z(t)))}function Un(r,t){return v(_p(z(r),typeof t=="number"?t:z(t)))}function $n(r,t){return v(Mp(z(r),typeof t=="number"?t:z(t)))}function kn(r,t){return v(vp(z(r),typeof t=="number"?t:z(t)))}function Rn(r,t){return v(Fp(z(r),typeof t=="number"?t:z(t)))}function qn(r,t,e=1e-5,n=1e-8){return v(lu(z(r),typeof t=="number"?t:z(t),e,n))}function St(r,t,e=1e-5,n=1e-8){return Bp(z(r),typeof t=="number"?t:z(t),e,n)}function gr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function et(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Op(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data,u=r.offset,i=r.strides;if(n===0)return r.copy();let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let c=r.copy(),l=c.data,f=e[s],m=Array.from(e).filter((y,d)=>d!==s),p=m.length===0?1:m.reduce((y,d)=>y*d,1);if(B(o)){let y=a,d=l;for(let b=0;b<p;b++){let A=[];for(let g=0;g<f;g++){let h=G(b,s,g,e),N=Z(h,i,u);A.push({re:y[N*2],im:y[N*2+1],idx:g})}A.sort((g,h)=>et(g.re,g.im,h.re,h.im));for(let g=0;g<f;g++){let h=G(b,s,g,e),N=xr(h,e);d[N*2]=A[g].re,d[N*2+1]=A[g].im}}}else if(E(o)){let y=a,d=l;for(let b=0;b<p;b++){let A=[];for(let g=0;g<f;g++){let h=G(b,s,g,e),N=Z(h,i,u);A.push({value:y[N],idx:g})}A.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<f;g++){let h=G(b,s,g,e),N=xr(h,e);d[N]=A[g].value}}}else for(let y=0;y<p;y++){let d=[];for(let b=0;b<f;b++){let A=G(y,s,b,e),g=Z(A,i,u);d.push(Number(a[g]))}d.sort((b,A)=>isNaN(b)&&isNaN(A)?0:isNaN(b)?1:isNaN(A)?-1:b-A);for(let b=0;b<f;b++){let A=G(y,s,b,e),g=xr(A,e);l[g]=d[b]}}return c}function Up(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data,u=r.offset,i=r.strides;if(n===0)return S.zeros([0],"int32");let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let c=S.zeros(Array.from(e),"int32"),l=c.data,f=e[s],m=Array.from(e).filter((y,d)=>d!==s),p=m.length===0?1:m.reduce((y,d)=>y*d,1);if(B(o)){let y=a;for(let d=0;d<p;d++){let b=[];for(let A=0;A<f;A++){let g=G(d,s,A,e),h=Z(g,i,u);b.push({re:y[h*2],im:y[h*2+1],idx:A})}b.sort((A,g)=>et(A.re,A.im,g.re,g.im));for(let A=0;A<f;A++){let g=G(d,s,A,e),h=xr(g,e);l[h]=b[A].idx}}}else if(E(o)){let y=a;for(let d=0;d<p;d++){let b=[];for(let A=0;A<f;A++){let g=G(d,s,A,e),h=Z(g,i,u);b.push({value:y[h],idx:A})}b.sort((A,g)=>A.value<g.value?-1:A.value>g.value?1:0);for(let A=0;A<f;A++){let g=G(d,s,A,e),h=xr(g,e);l[h]=b[A].idx}}}else for(let y=0;y<p;y++){let d=[];for(let b=0;b<f;b++){let A=G(y,s,b,e),g=Z(A,i,u);d.push({value:Number(a[g]),idx:b})}d.sort((b,A)=>isNaN(b.value)&&isNaN(A.value)?0:isNaN(b.value)?1:isNaN(A.value)?-1:b.value-A.value);for(let b=0;b<f;b++){let A=G(y,s,b,e),g=xr(A,e);l[g]=d[b].idx}}return c}function $p(r){if(r.length===0)return S.zeros([0],"int32");let e=r[0].size;for(let l of r){if(l.ndim!==1)throw new Error("keys must be 1D arrays");if(l.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let l=0;l<e;l++)n.push(l);let o=r.map(l=>B(l.dtype)),a=r.map(l=>l.isCContiguous),u=r.map(l=>l.data),i=r.map(l=>l.offset);n.sort((l,f)=>{for(let m=r.length-1;m>=0;m--)if(o[m]){let p,y,d,b;if(a[m]){let A=u[m],g=i[m];p=A[(g+l)*2],y=A[(g+l)*2+1],d=A[(g+f)*2],b=A[(g+f)*2+1]}else{let A=r[m].iget(l),g=r[m].iget(f);p=A.re,y=A.im,d=g.re,b=g.im}if(p<d)return-1;if(p>d)return 1;if(y<b)return-1;if(y>b)return 1}else{let p,y;if(a[m]){let d=u[m],b=i[m];p=Number(d[b+l]),y=Number(d[b+f])}else p=Number(r[m].iget(l)),y=Number(r[m].iget(f));if(isNaN(p)&&isNaN(y))continue;if(isNaN(p))return 1;if(isNaN(y)||p<y)return-1;if(p>y)return 1}return 0});let s=S.zeros([e],"int32"),c=s.data;for(let l=0;l<e;l++)c[l]=n[l];return s}function PD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],i=r[n],s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++){let m=r[f],p=isNaN(m),y=isNaN(c);!p&&(y||m<=c)&&([r[l],r[f]]=[r[f],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function jD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],u=r[o],i=r[n],s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++)r[f]<=c&&([r[l],r[f]]=[r[f],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function LD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,i=r[n].value,s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++){let m=r[f].value,p=isNaN(m),y=isNaN(c);!p&&(y||m<=c)&&([r[l],r[f]]=[r[f],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function WD(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,u=r[o].value,i=r[n].value,s;a<=u&&u<=i||i<=u&&u<=a?s=o:u<=a&&a<=i||i<=a&&a<=u?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let f=e;f<n;f++)r[f].value<=c&&([r[l],r[f]]=[r[f],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function kp(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[u],s=t;if(s<0&&(s=i+s),s<0||s>=i)throw new Error(`kth(=${t}) out of bounds (${i})`);let c=r.copy(),l=c.data,f=Array.from(n).filter((p,y)=>y!==u),m=f.length===0?1:f.reduce((p,y)=>p*y,1);if(E(a)){let p=l;for(let y=0;y<m;y++){let d=[];for(let b=0;b<i;b++){let A=G(y,u,b,n),g=xr(A,n);d.push(p[g])}jD(d,s);for(let b=0;b<i;b++){let A=G(y,u,b,n),g=xr(A,n);p[g]=d[b]}}}else for(let p=0;p<m;p++){let y=[];for(let d=0;d<i;d++){let b=G(p,u,d,n),A=xr(b,n);y.push(Number(l[A]))}PD(y,s);for(let d=0;d<i;d++){let b=G(p,u,d,n),A=xr(b,n);l[A]=y[d]}}return c}function Rp(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,u=r.data,i=r.offset,s=r.strides;if(o===0)return S.zeros([0],"int32");let c=e;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let l=n[c],f=t;if(f<0&&(f=l+f),f<0||f>=l)throw new Error(`kth(=${t}) out of bounds (${l})`);let m=S.zeros(Array.from(n),"int32"),p=m.data,y=Array.from(n).filter((b,A)=>A!==c),d=y.length===0?1:y.reduce((b,A)=>b*A,1);if(E(a)){let b=u;for(let A=0;A<d;A++){let g=[];for(let h=0;h<l;h++){let N=G(A,c,h,n),D=Z(N,s,i);g.push({value:b[D],idx:h})}WD(g,f);for(let h=0;h<l;h++){let N=G(A,c,h,n),D=xr(N,n);p[D]=g[h].idx}}}else for(let b=0;b<d;b++){let A=[];for(let g=0;g<l;g++){let h=G(b,c,g,n),N=Z(h,s,i);A.push({value:Number(u[N]),idx:g})}LD(A,f);for(let g=0;g<l;g++){let h=G(b,c,g,n),N=xr(h,n);p[N]=A[g].idx}}return m}function qp(r){let t=r.dtype,e=r.size,n=r.isCContiguous,o=r.data,a=r.offset;if(B(t)){let u=[];if(n){let c=o;for(let l=0;l<e;l++)u.push({re:c[(a+l)*2],im:c[(a+l)*2+1]})}else for(let c=0;c<e;c++){let l=r.iget(c);u.push({re:l.re,im:l.im})}u.sort((c,l)=>et(c.re,c.im,l.re,l.im));let i=S.zeros([e],"complex128"),s=i.data;for(let c=0;c<e;c++)s[c*2]=u[c].re,s[c*2+1]=u[c].im;return i}else{let u=[];if(n)for(let c=0;c<e;c++)u.push(Number(o[a+c]));else for(let c=0;c<e;c++)u.push(Number(r.iget(c)));u.sort((c,l)=>isNaN(c)&&isNaN(l)?0:isNaN(c)?1:isNaN(l)?-1:c-l);let i=S.zeros([e],"complex128"),s=i.data;for(let c=0;c<e;c++)s[c*2]=u[c],s[c*2+1]=0;return i}}function bu(r){let t=r.shape,e=t.length,n=r.size,o=B(r.dtype),a=r.isCContiguous,u=r.data,i=r.offset,s=[];for(let p=0;p<e;p++)s.push([]);let c=[],l=1;for(let p=e-1;p>=0;p--)c.unshift(l),l*=t[p];if(a){for(let p=0;p<n;p++)if(gr(u,i+p,o)){let y=p;for(let d=0;d<e;d++){let b=Math.floor(y/c[d]);y=y%c[d],s[d].push(b)}}}else for(let p=0;p<n;p++){let y=r.iget(p);if(o?y.re!==0||y.im!==0:!!y){let b=p;for(let A=0;A<e;A++){let g=Math.floor(b/c[A]);b=b%c[A],s[A].push(g)}}}let f=s[0]?.length??0,m=[];for(let p=0;p<e;p++){let y=S.zeros([f],"int32"),d=y.data;for(let b=0;b<f;b++)d[b]=s[p][b];m.push(y)}return m}function Vp(r){let t=r.shape,e=t.length,n=r.size,o=B(r.dtype),a=r.isCContiguous,u=r.data,i=r.offset,s=[],c=[],l=1;for(let d=e-1;d>=0;d--)c.unshift(l),l*=t[d];if(a){for(let d=0;d<n;d++)if(gr(u,i+d,o)){let b=[],A=d;for(let g=0;g<e;g++){let h=Math.floor(A/c[g]);A=A%c[g],b.push(h)}s.push(b)}}else for(let d=0;d<n;d++){let b=r.iget(d);if(o?b.re!==0||b.im!==0:!!b){let g=[],h=d;for(let N=0;N<e;N++){let D=Math.floor(h/c[N]);h=h%c[N],g.push(D)}s.push(g)}}let f=s.length,m=e===0?[f,1]:[f,e],p=S.zeros(m,"int32"),y=p.data;for(let d=0;d<f;d++){let b=s[d];for(let A=0;A<(e===0?1:e);A++)y[d*(e===0?1:e)+A]=b[A]??0}return p}function Pp(r){let t=r.size,e=B(r.dtype),n=r.isCContiguous,o=r.data,a=r.offset,u=[];if(n)for(let c=0;c<t;c++)gr(o,a+c,e)&&u.push(c);else for(let c=0;c<t;c++){let l=r.iget(c);(e?l.re!==0||l.im!==0:l)&&u.push(c)}let i=S.zeros([u.length],"int32"),s=i.data;for(let c=0;c<u.length;c++)s[c]=u[c];return i}function jp(r,t,e){if(t===void 0&&e===void 0)return bu(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,u=Math.max(n.length,o.length,a.length),i=R=>{let Y=Array(u).fill(1);for(let X=0;X<R.length;X++)Y[u-R.length+X]=R[X];return Y},s=i(n),c=i(o),l=i(a),f=[];for(let R=0;R<u;R++){let Y=[s[R],c[R],l[R]],X=Math.max(...Y);for(let J of Y)if(J!==1&&J!==X)throw new Error("operands could not be broadcast together");f.push(X)}let m=t.dtype,p=S.zeros(f,m),y=p.data,d=(R,Y)=>{let X=[],J=1;for(let rr=R.length-1;rr>=0;rr--)X.unshift(J),J*=R[rr];for(;X.length<Y.length;)X.unshift(0);for(let rr=0;rr<Y.length;rr++)Y[rr]===1&&f[rr]!==1&&(X[rr]=0);return X},b=d(n,s),A=d(o,c),g=d(a,l),h=[],N=1;for(let R=f.length-1;R>=0;R--)h.unshift(N),N*=f[R];let D=f.reduce((R,Y)=>R*Y,1),x=B(r.dtype),C=B(m),w=r.isCContiguous,_=r.data,I=r.offset,M=t.isCContiguous,T=t.data,O=t.offset,$=e.isCContiguous,k=e.data,V=e.offset;if(n.length===f.length&&o.length===f.length&&a.length===f.length&&n.every((R,Y)=>R===f[Y])&&o.every((R,Y)=>R===f[Y])&&a.every((R,Y)=>R===f[Y])&&w&&M&&$)if(C){let R=y,Y=T,X=k;for(let J=0;J<D;J++)gr(_,I+J,x)?(R[J*2]=Y[(O+J)*2],R[J*2+1]=Y[(O+J)*2+1]):(R[J*2]=X[(V+J)*2],R[J*2+1]=X[(V+J)*2+1])}else if(E(m)){let R=y,Y=T,X=k;for(let J=0;J<D;J++)gr(_,I+J,x)?R[J]=Y[O+J]:R[J]=X[V+J]}else for(let R=0;R<D;R++)gr(_,I+R,x)?y[R]=T[O+R]:y[R]=k[V+R];else for(let R=0;R<D;R++){let Y=R,X=0,J=0,rr=0;for(let nr=0;nr<u;nr++){let dr=Math.floor(Y/h[nr]);Y=Y%h[nr],X+=dr*b[nr],J+=dr*A[nr],rr+=dr*g[nr]}let yr;if(w)yr=gr(_,I+X,x);else{let nr=r.iget(X);yr=x?nr.re!==0||nr.im!==0:!!nr}if(yr)if(C)if(M){let nr=T;y[R*2]=nr[(O+J)*2],y[R*2+1]=nr[(O+J)*2+1]}else{let nr=t.iget(J);y[R*2]=nr.re,y[R*2+1]=nr.im}else M?y[R]=T[O+J]:y[R]=t.iget(J);else if(C)if($){let nr=k;y[R*2]=nr[(V+rr)*2],y[R*2+1]=nr[(V+rr)*2+1]}else{let nr=e.iget(rr);y[R*2]=nr.re,y[R*2+1]=nr.im}else $?y[R]=k[V+rr]:y[R]=e.iget(rr)}return p}function Lp(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.size,o=t.size,a=B(r.dtype),u=r.isCContiguous,i=r.data,s=r.offset,c=t.isCContiguous,l=t.data,f=t.offset,m=S.zeros([o],"int32"),p=m.data;if(a)if(u&&c){let y=i,d=l;for(let b=0;b<o;b++){let A=d[(f+b)*2],g=d[(f+b)*2+1],h=0,N=n;if(e==="left")for(;h<N;){let D=Math.floor((h+N)/2),x=y[(s+D)*2],C=y[(s+D)*2+1];et(x,C,A,g)<0?h=D+1:N=D}else for(;h<N;){let D=Math.floor((h+N)/2),x=y[(s+D)*2],C=y[(s+D)*2+1];et(x,C,A,g)<=0?h=D+1:N=D}p[b]=h}}else for(let y=0;y<o;y++){let d=t.iget(y),b=d.re,A=d.im,g=0,h=n;if(e==="left")for(;g<h;){let N=Math.floor((g+h)/2),D=r.iget(N);et(D.re,D.im,b,A)<0?g=N+1:h=N}else for(;g<h;){let N=Math.floor((g+h)/2),D=r.iget(N);et(D.re,D.im,b,A)<=0?g=N+1:h=N}p[y]=g}else if(u&&c)for(let y=0;y<o;y++){let d=Number(l[f+y]),b=0,A=n;if(e==="left")for(;b<A;){let g=Math.floor((b+A)/2);Number(i[s+g])<d?b=g+1:A=g}else for(;b<A;){let g=Math.floor((b+A)/2);Number(i[s+g])<=d?b=g+1:A=g}p[y]=b}else for(let y=0;y<o;y++){let d=Number(t.iget(y)),b=0,A=n;if(e==="left")for(;b<A;){let g=Math.floor((b+A)/2);Number(r.iget(g))<d?b=g+1:A=g}else for(;b<A;){let g=Math.floor((b+A)/2);Number(r.iget(g))<=d?b=g+1:A=g}p[y]=b}return m}function Wp(r,t){let e=t.dtype,n=B(r.dtype),o=B(e),a=Math.min(r.size,t.size),u=r.isCContiguous,i=r.data,s=r.offset,c=t.isCContiguous,l=t.data,f=t.offset,m=0;if(u)for(let b=0;b<a;b++)gr(i,s+b,n)&&m++;else for(let b=0;b<a;b++){let A=r.iget(b);(n?A.re!==0||A.im!==0:A)&&m++}let p=S.zeros([m],e),y=p.data,d=0;if(u&&c)if(E(e)){let b=y,A=l;for(let g=0;g<a;g++)gr(i,s+g,n)&&(b[d++]=A[f+g])}else if(o){let b=y,A=l;for(let g=0;g<a;g++)gr(i,s+g,n)&&(b[d*2]=A[(f+g)*2],b[d*2+1]=A[(f+g)*2+1],d++)}else for(let b=0;b<a;b++)gr(i,s+b,n)&&(y[d++]=l[f+b]);else{let b=u?A=>gr(i,s+A,n):A=>{let g=r.iget(A);if(n){let h=g;return h.re!==0||h.im!==0}return!!g};if(E(e)){let A=y;for(let g=0;g<a;g++)b(g)&&(A[d++]=t.iget(g))}else if(o){let A=y;for(let g=0;g<a;g++)if(b(g)){let h=t.iget(g);A[d*2]=h.re,A[d*2+1]=h.im,d++}}else for(let A=0;A<a;A++)b(A)&&(y[d++]=t.iget(A))}return p}function Au(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,u=r.offset,i=r.strides,s=B(r.dtype),c=r.isCContiguous;if(t===void 0){let b=0;if(c)for(let A=0;A<a;A++)gr(o,u+A,s)&&b++;else for(let A=0;A<a;A++){let g=r.iget(A);if(s){let h=g;(h.re!==0||h.im!==0)&&b++}else g!==0&&g!==BigInt(0)&&b++}return b}let l=t;if(l<0&&(l=n+l),l<0||l>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let f=Array.from(e).filter((b,A)=>A!==l);if(f.length===0)return Au(r);let m=S.zeros(f,"int32"),p=m.data,y=e[l],d=f.reduce((b,A)=>b*A,1);for(let b=0;b<d;b++){let A=0;for(let g=0;g<y;g++){let h=G(b,l,g,e),N=Z(h,i,u);gr(o,N,s)&&A++}p[b]=A}return m}function Vn(r,t=-1){return v(Op(z(r),t))}function Pn(r,t=-1){return v(Up(z(r),t))}function gu(r){return v($p(r.map(t=>z(t))))}function jn(r,t,e=-1){return v(kp(z(r),t,e))}function Ln(r,t,e=-1){return v(Rp(z(r),t,e))}function hu(r){return v(qp(z(r)))}function Wn(r){return $r(bu(z(r)))}function Gn(r){return v(Vp(z(r)))}function Nu(r){return v(Pp(z(r)))}function Da(r,t,e){let n=jp(z(r),t?z(t):void 0,e?z(e):void 0);return Array.isArray(n)?$r(n):v(n)}function wt(r,t,e="left"){return v(Lp(z(r),z(t),e))}function Du(r,t){return v(Wp(z(r),z(t)))}function xa(r,t){let e=Au(z(r),t);return typeof e=="number"?e:v(e)}function Mr(r,t){if(!Ur(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function Yn(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Zp(r,t){return Mr(r.dtype,"bitwise_and"),typeof t=="number"?ZD(r,t):(Mr(t.dtype,"bitwise_and"),Yn(r,t)?YD(r,t):sr(r,t,(e,n)=>e&n,"bitwise_and"))}function YD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[i+m]=="bigint"?a[i+m]:BigInt(Math.round(Number(a[i+m]))),y=typeof u[s+m]=="bigint"?u[s+m]:BigInt(Math.round(Number(u[s+m])));l[m]=p&y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[i+y]&p[s+y]}}else for(let l=0;l<o;l++)c[l]=a[i+l]&u[s+l];return n}function ZD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]&f;else for(let p=0;p<u;p++)l[p]=m[a+p]&f}else for(let m=0;m<u;m++)l[m]=r.iget(m)&f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]&t;else for(let l=0;l<u;l++)c[l]=o[a+l]&t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))&t;return s}function Xp(r,t){return Mr(r.dtype,"bitwise_or"),typeof t=="number"?JD(r,t):(Mr(t.dtype,"bitwise_or"),Yn(r,t)?XD(r,t):sr(r,t,(e,n)=>e|n,"bitwise_or"))}function XD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[i+m]=="bigint"?a[i+m]:BigInt(Math.round(Number(a[i+m]))),y=typeof u[s+m]=="bigint"?u[s+m]:BigInt(Math.round(Number(u[s+m])));l[m]=p|y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[i+y]|p[s+y]}}else for(let l=0;l<o;l++)c[l]=a[i+l]|u[s+l];return n}function JD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]|f;else for(let p=0;p<u;p++)l[p]=m[a+p]|f}else for(let m=0;m<u;m++)l[m]=r.iget(m)|f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]|t;else for(let l=0;l<u;l++)c[l]=o[a+l]|t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))|t;return s}function Jp(r,t){return Mr(r.dtype,"bitwise_xor"),typeof t=="number"?QD(r,t):(Mr(t.dtype,"bitwise_xor"),Yn(r,t)?KD(r,t):sr(r,t,(e,n)=>e^n,"bitwise_xor"))}function KD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;if(!E(r.dtype)||!E(t.dtype))for(let m=0;m<o;m++){let p=typeof a[i+m]=="bigint"?a[i+m]:BigInt(Math.round(Number(a[i+m]))),y=typeof u[s+m]=="bigint"?u[s+m]:BigInt(Math.round(Number(u[s+m])));l[m]=p^y}else{let m=a,p=u;for(let y=0;y<o;y++)l[y]=m[i+y]^p[s+y]}}else for(let l=0;l<o;l++)c[l]=a[i+l]^u[s+l];return n}function QD(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]^f;else for(let p=0;p<u;p++)l[p]=m[a+p]^f}else for(let m=0;m<u;m++)l[m]=r.iget(m)^f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]^t;else for(let l=0;l<u;l++)c[l]=o[a+l]^t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))^t;return s}function Su(r){Mr(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.offset,a=r.size,u=r.isCContiguous,i=S.zeros(e,t),s=i.data;if(E(t)){let c=s;if(u){let l=n;if(o===0)for(let f=0;f<a;f++)c[f]=~l[f];else for(let f=0;f<a;f++)c[f]=~l[o+f]}else for(let l=0;l<a;l++)c[l]=~r.iget(l)}else if(u)if(o===0)for(let c=0;c<a;c++)s[c]=~n[c];else for(let c=0;c<a;c++)s[c]=~n[o+c];else for(let c=0;c<a;c++)s[c]=~Number(r.iget(c));return i}function Kp(r){return Su(r)}function Qp(r,t){if(Mr(r.dtype,"left_shift"),typeof t=="number")return Gp(r,t);if(Mr(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=Number(t.iget(0));return Gp(r,e)}return Yn(r,t)?HD(r,t):sr(r,t,(e,n)=>e<<n,"left_shift")}function HD(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;for(let f=0;f<o;f++){let m=typeof a[i+f]=="bigint"?a[i+f]:BigInt(Math.round(Number(a[i+f]))),p=typeof u[s+f]=="bigint"?u[s+f]:BigInt(Math.round(Number(u[s+f])));l[f]=m<<p}}else for(let l=0;l<o;l++)c[l]=a[i+l]<<u[s+l];return n}function Gp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]<<f;else for(let p=0;p<u;p++)l[p]=m[a+p]<<f}else for(let m=0;m<u;m++)l[m]=r.iget(m)<<f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]<<t;else for(let l=0;l<u;l++)c[l]=o[a+l]<<t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))<<t;return s}function Hp(r,t){if(Mr(r.dtype,"right_shift"),typeof t=="number")return Yp(r,t);if(Mr(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=Number(t.iget(0));return Yp(r,e)}return Yn(r,t)?rx(r,t):sr(r,t,(e,n)=>e>>n,"right_shift")}function rx(r,t){let e=or(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,u=t.data,i=r.offset,s=t.offset,c=n.data;if(E(e)){let l=c;for(let f=0;f<o;f++){let m=typeof a[i+f]=="bigint"?a[i+f]:BigInt(Math.round(Number(a[i+f]))),p=typeof u[s+f]=="bigint"?u[s+f]:BigInt(Math.round(Number(u[s+f])));l[f]=m>>p}}else for(let l=0;l<o;l++)c[l]=a[i+l]>>u[s+l];return n}function Yp(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.offset,u=r.size,i=r.isCContiguous,s=S.zeros(n,e),c=s.data;if(E(e)){let l=c,f=BigInt(Math.round(t));if(i){let m=o;if(a===0)for(let p=0;p<u;p++)l[p]=m[p]>>f;else for(let p=0;p<u;p++)l[p]=m[a+p]>>f}else for(let m=0;m<u;m++)l[m]=r.iget(m)>>f}else if(i)if(a===0)for(let l=0;l<u;l++)c[l]=o[l]>>t;else for(let l=0;l<u;l++)c[l]=o[a+l]>>t;else for(let l=0;l<u;l++)c[l]=Number(r.iget(l))>>t;return s}function ry(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],u=Math.ceil(a/8),i=[...n];i[t]=u;let s=S.zeros(i,"uint8"),c=s.data,l=r.offset,f=r.isCContiguous;if(o===1){for(let g=0;g<u;g++){let h=0;for(let N=0;N<8;N++){let D=g*8+N;if(D<a){let x=f?Number(r.data[l+D])!==0?1:0:Number(r.iget(D))!==0?1:0;e==="big"?h|=x<<7-N:h|=x<<N}}c[g]=h}return s}let m=n.slice(0,t),p=n.slice(t+1),y=m.reduce((g,h)=>g*h,1),d=p.reduce((g,h)=>g*h,1),b=Ca(n),A=Ca(i);for(let g=0;g<y;g++)for(let h=0;h<d;h++)for(let N=0;N<u;N++){let D=0;for(let _=0;_<8;_++){let I=N*8+_;if(I<a){let M=0,T=g;for(let k=0;k<t;k++){let V=k<t-1?m.slice(k+1).reduce((R,Y)=>R*Y,1):1,j=Math.floor(T/V);T%=V,M+=j*b[k]}M+=I*b[t];let O=h;for(let k=t+1;k<o;k++){let V=k<o-1?p.slice(k-t).reduce((R,Y)=>R*Y,1):1,j=Math.floor(O/V);O%=V,M+=j*b[k]}let $=f?Number(r.data[l+M])!==0?1:0:Number(r.iget(M))!==0?1:0;e==="big"?D|=$<<7-_:D|=$<<_}}let x=0,C=g;for(let _=0;_<t;_++){let I=_<t-1?m.slice(_+1).reduce((T,O)=>T*O,1):1,M=Math.floor(C/I);C%=I,x+=M*A[_]}x+=N*A[t];let w=h;for(let _=t+1;_<o;_++){let I=_<o-1?p.slice(_-t).reduce((T,O)=>T*O,1):1,M=Math.floor(w/I);w%=I,x+=M*A[_]}c[x]=D}return s}function ty(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=o[t],i=u*8;e>=0&&(i=e);let s=[...o];s[t]=i;let c=S.zeros(s,"uint8"),l=c.data,f=r.offset,m=r.isCContiguous;if(a===1){for(let h=0;h<u;h++){let N=Number(m?r.data[f+h]:r.iget(h));for(let D=0;D<8;D++){let x=h*8+D;if(x>=i)break;n==="big"?l[x]=N>>7-D&1:l[x]=N>>D&1}}return c}let p=o.slice(0,t),y=o.slice(t+1),d=p.reduce((h,N)=>h*N,1),b=y.reduce((h,N)=>h*N,1),A=Ca(o),g=Ca(s);for(let h=0;h<d;h++)for(let N=0;N<b;N++)for(let D=0;D<u;D++){let x=0,C=h;for(let I=0;I<t;I++){let M=I<t-1?p.slice(I+1).reduce((O,$)=>O*$,1):1,T=Math.floor(C/M);C%=M,x+=T*A[I]}x+=D*A[t];let w=N;for(let I=t+1;I<a;I++){let M=I<a-1?y.slice(I-t).reduce((O,$)=>O*$,1):1,T=Math.floor(w/M);w%=M,x+=T*A[I]}let _=Number(m?r.data[f+x]:r.iget(x));for(let I=0;I<8;I++){let M=D*8+I;if(M>=i)break;let T=0;C=h;for(let O=0;O<t;O++){let $=O<t-1?p.slice(O+1).reduce((V,j)=>V*j,1):1,k=Math.floor(C/$);C%=$,T+=k*g[O]}T+=M*g[t],w=N;for(let O=t+1;O<a;O++){let $=O<a-1?y.slice(O-t).reduce((V,j)=>V*j,1):1,k=Math.floor(w/$);w%=$,T+=k*g[O]}n==="big"?l[T]=_>>7-I&1:l[T]=_>>I&1}}return c}function Ca(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}function ey(r){let t=r.dtype;Mr(t,"bitwise_count");let e=Array.from(r.shape),n=r.data,o=r.offset,a=r.size,u=r.isCContiguous,i=S.zeros(e,"uint8"),s=i.data;if(E(t))if(u){let c=n;if(o===0)for(let l=0;l<a;l++)s[l]=Cu(c[l]);else for(let l=0;l<a;l++)s[l]=Cu(c[o+l])}else for(let c=0;c<a;c++)s[c]=Cu(r.iget(c));else if(u)if(o===0)for(let c=0;c<a;c++)s[c]=xu(n[c]);else for(let c=0;c<a;c++)s[c]=xu(n[o+c]);else for(let c=0;c<a;c++)s[c]=xu(Number(r.iget(c)));return i}function xu(r){r=r>>>0;let t=0;for(;r!==0;)r=r&r-1,t++;return t}function Cu(r){r<0n&&(r=BigInt.asUintN(64,r));let t=0;for(;r!==0n;)r=r&r-1n,t++;return t}function Zn(r,t){let e=typeof t=="number"?t:z(t);return v(Zp(z(r),e))}function Xn(r,t){let e=typeof t=="number"?t:z(t);return v(Xp(z(r),e))}function Jn(r,t){let e=typeof t=="number"?t:z(t);return v(Jp(z(r),e))}function Kn(r){return v(Su(z(r)))}function Qn(r){return v(Kp(z(r)))}function Hn(r,t){let e=typeof t=="number"?t:z(t);return v(Qp(z(r),e))}function ro(r,t){let e=typeof t=="number"?t:z(t);return v(Hp(z(r),e))}function wu(r,t,e){return v(ry(z(r),t,e))}function Iu(r,t,e,n){return v(ty(z(r),t,e,n))}function zu(r){return v(ey(z(r)))}function Sa(r){if(!isFinite(r))return r;let t=Math.floor(r),e=r-t;return Math.abs(e-.5)<1e-10?t%2===0?t:t+1:Math.round(r)}function ny(r,t=0){L(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",u=S.zeros(n,a),i=u.data,s=Math.pow(10,t);if(r.isCContiguous){let c=r.data,l=r.offset;for(let f=0;f<o;f++){let m=Number(c[l+f]);i[f]=Sa(m*s)/s}}else for(let c=0;c<o;c++){let l=Number(r.iget(c));i[c]=Sa(l*s)/s}return u}function oy(r){L(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.ceil(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.ceil(Number(r.iget(i)));return a}function ay(r){L(r.dtype,"fix","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.trunc(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.trunc(Number(r.iget(i)));return a}function sy(r){L(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.floor(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.floor(Number(r.iget(i)));return a}function iy(r){L(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Sa(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Sa(Number(r.iget(i)));return a}function uy(r){L(r.dtype,"trunc","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.size,o=t==="float32"?"float32":"float64",a=S.zeros(e,o),u=a.data;if(r.isCContiguous){let i=r.data,s=r.offset;for(let c=0;c<n;c++)u[c]=Math.trunc(Number(i[s+c]))}else for(let i=0;i<n;i++)u[i]=Math.trunc(Number(r.iget(i)));return a}function It(r,t=0){return v(ny(z(r),t))}var wa=It;function to(r){return v(oy(z(r)))}function eo(r){return v(ay(z(r)))}function no(r){return v(sy(z(r)))}function oo(r){return v(iy(z(r)))}function ao(r){return v(uy(z(r)))}function _u(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function nx(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?!0:o||a?!1:r===e&&t===n}function Cr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,u=r.data,i=r.offset;if(B(o)){let N=u,D=[];for(let R=0;R<a;R++)D.push({re:N[(i+R)*2],im:N[(i+R)*2+1],index:R});D.sort((R,Y)=>_u(R.re,R.im,Y.re,Y.im));let x=[],C=[],w=new Array(a),_=[],I,M,T=0;for(let R=0;R<D.length;R++){let{re:Y,im:X,index:J}=D[R];I===void 0||!nx(Y,X,I,M)?(I!==void 0&&_.push(T),x.push({re:Y,im:X}),C.push(J),T=1,I=Y,M=X):T++}T>0&&_.push(T);let O=new Map,$=-1;for(let R=0;R<x.length;R++){let{re:Y,im:X}=x[R];isNaN(Y)||isNaN(X)?$=R:O.set(`${Y},${X}`,R)}for(let R=0;R<a;R++){let Y=N[(i+R)*2],X=N[(i+R)*2+1];isNaN(Y)||isNaN(X)?w[R]=$:w[R]=O.get(`${Y},${X}`)}let k=S.zeros([x.length],o),V=k.data;for(let R=0;R<x.length;R++)V[R*2]=x[R].re,V[R*2+1]=x[R].im;if(!t&&!e&&!n)return k;let j={values:k};if(t){let R=S.zeros([C.length],"int32"),Y=R.data;for(let X=0;X<C.length;X++)Y[X]=C[X];j.indices=R}if(e){let R=S.zeros([w.length],"int32"),Y=R.data;for(let X=0;X<w.length;X++)Y[X]=w[X];j.inverse=R}if(n){let R=S.zeros([_.length],"int32"),Y=R.data;for(let X=0;X<_.length;X++)Y[X]=_[X];j.counts=R}return j}let s=[];for(let N=0;N<a;N++)s.push({value:Number(u[i+N]),index:N});s.sort((N,D)=>isNaN(N.value)&&isNaN(D.value)?0:isNaN(N.value)?1:isNaN(D.value)?-1:N.value-D.value);let c=[],l=[],f=new Array(a),m=[],p,y=0;for(let N=0;N<s.length;N++){let{value:D,index:x}=s[N];p===void 0||isNaN(D)&&!isNaN(p)||!isNaN(D)&&isNaN(p)||!isNaN(D)&&!isNaN(p)&&D!==p?(p!==void 0&&m.push(y),c.push(D),l.push(x),y=1,p=D):y++}y>0&&m.push(y);let d=new Map,b=-1;for(let N=0;N<c.length;N++){let D=c[N];isNaN(D)?b=N:d.set(D,N)}for(let N=0;N<a;N++){let D=Number(u[i+N]);isNaN(D)?f[N]=b:f[N]=d.get(D)}let A=S.zeros([c.length],o),g=A.data;for(let N=0;N<c.length;N++)g[N]=c[N];if(!t&&!e&&!n)return A;let h={values:A};if(t){let N=S.zeros([l.length],"int32"),D=N.data;for(let x=0;x<l.length;x++)D[x]=l[x];h.indices=N}if(e){let N=S.zeros([f.length],"int32"),D=N.data;for(let x=0;x<f.length;x++)D[x]=f[x];h.inverse=N}if(n){let N=S.zeros([m.length],"int32"),D=N.data;for(let x=0;x<m.length;x++)D[x]=m[x];h.counts=N}return h}function Vr(r,t,e,n=0){if(e){let o=Number(r[(n+t)*2]),a=Number(r[(n+t)*2+1]);return`${o},${a}`}return String(Number(r[n+t]))}function cy(r,t){return Mu(r,t)}function ly(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=Cr(t),u=new Set;for(let l=0;l<a.size;l++)u.add(Vr(a.data,l,n));let i=[];for(let l=0;l<o.size;l++){let f=Vr(o.data,l,n);u.has(f)&&i.push(l)}if(n){let l=S.zeros([i.length],e),f=l.data,m=o.data;for(let p=0;p<i.length;p++){let y=i[p];f[p*2]=m[y*2],f[p*2+1]=m[y*2+1]}return l}let s=S.zeros([i.length],e),c=s.data;for(let l=0;l<i.length;l++)c[l]=o.data[i[l]];return s}function Mu(r,t){let e=Array.from(r.shape),n=r.size,o=B(r.dtype),a=new Set;for(let s=0;s<t.size;s++)a.add(Vr(t.data,s,o,t.offset));let u=S.zeros(e,"bool"),i=u.data;for(let s=0;s<n;s++){let c=Vr(r.data,s,o,r.offset);i[s]=a.has(c)?1:0}return u}function fy(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=new Set;for(let c=0;c<t.size;c++)a.add(Vr(t.data,c,n,t.offset));let u=[];for(let c=0;c<o.size;c++){let l=Vr(o.data,c,n);a.has(l)||u.push(c)}if(n){let c=S.zeros([u.length],e),l=c.data,f=o.data;for(let m=0;m<u.length;m++){let p=u[m];l[m*2]=f[p*2],l[m*2+1]=f[p*2+1]}return c}let i=S.zeros([u.length],e),s=i.data;for(let c=0;c<u.length;c++)s[c]=o.data[u[c]];return i}function my(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=Cr(t),u=new Set,i=new Set;for(let p=0;p<o.size;p++)u.add(Vr(o.data,p,n));for(let p=0;p<a.size;p++)i.add(Vr(a.data,p,n));let s=[],c=[];for(let p=0;p<o.size;p++){let y=Vr(o.data,p,n);i.has(y)||s.push(p)}for(let p=0;p<a.size;p++){let y=Vr(a.data,p,n);u.has(y)||c.push(p)}if(n){let p=[],y=o.data,d=a.data;for(let g of s)p.push({re:y[g*2],im:y[g*2+1]});for(let g of c)p.push({re:d[g*2],im:d[g*2+1]});p.sort((g,h)=>_u(g.re,g.im,h.re,h.im));let b=S.zeros([p.length],e),A=b.data;for(let g=0;g<p.length;g++)A[g*2]=p[g].re,A[g*2+1]=p[g].im;return b}let l=[];for(let p of s)l.push(Number(o.data[p]));for(let p of c)l.push(Number(a.data[p]));l.sort((p,y)=>isNaN(p)&&isNaN(y)?0:isNaN(p)?1:isNaN(y)?-1:p-y);let f=S.zeros([l.length],e),m=f.data;for(let p=0;p<l.length;p++)m[p]=l[p];return f}function py(r,t){let e=r.dtype,n=B(e),o=Cr(r),a=Cr(t),u=new Set,i=[];if(n){let f=o.data,m=a.data;for(let d=0;d<o.size;d++){let b=f[d*2],A=f[d*2+1],g=`${b},${A}`;u.has(g)||(u.add(g),i.push({re:b,im:A}))}for(let d=0;d<a.size;d++){let b=m[d*2],A=m[d*2+1],g=`${b},${A}`;u.has(g)||(u.add(g),i.push({re:b,im:A}))}i.sort((d,b)=>_u(d.re,d.im,b.re,b.im));let p=S.zeros([i.length],e),y=p.data;for(let d=0;d<i.length;d++)y[d*2]=i[d].re,y[d*2+1]=i[d].im;return p}let s=[];for(let f=0;f<o.size;f++){let m=Number(o.data[f]),p=String(m);u.has(p)||(u.add(p),s.push(m))}for(let f=0;f<a.size;f++){let m=Number(a.data[f]),p=String(m);u.has(p)||(u.add(p),s.push(m))}s.sort((f,m)=>isNaN(f)&&isNaN(m)?0:isNaN(f)?1:isNaN(m)?-1:f-m);let c=S.zeros([s.length],e),l=c.data;for(let f=0;f<s.length;f++)l[f]=s[f];return c}function yy(r,t="fb"){let e=r.dtype,n=r.data,o=r.size,a=r.offset,u=B(e);if(o===0)return S.zeros([0],e);let i=p=>{if(u){let y=n[(a+p)*2],d=n[(a+p)*2+1];return y===0&&d===0}return Number(n[a+p])===0},s=0;if(t==="f"||t==="fb")for(;s<o&&i(s);)s++;let c=o-1;if(t==="b"||t==="fb")for(;c>=s&&i(c);)c--;if(s>c)return S.zeros([0],e);let l=c-s+1;if(u){let p=S.zeros([l],e),y=p.data;for(let d=0;d<l;d++)y[d*2]=n[(a+s+d)*2],y[d*2+1]=n[(a+s+d)*2+1];return p}let f=S.zeros([l],e),m=f.data;for(let p=0;p<l;p++)m[p]=n[a+s+p];return f}function dy(r){let e=Cr(r,!0,!0,!0);return{values:e.values,indices:e.indices,inverse_indices:e.inverse,counts:e.counts}}function by(r){let e=Cr(r,!1,!1,!0);return{values:e.values,counts:e.counts}}function Ay(r){let e=Cr(r,!1,!0,!1);return{values:e.values,inverse_indices:e.inverse}}function gy(r){return Cr(r)}function Ia(r,t=!1,e=!1,n=!1){let o=Cr(z(r),t,e,n);return"values"in o?{values:v(o.values),indices:o.indices?v(o.indices):void 0,inverse:o.inverse?v(o.inverse):void 0,counts:o.counts?v(o.counts):void 0}:v(o)}function vu(r,t){return v(cy(z(r),z(t)))}function Fu(r,t){return v(ly(z(r),z(t)))}function Bu(r,t){return v(Mu(z(r),z(t)))}function Tu(r,t){return v(fy(z(r),z(t)))}function Eu(r,t){return v(my(z(r),z(t)))}function Ou(r,t){return v(py(z(r),z(t)))}function Uu(r,t){return v(yy(z(r),t))}function za(r){let t=dy(z(r));return{values:v(t.values),indices:v(t.indices),inverse_indices:v(t.inverse_indices),counts:v(t.counts)}}function _a(r){let t=by(z(r));return{values:v(t.values),counts:v(t.counts)}}function Ma(r){let t=Ay(z(r));return{values:v(t.values),inverse_indices:v(t.inverse_indices)}}function $u(r){return v(gy(z(r)))}function hy(r,t,e=0){L(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let i=0;i<o;i++){let s=Number(n[i]);if(s<0||!Number.isInteger(s))throw new Error("'x' argument must contain non-negative integers");s>a&&(a=s)}let u=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let i=t.data,s=new Float64Array(u);for(let c=0;c<o;c++){let l=Number(n[c]);s[l]+=Number(i[c])}return S.fromData(s,[u],"float64")}else{let i=new Float64Array(u);for(let s=0;s<o;s++){let c=Number(n[s]);i[c]++}return S.fromData(i,[u],"float64")}}function Ny(r,t,e=!1){L(r.dtype,"digitize","digitize requires real numbers."),L(t.dtype,"digitize","digitize requires real numbers.");let n=r.data,o=t.data,a=r.size,u=t.size,i=new Float64Array(a),s=!0;u>1&&(s=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),f;if(s)e?f=ax(o,u,l):f=so(o,u,l);else if(e)for(f=0;f<u&&Number(o[f])>=l;)f++;else for(f=0;f<u&&Number(o[f])>l;)f++;i[c]=f}return S.fromData(i,[...r.shape],"float64")}function ax(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<e?n=a+1:o=a}return n}function so(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<=e?n=a+1:o=a}return n}function Dy(r,t=10,e,n=!1,o){L(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&L(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,u=r.size,i;if(typeof t=="number"){let f,m;if(e)[f,m]=e;else{f=1/0,m=-1/0;for(let y=0;y<u;y++){let d=Number(a[y]);d<f&&(f=d),d>m&&(m=d)}f===m&&(f=f-.5,m=m+.5)}i=[];let p=(m-f)/t;for(let y=0;y<=t;y++)i.push(f+y*p)}else{let f=t.data;i=[];for(let m=0;m<t.size;m++)i.push(Number(f[m]))}let s=i.length-1,c=new Float64Array(s),l=o?.data;for(let f=0;f<u;f++){let m=Number(a[f]),p=l?Number(l[f]):1,y=so(i,i.length,m)-1;if(!(y<0)){if(y>=s)if(m===i[s])y=s-1;else continue;c[y]+=p}}if(n){let f=0;for(let m=0;m<s;m++)f+=c[m];for(let m=0;m<s;m++){let p=i[m+1]-i[m];c[m]=c[m]/(f*p)}}return{hist:S.fromData(c,[s],"float64"),bin_edges:S.fromData(new Float64Array(i),[i.length],"float64")}}function xy(r,t,e=10,n,o=!1,a){L(r.dtype,"histogram2d","histogram2d requires real numbers."),L(t.dtype,"histogram2d","histogram2d requires real numbers.");let u=r.data,i=t.data,s=r.size;if(t.size!==s)throw new Error("x and y must have the same length");let c,l,f,m;if(typeof e=="number"?(f=e,m=e):Array.isArray(e)&&e.length===2?(e[0],f=e[0],m=e[1]):(f=10,m=10),typeof f=="number"){let A,g;if(n)[A,g]=n[0];else{A=1/0,g=-1/0;for(let N=0;N<s;N++){let D=Number(u[N]);D<A&&(A=D),D>g&&(g=D)}A===g&&(A-=.5,g+=.5)}c=[];let h=(g-A)/f;for(let N=0;N<=f;N++)c.push(A+N*h)}else{let A=f.data;c=[];for(let g=0;g<f.size;g++)c.push(Number(A[g]))}if(typeof m=="number"){let A,g;if(n)[A,g]=n[1];else{A=1/0,g=-1/0;for(let N=0;N<s;N++){let D=Number(i[N]);D<A&&(A=D),D>g&&(g=D)}A===g&&(A-=.5,g+=.5)}l=[];let h=(g-A)/m;for(let N=0;N<=m;N++)l.push(A+N*h)}else{let A=m.data;l=[];for(let g=0;g<m.size;g++)l.push(Number(A[g]))}let p=c.length-1,y=l.length-1,d=new Float64Array(p*y),b=a?.data;for(let A=0;A<s;A++){let g=Number(u[A]),h=Number(i[A]),N=b?Number(b[A]):1,D=so(c,c.length,g)-1,x=so(l,l.length,h)-1;if(D<0||D>=p)if(g===c[p]&&D===p)D=p-1;else continue;if(x<0||x>=y)if(h===l[y]&&x===y)x=y-1;else continue;d[D*y+x]+=N}if(o){let A=0;for(let g=0;g<d.length;g++)A+=d[g];for(let g=0;g<p;g++)for(let h=0;h<y;h++){let N=c[g+1]-c[g],D=l[h+1]-l[h],x=N*D;d[g*y+h]=d[g*y+h]/(A*x)}}return{hist:S.fromData(d,[p,y],"float64"),x_edges:S.fromData(new Float64Array(c),[c.length],"float64"),y_edges:S.fromData(new Float64Array(l),[l.length],"float64")}}function Cy(r,t=10,e,n=!1,o){L(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,u=r.data,i,s;if(a.length===1)i=a[0],s=1;else if(a.length===2)i=a[0],s=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(s).fill(t);else if(c=t,c.length!==s)throw new Error("bins array length must match number of dimensions");let l=[];for(let A=0;A<s;A++){let g,h;if(e&&e[A])[g,h]=e[A];else{g=1/0,h=-1/0;for(let C=0;C<i;C++){let w=Number(s===1?u[C]:u[C*s+A]);w<g&&(g=w),w>h&&(h=w)}g===h&&(g-=.5,h+=.5)}let N=c[A],D=[],x=(h-g)/N;for(let C=0;C<=N;C++)D.push(g+C*x);l.push(D)}let f=c.slice(),m=f.reduce((A,g)=>A*g,1),p=new Float64Array(m),y=new Array(s);y[s-1]=1;for(let A=s-2;A>=0;A--)y[A]=y[A+1]*c[A+1];let d=o?.data;for(let A=0;A<i;A++){let g=d?Number(d[A]):1,h=0,N=!1;for(let D=0;D<s;D++){let x=Number(s===1?u[A]:u[A*s+D]),C=l[D],w=c[D],_=so(C,C.length,x)-1;if(_<0||_>=w)if(x===C[w]&&_===w)_=w-1;else{N=!0;break}h+=_*y[D]}N||(p[h]+=g)}if(n){let A=0;for(let h=0;h<m;h++)A+=p[h];let g=new Float64Array(m);for(let h=0;h<m;h++){let N=1,D=h;for(let x=0;x<s;x++){let C=Math.floor(D/y[x])%c[x],w=l[x];N*=w[C+1]-w[C]}g[h]=N}for(let h=0;h<m;h++)p[h]=p[h]/(A*g[h])}let b=l.map(A=>S.fromData(new Float64Array(A),[A.length],"float64"));return{hist:S.fromData(p,f,"float64"),edges:b}}function Ru(r,t,e="full"){let n=r.data,o=t.data,a=r.size,u=t.size,i=B(r.dtype)||B(t.dtype),s=a+u-1;if(i){let l=new Float64Array(s),f=new Float64Array(s),m=B(r.dtype),p=B(t.dtype);for(let d=0;d<s;d++){let b=0,A=0,g=d-u+1;for(let h=0;h<a;h++){let N=h-g;if(N>=0&&N<u){let D,x,C,w;m?(D=n[h*2],x=n[h*2+1]):(D=Number(n[h]),x=0),p?(C=o[N*2],w=o[N*2+1]):(C=Number(o[N]),w=0),b+=D*C+x*w,A+=x*C-D*w}}l[d]=b,f[d]=A}let y=(d,b,A,g=0)=>{let h=new Float64Array(A*2);for(let N=0;N<A;N++)h[N*2]=d[g+N],h[N*2+1]=b[g+N];return S.fromData(h,[A],"complex128")};if(e==="full")return y(l,f,s);if(e==="same"){let d=Math.floor((s-a)/2);return y(l,f,a,d)}else{let d=Math.max(a,u)-Math.min(a,u)+1,b=Math.min(a,u)-1;return y(l,f,d,b)}}let c=new Float64Array(s);for(let l=0;l<s;l++){let f=0,m=l-u+1;for(let p=0;p<a;p++){let y=p-m;y>=0&&y<u&&(f+=Number(n[p])*Number(o[y]))}c[l]=f}if(e==="full")return S.fromData(c,[s],"float64");if(e==="same"){let l=Math.floor((s-a)/2),f=new Float64Array(a);for(let m=0;m<a;m++)f[m]=c[l+m];return S.fromData(f,[a],"float64")}else{let l=Math.max(a,u)-Math.min(a,u)+1,f=Math.min(a,u)-1,m=new Float64Array(l);for(let p=0;p<l;p++)m[p]=c[f+p];return S.fromData(m,[l],"float64")}}function Sy(r,t,e="full"){let n=t.data,o=t.size,a=B(t.dtype),u;if(a){let i=new Float64Array(o*2);for(let s=0;s<o;s++){let c=o-1-s;i[s*2]=n[c*2],i[s*2+1]=n[c*2+1]}u=S.fromData(i,[o],t.dtype)}else{let i=new Float64Array(o);for(let s=0;s<o;s++)i[s]=Number(n[o-1-s]);u=S.fromData(i,[o],"float64")}if(a){let i=u.data;for(let s=0;s<o;s++)i[s*2+1]=-i[s*2+1]}return Ru(r,u,e)}function qu(r,t,e=!0,n=!1,o){let a=r.shape,u=r.data,i=B(r.dtype)||t!==void 0&&B(t.dtype),s;if(o!==void 0?s=o:s=n?0:1,a.length===1)if(t!==void 0){let y=t.data,d=r.size,b=B(r.dtype),A=B(t.dtype);if(t.size!==d)throw new Error("m and y must have same length");if(i){let w=0,_=0,I=0,M=0;for(let rr=0;rr<d;rr++)b?(w+=u[rr*2],_+=u[rr*2+1]):w+=Number(u[rr]),A?(I+=y[rr*2],M+=y[rr*2+1]):I+=Number(y[rr]);w/=d,_/=d,I/=d,M/=d;let T=0,O=0,$=0,k=0,V=0,j=0,R=0,Y=0;for(let rr=0;rr<d;rr++){let yr,nr,dr,Er;b?(yr=u[rr*2]-w,nr=u[rr*2+1]-_):(yr=Number(u[rr])-w,nr=0),A?(dr=y[rr*2]-I,Er=y[rr*2+1]-M):(dr=Number(y[rr])-I,Er=0),T+=yr*yr+nr*nr,$+=dr*dr+Er*Er,V+=yr*dr+nr*Er,j+=nr*dr-yr*Er,R+=dr*yr+Er*nr,Y+=Er*yr-dr*nr}let X=d-s;if(X<=0){let rr=new Float64Array(8);return rr.fill(NaN),S.fromData(rr,[2,2],"complex128")}T/=X,$/=X,V/=X,j/=X,R/=X,Y/=X;let J=new Float64Array(8);return J[0]=T,J[1]=O,J[2]=V,J[3]=j,J[4]=R,J[5]=Y,J[6]=$,J[7]=k,S.fromData(J,[2,2],"complex128")}let g=0,h=0;for(let w=0;w<d;w++)g+=Number(u[w]),h+=Number(y[w]);g/=d,h/=d;let N=0,D=0,x=0;for(let w=0;w<d;w++){let _=Number(u[w])-g,I=Number(y[w])-h;N+=_*_,D+=I*I,x+=_*I}let C=d-s;return C<=0?S.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(N/=C,D/=C,x/=C,S.fromData(new Float64Array([N,x,x,D]),[2,2],"float64"))}else{let y=r.size;if(i){let g=0,h=0;for(let x=0;x<y;x++)g+=u[x*2],h+=u[x*2+1];g/=y,h/=y;let N=0;for(let x=0;x<y;x++){let C=u[x*2]-g,w=u[x*2+1]-h;N+=C*C+w*w}let D=y-s;return D<=0?S.fromData(new Float64Array([NaN,0]),[],"complex128"):(N/=D,S.fromData(new Float64Array([N,0]),[],"complex128"))}let d=0;for(let g=0;g<y;g++)d+=Number(u[g]);d/=y;let b=0;for(let g=0;g<y;g++){let h=Number(u[g])-d;b+=h*h}let A=y-s;return A<=0?S.fromData(new Float64Array([NaN]),[],"float64"):(b/=A,S.fromData(new Float64Array([b]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let f=l-s;if(i){let y=new Float64Array(c),d=new Float64Array(c);for(let A=0;A<c;A++){let g=0,h=0;for(let N=0;N<l;N++){let D=e?A*l+N:N*c+A;g+=u[D*2],h+=u[D*2+1]}y[A]=g/l,d[A]=h/l}let b=new Float64Array(c*c*2);if(f<=0)return b.fill(NaN),S.fromData(b,[c,c],"complex128");for(let A=0;A<c;A++)for(let g=0;g<c;g++){let h=0,N=0;for(let x=0;x<l;x++){let C=e?A*l+x:x*c+A,w=e?g*l+x:x*c+g,_=u[C*2]-y[A],I=u[C*2+1]-d[A],M=u[w*2]-y[g],T=u[w*2+1]-d[g];h+=_*M+I*T,N+=I*M-_*T}let D=(A*c+g)*2;b[D]=h/f,b[D+1]=N/f}return S.fromData(b,[c,c],"complex128")}let m=new Float64Array(c);for(let y=0;y<c;y++){let d=0;for(let b=0;b<l;b++){let A=e?y*l+b:b*c+y;d+=Number(u[A])}m[y]=d/l}let p=new Float64Array(c*c);if(f<=0)return p.fill(NaN),S.fromData(p,[c,c],"float64");for(let y=0;y<c;y++)for(let d=y;d<c;d++){let b=0;for(let g=0;g<l;g++){let h=e?y*l+g:g*c+y,N=e?d*l+g:g*c+d,D=Number(u[h])-m[y],x=Number(u[N])-m[d];b+=D*x}let A=b/f;p[y*c+d]=A,p[d*c+y]=A}return S.fromData(p,[c,c],"float64")}function wy(r,t,e=!0){let n=B(r.dtype)||t!==void 0&&B(t.dtype);if(r.shape.length===1&&t===void 0)return n?S.fromData(new Float64Array([1,0]),[],"complex128"):S.fromData(new Float64Array([1]),[],"float64");let o=qu(r,t,e,!1),a=o.data,i=o.shape[0];if(n){let c=new Float64Array(i*i*2);for(let l=0;l<i;l++)for(let f=0;f<i;f++){let m=a[(l*i+f)*2],p=a[(l*i+f)*2+1],y=a[(l*i+l)*2],d=a[(f*i+f)*2],b=(l*i+f)*2;if(y<=0||d<=0)c[b]=NaN,c[b+1]=NaN;else{let A=Math.sqrt(y*d);c[b]=m/A,c[b+1]=p/A}}return S.fromData(c,[i,i],"complex128")}let s=new Float64Array(i*i);for(let c=0;c<i;c++)for(let l=0;l<i;l++){let f=Number(a[c*i+l]),m=Number(a[c*i+c]),p=Number(a[l*i+l]);m<=0||p<=0?s[c*i+l]=NaN:s[c*i+l]=f/Math.sqrt(m*p)}return S.fromData(s,[i,i],"float64")}function Iy(r,t=10,e,n){L(r.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");let o=r.data,a=r.size,u,i;if(e)[u,i]=e;else{u=1/0,i=-1/0;for(let f=0;f<a;f++){let m=Number(o[f]);isNaN(m)||(m<u&&(u=m),m>i&&(i=m))}!isFinite(u)||!isFinite(i)?(u=0,i=1):u===i&&(u=u-.5,i=i+.5)}let s;typeof t=="number"?s=t:s=ku(o,a,u,i,t),s=Math.max(1,Math.round(s));let c=new Float64Array(s+1),l=(i-u)/s;for(let f=0;f<=s;f++)c[f]=u+f*l;return S.fromData(c,[s+1],"float64")}function ku(r,t,e,n,o){if(t===0)return 1;let a=n-e;if(a===0)return 1;let u=[],i=0;for(let d=0;d<t;d++){let b=Number(r[d]);isNaN(b)||(u.push(b),i+=b)}let s=u.length;if(s===0)return 1;let c=i/s,l=0;for(let d=0;d<s;d++){let b=u[d]-c;l+=b*b}let f=Math.sqrt(l/s);u.sort((d,b)=>d-b);let m=u[Math.floor(s*.25)]??0,y=(u[Math.floor(s*.75)]??0)-m;switch(o){case"sqrt":return Math.ceil(Math.sqrt(s));case"sturges":return Math.ceil(Math.log2(s)+1);case"rice":return Math.ceil(2*Math.pow(s,1/3));case"scott":{if(f===0)return 1;let d=3.5*f/Math.pow(s,1/3);return Math.ceil(a/d)}case"fd":{if(y===0)return ku(r,t,e,n,"sturges");let d=2*y/Math.pow(s,1/3);return Math.ceil(a/d)}case"doane":{let d=sx(u,c,f),b=Math.sqrt(6*(s-2)/((s+1)*(s+3)));return Math.ceil(1+Math.log2(s)+Math.log2(1+Math.abs(d)/b))}case"stone":return ku(r,t,e,n,"sturges");default:{let d=Math.ceil(Math.log2(s)+1),b=y===0?d:Math.ceil(a/(2*y/Math.pow(s,1/3)));return Math.max(d,b)}}}function sx(r,t,e){if(e===0)return 0;let n=r.length,o=0;for(let a=0;a<n;a++)o+=Math.pow((r[a]-t)/e,3);return o/n}function zy(r,t,e=1,n=-1){L(r.dtype,"trapezoid","trapezoid requires real numbers."),t!==void 0&&L(t.dtype,"trapezoid","trapezoid requires real numbers.");let o=Array.from(r.shape),a=o.length;if(n<0&&(n=a+n),n<0||n>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let u=o[n];if(u<2)throw new Error("trapezoid requires at least 2 samples along axis");let i;if(t!==void 0){if(t.size!==u)throw new Error(`x array size (${t.size}) must match y axis size (${u})`);let d=t.data;i=new Float64Array(u);for(let b=0;b<u;b++)i[b]=Number(d[b])}else{i=new Float64Array(u);for(let d=0;d<u;d++)i[d]=d*e}let s=[...o];if(s.splice(n,1),a===1){let d=r.data,b=0;for(let A=0;A<u-1;A++){let g=Number(d[A]),h=Number(d[A+1]),N=i[A+1]-i[A];b+=.5*(g+h)*N}return b}let c=s.reduce((d,b)=>d*b,1),l=new Float64Array(c),f=new Array(a),m=1;for(let d=a-1;d>=0;d--)f[d]=m,m*=o[d];let p=new Array(s.length);m=1;for(let d=s.length-1;d>=0;d--)p[d]=m,m*=s[d];let y=r.data;for(let d=0;d<c;d++){let b=[],A=d;for(let D=0;D<s.length;D++){let x=Math.floor(A/p[D]);A%=p[D],b.push(x)}let g=[],h=0;for(let D=0;D<a;D++)D===n?g.push(0):(g.push(b[h]),h++);let N=0;for(let D=0;D<u-1;D++){g[n]=D;let x=0;for(let M=0;M<a;M++)x+=g[M]*f[M];g[n]=D+1;let C=0;for(let M=0;M<a;M++)C+=g[M]*f[M];let w=Number(y[x]),_=Number(y[C]),I=i[D+1]-i[D];N+=.5*(w+_)*I}l[d]=N}return s.length===0?l[0]:S.fromData(l,s,"float64")}function Vu(r,t,e){let n=t?z(t):void 0;return v(hy(z(r),n,e))}function Pu(r,t,e){return v(Ny(z(r),z(t),e))}function va(r,t,e,n,o){let a=t instanceof P?z(t):t,u=o?z(o):void 0,i=Dy(z(r),a,e,n,u);return[v(i.hist),v(i.bin_edges)]}function Fa(r,t,e,n,o,a){let u;if(Array.isArray(e)&&e.length===2){let c=e[0]instanceof P?z(e[0]):e[0],l=e[1]instanceof P?z(e[1]):e[1];u=[c,l]}else u=e;let i=a?z(a):void 0,s=xy(z(r),z(t),u,n,o,i);return[v(s.hist),v(s.x_edges),v(s.y_edges)]}function Ba(r,t,e,n,o){let a=o?z(o):void 0,u=Cy(z(r),t,e,n,a);return[v(u.hist),u.edges.map(i=>v(i))]}function ju(r,t,e){return v(Ru(z(r),z(t),e))}function Lu(r,t,e){return v(Sy(z(r),z(t),e))}function Wu(r,t,e,n,o){return v(qu(z(r),t?z(t):void 0,e,n,o))}function Gu(r,t,e){return v(wy(z(r),t?z(t):void 0,e))}function Ta(r,t,e,n){return v(Iy(z(r),t,e,n?z(n):void 0))}function Yu(r,t,e,n){let o=zy(z(r),t?z(t):void 0,e,n);return typeof o=="number"?o:v(o)}function _y(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let u=r;for(let i=0;i<t;i++)u=ux(u,a);return u}function ux(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let u=r.dtype,i=B(u),s=E(u)?"float64":u,c=S.zeros(a,s),l=c.data,f=r.strides,m=c.size,p=r.offset;for(let y=0;y<m;y++){let d=y,b=new Array(n);for(let D=n-1;D>=0;D--)b[D]=d%a[D],d=Math.floor(d/a[D]);let A=[...b],g=[...b];g[t]=A[t]+1;let h=0,N=0;for(let D=0;D<n;D++)h+=A[D]*f[D],N+=g[D]*f[D];if(i){let D=r.data,x=D[(p+h)*2],C=D[(p+h)*2+1],w=D[(p+N)*2],_=D[(p+N)*2+1];l[y*2]=w-x,l[y*2+1]=_-C}else{let D=(E(u),Number(r.data[p+h])),x=(E(u),Number(r.data[p+N]));l[y]=x-D}}return c}function My(r,t=null,e=null){let n=r.size,o=r.dtype,a=B(o),u=E(o)?"float64":o,i=Math.max(0,n-1),s=e?e.length:0,c=t?t.length:0,l=s+i+c,f=S.zeros([l],u),m=f.data,p=0;if(e)if(a)for(let y of e)m[p*2]=y,m[p*2+1]=0,p++;else for(let y of e)m[p++]=y;if(a)for(let y=0;y<i;y++){let d=r.iget(y),b=r.iget(y+1);m[p*2]=b.re-d.re,m[p*2+1]=b.im-d.im,p++}else for(let y=0;y<i;y++){let d=(E(o),Number(r.iget(y))),b=(E(o),Number(r.iget(y+1)));m[p++]=b-d}if(t)if(a)for(let y of t)m[p*2]=y,m[p*2+1]=0,p++;else for(let y of t)m[p++]=y;return f}function vy(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(s,c)=>c);else if(typeof e=="number"){let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[s]}else a=e.map(s=>{let c=s<0?o+s:s;if(c<0||c>=o)throw new Error(`axis ${s} is out of bounds for array of dimension ${o}`);return c});let u;if(typeof t=="number")u=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");u=t}let i=[];for(let s=0;s<a.length;s++)i.push(cx(r,a[s],u[s]));return i.length===1?i[0]:i}function cx(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let u=r.dtype,i=B(u),s=E(u)?"float64":u==="float32"?"float32":i?u:"float64",c=S.zeros(n,s),l=c.data,f=r.strides,m=e,p=2*m,y=r.size,d=r.offset;for(let b=0;b<y;b++){let A=b,g=new Array(o);for(let D=o-1;D>=0;D--)g[D]=A%n[D],A=Math.floor(A/n[D]);let h=d;for(let D=0;D<o;D++)h+=g[D]*f[D];let N=g[t];if(i){let D=r.data,x=l,C,w;if(N===0){let _=[...g];_[t]=1;let I=0;for(let k=0;k<o;k++)I+=_[k]*f[k];let M=D[h*2],T=D[h*2+1],O=D[(d+I)*2],$=D[(d+I)*2+1];C=(O-M)/m,w=($-T)/m}else if(N===a-1){let _=[...g];_[t]=a-2;let I=0;for(let k=0;k<o;k++)I+=_[k]*f[k];let M=D[h*2],T=D[h*2+1],O=D[(d+I)*2],$=D[(d+I)*2+1];C=(M-O)/m,w=(T-$)/m}else{let _=[...g],I=[...g];_[t]=N+1,I[t]=N-1;let M=0,T=0;for(let j=0;j<o;j++)M+=_[j]*f[j],T+=I[j]*f[j];let O=D[(d+M)*2],$=D[(d+M)*2+1],k=D[(d+T)*2],V=D[(d+T)*2+1];C=(O-k)/p,w=($-V)/p}x[b*2]=C,x[b*2+1]=w}else{let D;if(N===0){let x=[...g];x[t]=1;let C=0;for(let I=0;I<o;I++)C+=x[I]*f[I];let w=(E(u),Number(r.data[h]));D=((E(u),Number(r.data[d+C]))-w)/m}else if(N===a-1){let x=[...g];x[t]=a-2;let C=0;for(let I=0;I<o;I++)C+=x[I]*f[I];let w=(E(u),Number(r.data[h])),_=(E(u),Number(r.data[d+C]));D=(w-_)/m}else{let x=[...g],C=[...g];x[t]=N+1,C[t]=N-1;let w=0,_=0;for(let T=0;T<o;T++)w+=x[T]*f[T],_+=C[T]*f[T];let I=(E(u),Number(r.data[d+w])),M=(E(u),Number(r.data[d+_]));D=(I-M)/p}l[b]=D}}return c}function io(r,t,e){return v(_y(z(r),t,e))}function Zu(r,t,e){return v(My(z(r),t??null,e??null))}function Ea(r,t,e){let n=vy(z(r),t,e);return Array.isArray(n)?$r(n):v(n)}function Fy(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let o=Bt(t),a=S.zeros(e,o),u=a.data,i=r.data;for(let s=0;s<n;s++)u[s]=i[s*2];return a}return r.copy()}function By(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let a=Bt(t),u=S.zeros(e,a),i=u.data,s=r.data;for(let c=0;c<n;c++)i[c]=s[c*2+1];return u}let o=t==="float32"?"float32":"float64";return S.zeros(e,o)}function Ty(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(B(t)){let o=K(t),a=n*2,u=new o(a),i=r.data;for(let s=0;s<n;s++)u[s*2]=i[s*2],u[s*2+1]=-i[s*2+1];return S.fromData(u,e,t)}return r.copy()}function Ey(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=S.zeros(n,"float64"),u=a.data;if(B(e)){let i=r.data;for(let s=0;s<o;s++){let c=i[s*2],l=i[s*2+1],f=Math.atan2(l,c);t&&(f=f*180/Math.PI),u[s]=f}}else for(let i=0;i<o;i++){let s=r.iget(i),l=(s instanceof U?s.re:Number(s))>=0?0:Math.PI;t&&(l=l*180/Math.PI),u[i]=l}return a}function Xu(r){return v(Fy(z(r)))}function Ju(r){return v(By(z(r)))}function uo(r){return v(Ty(z(r)))}function Ku(r,t){return v(Ey(z(r),t))}function Qu(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=qr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let u=0;u<o;u++)if(a[u]!==t[u])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return _r(r,t)}function Oy(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=qr(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>_r(n,e))}function Uy(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let y=r.size;for(let g of t){let h=g<0?y+g:g;if(h<0||h>=y)throw new Error(`index ${g} is out of bounds for axis 0 with size ${y}`)}let d=t.length,b=K(a);if(!b)throw new Error(`Cannot take from array with dtype ${a}`);let A=new b(d);for(let g=0;g<d;g++){let h=t[g];h<0&&(h=y+h);let N=r.iget(h);E(a),A[g]=N}return S.fromData(A,[d],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[u];for(let y of t){let d=y<0?i+y:y;if(d<0||d>=i)throw new Error(`index ${y} is out of bounds for axis ${u} with size ${i}`)}let s=Array.from(n);s[u]=t.length;let c=s.reduce((y,d)=>y*d,1),l=K(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let f=new l(c),m=lr(s),p=new Array(o).fill(0);for(let y=0;y<c;y++){let d=[...p],b=p[u],A=t[b];A<0&&(A=i+A),d[u]=A;let g=r.get(...d),h=0;for(let N=0;N<o;N++)h+=p[N]*m[N];E(a),f[h]=g;for(let N=o-1;N>=0&&(p[N]++,!(p[N]<s[N]));N--)p[N]=0}return S.fromData(f,s,a)}function $y(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let u=0;u<e.size;u++){let i=e.iget(u);a.push(i instanceof U?i.re:i)}if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let u=[...a];a=[];for(let i=0;i<t.length;i++)a.push(u[i%u.length])}}for(let u=0;u<t.length;u++){let i=t[u];if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`index ${t[u]} is out of bounds for axis 0 with size ${n}`);let s=a[u];E(o)?typeof s!="bigint"&&(s=BigInt(Math.round(Number(s)))):typeof s=="bigint"&&(s=Number(s)),r.iset(i,s)}}function ky(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(m=>Array.from(m.shape));a.unshift(Array.from(e));let u=qr(a);if(u===null)throw new Error("operands could not be broadcast together");let i=_r(r,u),s=t.map(m=>_r(m,u)),c=u.reduce((m,p)=>m*p,1),l=K(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let f=new l(c);for(let m=0;m<c;m++){let p=Number(i.iget(m));if(p<0||p>=n)throw new Error(`index ${p} is out of bounds for axis 0 with size ${n}`);let y=s[p].iget(m);E(o),f[m]=y}return S.fromData(f,u,o)}function Ry(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),u=t.iget(o);if(e){let i=typeof a=="number"&&Number.isNaN(a),s=typeof u=="number"&&Number.isNaN(u);if(i&&s)continue}if(a!==u)return!1}return!0}function qy(r,t,e){let n=r.shape,o=n.length,a=r.dtype,u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=t.shape;if(i.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${i.length} vs ${o}`);for(let d=0;d<o;d++)if(d!==u&&i[d]!==n[d]&&i[d]!==1&&n[d]!==1)throw new Error(`index ${i[d]} is out of bounds for size ${n[d]} in dimension ${d}`);let s=Array.from(i),c=s.reduce((d,b)=>d*b,1),l=K(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let f=new l(c),m=lr(n),p=lr(i),y=n[u];for(let d=0;d<c;d++){let b=new Array(o),A=d;for(let C=o-1;C>=0;C--)b[C]=A%s[C],A=Math.floor(A/s[C]);let g=0;for(let C=0;C<o;C++){let w=i[C]===1?0:b[C];g+=w*p[C]}let h=Number(t.iget(g));if(h<0&&(h=y+h),h<0||h>=y)throw new Error(`index ${h} is out of bounds for axis ${u} with size ${y}`);let N=[...b];N[u]=h;let D=0;for(let C=0;C<o;C++){let w=n[C]===1?0:N[C];D+=w*m[C]}let x=r.iget(D);E(a),f[d]=x}return S.fromData(f,s,a)}function Vy(r,t,e,n){let o=r.shape,a=o.length,u=r.dtype,i=n<0?a+n:n;if(i<0||i>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let s=t.shape,c=e.shape;if(s.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[i],f=lr(o),m=lr(s),p=lr(c),y=s.reduce((d,b)=>d*b,1);for(let d=0;d<y;d++){let b=new Array(a),A=d;for(let w=a-1;w>=0;w--)b[w]=A%s[w],A=Math.floor(A/s[w]);let g=0;for(let w=0;w<a;w++)g+=b[w]*m[w];let h=Number(t.iget(g));if(h<0&&(h=l+h),h<0||h>=l)throw new Error(`index ${h} is out of bounds for axis ${i} with size ${l}`);let N=0;for(let w=0;w<a;w++){let _=c[w]===1?0:b[w];N+=_*p[w]}let D=e.iget(N),x=[...b];x[i]=h;let C=0;for(let w=0;w<a;w++)C+=x[w]*f[w];E(u)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(C,D)}}function Py(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let i=0;i<e.size;i++){let s=e.iget(i);a.push(s instanceof U?s.re:s)}}let u=0;for(let i=0;i<n;i++)if(t.iget(i)){let c=a[u%a.length];E(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),u++}}function jy(r,t,e){let n=t.shape,o=n.length,a=t.dtype,u=E(a);if(e===void 0){let N=Math.min(r.size,t.size),D=r.isCContiguous,x=r.data,C=r.offset,w=0;if(D)for(let O=0;O<N;O++)x[C+O]&&w++;else for(let O=0;O<N;O++)r.iget(O)&&w++;let _=K(a);if(!_)throw new Error(`Cannot compress with dtype ${a}`);let I=new _(w),M=0,T=t.isCContiguous;if(D&&T){let O=t.data,$=t.offset;if(u){let k=I,V=O;for(let j=0;j<N;j++)x[C+j]&&(k[M++]=V[$+j])}else{let k=I,V=O;for(let j=0;j<N;j++)x[C+j]&&(k[M++]=V[$+j])}}else for(let O=0;O<N;O++)(D?x[C+O]:r.iget(O))&&(I[M]=t.iget(O),M++);return S.fromData(I,[w],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[i],c=Math.min(r.size,s),l=[];for(let N=0;N<c;N++)r.iget(N)&&l.push(N);let f=l.length,m=[...n];m[i]=f;let p=m.reduce((N,D)=>N*D,1),y=K(a);if(!y)throw new Error(`Cannot compress with dtype ${a}`);let d=new y(p),b=n.slice(i+1).reduce((N,D)=>N*D,1),A=n.slice(0,i).reduce((N,D)=>N*D,1),g=0;if(t.isCContiguous){let N=t.data,D=t.offset;if(u){let x=d,C=N;for(let w=0;w<A;w++)for(let _=0;_<f;_++){let I=l[_];for(let M=0;M<b;M++){let T=w*s*b+I*b+M;x[g++]=C[D+T]}}}else{let x=d,C=N;for(let w=0;w<A;w++)for(let _=0;_<f;_++){let I=l[_];for(let M=0;M<b;M++){let T=w*s*b+I*b+M;x[g++]=C[D+T]}}}}else for(let N=0;N<A;N++)for(let D=0;D<f;D++){let x=l[D];for(let C=0;C<b;C++){let w=N*s*b+x*b+C;d[g++]=t.iget(w)}}return S.fromData(d,m,a)}function Ly(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(m=>Array.from(m.shape)),...t.map(m=>Array.from(m.shape))],o=qr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,u=o.reduce((m,p)=>m*p,1),i=K(a);if(!i)throw new Error(`Cannot select with dtype ${a}`);let s=e;E(a)?s=typeof e=="bigint"?e:BigInt(e):s=typeof e=="bigint"?Number(e):e;let c=new i(u);for(let m=0;m<u;m++)E(a),c[m]=s;let l=r.map(m=>_r(m,o)),f=t.map(m=>_r(m,o));for(let m=0;m<u;m++)for(let p=0;p<r.length;p++)if(l[p].iget(m)){let y=f[p].iget(m);E(a),c[m]=y;break}return S.fromData(c,o,a)}function Wy(r,t,e){let n=r.size,o=r.dtype,a=[];for(let i=0;i<e.size;i++){let s=e.iget(i);a.push(s instanceof U?s.re:s)}if(a.length===0)return;let u=0;for(let i=0;i<n;i++)if(t.iget(i)){let c=a[u%a.length];E(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(i,c),u++}}function Hu(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(S.fromData(new Int32Array(e),[r],"int32"));return n}function Gy(r){let t=r.shape,e=t.length;if(e<2)throw new Error("array must be at least 2-D");let n=t[0];for(let o=1;o<e;o++)if(t[o]!==n)throw new Error("All dimensions of input must be equal");return Hu(n,e)}function rc(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let i=0;i<=Math.min(u+t,n-1);i++)i>=0&&(o.push(u),a.push(i));return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function Yy(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return rc(e[0],t,e[1])}function tc(r,t=0,e){let n=e??r,o=[],a=[];for(let u=0;u<r;u++)for(let i=Math.max(u+t,0);i<n;i++)o.push(u),a.push(i);return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function Zy(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return tc(e[0],t,e[1])}function Xy(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],u=[];for(let i=0;i<r;i++)for(let s=0;s<r;s++)n.get(i,s)&&(a.push(i),u.push(s));return[S.fromData(new Int32Array(a),[a.length],"int32"),S.fromData(new Int32Array(u),[u.length],"int32")]}function Jy(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((s,c)=>s*c,1),a=K(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let u=new a(o),i=r.reduce((s,c)=>s*c,1);for(let s=0;s<e;s++){let c=s*i;for(let l=0;l<i;l++){let f=new Array(e),m=l;for(let y=e-1;y>=0;y--)f[y]=m%r[y],m=Math.floor(m/r[y]);let p=f[s];t==="int64"?u[c+l]=BigInt(p):u[c+l]=p}}return S.fromData(u,n,t)}function Ky(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,u=o.dtype,i=new Array(t).fill(1);i[n]=a;let s=K(u);if(!s)throw new Error(`Cannot create ix_ with dtype ${u}`);let c=new s(a);for(let l=0;l<a;l++){let f=o.iget(l);E(u),c[l]=f}e.push(S.fromData(c,i,u))}return e}function Qy(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),u=new Array(o),i=1;for(let s=o-1;s>=0;s--)u[s]=i,i*=t[s];for(let s=0;s<n;s++){let c=0;for(let l=0;l<o;l++){let f=Number(r[l].iget(s)),m=t[l];if(e==="wrap")f=(f%m+m)%m;else if(e==="clip")f=Math.max(0,Math.min(f,m-1));else if(f<0||f>=m)throw new Error(`index ${f} is out of bounds for axis ${l} with size ${m}`);c+=f*u[l]}a[s]=c}return S.fromData(a,[n],"int32")}function Hy(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let u=o.length,i=t.reduce((l,f)=>l*f,1),s=new Array(n);if(e==="C"){let l=1;for(let f=n-1;f>=0;f--)s[f]=l,l*=t[f]}else{let l=1;for(let f=0;f<n;f++)s[f]=l,l*=t[f]}let c=[];for(let l=0;l<n;l++){let f=new Int32Array(u);c.push(S.fromData(f,a.length?a:[1],"int32"))}for(let l=0;l<u;l++){let f=o[l];if(f<0||f>=i)throw new Error(`index ${f} is out of bounds for array with size ${i}`);if(e==="C")for(let m=0;m<n;m++){let p=Math.floor(f/s[m]);f=f%s[m],c[m].data[l]=p%t[m]}else for(let m=n-1;m>=0;m--){let p=Math.floor(f/s[m]);f=f%s[m],c[m].data[l]=p%t[m]}}return typeof r=="number"?c.map(l=>{let f=l.iget(0);return S.fromData(new Int32Array([Number(f)]),[],"int32")}):c}function rd(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let f=c;f<o;f++)l*=n[f];a+=l}}let u=r.size,i=Math.min(...n);e&&o===2&&(i=Math.max(n[0],n[1]));let s=r.isCContiguous;if(typeof t=="number")if(s){let c=r.data,l=r.offset;if(E(r.dtype)){let f=c,m=BigInt(Math.round(t));for(let p=0;p<i;p++){let y=p*a;if(y>=u)break;f[l+y]=m}}else for(let f=0;f<i;f++){let m=f*a;if(m>=u)break;c[l+m]=t}}else for(let c=0;c<i&&c*a<u;c++)r.iset(c*a,t);else{let c=t.size;if(s&&t.isCContiguous){let l=r.data,f=r.offset,m=t.data,p=t.offset;if(E(r.dtype)){let y=l,d=m;for(let b=0;b<i;b++){let A=b*a;if(A>=u)break;y[f+A]=d[p+b%c]}}else{let y=l,d=m;for(let b=0;b<i;b++){let A=b*a;if(A>=u)break;y[f+A]=d[p+b%c]}}}else for(let l=0;l<i&&l*a<u;l++)r.iset(l*a,t.iget(l%c))}}function td(r,t,e){let n=Array.from(r.shape),o=n.length;if(t<0&&(t+=o),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=[];for(let u=0;u<o;u++)u!==t&&a.push(n[u]);if(a.length===0){let u=e(r);if(typeof u=="number"){let i=S.zeros([1],r.dtype);return i.data[0]=u,i}return u}if(o===2){let[u,i]=n;if(t===0){let s=[];for(let l=0;l<i;l++){let f=new Float64Array(u);for(let p=0;p<u;p++)f[p]=Number(r.get(p,l));let m=S.fromData(f,[u],"float64");s.push(e(m))}let c=s[0];if(c===void 0)return S.zeros([0],"float64");if(typeof c=="number"){let l=S.zeros([i],"float64");for(let f=0;f<i;f++)l.data[f]=s[f];return l}else{let l=[c.size,i],f=S.zeros(l,"float64");for(let m=0;m<i;m++){let p=s[m];for(let y=0;y<p.size;y++)f.data[y*i+m]=Number(p.iget(y))}return f}}else{let s=[];for(let l=0;l<u;l++){let f=new Float64Array(i);for(let p=0;p<i;p++)f[p]=Number(r.get(l,p));let m=S.fromData(f,[i],"float64");s.push(e(m))}let c=s[0];if(c===void 0)return S.zeros([0],"float64");if(typeof c=="number"){let l=S.zeros([u],"float64");for(let f=0;f<u;f++)l.data[f]=s[f];return l}else{let l=[u,c.size],f=S.zeros(l,"float64");for(let m=0;m<u;m++){let p=s[m];for(let y=0;y<p.size;y++)f.data[m*p.size+y]=Number(p.iget(y))}return f}}}if(o===1){let u=e(r);if(typeof u=="number"){let i=S.zeros([1],"float64");return i.data[0]=u,i}return u}throw new Error(`apply_along_axis not fully implemented for ${o}D arrays. Only 1D and 2D arrays are supported.`)}function ed(r,t,e){let n=r,o=r.shape.length;for(let a of e){let u=a<0?a+o:a;if(u<0||u>=o)throw new Error(`axis ${a} is out of bounds for array of dimension ${o}`);if(n=t(n,u),n.shape.length<o){let i=Array.from(n.shape);i.splice(u,0,1);let s=lr(i);n=new S(n.data,i,s,0,n.dtype)}}return n}function ec(r,t){return r.data.buffer===t.data.buffer}function nd(r,t){return ec(r,t)}var Pr={divide:"warn",over:"warn",under:"ignore",invalid:"warn"};function nc(){return{...Pr}}function od(r,t,e,n,o){let a=nc();return r!==void 0&&(Pr.divide=r,Pr.over=r,Pr.under=r,Pr.invalid=r),t!==void 0&&(Pr.divide=t),e!==void 0&&(Pr.over=e),n!==void 0&&(Pr.under=n),o!==void 0&&(Pr.invalid=o),a}function co(r,t){return Nr(Qu(z(r),t),r)}function Oa(...r){let t=r.map(z);return Oy(t).map(e=>v(e))}function Ua(...r){if(r.length===0)return[];if(r.length===1)return[...r[0]];let t=[...r[0]];for(let e=1;e<r.length;e++){let n=r[e],o=Math.max(t.length,n.length),a=[];for(let u=0;u<o;u++){let i=u<t.length?t[t.length-1-u]:1,s=u<n.length?n[n.length-1-u]:1;if(i===s)a.unshift(i);else if(i===1)a.unshift(s);else if(s===1)a.unshift(i);else throw new Error(`Cannot broadcast shapes: dimensions ${i} and ${s} are incompatible`)}t=a}return t}function zt(r,t,e){return v(Uy(z(r),t,e))}function _t(r,t,e){let n=Array.isArray(e)?z(Q(e)):z(e);$y(z(r),t,n)}function oc(r,t,e){return v(qy(z(r),z(t),e))}function $a(r,t,e,n){Vy(z(r),z(t),z(e),n)}function lo(r,t){let e=t.map(z);return v(ky(z(r),e))}function nt(r,t,e){return v(jy(z(r),z(t),e))}function ac(r,t,e=0){let n;return t instanceof P?n=Array.from(t.data):Array.isArray(t[0])?n=t.flat():n=t,zt(r,n,e)}function sc(r,t,e){return nt(t,r,e)}function ic(r,t,e=0){let n=r.map(z),o=t.map(z);return v(Ly(n,o,e))}function ka(r,t,e){Wy(z(r),z(t),z(e))}function Ra(r,t,e){Py(z(r),z(t),z(e))}function qa(r,t){let e=z(r),n=r.shape,o=r.size,a=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let u=z(t),i=t.shape,s=qr([i,n]);if(!s)throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${n.join(",")})`);if(s.length!==n.length||!s.every((l,f)=>l===n[f]))throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${n.join(",")})`);let c=Qu(u,n);if(E(a))for(let l=0;l<o;l++){let f=c.iget(l),m=typeof f=="bigint"?f:BigInt(Math.round(Number(f)));e.iset(l,m)}else if(a==="bool")for(let l=0;l<o;l++){let f=c.iget(l);e.iset(l,f?1:0)}else for(let l=0;l<o;l++){let f=c.iget(l);e.iset(l,Number(f))}}function uc(r,t="int32"){return v(Jy(r,t))}function Va(...r){let t=r.map(z);return Ky(...t).map(e=>v(e))}function cc(r,t,e="raise"){let n=r.map(z);return v(Qy(n,t,e))}function lc(r,t){let e=typeof r=="number"?z(Q([r])):z(r);return Hy(e,t).map(n=>v(n))}function fc(r,t=2){return Hu(r,t).map(e=>v(e))}function mc(r){return Gy(z(r)).map(t=>v(t))}function Pa(r,t,e=!1){rd(z(r),t,e)}function pc(r,t=0,e){return rc(r,t,e).map(n=>v(n))}function yc(r,t=0){return Yy(z(r),t).map(e=>v(e))}function dc(r,t=0,e){return tc(r,t,e).map(n=>v(n))}function bc(r,t=0){return Zy(z(r),t).map(e=>v(e))}function Ac(r,t,e=0){return Xy(r,(o,a)=>z(t(o,a)),e).map(o=>v(o))}function ja(r,t,e=!1){return Ry(z(r),z(t),e)}function La(r,t){return Tp(z(r),z(t))}function gc(r,t,e){let n=o=>{let a=r(v(o));return typeof a=="number"?a:z(a)};return v(td(z(e),t,n))}function hc(r,t,e){let n=(o,a)=>z(r(v(o),a));return v(ed(z(t),n,e))}function Wa(r,t){return ec(z(r),z(t))}function Ga(r,t){return nd(z(r),z(t))}var Ya=nc,Za=od;var Xa=Sl,Ja=wl,Ka=Il,Qa=Et,Ha=Tt,rs=zl,ts=_l;function es(r,t){return Mo(z(r),t?.max_line_width??null,t?.precision??null,t?.suppress_small??null,t?.separator??" ",t?.prefix??"",t?.suffix??"",t?.threshold??null,t?.edgeitems??null,t?.floatmode??null,t?.sign??null)}function ns(r,t,e,n){return Ml(z(r),t,e,n)}function Mt(r,t,e){return vo(z(r),t,e)}function os(r){if(r instanceof P)return r.ndim;if(typeof r=="number"||typeof r=="bigint"||typeof r=="boolean")return 0;if(Array.isArray(r)){let t=0,e=r;for(;Array.isArray(e)&&e.length>0;)t++,e=e[0];return t}return 0}function fo(r){if(r instanceof P)return r.shape;if(typeof r=="number"||typeof r=="bigint"||typeof r=="boolean")return[];if(Array.isArray(r)){let t=[],e=r;for(;Array.isArray(e)&&e.length>0;)t.push(e.length),e=e[0];return t}return[]}function as(r){return r instanceof P?r.size:typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"?1:Array.isArray(r)?fo(r).reduce((e,n)=>e*n,1):1}function ss(r,...t){let e=r.storage,n=r.shape;if(t.length===0){if(r.size!==1)throw new Error("can only convert an array of size 1 to a scalar");return e.isCContiguous?e.data[e.offset]:e.iget(0)}if(t.length===1)return e.isCContiguous?e.data[e.offset+t[0]]:e.iget(t[0]);if(t.length!==n.length)throw new Error("incorrect number of indices for array");return e.get(...t)}function is(r){let t=r.shape,e=r.storage,n=t.length;if(n===0)return e.iget(0);if(e.isCContiguous){let l=function(f,m){let p=t[m],y=s[m];if(m===n-1){let b=new Array(p);for(let A=0;A<p;A++)b[A]=u[i+f+A];return b}let d=new Array(p);for(let b=0;b<p;b++)d[b]=l(f+b*y,m+1);return d};var a=l;let u=e.data,i=e.offset;if(n===1){let f=t[0],m=new Array(f);for(let p=0;p<f;p++)m[p]=u[i+p];return m}let s=new Array(n),c=1;for(let f=n-1;f>=0;f--)s[f]=c,c*=t[f];return l(0,0)}if(n===1){let u=[];for(let i=0;i<t[0];i++)u.push(e.iget(i));return u}function o(u,i){if(i===n)return e.get(...u);let s=[];for(let c=0;c<t[i];c++)u[i]=c,s.push(o(u,i+1));return s}return o(new Array(n),0)}function us(r,t="C"){let e=r.storage;t==="F"&&console.warn('tobytes with order="F" not fully implemented, returning C-order');let n=e.data,o=n.BYTES_PER_ELEMENT;if(e.isCContiguous){let i=n.byteOffset+e.offset*o,s=r.size*o;return new Uint8Array(n.buffer,i,s)}let u=r.copy().data;return new Uint8Array(u.buffer,u.byteOffset,r.size*o)}function cs(r,t=!1){let n=r.data.BYTES_PER_ELEMENT;if(n===1)return t?r:r.copy();let o=t?r:r.copy(),a=o.data,u=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);for(let i=0;i<a.length;i++){let s=i*n;for(let c=0;c<n/2;c++){let l=u[s+c];u[s+c]=u[s+n-1-c],u[s+n-1-c]=l}}return o}function ls(r,t){if(!t||t===r.dtype)return r.copy();throw new Error("view with different dtype not fully implemented")}function fs(r,t,e="",n=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function ms(r,t){let e=r.storage,n=r.dtype,o=r.size;if(t instanceof U){if(!(n==="complex64"||n==="complex128"))throw new Error("Cannot fill non-complex array with complex value");if(e.isCContiguous){let u=e.data,i=e.offset;for(let s=0;s<o;s++)u[(i+s)*2]=t.re,u[(i+s)*2+1]=t.im}else for(let u=0;u<o;u++)e.iset(u,t)}else if(typeof t=="bigint")if(e.isCContiguous)e.data.fill(t,e.offset,e.offset+o);else for(let a=0;a<o;a++)e.iset(a,t);else{let a=typeof t=="boolean"?t?1:0:t;if(e.isCContiguous)e.data.fill(a,e.offset,e.offset+o);else for(let u=0;u<o;u++)e.iset(u,a)}}function Nc(r,t,e){let n=t instanceof P?t:Q(Array.isArray(t)?t:[t]);if(e===void 0){let o=Br(r),a=Br(n);return gt([o,a],0)}return gt([r,n],e)}function ps(r,t,e){let n=Array.isArray(t)?t:[t],o=[...r.shape],a=r.storage;if(e===void 0){let A=Br(r),g=A.storage,h=[],N=new Set(n.map(D=>D<0?A.size+D:D));for(let D=0;D<A.size;D++)N.has(D)||h.push(g.iget(D));return Q(h,r.dtype)}let u=e<0?o.length+e:e,i=o[u],s=new Set(n.map(A=>A<0?i+A:A)),c=i-s.size,l=[...o];l[u]=c;let f=wr(l,r.dtype),m=f.storage,p=[],y=1;for(let A=o.length-1;A>=0;A--)p.unshift(y),y*=o[A];let d=[];y=1;for(let A=l.length-1;A>=0;A--)d.unshift(y),y*=l[A];let b=o.reduce((A,g)=>A*g,1);for(let A=0;A<b;A++){let g=[],h=A;for(let C=0;C<o.length;C++)g.push(Math.floor(h/p[C])),h=h%p[C];if(s.has(g[u]))continue;let N=0;for(let C of s)C<g[u]&&N++;let D=[...g];D[u]-=N;let x=0;for(let C=0;C<l.length;C++)x+=D[C]*d[C];m.iset(x,a.iget(A))}return f}function Dc(r,t,e,n){let o=Array.isArray(t)?t:[t],a=e instanceof P?e:Q(Array.isArray(e)?e:[e]);if(n===void 0){let u=Br(r),i=Br(a),s=u.data,c=i.data,l=Array.from(s);if(o.length===1){let f=o[0],m=f<0?u.size+f:f,p=Array.from(c);l.splice(m,0,...p)}else{let f=o.map((m,p)=>({idx:m<0?u.size+m:m,valIdx:p})).sort((m,p)=>m.idx-p.idx);for(let m=0;m<f.length;m++){let{idx:p,valIdx:y}=f[m],d=c[y%c.length];l.splice(p+m,0,d)}}return Q(l,r.dtype)}throw new Error("insert along axis not fully implemented in standalone")}function xc(r,t,e="constant",n=0){let o=[...r.shape],a=o.length,u;typeof t=="number"?u=Array(a).fill([t,t]):Array.isArray(t)&&typeof t[0]=="number"?u=Array(a).fill(t):u=t;let i=o.map((d,b)=>d+u[b][0]+u[b][1]);if(e!=="constant")throw new Error(`pad mode '${e}' not fully implemented in standalone`);let s=wr(i,r.dtype),c=s.storage;if(n!==0)for(let d=0;d<s.size;d++)c.iset(d,n);let l=r.storage,f=[],m=1;for(let d=o.length-1;d>=0;d--)f.unshift(m),m*=o[d];let p=[];m=1;for(let d=i.length-1;d>=0;d--)p.unshift(m),m*=i[d];let y=o.reduce((d,b)=>d*b,1);for(let d=0;d<y;d++){let b=[],A=d;for(let h=0;h<o.length;h++)b.push(Math.floor(A/f[h])),A=A%f[h];let g=0;for(let h=0;h<i.length;h++)g+=(b[h]+u[h][0])*p[h];c.iset(g,l.iget(d))}return s}var wc=["int8","int16","int32","int64"],Ic=["uint8","uint16","uint32","uint64"],sd=[...wc,...Ic],Cc=["float32","float64"],Sc=["complex64","complex128"],px=[...sd,...Cc,...Sc],ad={bool:0,int8:1,uint8:2,int16:3,uint16:4,int32:5,uint32:6,int64:7,uint64:8,float32:9,float64:10,complex64:11,complex128:12};function mo(r,t,e="safe"){let n=r instanceof P?r.dtype:r;if(e==="no"||e==="equiv")return n===t;if(e==="unsafe")return!0;let o=ad[n]??-1,a=ad[t]??-1;if(e==="safe"){if(Ur(n)&&Or(t)){let u={int8:8,int16:16,int32:32,int64:64,uint8:8,uint16:16,uint32:32,uint64:64,bool:1,float32:0,float64:0,complex64:0,complex128:0},i={float32:24,float64:53,int8:0,int16:0,int32:0,int64:0,uint8:0,uint16:0,uint32:0,uint64:0,bool:0,complex64:24,complex128:53},s=u[n]??64,c=i[t]??0;return s<=c}return!!(Ur(n)&&B(t)||Or(n)&&B(t)||o<=a)}return e==="same_kind"?!!(Ur(n)&&Ur(t)||Or(n)&&Or(t)||B(n)&&B(t)||n==="bool"&&Ur(t)||n==="bool"&&t==="bool"||Or(n)&&B(t)):!1}function ys(...r){if(r.length===0)return"float64";let t=!1,e=!1;for(let n of r){let o=n.dtype;B(o)?(t=!0,o==="complex128"&&(e=!0)):Or(o)?o==="float64"&&(e=!0):Ur(o)&&(o==="int64"||o==="uint64"||o==="int32"||o==="uint32")&&(e=!0)}return t?e?"complex128":"complex64":e?"float64":"float32"}function ds(...r){if(r.length===0)return"float64";let t=r.map(a=>a instanceof P?a.dtype:a),e=t.some(B),n=t.some(Or),o=t.some(Ur);if(e){let a=t.some(s=>s==="float64"),u=t.some(s=>s==="complex128"),i=t.some(s=>s==="int64"||s==="uint64"||s==="int32"||s==="uint32");return u||a||i?"complex128":"complex64"}if(n){let a=t.some(u=>u==="float64");return o&&(t.some(i=>i==="int32"||i==="uint32"||i==="int64"||i==="uint64")||a)||a?"float64":"float32"}if(o){let a=t.some(c=>wc.includes(c)),u=t.some(c=>Ic.includes(c)),i={bool:8,int8:8,uint8:8,int16:16,uint16:16,int32:32,uint32:32,int64:64,uint64:64,float32:0,float64:0,complex64:0,complex128:0},s=Math.max(...t.map(c=>i[c]??0));return a&&u?s>=32?"int64":s>=16?"int32":"int16":a?s>=64?"int64":s>=32?"int32":s>=16?"int16":"int8":s>=64?"uint64":s>=32?"uint32":s>=16?"uint16":"uint8"}return"bool"}function bs(r){return typeof r=="boolean"?"bool":typeof r=="bigint"?r>=0n?r<=255n?"uint8":r<=65535n?"uint16":r<=4294967295n?"uint32":"uint64":r>=-128n&&r<=127n?"int8":r>=-32768n&&r<=32767n?"int16":r>=-2147483648n&&r<=2147483647n?"int32":"int64":Number.isInteger(r)?r>=0?r<=255?"uint8":r<=65535?"uint16":r<=4294967295?"uint32":"int64":r>=-128&&r<=127?"int8":r>=-32768&&r<=32767?"int16":r>=-2147483648&&r<=2147483647?"int32":"int64":"float64"}function As(r,t){let e=r instanceof P?r.dtype:r;if(typeof t=="string")switch(t){case"number":case"numeric":return px.includes(e);case"integer":case"int":return sd.includes(e);case"signedinteger":return wc.includes(e);case"unsignedinteger":return Ic.includes(e);case"floating":case"float":return Cc.includes(e);case"complexfloating":case"complex":return Sc.includes(e);case"inexact":return Cc.includes(e)||Sc.includes(e);default:return e===t}return e===t}function gs(r){return r}function hs(r,t="GDFgdf",e="d"){let n={b:"int8",B:"uint8",h:"int16",H:"uint16",i:"int32",I:"uint32",l:"int64",L:"uint64",f:"float32",d:"float64",F:"complex64",D:"complex128",g:"float64",G:"complex128"},o={b:0,B:1,h:2,H:3,i:4,I:5,l:6,L:7,f:8,g:9.1,d:9,F:10,G:11.1,D:11};if(r.length===0)return e;let a=[];for(let s of r){let c=n[s];c&&a.push(c)}if(a.length===0)return e;let u=e,i=1/0;for(let s of t){let c=n[s];if(!c)continue;let l=o[s]??1/0,f=!0;for(let m of a)if(!mo(m,c,"safe")){f=!1;break}f&&l<i&&(i=l,u=s)}return u}function Sr(r){return r instanceof P?r:Q(r)}function zc(r){let t=Sr(r),e=t.data,n=t.size;if(n===0)return Q([1]);let o=[1];for(let a=0;a<n;a++){let u=e[a],i=new Array(o.length+1).fill(0);for(let s=0;s<o.length;s++)i[s]+=o[s],i[s+1]-=o[s]*u;o=i}return Q(o)}function _c(r,t){let e=Sr(r),n=Sr(t),o=e.data,a=n.data,u=Math.max(e.size,n.size),i=new Array(u).fill(0);for(let c=0;c<e.size;c++)i[u-e.size+c]+=o[c];for(let c=0;c<n.size;c++)i[u-n.size+c]+=a[c];let s=0;for(;s<i.length-1&&i[s]===0;)s++;return Q(i.slice(s))}function Mc(r,t=1){let e=Sr(r);for(let n=0;n<t;n++){let o=e.data,a=e.size;if(a<=1)return Q([0]);let u=[];for(let i=0;i<a-1;i++){let s=a-1-i;u.push(o[i]*s)}e=Q(u)}return e}function vc(r,t){let e=[...Sr(r).data],n=[...Sr(t).data];if(n.length===0||n.length===1&&n[0]===0)throw new Error("Division by zero polynomial");for(;e.length>1&&e[0]===0;)e.shift();for(;n.length>1&&n[0]===0;)n.shift();if(e.length<n.length)return[Q([0]),Q(e)];let o=[],a=[...e];for(;a.length>=n.length;){let u=a[0]/n[0];o.push(u);for(let i=0;i<n.length;i++)a[i]-=u*n[i];a.shift()}for(;a.length>1&&Math.abs(a[0])<1e-15;)a.shift();return[Q(o.length>0?o:[0]),Q(a.length>0?a:[0])]}function Fc(r,t,e){let n=r.data,o=t.data,a=r.size;if(e>=a)throw new Error("polyfit: degree must be less than number of points");let u=[];for(let m=0;m<a;m++){let p=[];for(let y=e;y>=0;y--)p.push(Math.pow(n[m],y));u.push(p)}let i=[],s=[];for(let m=0;m<=e;m++){i.push([]);for(let y=0;y<=e;y++){let d=0;for(let b=0;b<a;b++)d+=u[b][m]*u[b][y];i[m].push(d)}let p=0;for(let y=0;y<a;y++)p+=u[y][m]*o[y];s.push(p)}let c=e+1,l=i.map((m,p)=>[...m,s[p]]);for(let m=0;m<c;m++){let p=m;for(let y=m+1;y<c;y++)Math.abs(l[y][m])>Math.abs(l[p][m])&&(p=y);[l[m],l[p]]=[l[p],l[m]];for(let y=m+1;y<c;y++){let d=l[y][m]/l[m][m];for(let b=m;b<=c;b++)l[y][b]-=d*l[m][b]}}let f=new Array(c).fill(0);for(let m=c-1;m>=0;m--){let p=l[m][c];for(let y=m+1;y<c;y++)p-=l[m][y]*f[y];f[m]=p/l[m][m]}return Q(f)}function Bc(r,t=1,e=0){let n=Sr(r),o=Array.isArray(e)?e:[e];for(let a=0;a<t;a++){let u=n.data,i=n.size,s=[];for(let l=0;l<i;l++){let f=i-l;s.push(u[l]/f)}let c=a<o.length?o[a]:0;s.push(c),n=Q(s)}return n}function Tc(r,t){let e=Sr(r),n=Sr(t),o=e.data,a=n.data,u=e.size+n.size-1,i=new Array(u).fill(0);for(let s=0;s<e.size;s++)for(let c=0;c<n.size;c++)i[s+c]+=o[s]*a[c];return Q(i)}function Ec(r,t){let e=Sr(r),n=Sr(t),o=e.data,a=n.data,u=Math.max(e.size,n.size),i=new Array(u).fill(0);for(let c=0;c<e.size;c++)i[u-e.size+c]+=o[c];for(let c=0;c<n.size;c++)i[u-n.size+c]-=a[c];let s=0;for(;s<i.length-1&&i[s]===0;)s++;return Q(i.slice(s))}function Oc(r,t){let e=Sr(r),n=e.data;if(typeof t=="number"){let i=n[0];for(let s=1;s<e.size;s++)i=i*t+n[s];return i}let o=t instanceof P?t:Q(t),a=o.data,u=[];for(let i=0;i<o.size;i++){let s=a[i],c=n[0];for(let l=1;l<e.size;l++)c=c*s+n[l];u.push(c)}return Q(u)}function Uc(r){let e=[...Sr(r).data];for(;e.length>1&&e[0]===0;)e.shift();let n=0;for(;e.length>1&&e[e.length-1]===0;)e.pop(),n++;let o=e.length-1;if(o+n===0)return id([],[]);let u=[],i=[];if(o===1)u.push(-e[1]/e[0]),i.push(0);else if(o===2){let f=e[0],m=e[1],p=e[2],y=m*m-4*f*p;if(y>=0){let d=Math.sqrt(y);u.push((-m+d)/(2*f),(-m-d)/(2*f)),i.push(0,0)}else{let d=Math.sqrt(-y);u.push(-m/(2*f),-m/(2*f)),i.push(d/(2*f),-d/(2*f))}}else if(o>=3){let f=yx(e,o);for(let m of f)u.push(m.re),i.push(m.im)}for(let f=0;f<n;f++)u.push(0),i.push(0);let s=u.map((f,m)=>m);s.sort((f,m)=>{let p=Math.sqrt(u[f]**2+i[f]**2),y=Math.sqrt(u[m]**2+i[m]**2);return Math.abs(p-y)>1e-10?y-p:Math.abs(u[f]-u[m])>1e-10?u[m]-u[f]:i[m]-i[f]});let c=s.map(f=>u[f]),l=s.map(f=>i[f]);return id(c,l)}function id(r,t){let e=r.length,n=new Float64Array(2*e);for(let a=0;a<e;a++)n[2*a]=r[a],n[2*a+1]=t[a];let o=S.fromData(n,[e],"complex128");return new P(o)}function yx(r,t){let e=Array.from({length:t},()=>new Array(t).fill(0)),n=r[0];for(let o=0;o<t;o++)e[0][o]=-r[o+1]/n;for(let o=1;o<t;o++)e[o][o-1]=1;return dx(e,t)}function dx(r,t){let e=[],o=t,a=0,u=100*t,i=t,s=0;for(;o>0&&a<u;){if(a++,o===i?s++:(s=0,i=o),o===1){e.push({re:r[0][0],im:0}),o=0;break}if(o===2){e.push(...ud(r[0][0],r[0][1],r[1][0],r[1][1])),o=0;break}let c=o-1;for(;c>0;){let y=Math.abs(r[c-1][c-1])+Math.abs(r[c][c]),d=222e-18*(y===0?1:y);if(Math.abs(r[c][c-1])<=d){r[c][c-1]=0;break}c--}let l=o-c;if(l===1){e.push({re:r[o-1][o-1],im:0}),o--;continue}if(l===2){e.push(...ud(r[o-2][o-2],r[o-2][o-1],r[o-1][o-2],r[o-1][o-1])),o-=2;continue}let f;if(s>0&&s%10===0)f=Math.abs(r[o-1][o-2])+Math.abs(r[o-2][o-3]);else{let y=r[o-2][o-2],d=r[o-2][o-1],b=r[o-1][o-2],A=r[o-1][o-1],g=y+A,h=y*A-d*b,N=g*g-4*h;if(N>=0){let D=Math.sqrt(N),x=(g+D)/2,C=(g-D)/2;f=Math.abs(x-A)<Math.abs(C-A)?x:C}else f=A}for(let y=c;y<o;y++)r[y][y]=r[y][y]-f;let m=[],p=[];for(let y=c;y<o-1;y++){let d=Math.hypot(r[y][y],r[y+1][y]),b=d===0?1:r[y][y]/d,A=d===0?0:r[y+1][y]/d;m.push(b),p.push(A);for(let g=y;g<o;g++){let h=r[y][g],N=r[y+1][g];r[y][g]=b*h+A*N,r[y+1][g]=-A*h+b*N}}for(let y=0;y<m.length;y++){let d=c+y,b=m[y],A=p[y],g=Math.min(d+2,o-1);for(let h=c;h<=g;h++){let N=r[h][d],D=r[h][d+1];r[h][d]=b*N+A*D,r[h][d+1]=-A*N+b*D}}for(let y=c;y<o;y++)r[y][y]=r[y][y]+f}if(o>0)for(let c=0;c<o;c++)e.push({re:r[c][c],im:0});return e}function ud(r,t,e,n){let o=r+n,a=r*n-t*e,u=o*o-4*a;if(u>=0){let i=Math.sqrt(u);return[{re:(o+i)/2,im:0},{re:(o-i)/2,im:0}]}else{let i=Math.sqrt(-u);return[{re:o/2,im:i/2},{re:o/2,im:-i/2}]}}var po=new Uint8Array([147,78,85,77,80,89]),$c=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function kc(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}var bx={f8:"float64",f4:"float32",c16:"complex128",c8:"complex64",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},Ns={float64:"<f8",float32:"<f4",complex128:"<c16",complex64:"<c8",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},cd={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function ld(r){if(r.startsWith("[")||r.startsWith("("))throw new jr(`Structured/compound dtypes are not supported: ${r}`);let t="",e=r;(r[0]==="<"||r[0]===">"||r[0]==="="||r[0]==="|")&&(t=r[0],e=r.slice(1));let n=e[0];if(n&&n in cd)throw new jr(`Unsupported dtype: ${cd[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=bx[e];if(!o)throw new jr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${$c.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=kc(),u=t==="<"||t==="|"||t==="="&&a,i=t===">"||t==="="&&!a,s=parseInt(e.slice(1),10),c=s>1&&(i&&a||u&&!a);return{dtype:o,needsByteSwap:c,itemsize:s}}var jr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},hr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}};function Ds(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=Rc(t);return qc(t,e)}function Rc(r){if(r.length<10)throw new hr("File too small to be a valid NPY file");for(let c=0;c<po.length;c++)if(r[c]!==po[c])throw new hr("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new hr(`Unsupported NPY version: ${t}.${e}`);let n,o;t===1?(n=r[8]|r[9]<<8,o=10):(n=r[8]|r[9]<<8|r[10]<<16|r[11]<<24,o=12);let a=o+n;if(r.length<a)throw new hr("File truncated: header extends beyond file");let u=r.slice(o,a),i=new TextDecoder("utf-8").decode(u).trim(),s=Ax(i);return{version:{major:t,minor:e},header:s,dataOffset:a}}function qc(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:u}=ld(e.descr),i=e.shape.reduce((d,b)=>d*b,1),s=i*u,c=r.length-n;if(c<s)throw new hr(`File truncated: expected ${s} bytes of data, got ${c}`);let l=new ArrayBuffer(s);new Uint8Array(l).set(r.subarray(n,n+s));let m=gx(l,o,i,a,u),p=e.shape,y;if(e.fortran_order&&p.length>1){let d=[...p].reverse(),b=S.fromData(m,d,o);y=hx(b,d),p=e.shape}else y=S.fromData(m,[...p],o);return new P(y)}function Ax(r){let t=r.match(/'descr'\s*:\s*'([^']+)'/),e=r.match(/'fortran_order'\s*:\s*(True|False)/),n=r.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!t||!e||!n)throw new hr(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",u=n[1].trim(),i;return u===""?i=[]:i=u.split(",").map(s=>s.trim()).filter(s=>s!=="").map(s=>{let c=parseInt(s,10);if(isNaN(c))throw new hr(`Invalid shape value: ${s}`);return c}),{descr:o,fortran_order:a,shape:i}}function gx(r,t,e,n,o){let a=K(t);if(!a)throw new hr(`Cannot create array for dtype: ${t}`);let u=B(t),i=u?e*2:e;if(!n)return new a(r,0,i);let s=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(u){let l=o/2;for(let f=0;f<e*2;f++){let m=f*l;for(let p=0;p<l;p++)c[m+p]=s[m+l-1-p]}}else for(let l=0;l<e;l++){let f=l*o;for(let m=0;m<o;m++)c[f+m]=s[f+o-1-m]}return new a(c.buffer,0,i)}function hx(r,t){let e=t.length,n=r.size,o=r.dtype,a=K(o);if(!a)throw new hr(`Cannot create array for dtype: ${o}`);let u=new a(n),i=[...t].reverse(),s=fd(t),c=fd(i),l=new Array(e).fill(0);for(let f=0;f<n;f++){let m=f;for(let y=0;y<e;y++){let d=s[y];l[y]=Math.floor(m/d),m=m%d}let p=0;for(let y=0;y<e;y++)p+=l[e-1-y]*c[y];E(o),u[p]=r.iget(f)}return S.fromData(u,i,o)}function fd(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}function yo(r){let t=r.shape,e=r.dtype,n=Ns[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,u=12,s=(64-(u+a.length+1)%64)%64;a=a+" ".repeat(s)+`
6
- `;let c=new TextEncoder().encode(a),l=c.length,f=r.size,m=Wr(e),p=f*m,y=u+l+p,d=new Uint8Array(y);d.set(po,0),d[6]=3,d[7]=0,d[8]=l&255,d[9]=l>>8&255,d[10]=l>>16&255,d[11]=l>>24&255,d.set(c,u);let b=u+l;return Nx(r,d.subarray(b),m),d}function Nx(r,t,e){let n=r.dtype,o=r.size,a=kc(),u=E(n),i=B(n),s=r.storage;if(s.isCContiguous&&s.offset===0&&a){let l=s.data,f=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(f)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let f=0;f<o;f++){let m=s.iget(f),p=f*e;u?Dx(l,p,m,n==="uint64"):i?xx(l,p,m,n):Cx(l,p,m,n)}}}function Dx(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function xx(r,t,e,n){n==="complex128"?(r.setFloat64(t,e.re,!0),r.setFloat64(t+8,e.im,!0)):(r.setFloat32(t,e.re,!0),r.setFloat32(t+4,e.im,!0))}function Cx(r,t,e,n){switch(n){case"float64":r.setFloat64(t,e,!0);break;case"float32":r.setFloat32(t,e,!0);break;case"int32":r.setInt32(t,e,!0);break;case"int16":r.setInt16(t,e,!0);break;case"int8":r.setInt8(t,e);break;case"uint32":r.setUint32(t,e,!0);break;case"uint16":r.setUint16(t,e,!0);break;case"uint8":case"bool":r.setUint8(t,e);break;default:throw new Error(`Unsupported dtype for serialization: ${n}`)}}var Sx=(()=>{let r=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r})();function Vc(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Sx[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}async function yd(r){let t=bd(r),e=new Map;for(let n of t){let o=await wx(n);e.set(n.name,o)}return e}function dd(r){let t=bd(r),e=new Map;for(let n of t){if(n.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${n.name}. Use readZip() (async) for DEFLATE-compressed files.`);e.set(n.name,n.compressedData)}return e}function bd(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),u=e.getUint16(o+10,!0),i=[],s=a;for(let c=0;c<u&&e.getUint32(s,!0)===33639248;c++){let f=e.getUint16(s+10,!0),m=e.getUint32(s+16,!0),p=e.getUint32(s+20,!0),y=e.getUint32(s+24,!0),d=e.getUint16(s+28,!0),b=e.getUint16(s+30,!0),A=e.getUint16(s+32,!0),g=e.getUint32(s+42,!0),h=t.slice(s+46,s+46+d),N=new TextDecoder("utf-8").decode(h);i.push({name:N,compressionMethod:f,crc32:m,compressedSize:p,uncompressedSize:y,localHeaderOffset:g}),s=s+46+d+b+A}for(let c of i){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let m=e.getUint16(l+26,!0),p=e.getUint16(l+28,!0),y=l+30+m+p,d=t.slice(y,y+c.compressedSize);n.push({name:c.name,compressedData:d,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function wx(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await Ix(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function Ix(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),i=new Uint8Array(u),s=0;for(let c of a)i.set(c,s),s+=c.length;return i}async function Pc(r,t={}){let e=t.force??!1,n=await yd(r);return Ad(n,e)}function jc(r,t={}){let e=t.force??!1,n=dd(r);return Ad(n,e)}function Ad(r,t){let e=new Map,n=[],o=new Map;for(let[a,u]of r){if(!a.endsWith(".npy"))continue;let i=a.slice(0,-4);try{let s=Ds(u);e.set(i,s)}catch(s){if(s instanceof jr&&t)n.push(i),o.set(i,s.message);else throw s}}return{arrays:e,skipped:n,errors:o}}async function gd(r,t={}){let e=await Pc(r,t);return Object.fromEntries(e.arrays)}function hd(r,t={}){let e=jc(r,t);return Object.fromEntries(e.arrays)}async function Nd(r,t={}){let e=t.compress??!1,n=[];for(let[m,p]of r){let y=Vc(p),d,b;e?(d=await _x(p),d.length<p.length?b=8:(d=p,b=0)):(d=p,b=0),n.push({name:m,data:p,compressedData:d,crc:y,compressionMethod:b,offset:0})}let o=0;for(let m of n){let p=new TextEncoder().encode(m.name);o+=30+p.length+m.compressedData.length}let a=0;for(let m of n){let p=new TextEncoder().encode(m.name);a+=46+p.length}let i=o+a+22,s=new Uint8Array(i),c=new DataView(s.buffer),l=0;for(let m of n)m.offset=l,l=xd(s,c,l,m);let f=l;for(let m of n)l=Cd(s,c,l,m);return Sd(c,l,n.length,a,f),s}function Dd(r){let t=[];for(let[l,f]of r){let m=Vc(f);t.push({name:l,data:f,compressedData:f,crc:m,compressionMethod:0,offset:0})}let e=0;for(let l of t){let f=new TextEncoder().encode(l.name);e+=30+f.length+l.compressedData.length}let n=0;for(let l of t){let f=new TextEncoder().encode(l.name);n+=46+f.length}let a=e+n+22,u=new Uint8Array(a),i=new DataView(u.buffer),s=0;for(let l of t)l.offset=s,s=xd(u,i,s,l);let c=s;for(let l of t)s=Cd(u,i,s,l);return Sd(i,s,t.length,n,c),u}function xd(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,67324752,!0),e+=4,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,r.set(o,e),e+=o.length,r.set(n.compressedData,e),e+=n.compressedData.length,e}function Cd(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,33639248,!0),e+=4,t.setUint16(e,20,!0),e+=2,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint32(e,0,!0),e+=4,t.setUint32(e,n.offset,!0),e+=4,r.set(o,e),e+=o.length,e}function Sd(r,t,e,n,o){r.setUint32(t,101010256,!0),t+=4,r.setUint16(t,0,!0),t+=2,r.setUint16(t,0,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint32(t,n,!0),t+=4,r.setUint32(t,o,!0),t+=4,r.setUint16(t,0,!0)}async function _x(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let u=a.reduce((c,l)=>c+l.length,0),i=new Uint8Array(u),s=0;for(let c of a)i.set(c,s),s+=c.length;return i}async function wd(r,t={}){let e=zd(r);return Nd(e,{compress:t.compress??!1})}function Id(r){let t=zd(r);return Dd(t)}function zd(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=yo(o);t.set(`arr_${n}.npy`,a)}return t}let e=r instanceof Map?r.entries():Object.entries(r);for(let[n,o]of e){if(typeof n!="string"||n.length===0)throw new Error("Array names must be non-empty strings");let a=yo(o),u=n.endsWith(".npy")?n:`${n}.npy`;t.set(u,a)}return t}function Lc(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:u,dtype:i="float64",missing_values:s,filling_values:c}=t,l=r.split(/\r?\n/);if(o>0&&(l=l.slice(o)),l=l.filter(d=>{let b=d.trim();return!(b===""||n&&b.startsWith(n))}),u!==void 0&&u>0&&(l=l.slice(0,u)),l.length===0)return Q([],i);let f=[],m=new Set(s?Array.isArray(s)?s:[s]:[]),p=c!==void 0?c:i.includes("int")||i==="bool"?0:NaN;for(let d of l){let b;e===void 0?b=d.trim().split(/\s+/):b=d.split(e),a!==void 0&&(b=(Array.isArray(a)?a:[a]).map(h=>(h<0&&(h=b.length+h),b[h]??"")));let A=b.map(g=>{let h=g.trim();if(m.has(h)||h==="")return p;let N=parseFloat(h);return isNaN(N)?p:N});f.push(A)}let y=f[0]?.length??0;for(let d=1;d<f.length;d++)if(f[d].length!==y)throw new Error(`Inconsistent number of columns: row 0 has ${y} columns, row ${d} has ${f[d].length} columns`);return y===1?Q(f.map(d=>d[0]),i):Q(f,i)}function _d(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return Lc(r,e)}function Md(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let u=a.slice(1).map(i=>{let s=parseFloat(i);return isNaN(s)?0:s});o.push(u)}return o.length===0?Q([],e):o[0].length===1?Q(o.map(u=>u[0]),e):Q(o,e)}function vd(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,u,i]=n,s=u!==void 0?parseInt(u,10):void 0,c;switch(i){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(s??6);break;case"e":c=e.toExponential(s??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(s??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=s??6,f=Math.floor(Math.log10(Math.abs(e)));f>=-4&&f<l?(c=e.toPrecision(l),c.includes(".")&&(c=c.replace(/\.?0+$/,""))):c=e.toExponential(l-1),i==="G"&&(c=c.toUpperCase());break}case"s":c=String(e);break;default:c=String(e)}if(a){let l=parseInt(a,10);if(c.length<l){let f=" ".repeat(l-c.length);o==="-"?c=c+f:c=f+c}}return o==="+"&&e>=0&&!c.startsWith("-")&&(c="+"+c),c}function Fd(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
7
- `,header:a,footer:u,comments:i="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let s=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let f of l)f.startsWith(i.trimEnd())?s.push(f):s.push(i+f)}let c=r.toArray();if(r.ndim===1)for(let l of c)s.push(vd(l,e));else for(let l of c){let f=l.map(m=>vd(m,e));s.push(f.join(n))}if(u!==void 0){let l=u.split(/\r?\n/);for(let f of l)f.startsWith(i.trimEnd())?s.push(f):s.push(i+f)}return s.join(o)+o}var q=r=>{if(r instanceof er)return r;let t=r.base?q(r.base):void 0;return er.fromStorage(r.storage,t)},er=class r extends P{constructor(t,e){super(t,e),this._base=e}static fromStorage(t,e){return new r(t,e)}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return Wr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(E(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,u)=>{let i=a;if(i<0&&(i=this.shape[u]+i),i<0||i>=this.shape[u])throw new Error(`Index ${a} is out of bounds for axis ${u} with size ${this.shape[u]}`);return i}),o=this.dtype;if(B(o))this._storage.set(n,e);else if(E(o)){let a=e instanceof U?e.re:Number(e),u=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,u)}else if(o==="bool"){let u=(e instanceof U?e.re:Number(e))?1:0;this._storage.set(n,u)}else{let a=e instanceof U?e.re:Number(e);this._storage.set(n,a)}}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,u=K(t);if(!u)throw new Error(`Cannot convert to dtype ${t}`);let i=new u(a),s=this.data;if(E(n)&&!E(t)){let l=s;if(t==="bool")for(let f=0;f<a;f++)i[f]=l[f]!==BigInt(0)?1:0;else for(let f=0;f<a;f++)i[f]=Number(l[f])}else if(!E(n)&&E(t)){let l=s;for(let f=0;f<a;f++)i[f]=BigInt(Math.round(Number(l[f])))}else if(t==="bool"){let l=s;for(let f=0;f<a;f++)i[f]=l[f]!==0?1:0}else if(n==="bool"&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else if(!E(n)&&!E(t)){let l=s;for(let f=0;f<a;f++)i[f]=l[f]}else{let l=s;for(let f=0;f<a;f++)i[f]=l[f]}let c=S.fromData(i,o,t);return new r(c)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((s,c)=>{let l=wo(s);return Io(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let s=0;s<e.length;s++){let c=e[s],l=this._storage.strides[s];if(a+=c.start*l,!c.isIndex){let f;c.step>0?f=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):f=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(f),o.push(l*c.step)}}let u=S.fromData(this._storage.data,n,this._storage.dtype,o,a),i=this._base??this;return new r(u,i)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=Me(this,e).storage,a=n.data===this.data?this._base??this:void 0;return r.fromStorage(n,a)}ravel(){let t=ve(this).storage,n=t.data===this.data?this._base??this:void 0;return r.fromStorage(t,n)}put(t,e){let n=e instanceof r?e._storage:e;_t(this,t,n)}compress(t,e){let n=t instanceof r?t:r.fromStorage(S.fromData(new Uint8Array(t.map(o=>o?1:0)),[t.length],"bool"));return q(nt(n,this,e))}choose(t){return q(lo(this,t))}clip(t,e){return q(ue(this,t,e))}iindex(t,e=0){let n;if(t instanceof r){n=[];for(let o=0;o<t.size;o++){let a=t.storage.iget(o),u=typeof a=="bigint"?Number(a):a instanceof U?a.re:a;n.push(u)}}else Array.isArray(t)&&t.length>0&&Array.isArray(t[0])?n=t.flat():n=t;return this.take(n,e)}bindex(t,e){return q(nt(t,this,e))}toString(){return Mt(this)}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let u=[];for(let i=0;i<t[a];i++)o[a]=i,u.push(n(o,a+1));return u};return n(new Array(e),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let n=this._storage.data,o=n.BYTES_PER_ELEMENT,a=this._storage.offset*o,u=this.size*o;return n.buffer.slice(a,a+u)}let e=this.copy()._storage.data;return e.buffer.slice(0,this.size*e.BYTES_PER_ELEMENT)}item(...t){if(t.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(t.length===1){let e=t[0];if(e<0||e>=this.size)throw new Error(`index ${e} is out of bounds for size ${this.size}`);return this._storage.iget(e)}return this.get(t)}byteswap(t=!1){let e=t?this:this.copy(),n=e._storage.data,o=n.BYTES_PER_ELEMENT;if(o===1)return e;let a=n.buffer,u=new DataView(a);for(let i=0;i<n.length;i++){let s=i*o;if(o===2){let c=u.getUint8(s),l=u.getUint8(s+1);u.setUint8(s,l),u.setUint8(s+1,c)}else if(o===4){let c=u.getUint8(s),l=u.getUint8(s+1),f=u.getUint8(s+2),m=u.getUint8(s+3);u.setUint8(s,m),u.setUint8(s+1,f),u.setUint8(s+2,l),u.setUint8(s+3,c)}else if(o===8){let c=u.getUint8(s),l=u.getUint8(s+1),f=u.getUint8(s+2),m=u.getUint8(s+3),p=u.getUint8(s+4),y=u.getUint8(s+5),d=u.getUint8(s+6),b=u.getUint8(s+7);u.setUint8(s,b),u.setUint8(s+1,d),u.setUint8(s+2,y),u.setUint8(s+3,p),u.setUint8(s+4,m),u.setUint8(s+5,f),u.setUint8(s+6,l),u.setUint8(s+7,c)}}return e}view(t){if(!t||t===this.dtype)return r.fromStorage(this._storage,this._base??this);let e=Wr(this.dtype),n=Wr(t);if(e!==n)throw new Error("When changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.");let o=K(t);if(!o)throw new Error(`Unsupported dtype: ${t}`);let a=this._storage.data,u=a.byteOffset+this._storage.offset*e,i=new o(a.buffer,u,this.size),s=S.fromData(i,[...this.shape],t,[...this._storage.strides],0);return r.fromStorage(s,this._base??this)}tofile(t,e="",n=""){throw new Error('tofile() requires file system access. Use the node module: import { save } from "numpy-ts/node"')}round(t=0){return this.around(t)}conjugate(){return this.conj()}around(t=0){return q(It(this,t))}allclose(t,e=1e-5,n=1e-8){return St(this,t,e,n)}isclose(t,e=1e-5,n=1e-8){return q(qn(this,t,e,n))}average(t,e){let n=tn(this,e,t);return n instanceof P?q(n):n}dot(t){let e=mt(this,t);return e instanceof P?q(e):e}trace(){return Hr(this)}inner(t){let e=dt(this,t);return e instanceof P?q(e):e}tensordot(t,e=2){let n=At(this,t,e);return n instanceof P?q(n):n}divmod(t){let e=oe(this,t);return[q(e[0]),q(e[1])]}searchsorted(t,e="left"){return q(wt(this,t,e))}sqrt(){return q(kt(this))}exp(){return q(qt(this))}exp2(){return q(Vt(this))}expm1(){return q(Pt(this))}log(){return q(jt(this))}log2(){return q(Lt(this))}log10(){return q(Wt(this))}log1p(){return q(Gt(this))}absolute(){return q(Xt(this))}negative(){return q(Jt(this))}sign(){return q(Kt(this))}positive(){return q(re(this))}reciprocal(){return q(te(this))}ceil(){return q(to(this))}fix(){return q(eo(this))}floor(){return q(no(this))}rint(){return q(oo(this))}trunc(){return q(ao(this))}sin(){return q(ce(this))}cos(){return q(le(this))}tan(){return q(fe(this))}arcsin(){return q(me(this))}arccos(){return q(pe(this))}arctan(){return q(ye(this))}degrees(){return q(Ae(this))}radians(){return q(ge(this))}sinh(){return q(he(this))}cosh(){return q(Ne(this))}tanh(){return q(De(this))}arcsinh(){return q(xe(this))}arccosh(){return q(Ce(this))}arctanh(){return q(Se(this))}bitwise_not(){return q(Kn(this))}invert(){return q(Qn(this))}logical_not(){return q(Sn(this))}isfinite(){return q(In(this))}isinf(){return q(zn(this))}isnan(){return q(_n(this))}isnat(){return q(Mn(this))}signbit(){return q(Fn(this))}spacing(){return q(Tn(this))}cbrt(){return q(ee(this))}fabs(){return q(ne(this))}square(){return q(ae(this))}conj(){return q(uo(this))}flatten(){return q(Br(this))}argwhere(){return q(Gn(this))}add(t){return q(Ot(this,t))}subtract(t){return q(Ut(this,t))}multiply(t){return q($t(this,t))}divide(t){return q(ut(this,t))}mod(t){return q(Qt(this,t))}floor_divide(t){return q(Ht(this,t))}power(t){return q(Rt(this,t))}logaddexp(t){return q(Yt(this,t))}logaddexp2(t){return q(Zt(this,t))}arctan2(t){return q(de(this,t))}hypot(t){return q(be(this,t))}greater(t){return q(En(this,t))}greater_equal(t){return q(On(this,t))}less(t){return q(Un(this,t))}less_equal(t){return q($n(this,t))}equal(t){return q(kn(this,t))}not_equal(t){return q(Rn(this,t))}bitwise_and(t){return q(Zn(this,t))}bitwise_or(t){return q(Xn(this,t))}bitwise_xor(t){return q(Jn(this,t))}left_shift(t){return q(Hn(this,t))}right_shift(t){return q(ro(this,t))}logical_and(t){return q(xn(this,t))}logical_or(t){return q(Cn(this,t))}logical_xor(t){return q(wn(this,t))}copysign(t){return q(vn(this,t))}nextafter(t){return q(Bn(this,t))}remainder(t){return q(se(this,t))}heaviside(t){return q(ie(this,t))}matmul(t){return q(_e(this,t))}outer(t){return q(bt(this,t))}sum(t,e=!1){let n=Ve(this,t,e);return n instanceof P?q(n):n}mean(t,e=!1){let n=Pe(this,t,e);return n instanceof P?q(n):n}prod(t,e=!1){let n=je(this,t,e);return n instanceof P?q(n):n}max(t,e=!1){let n=Le(this,t,e);return n instanceof P?q(n):n}min(t,e=!1){let n=Ge(this,t,e);return n instanceof P?q(n):n}ptp(t,e=!1){let n=Ze(this,t,e);return n instanceof P?q(n):n}nansum(t,e=!1){let n=sn(this,t,e);return n instanceof P?q(n):n}nanprod(t,e=!1){let n=un(this,t,e);return n instanceof P?q(n):n}nanmean(t,e=!1){let n=cn(this,t,e);return n instanceof P?q(n):n}nanmin(t,e=!1){let n=mn(this,t,e);return n instanceof P?q(n):n}nanmax(t,e=!1){let n=pn(this,t,e);return n instanceof P?q(n):n}argmin(t){let e=Xe(this,t);return e instanceof P?q(e):e}argmax(t){let e=Je(this,t);return e instanceof P?q(e):e}nanargmin(t){let e=yn(this,t);return e instanceof P?q(e):e}nanargmax(t){let e=dn(this,t);return e instanceof P?q(e):e}var(t,e=0,n=!1){let o=rt(this,t,e,n);return o instanceof P?q(o):o}std(t,e=0,n=!1){let o=Ke(this,t,e,n);return o instanceof P?q(o):o}nanvar(t,e=0,n=!1){let o=ln(this,t,e,n);return o instanceof P?q(o):o}nanstd(t,e=0,n=!1){let o=fn(this,t,e,n);return o instanceof P?q(o):o}all(t,e=!1){let n=en(this,t,e);return n instanceof P?q(n):n}any(t,e=!1){let n=nn(this,t,e);return n instanceof P?q(n):n}median(t,e=!1){let n=Qe(this,t,e);return n instanceof P?q(n):n}nanmedian(t,e=!1){let n=gn(this,t,e);return n instanceof P?q(n):n}percentile(t,e,n=!1){let o=He(this,t,e,n);return o instanceof P?q(o):o}quantile(t,e,n=!1){let o=rn(this,t,e,n);return o instanceof P?q(o):o}nanquantile(t,e,n=!1){let o=hn(this,t,e,n);return o instanceof P?q(o):o}nanpercentile(t,e,n=!1){let o=Nn(this,t,e,n);return o instanceof P?q(o):o}cumsum(t){return q(on(this,t))}cumprod(t){return q(an(this,t))}nancumsum(t){return q(bn(this,t))}nancumprod(t){return q(An(this,t))}sort(t=-1){return q(Vn(this,t))}argsort(t=-1){return q(Pn(this,t))}partition(t,e=-1){return q(jn(this,t,e))}argpartition(t,e=-1){return q(Ln(this,t,e))}diagonal(t=0,e=0,n=1){return q(pt(this,t,e,n))}resize(t){return q($e(this,t))}diff(t=1,e=-1){return q(io(this,t,e))}take(t,e){return q(zt(this,t,e))}repeat(t,e){return q(Oe(this,t,e))}transpose(t){return q(yt(this,t))}squeeze(t){return q(Fe(this,t))}expand_dims(t){return q(Be(this,t))}swapaxes(t,e){return q(Te(this,t,e))}moveaxis(t,e){return q(Ee(this,t,e))}nonzero(){return Wn(this).map(q)}};function Wc(...r){let t=[],e="xy";for(let i of r)i instanceof er?t.push(i):typeof i=="object"&&"indexing"in i&&(e=i.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(i=>i.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,u=[];for(let i=0;i<t.length;i++){let s=t[i],c=s.size,l=new Array(a).fill(1);l[i]=c;let f=s.reshape(...l),m=co(f,o),p=er.fromStorage(m.storage.copy());u.push(p)}return e==="xy"&&u.length>=2&&([u[0],u[1]]=[u[1],u[0]]),u}var F=r=>{if(r instanceof er)return r;let t=r.base?F(r.base):void 0;return er.fromStorage(r.storage,t)};function Bd(r,t){return F(co(r,t))}function Td(r,t,e){return F(zt(r,t,e))}function Ed(r,t,e){return F(oc(r,t,e))}function Od(r,t){return F(lo(r,t))}function Ud(r,t,e){return F(nt(r,t,e))}function $d(r,t,e=0){return F(ac(r,t,e))}function kd(r,t,e){return F(sc(r,t,e))}function Rd(r,t,e=0){return F(ic(r,t,e))}function qd(r,t="int32"){return F(uc(r,t))}function Vd(r,t,e="raise"){return F(cc(r,t,e))}function Pd(r,t){return lc(r,t).map(F)}function jd(r,t=2){return fc(r,t).map(F)}function Ld(r){return mc(r).map(F)}function Wd(r,t=0,e){return pc(r,t,e).map(F)}function Gd(r,t=0){return yc(r,t).map(F)}function Yd(r,t=0,e){return dc(r,t,e).map(F)}function Zd(r,t=0){return bc(r,t).map(F)}function Xd(r,t,e=0){return Ac(r,t,e).map(F)}function Jd(r,t,e){return F(gc(o=>r(F(o)),t,e))}function Kd(r,t,e){return F(hc((o,a)=>r(F(o),a),t,e))}function Qd(r,t){return F(Ot(r,t))}function Hd(r,t){return F(Ut(r,t))}function rb(r,t){return F($t(r,t))}function tb(r){return F(kt(r))}function Gc(r,t){return F(Rt(r,t))}function eb(r){return F(qt(r))}function nb(r){return F(Vt(r))}function ob(r){return F(Pt(r))}function ab(r){return F(jt(r))}function sb(r){return F(Lt(r))}function ib(r){return F(Wt(r))}function ub(r){return F(Gt(r))}function cb(r,t){return F(Yt(r,t))}function lb(r,t){return F(Zt(r,t))}function Yc(r){return F(Xt(r))}function fb(r){return F(Jt(r))}function mb(r){return F(Kt(r))}function pb(r,t){return F(Qt(r,t))}function yb(r,t){return F(ut(r,t))}function db(r,t){return F(Ht(r,t))}function bb(r){return F(re(r))}function Ab(r){return F(te(r))}function gb(r){return F(ee(r))}function hb(r){return F(ne(r))}function Nb(r,t){let e=oe(r,t);return[F(e[0]),F(e[1])]}function Db(r){return F(ae(r))}function xb(r,t){return F(se(r,t))}function Cb(r,t){return F(ie(r,t))}function Sb(r,t){return F(ai(r,t))}function wb(r,t){return F(si(r,t))}function Ib(r){let t=ii(r);return[F(t[0]),F(t[1])]}function zb(r,t){return F(ui(r,t))}function _b(r,t){return F(ci(r,t))}function Mb(r,t){return F(li(r,t))}function vb(r){let t=fi(r);return[F(t[0]),F(t[1])]}function Fb(r,t,e){return F(ue(r,t,e))}function Bb(r,t){return F(mi(r,t))}function Tb(r,t){return F(pi(r,t))}function Eb(r,t){return F(yi(r,t))}function Ob(r,t){return F(di(r,t))}function Ub(r,t=0,e,n){return F(bi(r,t,e,n))}function $b(r,t,e,n,o){return F(Ai(r,t,e,n,o))}function kb(r,t=Math.PI,e=-1,n=2*Math.PI){return F(gi(r,t,e,n))}function Rb(r){return F(hi(r))}function qb(r){return F(Ni(r))}function Vb(r,t){return F(Zn(r,t))}function Pb(r,t){return F(Xn(r,t))}function jb(r,t){return F(Jn(r,t))}function Zc(r){return F(Kn(r))}function Lb(r){return F(Qn(r))}function Xc(r,t){return F(Hn(r,t))}function Jc(r,t){return F(ro(r,t))}function Wb(r,t,e){return F(wu(r,t,e))}function Gb(r,t,e,n){return F(Iu(r,t,e,n))}function Yb(r){return F(zu(r))}function Zb(r){return F(Xu(r))}function Xb(r){return F(Ju(r))}function Kc(r){return F(uo(r))}function Jb(r,t){return F(Ku(r,t))}function Kb(r,t=tr){return F(wr(r,t))}function Qb(r,t=tr){return F(Bo(r,t))}function Hb(r,t=tr){return F(To(r,t))}function rA(r,t,e){return F(Eo(r,t,e))}function tA(r,t){return F(Q(r,t))}function eA(r,t,e=1,n=tr){return F(Bs(r,t,e,n))}function nA(r,t,e=50,n=tr){return F(Ts(r,t,e,n))}function oA(r,t,e=50,n=10,o=tr){return F(Es(r,t,e,n,o))}function aA(r,t,e=50,n=tr){return F(Os(r,t,e,n))}function sA(r,t,e=0,n=tr){return F(Oo(r,t,e,n))}function iA(r,t=tr){return F(Us(r,t))}function uA(r,t){return F(Xr(r,t))}function cA(r,t){return F($s(r,t))}function lA(r,t){return F(ks(r,t))}function fA(r,t){return F(Rs(r,t))}function mA(r,t,e){return F(qs(r,t,e))}function pA(r){return F(Vs(r))}function yA(r,t){return F(Ps(r,t))}function dA(r,t){return F(js(r,t))}function bA(r,t){return F(Ls(r,t))}function AA(r,t){return F(Ws(r,t))}function gA(r,t,e){return F(Gs(r,t,e))}function hA(r,t=0){return F(Uo(r,t))}function NA(r,t=0){return F(Ys(r,t))}function DA(r,t,e=0,n=tr){return F(Zs(r,t,e,n))}function xA(r,t=0){return F(Xs(r,t))}function CA(r,t=0){return F(Js(r,t))}function SA(r,t,e=!1){return F(Ks(r,t,e))}function wA(r,t=tr,e=-1,n=0){return F(Qs(r,t,e,n))}function IA(r,t,e=tr){return F(Hs(r,t,e))}function zA(r,t=tr,e=-1){return F(ri(r,t,e))}function _A(r,t=tr,e=-1,n){return F(ti(r,t,e,n))}function MA(r,t=tr,e=-1,n=""){return F(ei(r,t,e,n))}function vA(r,t,e){return F(io(r,t,e))}function FA(r,t,e){return F(Zu(r,t,e))}function BA(r,t){let e=mt(r,t);return e instanceof P?F(e):e}function TA(r,t=0,e=0,n=1){return F(pt(r,t,e,n))}function EA(r,t){return F(ki(r,t))}function OA(r,t){return F(yt(r,t))}function UA(r,t){let e=dt(r,t);return e instanceof P?F(e):e}function $A(r,t){return F(bt(r,t))}function kA(r,t,e=2){let n=At(r,t,e);return n instanceof P?F(n):n}function RA(r,t,e=-1){let n=Lo(r,t,e);return n instanceof P?F(n):n}function qA(r){return F(Wo(r))}function VA(r,t){return F(Go(r,t))}function PA(r,t){return F(Ri(r,t))}function jA(r,t){return F(qi(r,t))}function LA(r,t,e=-1,n=-1,o=-1,a){let u=Yo(r,t,e,n,o,a),i=or(r.dtype,t.dtype);if(u instanceof U){let c=K(i==="complex64"?"float32":"float64"),l=new c(2);return l[0]=u.re,l[1]=u.im,er.fromStorage(S.fromData(l,[],i))}if(typeof u=="number"){if(B(i)){let f=K(i==="complex64"?"float32":"float64"),m=new f(2);return m[0]=u,m[1]=0,er.fromStorage(S.fromData(m,[],i))}let s=K(i),c=new s(1);return c[0]=u,er.fromStorage(S.fromData(c,[],i))}return F(u)}function WA(r,t){return F(_e(r,t))}function GA(r,t){return F(xn(r,t))}function YA(r,t){return F(Cn(r,t))}function ZA(r){return F(Sn(r))}function XA(r,t){return F(wn(r,t))}function JA(r){return F(In(r))}function KA(r){return F(zn(r))}function QA(r){return F(_n(r))}function HA(r){return F(Mn(r))}function rg(r){return F(fu(r))}function tg(r){return F(mu(r))}function eg(r){return F(pu(r))}function ng(r){return F(yu(r))}function og(r,t){return F(du(r,t))}function ag(r,t){return F(vn(r,t))}function sg(r){return F(Fn(r))}function ig(r,t){return F(Bn(r,t))}function ug(r){return F(Tn(r))}function cg(r,t){return F(En(r,t))}function lg(r,t){return F(On(r,t))}function fg(r,t){return F(Un(r,t))}function mg(r,t){return F($n(r,t))}function pg(r,t){return F(kn(r,t))}function yg(r,t){return F(Rn(r,t))}function dg(r,t,e=1e-5,n=1e-8){return F(qn(r,t,e,n))}function bg(r){return F(zc(r))}function Ag(r,t){return F(_c(r,t))}function gg(r,t=1){return F(Mc(r,t))}function hg(r,t){let e=vc(r,t);return[F(e[0]),F(e[1])]}function Ng(r,t,e){return F(Fc(r,t,e))}function Dg(r,t=1,e=0){return F(Bc(r,t,e))}function xg(r,t){return F(Tc(r,t))}function Cg(r,t){return F(Ec(r,t))}function Sg(r,t){let e=Oc(r,t);return e instanceof P?F(e):e}function wg(r){return F(Uc(r))}function Ig(r,t,e){let n=Ve(r,t,e);return n instanceof P?F(n):n}function zg(r,t,e){let n=Pe(r,t,e);return n instanceof P?F(n):n}function _g(r,t,e){let n=je(r,t,e);return n instanceof P?F(n):n}function Mg(r,t,e){let n=Ze(r,t,e);return n instanceof P?F(n):n}function vg(r,t){let e=Xe(r,t);return e instanceof P?F(e):e}function Fg(r,t){let e=Je(r,t);return e instanceof P?F(e):e}function Bg(r,t,e,n){let o=rt(r,t,e,n);return o instanceof P?F(o):o}function Tg(r,t,e,n){let o=Ke(r,t,e,n);return o instanceof P?F(o):o}function Eg(r,t,e){let n=Qe(r,t,e);return n instanceof P?F(n):n}function Og(r,t,e,n){let o=He(r,t,e,n);return o instanceof P?F(o):o}function Ug(r,t,e,n){let o=rn(r,t,e,n);return o instanceof P?F(o):o}function $g(r,t,e,n){let o=tn(r,t,e,n);return o instanceof P?F(o):o}function kg(r,t,e){let n=en(r,t,e);return n instanceof P?F(n):n}function Rg(r,t,e){let n=nn(r,t,e);return n instanceof P?F(n):n}function Qc(r,t){return F(on(r,t))}function Hc(r,t){return F(an(r,t))}function qg(r,t,e){let n=sn(r,t,e);return n instanceof P?F(n):n}function Vg(r,t,e){let n=un(r,t,e);return n instanceof P?F(n):n}function Pg(r,t,e){let n=cn(r,t,e);return n instanceof P?F(n):n}function jg(r,t,e,n){let o=ln(r,t,e,n);return o instanceof P?F(o):o}function Lg(r,t,e,n){let o=fn(r,t,e,n);return o instanceof P?F(o):o}function Wg(r,t,e){let n=mn(r,t,e);return n instanceof P?F(n):n}function Gg(r,t,e){let n=pn(r,t,e);return n instanceof P?F(n):n}function Yg(r,t){let e=yn(r,t);return e instanceof P?F(e):e}function Zg(r,t){let e=dn(r,t);return e instanceof P?F(e):e}function Xg(r,t){return F(bn(r,t))}function Jg(r,t){return F(An(r,t))}function Kg(r,t,e){let n=gn(r,t,e);return n instanceof P?F(n):n}function Qg(r,t,e,n){let o=hn(r,t,e,n);return o instanceof P?F(o):o}function Hg(r,t,e,n){let o=Nn(r,t,e,n);return o instanceof P?F(o):o}function rl(r,t=0){return F(It(r,t))}function rh(r){return F(to(r))}function th(r){return F(eo(r))}function eh(r){return F(no(r))}function nh(r){return F(oo(r))}function oh(r){return F(ao(r))}function ah(r,t){return F(vu(r,t))}function sh(r,t){return F(Fu(r,t))}function ih(r,t){return F(Bu(r,t))}function uh(r,t){return F(Tu(r,t))}function ch(r,t){return F(Eu(r,t))}function lh(r,t){return F(Ou(r,t))}function fh(r,t){return F(Uu(r,t))}function mh(r){return F($u(r))}function ph(r,t,e){return F(Nc(r,t,e))}function tl(r,t,e){return F(ps(r,t,e))}function yh(r,t,e,n){return F(Dc(r,t,e,n))}function dh(r,t,e="constant",n=0){return F(xc(r,t,e,n))}function bh(r,t){return F(Me(r,t))}function Ah(r){return F(Br(r))}function gh(r){return F(ve(r))}function hh(r,t){return F(Fe(r,t))}function Nh(r,t){return F(Be(r,t))}function Dh(r,t,e){return F(Te(r,t,e))}function xh(r,t,e){return F(Ee(r,t,e))}function Ch(r,t,e=0){return F(Vi(r,t,e))}function el(r,t=0){return F(gt(r,t))}function Sh(r,t=0){return F(Pi(r,t))}function wh(r){return F(Xo(r))}function Ih(r){return F(ji(r))}function zh(r){return F(Li(r))}function _h(r){return F(Wi(r))}function Mh(r){return F(Gi(r))}function vh(r,t=0){return Yi(r,t).map(F)}function Fh(r,t){return F(Zi(r,t))}function Bh(r,t,e){return F(Oe(r,t,e))}function Th(r,t){return F(Ue(r,t))}function Eh(r){return F(Xi(r))}function Oh(r){return F(Ji(r))}function Uh(r,t=1,e=[0,1]){return F(Ki(r,t,e))}function $h(r,t,e){return F(Qi(r,t,e))}function kh(r,t){return F($e(r,t))}function Rh(r,t=-1){return F(Vn(r,t))}function qh(r,t=-1){return F(Pn(r,t))}function Vh(r){return F(gu(r))}function Ph(r,t,e=-1){return F(jn(r,t,e))}function jh(r,t,e=-1){return F(Ln(r,t,e))}function Lh(r){return F(hu(r))}function Wh(r){return Wn(r).map(F)}function Gh(r){return F(Gn(r))}function Yh(r){return F(Nu(r))}function Zh(r,t){return F(Du(r,t))}function Xh(r,t,e){return F(Vu(r,t,e))}function Jh(r,t,e){return F(Pu(r,t,e))}function Kh(r,t,e){return F(ju(r,t,e))}function Qh(r,t,e){return F(Lu(r,t,e))}function Hh(r,t,e,n,o){return F(Wu(r,t,e,n,o))}function r0(r,t,e){return F(Gu(r,t,e))}function t0(r,t,e,n){let o=Yu(r,t,e,n);return o instanceof P?F(o):o}function e0(r){return F(ce(r))}function n0(r){return F(le(r))}function o0(r){return F(fe(r))}function nl(r){return F(me(r))}function ol(r){return F(pe(r))}function al(r){return F(ye(r))}function sl(r,t){return F(de(r,t))}function a0(r,t){return F(be(r,t))}function s0(r){return F(Ae(r))}function i0(r){return F(ge(r))}function u0(r){return F(Ci(r))}function c0(r){return F(Si(r))}function l0(r){return F(he(r))}function f0(r){return F(Ne(r))}function m0(r){return F(De(r))}function il(r){return F(xe(r))}function ul(r){return F(Ce(r))}function cl(r){return F(Se(r))}var Tr=624,Cs=397,Yx=2567483615,ll=2147483648,fl=2147483647,vr={mt:new Uint32Array(Tr),mti:Tr+1};function y0(r){let t=vr.mt;t[0]=r>>>0;for(let e=1;e<Tr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}vr.mti=Tr}function yl(){let r=vr.mt,t,e=[0,Yx];if(vr.mti>=Tr){let n;for(vr.mti===Tr+1&&y0(5489),n=0;n<Tr-Cs;n++)t=r[n]&ll|r[n+1]&fl,r[n]=r[n+Cs]^t>>>1^e[t&1];for(;n<Tr-1;n++)t=r[n]&ll|r[n+1]&fl,r[n]=r[n+(Cs-Tr)]^t>>>1^e[t&1];t=r[Tr-1]&ll|r[0]&fl,r[Tr-1]=r[Cs-1]^t>>>1^e[t&1],vr.mti=0}return t=r[vr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function W(){let r=yl()>>>5,t=yl()>>>6;return(r*67108864+t)/9007199254740992}var Zx=2468251765,Xx=1492356589,Jx=1135663077,Kx=2337405405,Qx=3389127133,Hx=1232336661,Al=16,Ss=4;function mr(r){return r>>>0}function ml(r,t){return r=mr(mr(r)^t.val),t.val=mr(Math.imul(t.val,Zx)),r=mr(Math.imul(r,t.val)),r=mr(r^r>>>Al),r}function r1(r,t){let e=mr(mr(Math.imul(Qx,mr(r)))-mr(Math.imul(Hx,mr(t))));return e=mr(e^e>>>Al),e}function t1(r){let t=[0,0,0,0],e=[r>>>0],n={val:Jx};for(let o=0;o<Ss;o++)o<e.length?t[o]=ml(e[o],n):t[o]=ml(0,n);for(let o=0;o<Ss;o++)for(let a=0;a<Ss;a++)if(o!==a){let u=ml(t[o],n);t[a]=r1(t[a],u)}return t}function e1(r,t){let e=[],n=Kx;for(let o=0;o<t;o++){let a=r[o%Ss],u=mr(a^n);n=mr(Math.imul(n,Xx)),u=mr(Math.imul(u,n)),u=mr(u^u>>>Al),e.push(u)}return e}var n1=BigInt("4865540595714422341"),o1=BigInt("2549297995355413924"),a1=o1<<BigInt(64)|n1,pl=BigInt("0xffffffffffffffff"),dl=(BigInt(1)<<BigInt(128))-BigInt(1);function s1(r){let t=r>>BigInt(64),e=r&pl,n=(t^e)&pl,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&pl}function bl(r,t){return r*a1+t&dl}function p0(r){let t=t1(r),e=e1(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),u=BigInt(e[6])|BigInt(e[7])<<BigInt(32),i=n<<BigInt(64)|o,s=(a<<BigInt(64)|u)<<BigInt(1);s=(s|BigInt(1))&dl;let c=BigInt(0);return c=bl(c,s),c=c+i&dl,c=bl(c,s),{state:c,inc:s}}function i1(r){return r.state=bl(r.state,r.inc),s1(r.state)}function u1(r){let e=i1(r)>>BigInt(11);return Number(e)/9007199254740992}var Ao=class{constructor(t){if(t!==void 0)this._pcgState=p0(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=p0(e)}}_randomFloat(){return u1(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=S.zeros(o,"int64"),i=u.data,s=e-t;for(let c=0;c<a;c++)i[c]=BigInt(Math.floor(this._randomFloat()*s)+t);return u}standard_normal(t){if(t===void 0)return Fr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u+=2){let[i,s]=go(this._randomFloat.bind(this));a[u]=i,u+1<n&&(a[u+1]=s)}return o}normal(t=0,e=1,n){if(n===void 0)return Fr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s+=2){let[c,l]=go(this._randomFloat.bind(this));i[s]=c*e+t,s+1<a&&(i[s+1]=l*e+t)}return u}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),u=S.zeros(o,"float64"),i=u.data,s=e-t;for(let c=0;c<a;c++)i[c]=this._randomFloat()*s+t;return u}choice(t,e,n=!0,o){return I0(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return _0(t,this._randomFloat.bind(this))}shuffle(t){v0(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return ot(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"int64"),u=a.data;for(let i=0;i<o;i++)u[i]=BigInt(ot(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return ho(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"int64"),i=u.data;for(let s=0;s<a;s++)i[s]=BigInt(ho(t,e,this._randomFloat.bind(this)));return u}};function d0(r){return new Ao(r)}function b0(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),y0(r>>>0)}function A0(){return{mt:Array.from(vr.mt),mti:vr.mti}}function g0(r){vr.mt=new Uint32Array(r.mt),vr.mti=r.mti}function Fr(r){let t,e;do t=r(),e=r();while(t===0);return Math.sqrt(-2*Math.log(t))*Math.cos(2*Math.PI*e)}function go(r){let t,e;do t=r(),e=r();while(t===0);let n=Math.sqrt(-2*Math.log(t)),o=2*Math.PI*e;return[n*Math.cos(o),n*Math.sin(o)]}function ot(r,t){if(r<30){let e=Math.exp(-r),n=0,o=1;do n++,o*=t();while(o>e);return n-1}else{let e=Fr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function ho(r,t,e){if(r*t<10&&r*(1-t)<10){let n=0;for(let o=0;o<r;o++)e()<t&&n++;return n}else{let n=r*t,o=Math.sqrt(r*t*(1-t)),a=Fr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function No(r){if(r===void 0)return W();let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=W();return n}function h0(...r){if(r.length===0)return W();let t=r.reduce((o,a)=>o*a,1),e=S.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=W();return e}function N0(...r){if(r.length===0)return Fr(W);let t=r.reduce((o,a)=>o*a,1),e=S.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,u]=go(W);n[o]=a,o+1<t&&(n[o+1]=u)}return e}function gl(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(W()*o)+r;let a=Array.isArray(e)?e:[e],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,n),s=i.data;if(E(n)){let c=s;for(let l=0;l<u;l++)c[l]=BigInt(Math.floor(W()*o)+r)}else{let c=s;for(let l=0;l<u;l++)c[l]=Math.floor(W()*o)+r}return i}function D0(r=0,t=1,e){if(e===void 0)return W()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,c)=>s*c,1),a=S.zeros(n,"float64"),u=a.data,i=t-r;for(let s=0;s<o;s++)u[s]=W()*i+r;return a}function x0(r=0,t=1,e){if(e===void 0)return Fr(W)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i+=2){let[s,c]=go(W);u[i]=s*t+r,i+1<o&&(u[i+1]=c*t+r)}return a}function C0(r){if(r===void 0)return Fr(W);let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[u,i]=go(W);o[a]=u,a+1<e&&(o[a+1]=i)}return n}function hl(r=1,t){if(t===void 0)return-Math.log(1-W())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"float64"),a=o.data;for(let u=0;u<n;u++)a[u]=-Math.log(1-W())*r;return o}function S0(r=1,t){if(t===void 0)return ot(r,W);let e=Array.isArray(t)?t:[t],n=e.reduce((u,i)=>u*i,1),o=S.zeros(e,"int64"),a=o.data;for(let u=0;u<n;u++)a[u]=BigInt(ot(r,W));return o}function w0(r,t,e){if(e===void 0)return ho(r,t,W);let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"int64"),u=a.data;for(let i=0;i<o;i++)u[i]=BigInt(ho(r,t,W));return a}function I0(r,t,e=!0,n,o=W){let a;if(typeof r=="number")a=Array.from({length:r},(m,p)=>p);else{let m=r.size;a=[];for(let p=0;p<m;p++)a.push(Number(r.iget(p)))}let u=a.length;if(u===0)throw new Error("cannot take a sample from an empty sequence");let i;if(n!==void 0){if(Array.isArray(n))i=n;else{let p=n.size;i=[];for(let y=0;y<p;y++)i.push(Number(n.iget(y)))}if(i.length!==u)throw new Error("p and a must have the same size");let m=i.reduce((p,y)=>p+y,0);Math.abs(m-1)>1e-10&&(i=i.map(p=>p/m))}if(t===void 0){if(i){let m=o(),p=0;for(let y=0;y<u;y++)if(p+=i[y],m<p)return a[y];return a[u-1]}return a[Math.floor(o()*u)]}let s=Array.isArray(t)?t:[t],c=s.reduce((m,p)=>m*p,1);if(!e&&c>u)throw new Error("cannot take a larger sample than population when replace=false");let l=S.zeros(s,"float64"),f=l.data;if(e)if(i){let m=new Array(u);m[0]=i[0];for(let p=1;p<u;p++)m[p]=m[p-1]+i[p];for(let p=0;p<c;p++){let y=o(),d=0;for(;d<u-1&&y>=m[d];)d++;f[p]=a[d]}}else for(let m=0;m<c;m++)f[m]=a[Math.floor(o()*u)];else{let m=[...a],p=i?[...i]:void 0;for(let y=0;y<c;y++){let d;if(p){let b=p.reduce((h,N)=>h+N,0),A=o()*b,g=0;d=0;for(let h=0;h<m.length;h++)if(g+=p[h],A<g){d=h;break}d===0&&A>=g&&(d=m.length-1)}else d=Math.floor(o()*m.length);f[y]=m[d],m.splice(d,1),p&&p.splice(d,1)}}return l}function z0(r,t,e=!0,n){return I0(r,t,e,n,W)}function _0(r,t=W){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=S.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),u=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,u)}return e}function M0(r){return _0(r,W)}function v0(r,t=W){let e=r.size;for(let n=e-1;n>0;n--){let o=Math.floor(t()*(n+1)),a=r.iget(n);r.iset(n,r.iget(o)),r.iset(o,a)}}function F0(r){v0(r,W)}function B0(r){return No(r)}function T0(r){return No(r)}function E0(r){return No(r)}function O0(r,t,e){return t===void 0&&(t=r,r=1),gl(r,t+1,e)}function U0(r){let t=new Uint8Array(r);for(let e=0;e<r;e++)t[e]=yl()&255;return t}var $0={name:"MT19937",state:vr};function k0(){return $0}function R0(r){$0=r}function q0(r){return hl(1,r)}function V0(r,t){if(r<=0)throw new Error("shape must be positive");return ws(r,1,t)}function P0(r){if(r===void 0)return Math.tan(Math.PI*(W()-.5));let t=Array.isArray(r)?r:[r],e=t.reduce((a,u)=>a*u,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=Math.tan(Math.PI*(W()-.5));return n}function j0(r,t){if(r<=0)throw new Error("df must be positive");let e=i=>{let s=Fr(i),c=pr(r/2,2,i);return s/Math.sqrt(c/r)};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function pr(r,t,e){if(r<1){let a=e();return pr(1+r,t,e)*Math.pow(a,1/r)}let n=r-1/3,o=1/Math.sqrt(9*n);for(;;){let a,u;do a=Fr(e),u=1+o*a;while(u<=0);u=u*u*u;let i=e(),s=a*a;if(i<1-.0331*s*s||Math.log(i)<.5*s+n*(1-u+Math.log(u)))return n*u*t}}function ws(r,t=1,e){if(r<=0)throw new Error("shape must be positive");if(t<=0)throw new Error("scale must be positive");if(e===void 0)return pr(r,t,W);let n=Array.isArray(e)?e:[e],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=pr(r,t,W);return a}function L0(r,t,e){if(r<=0||t<=0)throw new Error("a and b must be positive");let n=s=>{let c=pr(r,1,s),l=pr(t,1,s);return c/(c+l)};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function W0(r=0,t=1,e){if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=s()-.5;return r-t*Math.sign(c)*Math.log(1-2*Math.abs(c))};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function G0(r=0,t=1,e){if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=s();return r+t*Math.log(c/(1-c))};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function Y0(r=0,t=1,e){if(t<=0)throw new Error("sigma must be positive");let n=s=>Math.exp(r+t*Fr(s));if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function Z0(r=0,t=1,e){if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=s();return r-t*Math.log(-Math.log(c))};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function X0(r,t){if(r<=0)throw new Error("a must be positive");let e=i=>{let s=i();return Math.pow(1-s,-1/r)-1};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function J0(r,t){if(r<=0)throw new Error("a must be positive");let e=i=>{let s=i();return Math.pow(s,1/r)};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function K0(r=1,t){if(r<=0)throw new Error("scale must be positive");let e=i=>{let s=i();return r*Math.sqrt(-2*Math.log(s))};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function Q0(r,t,e,n){if(r>t||t>e||r===e)throw new Error("must have left <= mode <= right and left < right");let o=c=>{let l=c(),f=(t-r)/(e-r);return l<f?r+Math.sqrt(l*(e-r)*(t-r)):e-Math.sqrt((1-l)*(e-r)*(e-t))};if(n===void 0)return o(W);let a=Array.isArray(n)?n:[n],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"float64"),s=i.data;for(let c=0;c<u;c++)s[c]=o(W);return i}function H0(r,t,e){if(r<=0)throw new Error("mean must be positive");if(t<=0)throw new Error("scale must be positive");let n=s=>{let c=Fr(s),l=c*c,f=r/(2*t),m=r+f*(r*l-Math.sqrt(4*r*t*l+r*r*l*l));return s()<=r/(r+m)?m:r*r/m};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function rN(r,t){if(r<=0)throw new Error("a must be positive");let e=i=>{let s=i();return Math.pow(-Math.log(1-s),1/r)};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"float64"),u=a.data;for(let i=0;i<o;i++)u[i]=e(W);return a}function tN(r,t){if(r<=0)throw new Error("df must be positive");return ws(r/2,2,t)}function eN(r,t,e){if(r<=0)throw new Error("df must be positive");if(t<0)throw new Error("nonc must be non-negative");let n=s=>{if(t===0)return pr(r/2,2,s);let c=ot(t/2,s);return pr(r/2+c,2,s)};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function nN(r,t,e){if(r<=0)throw new Error("dfnum must be positive");if(t<=0)throw new Error("dfden must be positive");let n=s=>{let c=pr(r/2,2,s),l=pr(t/2,2,s);return c/r/(l/t)};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function oN(r,t,e,n){if(r<=0)throw new Error("dfnum must be positive");if(t<=0)throw new Error("dfden must be positive");if(e<0)throw new Error("nonc must be non-negative");let o=c=>{let l=pr(e===0?r/2:r/2+ot(e/2,c),2,c),f=pr(t/2,2,c);return l/r/(f/t)};if(n===void 0)return o(W);let a=Array.isArray(n)?n:[n],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"float64"),s=i.data;for(let c=0;c<u;c++)s[c]=o(W);return i}function aN(r,t){if(r<=0||r>1)throw new Error("p must be in (0, 1]");let e=i=>{if(r===1)return 1;let s=i();return Math.floor(Math.log(s)/Math.log(1-r))+1};if(t===void 0)return e(W);let n=Array.isArray(t)?t:[t],o=n.reduce((i,s)=>i*s,1),a=S.zeros(n,"int64"),u=a.data;for(let i=0;i<o;i++)u[i]=BigInt(e(W));return a}function sN(r,t,e,n){if(r<0)throw new Error("ngood must be non-negative");if(t<0)throw new Error("nbad must be non-negative");if(e<0)throw new Error("nsample must be non-negative");if(e>r+t)throw new Error("nsample must be <= ngood + nbad");let o=c=>{let l=r,f=t,m=0,p=e;for(;p>0;){let y=l+f;if(y===0)break;c()<l/y?(m++,l--):f--,p--}return m};if(n===void 0)return o(W);let a=Array.isArray(n)?n:[n],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"int64"),s=i.data;for(let c=0;c<u;c++)s[c]=BigInt(o(W));return i}function iN(r,t){if(r<=0||r>=1)throw new Error("p must be in (0, 1)");let e=Math.log(1-r),n=s=>{let c=s(),l=s(),f=1-Math.exp(e*c);if(l>=f||l===0)return 1;let m=Math.log(l),p=Math.log(f);return m>=p?1:m>=2*p?2:Math.floor(1+m/p)};if(t===void 0)return n(W);let o=Array.isArray(t)?t:[t],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"int64"),i=u.data;for(let s=0;s<a;s++)i[s]=BigInt(n(W));return u}function uN(r,t,e){if(r<=0)throw new Error("n must be positive");if(t<=0||t>1)throw new Error("p must be in (0, 1]");let n=s=>{if(t===1)return 0;let c=pr(r,(1-t)/t,s);return ot(c,s)};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"int64"),i=u.data;for(let s=0;s<a;s++)i[s]=BigInt(n(W));return u}function cN(r,t){if(r<=1)throw new Error("a must be > 1");let e=r-1,n=Math.pow(2,e),o=c=>{for(;;){let l=1-c(),f=c(),m=Math.floor(Math.pow(l,-1/e)),p=Math.pow(1+1/m,e);if(f*m*(p-1)/(n-1)<=p/n)return m}};if(t===void 0)return o(W);let a=Array.isArray(t)?t:[t],u=a.reduce((c,l)=>c*l,1),i=S.zeros(a,"int64"),s=i.data;for(let c=0;c<u;c++)s[c]=BigInt(o(W));return i}function lN(r,t,e){let n=Array.isArray(t)?t:Array.from({length:t.size},(p,y)=>Number(t.iget(y))),o=n.length;if(o===0)throw new Error("pvals must have at least one element");let a=n.reduce((p,y)=>p+y,0),u=n.map(p=>p/a),i=p=>{let y=new Array(o).fill(0),d=r,b=1;for(let A=0;A<o-1&&d>0;A++){let g=u[A]/b,h=ho(d,Math.min(1,Math.max(0,g)),p);y[A]=h,d-=h,b-=u[A]}return y[o-1]=d,y};if(e===void 0){let p=i(W),y=S.zeros([o],"int64"),d=y.data;for(let b=0;b<o;b++)d[b]=BigInt(p[b]);return y}let s=Array.isArray(e)?e:[e],c=s.reduce((p,y)=>p*y,1),l=[...s,o],f=S.zeros(l,"int64"),m=f.data;for(let p=0;p<c;p++){let y=i(W);for(let d=0;d<o;d++)m[p*o+d]=BigInt(y[d])}return f}function fN(r,t,e,n="warn",o=1e-8){let a=Array.isArray(r)?r:Array.from({length:r.size},(d,b)=>Number(r.iget(b))),u=a.length,i;if(Array.isArray(t))i=t;else{i=[];for(let d=0;d<u;d++){i.push([]);for(let b=0;b<u;b++)i[d].push(Number(t.iget(d*u+b)))}}let s=Array(u).fill(0).map(()=>Array(u).fill(0));for(let d=0;d<u;d++)for(let b=0;b<=d;b++){let A=i[d][b];for(let g=0;g<b;g++)A-=s[d][g]*s[b][g];if(d===b){if(A<-o){if(n==="raise")throw new Error("covariance matrix is not positive semi-definite");n==="warn"&&console.warn("covariance matrix is not positive semi-definite"),A=0}s[d][b]=Math.sqrt(Math.max(0,A))}else s[d][b]=s[b][b]!==0?A/s[b][b]:0}let c=d=>{let b=[];for(let g=0;g<u;g++)b.push(Fr(d));let A=[];for(let g=0;g<u;g++){let h=a[g];for(let N=0;N<=g;N++)h+=s[g][N]*b[N];A.push(h)}return A};if(e===void 0){let d=c(W),b=S.zeros([u],"float64"),A=b.data;for(let g=0;g<u;g++)A[g]=d[g];return b}let l=Array.isArray(e)?e:[e],f=l.reduce((d,b)=>d*b,1),m=[...l,u],p=S.zeros(m,"float64"),y=p.data;for(let d=0;d<f;d++){let b=c(W);for(let A=0;A<u;A++)y[d*u+A]=b[A]}return p}function mN(r,t){let e=Array.isArray(r)?r:Array.from({length:r.size},(l,f)=>Number(r.iget(f))),n=e.length;if(n<2)throw new Error("alpha must have at least 2 elements");for(let l of e)if(l<=0)throw new Error("all alpha values must be positive");let o=l=>{let f=[],m=0;for(let p=0;p<n;p++){let y=pr(e[p],1,l);f.push(y),m+=y}return f.map(p=>p/m)};if(t===void 0){let l=o(W),f=S.zeros([n],"float64"),m=f.data;for(let p=0;p<n;p++)m[p]=l[p];return f}let a=Array.isArray(t)?t:[t],u=a.reduce((l,f)=>l*f,1),i=[...a,n],s=S.zeros(i,"float64"),c=s.data;for(let l=0;l<u;l++){let f=o(W);for(let m=0;m<n;m++)c[l*n+m]=f[m]}return s}function pN(r,t,e){if(t<0)throw new Error("kappa must be non-negative");let n=s=>{if(t===0)return 2*Math.PI*s()-Math.PI;let c=1+Math.sqrt(1+4*t*t),l=(c-Math.sqrt(2*c))/(2*t),f=(1+l*l)/(2*l);for(;;){let m=s(),p=Math.cos(Math.PI*m),y=(1+f*p)/(f+p),d=t*(f-y),b=s();if(d*(2-d)>b||Math.log(d/b)+1-d>=0)return((s()>.5?Math.acos(y):-Math.acos(y))+r+Math.PI)%(2*Math.PI)-Math.PI}};if(e===void 0)return n(W);let o=Array.isArray(e)?e:[e],a=o.reduce((s,c)=>s*c,1),u=S.zeros(o,"float64"),i=u.data;for(let s=0;s<a;s++)i[s]=n(W);return u}function l1(r,t,e){let n=r.length;n!==0&&n!==1&&((n&n-1)===0?Is(r,t,e):m1(r,t,e))}var Do=new Map;function f1(r,t){let e=`${r}_${t}`,n=Do.get(e);if(n)return n;let o=new Float64Array(r/2),a=new Float64Array(r/2),u=t?1:-1;for(let i=0;i<r/2;i++){let s=u*2*Math.PI*i/r;o[i]=Math.cos(s),a[i]=Math.sin(s)}if(n={cos:o,sin:a},Do.set(e,n),Do.size>100){let i=Do.keys().next().value;Do.delete(i)}return n}function Is(r,t,e){let n=r.length,o=0;for(let i=0;i<n-1;i++){if(i<o){let c=r[i];r[i]=r[o],r[o]=c,c=t[i],t[i]=t[o],t[o]=c}let s=n>>1;for(;s<=o;)o-=s,s>>=1;o+=s}let{cos:a,sin:u}=f1(n,e);for(let i=2;i<=n;i*=2){let s=i>>1,c=n/i;for(let l=0;l<n;l+=i)for(let f=0,m=0;f<s;f++,m+=c){let p=a[m],y=u[m],d=l+f,b=l+f+s,A=r[d],g=t[d],h=r[b],N=t[b],D=p*h-y*N,x=p*N+y*h;r[d]=A+D,t[d]=g+x,r[b]=A-D,t[b]=g-x}}if(e){let i=1/n;for(let s=0;s<n;s++)r[s]=r[s]*i,t[s]=t[s]*i}}function m1(r,t,e){let n=r.length,o=1;for(;o<2*n-1;)o*=2;let a=e?1:-1,u=new Float64Array(n),i=new Float64Array(n);for(let m=0;m<n;m++){let p=a*Math.PI*m*m/n;u[m]=Math.cos(p),i[m]=Math.sin(p)}let s=new Float64Array(o),c=new Float64Array(o);for(let m=0;m<n;m++){let p=u[m],y=i[m];s[m]=r[m]*p-t[m]*y,c[m]=t[m]*p+r[m]*y}let l=new Float64Array(o),f=new Float64Array(o);l[0]=u[0],f[0]=-i[0];for(let m=1;m<n;m++)l[m]=u[m],f[m]=-i[m],l[o-m]=u[m],f[o-m]=-i[m];Is(s,c,!1),Is(l,f,!1);for(let m=0;m<o;m++){let p=s[m],y=c[m],d=l[m],b=f[m];s[m]=p*d-y*b,c[m]=p*b+y*d}Is(s,c,!0);for(let m=0;m<n;m++){let p=s[m],y=c[m],d=u[m],b=i[m];r[m]=p*d-y*b,t[m]=y*d+p*b}if(e)for(let m=0;m<n;m++)r[m]=r[m]/n,t[m]=t[m]/n}function vt(r,t,e=-1,n="backward"){return Ft(r,t!==void 0?[t]:void 0,[e],n,!1)}function xo(r,t,e=-1,n="backward"){return Ft(r,t!==void 0?[t]:void 0,[e],n,!0)}function yN(r,t,e=[-2,-1],n="backward"){return Ft(r,t,e,n,!1)}function dN(r,t,e=[-2,-1],n="backward"){return Ft(r,t,e,n,!0)}function bN(r,t,e,n="backward"){return Ft(r,t,e,n,!1)}function AN(r,t,e,n="backward"){return Ft(r,t,e,n,!0)}function Ft(r,t,e,n="backward",o=!1){let a=Array.from(r.shape),u=a.length;if(r.size===0)return S.zeros(a,"complex128");if(u===0){let l=S.zeros([1],"complex128"),f=r.iget(0),m=f instanceof U?f.re:Number(f),p=f instanceof U?f.im:0,y=l.data;return y[0]=m,y[1]=p,S.fromData(l.data,[],"complex128")}let i;if(e===void 0)if(t===void 0)i=Array.from({length:u},(l,f)=>f);else{i=[];for(let l=0;l<t.length;l++)i.push(u-t.length+l)}else i=e.map(l=>l<0?u+l:l);let s=[...a];if(t!==void 0)for(let l=0;l<t.length;l++){let f=i[l];s[f]=t[l]}let c=Co(r);t!==void 0&&(c=p1(c,s,i));for(let l of i)c=d1(c,l,o,n);return c}function Co(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(t==="complex128"||t==="complex64"){let i=S.zeros(e,"complex128"),s=i.data,c=r.data;for(let l=0;l<n*2;l++)s[l]=c[l];return i}let o=S.zeros(e,"complex128"),a=o.data,u=r.data;if(t==="float64"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="float32"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int32"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int16"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int8"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="uint32"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="uint16"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="uint8"){let i=u;for(let s=0;s<n;s++)a[s*2]=i[s]}else if(t==="int64"||t==="uint64"){let i=u;for(let s=0;s<n;s++)a[s*2]=Number(i[s])}else for(let i=0;i<n;i++)a[i*2]=Number(u[i]);return o}function p1(r,t,e){let n=Array.from(r.shape),o=r;for(let a of e){let u=n[a],i=t[a];u!==i&&(i>u?o=y1(o,a,i):o=Nl(o,a,i),n[a]=i)}return o}function y1(r,t,e){let n=Array.from(r.shape),o=n[t];n[t]=e;let a=S.zeros(n,"complex128"),u=a.data,i=r.data,s=n.slice(0,t).reduce((l,f)=>l*f,1),c=n.slice(t+1).reduce((l,f)=>l*f,1);for(let l=0;l<s;l++)for(let f=0;f<o;f++)for(let m=0;m<c;m++){let p=(l*o+f)*c+m,y=(l*e+f)*c+m;u[y*2]=i[p*2],u[y*2+1]=i[p*2+1]}return a}function Nl(r,t,e){let n=Array.from(r.shape),o=n[t];n[t]=e;let a=S.zeros(n,"complex128"),u=a.data,i=r.data,s=n.slice(0,t).reduce((l,f)=>l*f,1),c=n.slice(t+1).reduce((l,f)=>l*f,1);for(let l=0;l<s;l++)for(let f=0;f<e;f++)for(let m=0;m<c;m++){let p=(l*o+f)*c+m,y=(l*e+f)*c+m;u[y*2]=i[p*2],u[y*2+1]=i[p*2+1]}return a}function d1(r,t,e,n){let o=Array.from(r.shape),a=o[t];if(a===0)return r;let u=S.zeros(o,"complex128"),i=u.data,s=r.data,c=o.slice(0,t).reduce((p,y)=>p*y,1),l=o.slice(t+1).reduce((p,y)=>p*y,1),f=new Float64Array(a),m=new Float64Array(a);for(let p=0;p<c;p++)for(let y=0;y<l;y++){for(let d=0;d<a;d++){let b=(p*a+d)*l+y;f[d]=s[b*2],m[d]=s[b*2+1]}if(l1(f,m,e),n==="ortho"){let d=1/Math.sqrt(a);if(e){let b=Math.sqrt(a);for(let A=0;A<a;A++)f[A]=f[A]*b,m[A]=m[A]*b}else for(let b=0;b<a;b++)f[b]=f[b]*d,m[b]=m[b]*d}else if(n==="forward"&&!e){let d=1/a;for(let b=0;b<a;b++)f[b]=f[b]*d,m[b]=m[b]*d}else if(!(n==="backward"&&e)){if(n==="forward"&&e)for(let d=0;d<a;d++)f[d]=f[d]*a,m[d]=m[d]*a}for(let d=0;d<a;d++){let b=(p*a+d)*l+y;i[b*2]=f[d],i[b*2+1]=m[d]}}return u}function _s(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=t??o[u],s=vt(r,i,e,n),c=Math.floor(i/2)+1;return Nl(s,u,c)}function So(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=o[u],s=t??(i-1)*2,c=[...o];c[u]=s;let l=S.zeros(c,"complex128"),f=l.data,m=Co(r).data,p=o.slice(0,u).reduce((b,A)=>b*A,1),y=o.slice(u+1).reduce((b,A)=>b*A,1);for(let b=0;b<p;b++)for(let A=0;A<y;A++){for(let g=0;g<i;g++){let h=(b*i+g)*y+A,N=(b*s+g)*y+A;f[N*2]=m[h*2],f[N*2+1]=m[h*2+1]}for(let g=i;g<s;g++){let h=s-g,N=(b*i+h)*y+A,D=(b*s+g)*y+A;f[D*2]=m[N*2],f[D*2+1]=-m[N*2+1]}}let d=xo(l,s,e,n);return zs(d)}function gN(r,t,e=[-2,-1],n="backward"){let a=Array.from(r.shape).length,u=e[0]<0?a+e[0]:e[0],i=e[1]<0?a+e[1]:e[1],s=vt(r,t?t[0]:void 0,u,n),c=Array.from(s.shape),l=t?t[1]:c[i];s=vt(s,l,i,n);let f=Math.floor(l/2)+1;return Nl(s,i,f)}function hN(r,t,e=[-2,-1],n="backward"){let o=Array.from(r.shape),a=o.length,u=e[0]<0?a+e[0]:e[0],i=e[1]<0?a+e[1]:e[1],s=o[i],c=t?t[1]:(s-1)*2,l=t?t[0]:o[u],f=So(r,c,i,n);return f=xo(f,l,u,n),zs(f)}function NN(r,t,e,n="backward"){let a=Array.from(r.shape).length,u;if(e===void 0?u=Array.from({length:a},(l,f)=>f):u=e.map(l=>l<0?a+l:l),u.length===0)return Co(r);let i=r;for(let l=0;l<u.length-1;l++){let f=u[l],m=t?t[l]:void 0;i=vt(i,m,f,n)}let s=u[u.length-1],c=t?t[u.length-1]:void 0;return _s(i,c,s,n)}function DN(r,t,e,n="backward"){let o=Array.from(r.shape),a=o.length,u;if(e===void 0?u=Array.from({length:a},(f,m)=>m):u=e.map(f=>f<0?a+f:f),u.length===0)return zs(Co(r));let i=u[u.length-1],s=o[i],c=t?[...t]:u.map((f,m)=>m===u.length-1?(s-1)*2:o[f]),l=So(r,c[u.length-1],i,n);for(let f=u.length-2;f>=0;f--){let m=u[f];l=xo(l,c[f],m,n)}return zs(l)}function xN(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=o[u],s=t??(i-1)*2,c=SN(Co(r)),l=So(c,s,e,n),f=l.data;for(let m=0;m<l.size;m++)f[m]=f[m]*s;return l}function CN(r,t,e=-1,n="backward"){let o=Array.from(r.shape),a=o.length,u=e<0?a+e:e,i=t??o[u],s=_s(r,i,e,n),c=SN(s),l=c.data;for(let f=0;f<c.size*2;f++)l[f]=l[f]/i;return c}function SN(r){let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"complex128"),o=n.data,a=r.data;for(let u=0;u<e;u++)o[u*2]=a[u*2],o[u*2+1]=-a[u*2+1];return n}function zs(r){let t=Array.from(r.shape),e=r.size,n=S.zeros(t,"float64"),o=n.data,a=r.data;for(let u=0;u<e;u++)o[u]=a[u*2];return n}function wN(r,t=1){let e=S.zeros([r],"float64"),n=e.data,o=Math.floor((r-1)/2)+1;for(let a=0;a<o;a++)n[a]=a/(r*t);for(let a=o;a<r;a++)n[a]=(a-r)/(r*t);return e}function IN(r,t=1){let e=Math.floor(r/2)+1,n=S.zeros([e],"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=a/(r*t);return n}function zN(r,t){let e=Array.from(r.shape),n=e.length,o;t===void 0?o=Array.from({length:n},(u,i)=>i):typeof t=="number"?o=[t<0?n+t:t]:o=t.map(u=>u<0?n+u:u);let a=e.map((u,i)=>o.includes(i)?Math.floor(e[i]/2):0);return MN(r,a)}function _N(r,t){let e=Array.from(r.shape),n=e.length,o;t===void 0?o=Array.from({length:n},(u,i)=>i):typeof t=="number"?o=[t<0?n+t:t]:o=t.map(u=>u<0?n+u:u);let a=e.map((u,i)=>o.includes(i)?-Math.floor(e[i]/2):0);return MN(r,a)}function MN(r,t){let e=Array.from(r.shape),n=r.dtype,o=r.size,a=S.zeros(e,n),u=n==="complex128"||n==="complex64",i=new Array(e.length);i[e.length-1]=1;for(let s=e.length-2;s>=0;s--)i[s]=i[s+1]*e[s+1];for(let s=0;s<o;s++){let c=new Array(e.length),l=s;for(let p=0;p<e.length;p++)c[p]=Math.floor(l/i[p]),l=l%i[p];let f=c.map((p,y)=>{let d=p+t[y],b=e[y];return d=(d%b+b)%b,d}),m=0;for(let p=0;p<e.length;p++)m+=f[p]*i[p];if(u){let p=r.data,y=a.data;y[m*2]=p[s*2],y[m*2+1]=p[s*2+1]}else{let p=r.iget(s);a.iset(m,p)}}return a}function Lr(r){return er.fromStorage(r.storage)}function A1(r){return Lr(Ds(r))}var g1=Rc;function h1(r,t){return Lr(qc(r,t))}async function N1(r,t={}){let e=await Pc(r,t),n=new Map;for(let[o,a]of e.arrays)n.set(o,Lr(a));return{arrays:n,skipped:e.skipped,errors:e.errors}}function D1(r,t={}){let e=jc(r,t),n=new Map;for(let[o,a]of e.arrays)n.set(o,Lr(a));return{arrays:n,skipped:e.skipped,errors:e.errors}}async function x1(r,t={}){let e=await gd(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=Lr(a);return n}function C1(r,t={}){let e=hd(r,t),n={};for(let[o,a]of Object.entries(e))n[o]=Lr(a);return n}function S1(r,t={}){return Lr(Lc(r,t))}function w1(r,t={}){return Lr(_d(r,t))}function I1(r,t,e="float64"){return Lr(Md(r,t,e))}function H(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?er.fromStorage(r):r}var z1={seed:b0,get_state:A0,set_state:g0,get_bit_generator:k0,set_bit_generator:R0,default_rng:d0,Generator:Ao,random:r=>H(No(r)),rand:(...r)=>H(h0(...r)),randn:(...r)=>H(N0(...r)),randint:(r,t,e,n)=>H(gl(r,t,e,n)),random_sample:r=>H(B0(r)),ranf:r=>H(T0(r)),sample:r=>H(E0(r)),random_integers:(r,t,e)=>H(O0(r,t,e)),bytes:U0,uniform:(r,t,e)=>H(D0(r,t,e)),normal:(r,t,e)=>H(x0(r,t,e)),standard_normal:r=>H(C0(r)),exponential:(r,t)=>H(hl(r,t)),standard_exponential:r=>H(q0(r)),gamma:(r,t,e)=>H(ws(r,t,e)),standard_gamma:(r,t)=>H(V0(r,t)),beta:(r,t,e)=>H(L0(r,t,e)),chisquare:(r,t)=>H(tN(r,t)),noncentral_chisquare:(r,t,e)=>H(eN(r,t,e)),f:(r,t,e)=>H(nN(r,t,e)),noncentral_f:(r,t,e,n)=>H(oN(r,t,e,n)),standard_cauchy:r=>H(P0(r)),standard_t:(r,t)=>H(j0(r,t)),laplace:(r,t,e)=>H(W0(r,t,e)),logistic:(r,t,e)=>H(G0(r,t,e)),lognormal:(r,t,e)=>H(Y0(r,t,e)),gumbel:(r,t,e)=>H(Z0(r,t,e)),pareto:(r,t)=>H(X0(r,t)),power:(r,t)=>H(J0(r,t)),rayleigh:(r,t)=>H(K0(r,t)),triangular:(r,t,e,n)=>H(Q0(r,t,e,n)),wald:(r,t,e)=>H(H0(r,t,e)),weibull:(r,t)=>H(rN(r,t)),poisson:(r,t)=>H(S0(r,t)),binomial:(r,t,e)=>H(w0(r,t,e)),geometric:(r,t)=>H(aN(r,t)),hypergeometric:(r,t,e,n)=>H(sN(r,t,e,n)),logseries:(r,t)=>H(iN(r,t)),negative_binomial:(r,t,e)=>H(uN(r,t,e)),zipf:(r,t)=>H(cN(r,t)),multinomial:(r,t,e)=>H(lN(r,t,e)),multivariate_normal:(r,t,e,n,o)=>H(fN(r,t,e,n,o)),dirichlet:(r,t)=>H(mN(r,t)),vonmises:(r,t,e)=>H(pN(r,t,e)),choice:(r,t,e,n)=>H(z0(r,t,e,n)),permutation:r=>H(M0(r)),shuffle:F0};function fr(r){return r instanceof er||r instanceof P?r.storage:r}var _1={fft:(r,t,e,n)=>er.fromStorage(vt(fr(r),t,e,n)),ifft:(r,t,e,n)=>er.fromStorage(xo(fr(r),t,e,n)),fft2:(r,t,e,n)=>er.fromStorage(yN(fr(r),t,e,n)),ifft2:(r,t,e,n)=>er.fromStorage(dN(fr(r),t,e,n)),fftn:(r,t,e,n)=>er.fromStorage(bN(fr(r),t,e,n)),ifftn:(r,t,e,n)=>er.fromStorage(AN(fr(r),t,e,n)),rfft:(r,t,e,n)=>er.fromStorage(_s(fr(r),t,e,n)),irfft:(r,t,e,n)=>er.fromStorage(So(fr(r),t,e,n)),rfft2:(r,t,e,n)=>er.fromStorage(gN(fr(r),t,e,n)),irfft2:(r,t,e,n)=>er.fromStorage(hN(fr(r),t,e,n)),rfftn:(r,t,e,n)=>er.fromStorage(NN(fr(r),t,e,n)),irfftn:(r,t,e,n)=>er.fromStorage(DN(fr(r),t,e,n)),hfft:(r,t,e,n)=>er.fromStorage(xN(fr(r),t,e,n)),ihfft:(r,t,e,n)=>er.fromStorage(CN(fr(r),t,e,n)),fftfreq:(r,t)=>er.fromStorage(wN(r,t)),rfftfreq:(r,t)=>er.fromStorage(IN(r,t)),fftshift:(r,t)=>er.fromStorage(zN(fr(r),t)),ifftshift:(r,t)=>er.fromStorage(_N(fr(r),t))},M1="1.0.0";return UN(v1);})();
4
+ `.repeat(Math.max(0,D))+u;return"["+s.join(y)+"]"}}function fn(A,r=null,I=null,t=null,o=" ",e="",g="",i=null,n=null,Q=null,C=null){let a={...RA,linewidth:r??RA.linewidth,precision:I??RA.precision,suppress:t??RA.suppress,separator:o,prefix:e,suffix:g,threshold:i??RA.threshold,edgeitems:n??RA.edgeitems,floatmode:Q??RA.floatmode,sign:C??RA.sign};if(A.ndim===0){let u=A.iget(0);return Dn(u,A.dtype,a)}let B=N8(A,a),s=a.prefix.length,E=cn(A,new Array(A.ndim).fill(0),0,a,B,s);return a.prefix+E+a.suffix}function Vm(A,r=null,I=null,t=null){let e="array("+fn(A,r,I,t,", ");return A.dtype!=="float64"&&(e+=`, dtype='${A.dtype}'`),e+=")",e}function yn(A,r=null,I=null,t=null){return fn(A,r,I,t)}var Wm=2**63,Zm={int8:-1,int16:-1,uint8:255,uint16:65535},G8={int8:0,int16:0,uint8:0,uint16:0},zm={int32:[-2147483648,2147483647],uint32:[0,4294967295]};function S8(A,r){if(isNaN(A))return 0;if(r in Zm)return A>=Wm||A===1/0?Zm[r]:A<=-Wm||A===-1/0?G8[r]:Math.trunc(A);if(r in zm){let[I,t]=zm[r];return A>=t||A===1/0?t:A<=I||A===-1/0?I:Math.trunc(A)}return Math.trunc(A)}var IA=class A{static{this._proxyHandler={get(r,I,t){if(typeof I=="string"){let o=parseInt(I,10);if(!isNaN(o)&&String(o)===I){let e=r._storage.ndim>0?r._storage.shape[0]:1,g=o<0?e+o:o;return r._storage.ndim<=1?r._storage.iget(g):r.slice(I)}}return Reflect.get(r,I,t)},set(r,I,t,o){if(typeof I=="string"){let e=parseInt(I,10);if(!isNaN(e)&&String(e)===I){let g=r._storage.shape[0],i=e<0?g+e:e;if(r._storage.ndim===1)return r.set([i],t),!0;let n=r.slice(String(e)),Q=n.size;if(typeof t=="number"||typeof t=="bigint")n.fill(t);else if(t instanceof X)for(let C=0;C<Q;C++)n._storage.iset(C,t);else if(t instanceof A){if(t.size!==Q)throw new Error(`Cannot assign array of size ${t.size} into slice of size ${Q}`);for(let C=0;C<Q;C++)n._storage.iset(C,t._storage.iget(C))}else if(Array.isArray(t)){let C=t.flat(1/0);if(C.length!==Q)throw new Error(`Cannot assign array of length ${C.length} into slice of size ${Q}`);for(let a=0;a<Q;a++)n._storage.iset(a,C[a])}else throw new Error(`Cannot assign value of type ${typeof t} via bracket operator`);return!0}}return Reflect.set(r,I,t,o)}}}constructor(r,I){return this._storage=r,this._base=I,new Proxy(this,A._proxyHandler)}get storage(){return this._storage}static fromStorage(r,I){return new A(r,I)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get itemsize(){return Zr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(r){let I=this._storage.dtype,t=this.size;if(P(I)){let o=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));for(let e=0;e<t;e++)this._storage.iset(e,o)}else if(I==="bool"){let o=r?1:0;for(let e=0;e<t;e++)this._storage.iset(e,o)}else{let o=Number(r);for(let e=0;e<t;e++)this._storage.iset(e,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let r=0;r<this.shape[0];r++)yield this._storage.iget(r);else for(let r=0;r<this.shape[0];r++)yield this.slice(String(r))}get(r){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let I=r.map((t,o)=>{let e=t;if(e<0&&(e=this.shape[o]+e),e<0||e>=this.shape[o])throw new Error(`Index ${t} is out of bounds for axis ${o} with size ${this.shape[o]}`);return e});return this._storage.get(...I)}set(r,I){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let t=r.map((e,g)=>{let i=e;if(i<0&&(i=this.shape[g]+i),i<0||i>=this.shape[g])throw new Error(`Index ${e} is out of bounds for axis ${g} with size ${this.shape[g]}`);return i}),o=this.dtype;if(k(o))this._storage.set(t,I);else if(P(o)){let e=I instanceof X?I.re:Number(I),g=typeof I=="bigint"?I:BigInt(Math.round(e));this._storage.set(t,g)}else if(o==="bool"){let g=(I instanceof X?I.re:Number(I))?1:0;this._storage.set(t,g)}else{let e=I instanceof X?I.re:Number(I);this._storage.set(t,e)}}iget(r){return this._storage.iget(r)}iset(r,I){this._storage.iset(r,I)}copy(){return new A(this._storage.copy())}astype(r,I=!0){let t=this.dtype;if(t===r&&!I)return this;if(t===r&&I)return this.copy();let o=Array.from(this.shape),e=this.size,g=iA(r);if(!g)throw new Error(`Cannot convert to dtype ${r}`);let i=k(t),n=k(r);if(i&&n){let B=new g(e*2),s=this.data,E=B;for(let D=0;D<e*2;D++)E[D]=s[D];let u=d.fromData(B,o,r);return new A(u)}if(!i&&n){let B=new g(e*2),s=B;for(let u=0;u<e;u++)s[u*2]=Number(this.data[u]),s[u*2+1]=0;let E=d.fromData(B,o,r);return new A(E)}if(i&&!n){let B=new g(e),s=this.data;if(P(r))for(let u=0;u<e;u++)B[u]=BigInt(Math.trunc(s[u*2]));else for(let u=0;u<e;u++)B[u]=s[u*2];let E=d.fromData(B,o,r);return new A(E)}let Q=new g(e),C=this.data;if(P(t)&&!P(r)){let B=C;if(r==="bool")for(let s=0;s<e;s++)Q[s]=B[s]!==BigInt(0)?1:0;else for(let s=0;s<e;s++)Q[s]=Number(B[s])}else if(!P(t)&&P(r)){let B=C;if(fA(t)){let E=r==="int64",u=BigInt(E?"9223372036854775807":"18446744073709551615"),D=E?BigInt("-9223372036854775808"):0n;for(let y=0;y<e;y++){let f=Number(B[y]);isNaN(f)?Q[y]=0n:!isFinite(f)||f>=Number(u)?Q[y]=f<0?D:u:f<=Number(D)?Q[y]=D:Q[y]=BigInt(Math.trunc(f))}}else for(let E=0;E<e;E++)Q[E]=BigInt(Math.round(Number(B[E])))}else if(r==="bool"){let B=C;for(let s=0;s<e;s++)Q[s]=B[s]!==0?1:0}else if(t==="bool"&&!P(r)){let B=C;for(let s=0;s<e;s++)Q[s]=B[s]}else if(!P(t)&&!P(r)){let B=C;if(fA(t)&&!fA(r))for(let E=0;E<e;E++)Q[E]=S8(B[E],r);else for(let E=0;E<e;E++)Q[E]=B[E]}else{let B=C;for(let s=0;s<e;s++)Q[s]=B[s]}let a=d.fromData(Q,o,r);return new A(a)}slice(...r){let I=fm(this._storage,...r);if(I===this._storage)return this;let t=this._base??this;return new this.constructor(I,t)}toString(){return yn(this._storage)}toArray(){if(this.ndim===0)return this._storage.iget(0);let r=this.shape,I=r.length,t=(o,e)=>{if(e===I)return this._storage.get(...o);let g=[];for(let i=0;i<r[e];i++)o[e]=i,g.push(t(o,e+1));return g};return t(new Array(I),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let t=this._storage.data,o=t.BYTES_PER_ELEMENT,e=this._storage.offset*o,g=this.size*o;return t.buffer.slice(e,e+g)}let I=this.copy()._storage.data;return I.buffer.slice(0,this.size*I.BYTES_PER_ELEMENT)}item(...r){if(r.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(r.length===1){let I=r[0];if(I<0||I>=this.size)throw new Error(`index ${I} is out of bounds for size ${this.size}`);return this._storage.iget(I)}return this.get(r)}};function G(A){return A instanceof IA||A&&typeof A=="object"&&"storage"in A&&A.storage instanceof d?A.storage:A}function q(A,r){return IA.fromStorage(A,r)}function or(A,r){let I=r.base??r;return IA.fromStorage(A,I)}function pr(A){return A.map(r=>q(r))}function HI(A,r){return A.map(I=>or(I,r))}function mn(A){return[q(A[0]),q(A[1])]}function Ga(A){return new IA(A)}function R8(A){return!!(A instanceof IA||A&&typeof A=="object"&&"storage"in A&&A.storage instanceof d)}function nr(A,r=cA){let I=d.zeros(A,r);return new IA(I)}function ln(A,r=cA){let I=d.ones(A,r);return new IA(I)}function hn(A,r=cA){return nr(A,r)}function wn(A,r,I){let t=I;t||(typeof r=="bigint"?t="int64":typeof r=="boolean"?t="bool":Number.isInteger(r)?t="int32":t=cA);let o=iA(t);if(!o)throw new Error(`Cannot create full array with dtype ${t}`);let e=A.reduce((n,Q)=>n*Q,1),g=new o(e);if(P(t)){let n=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));g.fill(n)}else t==="bool"?g.fill(r?1:0):g.fill(Number(r));let i=d.fromData(g,A,t);return new IA(i)}function k8(A){let r=[],I=A;for(;Array.isArray(I);)r.push(I.length),I=I[0];return r}function jm(A){return typeof A=="bigint"?!0:Array.isArray(A)?A.some(r=>jm(r)):!1}function $m(A){return gm(A)?!0:Array.isArray(A)?A.some(r=>$m(r)):!1}function q8(A){let r=[];function I(t){Array.isArray(t)?t.forEach(o=>I(o)):r.push(t)}return I(A),r}function BA(A,r){if(A instanceof IA)return!r||A.dtype===r?A.copy():A.astype(r);let I=jm(A),t=$m(A),o=k8(A),e=o.reduce((s,E)=>s*E,1),g=r;g||(t?g="complex128":I?g="int64":g=cA);let i=k(g),n=iA(g);if(!n)throw new Error(`Cannot create array with dtype ${g}`);let Q=i?e*2:e,C=new n(Q),a=q8(A);if(P(g)){let s=C;for(let E=0;E<e;E++){let u=a[E];s[E]=typeof u=="bigint"?u:BigInt(Math.round(Number(u)))}}else if(g==="bool"){let s=C;for(let E=0;E<e;E++)s[E]=a[E]?1:0}else if(i){let s=C;for(let E=0;E<e;E++){let u=a[E],D,y;u instanceof X?(D=u.re,y=u.im):typeof u=="object"&&u!==null&&"re"in u?(D=u.re,y=u.im??0):(D=Number(u),y=0),s[E*2]=D,s[E*2+1]=y}}else{let s=C;for(let E=0;E<e;E++){let u=a[E];s[E]=Number(u)}}let B=d.fromData(C,o,g);return new IA(B)}function Sa(A,r,I=1,t=cA){let o=A,e=r;if(r===void 0&&(o=0,e=A),e===void 0)throw new Error("stop is required");let g=Math.max(0,Math.ceil((e-o)/I)),i=iA(t);if(!i)throw new Error(`Cannot create arange array with dtype ${t}`);let n=new i(g);if(P(t))for(let C=0;C<g;C++)n[C]=BigInt(Math.round(o+C*I));else if(t==="bool")for(let C=0;C<g;C++)n[C]=o+C*I!==0?1:0;else for(let C=0;C<g;C++)n[C]=o+C*I;let Q=d.fromData(n,[g],t);return new IA(Q)}function Ra(A,r,I=50,t=cA){if(I<0)throw new Error("num must be non-negative");if(I===0)return BA([],t);if(I===1)return BA([A],t);let o=iA(t);if(!o)throw new Error(`Cannot create linspace array with dtype ${t}`);let e=new o(I),g=(r-A)/(I-1);if(P(t))for(let n=0;n<I;n++)e[n]=BigInt(Math.round(A+n*g));else if(t==="bool")for(let n=0;n<I;n++)e[n]=A+n*g!==0?1:0;else for(let n=0;n<I;n++)e[n]=A+n*g;let i=d.fromData(e,[I],t);return new IA(i)}function ka(A,r,I=50,t=10,o=cA){if(I<0)throw new Error("num must be non-negative");if(I===0)return BA([],o);if(I===1)return BA([Math.pow(t,A)],o);let e=iA(o);if(!e)throw new Error(`Cannot create logspace array with dtype ${o}`);let g=new e(I),i=(r-A)/(I-1);if(P(o))for(let Q=0;Q<I;Q++){let C=A+Q*i;g[Q]=BigInt(Math.round(Math.pow(t,C)))}else if(o==="bool")for(let Q=0;Q<I;Q++){let C=A+Q*i;g[Q]=Math.pow(t,C)!==0?1:0}else for(let Q=0;Q<I;Q++){let C=A+Q*i;g[Q]=Math.pow(t,C)}let n=d.fromData(g,[I],o);return new IA(n)}function qa(A,r,I=50,t=cA){if(I<0)throw new Error("num must be non-negative");if(A===0||r===0)throw new Error("Geometric sequence cannot include zero");if(I===0)return BA([],t);if(I===1)return BA([A],t);let o=Math.sign(A),e=Math.sign(r);if(o!==e)throw new Error("Geometric sequence cannot contain both positive and negative values");let g=iA(t);if(!g)throw new Error(`Cannot create geomspace array with dtype ${t}`);let i=new g(I),n=Math.log(Math.abs(A)),C=(Math.log(Math.abs(r))-n)/(I-1);if(P(t))for(let B=0;B<I;B++){let s=o*Math.exp(n+B*C);i[B]=BigInt(Math.round(s))}else if(t==="bool")for(let B=0;B<I;B++){let s=o*Math.exp(n+B*C);i[B]=s!==0?1:0}else for(let B=0;B<I;B++){let s=o*Math.exp(n+B*C);i[B]=s}let a=d.fromData(i,[I],t);return new IA(a)}function dn(A,r,I=0,t=cA){let o=r??A,e=nr([A,o],t),g=e.data;if(P(t)){let i=g;for(let n=0;n<A;n++){let Q=n+I;Q>=0&&Q<o&&(i[n*o+Q]=BigInt(1))}}else{let i=g;for(let n=0;n<A;n++){let Q=n+I;Q>=0&&Q<o&&(i[n*o+Q]=1)}}return e}function Ma(A,r=cA){return dn(A,A,0,r)}function wI(A,r){return R8(A)?!r||A.dtype===r?A:A.astype(r):BA(A,r)}function Ja(A,r){return nr(Array.from(A.shape),r??A.dtype)}function xa(A,r){return ln(Array.from(A.shape),r??A.dtype)}function Ua(A,r){return hn(Array.from(A.shape),r??A.dtype)}function La(A,r,I){return wn(Array.from(A.shape),r,I??A.dtype)}function Ha(A){return A.copy()}function Ya(A,r){return wI(A,r)}function Pa(A,r){return wI(A,r).copy()}function _a(A,r){return wI(A,r).copy()}function Ka(A,r){let I=wI(A,r),t=I.data;if(t instanceof Float64Array){let o=new Uint32Array(t.buffer,t.byteOffset,t.length*2),e=2146435072;for(let g=1;g<o.length;g+=2)if((o[g]&e)===e)throw new Error("array must not contain infs or NaNs")}else if(t instanceof Float32Array){let o=new Uint32Array(t.buffer,t.byteOffset,t.length),e=2139095040;for(let g=0;g<o.length;g++)if((o[g]&e)===e)throw new Error("array must not contain infs or NaNs")}else if(I.dtype==="float16")for(let o=0;o<t.length;o++){let e=Number(t[o]);if(!isFinite(e))throw new Error("array must not contain infs or NaNs")}return I}function va(A,r,I){let t=A;return r&&r!==A.dtype&&(t=t.astype(r)),t}function M8(A){let r=A.data,I=d.fromData(r.slice(),[r.length],A.dtype);return Ga(I)}function bn(A,r=0){let I=A.shape,t=A.data,o=A.dtype;if(I.length===1){let e=I[0],g=e+Math.abs(r),i=nr([g,g],o),n=i.data;for(let Q=0;Q<e;Q++){let C=r>=0?Q:Q-r,a=r>=0?Q+r:Q;C>=0&&C<g&&a>=0&&a<g&&(n[C*g+a]=t[Q])}return i}else if(I.length===2){let e=I[0],g=I[1],i=Math.min(r>=0?Math.min(e,g-r):Math.min(e+r,g),Math.max(0,r>=0?g-r:e+r));if(i<=0)return BA([],o);let n=[];for(let Q=0;Q<i;Q++){let C=r>=0?Q:Q-r,a=r>=0?Q+r:Q;C>=0&&C<e&&a>=0&&a<g&&n.push(t[C*g+a])}return BA(n,o)}throw new Error("Input must be 1-D or 2-D")}function Xa(A,r=0){let I=M8(A);return bn(I,r)}function Ta(A,r,I=0,t=cA){let o=r??A,e=nr([A,o],t),g=e.data;for(let i=0;i<A;i++)for(let n=0;n<=Math.min(i+I,o-1);n++)n>=0&&(g[i*o+n]=1);return e}function Oa(A,r=0){let I=A.shape;if(I.length<2)throw new Error("Input must be at least 2-D");let t=A.copy(),o=t.data,e=I[I.length-2],g=I[I.length-1],i=I.slice(0,-2).reduce((C,a)=>C*a,1),n=e*g,Q=o instanceof BigInt64Array||o instanceof BigUint64Array;for(let C=0;C<i;C++){let a=C*n;for(let B=0;B<e;B++){let s=a+B*g+Math.max(0,Math.min(B+r+1,g)),E=a+B*g+g;s<E&&o.fill(Q?0n:0,s,E)}}return t}function Va(A,r=0){let I=A.shape;if(I.length<2)throw new Error("Input must be at least 2-D");let t=A.copy(),o=t.data,e=I[I.length-2],g=I[I.length-1],i=I.slice(0,-2).reduce((C,a)=>C*a,1),n=e*g,Q=o instanceof BigInt64Array||o instanceof BigUint64Array;for(let C=0;C<i;C++){let a=C*n;for(let B=0;B<e;B++){let s=a+B*g+Math.max(0,Math.min(B+r,g)),E=a+B*g;E<s&&o.fill(Q?0n:0,E,s)}}return t}function Wa(A,r,I=!1){let t=A.size,o=r??t,e=A.data,g=nr([t,o],A.dtype),i=g.data;for(let n=0;n<t;n++){let Q=e[n];for(let C=0;C<o;C++){let a=I?C:o-1-C;i[n*o+C]=Math.pow(Q,a)}}return g}function Za(A,r=cA,I=-1,t=0){let o=iA(r);if(!o)throw new Error(`Unsupported dtype: ${r}`);let e;if(A instanceof ArrayBuffer){let i=t,n=I<0?(A.byteLength-i)/o.BYTES_PER_ELEMENT:I;e=new o(A,i,n)}else{let i=t,n=I<0?A.length:t+I,Q=Array.from(A.slice(i,n));e=new o(Q.length);for(let C=0;C<Q.length;C++)e[C]=Q[C]}let g=d.fromData(e,[e.length],r);return Ga(g)}function za(A,r,I=cA){let t=r.reduce((Q,C)=>Q*C,1),o=iA(I);if(!o)throw new Error(`Unsupported dtype: ${I}`);let e=new o(t),g=[],i=1;for(let Q=r.length-1;Q>=0;Q--)g.unshift(i),i*=r[Q];for(let Q=0;Q<t;Q++){let C=[],a=Q;for(let B=0;B<r.length;B++)C.push(Math.floor(a/g[B])),a=a%g[B];e[Q]=A(...C)}let n=d.fromData(e,r,I);return Ga(n)}function ja(A,r=cA,I=-1){let t=[],o=0;for(let e of A){if(I>=0&&o>=I)break;t.push(e),o++}return BA(t,r)}function $a(A,r=cA,I=-1,t){let o=t??/\s+/,g=A.split(o).filter(n=>n.trim()!=="").map(n=>parseFloat(n.trim())),i=I>=0?g.slice(0,I):g;return BA(i,r)}function AB(A,r=cA,I=-1,t=""){throw new Error("fromfile requires Node.js file system access")}function jr(A,r){let I=A.length,t=r.length,o=Math.max(I,t),e=new Array(o);for(let g=0;g<o;g++){let i=g<o-I?1:A[g-(o-I)],n=g<o-t?1:r[g-(o-t)];if(i===n)e[g]=i;else if(i===1)e[g]=n;else if(n===1)e[g]=i;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(A))} ${JSON.stringify(Array.from(r))}`)}return e}function J8(A,r,I){let t=A.length,o=I.length,e=new Array(o).fill(0);for(let g=0;g<t;g++){let i=o-t+g,n=A[g],Q=I[i];if(n===Q)e[i]=r[g];else if(n===1)e[i]=0;else throw new Error("Invalid broadcast")}return e}function pn(A,r){let I=J8(A.shape,A.strides,r);return d.fromData(A.data,Array.from(r),A.dtype,I,A.offset)}function pA(A,r,I,t){let o=tA(A.dtype,r.dtype),e=A.shape,g=r.shape;if(e.length===g.length&&e.every((E,u)=>E===g[u])&&A.isCContiguous&&r.isCContiguous&&!P(A.dtype)&&!P(r.dtype)&&!P(o)){let E=A.size,u=d.zeros(Array.from(e),o),D=u.data,y=A.offset,f=r.offset,c=A.data,m=r.data;if(y===0&&f===0)for(let l=0;l<E;l++)D[l]=I(c[l],m[l]);else for(let l=0;l<E;l++)D[l]=I(c[y+l],m[f+l]);return u}let n=jr(A.shape,r.shape),Q=pn(A,n),C=pn(r,n),a=d.zeros(n,o),B=a.data,s=a.size;if(P(o)){let E=B;for(let u=0;u<s;u++){let D=Q.iget(u),y=C.iget(u),f=D instanceof X?D.re:D,c=y instanceof X?y.re:y,m=typeof f=="bigint"?f:BigInt(Math.round(f)),l=typeof c=="bigint"?c:BigInt(Math.round(c));t==="add"?E[u]=m+l:t==="subtract"?E[u]=m-l:t==="multiply"?E[u]=m*l:t==="divide"?E[u]=m/l:E[u]=BigInt(Math.round(I(Number(m),Number(l))))}}else{let E=P(A.dtype)||P(r.dtype);for(let u=0;u<s;u++){let D=Q.iget(u),y=C.iget(u),f=Number(D),c=Number(y);B[u]=I(f,c)}}return a}function Qr(A,r,I){let t=jr(A.shape,r.shape),o=pn(A,t),e=pn(r,t),g=t.reduce((Q,C)=>Q*C,1),i=new Uint8Array(g),n=P(A.dtype)||P(r.dtype);for(let Q=0;Q<g;Q++){let C=o.iget(Q),a=e.iget(Q),B=Number(C),s=Number(a);i[Q]=I(B,s)?1:0}return d.fromData(i,t,"bool")}function wA(A,r,I=!0){let t=A.dtype,o=Array.from(A.shape),e=A.size,i=I?t:t!=="float16"&&t!=="float32"&&t!=="float64"?"float64":t,n=d.zeros(o,i),Q=n.data,C=A.data,a=A.offset,B=A.isCContiguous;if(P(t))if(P(i)){let s=Q;if(B)for(let E=0;E<e;E++){let u=Number(C[a+E]);s[E]=BigInt(Math.round(r(u)))}else for(let E=0;E<e;E++)s[E]=BigInt(Math.round(r(Number(A.iget(E)))))}else if(B)for(let s=0;s<e;s++)Q[s]=r(Number(C[a+s]));else for(let s=0;s<e;s++)Q[s]=r(Number(A.iget(s)));else if(B)if(a===0)for(let s=0;s<e;s++)Q[s]=r(Number(C[s]));else for(let s=0;s<e;s++)Q[s]=r(Number(C[a+s]));else for(let s=0;s<e;s++)Q[s]=r(Number(A.iget(s)));return n}var x8="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",Ht=null;function OA(){if(Ht)return Ht;let A=atob(x8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ht=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ht.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ht}function Al(A,r,I,t){OA().exports.add_f64(A,r,I,t)}function rl(A,r,I,t){OA().exports.add_scalar_f64(A,r,I,t)}function Il(A,r,I,t){OA().exports.add_f32(A,r,I,t)}function tl(A,r,I,t){OA().exports.add_scalar_f32(A,r,I,t)}function ol(A,r,I,t){OA().exports.add_c128(A,r,I,t)}function el(A,r,I,t){OA().exports.add_scalar_c128(A,r,I,t)}function gl(A,r,I,t){OA().exports.add_c64(A,r,I,t)}function il(A,r,I,t){OA().exports.add_scalar_c64(A,r,I,t)}function rB(A,r,I,t){OA().exports.add_i64(A,r,I,t)}function IB(A,r,I,t){OA().exports.add_scalar_i64(A,r,I,BigInt(Math.round(t)))}function tB(A,r,I,t){OA().exports.add_i32(A,r,I,t)}function oB(A,r,I,t){OA().exports.add_scalar_i32(A,r,I,t)}function eB(A,r,I,t){OA().exports.add_i16(A,r,I,t)}function gB(A,r,I,t){OA().exports.add_scalar_i16(A,r,I,t)}function iB(A,r,I,t){OA().exports.add_i8(A,r,I,t)}function nB(A,r,I,t){OA().exports.add_scalar_i8(A,r,I,t)}var nl=64,U8={float64:Al,float32:Il,int64:rB,uint64:rB,int32:tB,uint32:tB,int16:eB,uint16:eB,int8:iB,uint8:iB,complex128:ol,complex64:gl},L8={float64:rl,float32:tl,int64:IB,uint64:IB,int32:oB,uint32:oB,int16:gB,uint16:gB,int8:nB,uint8:nB,complex128:el,complex64:il},Ql={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},Cl={complex128:2,complex64:2};function al(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<nl*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=U8[t],e=Ql[t];if(!o||!e)return null;let g=Cl[t]??1,i=e.BYTES_PER_ELEMENT,n=I*g,Q=n*i,C=n*i,a=n*i;x(Q+C+a),U();let B=A.offset*g,s=r.offset*g,E=A.data.subarray(B,B+n),u=r.data.subarray(s,s+n),D=R(E),y=R(u),f=H(a);o(D,y,f,I);let c=_(f,n,e);return d.fromData(c,Array.from(A.shape),t)}function Bl(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<nl*K.thresholdMultiplier)return null;let t=A.dtype,o=L8[t],e=Ql[t];if(!o||!e)return null;let g=Cl[t]??1,i=e.BYTES_PER_ELEMENT,n=I*g,Q=n*i,C=n*i;x(Q+C),U();let a=A.offset*g,B=A.data.subarray(a,a+n),s=R(B),E=H(C);o(s,E,I,r);let u=_(E,n,e);return d.fromData(u,Array.from(A.shape),t)}var H8="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",Yt=null;function VA(){if(Yt)return Yt;let A=atob(H8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Yt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Yt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Yt}function sl(A,r,I,t){VA().exports.sub_f64(A,r,I,t)}function El(A,r,I,t){VA().exports.sub_scalar_f64(A,r,I,t)}function ul(A,r,I,t){VA().exports.sub_f32(A,r,I,t)}function cl(A,r,I,t){VA().exports.sub_scalar_f32(A,r,I,t)}function Dl(A,r,I,t){VA().exports.sub_c128(A,r,I,t)}function fl(A,r,I,t){VA().exports.sub_scalar_c128(A,r,I,t)}function yl(A,r,I,t){VA().exports.sub_c64(A,r,I,t)}function ml(A,r,I,t){VA().exports.sub_scalar_c64(A,r,I,t)}function QB(A,r,I,t){VA().exports.sub_i64(A,r,I,t)}function CB(A,r,I,t){VA().exports.sub_scalar_i64(A,r,I,BigInt(Math.round(t)))}function aB(A,r,I,t){VA().exports.sub_i32(A,r,I,t)}function BB(A,r,I,t){VA().exports.sub_scalar_i32(A,r,I,t)}function sB(A,r,I,t){VA().exports.sub_i16(A,r,I,t)}function EB(A,r,I,t){VA().exports.sub_scalar_i16(A,r,I,t)}function uB(A,r,I,t){VA().exports.sub_i8(A,r,I,t)}function cB(A,r,I,t){VA().exports.sub_scalar_i8(A,r,I,t)}var ll=64,Y8={float64:sl,float32:ul,int64:QB,uint64:QB,int32:aB,uint32:aB,int16:sB,uint16:sB,int8:uB,uint8:uB,complex128:Dl,complex64:yl},P8={float64:El,float32:cl,int64:CB,uint64:CB,int32:BB,uint32:BB,int16:EB,uint16:EB,int8:cB,uint8:cB,complex128:fl,complex64:ml},hl={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},wl={complex128:2,complex64:2};function dl(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<ll*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=Y8[t],e=hl[t];if(!o||!e)return null;let g=wl[t]??1,i=e.BYTES_PER_ELEMENT,n=I*g,Q=n*i,C=n*i,a=n*i;x(Q+C+a),U();let B=A.offset*g,s=r.offset*g,E=A.data.subarray(B,B+n),u=r.data.subarray(s,s+n),D=R(E),y=R(u),f=H(a);o(D,y,f,I);let c=_(f,n,e);return d.fromData(c,Array.from(A.shape),t)}function bl(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<ll*K.thresholdMultiplier)return null;let t=A.dtype,o=P8[t],e=hl[t];if(!o||!e)return null;let g=wl[t]??1,i=e.BYTES_PER_ELEMENT,n=I*g,Q=n*i,C=n*i;x(Q+C),U();let a=A.offset*g,B=A.data.subarray(a,a+n),s=R(B),E=H(C);o(s,E,I,r);let u=_(E,n,e);return d.fromData(u,Array.from(A.shape),t)}var _8="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",Pt=null;function WA(){if(Pt)return Pt;let A=atob(_8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Pt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Pt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Pt}function pl(A,r,I,t){WA().exports.mul_f64(A,r,I,t)}function Nl(A,r,I,t){WA().exports.mul_scalar_f64(A,r,I,t)}function Fl(A,r,I,t){WA().exports.mul_f32(A,r,I,t)}function Gl(A,r,I,t){WA().exports.mul_scalar_f32(A,r,I,t)}function Sl(A,r,I,t){WA().exports.mul_c128(A,r,I,t)}function Rl(A,r,I,t){WA().exports.mul_scalar_c128(A,r,I,t)}function kl(A,r,I,t){WA().exports.mul_c64(A,r,I,t)}function ql(A,r,I,t){WA().exports.mul_scalar_c64(A,r,I,t)}function DB(A,r,I,t){WA().exports.mul_i64(A,r,I,t)}function fB(A,r,I,t){WA().exports.mul_scalar_i64(A,r,I,BigInt(Math.round(t)))}function yB(A,r,I,t){WA().exports.mul_i32(A,r,I,t)}function mB(A,r,I,t){WA().exports.mul_scalar_i32(A,r,I,t)}function lB(A,r,I,t){WA().exports.mul_i16(A,r,I,t)}function hB(A,r,I,t){WA().exports.mul_scalar_i16(A,r,I,t)}function wB(A,r,I,t){WA().exports.mul_i8(A,r,I,t)}function dB(A,r,I,t){WA().exports.mul_scalar_i8(A,r,I,t)}var Ml=64,K8={float64:pl,float32:Fl,int64:DB,uint64:DB,int32:yB,uint32:yB,int16:lB,uint16:lB,int8:wB,uint8:wB,complex128:Sl,complex64:kl},v8={float64:Nl,float32:Gl,int64:fB,uint64:fB,int32:mB,uint32:mB,int16:hB,uint16:hB,int8:dB,uint8:dB,complex128:Rl,complex64:ql},Jl={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},xl={complex128:2,complex64:2};function Ul(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Ml*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=K8[t],e=Jl[t];if(!o||!e)return null;let g=xl[t]??1,i=e.BYTES_PER_ELEMENT,n=I*g,Q=n*i,C=n*i,a=n*i;x(Q+C+a),U();let B=A.offset*g,s=r.offset*g,E=A.data.subarray(B,B+n),u=r.data.subarray(s,s+n),D=R(E),y=R(u),f=H(a);o(D,y,f,I);let c=_(f,n,e);return d.fromData(c,Array.from(A.shape),t)}function Ll(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Ml*K.thresholdMultiplier)return null;let t=A.dtype,o=v8[t],e=Jl[t];if(!o||!e)return null;let g=xl[t]??1,i=e.BYTES_PER_ELEMENT,n=I*g,Q=n*i,C=n*i;x(Q+C),U();let a=A.offset*g,B=A.data.subarray(a,a+n),s=R(B),E=H(C);o(s,E,I,r);let u=_(E,n,e);return d.fromData(u,Array.from(A.shape),t)}var X8="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",_t=null;function GA(){if(_t)return _t;let A=atob(X8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);_t=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=_t.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),_t}function Hl(A,r,I,t){GA().exports.div_f64(A,r,I,t)}function Yl(A,r,I,t){GA().exports.div_f32(A,r,I,t)}function Pl(A,r,I,t){GA().exports.div_i64_f64(A,r,I,t)}function _l(A,r,I,t){GA().exports.div_u64_f64(A,r,I,t)}function Kl(A,r,I,t){GA().exports.div_i32_f64(A,r,I,t)}function vl(A,r,I,t){GA().exports.div_u32_f64(A,r,I,t)}function Xl(A,r,I,t){GA().exports.div_i16_f64(A,r,I,t)}function Tl(A,r,I,t){GA().exports.div_u16_f64(A,r,I,t)}function Ol(A,r,I,t){GA().exports.div_i8_f64(A,r,I,t)}function Vl(A,r,I,t){GA().exports.div_u8_f64(A,r,I,t)}function Wl(A,r,I,t){GA().exports.div_c128(A,r,I,t)}function Zl(A,r,I,t){GA().exports.div_c64(A,r,I,t)}function zl(A,r,I,t){GA().exports.div_scalar_f64(A,r,I,t)}function jl(A,r,I,t){GA().exports.div_scalar_f32(A,r,I,t)}function $l(A,r,I,t){GA().exports.div_scalar_i64_f64(A,r,I,t)}function A0(A,r,I,t){GA().exports.div_scalar_u64_f64(A,r,I,t)}function r0(A,r,I,t){GA().exports.div_scalar_i32_f64(A,r,I,t)}function I0(A,r,I,t){GA().exports.div_scalar_u32_f64(A,r,I,t)}function t0(A,r,I,t){GA().exports.div_scalar_i16_f64(A,r,I,t)}function o0(A,r,I,t){GA().exports.div_scalar_u16_f64(A,r,I,t)}function e0(A,r,I,t){GA().exports.div_scalar_i8_f64(A,r,I,t)}function g0(A,r,I,t){GA().exports.div_scalar_u8_f64(A,r,I,t)}var i0=64,T8={float64:Hl,float32:Yl,complex128:Wl,complex64:Zl},O8={float64:zl,float32:jl},V8={int64:Pl,uint64:_l,int32:Kl,uint32:vl,int16:Xl,uint16:Tl,int8:Ol,uint8:Vl},W8={int64:$l,uint64:A0,int32:r0,uint32:I0,int16:t0,uint16:o0,int8:e0,uint8:g0},Nn={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Fn(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<i0*K.thresholdMultiplier||A.dtype!==r.dtype)return null;let t=A.dtype,o=T8[t];if(o){let B=Nn[t],s=k(t)?2:1,E=B.BYTES_PER_ELEMENT,u=I*s;x(u*E*3),U();let D=R(A.data.subarray(A.offset*s,(A.offset+I)*s)),y=R(r.data.subarray(r.offset*s,(r.offset+I)*s)),f=H(u*E);o(D,y,f,I);let c=_(f,u,B);return d.fromData(c,Array.from(A.shape),t)}let e=V8[t],g=Nn[t];if(!e||!g)return null;let i=g.BYTES_PER_ELEMENT;x(I*i*2+I*8),U();let n=R(A.data.subarray(A.offset,A.offset+I)),Q=R(r.data.subarray(r.offset,r.offset+I)),C=H(I*8);e(n,Q,C,I);let a=_(C,I,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}function n0(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<i0*K.thresholdMultiplier)return null;let t=A.dtype,o=O8[t];if(o){let a=Nn[t],B=a.BYTES_PER_ELEMENT;x(I*B*2),U();let s=R(A.data.subarray(A.offset,A.offset+I)),E=H(I*B);o(s,E,I,r);let u=_(E,I,a);return d.fromData(u,Array.from(A.shape),t)}let e=W8[t],g=Nn[t];if(!e||!g)return null;let i=g.BYTES_PER_ELEMENT;x(I*i+I*8),U();let n=R(A.data.subarray(A.offset,A.offset+I)),Q=H(I*8);e(n,Q,I,r);let C=_(Q,I,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var Z8="AGFzbQEAAAABBwFgA39/fwACDwEDZW52Bm1lbW9yeQIAEAMJCAAAAAAAAAAABgkBfwFBgIDAAAsHUQgHbmVnX2Y2NAAAB25lZ19mMzIAAQhuZWdfYzEyOAACB25lZ19jNjQAAwduZWdfaTY0AAQHbmVnX2kzMgAFB25lZ19pMTYABgZuZWdfaTgABwrCJAj8BAMFfwF7AX8CQAJAIAJBfnEiAw0AQQAhBAwBCyADQX9qQQF2QQFqIgVBA3EhBgJAAkAgA0EHTw0AQQAhBAwBCyAFQXxxIgdBAXQhBEEAIQMDQCABIANqIgX9DAAAAAAAAAAAAAAAAAAAAAAiCCAAIANqIgn9AAMA/fEB/QsDACAFQRBqIAggCUEQav0AAwD98QH9CwMAIAVBIGogCCAJQSBq/QADAP3xAf0LAwAgBUEwaiAIIAlBMGr9AAMA/fEB/QsDACADQcAAaiEDIAdBfGoiBw0ACwsgBkUNACAEIAZBAXRqIQkgACAEQQN0IgVqIQMgASAFaiEFA0AgBf0MAAAAAAAAAAAAAAAAAAAAACAD/QADAP3xAf0LAwAgA0EQaiEDIAVBEGohBSAGQX9qIgYNAAsgCSEECwJAIAIgBE0NAAJAIAIgBGsiBkEESQ0AIAEgAGtBEEkNACAAIARBA3QiBWohAyABIAVqIQUgBCAGQX5xIgdqIQQgByEJA0AgBSAD/QADAP3tAf0LAwAgA0EQaiEDIAVBEGohBSAJQX5qIgkNAAsgBiAHRg0BCyAEIQYCQCACIARrQQNxIglFDQAgBCAJaiEGIAEgBEEDdCIFaiEDIAAgBWohBQNAIAMgBSsDAJo5AwAgA0EIaiEDIAVBCGohBSAJQX9qIgkNAAsLIAQgAmtBfEsNACAGQQN0IQkgAiAGayEGA0AgASAJaiIDIAAgCWoiBSsDAJo5AwAgA0EIaiAFQQhqKwMAmjkDACADQRBqIAVBEGorAwCaOQMAIANBGGogBUEYaisDAJo5AwAgAUEgaiEBIABBIGohACAGQXxqIgYNAAsLC4AFAwV/AXsBfwJAAkAgAkF8cSIDDQBBACEEDAELIANBf2pBAnZBAWoiBUEDcSEGAkACQCADQQ1PDQBBACEEDAELIAVB/P///wdxIgdBAnQhBEEAIQMDQCABIANqIgX9DAAAAAAAAAAAAAAAAAAAAAAiCCAAIANqIgn9AAIA/eUB/QsCACAFQRBqIAggCUEQav0AAgD95QH9CwIAIAVBIGogCCAJQSBq/QACAP3lAf0LAgAgBUEwaiAIIAlBMGr9AAIA/eUB/QsCACADQcAAaiEDIAdBfGoiBw0ACwsgBkUNACAEIAZBAnRqIQkgACAEQQJ0IgVqIQMgASAFaiEFA0AgBf0MAAAAAAAAAAAAAAAAAAAAACAD/QACAP3lAf0LAgAgA0EQaiEDIAVBEGohBSAGQX9qIgYNAAsgCSEECwJAIAIgBE0NAAJAIAIgBGsiBkEESQ0AIAEgAGtBEEkNACAAIARBAnQiBWohAyABIAVqIQUgBCAGQXxxIgdqIQQgByEJA0AgBSAD/QACAP3hAf0LAgAgA0EQaiEDIAVBEGohBSAJQXxqIgkNAAsgBiAHRg0BCyAEIQYCQCACIARrQQNxIglFDQAgBCAJaiEGIAEgBEECdCIFaiEDIAAgBWohBQNAIAMgBSoCAIw4AgAgA0EEaiEDIAVBBGohBSAJQX9qIgkNAAsLIAQgAmtBfEsNACAGQQJ0IQkgAiAGayEGA0AgASAJaiIDIAAgCWoiBSoCAIw4AgAgA0EEaiAFQQRqKgIAjDgCACADQQhqIAVBCGoqAgCMOAIAIANBDGogBUEMaioCAIw4AgAgAUEQaiEBIABBEGohACAGQXxqIgYNAAsLC6ADAQZ/IAJBAXQhA0EAIQQCQCACRQ0AIAAhAiABIQUDQCAF/QwAAAAAAAAAAAAAAAAAAAAAIAL9AAMA/fEB/QsDACACQRBqIQIgBUEQaiEFIARBAmoiBCADSQ0ACwsCQCADIARNDQACQCADIARrIgZBBEkNACABIABrQRBJDQAgACAEQQN0IgVqIQIgASAFaiEFIAQgBkF+cSIHaiEEIAchCANAIAUgAv0AAwD97QH9CwMAIAJBEGohAiAFQRBqIQUgCEF+aiIIDQALIAYgB0YNAQsgBCEGAkAgAyAEa0EDcSIIRQ0AIAQgCGohBiABIARBA3QiBWohAiAAIAVqIQUDQCACIAUrAwCaOQMAIAJBCGohAiAFQQhqIQUgCEF/aiIIDQALCyAEIANrQXxLDQAgBkEDdCEEIAYgA2shAwNAIAEgBGoiAiAAIARqIgUrAwCaOQMAIAJBCGogBUEIaisDAJo5AwAgAkEQaiAFQRBqKwMAmjkDACACQRhqIAVBGGorAwCaOQMAIAFBIGohASAAQSBqIQAgA0EEaiIDDQALCwuFBQMFfwF7AX8CQAJAIAJBAXQiA0F8cSICDQBBACEEDAELIAJBf2pBAnZBAWoiBUEDcSEGAkACQCACQQ1PDQBBACEEDAELIAVB/P///wdxIgdBAnQhBEEAIQIDQCABIAJqIgX9DAAAAAAAAAAAAAAAAAAAAAAiCCAAIAJqIgn9AAIA/eUB/QsCACAFQRBqIAggCUEQav0AAgD95QH9CwIAIAVBIGogCCAJQSBq/QACAP3lAf0LAgAgBUEwaiAIIAlBMGr9AAIA/eUB/QsCACACQcAAaiECIAdBfGoiBw0ACwsgBkUNACAEIAZBAnRqIQkgACAEQQJ0IgVqIQIgASAFaiEFA0AgBf0MAAAAAAAAAAAAAAAAAAAAACAC/QACAP3lAf0LAgAgAkEQaiECIAVBEGohBSAGQX9qIgYNAAsgCSEECwJAIAMgBE0NAAJAIAMgBGsiBkEESQ0AIAEgAGtBEEkNACAAIARBAnQiBWohAiABIAVqIQUgBCAGQXxxIgdqIQQgByEJA0AgBSAC/QACAP3hAf0LAgAgAkEQaiECIAVBEGohBSAJQXxqIgkNAAsgBiAHRg0BCyAEIQYCQCADIARrQQNxIglFDQAgBCAJaiEGIAEgBEECdCIFaiECIAAgBWohBQNAIAIgBSoCAIw4AgAgAkEEaiECIAVBBGohBSAJQX9qIgkNAAsLIAQgA2tBfEsNACAGQQJ0IQkgBiADayEGA0AgASAJaiICIAAgCWoiBSoCAIw4AgAgAkEEaiAFQQRqKgIAjDgCACACQQhqIAVBCGoqAgCMOAIAIAJBDGogBUEMaioCAIw4AgAgAUEQaiEBIABBEGohACAGQQRqIgYNAAsLC9YEAQZ/AkACQCACQX5xIgMNAEEAIQQMAQsgA0F/akEBdkEBaiIFQQNxIQYCQAJAIANBB08NAEEAIQQMAQsgBUF8cSIHQQF0IQRBACEDA0AgASADaiIFIAAgA2oiCP0AAwD9wQH9CwMAIAVBEGogCEEQav0AAwD9wQH9CwMAIAVBIGogCEEgav0AAwD9wQH9CwMAIAVBMGogCEEwav0AAwD9wQH9CwMAIANBwABqIQMgB0F8aiIHDQALCyAGRQ0AIAQgBkEBdGohCCAAIARBA3QiBWohAyABIAVqIQUDQCAFIAP9AAMA/cEB/QsDACADQRBqIQMgBUEQaiEFIAZBf2oiBg0ACyAIIQQLAkAgAiAETQ0AAkAgAiAEayIGQQRJDQAgASAAa0EQSQ0AIAAgBEEDdCIFaiEDIAEgBWohBSAEIAZBfnEiB2ohBCAHIQgDQCAFIAP9AAMA/cEB/QsDACADQRBqIQMgBUEQaiEFIAhBfmoiCA0ACyAGIAdGDQELIAQhBgJAIAIgBGtBA3EiCEUNACAEIAhqIQYgASAEQQN0IgVqIQMgACAFaiEFA0AgA0IAIAUpAwB9NwMAIANBCGohAyAFQQhqIQUgCEF/aiIIDQALCyAEIAJrQXxLDQAgBkEDdCEIIAIgBmshBgNAIAEgCGoiA0IAIAAgCGoiBSkDAH03AwAgA0EIakIAIAVBCGopAwB9NwMAIANBEGpCACAFQRBqKQMAfTcDACADQRhqQgAgBUEYaikDAH03AwAgAUEgaiEBIABBIGohACAGQXxqIgYNAAsLC9oEAQZ/AkACQCACQXxxIgMNAEEAIQQMAQsgA0F/akECdkEBaiIFQQNxIQYCQAJAIANBDU8NAEEAIQQMAQsgBUH8////B3EiB0ECdCEEQQAhAwNAIAEgA2oiBSAAIANqIgj9AAIA/aEB/QsCACAFQRBqIAhBEGr9AAIA/aEB/QsCACAFQSBqIAhBIGr9AAIA/aEB/QsCACAFQTBqIAhBMGr9AAIA/aEB/QsCACADQcAAaiEDIAdBfGoiBw0ACwsgBkUNACAEIAZBAnRqIQggACAEQQJ0IgVqIQMgASAFaiEFA0AgBSAD/QACAP2hAf0LAgAgA0EQaiEDIAVBEGohBSAGQX9qIgYNAAsgCCEECwJAIAIgBE0NAAJAIAIgBGsiBkEESQ0AIAEgAGtBEEkNACAAIARBAnQiBWohAyABIAVqIQUgBCAGQXxxIgdqIQQgByEIA0AgBSAD/QACAP2hAf0LAgAgA0EQaiEDIAVBEGohBSAIQXxqIggNAAsgBiAHRg0BCyAEIQYCQCACIARrQQNxIghFDQAgBCAIaiEGIAEgBEECdCIFaiEDIAAgBWohBQNAIANBACAFKAIAazYCACADQQRqIQMgBUEEaiEFIAhBf2oiCA0ACwsgBCACa0F8Sw0AIAZBAnQhCCACIAZrIQYDQCABIAhqIgNBACAAIAhqIgUoAgBrNgIAIANBBGpBACAFQQRqKAIAazYCACADQQhqQQAgBUEIaigCAGs2AgAgA0EMakEAIAVBDGooAgBrNgIAIAFBEGohASAAQRBqIQAgBkF8aiIGDQALCwvaBAEGfwJAAkAgAkF4cSIDDQBBACEEDAELIANBf2pBA3ZBAWoiBUEDcSEGAkACQCADQRlPDQBBACEEDAELIAVB/P///wNxIgdBA3QhBEEAIQMDQCABIANqIgUgACADaiII/QABAP2BAf0LAQAgBUEQaiAIQRBq/QABAP2BAf0LAQAgBUEgaiAIQSBq/QABAP2BAf0LAQAgBUEwaiAIQTBq/QABAP2BAf0LAQAgA0HAAGohAyAHQXxqIgcNAAsLIAZFDQAgBCAGQQN0aiEIIAAgBEEBdCIFaiEDIAEgBWohBQNAIAUgA/0AAQD9gQH9CwEAIANBEGohAyAFQRBqIQUgBkF/aiIGDQALIAghBAsCQCACIARNDQACQCACIARrIgZBCEkNACABIABrQRBJDQAgACAEQQF0IgVqIQMgASAFaiEFIAQgBkF4cSIHaiEEIAchCANAIAUgA/0AAQD9gQH9CwEAIANBEGohAyAFQRBqIQUgCEF4aiIIDQALIAYgB0YNAQsgBCEGAkAgAiAEa0EDcSIIRQ0AIAQgCGohBiABIARBAXQiBWohAyAAIAVqIQUDQCADQQAgBS8BAGs7AQAgA0ECaiEDIAVBAmohBSAIQX9qIggNAAsLIAQgAmtBfEsNACAGQQF0IQggAiAGayEGA0AgASAIaiIDQQAgACAIaiIFLwEAazsBACADQQJqQQAgBUECai8BAGs7AQAgA0EEakEAIAVBBGovAQBrOwEAIANBBmpBACAFQQZqLwEAazsBACABQQhqIQEgAEEIaiEAIAZBfGoiBg0ACwsLhgQBBn8CQAJAIAJBcHEiAw0AQQAhAwwBCyADQX9qQQR2QQFqIgRBA3EhBQJAAkAgA0ExTw0AQQAhAwwBCyAEQfz///8BcSEGQQAhAwNAIAEgA2oiBCAAIANqIgf9AAAA/WH9CwAAIARBEGogB0EQav0AAAD9Yf0LAAAgBEEgaiAHQSBq/QAAAP1h/QsAACAEQTBqIAdBMGr9AAAA/WH9CwAAIANBwABqIQMgBkF8aiIGDQALCyAFRQ0AA0AgASADaiAAIANq/QAAAP1h/QsAACADQRBqIQMgBUF/aiIFDQALCwJAIAIgA00NAAJAIAIgA2siBkEQSQ0AIAEgAGtBEEkNACAAIANqIQQgASADaiEHIAMgBkFwcSIIaiEDIAghBQNAIAcgBP0AAAD9Yf0LAAAgBEEQaiEEIAdBEGohByAFQXBqIgUNAAsgBiAIRg0BCyADIQQCQCACIANrQQNxIgdFDQAgAyEEA0AgASAEakEAIAAgBGotAABrOgAAIARBAWohBCAHQX9qIgcNAAsLIAMgAmtBfEsNAANAIAEgBGoiA0EAIAAgBGoiBy0AAGs6AAAgA0EBakEAIAdBAWotAABrOgAAIANBAmpBACAHQQJqLQAAazoAACADQQNqQQAgB0EDai0AAGs6AAAgAUEEaiEBIABBBGohACAEIAJBfGoiAkcNAAsLCw==",Kt=null;function $r(){if(Kt)return Kt;let A=atob(Z8),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Kt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Kt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Kt}function Q0(A,r,I){$r().exports.neg_f64(A,r,I)}function C0(A,r,I){$r().exports.neg_f32(A,r,I)}function a0(A,r,I){$r().exports.neg_c128(A,r,I)}function B0(A,r,I){$r().exports.neg_c64(A,r,I)}function bB(A,r,I){$r().exports.neg_i64(A,r,I)}function pB(A,r,I){$r().exports.neg_i32(A,r,I)}function NB(A,r,I){$r().exports.neg_i16(A,r,I)}function FB(A,r,I){$r().exports.neg_i8(A,r,I)}var z8=64,j8={float64:Q0,float32:C0,int64:bB,uint64:bB,int32:pB,uint32:pB,int16:NB,uint16:NB,int8:FB,uint8:FB,complex128:a0,complex64:B0},$8={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},A3={complex128:2,complex64:2};function s0(A){if(!A.isCContiguous)return null;let r=A.size;if(r<z8*K.thresholdMultiplier)return null;let I=A.dtype,t=j8[I],o=$8[I];if(!t||!o)return null;let e=A3[I]??1,g=o.BYTES_PER_ELEMENT,i=r*e,n=i*g,Q=i*g;x(n+Q),U();let C=A.offset*e,a=A.data.subarray(C,C+i),B=R(a),s=H(Q);t(B,s,r);let E=_(s,i,o);return d.fromData(E,Array.from(A.shape),I)}var r3="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",vt=null;function YI(){if(vt)return vt;let A=atob(r3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);vt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=vt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),vt}function E0(A,r,I){YI().exports.abs_f64(A,r,I)}function u0(A,r,I){YI().exports.abs_f32(A,r,I)}function c0(A,r,I){YI().exports.abs_i64(A,r,I)}function D0(A,r,I){YI().exports.abs_i32(A,r,I)}function f0(A,r,I){YI().exports.abs_i16(A,r,I)}function y0(A,r,I){YI().exports.abs_i8(A,r,I)}var I3=64,t3={float64:E0,float32:u0,int64:c0,int32:D0,int16:f0,int8:y0},m0={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function l0(A){if(!A.isCContiguous)return null;let r=A.size;if(r<I3*K.thresholdMultiplier)return null;let I=A.dtype;if(I==="uint8"||I==="uint16"||I==="uint32"||I==="uint64"){let s=m0[I],E=A.offset,u=A.data.subarray(E,E+r),D=new s(u);return d.fromData(D,Array.from(A.shape),I)}let t=t3[I],o=m0[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT,g=r*e,i=r*e;x(g+i),U();let n=A.offset,Q=A.data.subarray(n,n+r),C=R(Q),a=H(i);t(C,a,r);let B=_(a,r,o);return d.fromData(B,Array.from(A.shape),I)}var o3="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",Xt=null;function PI(){if(Xt)return Xt;let A=atob(o3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Xt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Xt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Xt}function h0(A,r,I){PI().exports.sign_f64(A,r,I)}function w0(A,r,I){PI().exports.sign_f32(A,r,I)}function d0(A,r,I){PI().exports.sign_i64(A,r,I)}function b0(A,r,I){PI().exports.sign_i32(A,r,I)}function p0(A,r,I){PI().exports.sign_i16(A,r,I)}function N0(A,r,I){PI().exports.sign_i8(A,r,I)}var e3=64,g3={float64:h0,float32:w0,int64:d0,int32:b0,int16:p0,int8:N0},i3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function F0(A){if(!A.isCContiguous)return null;let r=A.size;if(r<e3*K.thresholdMultiplier)return null;let I=A.dtype,t=g3[I],o=i3[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT,g=r*e,i=r*e;x(g+i),U();let n=A.offset,Q=A.data.subarray(n,n+r),C=R(Q),a=H(i);t(C,a,r);let B=_(a,r,o);return d.fromData(B,Array.from(A.shape),I)}var n3="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",Tt=null;function qA(){if(Tt)return Tt;let A=atob(n3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Tt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Tt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Tt}function G0(A,r,I,t){qA().exports.min_f64(A,r,I,t)}function S0(A,r,I,t){qA().exports.min_scalar_f64(A,r,I,t)}function GB(A,r,I,t){qA().exports.min_f32(A,r,I,t)}function SB(A,r,I,t){qA().exports.min_scalar_f32(A,r,I,t)}function R0(A,r,I,t){qA().exports.min_i64(A,r,I,t)}function k0(A,r,I,t){qA().exports.min_scalar_i64(A,r,I,BigInt(Math.round(t)))}function q0(A,r,I,t){qA().exports.min_u64(A,r,I,t)}function M0(A,r,I,t){qA().exports.min_scalar_u64(A,r,I,BigInt(Math.round(t)))}function J0(A,r,I,t){qA().exports.min_i32(A,r,I,t)}function x0(A,r,I,t){qA().exports.min_scalar_i32(A,r,I,t)}function U0(A,r,I,t){qA().exports.min_u32(A,r,I,t)}function L0(A,r,I,t){qA().exports.min_scalar_u32(A,r,I,t)}function H0(A,r,I,t){qA().exports.min_i16(A,r,I,t)}function Y0(A,r,I,t){qA().exports.min_scalar_i16(A,r,I,t)}function P0(A,r,I,t){qA().exports.min_u16(A,r,I,t)}function _0(A,r,I,t){qA().exports.min_scalar_u16(A,r,I,t)}function K0(A,r,I,t){qA().exports.min_i8(A,r,I,t)}function v0(A,r,I,t){qA().exports.min_scalar_i8(A,r,I,t)}function X0(A,r,I,t){qA().exports.min_u8(A,r,I,t)}function T0(A,r,I,t){qA().exports.min_scalar_u8(A,r,I,t)}var O0=64,Q3={float64:G0,float32:GB,int64:R0,uint64:q0,int32:J0,uint32:U0,int16:H0,uint16:P0,int8:K0,uint8:X0,float16:GB},C3={float64:S0,float32:SB,int64:k0,uint64:M0,int32:x0,uint32:L0,int16:Y0,uint16:_0,int8:v0,uint8:T0,float16:SB},V0={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function RB(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<O0*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=Q3[t],e=V0[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT;x(I*g*3),U();let i=t,n=R(AA(A.data.subarray(A.offset,A.offset+I),A.dtype)),Q=R(AA(r.data.subarray(r.offset,r.offset+I),r.dtype)),C=H(I*g);o(n,Q,C,I);let a=_(C,I,e),B=eA(a,i);return d.fromData(B,Array.from(A.shape),i)}function Ot(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<O0*K.thresholdMultiplier)return null;let t=A.dtype,o=C3[t],e=V0[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT;x(I*g*2),U();let i=R(AA(A.data.subarray(A.offset,A.offset+I),t)),n=H(I*g);o(i,n,I,r);let Q=_(n,I,e),C=eA(Q,t);return d.fromData(C,Array.from(A.shape),t)}var a3="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",Vt=null;function MA(){if(Vt)return Vt;let A=atob(a3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Vt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Vt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Vt}function W0(A,r,I,t){MA().exports.max_f64(A,r,I,t)}function Z0(A,r,I,t){MA().exports.max_scalar_f64(A,r,I,t)}function kB(A,r,I,t){MA().exports.max_f32(A,r,I,t)}function qB(A,r,I,t){MA().exports.max_scalar_f32(A,r,I,t)}function z0(A,r,I,t){MA().exports.max_i64(A,r,I,t)}function j0(A,r,I,t){MA().exports.max_scalar_i64(A,r,I,BigInt(Math.round(t)))}function $0(A,r,I,t){MA().exports.max_u64(A,r,I,t)}function Ah(A,r,I,t){MA().exports.max_scalar_u64(A,r,I,BigInt(Math.round(t)))}function rh(A,r,I,t){MA().exports.max_i32(A,r,I,t)}function Ih(A,r,I,t){MA().exports.max_scalar_i32(A,r,I,t)}function th(A,r,I,t){MA().exports.max_u32(A,r,I,t)}function oh(A,r,I,t){MA().exports.max_scalar_u32(A,r,I,t)}function eh(A,r,I,t){MA().exports.max_i16(A,r,I,t)}function gh(A,r,I,t){MA().exports.max_scalar_i16(A,r,I,t)}function ih(A,r,I,t){MA().exports.max_u16(A,r,I,t)}function nh(A,r,I,t){MA().exports.max_scalar_u16(A,r,I,t)}function Qh(A,r,I,t){MA().exports.max_i8(A,r,I,t)}function Ch(A,r,I,t){MA().exports.max_scalar_i8(A,r,I,t)}function ah(A,r,I,t){MA().exports.max_u8(A,r,I,t)}function Bh(A,r,I,t){MA().exports.max_scalar_u8(A,r,I,t)}var sh=64,B3={float64:W0,float32:kB,int64:z0,uint64:$0,int32:rh,uint32:th,int16:eh,uint16:ih,int8:Qh,uint8:ah,float16:kB},s3={float64:Z0,float32:qB,int64:j0,uint64:Ah,int32:Ih,uint32:oh,int16:gh,uint16:nh,int8:Ch,uint8:Bh,float16:qB},Eh={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function MB(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<sh*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=B3[t],e=Eh[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT;x(I*g*3),U();let i=t,n=R(AA(A.data.subarray(A.offset,A.offset+I),A.dtype)),Q=R(AA(r.data.subarray(r.offset,r.offset+I),r.dtype)),C=H(I*g);o(n,Q,C,I);let a=_(C,I,e),B=eA(a,i);return d.fromData(B,Array.from(A.shape),i)}function Wt(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<sh*K.thresholdMultiplier)return null;let t=A.dtype,o=s3[t],e=Eh[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT;x(I*g*2),U();let i=R(AA(A.data.subarray(A.offset,A.offset+I),t)),n=H(I*g);o(i,n,I,r);let Q=_(n,I,e),C=eA(Q,t);return d.fromData(C,Array.from(A.shape),t)}var E3="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",Zt=null;function Nr(){if(Zt)return Zt;let A=atob(E3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Zt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Zt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Zt}function uh(A,r,I,t,o){Nr().exports.clip_f64(A,r,I,t,o)}function JB(A,r,I,t,o){Nr().exports.clip_f32(A,r,I,t,o)}function ch(A,r,I,t,o){Nr().exports.clip_i64(A,r,I,BigInt(Math.round(t)),BigInt(Math.round(o)))}function Dh(A,r,I,t,o){Nr().exports.clip_u64(A,r,I,BigInt(Math.round(t)),BigInt(Math.round(o)))}function fh(A,r,I,t,o){Nr().exports.clip_i32(A,r,I,t,o)}function yh(A,r,I,t,o){Nr().exports.clip_u32(A,r,I,t,o)}function mh(A,r,I,t,o){Nr().exports.clip_i16(A,r,I,t,o)}function lh(A,r,I,t,o){Nr().exports.clip_u16(A,r,I,t,o)}function hh(A,r,I,t,o){Nr().exports.clip_i8(A,r,I,t,o)}function wh(A,r,I,t,o){Nr().exports.clip_u8(A,r,I,t,o)}var u3=64,c3={float64:uh,float32:JB,int64:ch,uint64:Dh,int32:fh,uint32:yh,int16:mh,uint16:lh,int8:hh,uint8:wh,float16:JB},D3={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function dh(A,r,I){if(!A.isCContiguous)return null;let t=A.size;if(t<u3*K.thresholdMultiplier)return null;let o=A.dtype,e=c3[o],g=D3[o];if(!e||!g)return null;let i=g.BYTES_PER_ELEMENT;x(t*i*2),U();let n=R(AA(A.data.subarray(A.offset,A.offset+t),o)),Q=H(t*i);e(n,Q,t,r,I);let C=_(Q,t,g),a=eA(C,o);return d.fromData(a,Array.from(A.shape),o)}var f3="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",zt=null;function AI(){if(zt)return zt;let A=atob(f3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);zt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=zt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),zt}function bh(A,r,I){AI().exports.square_f64(A,r,I)}function ph(A,r,I){AI().exports.square_f32(A,r,I)}function Nh(A,r,I){AI().exports.square_c128(A,r,I)}function Fh(A,r,I){AI().exports.square_c64(A,r,I)}function xB(A,r,I){AI().exports.square_i64(A,r,I)}function UB(A,r,I){AI().exports.square_i32(A,r,I)}function LB(A,r,I){AI().exports.square_i16(A,r,I)}function HB(A,r,I){AI().exports.square_i8(A,r,I)}var y3=64,m3={float64:bh,float32:ph,complex128:Nh,complex64:Fh,int64:xB,uint64:xB,int32:UB,uint32:UB,int16:LB,uint16:LB,int8:HB,uint8:HB},l3={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Gh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<y3*K.thresholdMultiplier)return null;let I=A.dtype,t=m3[I],o=l3[I];if(!t||!o)return null;let e=k(I)?2:1,g=o.BYTES_PER_ELEMENT,i=r*e;x(i*g*2),U();let n=R(A.data.subarray(A.offset*e,(A.offset+r)*e)),Q=H(i*g);t(n,Q,r);let C=_(Q,i,o);return d.fromData(C,Array.from(A.shape),I)}var h3="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",jt=null;function _I(){if(jt)return jt;let A=atob(h3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);jt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=jt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),jt}function Sh(A,r,I){_I().exports.reciprocal_f64(A,r,I)}function Rh(A,r,I){_I().exports.reciprocal_f32(A,r,I)}function YB(A,r,I){_I().exports.reciprocal_i64_f64(A,r,I)}function PB(A,r,I){_I().exports.reciprocal_i32_f64(A,r,I)}function _B(A,r,I){_I().exports.reciprocal_i16_f64(A,r,I)}function KB(A,r,I){_I().exports.reciprocal_i8_f64(A,r,I)}var w3=64,d3={float64:Sh,float32:Rh},b3={int64:YB,uint64:YB,int32:PB,uint32:PB,int16:_B,uint16:_B,int8:KB,uint8:KB},kh={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function qh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<w3*K.thresholdMultiplier)return null;let I=A.dtype,t=d3[I];if(t){let C=kh[I],a=C.BYTES_PER_ELEMENT;x(r*a*2),U();let B=R(A.data.subarray(A.offset,A.offset+r)),s=H(r*a);t(B,s,r);let E=_(s,r,C);return d.fromData(E,Array.from(A.shape),I)}let o=b3[I],e=kh[I];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT;x(r*g+r*8),U();let i=R(A.data.subarray(A.offset,A.offset+r)),n=H(r*8);o(i,n,r);let Q=_(n,r,Float64Array);return d.fromData(Q,Array.from(A.shape),"float64")}var p3="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",$t=null;function Gn(){if($t)return $t;let A=atob(p3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);$t=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=$t.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),$t}function Mh(A,r,I,t){Gn().exports.heaviside_scalar_f64(A,r,I,t)}function vB(A,r,I,t){Gn().exports.heaviside_scalar_f32(A,r,I,t)}function Jh(A,r,I,t){Gn().exports.heaviside_f64(A,r,I,t)}function XB(A,r,I,t){Gn().exports.heaviside_f32(A,r,I,t)}var xh=64,N3={float64:Mh,float32:vB,float16:vB},F3={float64:Jh,float32:XB,float16:XB},Uh={float64:Float64Array,float32:Float32Array,float16:Float32Array};function Lh(A,r,I){if(!A.isCContiguous)return null;let t=A.size;if(t<xh*K.thresholdMultiplier)return null;let o=N3[I],e=Uh[I];if(!o||!e)return null;let g=I==="float16",i=e.BYTES_PER_ELEMENT;x(t*i*2),U();let n=g?AA(A.data.subarray(A.offset,A.offset+t),I):A.data.subarray(A.offset,A.offset+t),Q=R(n),C=H(t*i);o(Q,C,t,r);let a=_(C,t,e);return g&&(a=eA(a,I)),d.fromData(a,Array.from(A.shape),I)}function Hh(A,r,I){if(!A.isCContiguous||!r.isCContiguous)return null;let t=A.size;if(t<xh*K.thresholdMultiplier)return null;let o=F3[I],e=Uh[I];if(!o||!e)return null;let g=I==="float16",i=e.BYTES_PER_ELEMENT;x(t*i*3),U();let n=g?AA(A.data.subarray(A.offset,A.offset+t),I):A.data.subarray(A.offset,A.offset+t),Q=g?AA(r.data.subarray(r.offset,r.offset+t),I):r.data.subarray(r.offset,r.offset+t),C=R(n),a=R(Q),B=H(t*i);o(C,a,B,t);let s=_(B,t,e);return g&&(s=eA(s,I)),d.fromData(s,Array.from(A.shape),I)}var G3="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IAO+DwsgBEEASkEXdCACQf///wNxckEAIAFrIgNBASABIARqayIBIAMgAUgbQX9qIgF2QQFqQQF2IAJoIAFBH3FGQX9zcb4gAJghAAsgAA8LIAFBF3QgAmq+C6ECAQR/AkACQCAAIABcDQAgALwiAkH/////B3FBgICA/AdPDQAgAkGAgICAeHEhA0EIIAJBAXQiBGdrIARBGHYgBEGAgIAISRshBAJAIAFBAEgNAAJAIAFB/gEgBGtMDQBDAACAfyAAmA8LAkAgBCABaiIFQQBKDQAgAiABdCADcr4PCwJAIARBAEoNACACQQEgBGt0Qf///wNxIAVBF3RyIANyvg8LIAFBF3QgAmq+DwsgAUEAIARrSg0BAkAgAUFpIARrTg0AIAO+DwsgBEEASkEXdCACQf///wNxckEAIAFrIgNBASABIARqayIBIAMgAUgbQX9qIgF2QQFqQQF2IAJoIAFBH3FGQX9zcb4gAJghAAsgAA8LIAFBF3QgAmq+C84CAgN+An8CQAJAIAAgAGINACAAvSICQv///////////wCDQoCAgICAgID4/wBaDQAgAkKAgICAgICAgIB/gyEDQQsgAkIBhiIEeadrIARCNYinIARCgICAgICAgBBUGyEFAkAgAUEASA0AAkAgAUH+DyAFa0wNAEQAAAAAAADwfyAApg8LAkAgBSABaiIGQQBKDQAgAiABrYYgA4S/DwsCQCAFQQBKDQAgAkEBIAVrrYZC/////////weDIAatQjSGhCADhL8PCyABrUI0hiACfL8PC0EAIAFrIQYgAUEAIAVrSg0BAkAgAUFMIAVrTg0AIAO/DwsgBUEASq1CNIYgAkL/////////B4OEIAZBASABIAVqayIBIAYgAUgbQX9qQT9xrSIEiEIBfEIBiCACeiAEUa1Cf4WDvyAApiEACyAADwsgAiAGrUI0hn2/C9cCAgN/A30CQAJAIAAgAFwNACAAvCIBQR92IQICQAJAAkACQAJAAkACQCABQf////8HcSIDQc/YupUESw0AIANBmOTF9QNNDQEgA0GSq5T8A00NAgwECyADQYCAgPwHSw0GAkAgAUEASA0AIANBmOTFlQRJDQAgAEMAAAB/lA8LIAFBf0oNA0MAAAAAIQQgA0G047+WBEsNBwwDCyADQYCAgMgDTQ0BQQAhA0MAAAAAIQUgACEEDAQLIAJBAXMgAmshAwwCCyAAQwAAgD+SDwsgAEM7qrg/lCACQQJ0QYCAwIAAaioCAJL8ACEDCyAAIAOyIgRDAHIxv5SSIgAgBEOOvr81lCIFkyEECyAAIAQgBCAEIASUIgYgBkMVUjW7lEOPqio+kpSTIgaUQwAAAEAgBpOVIAWTkkMAAIA/kiEEIANFDQEgBCADEISAgIAADwsgACEECyAEC68DAwF+AX8DfAJAIAAgAGINACAAvSIBQj+IpyECAkACQAJAAkACQAJAAkAgAUIgiEL/////B4MiAUKqxpiEBFYNACABQsLc2P4DWA0BIAFCssXC/wNYDQIMBAsgAUKAgMD/B1YNBgJAIABE7zn6/kIuhkBkRQ0ARAAAAAAAAPB/DwsgAETSvHrdKyOGwGNFDQMgAERRMC3VEEmHwGNFDQNEAAAAAAAAAAAPCyABQoCAwPEDWA0BQQAhAkQAAAAAAAAAACEDIAAhBAwECyACQQFzIAJrIQIMAgsgAEQAAAAAAADwP6AhAAwDCyAARP6CK2VHFfc/oiACQQN0QYiAwIAAaisDAKD8AiECCyAAIAK3IgREAADg/kIu5r+ioCIAIAREdjx5Ne856j2iIgOhIQQLIAAgBCAEIAQgBKIiBSAFIAUgBSAFRNCkvnJpN2Y+okTxa9LFQb27vqCiRCzeJa9qVhE/oKJEk72+FmzBZr+gokQ+VVVVVVXFP6CioSIFokQAAAAAAAAAQCAFoaMgA6GgRAAAAAAAAPA/oCEAIAJFDQAgACACEIWAgIAADwsgAAsLIQEAQYCAwAALGAAAAD8AAAC/AAAAAAAA4D8AAAAAAADgvw==",Ao=null;function Yh(){if(Ao)return Ao;let A=atob(G3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ao=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ao.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ao}function Ph(A,r,I,t){Yh().exports.ldexp_scalar_f64(A,r,I,t)}function TB(A,r,I,t){Yh().exports.ldexp_scalar_f32(A,r,I,t)}var S3=64,R3={float64:Ph,float32:TB,float16:TB},k3={float64:Float64Array,float32:Float32Array,float16:Float32Array};function _h(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<S3*K.thresholdMultiplier)return null;let t=A.dtype,o=R3[t],e=k3[t];if(!o||!e)return null;let g=t==="float16",i=e.BYTES_PER_ELEMENT;x(I*i*2),U();let n=g?AA(A.data.subarray(A.offset,A.offset+I),t):A.data.subarray(A.offset,A.offset+I),Q=R(n),C=H(I*i);o(Q,C,I,r);let a=_(C,I,e);return g&&(a=eA(a,t)),d.fromData(a,Array.from(A.shape),t)}var q3="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAgEABgkBfwFBgIDAAAsHDQEJZnJleHBfZjY0AAAKqgIBpwIDAXwBfgJ/AkAgA0UNAANAAkACQAJAIAArAwAiBEQAAAAAAAAAAGENACAEvSIFQv///////////wCDQoCAgICAgID4/wBUDQELIAEgBDkDAEEAIQYMAQtBACEGAkACQCAFQjSIp0H/D3EiB0H/D0YNACAHDQEgBUL/////////B4NQDQAgBUKAgICAgICAgIB/gyAFIAVCDIZ5pyIGQQFqrYZC/////////weDQgAgBkE/cUEzSRuEQoCAgICAgIDwP4QhBUGCeCAGayEGCyABIAU3AwAMAQsgB0GCeGohBiABIAVC/////////4eAf4NCgICAgICAgPA/hDcDAAsgAiAGNgIAIABBCGohACABQQhqIQEgAkEEaiECIANBf2oiAw0ACwsL",ro=null;function M3(){if(ro)return ro;let A=atob(q3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ro=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ro.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ro}function Kh(A,r,I,t){M3().exports.frexp_f64(A,r,I,t)}var J3=64;function vh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<J3*K.thresholdMultiplier)return null;let I=A.dtype;if(I!=="float64"&&I!=="float32"&&I!=="float16")return null;let t=8,o=4;x(r*t+r*t+r*o),U();let e;if(I==="float16"){let s=AA(A.data.subarray(A.offset,A.offset+r),I),E=new Float64Array(r);for(let u=0;u<r;u++)E[u]=s[u];e=E}else if(I==="float32"){let s=A.data.subarray(A.offset,A.offset+r),E=new Float64Array(r);for(let u=0;u<r;u++)E[u]=s[u];e=E}else e=A.data.subarray(A.offset,A.offset+r);let g=R(e),i=H(r*t),n=H(r*o);Kh(g,i,n,r);let Q=_(i,r,Float64Array),C=_(n,r,Int32Array),a=d.fromData(Q,Array.from(A.shape),"float64"),B=d.fromData(C,Array.from(A.shape),"int32");return[a,B]}var x3="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAAYJAX8BQYCAwAALBxwCDmdjZF9zY2FsYXJfaTMyAAAHZ2NkX2kzMgABCvsDAvYCAQV/AkAgAkUNAAJAIANFDQAgAyADQR91IgRzIARrIQVBACEGA0AgACAGQQJ0IgdqKAIAIgMgA0EfdSIDcyADayEEIAUhAwNAIAQgAyIIcCEDIAghBCADDQALIAEgB2ogCDYCACAGQQFqIgYgAkcNAAwCCwtBACEGAkAgAkEESQ0AIAEgAGtBEEkNACACQXxxIgYhCCABIQMgACEEA0AgAyAE/QACAP2gAf0LAgAgA0EQaiEDIARBEGohBCAIQXxqIggNAAsgAiAGRg0BCyAGQQFyIQMCQCACQQFxRQ0AIAEgBkECdCIEaiAAIARqKAIAIgQgBEEfdSIEcyAEazYCACADIQYLIAIgA0YNACACIAZrIQggACAGQQJ0IgRqIQMgASAEaiEEA0AgBCADKAIAIgYgBkEfdSIGcyAGazYCACAEQQRqIANBBGooAgAiBiAGQR91IgZzIAZrNgIAIANBCGohAyAEQQhqIQQgCEF+aiIIDQALCwuAAQEFfwJAIANFDQBBACEEA0AgACAEQQJ0IgVqKAIAIgYgBkEfdSIGcyAGayEHAkACQCABIAVqKAIAIgYNACAHIQgMAQsgBiAGQR91IghzIAhrIQYDQCAHIAYiCHAhBiAIIQcgBg0ACwsgAiAFaiAINgIAIARBAWoiBCADRw0ACwsL",Io=null;function Xh(){if(Io)return Io;let A=atob(x3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Io=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Io.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Io}function Th(A,r,I,t){Xh().exports.gcd_scalar_i32(A,r,I,t)}function Oh(A,r,I,t){Xh().exports.gcd_i32(A,r,I,t)}var Vh=64;function OB(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Vh*K.thresholdMultiplier)return null;let t=A.dtype;if(t!=="int32"&&t!=="int16"&&t!=="int8"&&t!=="uint16"&&t!=="uint8")return null;let o=4;x(I*o*2),U();let e=A.data.subarray(A.offset,A.offset+I),g=new Int32Array(I);for(let C=0;C<I;C++)g[C]=Number(e[C]);let i=R(g),n=H(I*o);Th(i,n,I,Math.abs(Math.trunc(r)));let Q=_(n,I,Int32Array);return d.fromData(Q,Array.from(A.shape),"int32")}function Wh(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Vh*K.thresholdMultiplier)return null;let t=A.dtype,o=r.dtype,e=["int32","int16","int8","uint16","uint8"];if(!e.includes(t)||!e.includes(o))return null;let g=4;x(I*g*3),U();let i=A.data.subarray(A.offset,A.offset+I),n=r.data.subarray(r.offset,r.offset+I),Q=new Int32Array(I),C=new Int32Array(I);for(let u=0;u<I;u++)Q[u]=Number(i[u]),C[u]=Number(n[u]);let a=R(Q),B=R(C),s=H(I*g);Oh(a,B,s,I);let E=_(s,I,Int32Array);return d.fromData(E,Array.from(A.shape),"int32")}function lr(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,t)=>I===r.shape[t])}function er(A,r){return[A[r*2],A[r*2+1]]}function $A(A,r,I,t){A[r*2]=I,A[r*2+1]=t}function Aw(A,r){if(typeof r=="number")return Zh(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return Zh(A,I)}if(lr(A,r)){let I=al(A,r);return I||U3(A,r)}return pA(A,r,(I,t)=>I+t,"add")}function U3(A,r){let I=tA(A.dtype,r.dtype),t=d.zeros(Array.from(A.shape),I),o=A.size,e=A.data,g=r.data,i=t.data,n=A.offset,Q=r.offset;if(k(I)){let C=i,a=k(A.dtype),B=k(r.dtype);for(let s=0;s<o;s++){let[E,u]=a?er(e,n+s):[Number(e[n+s]),0],[D,y]=B?er(g,Q+s):[Number(g[Q+s]),0];$A(C,s,E+D,u+y)}return t}if(P(I)){let C=i;if(!P(A.dtype)||!P(r.dtype))for(let B=0;B<o;B++){let s=typeof e[n+B]=="bigint"?e[n+B]:BigInt(Math.round(Number(e[n+B]))),E=typeof g[Q+B]=="bigint"?g[Q+B]:BigInt(Math.round(Number(g[Q+B])));C[B]=s+E}else{let B=e,s=g;for(let E=0;E<o;E++)C[E]=B[n+E]+s[Q+E]}}else if(P(A.dtype)||P(r.dtype))for(let a=0;a<o;a++){let B=typeof e[n+a]=="bigint"?Number(e[n+a]):e[n+a],s=typeof g[Q+a]=="bigint"?Number(g[Q+a]):g[Q+a];i[a]=B+s}else if(n===0&&Q===0)for(let a=0;a<o;a++)i[a]=e[a]+g[a];else for(let a=0;a<o;a++)i[a]=e[n+a]+g[Q+a];return t}function rw(A,r){if(typeof r=="number")return zh(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return zh(A,I)}if(lr(A,r)){let I=dl(A,r);return I||L3(A,r)}return pA(A,r,(I,t)=>I-t,"subtract")}function L3(A,r){let I=tA(A.dtype,r.dtype),t=d.zeros(Array.from(A.shape),I),o=A.size,e=A.data,g=r.data,i=t.data,n=A.offset,Q=r.offset;if(k(I)){let C=i,a=k(A.dtype),B=k(r.dtype);for(let s=0;s<o;s++){let[E,u]=a?er(e,n+s):[Number(e[n+s]),0],[D,y]=B?er(g,Q+s):[Number(g[Q+s]),0];$A(C,s,E-D,u-y)}return t}if(P(I)){let C=i;if(!P(A.dtype)||!P(r.dtype))for(let B=0;B<o;B++){let s=typeof e[n+B]=="bigint"?e[n+B]:BigInt(Math.round(Number(e[n+B]))),E=typeof g[Q+B]=="bigint"?g[Q+B]:BigInt(Math.round(Number(g[Q+B])));C[B]=s-E}else{let B=e,s=g;for(let E=0;E<o;E++)C[E]=B[n+E]-s[Q+E]}}else if(P(A.dtype)||P(r.dtype))for(let a=0;a<o;a++){let B=typeof e[n+a]=="bigint"?Number(e[n+a]):e[n+a],s=typeof g[Q+a]=="bigint"?Number(g[Q+a]):g[Q+a];i[a]=B-s}else if(n===0&&Q===0)for(let a=0;a<o;a++)i[a]=e[a]-g[a];else for(let a=0;a<o;a++)i[a]=e[n+a]-g[Q+a];return t}function Iw(A,r){if(typeof r=="number")return jh(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return jh(A,I)}if(lr(A,r)){let I=Ul(A,r);return I||H3(A,r)}return pA(A,r,(I,t)=>I*t,"multiply")}function H3(A,r){let I=tA(A.dtype,r.dtype),t=d.zeros(Array.from(A.shape),I),o=A.size,e=A.data,g=r.data,i=t.data,n=A.offset,Q=r.offset;if(k(I)){let C=i,a=k(A.dtype),B=k(r.dtype);for(let s=0;s<o;s++){let[E,u]=a?er(e,n+s):[Number(e[n+s]),0],[D,y]=B?er(g,Q+s):[Number(g[Q+s]),0],f=E*D-u*y,c=E*y+u*D;$A(C,s,f,c)}return t}if(P(I)){let C=i;if(!P(A.dtype)||!P(r.dtype))for(let B=0;B<o;B++){let s=typeof e[n+B]=="bigint"?e[n+B]:BigInt(Math.round(Number(e[n+B]))),E=typeof g[Q+B]=="bigint"?g[Q+B]:BigInt(Math.round(Number(g[Q+B])));C[B]=s*E}else{let B=e,s=g;for(let E=0;E<o;E++)C[E]=B[n+E]*s[Q+E]}}else if(P(A.dtype)||P(r.dtype))for(let a=0;a<o;a++){let B=typeof e[n+a]=="bigint"?Number(e[n+a]):e[n+a],s=typeof g[Q+a]=="bigint"?Number(g[Q+a]):g[Q+a];i[a]=B*s}else if(n===0&&Q===0)for(let a=0;a<o;a++)i[a]=e[a]*g[a];else for(let a=0;a<o;a++)i[a]=e[n+a]*g[Q+a];return t}function tw(A,r){if(typeof r=="number")return $h(A,r);if(r.size===1&&!k(r.dtype)&&!k(A.dtype)){let a=Number(r.iget(0));return $h(A,a)}let I=k(A.dtype),t=k(r.dtype);if(I||t){let a=tA(A.dtype,r.dtype);if(I&&t&&A.dtype===r.dtype&&lr(A,r)){let c=Fn(A,r);if(c)return c}let B=d.zeros(Array.from(A.shape),a),s=B.data,E=A.size,u=A.data,D=r.data,y=A.offset,f=r.offset;for(let c=0;c<E;c++){let[m,l]=I?er(u,y+c):[Number(u[y+c]),0],[w,h]=t?er(D,f+c):[Number(D[f+c]),0],b=w*w+h*h,p=(m*w+l*h)/b,N=(l*w-m*h)/b;$A(s,c,p,N)}return B}if(A.dtype===r.dtype&&lr(A,r)){let a=Fn(A,r);if(a)return a}let o=A.dtype==="float64",e=r.dtype==="float64",g=A.dtype==="float32",i=r.dtype==="float32",n;g&&i||(g||i)&&!o&&!e?n="float32":n="float64";let Q=A.dtype===n?A:KI(A,n),C=r.dtype===n?r:KI(r,n);if(lr(Q,C)){let a=Fn(Q,C);if(a)return a}return pA(Q,C,(a,B)=>a/B,"divide")}function KI(A,r){let I=d.zeros(Array.from(A.shape),r),t=A.size,o=I.data;if(A.isCContiguous){let e=A.data,g=A.offset;for(let i=0;i<t;i++)o[i]=Number(e[g+i])}else for(let e=0;e<t;e++)o[e]=Number(A.iget(e));return I}function Zh(A,r){let I=Bl(A,r);if(I)return I;let t=A.dtype,o=Array.from(A.shape),e=A.data,g=A.size,i=A.offset,n=A.isCContiguous,Q=d.zeros(o,t),C=Q.data;if(k(t)){let a=e,B=C;if(n)for(let s=0;s<g;s++){let[E,u]=er(a,i+s);$A(B,s,E+r,u)}else for(let s=0;s<g;s++){let E=A.iget(s),u=E.re??Number(E),D=E.im??0;$A(B,s,u+r,D)}}else if(P(t)){let a=C,B=BigInt(Math.round(r));if(n){let s=e;for(let E=0;E<g;E++)a[E]=s[i+E]+B}else for(let s=0;s<g;s++)a[s]=A.iget(s)+B}else if(n)if(i===0)for(let a=0;a<g;a++)C[a]=Number(e[a])+r;else for(let a=0;a<g;a++)C[a]=Number(e[i+a])+r;else for(let a=0;a<g;a++)C[a]=Number(A.iget(a))+r;return Q}function zh(A,r){let I=bl(A,r);if(I)return I;let t=A.dtype,o=Array.from(A.shape),e=A.data,g=A.size,i=A.offset,n=A.isCContiguous,Q=d.zeros(o,t),C=Q.data;if(k(t)){let a=e,B=C;if(n)for(let s=0;s<g;s++){let[E,u]=er(a,i+s);$A(B,s,E-r,u)}else for(let s=0;s<g;s++){let E=A.iget(s),u=E.re??Number(E),D=E.im??0;$A(B,s,u-r,D)}}else if(P(t)){let a=C,B=BigInt(Math.round(r));if(n){let s=e;for(let E=0;E<g;E++)a[E]=s[i+E]-B}else for(let s=0;s<g;s++)a[s]=A.iget(s)-B}else if(n)for(let a=0;a<g;a++)C[a]=Number(e[i+a])-r;else for(let a=0;a<g;a++)C[a]=Number(A.iget(a))-r;return Q}function jh(A,r){let I=Ll(A,r);if(I)return I;let t=A.dtype,o=Array.from(A.shape),e=A.data,g=A.size,i=A.offset,n=A.isCContiguous,Q=d.zeros(o,t),C=Q.data;if(k(t)){let a=e,B=C;if(n)for(let s=0;s<g;s++){let[E,u]=er(a,i+s);$A(B,s,E*r,u*r)}else for(let s=0;s<g;s++){let E=A.iget(s),u=E.re??Number(E),D=E.im??0;$A(B,s,u*r,D*r)}}else if(P(t)){let a=C,B=BigInt(Math.round(r));if(n){let s=e;for(let E=0;E<g;E++)a[E]=s[i+E]*B}else for(let s=0;s<g;s++)a[s]=A.iget(s)*B}else if(n)if(i===0)for(let a=0;a<g;a++)C[a]=Number(e[a])*r;else for(let a=0;a<g;a++)C[a]=Number(e[i+a])*r;else for(let a=0;a<g;a++)C[a]=Number(A.iget(a))*r;return Q}function $h(A,r){let I=A.dtype;if(k(I)){let B=Array.from(A.shape),s=A.data,E=A.size,u=A.offset,D=A.isCContiguous,y=d.zeros(B,I),f=y.data;if(D){let c=s;for(let m=0;m<E;m++){let[l,w]=er(c,u+m);$A(f,m,l/r,w/r)}}else for(let c=0;c<E;c++){let m=A.iget(c),l=m.re??Number(m),w=m.im??0;$A(f,c,l/r,w/r)}return y}let t=n0(A,r);if(t)return t;let e=I==="float16"||I==="float32"||I==="float64"?A:KI(A,"float64"),g=Array.from(e.shape),i=e.size,n=d.zeros(g,e.dtype),Q=n.data,C=e.data,a=e.offset;if(e.isCContiguous)for(let B=0;B<i;B++)Q[B]=C[a+B]/r;else for(let B=0;B<i;B++)Q[B]=Number(e.iget(B))/r;return n}function ow(A){let r=l0(A);if(r)return r;let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.size,g=A.offset,i=A.isCContiguous;if(k(I)){let C=St(I),a=d.zeros(t,C),B=a.data;if(i){let s=o;for(let E=0;E<e;E++){let u=s[(g+E)*2],D=s[(g+E)*2+1];B[E]=Math.sqrt(u*u+D*D)}}else for(let s=0;s<e;s++){let E=A.iget(s),u=E.re??Number(E),D=E.im??0;B[s]=Math.sqrt(u*u+D*D)}return a}let n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q;if(i){let a=o;for(let B=0;B<e;B++){let s=a[g+B];C[B]=s<0n?-s:s}}else for(let a=0;a<e;a++){let B=A.iget(a);C[a]=B<0n?-B:B}}else if(i)if(g===0)for(let C=0;C<e;C++)Q[C]=Math.abs(Number(o[C]));else for(let C=0;C<e;C++)Q[C]=Math.abs(Number(o[g+C]));else for(let C=0;C<e;C++)Q[C]=Math.abs(Number(A.iget(C)));return n}function ew(A){let r=s0(A);if(r)return r;let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.size,g=A.offset,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(k(I)){let C=Q;if(i){let a=o;for(let B=0;B<e;B++){let[s,E]=er(a,g+B);$A(C,B,-s,-E)}}else for(let a=0;a<e;a++){let B=A.iget(a),s=B.re??Number(B),E=B.im??0;$A(C,a,-s,-E)}}else if(P(I)){let C=Q;if(i){let a=o;for(let B=0;B<e;B++)C[B]=-a[g+B]}else for(let a=0;a<e;a++)C[a]=-A.iget(a)}else if(i)if(g===0)for(let C=0;C<e;C++)Q[C]=-Number(o[C]);else for(let C=0;C<e;C++)Q[C]=-Number(o[g+C]);else for(let C=0;C<e;C++)Q[C]=-Number(A.iget(C));return n}function gw(A){gA(A.dtype,"sign","Sign is not defined for complex numbers.");let r=F0(A);if(r)return r;let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.size,g=A.offset,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q;if(i){let a=o;for(let B=0;B<e;B++){let s=a[g+B];C[B]=s>0n?1n:s<0n?-1n:0n}}else for(let a=0;a<e;a++){let B=A.iget(a);C[a]=B>0n?1n:B<0n?-1n:0n}}else if(i)for(let C=0;C<e;C++){let a=Number(o[g+C]);Q[C]=a>0?1:a<0?-1:0}else for(let C=0;C<e;C++){let a=Number(A.iget(C));Q[C]=a>0?1:a<0?-1:0}return n}function Sn(A,r){return gA(A.dtype,"mod","Modulo is not defined for complex numbers."),typeof r!="number"&&gA(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof r=="number"?Y3(A,r):pA(A,r,(I,t)=>(I%t+t)%t,"mod")}function Y3(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.size,g=A.offset,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q,a=BigInt(Math.round(r));if(i){let B=o;for(let s=0;s<e;s++){let E=B[g+s];C[s]=(E%a+a)%a}}else for(let B=0;B<e;B++){let s=A.iget(B);C[B]=(s%a+a)%a}}else if(i)for(let C=0;C<e;C++){let a=Number(o[g+C]);Q[C]=(a%r+r)%r}else for(let C=0;C<e;C++){let a=Number(A.iget(C));Q[C]=(a%r+r)%r}return n}function VB(A,r){return gA(A.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof r!="number"&&gA(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof r=="number"?P3(A,r):pA(A,r,(I,t)=>Math.floor(I/t),"floor_divide")}function P3(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.size,g=A.offset,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q,a=BigInt(Math.round(r));if(i){let B=o;for(let s=0;s<e;s++)C[s]=B[g+s]/a}else for(let B=0;B<e;B++)C[B]=A.iget(B)/a}else if(i)for(let C=0;C<e;C++)Q[C]=Math.floor(Number(o[g+C])/r);else for(let C=0;C<e;C++)Q[C]=Math.floor(Number(A.iget(C))/r);return n}function iw(A){let r=A.dtype,I=Array.from(A.shape),t=A.data,o=A.size,e=A.offset,g=A.isCContiguous,i=d.zeros(I,r),n=i.data;if(k(r)){let Q=n;if(g){let C=t;Q.set(C.subarray(e*2,(e+o)*2))}else for(let C=0;C<o;C++){let a=A.iget(C);Q[C*2]=a.re??Number(a),Q[C*2+1]=a.im??0}}else if(g)n.set(t.subarray(e,e+o));else for(let Q=0;Q<o;Q++)n[Q]=A.iget(Q);return i}function nw(A){let r=qh(A);if(r)return r;let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.size,g=A.offset,i=A.isCContiguous;if(k(I)){let B=d.zeros(t,I),s=B.data;if(i){let E=o;for(let u=0;u<e;u++){let D=E[(g+u)*2],y=E[(g+u)*2+1],f=D*D+y*y;s[u*2]=D/f,s[u*2+1]=-y/f}}else for(let E=0;E<e;E++){let u=A.iget(E),D=u.re??Number(u),y=u.im??0,f=D*D+y*y;s[E*2]=D/f,s[E*2+1]=-y/f}return B}let Q=I!=="float32"&&I!=="float64"?"float64":I,C=d.zeros(t,Q),a=C.data;if(i)if(g===0)for(let B=0;B<e;B++)a[B]=1/Number(o[B]);else for(let B=0;B<e;B++)a[B]=1/Number(o[g+B]);else for(let B=0;B<e;B++)a[B]=1/Number(A.iget(B));return C}function Qw(A){let r=A.dtype;gA(r,"cbrt","cbrt is not supported for complex numbers.");let I=Array.from(A.shape),t=A.data,o=A.size,e=A.offset,i=r!=="float32"&&r!=="float64"?"float64":r,n=d.zeros(I,i),Q=n.data;if(A.isCContiguous)for(let C=0;C<o;C++)Q[C]=Math.cbrt(Number(t[e+C]));else for(let C=0;C<o;C++)Q[C]=Math.cbrt(Number(A.iget(C)));return n}function Cw(A){let r=A.dtype;gA(r,"fabs","fabs is only for real numbers. Use absolute() for complex.");let I=Array.from(A.shape),t=A.data,o=A.size,e=A.offset,g=r==="float32"?"float32":"float64",i=d.zeros(I,g),n=i.data;if(A.isCContiguous)if(e===0)for(let Q=0;Q<o;Q++)n[Q]=Math.abs(Number(t[Q]));else for(let Q=0;Q<o;Q++)n[Q]=Math.abs(Number(t[e+Q]));else for(let Q=0;Q<o;Q++)n[Q]=Math.abs(Number(A.iget(Q)));return i}function aw(A,r){let I=VB(A,r),t=Sn(A,r);return[I,t]}function Bw(A){let r=Gh(A);if(r)return r;let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.size,g=d.zeros(t,I),i=g.data;if(k(I)){let n=o,Q=i;for(let C=0;C<e;C++){let a=n[C*2],B=n[C*2+1];Q[C*2]=a*a-B*B,Q[C*2+1]=2*a*B}}else if(P(I)){let n=o,Q=i;for(let C=0;C<e;C++)Q[C]=n[C]*n[C]}else for(let n=0;n<e;n++){let Q=Number(o[n]);i[n]=Q*Q}return g}function sw(A,r){return Sn(A,r)}function WB(A,r){gA(A.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof r!="number"&&gA(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let I=A.dtype,t=Array.from(A.shape),o=A.size,e=I==="float32"?"float32":"float64",g=A.dtype===e?A:KI(A,e);if(typeof r!="number"&&r.size===1)return WB(A,Number(r.iget(0)));if(typeof r=="number"){let i=Lh(g,r,e);if(i)return i;let n=d.zeros(t,e),Q=n.data;if(g.isCContiguous){let C=g.data,a=g.offset;for(let B=0;B<o;B++){let s=C[a+B];Q[B]=s<0?0:s===0?r:1}}else for(let C=0;C<o;C++){let a=Number(A.iget(C));Q[C]=a<0?0:a===0?r:1}return n}else{let i=r.shape,n=r.dtype===e?r:KI(r,e);if(t.every((Q,C)=>Q===i[C])){let Q=Hh(g,n,e);if(Q)return Q;let C=d.zeros(t,e),a=C.data;if(g.isCContiguous&&n.isCContiguous){let B=g.data,s=g.offset,E=n.data,u=n.offset;for(let D=0;D<o;D++){let y=B[s+D];a[D]=y<0?0:y===0?E[u+D]:1}}else for(let B=0;B<o;B++){let s=Number(A.iget(B));a[B]=s<0?0:s===0?Number(r.iget(B)):1}return C}else{let Q=d.zeros(t,e),C=Q.data;for(let a=0;a<o;a++){let B=Number(A.iget(a)),s=a%r.size;C[a]=B<0?0:B===0?Number(r.iget(s)):1}return Q}}}function Ew(A,r){let I=A.dtype;if(k(I)){let t=A.size,o=d.zeros(Array.from(A.shape),I),e=o.data;if(typeof r=="number")if(A.isCContiguous){let g=A.data,i=A.offset;for(let n=0;n<t;n++){let Q=g[(i+n)*2],C=g[(i+n)*2+1],a=Math.hypot(Q,C),B=Math.atan2(C,Q),s=Math.pow(a,r),E=B*r;e[n*2]=s*Math.cos(E),e[n*2+1]=s*Math.sin(E)}}else for(let g=0;g<t;g++){let i=A.iget(g),n=Math.hypot(i.re,i.im),Q=Math.atan2(i.im,i.re),C=Math.pow(n,r),a=Q*r;e[g*2]=C*Math.cos(a),e[g*2+1]=C*Math.sin(a)}else{let g=k(r.dtype);if(A.isCContiguous&&r.isCContiguous){let i=A.data,n=A.offset,Q=r.data,C=r.offset;for(let a=0;a<t;a++){let B=i[(n+a)*2],s=i[(n+a)*2+1],E,u;if(g){let h=Q;E=h[(C+a)*2],u=h[(C+a)*2+1]}else E=Number(Q[C+a]),u=0;let D=Math.hypot(B,s),y=Math.atan2(s,B),f=Math.log(D),c=y,m=E*f-u*c,l=E*c+u*f,w=Math.exp(m);e[a*2]=w*Math.cos(l),e[a*2+1]=w*Math.sin(l)}}else for(let i=0;i<t;i++){let n=A.iget(i),Q,C;if(g){let f=r.iget(i);Q=f.re,C=f.im}else Q=Number(r.iget(i)),C=0;let a=Math.hypot(n.re,n.im),B=Math.atan2(n.im,n.re),s=Math.log(a),E=B,u=Q*s-C*E,D=Q*E+C*s,y=Math.exp(u);e[i*2]=y*Math.cos(D),e[i*2+1]=y*Math.sin(D)}}return o}if(typeof r=="number"){let t=d.zeros(Array.from(A.shape),"float64"),o=t.data,e=A.size;if(A.isCContiguous){let g=A.data,i=A.offset;for(let n=0;n<e;n++)o[n]=Math.pow(Number(g[i+n]),r)}else for(let g=0;g<e;g++)o[g]=Math.pow(Number(A.iget(g)),r);return t}return pA(A,r,(t,o)=>Math.pow(t,o),"float_power")}function uw(A,r){if(gA(A.dtype,"fmod","fmod is not defined for complex numbers."),typeof r!="number"&&gA(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof r=="number"){let I=A.copy(),t=I.data,o=A.size;for(let e=0;e<o;e++){let g=Number(t[e]);t[e]=g-Math.trunc(g/r)*r}return I}return pA(A,r,(I,t)=>I-Math.trunc(I/t)*t,"fmod")}function cw(A){gA(A.dtype,"frexp","frexp is not defined for complex numbers.");let r=vh(A);if(r)return r;let I=d.zeros(Array.from(A.shape),"float64"),t=d.zeros(Array.from(A.shape),"int32"),o=I.data,e=t.data,g=A.size;if(A.isCContiguous){let i=A.data,n=A.offset;for(let Q=0;Q<g;Q++){let C=Number(i[n+Q]);if(C===0||!isFinite(C))o[Q]=C,e[Q]=0;else{let a=Math.floor(Math.log2(Math.abs(C)))+1;o[Q]=C/Math.pow(2,a),e[Q]=a}}}else for(let i=0;i<g;i++){let n=Number(A.iget(i));if(n===0||!isFinite(n))o[i]=n,e[i]=0;else{let Q=Math.floor(Math.log2(Math.abs(n)))+1;o[i]=n/Math.pow(2,Q),e[i]=Q}}return[I,t]}function Dw(A,r){gA(A.dtype,"gcd","GCD is only defined for integers."),typeof r!="number"&&gA(r.dtype,"gcd","GCD is only defined for integers.");let I=(i,n)=>{for(i=Math.abs(Math.trunc(i)),n=Math.abs(Math.trunc(n));n!==0;){let Q=n;n=i%n,i=Q}return i};if(typeof r=="number"){let i=OB(A,r);if(i)return i;let n=d.zeros(Array.from(A.shape),"int32"),Q=n.data,C=A.size,a=Math.abs(Math.trunc(r));if(A.isCContiguous){let B=A.data,s=A.offset;for(let E=0;E<C;E++)Q[E]=I(Number(B[s+E]),a)}else for(let B=0;B<C;B++)Q[B]=I(Number(A.iget(B)),a);return n}if(typeof r!="number"&&r.size===1){let i=Number(r.iget(0)),n=OB(A,i);if(n)return n}if(typeof r!="number"&&lr(A,r)){let i=Wh(A,r);if(i)return i}let t=pA(A,r,I,"gcd"),o=d.zeros(Array.from(t.shape),"int32"),e=o.data,g=t.size;if(t.isCContiguous){let i=t.data,n=t.offset;for(let Q=0;Q<g;Q++)e[Q]=Math.round(Number(i[n+Q]))}else for(let i=0;i<g;i++)e[i]=Math.round(Number(t.iget(i)));return o}function fw(A,r){gA(A.dtype,"lcm","LCM is only defined for integers."),typeof r!="number"&&gA(r.dtype,"lcm","LCM is only defined for integers.");let I=(n,Q)=>{for(n=Math.abs(Math.trunc(n)),Q=Math.abs(Math.trunc(Q));Q!==0;){let C=Q;Q=n%Q,n=C}return n},t=(n,Q)=>(n=Math.abs(Math.trunc(n)),Q=Math.abs(Math.trunc(Q)),n===0||Q===0?0:n*Q/I(n,Q));if(typeof r=="number"){let n=d.zeros(Array.from(A.shape),"int32"),Q=n.data,C=A.size,a=Math.abs(Math.trunc(r));if(A.isCContiguous){let B=A.data,s=A.offset;for(let E=0;E<C;E++)Q[E]=t(Number(B[s+E]),a)}else for(let B=0;B<C;B++)Q[B]=t(Number(A.iget(B)),a);return n}let o=pA(A,r,t,"lcm"),e=d.zeros(Array.from(o.shape),"int32"),g=e.data,i=o.size;if(o.isCContiguous){let n=o.data,Q=o.offset;for(let C=0;C<i;C++)g[C]=Math.round(Number(n[Q+C]))}else for(let n=0;n<i;n++)g[n]=Math.round(Number(o.iget(n)));return e}function ZB(A,r){if(gA(A.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof r!="number"&&(gA(r.dtype,"ldexp","ldexp is not defined for complex numbers."),r.size===1))return ZB(A,Number(r.iget(0)));if(typeof r=="number"){let I=A.dtype==="float32"?"float32":"float64",t=A.dtype===I?A:KI(A,I),o=_h(t,r);if(o)return o;let e=d.zeros(Array.from(A.shape),"float64"),g=e.data,i=A.size,n=Math.pow(2,r);if(A.isCContiguous){let Q=A.data,C=A.offset;for(let a=0;a<i;a++)g[a]=Number(Q[C+a])*n}else for(let Q=0;Q<i;Q++)g[Q]=Number(A.iget(Q))*n;return e}return pA(A,r,(I,t)=>I*Math.pow(2,t),"ldexp")}function yw(A){gA(A.dtype,"modf","modf is not defined for complex numbers.");let r=d.zeros(Array.from(A.shape),"float64"),I=d.zeros(Array.from(A.shape),"float64"),t=r.data,o=I.data,e=A.size;for(let g=0;g<e;g++){let i=Number(A.iget(g)),n=Math.trunc(i);o[g]=n,t[g]=i-n}return[r,I]}function mw(A,r,I){if(gA(A.dtype,"clip","clip is not supported for complex numbers."),(r===null||typeof r=="number")&&(I===null||typeof I=="number")){let p=dh(A,r===null?-1/0:r,I===null?1/0:I);if(p)return p}let t=A.dtype,o=Array.from(A.shape),e=A.size,g=d.zeros(o,t),i=g.data,n=r===null||typeof r=="number",Q=I===null||typeof I=="number",C=r===null?-1/0:typeof r=="number"?r:null,a=I===null?1/0:typeof I=="number"?I:null,B=A.isCContiguous,s=A.data,E=A.offset,u=!n&&r.isCContiguous,D=n?null:r.data,y=n?0:r.offset,f=n?0:r.size,c=!Q&&I.isCContiguous,m=Q?null:I.data,l=Q?0:I.offset,w=Q?0:I.size;if(P(t)){let h=i;if(B&&(n||u)&&(Q||c)){let b=s,p=D,N=m;for(let F=0;F<e;F++){let S=b[E+F],M=n?C===-1/0?S:BigInt(Math.round(C)):p[y+F%f],Y=Q?a===1/0?S:BigInt(Math.round(a)):N[l+F%w];S<M&&(S=M),S>Y&&(S=Y),h[F]=S}}else for(let b=0;b<e;b++){let p=A.iget(b),N=n?C===-1/0?p:BigInt(Math.round(C)):r.iget(b%r.size),F=Q?a===1/0?p:BigInt(Math.round(a)):I.iget(b%I.size);p<N&&(p=N),p>F&&(p=F),h[b]=p}}else if(B&&(n||u)&&(Q||c))for(let h=0;h<e;h++){let b=Number(s[E+h]),p=n?C:Number(D[y+h%f]),N=Q?a:Number(m[l+h%w]);b<p&&(b=p),b>N&&(b=N),i[h]=b}else for(let h=0;h<e;h++){let b=Number(A.iget(h)),p=n?C:Number(r.iget(h%r.size)),N=Q?a:Number(I.iget(h%I.size));b<p&&(b=p),b>N&&(b=N),i[h]=b}return g}function lw(A,r){if(gA(A.dtype,"maximum","maximum is not supported for complex numbers."),typeof r!="number"&&gA(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof r=="number"){let I=Wt(A,r);if(I)return I}else if(r.size===1){let I=Wt(A,Number(r.iget(0)));if(I)return I}else if(lr(A,r)){let I=MB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,t=Array.from(A.shape),o=A.size,e=d.zeros(t,I),g=e.data,i=A.data;if(P(I)){let n=g,Q=i,C=BigInt(Math.round(r));for(let a=0;a<o;a++)n[a]=Q[a]>C?Q[a]:C}else for(let n=0;n<o;n++){let Q=Number(i[n]);g[n]=isNaN(Q)||isNaN(r)?NaN:Math.max(Q,r)}return e}return pA(A,r,(I,t)=>isNaN(I)||isNaN(t)?NaN:Math.max(I,t),"maximum")}function hw(A,r){if(gA(A.dtype,"minimum","minimum is not supported for complex numbers."),typeof r!="number"&&gA(r.dtype,"minimum","minimum is not supported for complex numbers."),typeof r=="number"){let I=Ot(A,r);if(I)return I}else if(r.size===1){let I=Ot(A,Number(r.iget(0)));if(I)return I}else if(lr(A,r)){let I=RB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,t=Array.from(A.shape),o=A.size,e=d.zeros(t,I),g=e.data,i=A.data;if(P(I)){let n=g,Q=i,C=BigInt(Math.round(r));for(let a=0;a<o;a++)n[a]=Q[a]<C?Q[a]:C}else for(let n=0;n<o;n++){let Q=Number(i[n]);g[n]=isNaN(Q)||isNaN(r)?NaN:Math.min(Q,r)}return e}return pA(A,r,(I,t)=>isNaN(I)||isNaN(t)?NaN:Math.min(I,t),"minimum")}function ww(A,r){if(gA(A.dtype,"fmax","fmax is not supported for complex numbers."),typeof r!="number"&&gA(r.dtype,"fmax","fmax is not supported for complex numbers."),typeof r=="number"){let I=Wt(A,r);if(I)return I}else if(r.size===1){let I=Wt(A,Number(r.iget(0)));if(I)return I}else if(lr(A,r)){let I=MB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,t=Array.from(A.shape),o=A.size,e=d.zeros(t,I),g=e.data,i=A.data;if(P(I)){let n=g,Q=i,C=BigInt(Math.round(r));for(let a=0;a<o;a++)n[a]=Q[a]>C?Q[a]:C}else for(let n=0;n<o;n++){let Q=Number(i[n]);isNaN(Q)?g[n]=r:isNaN(r)?g[n]=Q:g[n]=Math.max(Q,r)}return e}return pA(A,r,(I,t)=>isNaN(I)?t:isNaN(t)?I:Math.max(I,t),"fmax")}function dw(A,r){if(gA(A.dtype,"fmin","fmin is not supported for complex numbers."),typeof r!="number"&&gA(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof r=="number"){let I=Ot(A,r);if(I)return I}else if(r.size===1){let I=Ot(A,Number(r.iget(0)));if(I)return I}else if(lr(A,r)){let I=RB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,t=Array.from(A.shape),o=A.size,e=d.zeros(t,I),g=e.data,i=A.data;if(P(I)){let n=g,Q=i,C=BigInt(Math.round(r));for(let a=0;a<o;a++)n[a]=Q[a]<C?Q[a]:C}else for(let n=0;n<o;n++){let Q=Number(i[n]);isNaN(Q)?g[n]=r:isNaN(r)?g[n]=Q:g[n]=Math.min(Q,r)}return e}return pA(A,r,(I,t)=>isNaN(I)?t:isNaN(t)?I:Math.min(I,t),"fmin")}function bw(A,r=0,I,t){gA(A.dtype,"nan_to_num","nan_to_num is not supported for complex numbers.");let o=A.dtype,e=Array.from(A.shape),g=A.size,i=I!==void 0?I:Number.MAX_VALUE,n=t!==void 0?t:-Number.MAX_VALUE,Q=d.zeros(e,o),C=Q.data,a=A.data;if(SA(o))C.set(a.subarray(A.offset,A.offset+g));else for(let B=0;B<g;B++){let s=Number(a[B]);isNaN(s)?C[B]=r:s===1/0?C[B]=i:s===-1/0?C[B]=n:C[B]=s}return Q}function pw(A,r,I,t,o){gA(A.dtype,"interp","interp is not supported for complex numbers."),gA(r.dtype,"interp","interp is not supported for complex numbers."),gA(I.dtype,"interp","interp is not supported for complex numbers.");let e=Array.from(A.shape),g=A.size,i=d.zeros(e,"float64"),n=i.data,Q=A.data,C=r.data,a=I.data,B=r.size,s=t!==void 0?t:Number(a[0]),E=o!==void 0?o:Number(a[B-1]);for(let u=0;u<g;u++){let D=Number(Q[u]);if(D<=Number(C[0])){n[u]=s;continue}if(D>=Number(C[B-1])){n[u]=E;continue}let y=0,f=B-1;for(;f-y>1;){let b=Math.floor((y+f)/2);Number(C[b])<=D?y=b:f=b}let c=Number(C[y]),m=Number(C[f]),l=Number(a[y]),w=Number(a[f]),h=(D-c)/(m-c);n[u]=l+h*(w-l)}return i}function Nw(A,r=Math.PI,I=-1,t=2*Math.PI){gA(A.dtype,"unwrap","unwrap is not supported for complex numbers.");let o=Array.from(A.shape),e=o.length;if(I<0&&(I+=e),I<0||I>=e)throw new Error(`axis ${I} is out of bounds for array of dimension ${e}`);if(e===1){let Q=A.size,C=d.zeros(o,"float64"),a=C.data,B=A.data;if(Q===0)return C;a[0]=Number(B[0]);let s=0;for(let E=1;E<Q;E++){let u=Number(B[E-1]),D=Number(B[E]),y=D-u;y=(y+t/2)%t-t/2,y===-t/2&&D-u>0&&(y=t/2),Math.abs(y)>r&&(s-=Math.round((D-u-y)/t)*t),a[E]=D+s}return C}let g=d.zeros(o,"float64"),i=g.data,n=A.data;for(let Q=0;Q<A.size;Q++)i[Q]=Number(n[Q]);if(e===2){let[Q,C]=o;if(I===0)for(let a=0;a<C;a++){let B=0;for(let s=1;s<Q;s++){let E=(s-1)*C+a,u=s*C+a,D=i[E],y=i[u],f=y-D;f=(f+t/2)%t-t/2,f===-t/2&&y-D>0&&(f=t/2),Math.abs(f)>r&&(B-=Math.round((y-D-f)/t)*t),i[u]=y+B}}else for(let a=0;a<Q;a++){let B=0;for(let s=1;s<C;s++){let E=a*C+(s-1),u=a*C+s,D=i[E],y=i[u],f=y-D;f=(f+t/2)%t-t/2,f===-t/2&&y-D>0&&(f=t/2),Math.abs(f)>r&&(B-=Math.round((y-D-f)/t)*t),i[u]=y+B}}}return g}function Fw(A){gA(A.dtype,"sinc","sinc is not supported for complex numbers.");let r=Array.from(A.shape),I=A.size,t=d.zeros(r,"float64"),o=t.data,e=A.data;for(let g=0;g<I;g++){let i=Number(e[g]);if(i===0)o[g]=1;else{let n=Math.PI*i;o[g]=Math.sin(n)/n}}return t}function Gw(A){gA(A.dtype,"i0","i0 is not supported for complex numbers.");let r=Array.from(A.shape),I=A.size,t=d.zeros(r,"float64"),o=t.data,e=A.data;for(let g=0;g<I;g++){let i=Math.abs(Number(e[g]));o[g]=_3(i)}return t}function _3(A){let r=Math.abs(A);if(r<3.75){let I=A/3.75,t=I*I;return 1+t*(3.5156229+t*(3.0899424+t*(1.2067492+t*(.2659732+t*(.0360768+t*.0045813)))))}else{let I=3.75/r;return Math.exp(r)/Math.sqrt(r)*(.39894228+I*(.01328592+I*(.00225319+I*(-.00157565+I*(.00916281+I*(-.02057706+I*(.02635537+I*(-.01647633+I*.00392377))))))))}}var v3="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",to=null;function vI(){if(to)return to;let A=atob(v3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);to=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=to.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),to}function Sw(A,r,I){vI().exports.sqrt_f64(A,r,I)}function Rw(A,r,I){vI().exports.sqrt_f32(A,r,I)}function zB(A,r,I){vI().exports.sqrt_i64(A,r,I)}function jB(A,r,I){vI().exports.sqrt_i32(A,r,I)}function $B(A,r,I){vI().exports.sqrt_i16(A,r,I)}function As(A,r,I){vI().exports.sqrt_i8(A,r,I)}var X3=64,T3={float64:Sw,float32:Rw},O3={int64:zB,uint64:zB,int32:jB,uint32:jB,int16:$B,uint16:$B,int8:As,uint8:As},kw={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function qw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<X3*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let t=T3[I];if(t){let e=kw[I],g=e.BYTES_PER_ELEMENT;x(r*g*2),U();let i=A.data.subarray(A.offset,A.offset+r),n=R(i),Q=H(r*g);t(n,Q,r);let C=_(Q,r,e);return d.fromData(C,Array.from(A.shape),I)}let o=O3[I];if(o){let g=kw[I].BYTES_PER_ELEMENT,i=8;x(r*g+r*i),U();let n=A.data.subarray(A.offset,A.offset+r),Q=R(n),C=H(r*i);o(Q,C,r);let a=_(C,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}return null}var V3="AGFzbQEAAAABMwhgBH9/f38AYAJ8fAF8YAJ/fABgAnx/AXxgBH9/f3wAYAR/f399AGAEf39/fgBgAXwBfAIPAQNlbnYGbWVtb3J5AgARAxMSAAECAwQABQAGAAAAAAAAAwcHBgkBfwFBgIDAAAsHuQEMCXBvd2VyX2Y2NAAAEHBvd2VyX3NjYWxhcl9mNjQABAlwb3dlcl9mMzIABRBwb3dlcl9zY2FsYXJfZjMyAAYJcG93ZXJfaTY0AAcQcG93ZXJfc2NhbGFyX2k2NAAICXBvd2VyX2kzMgAJEHBvd2VyX3NjYWxhcl9pMzIACglwb3dlcl9pMTYACxBwb3dlcl9zY2FsYXJfaTE2AAwIcG93ZXJfaTgADQ9wb3dlcl9zY2FsYXJfaTgADgq4KBJAAAJAIANFDQADQCACIAArAwAgASsDABCBgICAADkDACACQQhqIQIgAEEIaiEAIAFBCGohASADQX9qIgMNAAsLC40IBgF/AXwBfwJ8AX4DfyOAgICAAEEQayICJICAgIAARAAAAAAAAPA/IQMCQCABRAAAAAAAAAAAYQ0AIABEAAAAAAAA8D9hDQBEAAAAAAAA+H8hAyAAIABiIAEgAWIiBHINAAJAIAFEAAAAAAAA8D9iDQAgACEDDAELAkACQAJAAkAgAEQAAAAAAAAAAGENACABmSIFRAAAAAAAAPB/YQ0BIACZRAAAAAAAAPB/Yg0DIABEAAAAAAAA8P9iDQJEAAAAAAAAAIAhAEQAAAAAAAD4f0QAAAAAAAAAgCAEGyEDIAQNBCABRAAAAAAAAPC/YQ0EIAGaIQELIAGZIQMCQCABRAAAAAAAAAAAY0UNAAJAIANEAAAAAAAAQENmRQ0ARAAAAAAAAPB/IQMMBQtEAAAAAAAA8H8gAKZEAAAAAAAA8H8gAZ0iAPwGp0EBcRtEAAAAAAAA8H8gASAAYRshAwwECwJAIANEAAAAAAAAQENmRQ0ARAAAAAAAAAAAIQMMBAsgAEQAAAAAAAAAACABnSID/AanQQFxG0QAAAAAAAAAACABIANhGyEDDAMLAkAgAEQAAAAAAADwv2INAEQAAAAAAADwPyEDDAMLRAAAAAAAAAAARAAAAAAAAPB/IACZRAAAAAAAAPA/YyABRAAAAAAAAPB/YnMbIQMMAgtEAAAAAAAAAAAhAyABRAAAAAAAAAAAYw0BIAFEAAAAAAAAAABkRQ0ARAAAAAAAAPB/IQMMAQsCQCABRAAAAAAAAOA/YQ0AAkAgAUQAAAAAAADgv2INAEQAAAAAAADwPyAAn6MhAwwCCwJAIAUgBZ0iBqEiBUQAAAAAAAAAAGENAEQAAAAAAAD4fyEDIABEAAAAAAAAAABjDQILAkAgBkQAAAAAAADgQ2ZFDQAgASAAEJGAgIAAohCQgICAACEDDAILAkACQCAFRAAAAAAAAAAAYg0ARAAAAAAAAPA/IQMMAQsgBkQAAAAAAADwP6AgBiAFRAAAAAAAAOA/ZCIEGyEGIAAQkYCAgAAgBUQAAAAAAADwv6AgBSAEG6IQkICAgAAhAwsgAiAAEIKAgIAAAkACQCAG/AYiB1BFDQBBACEIDAELIAIoAgghBCACKwMAIQBBACEIA0ACQCAEQf9fakH+v39LDQAgCCAEaiEIDAILIAMgACADoiAHQgGDUCIJGyEDIAAgAKIiACAAoCAAIABEAAAAAAAA4D9jIgobIQAgCEEAIAQgCRtqIQggB0ICVCEJIARBAXQgCmshBCAHQgGHIQcgCUUNAAsLAkAgAUQAAAAAAAAAAGNFDQBBACAIayEIRAAAAAAAAPA/IAOjIQMLIAMgCBCDgICAACEDDAELIACfIQMLIAJBEGokgICAgAAgAwvJAQMBfwF+An9BACECAkACQAJAIAG9IgNCNIinIgRB/w9xIgVFDQAgBUH/D0cNAQwCCyADQv////////8Hg1ANASADQoCAgICAgICAgH+DIAMgA0IMhnmnIgJBAWqthkL/////////B4NCACACQT9xQTNJG4RCgICAgICAgPA/hCEDQYJ4IAJrIQIMAQsgA0L/////////h4B/g0KAgICAgICA8D+EIQMgBEH/D3FBgnhqIQILIABBADYCDCAAIAI2AgggACADNwMAC84CAgN+An8CQAJAIAAgAGINACAAvSICQv///////////wCDQoCAgICAgID4/wBaDQAgAkKAgICAgICAgIB/gyEDQQsgAkIBhiIEeadrIARCNYinIARCgICAgICAgBBUGyEFAkAgAUEASA0AAkAgAUH+DyAFa0wNAEQAAAAAAADwfyAApg8LAkAgBSABaiIGQQBKDQAgAiABrYYgA4S/DwsCQCAFQQBKDQAgAkEBIAVrrYZC/////////weDIAat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",oo=null;function Cr(){if(oo)return oo;let A=atob(V3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);oo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=oo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),oo}function Mw(A,r,I,t){Cr().exports.power_f64(A,r,I,t)}function rs(A,r,I,t){Cr().exports.power_scalar_f64(A,r,I,t)}function Is(A,r,I,t){Cr().exports.power_f32(A,r,I,t)}function ts(A,r,I,t){Cr().exports.power_scalar_f32(A,r,I,t)}function os(A,r,I,t){Cr().exports.power_i64(A,r,I,t)}function es(A,r,I,t){Cr().exports.power_scalar_i64(A,r,I,BigInt(Math.round(t)))}function gs(A,r,I,t){Cr().exports.power_i32(A,r,I,t)}function is(A,r,I,t){Cr().exports.power_scalar_i32(A,r,I,t)}function ns(A,r,I,t){Cr().exports.power_i16(A,r,I,t)}function Qs(A,r,I,t){Cr().exports.power_scalar_i16(A,r,I,t)}function Cs(A,r,I,t){Cr().exports.power_i8(A,r,I,t)}function as(A,r,I,t){Cr().exports.power_scalar_i8(A,r,I,t)}var Jw=64,W3={float64:Mw,float32:Is,int64:os,uint64:os,int32:gs,uint32:gs,int16:ns,uint16:ns,int8:Cs,uint8:Cs,float16:Is},Z3={float64:rs,float32:ts,int64:es,uint64:es,int32:is,uint32:is,int16:Qs,uint16:Qs,int8:as,uint8:as,float16:ts},xw={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Uw(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Jw*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=W3[t],e=xw[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g,Q=I*g;x(i+n+Q),U();let C=t,a=A.offset,B=r.offset,s=AA(A.data.subarray(a,a+I),A.dtype),E=AA(r.data.subarray(B,B+I),r.dtype),u=R(s),D=R(E),y=H(Q);o(u,D,y,I);let f=_(y,I,e),c=eA(f,C);return d.fromData(c,Array.from(A.shape),C)}function Lw(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Jw*K.thresholdMultiplier)return null;let t=A.dtype;if(t!=="float32"&&t!=="float64"&&(r<0||!Number.isInteger(r))){x(I*8*2),U();let y=A.offset,f=A.data,c=new Float64Array(I);if(P(t))for(let h=0;h<I;h++)c[h]=Number(f[y+h]);else for(let h=0;h<I;h++)c[h]=f[y+h];let m=R(c),l=H(I*8);rs(m,l,I,r);let w=_(l,I,Float64Array);return d.fromData(w,Array.from(A.shape),"float64")}let e=Z3[t],g=xw[t];if(!e||!g)return null;let i=g.BYTES_PER_ELEMENT,n=I*i,Q=I*i;x(n+Q),U();let C=A.offset,a=AA(A.data.subarray(C,C+I),t),B=R(a),s=H(Q);e(B,s,I,r);let E=_(s,I,g),u=eA(E,t);return d.fromData(u,Array.from(A.shape),t)}var z3="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",eo=null;function Rn(){if(eo)return eo;let A=atob(z3),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);eo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=eo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),eo}function Bs(A,r,I){Rn().exports.exp_f64(A,r,I)}function ss(A,r,I){Rn().exports.exp_f32(A,r,I)}function Hw(A,r,I){Rn().exports.exp_i64(A,r,I)}function Yw(A,r,I){Rn().exports.exp_u64(A,r,I)}var j3=64,$3={float64:Bs,float32:ss};function Pw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<j3*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);ss(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=$3[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){x(r*16),U();let a=A.offset,B=A.data.subarray(a,a+r),s=R(B),E=H(r*8);(I==="int64"?Hw:Yw)(s,E,r);let u=_(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);Bs(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var AP="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",go=null;function kn(){if(go)return go;let A=atob(AP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);go=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=go.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),go}function Es(A,r,I){kn().exports.exp2_f64(A,r,I)}function us(A,r,I){kn().exports.exp2_f32(A,r,I)}function _w(A,r,I){kn().exports.exp2_i64(A,r,I)}function Kw(A,r,I){kn().exports.exp2_u64(A,r,I)}var rP=64,IP={float64:Es,float32:us};function vw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<rP*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);us(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=IP[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){x(r*16),U();let a=A.offset,B=A.data.subarray(a,a+r),s=R(B),E=H(r*8);(I==="int64"?_w:Kw)(s,E,r);let u=_(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);Es(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var tP="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BiACIAYgBCAFEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQJqIQAgAUECaiEBIAJBCGohAiADQX9qIgMNAAsLC2YBA3wCQCADRQ0AA0AgACwAALciBCABLAAAtyIFEJaAgIAAIQYgAiAGIAQgBRCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEBaiEAIAFBAWohASACQQhqIQIgA0F/aiIDDQALCwtmAQN8AkAgA0UNAANAIAAtAAC4IgQgAS0AALgiBRCWgICAACEGIAIgBiAEIAUQmICAgAAgBqEQl4CAgAAQgYCAgACgOQMAIABBAWohACABQQFqIQEgAkEIaiECIANBf2oiAw0ACwsLWAECfAJAIAJFDQADQCAAKwMAIgQgAxCWgICAACEFIAEgBSAEIAMQmICAgAAgBaEQl4CAgAAQgYCAgACgOQMAIABBCGohACABQQhqIQEgAkF/aiICDQALCwtfAQN8AkAgAkUNACADuyEEA0AgACoCALsiBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKC2OAIAIABBBGohACABQQRqIQEgAkF/aiICDQALCwteAQN8AkAgAkUNACADuSEEA0AgACkDALkiBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEIaiEAIAFBCGohASACQX9qIgINAAsLC14BA3wCQCACRQ0AIAO6IQQDQCAAKQMAuiIFIAQQloCAgAAhBiABIAYgBSAEEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQhqIQAgAUEIaiEBIAJBf2oiAg0ACwsLXgEDfAJAIAJFDQAgA7chBANAIAAoAgC3IgUgBBCWgICAACEGIAEgBiAFIAQQmICAgAAgBqEQl4CAgAAQgYCAgACgOQMAIABBBGohACABQQhqIQEgAkF/aiICDQALCwteAQN8AkAgAkUNACADuCEEA0AgACgCALgiBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEEaiEAIAFBCGohASACQX9qIgINAAsLC14BA3wCQCACRQ0AIAO3IQQDQCAALgEAtyIFIAQQloCAgAAhBiABIAYgBSAEEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQJqIQAgAUEIaiEBIAJBf2oiAg0ACwsLXgEDfAJAIAJFDQAgA7ghBANAIAAvAQC4IgUgBBCWgICAACEGIAEgBiAFIAQQmICAgAAgBqEQl4CAgAAQgYCAgACgOQMAIABBAmohACABQQhqIQEgAkF/aiICDQALCwteAQN8AkAgAkUNACADtyEEA0AgACwAALciBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEBaiEAIAFBCGohASACQX9qIgINAAsLC14BA3wCQCACRQ0AIAO4IQQDQCAALQAAuCIFIAQQloCAgAAhBiABIAYgBSAEEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQFqIQAgAUEIaiEBIAJBf2oiAg0ACwsLzgICA34CfwJAAkAgACAAYg0AIAC9IgJC////////////AINCgICAgICAgPj/AFoNACACQoCAgICAgICAgH+DIQNBCyACQgGGIgR5p2sgBEI1iKcgBEKAgICAgICAEFQbIQUCQCABQQBIDQACQCABQf4PIAVrTA0ARAAAAAAAAPB/IACmDwsCQCAFIAFqIgZBAEoNACACIAGthiADhL8PCwJAIAVBAEoNACACQQEgBWuthkL/////////B4MgBq1CNIaEIAOEvw8LIAGtQjSGIAJ8vw8LQQAgAWshBiABQQAgBWtKDQECQCABQUwgBWtODQAgA78PCyAFQQBKrUI0hiACQv////////8Hg4QgBkEBIAEgBWprIgEgBiABSBtBf2pBP3GtIgSIQgF8QgGIIAJ6IARRrUJ/hYO/IACmIQALIAAPCyACIAatQjSGfb8LRQEBfgJAIAAgAGINAAJAIAEgAWENACAADwsCQCABvSAAvSIChUJ/VQ0AIAEgACACQgBTGw8LIAEgACAAIAFjGyEBCyABC68DAwF+AX8DfAJAIAAgAGINACAAvSIBQj+IpyECAkACQAJAAkACQAJAAkAgAUIgiEL/////B4MiAUKqxpiEBFYNACABQsLc2P4DWA0BIAFCssXC/wNYDQIMBAsgAUKAgMD/B1YNBgJAIABE7zn6/kIuhkBkRQ0ARAAAAAAAAPB/DwsgAETSvHrdKyOGwGNFDQMgAERRMC3VEEmHwGNFDQNEAAAAAAAAAAAPCyABQoCAwPEDWA0BQQAhAkQAAAAAAAAAACEDIAAhBAwECyACQQFzIAJrIQIMAgsgAEQAAAAAAADwP6AhAAwDCyAARP6CK2VHFfc/oiACQQN0QYCAwIAAaisDAKD8AiECCyAAIAK3IgREAADg/kIu5r+ioCIAIAREdjx5Ne856j2iIgOhIQQLIAAgBCAEIAQgBKIiBSAFIAUgBSAFRNCkvnJpN2Y+okTxa9LFQb27vqCiRCzeJa9qVhE/oKJEk72+FmzBZr+gokQ+VVVVVVXFP6CioSIFokQAAAAAAAAAQCAFoaMgA6GgRAAAAAAAAPA/oCEAIAJFDQAgACACEJWAgIAADwsgAAtFAQF+AkAgACAAYg0AAkAgASABYQ0AIAAPCwJAIAG9IAC9IgKFQn9VDQAgACABIAJCAFMbDwsgACABIAAgAWMbIQELIAELCxkBAEGAgMAACxAAAAAAAADgPwAAAAAAAOC/",io=null;function JA(){if(io)return io;let A=atob(tP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);io=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=io.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),io}function Xw(A,r,I,t){JA().exports.logaddexp_f64(A,r,I,t)}function cs(A,r,I,t){JA().exports.logaddexp_f32(A,r,I,t)}function Tw(A,r,I,t){JA().exports.logaddexp_i64(A,r,I,t)}function Ow(A,r,I,t){JA().exports.logaddexp_u64(A,r,I,t)}function Vw(A,r,I,t){JA().exports.logaddexp_i32(A,r,I,t)}function Ww(A,r,I,t){JA().exports.logaddexp_u32(A,r,I,t)}function Zw(A,r,I,t){JA().exports.logaddexp_i16(A,r,I,t)}function zw(A,r,I,t){JA().exports.logaddexp_u16(A,r,I,t)}function jw(A,r,I,t){JA().exports.logaddexp_i8(A,r,I,t)}function $w(A,r,I,t){JA().exports.logaddexp_u8(A,r,I,t)}function Ad(A,r,I,t){JA().exports.logaddexp_scalar_f64(A,r,I,t)}function Ds(A,r,I,t){JA().exports.logaddexp_scalar_f32(A,r,I,t)}function rd(A,r,I,t){JA().exports.logaddexp_scalar_i64(A,r,I,BigInt(Math.round(t)))}function Id(A,r,I,t){JA().exports.logaddexp_scalar_u64(A,r,I,BigInt(Math.round(t)))}function td(A,r,I,t){JA().exports.logaddexp_scalar_i32(A,r,I,t)}function od(A,r,I,t){JA().exports.logaddexp_scalar_u32(A,r,I,t)}function ed(A,r,I,t){JA().exports.logaddexp_scalar_i16(A,r,I,t)}function gd(A,r,I,t){JA().exports.logaddexp_scalar_u16(A,r,I,t)}function id(A,r,I,t){JA().exports.logaddexp_scalar_i8(A,r,I,t)}function nd(A,r,I,t){JA().exports.logaddexp_scalar_u8(A,r,I,t)}var Qd=64,oP={float64:Xw,float32:cs,float16:cs},eP={float64:Ad,float32:Ds,float16:Ds},gP={int64:Tw,uint64:Ow,int32:Vw,uint32:Ww,int16:Zw,uint16:zw,int8:jw,uint8:$w},iP={int64:rd,uint64:Id,int32:td,uint32:od,int16:ed,uint16:gd,int8:id,uint8:nd},qn={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Cd(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Qd*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=oP[t];if(o){let g=qn[t],i=g.BYTES_PER_ELEMENT;x(I*i*3),U();let n=AA(A.data.subarray(A.offset,A.offset+I),A.dtype),Q=AA(r.data.subarray(r.offset,r.offset+I),r.dtype),C=R(n),a=R(Q),B=H(I*i);o(C,a,B,I);let s=_(B,I,g),E=eA(s,t);return d.fromData(E,Array.from(A.shape),t)}let e=gP[t];if(e){let i=qn[t].BYTES_PER_ELEMENT,n=8;x(I*i*2+I*n),U();let Q=A.data.subarray(A.offset,A.offset+I),C=r.data.subarray(r.offset,r.offset+I),a=R(Q),B=R(C),s=H(I*n);e(a,B,s,I);let E=_(s,I,Float64Array);return d.fromData(E,Array.from(A.shape),"float64")}return null}function ad(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Qd*K.thresholdMultiplier)return null;let t=A.dtype,o=eP[t];if(o){let g=qn[t],i=g.BYTES_PER_ELEMENT;x(I*i*2),U();let n=AA(A.data.subarray(A.offset,A.offset+I),t),Q=R(n),C=H(I*i);o(Q,C,I,r);let a=_(C,I,g),B=eA(a,t);return d.fromData(B,Array.from(A.shape),t)}let e=iP[t];if(e){let i=qn[t].BYTES_PER_ELEMENT,n=8;x(I*i+I*n),U();let Q=A.data.subarray(A.offset,A.offset+I),C=R(Q),a=H(I*n);e(C,a,I,r);let B=_(a,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}return null}function Bd(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.isCContiguous,g=d.zeros(t,r),i=g.data;if(e){let n=A.data,Q=A.offset;for(let C=0;C<o;C++){let a=n[(Q+C)*2],B=n[(Q+C)*2+1],s=Math.sqrt(a*a+B*B),E=Math.sqrt((s+a)/2),u=(B>=0?1:-1)*Math.sqrt((s-a)/2);i[C*2]=E,i[C*2+1]=u}}else for(let n=0;n<o;n++){let Q=A.iget(n),C=Q.re,a=Q.im,B=Math.sqrt(C*C+a*a),s=Math.sqrt((B+C)/2),E=(a>=0?1:-1)*Math.sqrt((B-C)/2);i[n*2]=s,i[n*2+1]=E}return g}let I=qw(A);return I||wA(A,Math.sqrt,!1)}function sd(A,r){if(typeof r=="number")return QP(A,r);let I=k(A.dtype),t=k(r.dtype);if(I||t)return nP(A,r);let o=Uw(A,r);return o||pA(A,r,Math.pow,"power")}function nP(A,r){let I=k(A.dtype),t=k(r.dtype),o=A.dtype==="complex128"||r.dtype==="complex128"||r.dtype==="float64"?"complex128":"complex64",e=Array.from(A.shape),g=A.size,i=d.zeros(e,o),n=i.data,Q=A.isCContiguous,C=r.isCContiguous,a=A.offset,B=r.offset;for(let s=0;s<g;s++){let E,u;if(I)if(Q){let b=A.data;E=b[(a+s)*2],u=b[(a+s)*2+1]}else{let b=A.iget(s);E=b.re,u=b.im}else E=Number(A.iget(s)),u=0;let D,y;if(t)if(C){let b=r.data;D=b[(B+s)*2],y=b[(B+s)*2+1]}else{let b=r.iget(s);D=b.re,y=b.im}else D=Number(r.iget(s)),y=0;let f=Math.sqrt(E*E+u*u),c=Math.atan2(u,E),m=Math.log(f),l=D*m-y*c,w=D*c+y*m,h=Math.exp(l);n[s*2]=h*Math.cos(w),n[s*2+1]=h*Math.sin(w)}return i}function QP(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.size,g=A.offset,i=A.isCContiguous;if(!k(I)){let s=Lw(A,r);if(s)return s}if(k(I)){let s=d.zeros(t,I),E=s.data;if(i){let u=o;for(let D=0;D<e;D++){let y=u[(g+D)*2],f=u[(g+D)*2+1],c=Math.sqrt(y*y+f*f),m=Math.atan2(f,y),l=Math.pow(c,r),w=m*r;E[D*2]=l*Math.cos(w),E[D*2+1]=l*Math.sin(w)}}else for(let u=0;u<e;u++){let D=A.iget(u),y=D.re,f=D.im,c=Math.sqrt(y*y+f*f),m=Math.atan2(f,y),l=Math.pow(c,r),w=m*r;E[u*2]=l*Math.cos(w),E[u*2+1]=l*Math.sin(w)}return s}let C=I!=="float32"&&I!=="float64"&&(r<0||!Number.isInteger(r))?"float64":I,a=d.zeros(t,C),B=a.data;if(P(I))if(P(C)&&Number.isInteger(r)&&r>=0)if(i){let s=o,E=B;for(let u=0;u<e;u++)E[u]=s[g+u]**BigInt(r)}else{let s=B;for(let E=0;E<e;E++)s[E]=A.iget(E)**BigInt(r)}else if(i)for(let s=0;s<e;s++)B[s]=Math.pow(Number(o[g+s]),r);else for(let s=0;s<e;s++)B[s]=Math.pow(Number(A.iget(s)),r);else if(i)for(let s=0;s<e;s++)B[s]=Math.pow(Number(o[g+s]),r);else for(let s=0;s<e;s++)B[s]=Math.pow(Number(A.iget(s)),r);return a}function Ed(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.isCContiguous,g=d.zeros(t,r),i=g.data;if(e){let n=A.data,Q=A.offset;for(let C=0;C<o;C++){let a=n[(Q+C)*2],B=n[(Q+C)*2+1],s=Math.exp(a);i[C*2]=s*Math.cos(B),i[C*2+1]=s*Math.sin(B)}}else for(let n=0;n<o;n++){let Q=A.iget(n),C=Q.re,a=Q.im,B=Math.exp(C);i[n*2]=B*Math.cos(a),i[n*2+1]=B*Math.sin(a)}return g}let I=Pw(A);return I||wA(A,Math.exp,!1)}function ud(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.isCContiguous,g=Math.LN2,i=d.zeros(t,r),n=i.data;if(e){let Q=A.data,C=A.offset;for(let a=0;a<o;a++){let B=Q[(C+a)*2],s=Q[(C+a)*2+1],E=Math.exp(B*g),u=s*g;n[a*2]=E*Math.cos(u),n[a*2+1]=E*Math.sin(u)}}else for(let Q=0;Q<o;Q++){let C=A.iget(Q),a=C.re,B=C.im,s=Math.exp(a*g),E=B*g;n[Q*2]=s*Math.cos(E),n[Q*2+1]=s*Math.sin(E)}return i}let I=vw(A);return I||wA(A,t=>Math.pow(2,t),!1)}function cd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),t=A.size,o=A.isCContiguous,e=d.zeros(I,r),g=e.data;if(o){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++){let C=i[(n+Q)*2],a=i[(n+Q)*2+1],B=Math.exp(C);g[Q*2]=B*Math.cos(a)-1,g[Q*2+1]=B*Math.sin(a)}}else for(let i=0;i<t;i++){let n=A.iget(i),Q=n.re,C=n.im,a=Math.exp(Q);g[i*2]=a*Math.cos(C)-1,g[i*2+1]=a*Math.sin(C)}return e}return wA(A,Math.expm1,!1)}function Dd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),t=A.size,o=A.isCContiguous,e=d.zeros(I,r),g=e.data;if(o){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++){let C=i[(n+Q)*2],a=i[(n+Q)*2+1],B=Math.sqrt(C*C+a*a),s=Math.atan2(a,C);g[Q*2]=Math.log(B),g[Q*2+1]=s}}else for(let i=0;i<t;i++){let n=A.iget(i),Q=n.re,C=n.im,a=Math.sqrt(Q*Q+C*C),B=Math.atan2(C,Q);g[i*2]=Math.log(a),g[i*2+1]=B}return e}return wA(A,Math.log,!1)}function fd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),t=A.size,o=A.isCContiguous,e=1/Math.LN2,g=d.zeros(I,r),i=g.data;if(o){let n=A.data,Q=A.offset;for(let C=0;C<t;C++){let a=n[(Q+C)*2],B=n[(Q+C)*2+1],s=Math.sqrt(a*a+B*B),E=Math.atan2(B,a);i[C*2]=Math.log(s)*e,i[C*2+1]=E*e}}else for(let n=0;n<t;n++){let Q=A.iget(n),C=Q.re,a=Q.im,B=Math.sqrt(C*C+a*a),s=Math.atan2(a,C);i[n*2]=Math.log(B)*e,i[n*2+1]=s*e}return g}return wA(A,Math.log2,!1)}function yd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),t=A.size,o=A.isCContiguous,e=1/Math.LN10,g=d.zeros(I,r),i=g.data;if(o){let n=A.data,Q=A.offset;for(let C=0;C<t;C++){let a=n[(Q+C)*2],B=n[(Q+C)*2+1],s=Math.sqrt(a*a+B*B),E=Math.atan2(B,a);i[C*2]=Math.log(s)*e,i[C*2+1]=E*e}}else for(let n=0;n<t;n++){let Q=A.iget(n),C=Q.re,a=Q.im,B=Math.sqrt(C*C+a*a),s=Math.atan2(a,C);i[n*2]=Math.log(B)*e,i[n*2+1]=s*e}return g}return wA(A,Math.log10,!1)}function md(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),t=A.size,o=A.isCContiguous,e=d.zeros(I,r),g=e.data;if(o){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++){let C=i[(n+Q)*2],a=i[(n+Q)*2+1],B=1+C,s=Math.sqrt(B*B+a*a),E=Math.atan2(a,B);g[Q*2]=Math.log(s),g[Q*2+1]=E}}else for(let i=0;i<t;i++){let n=A.iget(i),Q=n.re,C=n.im,a=1+Q,B=Math.sqrt(a*a+C*C),s=Math.atan2(C,a);g[i*2]=Math.log(B),g[i*2+1]=s}return e}return wA(A,Math.log1p,!1)}function ld(A,r){return gA(A.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof r!="number"&&gA(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof r=="number"?aP(A,r):CP(A,r)}function CP(A,r){let I=Cd(A,r);if(I)return I;let t=jr(A.shape,r.shape),o=t.reduce((a,B)=>a*B,1),e=A.dtype,g=r.dtype,i=a=>a==="float32"||a==="int8"||a==="uint8"||a==="int16"||a==="uint16",n=i(e)&&i(g)?"float32":"float64",Q=d.zeros(t,n),C=Q.data;for(let a=0;a<o;a++){let B=(P(e),Number(A.iget(a))),s=(P(g),Number(r.iget(a))),E=Math.max(B,s),u=Math.min(B,s);C[a]=E+Math.log1p(Math.exp(u-E))}return Q}function aP(A,r){let I=ad(A,r);if(I)return I;let t=A.dtype,o=Array.from(A.shape),e=A.size,g=A.isCContiguous,i=t==="float32"||t==="int8"||t==="uint8"||t==="int16"||t==="uint16"?"float32":"float64",n=d.zeros(o,i),Q=n.data;if(g){let C=A.offset;for(let a=0;a<e;a++){let B=Number(A.data[C+a]),s=Math.max(B,r),E=Math.min(B,r);Q[a]=s+Math.log1p(Math.exp(E-s))}}else for(let C=0;C<e;C++){let a=Number(A.iget(C)),B=Math.max(a,r),s=Math.min(a,r);Q[C]=B+Math.log1p(Math.exp(s-B))}return n}function hd(A,r){return gA(A.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof r!="number"&&gA(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof r=="number"?sP(A,r):BP(A,r)}function BP(A,r){let I=jr(A.shape,r.shape),t=I.reduce((C,a)=>C*a,1),o=A.dtype,e=r.dtype,g=o==="float32"&&e==="float32"?"float32":"float64",i=d.zeros(I,g),n=i.data,Q=Math.LOG2E;for(let C=0;C<t;C++){let a=(P(o),Number(A.iget(C))),B=(P(e),Number(r.iget(C))),s=Math.max(a,B),E=Math.min(a,B);n[C]=s+Math.log1p(Math.pow(2,E-s))*Q}return i}function sP(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.size,e=A.isCContiguous,g=I==="float32"?"float32":"float64",i=d.zeros(t,g),n=i.data,Q=Math.LOG2E;if(e){let C=A.offset;for(let a=0;a<o;a++){let B=Number(A.data[C+a]),s=Math.max(B,r),E=Math.min(B,r);n[a]=s+Math.log1p(Math.pow(2,E-s))*Q}}else for(let C=0;C<o;C++){let a=Number(A.iget(C)),B=Math.max(a,r),s=Math.min(a,r);n[C]=B+Math.log1p(Math.pow(2,s-B))*Q}return i}function no(A,r){let I=typeof r=="number"?r:G(r);return q(Aw(G(A),I))}function Qo(A,r){let I=typeof r=="number"?r:G(r);return q(rw(G(A),I))}function Co(A,r){let I=typeof r=="number"?r:G(r);return q(Iw(G(A),I))}function ao(A){return q(Bd(G(A)))}function Bo(A,r){let I=typeof r=="number"?r:G(r);return q(sd(G(A),I))}function so(A){return q(Ed(G(A)))}function Eo(A){return q(ud(G(A)))}function uo(A){return q(cd(G(A)))}function co(A){return q(Dd(G(A)))}function Do(A){return q(fd(G(A)))}function fo(A){return q(yd(G(A)))}function yo(A){return q(md(G(A)))}function mo(A,r){let I=typeof r=="number"?r:G(r);return q(ld(G(A),I))}function lo(A,r){let I=typeof r=="number"?r:G(r);return q(hd(G(A),I))}function ho(A){return q(ow(G(A)))}function wo(A){return q(ew(G(A)))}function bo(A){return q(gw(G(A)))}function po(A,r){let I=typeof r=="number"?r:G(r);return q(Sn(G(A),I))}function XI(A,r){let I=typeof r=="number"?r:G(r);return q(tw(G(A),I))}var Mn=XI;function No(A,r){let I=typeof r=="number"?r:G(r);return q(VB(G(A),I))}function Fo(A){return q(iw(G(A)))}function Go(A){return q(nw(G(A)))}function So(A){return q(Qw(G(A)))}function Ro(A){return q(Cw(G(A)))}function ko(A,r){let I=typeof r=="number"?r:G(r);return mn(aw(G(A),I))}function qo(A){return q(Bw(G(A)))}function Mo(A,r){let I=typeof r=="number"?r:G(r);return q(sw(G(A),I))}function Jo(A,r){let I=typeof r=="number"?r:G(r);return q(WB(G(A),I))}function fs(A,r){let I=typeof r=="number"?r:G(r);return q(Ew(G(A),I))}function ys(A,r){let I=typeof r=="number"?r:G(r);return q(uw(G(A),I))}function ms(A){return mn(cw(G(A)))}function ls(A,r){let I=typeof r=="number"?r:G(r);return q(Dw(G(A),I))}function hs(A,r){let I=typeof r=="number"?r:G(r);return q(fw(G(A),I))}function ws(A,r){let I=typeof r=="number"?r:G(r);return q(ZB(G(A),I))}function ds(A){return mn(yw(G(A)))}function xo(A,r,I){let t=r===null?null:typeof r=="number"?r:G(r),o=I===null?null:typeof I=="number"?I:G(I);return q(mw(G(A),t,o))}function bs(A,r){let I=typeof r=="number"?r:G(r);return q(lw(G(A),I))}function ps(A,r){let I=typeof r=="number"?r:G(r);return q(hw(G(A),I))}function Ns(A,r){let I=typeof r=="number"?r:G(r);return q(ww(G(A),I))}function Fs(A,r){let I=typeof r=="number"?r:G(r);return q(dw(G(A),I))}function Gs(A,r=0,I,t){return q(bw(G(A),r,I,t))}function Ss(A,r,I,t,o){return q(pw(G(A),G(r),G(I),t,o))}function Rs(A,r=Math.PI,I=-1,t=2*Math.PI){return q(Nw(G(A),r,I,t))}function ks(A){return q(Fw(G(A)))}function qs(A){return q(Gw(G(A)))}var uP="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",Uo=null;function wd(){if(Uo)return Uo;let A=atob(uP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Uo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Uo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Uo}function Ms(A,r,I){wd().exports.cos_f64(A,r,I)}function Js(A,r,I){wd().exports.cos_f32(A,r,I)}var cP=64,DP={float64:Ms,float32:Js};function dd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<cP*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);Js(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=DP[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);Ms(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var fP="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BEEBaiEEIAZEAAAAAAAA8D+gIgZEMWNiGmG00D2iIQggACAGRAAAQFT7Ifm/oqAhBwwBCyAEQX9qIQQgBkQAAAAAAADwv6AiBkQxY2IaYbTQPaIhCCAAIAZEAABAVPsh+b+ioCEHCyABIAcgCKEiADkDAAJAIAC9QoCAgICAgID4/wCDQoCAgICAgICIP1oNACABIAcgBkQAAGAaYbTQPaIiAKEiCSAGRHNwAy6KGaM7oiAHIAmhIAChoSIIoSIAOQMAAkAgAL1CgICAgICAgID/AINC//////////88WA0AIAkhBwwBCyABIAkgBkQAAAAuihmjO6IiAKEiByAGRMFJICWag3s5oiAJIAehIAChoSIIoSIAOQMACyABIAcgAKEgCKE5AwgMAwsgASAHIAihIgA5AwACQCAAvUKAgICAgICA+P8Ag0KAgICAgICAiD9aDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAC9QoCAgICAgICA/wCDQv//////////PFgNACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMIDAILIAEgByAIoSIAOQMAAkAgBUEUdiIKIAC9QjSIp0H/D3FrQRBMDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAogAL1CNIinQf8PcWtBMk4NACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMIDAELIAEgByAIoSIAOQMAAkAgBUEUdiIKIAC9QjSIp0H/D3FrQRBMDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAogAL1CNIinQf8PcWtBMk4NACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMICyACQTBqJICAgIAAIAQL4AcIAX8CfgJ8AnsBfwF8An8BfCOAgICAAEEQ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",Lo=null;function bd(){if(Lo)return Lo;let A=atob(fP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Lo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Lo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Lo}function xs(A,r,I){bd().exports.tan_f64(A,r,I)}function Us(A,r,I){bd().exports.tan_f32(A,r,I)}var yP=64,mP={float64:xs,float32:Us};function pd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<yP*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);Us(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=mP[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);xs(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var lP="AGFzbQEAAAABDAJgA39/fwBgAXwBfAIPAQNlbnYGbWVtb3J5AgAQAwYFAAEAAAAGCQF/AUGAgMAACwc1BAphcmNzaW5fZjY0AAAKYXJjc2luX2YzMgACCmFyY3Npbl9pNjQAAwphcmNzaW5fdTY0AAQKvQYFNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwviBAQBfgF/A3wBewJAAkAgAL0iAUIgiKdB/////wdxIgJBgIDA/wNJDQBEAAAAAAAA+H8hAyACQYCAwIB8aiABp3INASAARBgtRFT7Ifk/okQAAAAAAABwOKAPCwJAIAJBgICA/wNJDQBEAAAAAAAA8D8gAJmhRAAAAAAAAOA/oiIAIAAgACAAIAAgAEQJ9/0N4T0CP6JEiLIBdeDvST+gokQ7j2i1KIKkv6CiRFVEiA5Vwck/oKJEfW/rAxLW1L+gokRVVVVVVVXFP6CiIAAgACAAIABEgpIuscW4sz+iRFkBjRtsBua/oKJEyIpZnOUqAECgokRLLYocJzoDwKCiRAAAAAAAAPA/oKMhBCAAnyEDAkACQCACQbLmvP8DTQ0ARBgtRFT7Ifk/IAMgAyAEoqAiACAAoKEhAAwBC0QYLURU+yHpPyADvUKAgICAcIO/IgUgBaChRAdcFDMmppE8IAAgBSAFoqEgAyAFoKMiACAAoKEgAyADoCAEoqGgRBgtRFT7Iek/oCEACyAAmiAAIAFCAFMbDwsCQCACQYCAQGpBgICA8gNPDQAgAA8LIAAgACAAIACiIgMgA/0UIgYgBiAGIAb9DAAAAAAAAAAAgpIuscW4sz8gA0QJ9/0N4T0CP6JEiLIBdeDvST+g/SIA/fIB/Qw7j2i1KIKkv1kBjRtsBua//fAB/fIB/QxVRIgOVcHJP8iKWZzlKgBA/fAB/fIB/Qx9b+sDEtbUv0stihwnOgPA/fAB/fIB/QxVVVVVVVXFPwAAAAAAAPA//fABIgb9IQCiIAb9IQGjoqAhAwsgAws2AAJAIAJFDQADQCABIAAqAgC7EIGAgIAAtjgCACABQQRqIQEgAEEEaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuRCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuhCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsL",Ho=null;function Jn(){if(Ho)return Ho;let A=atob(lP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ho=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ho.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ho}function Ls(A,r,I){Jn().exports.arcsin_f64(A,r,I)}function Hs(A,r,I){Jn().exports.arcsin_f32(A,r,I)}function Nd(A,r,I){Jn().exports.arcsin_i64(A,r,I)}function Fd(A,r,I){Jn().exports.arcsin_u64(A,r,I)}var hP=64,wP={float64:Ls,float32:Hs};function Gd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<hP*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);Hs(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=wP[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){x(r*16),U();let a=A.offset,B=A.data.subarray(a,a+r),s=R(B),E=H(r*8);(I==="int64"?Nd:Fd)(s,E,r);let u=_(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);Ls(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var dP="AGFzbQEAAAABDAJgA39/fwBgAXwBfAIPAQNlbnYGbWVtb3J5AgAQAwYFAAEAAAAGCQF/AUGAgMAACwc1BAphcmNjb3NfZjY0AAAKYXJjY29zX2YzMgACCmFyY2Nvc19pNjQAAwphcmNjb3NfdTY0AAQK8QcFNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwuWBgUBfgF/AXwBewF8AkAgAL0iAUIgiKdB/////wdxIgJBgIDA/wNJDQACQCACQYCAwIB8aiABp3JFDQBEAAAAAAAA+H8PC0QAAAAAAAAAAEQYLURU+yEJQCABQn9VGw8LAkAgAkGAgID/A0kNAAJAIAFCf1UNAEQYLURU+yH5PyAARAAAAAAAAPA/oEQAAAAAAADgP6IiAJ8iAyADIAAgAP0UIgQgBCAEIAT9DAAAAAAAAAAAgpIuscW4sz8gAEQJ9/0N4T0CP6JEiLIBdeDvST+g/SIA/fIB/Qw7j2i1KIKkv1kBjRtsBua//fAB/fIB/QxVRIgOVcHJP8iKWZzlKgBA/fAB/fIB/Qx9b+sDEtbUv0stihwnOgPA/fAB/fIB/QxVVVVVVVXFPwAAAAAAAPA//fABIgT9IQCiIAT9IQGjokQHXBQzJqaRvKCgoSIAIACgDwtEAAAAAAAA8D8gAKFEAAAAAAAA4D+iIgAgAJ8iBb1CgICAgHCDvyIDIAOioSAFIAOgoyAFIAAgAP0UIgQgBCAEIAT9DAAAAAAAAAAAgpIuscW4sz8gAEQJ9/0N4T0CP6JEiLIBdeDvST+g/SIA/fIB/Qw7j2i1KIKkv1kBjRtsBua//fAB/fIB/QxVRIgOVcHJP8iKWZzlKgBA/fAB/fIB/Qx9b+sDEtbUv0stihwnOgPA/fAB/fIB/QxVVVVVVVXFPwAAAAAAAPA//fABIgT9IQCiIAT9IQGjoqAgA6AiACAAoA8LAkAgAkGBgIDjA08NAEQYLURU+yH5Pw8LRAdcFDMmppE8IAAgACAAoiIDIAP9FCIEIAQgBCAE/QwAAAAAAAAAAIKSLrHFuLM/IANECff9DeE9Aj+iRIiyAXXg70k/oP0iAP3yAf0MO49otSiCpL9ZAY0bbAbmv/3wAf3yAf0MVUSIDlXByT/Iilmc5SoAQP3wAf3yAf0MfW/rAxLW1L9LLYocJzoDwP3wAf3yAf0MVVVVVVVVxT8AAAAAAADwP/3wASIE/SEAoiAE/SEBo6KhIAChRBgtRFT7Ifk/oAs2AAJAIAJFDQADQCABIAAqAgC7EIGAgIAAtjgCACABQQRqIQEgAEEEaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuRCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuhCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsL",Yo=null;function xn(){if(Yo)return Yo;let A=atob(dP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Yo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Yo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Yo}function Ys(A,r,I){xn().exports.arccos_f64(A,r,I)}function Ps(A,r,I){xn().exports.arccos_f32(A,r,I)}function Sd(A,r,I){xn().exports.arccos_i64(A,r,I)}function Rd(A,r,I){xn().exports.arccos_u64(A,r,I)}var bP=64,pP={float64:Ys,float32:Ps};function kd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<bP*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);Ps(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=pP[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){x(r*16),U();let a=A.offset,B=A.data.subarray(a,a+r),s=R(B),E=H(r*8);(I==="int64"?Sd:Rd)(s,E,r);let u=_(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);Ys(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var NP="AGFzbQEAAAABDAJgA39/fwBgAXwBfAIPAQNlbnYGbWVtb3J5AgARAwYFAAEAAAAGCQF/AUGAgMAACwc1BAphcmN0YW5fZjY0AAAKYXJjdGFuX2YzMgACCmFyY3Rhbl9pNjQAAwphcmN0YW5fdTY0AAQKmQYFNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwu+BAQBfwF+An8DfCOAgICAAEEQayIBJICAgIAAAkACQCAAvSICQiCIp0H/////B3EiA0GAgMCgBEkNACAARBgtRFT7Ifk/IACmIAAgAGIbIQAMAQsCQAJAIANBgIDw/gNJDQAgAJkhAAJAIANBgIDM/wNPDQACQCADQYCAmP8DTw0AIAAgAKBEAAAAAAAA8L+gIABEAAAAAAAAAECgoyEAQQAhBAwDCyAARAAAAAAAAPC/oCAARAAAAAAAAPA/oKMhAEEBIQQMAgsCQCADQYCAjoAESQ0ARAAAAAAAAPC/IACjIQBBAyEEDAILIABEAAAAAAAA+L+gIABEAAAAAAAA+D+iRAAAAAAAAPA/oKMhAEECIQQMAQsCQCADQYCAgPIDSQ0ADAELIANB//8/Sw0BIAEgALY4AgwgAUEMaiEDDAELIAAgAKIiBSAFoiIGIAYgBiAGIAZEL2xqLES0or+iRJr93lIt3q2/oKJEbZp0r/Kws7+gokRxFiP+xnG8v6CiRMTrmJmZmcm/oKIhByAFIAYgBiAGIAYgBkQR2iLjOq2QP6JE6w12JEt7qT+gokRRPdCgZg2xP6CiRG4gTMXNRbc/oKJE/4MAkiRJwj+gokQNVVVVVVXVP6CiIQYCQCADQYCA8P4DSQ0AIARBA3QiA0GAgMCAAGorAwAgACAHIAagoiADQaCAwIAAaisDAKEgAKGhIgCaIAAgAkIAUxshAAwBCyAAIAAgByAGoKKhIQALIAFBEGokgICAgAAgAAs2AAJAIAJFDQADQCABIAAqAgC7EIGAgIAAtjgCACABQQRqIQEgAEEEaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuRCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuhCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLC0kBAEGAgMAAC0BPu2EFZ6zdPxgtRFT7Iek/m/aB0gtz7z8YLURU+yH5P+JlLyJ/K3o8B1wUMyamgTy9y/B6iAdwPAdcFDMmppE8",Po=null;function Un(){if(Po)return Po;let A=atob(NP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Po=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Po.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Po}function _s(A,r,I){Un().exports.arctan_f64(A,r,I)}function Ks(A,r,I){Un().exports.arctan_f32(A,r,I)}function qd(A,r,I){Un().exports.arctan_i64(A,r,I)}function Md(A,r,I){Un().exports.arctan_u64(A,r,I)}var FP=64,GP={float64:_s,float32:Ks};function Jd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<FP*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);Ks(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=GP[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){x(r*16),U();let a=A.offset,B=A.data.subarray(a,a+r),s=R(B),E=H(r*8);(I==="int64"?qd:Md)(s,E,r);let u=_(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);_s(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var SP="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",_o=null;function ar(){if(_o)return _o;let A=atob(SP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);_o=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=_o.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),_o}function xd(A,r,I,t){ar().exports.hypot_f64(A,r,I,t)}function Ud(A,r,I,t){ar().exports.hypot_scalar_f64(A,r,I,t)}function vs(A,r,I,t){ar().exports.hypot_f32(A,r,I,t)}function Xs(A,r,I,t){ar().exports.hypot_scalar_f32(A,r,I,t)}function Ts(A,r,I,t){ar().exports.hypot_i64(A,r,I,t)}function Os(A,r,I,t){ar().exports.hypot_scalar_i64(A,r,I,BigInt(Math.round(t)))}function Vs(A,r,I,t){ar().exports.hypot_i32(A,r,I,t)}function Ws(A,r,I,t){ar().exports.hypot_scalar_i32(A,r,I,t)}function Zs(A,r,I,t){ar().exports.hypot_i16(A,r,I,t)}function zs(A,r,I,t){ar().exports.hypot_scalar_i16(A,r,I,t)}function js(A,r,I,t){ar().exports.hypot_i8(A,r,I,t)}function $s(A,r,I,t){ar().exports.hypot_scalar_i8(A,r,I,t)}var Ld=64,RP={float64:xd,float32:vs,float16:vs},kP={float64:Ud,float32:Xs,float16:Xs},qP={int64:Ts,uint64:Ts,int32:Vs,uint32:Vs,int16:Zs,uint16:Zs,int8:js,uint8:js},MP={int64:Os,uint64:Os,int32:Ws,uint32:Ws,int16:zs,uint16:zs,int8:$s,uint8:$s},Ln={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Hd(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Ld*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=RP[t];if(o){let g=Ln[t],i=g.BYTES_PER_ELEMENT;x(I*i*3),U();let n=AA(A.data.subarray(A.offset,A.offset+I),A.dtype),Q=AA(r.data.subarray(r.offset,r.offset+I),r.dtype),C=R(n),a=R(Q),B=H(I*i);o(C,a,B,I);let s=_(B,I,g),E=eA(s,t);return d.fromData(E,Array.from(A.shape),t)}let e=qP[t];if(e){let i=Ln[t].BYTES_PER_ELEMENT,n=8;x(I*i*2+I*n),U();let Q=A.data.subarray(A.offset,A.offset+I),C=r.data.subarray(r.offset,r.offset+I),a=R(Q),B=R(C),s=H(I*n);e(a,B,s,I);let E=_(s,I,Float64Array);return d.fromData(E,Array.from(A.shape),"float64")}return null}function Yd(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Ld*K.thresholdMultiplier)return null;let t=A.dtype,o=kP[t];if(o){let g=Ln[t],i=g.BYTES_PER_ELEMENT;x(I*i*2),U();let n=AA(A.data.subarray(A.offset,A.offset+I),t),Q=R(n),C=H(I*i);o(Q,C,I,r);let a=_(C,I,g),B=eA(a,t);return d.fromData(B,Array.from(A.shape),t)}let e=MP[t];if(e){let i=Ln[t].BYTES_PER_ELEMENT,n=8;x(I*i+I*n),U();let Q=A.data.subarray(A.offset,A.offset+I),C=R(Q),a=H(I*n);e(C,a,I,r);let B=_(a,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}return null}function vd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),t=A.size,o=A.isCContiguous,e=d.zeros(I,r),g=e.data;if(o){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++){let C=i[(n+Q)*2],a=i[(n+Q)*2+1];g[Q*2]=Math.sin(C)*Math.cosh(a),g[Q*2+1]=Math.cos(C)*Math.sinh(a)}}else for(let i=0;i<t;i++){let n=A.iget(i),Q=n.re,C=n.im;g[i*2]=Math.sin(Q)*Math.cosh(C),g[i*2+1]=Math.cos(Q)*Math.sinh(C)}return e}return wA(A,Math.sin,!1)}function Xd(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.isCContiguous,g=d.zeros(t,r),i=g.data;if(e){let n=A.data,Q=A.offset;for(let C=0;C<o;C++){let a=n[(Q+C)*2],B=n[(Q+C)*2+1];i[C*2]=Math.cos(a)*Math.cosh(B),i[C*2+1]=-Math.sin(a)*Math.sinh(B)}}else for(let n=0;n<o;n++){let Q=A.iget(n),C=Q.re,a=Q.im;i[n*2]=Math.cos(C)*Math.cosh(a),i[n*2+1]=-Math.sin(C)*Math.sinh(a)}return g}let I=dd(A);return I||wA(A,Math.cos,!1)}function Td(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.isCContiguous,g=d.zeros(t,r),i=g.data;if(e){let n=A.data,Q=A.offset;for(let C=0;C<o;C++){let a=n[(Q+C)*2],B=n[(Q+C)*2+1],s=Math.cos(2*a)+Math.cosh(2*B);i[C*2]=Math.sin(2*a)/s,i[C*2+1]=Math.sinh(2*B)/s}}else for(let n=0;n<o;n++){let Q=A.iget(n),C=Q.re,a=Q.im,B=Math.cos(2*C)+Math.cosh(2*a);i[n*2]=Math.sin(2*C)/B,i[n*2+1]=Math.sinh(2*a)/B}return g}let I=pd(A);return I||wA(A,Math.tan,!1)}function Od(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.isCContiguous,g=d.zeros(t,r),i=g.data;if(e){let n=A.data,Q=A.offset;for(let C=0;C<o;C++){let a=n[(Q+C)*2],B=n[(Q+C)*2+1],[s,E]=Pd(a,B);i[C*2]=s,i[C*2+1]=E}}else for(let n=0;n<o;n++){let Q=A.iget(n),[C,a]=Pd(Q.re,Q.im);i[n*2]=C,i[n*2+1]=a}return g}let I=Gd(A);return I||wA(A,Math.asin,!1)}function Pd(A,r){let I=-r,t=A,o=A*A-r*r,e=2*A*r,g=1-o,i=-e,n=Math.sqrt(g*g+i*i),Q=Math.sqrt((n+g)/2),C=(i>=0?1:-1)*Math.sqrt((n-g)/2),a=I+Q,B=t+C,s=Math.sqrt(a*a+B*B),E=Math.log(s),D=Math.atan2(B,a),y=-E;return Math.abs(r)<1e-15&&A>1&&(y=-y),[D,y]}function Vd(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.isCContiguous,g=d.zeros(t,r),i=g.data;if(e){let n=A.data,Q=A.offset;for(let C=0;C<o;C++){let a=n[(Q+C)*2],B=n[(Q+C)*2+1],[s,E]=_d(a,B);i[C*2]=s,i[C*2+1]=E}}else for(let n=0;n<o;n++){let Q=A.iget(n),[C,a]=_d(Q.re,Q.im);i[n*2]=C,i[n*2+1]=a}return g}let I=kd(A);return I||wA(A,Math.acos,!1)}function _d(A,r){let I=A*A-r*r,t=2*A*r,o=1-I,e=-t,g=Math.sqrt(o*o+e*e),i=Math.sqrt((g+o)/2),Q=-((e>=0?1:-1)*Math.sqrt((g-o)/2)),C=i,a=A+Q,B=r+C,s=Math.sqrt(a*a+B*B),E=Math.log(s),D=Math.atan2(B,a),y=-E;return Math.abs(r)<1e-15&&A>1&&(y=-y),[D,y]}function Wd(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.isCContiguous,g=d.zeros(t,r),i=g.data;if(e){let n=A.data,Q=A.offset;for(let C=0;C<o;C++){let a=n[(Q+C)*2],B=n[(Q+C)*2+1],[s,E]=Kd(a,B);i[C*2]=s,i[C*2+1]=E}}else for(let n=0;n<o;n++){let Q=A.iget(n),[C,a]=Kd(Q.re,Q.im);i[n*2]=C,i[n*2+1]=a}return g}let I=Jd(A);return I||wA(A,Math.atan,!1)}function Kd(A,r){let I=-r,t=A,o=1-I,e=-t,g=1+I,i=t,n=g*g+i*i,Q=(o*g+e*i)/n,C=(e*g-o*i)/n,a=Math.sqrt(Q*Q+C*C),B=Math.log(a);return[-Math.atan2(C,Q)/2,B/2]}function Zd(A,r){return gA(A.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r!="number"&&gA(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r=="number"?xP(A,r):JP(A,r)}function JP(A,r){let I=Array.from(A.shape),t=A.size,o=A.dtype,e=r.dtype,g=o==="float32"&&e==="float32"?"float32":"float64",i=d.zeros(I,g),n=i.data,Q=A.isCContiguous,C=r.isCContiguous;if(Q&&C){let a=A.offset,B=r.offset;for(let s=0;s<t;s++){let E=Number(A.data[a+s]),u=Number(r.data[B+s]);n[s]=Math.atan2(E,u)}}else if(Q){let a=A.offset;for(let B=0;B<t;B++){let s=Number(A.data[a+B]),E=Number(r.iget(B));n[B]=Math.atan2(s,E)}}else if(C){let a=r.offset;for(let B=0;B<t;B++){let s=Number(A.iget(B)),E=Number(r.data[a+B]);n[B]=Math.atan2(s,E)}}else for(let a=0;a<t;a++){let B=Number(A.iget(a)),s=Number(r.iget(a));n[a]=Math.atan2(B,s)}return i}function xP(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.size,e=I==="float32"?"float32":"float64",g=d.zeros(t,e),i=g.data;if(A.isCContiguous){let Q=A.data,C=A.offset;if(P(I))for(let a=0;a<o;a++)i[a]=Math.atan2(Number(Q[C+a]),r);else for(let a=0;a<o;a++)i[a]=Math.atan2(Number(Q[C+a]),r)}else for(let Q=0;Q<o;Q++)i[Q]=Math.atan2(Number(A.iget(Q)),r);return g}function zd(A,r){return gA(A.dtype,"hypot","hypot is only defined for real numbers."),typeof r!="number"&&gA(r.dtype,"hypot","hypot is only defined for real numbers."),typeof r=="number"?LP(A,r):UP(A,r)}function UP(A,r){let I=Hd(A,r);if(I)return I;let t=Array.from(A.shape),o=A.size,e=A.dtype,g=r.dtype,i=e==="float32"&&g==="float32"?"float32":"float64",n=d.zeros(t,i),Q=n.data,C=A.isCContiguous,a=r.isCContiguous;if(C&&a){let B=A.offset,s=r.offset;for(let E=0;E<o;E++){let u=Number(A.data[B+E]),D=Number(r.data[s+E]);Q[E]=Math.hypot(u,D)}}else if(C){let B=A.offset;for(let s=0;s<o;s++){let E=Number(A.data[B+s]),u=Number(r.iget(s));Q[s]=Math.hypot(E,u)}}else if(a){let B=r.offset;for(let s=0;s<o;s++){let E=Number(A.iget(s)),u=Number(r.data[B+s]);Q[s]=Math.hypot(E,u)}}else for(let B=0;B<o;B++){let s=Number(A.iget(B)),E=Number(r.iget(B));Q[B]=Math.hypot(s,E)}return n}function LP(A,r){let I=Yd(A,r);if(I)return I;let t=A.dtype,o=Array.from(A.shape),e=A.size,g=t==="float32"?"float32":"float64",i=d.zeros(o,g),n=i.data;if(A.isCContiguous){let C=A.data,a=A.offset;if(P(t))for(let B=0;B<e;B++)n[B]=Math.hypot(Number(C[a+B]),r);else for(let B=0;B<e;B++)n[B]=Math.hypot(Number(C[a+B]),r)}else for(let C=0;C<e;C++)n[C]=Math.hypot(Number(A.iget(C)),r);return i}function AE(A){gA(A.dtype,"degrees","degrees is only defined for real numbers.");let r=180/Math.PI;return wA(A,I=>I*r,!1)}function rE(A){gA(A.dtype,"radians","radians is only defined for real numbers.");let r=Math.PI/180;return wA(A,I=>I*r,!1)}function jd(A){return rE(A)}function $d(A){return AE(A)}var YP="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",Ko=null;function Hn(){if(Ko)return Ko;let A=atob(YP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ko=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ko.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ko}function IE(A,r,I){Hn().exports.sinh_f64(A,r,I)}function tE(A,r,I){Hn().exports.sinh_f32(A,r,I)}function Ab(A,r,I){Hn().exports.sinh_i64(A,r,I)}function rb(A,r,I){Hn().exports.sinh_u64(A,r,I)}var PP=64,_P={float64:IE,float32:tE};function Ib(A){if(!A.isCContiguous)return null;let r=A.size;if(r<PP*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);tE(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=_P[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){x(r*16),U();let a=A.offset,B=A.data.subarray(a,a+r),s=R(B),E=H(r*8);(I==="int64"?Ab:rb)(s,E,r);let u=_(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);IE(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var KP="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",vo=null;function Yn(){if(vo)return vo;let A=atob(KP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);vo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=vo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),vo}function oE(A,r,I){Yn().exports.cosh_f64(A,r,I)}function eE(A,r,I){Yn().exports.cosh_f32(A,r,I)}function tb(A,r,I){Yn().exports.cosh_i64(A,r,I)}function ob(A,r,I){Yn().exports.cosh_u64(A,r,I)}var vP=64,XP={float64:oE,float32:eE};function eb(A){if(!A.isCContiguous)return null;let r=A.size;if(r<vP*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);eE(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=XP[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){x(r*16),U();let a=A.offset,B=A.data.subarray(a,a+r),s=R(B),E=H(r*8);(I==="int64"?tb:ob)(s,E,r);let u=_(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);oE(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}var TP="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",Xo=null;function Pn(){if(Xo)return Xo;let A=atob(TP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Xo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Xo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Xo}function gE(A,r,I){Pn().exports.tanh_f64(A,r,I)}function iE(A,r,I){Pn().exports.tanh_f32(A,r,I)}function gb(A,r,I){Pn().exports.tanh_i64(A,r,I)}function ib(A,r,I){Pn().exports.tanh_u64(A,r,I)}var OP=64,VP={float64:gE,float32:iE};function nb(A){if(!A.isCContiguous)return null;let r=A.size;if(r<OP*K.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;if(I==="float16"){x(r*4*2),U();let B=A.offset,s=AA(A.data.subarray(B,B+r),I),E=R(s),u=H(r*4);iE(E,u,r);let D=_(u,r,Float32Array);return d.fromData(eA(D,I),Array.from(A.shape),I)}let t=VP[I];if(t){let a=I==="float32",B=a?4:8,s=a?Float32Array:Float64Array;x(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=R(u),y=H(r*B);t(D,y,r);let f=_(y,r,s);return d.fromData(f,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){x(r*16),U();let a=A.offset,B=A.data.subarray(a,a+r),s=R(B),E=H(r*8);(I==="int64"?gb:ib)(s,E,r);let u=_(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let o=8;x(r*o*2),U();let e=A.offset,g=A.data,i=new Float64Array(r);if(P(I))for(let a=0;a<r;a++)i[a]=Number(g[e+a]);else for(let a=0;a<r;a++)i[a]=g[e+a];let n=R(i),Q=H(r*o);gE(n,Q,r);let C=_(Q,r,Float64Array);return d.fromData(C,Array.from(A.shape),"float64")}function Qb(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.data,g=d.zeros(t,r),i=g.data;for(let n=0;n<o;n++){let Q=e[n*2],C=e[n*2+1];i[n*2]=Math.sinh(Q)*Math.cos(C),i[n*2+1]=Math.cosh(Q)*Math.sin(C)}return g}let I=Ib(A);return I||wA(A,Math.sinh,!1)}function Cb(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.data,g=d.zeros(t,r),i=g.data;for(let n=0;n<o;n++){let Q=e[n*2],C=e[n*2+1];i[n*2]=Math.cosh(Q)*Math.cos(C),i[n*2+1]=Math.sinh(Q)*Math.sin(C)}return g}let I=eb(A);return I||wA(A,Math.cosh,!1)}function ab(A){let r=A.dtype;if(k(r)){let t=Array.from(A.shape),o=A.size,e=A.data,g=d.zeros(t,r),i=g.data;for(let n=0;n<o;n++){let Q=e[n*2],C=e[n*2+1],a=Math.cosh(2*Q)+Math.cos(2*C);i[n*2]=Math.sinh(2*Q)/a,i[n*2+1]=Math.sin(2*C)/a}return g}let I=nb(A);return I||wA(A,Math.tanh,!1)}function Bb(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),t=A.size,o=A.data,e=d.zeros(I,r),g=e.data;for(let i=0;i<t;i++){let n=o[i*2],Q=o[i*2+1],C=n*n-Q*Q,a=2*n*Q,B=C+1,s=a,E=Math.sqrt(B*B+s*s),u=Math.sqrt((E+B)/2),D=(s>=0?1:-1)*Math.sqrt((E-B)/2),y=n+u,f=Q+D,c=Math.sqrt(y*y+f*f);g[i*2]=Math.log(c),g[i*2+1]=Math.atan2(f,y)}return e}return wA(A,Math.asinh,!1)}function sb(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),t=A.size,o=A.data,e=d.zeros(I,r),g=e.data;for(let i=0;i<t;i++){let n=o[i*2],Q=o[i*2+1],C=n*n-Q*Q,a=2*n*Q,B=C-1,s=a,E=Math.sqrt(B*B+s*s),u=Math.sqrt((E+B)/2),D=(s>=0?1:-1)*Math.sqrt((E-B)/2),y=n+u,f=Q+D,c=Math.sqrt(y*y+f*f),m=Math.log(c),l=Math.atan2(f,y);Math.abs(Q)<1e-15&&n<1&&(l=-l),g[i*2]=m,g[i*2+1]=l}return e}return wA(A,Math.acosh,!1)}function Eb(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),t=A.size,o=A.data,e=d.zeros(I,r),g=e.data;for(let i=0;i<t;i++){let n=o[i*2],Q=o[i*2+1],C=1+n,a=Q,B=1-n,s=-Q,E=B*B+s*s,u=(C*B+a*s)/E,D=(a*B-C*s)/E,y=Math.sqrt(u*u+D*D),f=Math.log(y),c=Math.atan2(D,u);g[i*2]=f/2,g[i*2+1]=c/2}return e}return wA(A,Math.atanh,!1)}function To(A){return q(vd(G(A)))}function Oo(A){return q(Xd(G(A)))}function Vo(A){return q(Td(G(A)))}function Wo(A){return q(Od(G(A)))}function Zo(A){return q(Vd(G(A)))}function zo(A){return q(Wd(G(A)))}function jo(A,r){let I=typeof r=="number"?r:G(r);return q(Zd(G(A),I))}function $o(A,r){let I=typeof r=="number"?r:G(r);return q(zd(G(A),I))}function Ae(A){return q(AE(G(A)))}function re(A){return q(rE(G(A)))}function nE(A){return q(jd(G(A)))}function QE(A){return q($d(G(A)))}function Ie(A){return q(Qb(G(A)))}function te(A){return q(Cb(G(A)))}function oe(A){return q(ab(G(A)))}function ee(A){return q(Bb(G(A)))}function ge(A){return q(sb(G(A)))}function ie(A){return q(Eb(G(A)))}var ZP="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",ne=null;function rI(){if(ne)return ne;let A=atob(ZP),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ne=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ne.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ne}function ub(A,r,I,t,o,e){rI().exports.matmul_f64(A,r,I,t,o,e)}function CE(A,r,I,t,o,e){rI().exports.matmul_f32(A,r,I,t,o,e)}function cb(A,r,I,t,o,e,g){rI().exports.matmul_c64(A,r,I,t,o,e,g)}function Db(A,r,I,t,o,e,g){rI().exports.matmul_c128(A,r,I,t,o,e,g)}function aE(A,r,I,t,o,e){rI().exports.matmul_i64(A,r,I,t,o,e)}function BE(A,r,I,t,o,e){rI().exports.matmul_i32(A,r,I,t,o,e)}function sE(A,r,I,t,o,e){rI().exports.matmul_i16(A,r,I,t,o,e)}function EE(A,r,I,t,o,e){rI().exports.matmul_i8(A,r,I,t,o,e)}var zP=256,jP={float64:ub,float32:CE,int64:aE,uint64:aE,int32:BE,uint32:BE,int16:sE,uint16:sE,int8:EE,uint8:EE,float16:CE},$P={complex64:cb,complex128:Db},hb={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array},A_={complex128:2,complex64:2};function fb(A,r,I,t,o,e,g,i=1){let n=r.BYTES_PER_ELEMENT,Q=o*e*i*n,C=e*g*i*n,a=o*g*i*n;x(Q+C+a),U();let B=R(I),s=R(t),E=H(a);return A(B,s,E,o,g,e),_(E,o*g*i,r)}function yb(A,r,I,t,o,e,g){let n=r.BYTES_PER_ELEMENT,Q=o*e*2*n,C=e*g*2*n,a=o*g*2*n,s=(2*o*e+2*e*g+3*o*g)*n;x(Q+C+a+s),U();let E=R(I),u=R(t),D=H(a),y=H(s);return A(E,u,D,o,g,e,y),_(D,o*g*2,r)}function TI(A,r){if(A.ndim===0||r.ndim===0)return null;let I=tA(A.dtype,r.dtype);if(I==="bool")return null;let t=I,o=jP[t],e=$P[t],g=hb[t];if(!o&&!e||!g||!A.isCContiguous||!r.isCContiguous)return null;let i=A_[t]??1,n=A.ndim===1,Q=r.ndim===1,C=n?[1,A.shape[0]]:Array.from(A.shape),a=Q?[r.shape[0],1]:Array.from(r.shape),B=C.length,s=a.length,E=C[B-2],u=C[B-1],D=a[s-2],y=a[s-1];if(u!==D||E*u+u*y<zP*K.thresholdMultiplier)return null;let c=t==="float16",m=mb(A,t,i),l=mb(r,t,i);if(c&&(m=AA(m,t),l=AA(l,t)),B===2&&s===2){let v=e?yb(e,g,m,l,E,u,y):fb(o,g,m,l,E,u,y,i),Z;return n&&Q?Z=[]:n?Z=[y]:Q?Z=[E]:Z=[E,y],d.fromData(c?eA(v,t):v,Z,t)}let w=C.slice(0,B-2),h=a.slice(0,s-2),b=r_(w,h),p=b.reduce((v,Z)=>v*Z,1),N=E*u*i,F=u*y*i,S=E*y*i,M=new g(p*S);for(let v=0;v<p;v++){let Z=I_(v,b),O=lb(Z,w),z=lb(Z,h),j=O*N,V=z*F,rA=m.subarray(j,j+N),oA=l.subarray(V,V+F),QA=e?yb(e,g,rA,oA,E,u,y):fb(o,g,rA,oA,E,u,y,i);new Uint8Array(M.buffer,v*S*g.BYTES_PER_ELEMENT,QA.byteLength).set(new Uint8Array(QA.buffer,QA.byteOffset,QA.byteLength))}let Y=[...b,E,y],L=d.fromData(c?eA(M,t):M,Y,t);return n&&Q?uE(L,[...b]):n?uE(L,[...b,y]):Q?uE(L,[...b,E]):L}function mb(A,r,I){let t=A.data,o=A.offset,e=A.size,g=e*I;if(A.dtype===r&&o===0)return t.subarray(0,g);if(A.dtype===r){let Q=o*I;return t.subarray(Q,Q+g)}let i=hb[r];if(!i)throw new Error(`No TypedArray constructor for dtype ${r}`);let n=new i(g);for(let Q=0;Q<e;Q++)n[Q]=Number(A.iget(Q));return n}function uE(A,r){return d.fromData(A.data,r,A.dtype)}function r_(A,r){let I=Math.max(A.length,r.length),t=[];for(let o=0;o<I;o++){let e=o<I-A.length?1:A[o-(I-A.length)],g=o<I-r.length?1:r[o-(I-r.length)];if(e!==g&&e!==1&&g!==1)throw new Error(`matmul: batch shapes not broadcastable: [${A}] vs [${r}]`);t.push(Math.max(e,g))}return t}function I_(A,r){let I=new Array(r.length),t=A;for(let o=r.length-1;o>=0;o--)I[o]=t%r[o],t=Math.floor(t/r[o]);return I}function lb(A,r){let I=A.length-r.length,t=0,o=1;for(let e=r.length-1;e>=0;e--){let g=r[e],i=A[e+I];t+=(g===1?0:i)*o,o*=g}return t}var t_="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",Qe=null;function II(){if(Qe)return Qe;let A=atob(t_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Qe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Qe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Qe}function wb(A,r,I,t,o,e){II().exports.inner_f64(A,r,I,t,o,e)}function db(A,r,I,t,o,e){II().exports.inner_f32(A,r,I,t,o,e)}function bb(A,r,I,t,o,e,g){II().exports.inner_c64(A,r,I,t,o,e,g)}function pb(A,r,I,t,o,e,g){II().exports.inner_c128(A,r,I,t,o,e,g)}function cE(A,r,I,t,o,e){II().exports.inner_i64(A,r,I,t,o,e)}function DE(A,r,I,t,o,e){II().exports.inner_i32(A,r,I,t,o,e)}function fE(A,r,I,t,o,e){II().exports.inner_i16(A,r,I,t,o,e)}function yE(A,r,I,t,o,e){II().exports.inner_i8(A,r,I,t,o,e)}var o_=256,e_={float64:wb,float32:db,int64:cE,uint64:cE,int32:DE,uint32:DE,int16:fE,uint16:fE,int8:yE,uint8:yE},g_={complex64:bb,complex128:pb},i_={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},n_={complex128:2,complex64:2};function Nb(A,r){if(A.ndim===0||r.ndim===0||!A.isCContiguous||!r.isCContiguous)return null;let I=tA(A.dtype,r.dtype),t=e_[I],o=g_[I],e=i_[I];if(!t&&!o||!e)return null;let g=n_[I]??1,i=A.shape[A.ndim-1],n=r.shape[r.ndim-1];if(i!==n)return null;let Q=A.ndim===1?1:A.shape.slice(0,-1).reduce((p,N)=>p*N,1),C=r.ndim===1?1:r.shape.slice(0,-1).reduce((p,N)=>p*N,1);if(Q*i+C*i<o_*K.thresholdMultiplier)return null;let B=e.BYTES_PER_ELEMENT,s=Q*i*g*B,E=C*i*g*B,u=Q*C*g*B,y=(o?2*Q*i+2*C*i+3*Q*C:0)*B;x(s+E+u+y),U();let f=A.data.subarray(A.offset*g,A.offset*g+Q*i*g),c=r.data.subarray(r.offset*g,r.offset*g+C*i*g),m=R(f),l=R(c),w=H(u);if(o){let p=H(y);o(m,l,w,Q,C,i,p)}else t(m,l,w,Q,C,i);let h=_(w,Q*C*g,e);if(A.ndim===1&&r.ndim===1)return g===2?new X(Number(h[0]),Number(h[1])):h[0];let b=[...A.shape.slice(0,-1),...r.shape.slice(0,-1)];return d.fromData(h,b,I)}var Q_="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",Ce=null;function tI(){if(Ce)return Ce;let A=atob(Q_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ce=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ce.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ce}function Fb(A,r,I,t){tI().exports.dot_f64(A,r,I,t)}function Gb(A,r,I,t){tI().exports.dot_f32(A,r,I,t)}function Sb(A,r,I,t){tI().exports.dot_c128(A,r,I,t)}function Rb(A,r,I,t){tI().exports.dot_c64(A,r,I,t)}function mE(A,r,I,t){tI().exports.dot_i64(A,r,I,t)}function lE(A,r,I,t){tI().exports.dot_i32(A,r,I,t)}function hE(A,r,I,t){tI().exports.dot_i16(A,r,I,t)}function wE(A,r,I,t){tI().exports.dot_i8(A,r,I,t)}var C_=128,a_={float64:Fb,float32:Gb,complex128:Sb,complex64:Rb,int64:mE,uint64:mE,int32:lE,uint32:lE,int16:hE,uint16:hE,int8:wE,uint8:wE},B_={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},s_={complex128:2,complex64:2};function _n(A,r){if(A.ndim!==1||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0];if(I!==r.shape[0]||I<C_*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=a_[t],e=B_[t];if(!o||!e)return null;let g=s_[t]??1,i=e.BYTES_PER_ELEMENT,n=I*g*i,Q=I*g*i,C=1*g*i;x(n+Q+C),U();let a=A.data.subarray(A.offset*g,A.offset*g+I*g),B=r.data.subarray(r.offset*g,r.offset*g+I*g),s=R(a),E=R(B),u=H(C);o(s,E,u,I);let D=_(u,1*g,e);return g===2?new X(Number(D[0]),Number(D[1])):Number(D[0])}var E_="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",ae=null;function oI(){if(ae)return ae;let A=atob(E_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ae=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ae.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ae}function kb(A,r,I,t,o){oI().exports.matvec_f64(A,r,I,t,o)}function dE(A,r,I,t,o){oI().exports.matvec_f32(A,r,I,t,o)}function qb(A,r,I,t,o){oI().exports.matvec_c128(A,r,I,t,o)}function Mb(A,r,I,t,o){oI().exports.matvec_c64(A,r,I,t,o)}function bE(A,r,I,t,o){oI().exports.matvec_i64(A,r,I,t,o)}function pE(A,r,I,t,o){oI().exports.matvec_i32(A,r,I,t,o)}function NE(A,r,I,t,o){oI().exports.matvec_i16(A,r,I,t,o)}function FE(A,r,I,t,o){oI().exports.matvec_i8(A,r,I,t,o)}var u_=128,c_={float64:kb,float32:dE,complex128:qb,complex64:Mb,int64:bE,uint64:bE,int32:pE,uint32:pE,int16:NE,uint16:NE,int8:FE,uint8:FE,float16:dE},D_={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array},f_={complex128:2,complex64:2};function GE(A,r){if(A.ndim!==2||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],t=A.shape[1];if(t!==r.shape[0]||I*t<u_*K.thresholdMultiplier)return null;let o=tA(A.dtype,r.dtype),e=c_[o],g=D_[o];if(!e||!g)return null;let i=f_[o]??1,n=g.BYTES_PER_ELEMENT,Q=I*t*i*n,C=t*i*n,a=I*i*n;x(Q+C+a),U();let B=o==="float16",s=A.data.subarray(A.offset*i,A.offset*i+I*t*i),E=r.data.subarray(r.offset*i,r.offset*i+t*i);B&&(s=AA(s,o),E=AA(E,o));let u=R(s),D=R(E),y=H(a);e(u,D,y,I,t);let f=_(y,I*i,g);return d.fromData(B?eA(f,o):f,[I],o)}var y_="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",Be=null;function eI(){if(Be)return Be;let A=atob(y_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Be=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Be.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Be}function Jb(A,r,I,t,o){eI().exports.vecmat_f64(A,r,I,t,o)}function SE(A,r,I,t,o){eI().exports.vecmat_f32(A,r,I,t,o)}function xb(A,r,I,t,o){eI().exports.vecmat_c128(A,r,I,t,o)}function Ub(A,r,I,t,o){eI().exports.vecmat_c64(A,r,I,t,o)}function RE(A,r,I,t,o){eI().exports.vecmat_i64(A,r,I,t,o)}function kE(A,r,I,t,o){eI().exports.vecmat_i32(A,r,I,t,o)}function qE(A,r,I,t,o){eI().exports.vecmat_i16(A,r,I,t,o)}function ME(A,r,I,t,o){eI().exports.vecmat_i8(A,r,I,t,o)}var m_=128,l_={float64:Jb,float32:SE,complex128:xb,complex64:Ub,int64:RE,uint64:RE,int32:kE,uint32:kE,int16:qE,uint16:qE,int8:ME,uint8:ME,float16:SE},h_={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array},w_={complex128:2,complex64:2};function JE(A,r){if(A.ndim!==1||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=r.shape[0],t=r.shape[1];if(I!==A.shape[0]||I*t<m_*K.thresholdMultiplier)return null;let o=tA(A.dtype,r.dtype),e=l_[o],g=h_[o];if(!e||!g)return null;let i=w_[o]??1,n=g.BYTES_PER_ELEMENT,Q=I*i*n,C=I*t*i*n,a=t*i*n;x(Q+C+a),U();let B=o==="float16",s=A.data.subarray(A.offset*i,A.offset*i+I*i),E=r.data.subarray(r.offset*i,r.offset*i+I*t*i);B&&(s=AA(s,o),E=AA(E,o));let u=R(s),D=R(E),y=H(a);e(u,D,y,I,t);let f=_(y,t*i,g);return d.fromData(B?eA(f,o):f,[t],o)}var d_="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",se=null;function gI(){if(se)return se;let A=atob(d_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);se=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=se.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),se}function Lb(A,r,I,t,o){gI().exports.outer_f64(A,r,I,t,o)}function xE(A,r,I,t,o){gI().exports.outer_f32(A,r,I,t,o)}function Hb(A,r,I,t,o){gI().exports.outer_c128(A,r,I,t,o)}function Yb(A,r,I,t,o){gI().exports.outer_c64(A,r,I,t,o)}function UE(A,r,I,t,o){gI().exports.outer_i64(A,r,I,t,o)}function LE(A,r,I,t,o){gI().exports.outer_i32(A,r,I,t,o)}function HE(A,r,I,t,o){gI().exports.outer_i16(A,r,I,t,o)}function YE(A,r,I,t,o){gI().exports.outer_i8(A,r,I,t,o)}var b_=128,p_={float64:Lb,float32:xE,complex128:Hb,complex64:Yb,int64:UE,uint64:UE,int32:LE,uint32:LE,int16:HE,uint16:HE,int8:YE,uint8:YE,float16:xE},N_={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array},F_={complex128:2,complex64:2};function Pb(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,t=r.size;if(I+t<b_*K.thresholdMultiplier)return null;let o=tA(A.dtype,r.dtype),e=p_[o],g=N_[o];if(!e||!g)return null;let i=F_[o]??1,n=g.BYTES_PER_ELEMENT,Q=I*i*n,C=t*i*n,a=I*t*i*n;x(Q+C+a),U();let B=o==="float16",s=A.data.subarray(A.offset*i,A.offset*i+I*i),E=r.data.subarray(r.offset*i,r.offset*i+t*i);B&&(s=AA(s,o),E=AA(E,o));let u=R(s),D=R(E),y=H(a);e(u,D,y,I,t);let f=_(y,I*t*i,g);return d.fromData(B?eA(f,o):f,[I,t],o)}var G_="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",Ee=null;function iI(){if(Ee)return Ee;let A=atob(G_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ee=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ee.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ee}function _b(A,r,I,t,o){iI().exports.vecdot_f64(A,r,I,t,o)}function PE(A,r,I,t,o){iI().exports.vecdot_f32(A,r,I,t,o)}function Kb(A,r,I,t,o){iI().exports.vecdot_c128(A,r,I,t,o)}function vb(A,r,I,t,o){iI().exports.vecdot_c64(A,r,I,t,o)}function _E(A,r,I,t,o){iI().exports.vecdot_i64(A,r,I,t,o)}function KE(A,r,I,t,o){iI().exports.vecdot_i32(A,r,I,t,o)}function vE(A,r,I,t,o){iI().exports.vecdot_i16(A,r,I,t,o)}function XE(A,r,I,t,o){iI().exports.vecdot_i8(A,r,I,t,o)}var S_=256,R_={float64:_b,float32:PE,complex128:Kb,complex64:vb,int64:_E,uint64:_E,int32:KE,uint32:KE,int16:vE,uint16:vE,int8:XE,uint8:XE,float16:PE},k_={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array},q_={complex128:2,complex64:2};function Xb(A,r){if(A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],t=A.shape[1];if(I!==r.shape[0]||t!==r.shape[1]||I*t<S_*K.thresholdMultiplier)return null;let o=tA(A.dtype,r.dtype),e=R_[o],g=k_[o];if(!e||!g)return null;let i=q_[o]??1,n=g.BYTES_PER_ELEMENT,Q=I*t*i*n,C=I*t*i*n,a=I*i*n;x(Q+C+a),U();let B=o==="float16",s=A.data.subarray(A.offset*i,A.offset*i+I*t*i),E=r.data.subarray(r.offset*i,r.offset*i+I*t*i);B&&(s=AA(s,o),E=AA(E,o));let u=R(s),D=R(E),y=H(a);e(u,D,y,I,t);let f=_(y,I*i,g);return d.fromData(B?eA(f,o):f,[I],o)}var M_="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAAYJAX8BQYCAwAALBxgCCXZkb3RfYzEyOAAACHZkb3RfYzY0AAEKsQICngEBBnwCQAJAIAMNAEQAAAAAAAAAACEERAAAAAAAAAAAIQUMAQtEAAAAAAAAAAAhBUQAAAAAAAAAACEEA0AgBCAAKwMAIgYgAUEIaisDACIHoiAAQQhqKwMAIgggASsDACIJoqGgIQQgBSAGIAmiIAggB6KgoCEFIAFBEGohASAAQRBqIQAgA0F/aiIDDQALCyACIAQ5AwggAiAFOQMAC44BAQZ9AkACQCADDQBDAAAAACEEQwAAAAAhBQwBC0MAAAAAIQVDAAAAACEEA0AgBCAAKgIAIgYgAUEEaioCACIHlCAAQQRqKgIAIgggASoCACIJlJOSIQQgBSAGIAmUIAggB5SSkiEFIAFBCGohASAAQQhqIQAgA0F/aiIDDQALCyACIAQ4AgQgAiAFOAIACw==",ue=null;function Tb(){if(ue)return ue;let A=atob(M_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ue=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ue.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ue}function Ob(A,r,I,t){Tb().exports.vdot_c128(A,r,I,t)}function Vb(A,r,I,t){Tb().exports.vdot_c64(A,r,I,t)}var J_=64,x_={complex128:Ob,complex64:Vb},U_={complex128:Float64Array,complex64:Float32Array};function Wb(A,r){if(A.ndim!==1||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0];if(I!==r.shape[0]||I<J_*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=x_[t],e=U_[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*2*g,n=I*2*g,Q=2*g;x(i+n+Q),U();let C=A.data.subarray(A.offset*2,A.offset*2+I*2),a=r.data.subarray(r.offset*2,r.offset*2+I*2),B=R(C),s=R(a),E=H(Q);o(B,s,E,I);let u=_(E,2,e);return new X(Number(u[0]),Number(u[1]))}var L_="AGFzbQEAAAABCwFgB39/f39/f38AAg8BA2VudgZtZW1vcnkCABADCQgAAAAAAAAAAAYJAX8BQYCAwAALB1kICGtyb25fZjY0AAAIa3Jvbl9mMzIAAQlrcm9uX2MxMjgAAghrcm9uX2M2NAADCGtyb25faTY0AAQIa3Jvbl9pMzIABQhrcm9uX2kxNgAGB2tyb25faTgABwqZTgiTDQQgfwF7E38GewJAIANFDQAgBEUNACAFRQ0AIAYgBGwhBwJAIAZBAkkNACABQRBqIQggBkF+cSEJIAZBAXEhCiAAQQhqIQsgBkF+aiEMIARBA3QhDSABIAZBA3QiDmohDyACIA5qIRAgB0EDdCERIAcgBWxBA3QhEkEAIRMgAiEUIAJBEGoiFSEWA0AgEyAFbCEXIBUgEiATbCIYaiEZIBAgGGohGiALIA0gE2wiGGohGyAAIBhqIRwgACATIARsQQN0aiEdIBQhHiAWIR9BACEgA0AgGSAOICBsIhhqISEgGiAYaiEiIBsgIEEDdCIYaiEjIBwgGGohJCACICAgBmxBA3RqISUgHSAYaiIm/QoDACEnQQAhKCAeISkgASEqIAghKyAfISwDQCAPIA4gKGwiLWohLiAiIBEgKGwiL2ohMCABICggBmxBA3RqITEgJSAHICggF2psQQN0aiEyQQIhMyArITQgLCE1QQAhNkEAITcDQCAyIDdBA3QiGGogJyAxIBhq/QADAP3yAf0LAwAgNCI4QRBqITQgNSI5QRBqITUgNiI6QQFqITYgMyIYITcgGEECaiIzIAZNDQALAkAgGCAGTw0AAkACQCAMIDpBAXRrIjNBCE8NACAYITUMAQsCQCAhIDpBBHQiNGogL2oiNSAjSSAkIDBJcUUNACAYITUMAQsCQCA1IC5JIAEgNGogLWpBEGogMElxRQ0AIBghNQwBCyAYIDMgCmtqITUgJv0KAwAhOyAJITMDQCA5IDsgOP0AAwD98gH9CwMAIDhBEGohOCA5QRBqITkgGCAzQX5qIjNHDQALIApFDQELIDUhNgJAIAYgNWtBA3EiNEUNACA1IDRqITYgKSA1QQN0IjNqIRggKiAzaiEzA0AgGCAmKwMAIDMrAwCiOQMAIBhBCGohGCAzQQhqITMgNEF/aiI0DQALCyA1IAZrQXxLDQAgNkEDdCEYIAYgNmshNQNAICkgGGoiMyAmKwMAICogGGoiNCsDAKI5AwAgM0EIaiAmKwMAIDRBCGorAwCiOQMAIDNBEGogJisDACA0QRBqKwMAojkDACAzQRhqICYrAwAgNEEYaisDAKI5AwAgGEEgaiEYIDVBfGoiNQ0ACwsgKSARaiEpICogDmohKiArIA5qISsgLCARaiEsIChBAWoiKCAFRw0ACyAeIA5qIR4gHyAOaiEfICBBAWoiICAERw0ACyAUIBJqIRQgFiASaiEWIBNBAWoiEyADRw0ADAILCyAGRQ0AIAEgASAGIAVBf2oiM2xBA3RqIhggASAYSRshFyACIAcgM2xBA3RqISEgASAYIAEgGEsbQQhqIQ8gBkEDdCEpIAZBBHQhJiAFQQFxIQ4gBUF+cSEsIAdBA3QhKyAHQQR0ITEgACAEQQN0IiNqISQgByAFbEEDdCEKIAb9ESE8IAf9ESE9QQAhLiAFQQJJIShBASEiQQAhDANAICEgCiAMbCIYaiERIAIgGGohMCAkICMgDGwiGGohLyAAIBhqIS0gACAMIARsQQN0aiEqIAwgBWwiJf0RIT4gAiE6QQAhMgNAICogMkEDdGohNCACIDIgBmxBA3RqIRhBACEzAkACQCAoDQAgMCApIDJsIjZqIjUgESA2aiI2IDUgNkkbIjcgL0kgLSA1IDYgNSA2SxtBCGoiNUlxDQAgNyAPSSAXIDVJcQ0AIDT9CgMAIT/9DAAAAAABAAAAAAAAAAAAAAAhJyAsITMDQCAYID0gJyA+/a4B/bUBIjv9GwBBA3RqID8gASAnIDz9tQEiQP0bAUEDdGogASBA/RsAQQN0av1dAwD9VwMAAf3yASJA/SEAOQMAIBggO/0bAUEDdGogQP0hATkDACAn/QwCAAAAAgAAAAIAAAACAAAA/a4BIScgM0F+aiIzDQALICwhMyAFICxGDQELIDNBAXIhNQJAIA5FDQAgGCAHIDMgJWpsQQN0aiA0KwMAIAEgMyAGbEEDdGorAwCiOQMAIDUhMwsgBSA1Rg0AICkgM2whNiAFIDNrITUgKyAuIDNqbCE3ICkgM0EBamwhOCArICIgM2psITkgASEYIDohMwNAIDMgN2ogNCsDACAYIDZqKwMAojkDACAzIDlqIDQrAwAgGCA4aisDAKI5AwAgGCAmaiEYIDMgMWohMyA1QX5qIjUNAAsLIDogKWohOiAyQQFqIjIgBEcNAAsgLiAFaiEuICIgBWohIiAMQQFqIgwgA0cNAAsLC5YJBCB/AXsTfwF7AkAgA0UNACAERQ0AIAVFDQAgBiAEbCEHAkAgBkEESQ0AIAFBEGohCCAGQXxxIQkgBkEDcSEKIABBBGohCyAGQXxqIQwgBEECdCENIAEgBkECdCIOaiEPIAIgDmohECAHQQJ0IREgByAFbEECdCESQQAhEyACIRQgAkEQaiIVIRYDQCATIAVsIRcgFSASIBNsIhhqIRkgECAYaiEaIAsgDSATbCIYaiEbIAAgGGohHCAAIBMgBGxBAnRqIR0gFCEeIBYhH0EAISADQCAZIA4gIGwiGGohISAaIBhqISIgGyAgQQJ0IhhqISMgHCAYaiEkIAIgICAGbEECdGohJSAdIBhqIib9CQIAISdBACEoIB4hKSABISogCCErIB8hLANAIA8gDiAobCItaiEuICIgESAobCIvaiEwIAEgKCAGbEECdGohMSAlIAcgKCAXamxBAnRqITJBBCEzICshNCAsITVBACE2QQAhNwNAIDIgN0ECdCIYaiAnIDEgGGr9AAIA/eYB/QsCACA0IjhBEGohNCA1IjlBEGohNSA2IjpBAWohNiAzIhghNyAYQQRqIjMgBk0NAAsCQCAYIAZPDQACQAJAIAwgOkECdGsiM0EITw0AIBghNQwBCwJAICEgOkEEdCI0aiAvaiI1ICNJICQgMElxRQ0AIBghNQwBCwJAIDUgLkkgASA0aiAtakEQaiAwSXFFDQAgGCE1DAELIBggMyAKa2ohNSAm/QkCACE7IAkhMwNAIDkgOyA4/QACAP3mAf0LAgAgOEEQaiE4IDlBEGohOSAYIDNBfGoiM0cNAAsgCkUNAQsgNSE2AkAgBiA1a0EDcSI0RQ0AIDUgNGohNiApIDVBAnQiM2ohGCAqIDNqITMDQCAYICYqAgAgMyoCAJQ4AgAgGEEEaiEYIDNBBGohMyA0QX9qIjQNAAsLIDUgBmtBfEsNACA2QQJ0IRggBiA2ayE1A0AgKSAYaiIzICYqAgAgKiAYaiI0KgIAlDgCACAzQQRqICYqAgAgNEEEaioCAJQ4AgAgM0EIaiAmKgIAIDRBCGoqAgCUOAIAIDNBDGogJioCACA0QQxqKgIAlDgCACAYQRBqIRggNUF8aiI1DQALCyApIBFqISkgKiAOaiEqICsgDmohKyAsIBFqISwgKEEBaiIoIAVHDQALIB4gDmohHiAfIA5qIR8gIEEBaiIgIARHDQALIBQgEmohFCAWIBJqIRYgE0EBaiITIANHDQAMAgsLIAZFDQAgBkECdCE2IAdBAnQhNyAHIAVsQQJ0ITpBACEyIAZBAUYhOANAIAAgMiAEbEECdGohMSACITlBACEmA0AgMSAmQQJ0aiE1IDkhGCABITMgBSE0A0AgGCA1KgIAIDMqAgCUOAIAAkAgOA0AIBhBBGogNSoCACAzQQRqKgIAlDgCACAGQQJGDQAgGEEIaiA1KgIAIDNBCGoqAgCUOAIACyAYIDdqIRggMyA2aiEzIDRBf2oiNA0ACyA5IDZqITkgJkEBaiImIARHDQALIAIgOmohAiAyQQFqIjIgA0cNAAsLC5AGCRN/AXwBewF8AXsEfwh7AX8CfAJAIANFDQAgBEUNACAFRQ0AIAZFDQAgBkF+cSEHIAZBBHQhCCAGIAYgBGwiCXJBgICAwABxIQogASAGIAVsIgtBBHRqIQwgCyAEbCINQQR0IQ4gAiAGIAQgBUF/amxBBHRBEGpsaiEPQQAhECAGQQJJIRFBACESA0AgEiAFbCETIBIgBGwhFCAPIA4gEmwiC2ohFSACIAtqIRYgECEXQQAhGANAQQAhGSAAIBggFGpBBHRqIgsrAwAiGv0UIRsgC0EIaisDACIc/RQhHSARIBYgCCAYbCILaiAMSSABIBUgC2pJcSAKQQBHcnJBAXEhHiAXIR9BACEgA0BBACEhAkACQCAeDQAgICATaiAEbCAYaiAGbP0RISIgICAGbP0RISP9DAAAAAABAAAAAAAAAAAAAAAhJCAHIQsDQCACICIgJP2uAUEB/asBIiX9GwBBA3RqIBsgASAkICP9rgFBAf2rASIm/RsBQQN0aiABICb9GwBBA3Rq/V0DAP1XAwABIif98gEgHSABICb9DAEAAAABAAAAAQAAAAEAAAAiKP1QIib9GwFBA3RqIAEgJv0bAEEDdGr9XQMA/VcDAAEiJv3yAf3xASIp/SEAOQMAIAIgJSAo/VAiKP0bAEEDdGogHSAn/fIBIBsgJv3yAf3wASIm/SEAOQMAIAIgJf0bAUEDdGogKf0hATkDACACICj9GwFBA3RqICb9IQE5AwAgJP0MAgAAAAIAAAACAAAAAgAAAP2uASEkIAtBfmoiCw0ACyAHISEgBiAHRg0BCyAGICFrISogAiAhIB9qQQR0aiELIAEgISAZakEEdGohIQNAIAtBCGogHCAhKwMAIiuiIBogIUEIaisDACIsoqA5AwAgCyAaICuiIBwgLKKhOQMAIAtBEGohCyAhQRBqISEgKkF/aiIqDQALCyAfIAlqIR8gGSAGaiEZICBBAWoiICAFRw0ACyAXIAZqIRcgGEEBaiIYIARHDQALIBAgDWohECASQQFqIhIgA0cNAAsLC5gHCRN/AX0BewF9AXsDfwh7AX8CfQJAIANFDQAgBEUNACAFRQ0AIAZFDQAgBkF8cSEHIAZBA3QhCCAGIAYgBGwiCXJBgICAgAFxIQogASAGIAVsIgtBA3RqIQwgCyAEbCINQQN0IQ4gAiAGIAQgBUF/amxBA3RBCGpsaiEPQQAhEEEAIREDQCARIAVsIRIgESAEbCETIA8gDiARbCILaiEUIAIgC2ohFSAQIRZBACEXA0BBACEYIBUgCCAXbCILaiAMSSABIBQgC2pJcSAKQQBHciEZIAAgFyATakEDdGoiCyoCACIa/RMhGyALQQRqKgIAIhz9EyEdIBYhHkEAIR8DQEEAISACQAJAIAZBBEkgGXJBAXENACAfIBJqIARsIBdqIAZs/REhISAfIAZs/REhIv0MAAAAAAEAAAACAAAAAwAAACEjIAchCwNAIAIgISAj/a4BQQH9qwEiJP0bAEECdGogGyABICMgIv2uAUEB/asBIiX9GwNBAnRqIAEgJf0bAkECdGogASAl/RsBQQJ0aiABICX9GwBBAnRq/VwCAP1WAgAB/VYCAAL9VgIAAyIm/eYBIB0gASAl/QwBAAAAAQAAAAEAAAABAAAAIif9UCIl/RsDQQJ0aiABICX9GwJBAnRqIAEgJf0bAUECdGogASAl/RsAQQJ0av1cAgD9VgIAAf1WAgAC/VYCAAMiKP3mAf3lASIl/R8AOAIAIAIgJCAn/VAiJ/0bAEECdGogHSAm/eYBIBsgKP3mAf3kASIm/R8AOAIAIAIgJP0bAUECdGogJf0fATgCACACICf9GwFBAnRqICb9HwE4AgAgAiAk/RsCQQJ0aiAl/R8COAIAIAIgJ/0bAkECdGogJv0fAjgCACACICT9GwNBAnRqICX9HwM4AgAgAiAn/RsDQQJ0aiAm/R8DOAIAICP9DAQAAAAEAAAABAAAAAQAAAD9rgEhIyALQXxqIgsNAAsgByEgIAYgB0YNAQsgBiAgayEpIAIgICAeakEDdGohCyABICAgGGpBA3RqISADQCALQQRqIBwgICoCACIqlCAaICBBBGoqAgAiK5SSOAIAIAsgGiAqlCAcICuUkzgCACALQQhqIQsgIEEIaiEgIClBf2oiKQ0ACwsgHiAJaiEeIBggBmohGCAfQQFqIh8gBUcNAAsgFiAGaiEWIBdBAWoiFyAERw0ACyAQIA1qIRAgEUEBaiIRIANHDQALCwuNDQQgfwF7E38GewJAIANFDQAgBEUNACAFRQ0AIAYgBGwhBwJAIAZBAkkNACABQRBqIQggBkF+cSEJIAZBAXEhCiAAQQhqIQsgBkF+aiEMIARBA3QhDSABIAZBA3QiDmohDyACIA5qIRAgB0EDdCERIAcgBWxBA3QhEkEAIRMgAiEUIAJBEGoiFSEWA0AgEyAFbCEXIBUgEiATbCIYaiEZIBAgGGohGiALIA0gE2wiGGohGyAAIBhqIRwgACATIARsQQN0aiEdIBQhHiAWIR9BACEgA0AgGSAOICBsIhhqISEgGiAYaiEiIBsgIEEDdCIYaiEjIBwgGGohJCACICAgBmxBA3RqISUgHSAYaiIm/QoDACEnQQAhKCAeISkgASEqIAghKyAfISwDQCAPIA4gKGwiLWohLiAiIBEgKGwiL2ohMCABICggBmxBA3RqITEgJSAHICggF2psQQN0aiEyQQIhMyArITQgLCE1QQAhNkEAITcDQCAyIDdBA3QiGGogMSAYav0AAwAgJ/3VAf0LAwAgNCI4QRBqITQgNSI5QRBqITUgNiI6QQFqITYgMyIYITcgGEECaiIzIAZNDQALAkAgGCAGTw0AAkACQCAMIDpBAXRrIjNBCE8NACAYITUMAQsCQCAhIDpBBHQiNGogL2oiNSAjSSAkIDBJcUUNACAYITUMAQsCQCA1IC5JIAEgNGogLWpBEGogMElxRQ0AIBghNQwBCyAYIDMgCmtqITUgJv0KAwAhOyAJITMDQCA5IDj9AAMAIDv91QH9CwMAIDhBEGohOCA5QRBqITkgGCAzQX5qIjNHDQALIApFDQELIDUhNgJAIAYgNWtBA3EiNEUNACA1IDRqITYgKSA1QQN0IjNqIRggKiAzaiEzA0AgGCAzKQMAICYpAwB+NwMAIBhBCGohGCAzQQhqITMgNEF/aiI0DQALCyA1IAZrQXxLDQAgNkEDdCEYIAYgNmshNQNAICkgGGoiMyAqIBhqIjQpAwAgJikDAH43AwAgM0EIaiA0QQhqKQMAICYpAwB+NwMAIDNBEGogNEEQaikDACAmKQMAfjcDACAzQRhqIDRBGGopAwAgJikDAH43AwAgGEEgaiEYIDVBfGoiNQ0ACwsgKSARaiEpICogDmohKiArIA5qISsgLCARaiEsIChBAWoiKCAFRw0ACyAeIA5qIR4gHyAOaiEfICBBAWoiICAERw0ACyAUIBJqIRQgFiASaiEWIBNBAWoiEyADRw0ADAILCyAGRQ0AIAEgASAGIAVBf2oiM2xBA3RqIhggASAYSRshJSACIAcgM2xBA3RqIQwgASAYIAEgGEsbQQhqIRcgBkEDdCEpIAZBBHQhJiAFQQFxISggBUF+cSErIAdBA3QhDiAHQQR0ITEgACAEQQN0IiFqISMgByAFbEEDdCEkIAb9ESE8IAf9ESE9QQAhLUEBIS5BACEPA0AgDCAkIA9sIhhqISwgAiAYaiERICMgISAPbCIYaiEwIAAgGGohLyAAIA8gBGxBA3RqISogDyAFbCIi/REhPiACITpBACEyA0AgKiAyQQN0aiE0IAIgMiAGbEEDdGohGEEAITMCQAJAIAVBBEkNACARICkgMmwiNmoiNSAsIDZqIjYgNSA2SRsiNyAwSSAvIDUgNiA1IDZLG0EIaiI1SXENACA3IBdJICUgNUlxDQAgNP0KAwAhP/0MAAAAAAEAAAAAAAAAAAAAACEnICshMwNAIBggPSAnID79rgH9tQEiO/0bAEEDdGogASAnIDz9tQEiQP0bAUEDdGogASBA/RsAQQN0av1dAwD9VwMAASA//dUBIkD9WwMAACAYIDv9GwFBA3RqIED9WwMAASAn/QwCAAAAAgAAAAIAAAACAAAA/a4BIScgM0F+aiIzDQALICshMyAFICtGDQELIDNBAXIhNQJAIChFDQAgGCAHIDMgImpsQQN0aiABIDMgBmxBA3RqKQMAIDQpAwB+NwMAIDUhMwsgBSA1Rg0AICkgM2whNiAFIDNrITUgDiAtIDNqbCE3ICkgM0EBamwhOCAOIC4gM2psITkgASEYIDohMwNAIDMgN2ogGCA2aikDACA0KQMAfjcDACAzIDlqIBggOGopAwAgNCkDAH43AwAgGCAmaiEYIDMgMWohMyA1QX5qIjUNAAsLIDogKWohOiAyQQFqIjIgBEcNAAsgLSAFaiEtIC4gBWohLiAPQQFqIg8gA0cNAAsLC5YJBCB/AXsTfwF7AkAgA0UNACAERQ0AIAVFDQAgBiAEbCEHAkAgBkEESQ0AIAFBEGohCCAGQXxxIQkgBkEDcSEKIABBBGohCyAGQXxqIQwgBEECdCENIAEgBkECdCIOaiEPIAIgDmohECAHQQJ0IREgByAFbEECdCESQQAhEyACIRQgAkEQaiIVIRYDQCATIAVsIRcgFSASIBNsIhhqIRkgECAYaiEaIAsgDSATbCIYaiEbIAAgGGohHCAAIBMgBGxBAnRqIR0gFCEeIBYhH0EAISADQCAZIA4gIGwiGGohISAaIBhqISIgGyAgQQJ0IhhqISMgHCAYaiEkIAIgICAGbEECdGohJSAdIBhqIib9CQIAISdBACEoIB4hKSABISogCCErIB8hLANAIA8gDiAobCItaiEuICIgESAobCIvaiEwIAEgKCAGbEECdGohMSAlIAcgKCAXamxBAnRqITJBBCEzICshNCAsITVBACE2QQAhNwNAIDIgN0ECdCIYaiAxIBhq/QACACAn/bUB/QsCACA0IjhBEGohNCA1IjlBEGohNSA2IjpBAWohNiAzIhghNyAYQQRqIjMgBk0NAAsCQCAYIAZPDQACQAJAIAwgOkECdGsiM0EITw0AIBghNQwBCwJAICEgOkEEdCI0aiAvaiI1ICNJICQgMElxRQ0AIBghNQwBCwJAIDUgLkkgASA0aiAtakEQaiAwSXFFDQAgGCE1DAELIBggMyAKa2ohNSAm/QkCACE7IAkhMwNAIDkgOP0AAgAgO/21Af0LAgAgOEEQaiE4IDlBEGohOSAYIDNBfGoiM0cNAAsgCkUNAQsgNSE2AkAgBiA1a0EDcSI0RQ0AIDUgNGohNiApIDVBAnQiM2ohGCAqIDNqITMDQCAYIDMoAgAgJigCAGw2AgAgGEEEaiEYIDNBBGohMyA0QX9qIjQNAAsLIDUgBmtBfEsNACA2QQJ0IRggBiA2ayE1A0AgKSAYaiIzICogGGoiNCgCACAmKAIAbDYCACAzQQRqIDRBBGooAgAgJigCAGw2AgAgM0EIaiA0QQhqKAIAICYoAgBsNgIAIDNBDGogNEEMaigCACAmKAIAbDYCACAYQRBqIRggNUF8aiI1DQALCyApIBFqISkgKiAOaiEqICsgDmohKyAsIBFqISwgKEEBaiIoIAVHDQALIB4gDmohHiAfIA5qIR8gIEEBaiIgIARHDQALIBQgEmohFCAWIBJqIRYgE0EBaiITIANHDQAMAgsLIAZFDQAgBkECdCE2IAdBAnQhNyAHIAVsQQJ0ITpBACEyIAZBAUYhOANAIAAgMiAEbEECdGohMSACITlBACEmA0AgMSAmQQJ0aiE1IDkhGCABITMgBSE0A0AgGCAzKAIAIDUoAgBsNgIAAkAgOA0AIBhBBGogM0EEaigCACA1KAIAbDYCACAGQQJGDQAgGEEIaiAzQQhqKAIAIDUoAgBsNgIACyAYIDdqIRggMyA2aiEzIDRBf2oiNA0ACyA5IDZqITkgJkEBaiImIARHDQALIAIgOmohAiAyQQFqIjIgA0cNAAsLC44KBCB/AXsTfwF7AkAgA0UNACAERQ0AIAVFDQAgBiAEbCEHAkAgBkEISQ0AIAFBEGohCCAGQXhxIQkgBkEHcSEKIABBAmohCyAGQXhqIQwgBEEBdCENIAEgBkEBdCIOaiEPIAIgDmohECAHQQF0IREgByAFbEEBdCESQQAhEyACIRQgAkEQaiIVIRYDQCATIAVsIRcgFSASIBNsIhhqIRkgECAYaiEaIAsgDSATbCIYaiEbIAAgGGohHCAAIBMgBGxBAXRqIR0gFCEeIBYhH0EAISADQCAZIA4gIGwiGGohISAaIBhqISIgGyAgQQF0IhhqISMgHCAYaiEkIAIgICAGbEEBdGohJSAdIBhqIib9CAEAISdBACEoIB4hKSABISogCCErIB8hLANAIA8gDiAobCItaiEuICIgESAobCIvaiEwIAEgKCAGbEEBdGohMSAlIAcgKCAXamxBAXRqITJBCCEzICshNCAsITVBACE2QQAhNwNAIDIgN0EBdCIYaiAxIBhq/QABACAn/ZUB/QsBACA0IjhBEGohNCA1IjlBEGohNSA2IjpBAWohNiAzIhghNyAYQQhqIjMgBk0NAAsCQCAYIAZPDQACQAJAIAwgOkEDdGsiM0EITw0AIBghNQwBCwJAICEgOkEEdCI0aiAvaiI1ICNJICQgMElxRQ0AIBghNQwBCwJAIDUgLkkgASA0aiAtakEQaiAwSXFFDQAgGCE1DAELIBggMyAKa2ohNSAm/QgBACE7IAkhMwNAIDkgOP0AAQAgO/2VAf0LAQAgOEEQaiE4IDlBEGohOSAYIDNBeGoiM0cNAAsgCkUNAQsgNSE2AkAgBiA1a0EDcSI0RQ0AIDUgNGohNiApIDVBAXQiM2ohGCAqIDNqITMDQCAYIDMvAQAgJi8BAGw7AQAgGEECaiEYIDNBAmohMyA0QX9qIjQNAAsLIDUgBmtBfEsNACA2QQF0IRggBiA2ayE1A0AgKSAYaiIzICogGGoiNC8BACAmLwEAbDsBACAzQQJqIDRBAmovAQAgJi8BAGw7AQAgM0EEaiA0QQRqLwEAICYvAQBsOwEAIDNBBmogNEEGai8BACAmLwEAbDsBACAYQQhqIRggNUF8aiI1DQALCyApIBFqISkgKiAOaiEqICsgDmohKyAsIBFqISwgKEEBaiIoIAVHDQALIB4gDmohHiAfIA5qIR8gIEEBaiIgIARHDQALIBQgEmohFCAWIBJqIRYgE0EBaiITIANHDQAMAgsLIAZFDQAgBkEBdCE2IAdBAXQhNyAHIAVsQQF0ISlBACE6IAZBA0YhOCAGQQVGITEDQCAAIDogBGxBAXRqITIgAiE5QQAhJgNAIDIgJkEBdGohNSA5IRggASEzIAUhNANAIBggMy8BACA1LwEAbDsBAAJAIAZBAUYNACAYQQJqIDNBAmovAQAgNS8BAGw7AQAgBkECRg0AIBhBBGogM0EEai8BACA1LwEAbDsBACA4DQAgGEEGaiAzQQZqLwEAIDUvAQBsOwEAIAZBBEYNACAYQQhqIDNBCGovAQAgNS8BAGw7AQAgMQ0AIBhBCmogM0EKai8BACA1LwEAbDsBACAGQQZGDQAgGEEMaiAzQQxqLwEAIDUvAQBsOwEACyAYIDdqIRggMyA2aiEzIDRBf2oiNA0ACyA5IDZqITkgJkEBaiImIARHDQALIAIgKWohAiA6QQFqIjogA0cNAAsLC4YKBBZ/A3sNfwF7AkAgA0UNACAERQ0AIAVFDQAgAkEQaiEHIAFBEGohCCAGQQxxIQkgBkEDcSEKIAZBD3EhCyABIAZqIQwgAiAGaiENIABBAWohDiAGQXBxQXBqIQ8gBiAEbCIQIAVsIRFBACESIAZBBEkhEwNAIA0gESASbGohFCAOIAQgEmwiFWohFiAAIBVqIRcgByEYIAIhGUEAIRoDQCAXIBpqIRsCQAJAIAZBEEkNACAWIBpqIRwgG/0HAAAiHf0MAAAAAAAAAAAAAAAAAAAAAP0NCBEJEwoVCxcMGQ0bDh0PHyEeIB39iQEhHyAUIAYgGmxqISBBACEhIBghIiAIISMgASEkIBkhJQNAIAwgBiAhbGohJiAgIBAgIWxqIScgIiEoICMhKUEAISoDQCAlICoiFWogJCAVav0AAAAiHSAd/Q0AAAEAAgADAAQABQAGAAcAIB/9lQEgHSAd/Q0IAAkACgALAAwADQAOAA8AIB79lQH9DQACBAYICgwOEBIUFhgaHB79CwAAICgiK0EQaiEoICkiLEEQaiEpIBVBEGohKiAVQSBqIAZNDQALAkAgBiAqTQ0AAkAgBiAqayIoQRBJDQAgJSAqaiIpIBxJIBsgJ0lxDQAgKSAmSSAkICpqICdJcQ0AIA8gFWshFSAqICggC2tqISogG/0HAAAhHQNAICsgLP0AAAAiLf0WACAd/RYAbP0PIC39FgEgHf0WAWz9FwEgLf0WAiAd/RYCbP0XAiAt/RYDIB39FgNs/RcDIC39FgQgHf0WBGz9FwQgLf0WBSAd/RYFbP0XBSAt/RYGIB39FgZs/RcGIC39FgcgHf0WB2z9FwcgLf0WCCAd/RYIbP0XCCAt/RYJIB39Fgls/RcJIC39FgogHf0WCmz9FwogLf0WCyAd/RYLbP0XCyAt/RYMIB39Fgxs/RcMIC39Fg0gHf0WDWz9Fw0gLf0WDiAd/RYObP0XDiAt/RYPIB39Fg9s/RcP/QsAACArQRBqISsgLEEQaiEsIBVBcGoiFQ0ACyALRQ0BCyAqIRUCQCAGICprQQNxIihFDQAgKiEVA0AgJSAVaiAkIBVqLQAAIBstAABsOgAAIBVBAWohFSAoQX9qIigNAAsLICogBmtBfEsNAANAICUgFWoiKiAkIBVqIigtAAAgGy0AAGw6AAAgKkEBaiAoQQFqLQAAIBstAABsOgAAICpBAmogKEECai0AACAbLQAAbDoAACAqQQNqIChBA2otAAAgGy0AAGw6AAAgBiAVQQRqIhVHDQALCyAiIBBqISIgIyAGaiEjICQgBmohJCAlIBBqISUgIUEBaiIhIAVHDQAMAgsLIAZFDQBBACEkIBkhKSABISUDQEEAIRUCQCATDQBBACEVA0AgKSAVaiIqICUgFWoiKC0AACAbLQAAbDoAACAqQQFqIChBAWotAAAgGy0AAGw6AAAgKkECaiAoQQJqLQAAIBstAABsOgAAICpBA2ogKEEDai0AACAbLQAAbDoAACAJIBVBBGoiFUcNAAsLAkAgCkUNACAKISoDQCApIBVqICUgFWotAAAgGy0AAGw6AAAgFUEBaiEVICpBf2oiKg0ACwsgKSAQaiEpICUgBmohJSAkQQFqIiQgBUcNAAsLIBggBmohGCAZIAZqIRkgGkEBaiIaIARHDQALIAcgEWohByACIBFqIQIgEkEBaiISIANHDQALCws=",ce=null;function nI(){if(ce)return ce;let A=atob(L_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ce=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ce.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ce}function Zb(A,r,I,t,o,e,g){nI().exports.kron_f64(A,r,I,t,o,e,g)}function TE(A,r,I,t,o,e,g){nI().exports.kron_f32(A,r,I,t,o,e,g)}function zb(A,r,I,t,o,e,g){nI().exports.kron_c128(A,r,I,t,o,e,g)}function jb(A,r,I,t,o,e,g){nI().exports.kron_c64(A,r,I,t,o,e,g)}function OE(A,r,I,t,o,e,g){nI().exports.kron_i64(A,r,I,t,o,e,g)}function VE(A,r,I,t,o,e,g){nI().exports.kron_i32(A,r,I,t,o,e,g)}function WE(A,r,I,t,o,e,g){nI().exports.kron_i16(A,r,I,t,o,e,g)}function ZE(A,r,I,t,o,e,g){nI().exports.kron_i8(A,r,I,t,o,e,g)}var H_=64,Y_={float64:Zb,float32:TE,complex128:zb,complex64:jb,int64:OE,uint64:OE,int32:VE,uint32:VE,int16:WE,uint16:WE,int8:ZE,uint8:ZE,float16:TE},P_={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array},__={complex128:2,complex64:2};function $b(A,r){if(A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],t=A.shape[1],o=r.shape[0],e=r.shape[1],g=I*o,i=t*e;if(g*i<H_*K.thresholdMultiplier)return null;let n=tA(A.dtype,r.dtype),Q=Y_[n],C=P_[n];if(!Q||!C)return null;let a=__[n]??1,B=C.BYTES_PER_ELEMENT,s=I*t*a*B,E=o*e*a*B,u=g*i*a*B;x(s+E+u),U();let D=n==="float16",y=A.data.subarray(A.offset*a,A.offset*a+I*t*a),f=r.data.subarray(r.offset*a,r.offset*a+o*e*a);D&&(y=AA(y,n),f=AA(f,n));let c=R(y),m=R(f),l=H(u);Q(c,m,l,I,t,o,e);let w=_(l,g*i*a,C);return d.fromData(D?eA(w,n):w,[g,i],n)}var K_="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADCQgAAAAAAAAAAAYJAX8BQYCAwAALB2EICWNyb3NzX2Y2NAAACWNyb3NzX2YzMgABCmNyb3NzX2MxMjgAAgljcm9zc19jNjQAAwljcm9zc19pNjQABAljcm9zc19pMzIABQljcm9zc19pMTYABghjcm9zc19pOAAHCu8cCKABAQh/AkAgA0UNAEEAIQQDQCACIARqIgUgACAEaiIGQQhqIgcrAwAgASAEaiIIQRBqIgkrAwCiIAZBEGoiCisDACAIQQhqIgsrAwCioTkDACAFQQhqIAorAwAgCCsDAKIgBisDACAJKwMAoqE5AwAgBUEQaiAGKwMAIAsrAwCiIAcrAwAgCCsDAKKhOQMAIARBGGohBCADQX9qIgMNAAsLC6ABAQh/AkAgA0UNAEEAIQQDQCACIARqIgUgACAEaiIGQQRqIgcqAgAgASAEaiIIQQhqIgkqAgCUIAZBCGoiCioCACAIQQRqIgsqAgCUkzgCACAFQQRqIAoqAgAgCCoCAJQgBioCACAJKgIAlJM4AgAgBUEIaiAGKgIAIAsqAgCUIAcqAgAgCCoCAJSTOAIAIARBDGohBCADQX9qIgMNAAsLC7EDEAR/AXwCfwF8AX8BfAF/AXwBfwF8AX8BfAF/AXwBfwF8AkAgA0UNAEEAIQQDQCACIARqIgVBCGogASAEaiIGQSBqIgcrAwAiCCAAIARqIglBGGoiCisDACILoiAJQRBqIgwrAwAiDSAGQShqIg4rAwAiD6KgIAZBEGoiECsDACIRIAlBKGoiEisDACIToiAJQSBqIhQrAwAiFSAGQRhqIhYrAwAiF6KgoTkDACAFIA0gCKIgCyAPoqEgFSARoiATIBeioaE5AwAgBUEYaiAGKwMAIgggEisDACILoiAUKwMAIg0gBkEIaiISKwMAIg+ioCAHKwMAIhEgCUEIaiIHKwMAIhOiIAkrAwAiFSAOKwMAIheioKE5AwAgBUEQaiANIAiiIAsgD6KhIBUgEaIgEyAXoqGhOQMAIAVBKGogECsDACIIIAcrAwAiC6IgCSsDACINIBYrAwAiD6KgIAYrAwAiESAKKwMAIhOiIAwrAwAiFSASKwMAIheioKE5AwAgBUEgaiANIAiiIAsgD6KhIBUgEaIgEyAXoqGhOQMAIARBMGohBCADQX9qIgMNAAsLC+0RGgJ/AX4CfwF7AX8BewF/AXsGfwJ7CH8BewR/AXsEfwF7BH8BewR/AXsEfwF7BH8BewZ/CH0CQCADRQ0AQQAhBAJAIANBCEkNAEEAIQQgAkEUaiIFIANBf2qtQhh+IganIgdqIAVJDQAgBkIgiKdBAEciBQ0AIAJBDGoiCCAHaiAISQ0AIAUNACACQQRqIgggB2ogCEkNACAFDQAgAiAAIANBGGwiB2pJIAAgAiAHaiIFSXENACACIAEgB2pJIAEgBUlxDQD9DAAAAAABAAAAAgAAAAMAAAAhCSADQXxxIgQhCgNAIAIgCf0MBgAAAAYAAAAGAAAABgAAAP21ASIL/RsAQQJ0IgdqIgwgACAL/QwCAAAAAgAAAAIAAAACAAAA/a4BIg39GwNBAnQiBWoiCCAAIA39GwJBAnQiDmoiDyAAIA39GwFBAnQiEGoiESAAIA39GwBBAnQiEmoiE/1cAgD9VgIAAf1WAgAC/VYCAAMiFCABIAv9DAQAAAAEAAAABAAAAAQAAAAiFf2uASIN/RsDQQJ0IhZqIhcgASAN/RsCQQJ0IhhqIhkgASAN/RsBQQJ0IhpqIhsgASAN/RsAQQJ0IhxqIh39XAIA/VYCAAH9VgIAAv1WAgADIh795gEgCEEEaiIfIA9BBGoiICARQQRqIiEgE0EEaiIi/VwCAP1WAgAB/VYCAAL9VgIAAyIjIBdBBGoiJCAZQQRqIiUgG0EEaiImIB1BBGoiJ/1cAgD9VgIAAf1WAgAC/VYCAAMiKP3mAf3lASAAIBZqIikgACAYaiIqIAAgGmoiKyAAIBxqIiz9XAIA/VYCAAH9VgIAAv1WAgADIi0gASAFaiIuIAEgDmoiLyABIBBqIjAgASASaiIx/VwCAP1WAgAB/VYCAAL9VgIAAyIy/eYBIClBBGoiMyAqQQRqIjQgK0EEaiI1ICxBBGoiNv1cAgD9VgIAAf1WAgAC/VYCAAMiNyAuQQRqIjggL0EEaiI5IDBBBGoiOiAxQQRqIjv9XAIA/VYCAAH9VgIAAv1WAgADIjz95gH95QH95QEiDf0fADgCACACIAv9GwFBAnQiPWoiPiAN/R8BOAIAIAIgC/0bAkECdCI/aiJAIA39HwI4AgAgAiAL/RsDQQJ0IkFqIkIgDf0fAzgCACAMQQRqIB4gI/3mASAUICj95gH95AEgMiA3/eYBIC0gPP3mAf3kAf3lASIL/R8AOAIAID5BBGogC/0fATgCACBAQQRqIAv9HwI4AgAgQkEEaiAL/R8DOAIAIAIgEmoiDCApICogKyAs/VwCAP1WAgAB/VYCAAL9VgIAAyINIAEgQWoiEiABID9qIikgASA9aiIqIAEgB2oiK/1cAgD9VgIAAf1WAgAC/VYCAAMiFP3mASAzIDQgNSA2/VwCAP1WAgAB/VYCAAL9VgIAAyIeIBJBBGoiMyApQQRqIjQgKkEEaiI1ICtBBGoiNv1cAgD9VgIAAf1WAgAC/VYCAAMiI/3mAf3lASAAIEFqIiwgACA/aiI/IAAgPWoiPSAAIAdqIgf9XAIA/VYCAAH9VgIAAv1WAgADIiggFyAZIBsgHf1cAgD9VgIAAf1WAgAC/VYCAAMiLf3mASAsQQRqIhcgP0EEaiIZID1BBGoiGyAHQQRqIh39XAIA/VYCAAH9VgIAAv1WAgADIjIgJCAlICYgJ/1cAgD9VgIAAf1WAgAC/VYCAAMiN/3mAf3lAf3lASIL/R8AOAIAIAIgEGoiECAL/R8BOAIAIAIgDmoiDiAL/R8COAIAIAIgBWoiBSAL/R8DOAIAIAxBBGogFCAe/eYBIA0gI/3mAf3kASAtIDL95gEgKCA3/eYB/eQB/eUBIgv9HwA4AgAgEEEEaiAL/R8BOAIAIA5BBGogC/0fAjgCACAFQQRqIAv9HwM4AgAgAiAcaiIFICwgPyA9IAf9XAIA/VYCAAH9VgIAAv1WAgADIg0gLiAvIDAgMf1cAgD9VgIAAf1WAgAC/VYCAAMiFP3mASAXIBkgGyAd/VwCAP1WAgAB/VYCAAL9VgIAAyIeIDggOSA6IDv9XAIA/VYCAAH9VgIAAv1WAgADIiP95gH95QEgCCAPIBEgE/1cAgD9VgIAAf1WAgAC/VYCAAMiKCASICkgKiAr/VwCAP1WAgAB/VYCAAL9VgIAAyIt/eYBIB8gICAhICL9XAIA/VYCAAH9VgIAAv1WAgADIjIgMyA0IDUgNv1cAgD9VgIAAf1WAgAC/VYCAAMiN/3mAf3lAf3lASIL/R8AOAIAIAIgGmoiByAL/R8BOAIAIAIgGGoiCCAL/R8COAIAIAIgFmoiDiAL/R8DOAIAIAVBBGogFCAe/eYBIA0gI/3mAf3kASAtIDL95gEgKCA3/eYB/eQB/eUBIgv9HwA4AgAgB0EEaiAL/R8BOAIAIAhBBGogC/0fAjgCACAOQQRqIAv9HwM4AgAgCSAV/a4BIQkgCkF8aiIKDQALIAMgBEYNAQsgBEEYbCEOIAMgBGshDwNAIAIgDmoiCEEEaiABIA5qIgdBEGoiECoCACJDIAAgDmoiBUEMaiIRKgIAIkSUIAVBCGoiEioCACJFIAdBFGoiEyoCACJGlJIgB0EIaiIWKgIAIkcgBUEUaiIXKgIAIkiUIAVBEGoiGCoCACJJIAdBDGoiGSoCACJKlJKTOAIAIAggRSBDlCBEIEaUkyBJIEeUIEggSpSTkzgCACAIQQxqIAcqAgAiQyAXKgIAIkSUIBgqAgAiRSAHQQRqIhcqAgAiRpSSIBAqAgAiRyAFQQRqIhAqAgAiSJQgBSoCACJJIBMqAgAiSpSSkzgCACAIQQhqIEUgQ5QgRCBGlJMgSSBHlCBIIEqUk5M4AgAgCEEUaiAWKgIAIkMgECoCACJElCAFKgIAIkUgGSoCACJGlJIgByoCACJHIBEqAgAiSJQgEioCACJJIBcqAgAiSpSSkzgCACAIQRBqIEUgQ5QgRCBGlJMgSSBHlCBIIEqUk5M4AgAgAkEYaiECIAFBGGohASAAQRhqIQAgD0F/aiIPDQALCwugAQEIfwJAIANFDQBBACEEA0AgAiAEaiIFIAEgBGoiBkEQaiIHKQMAIAAgBGoiCEEIaiIJKQMAfiAGQQhqIgopAwAgCEEQaiILKQMAfn03AwAgBUEIaiAGKQMAIAspAwB+IAcpAwAgCCkDAH59NwMAIAVBEGogCikDACAIKQMAfiAGKQMAIAkpAwB+fTcDACAEQRhqIQQgA0F/aiIDDQALCwugAQEIfwJAIANFDQBBACEEA0AgAiAEaiIFIAEgBGoiBkEIaiIHKAIAIAAgBGoiCEEEaiIJKAIAbCAGQQRqIgooAgAgCEEIaiILKAIAbGs2AgAgBUEEaiAGKAIAIAsoAgBsIAcoAgAgCCgCAGxrNgIAIAVBCGogCigCACAIKAIAbCAGKAIAIAkoAgBsazYCACAEQQxqIQQgA0F/aiIDDQALCwugAQEIfwJAIANFDQBBACEEA0AgAiAEaiIFIAEgBGoiBkEEaiIHLwEAIAAgBGoiCEECaiIJLwEAbCAGQQJqIgovAQAgCEEEaiILLwEAbGs7AQAgBUECaiAGLwEAIAsvAQBsIAcvAQAgCC8BAGxrOwEAIAVBBGogCi8BACAILwEAbCAGLwEAIAkvAQBsazsBACAEQQZqIQQgA0F/aiIDDQALCwugAQEIfwJAIANFDQBBACEEA0AgAiAEaiIFIAEgBGoiBkECaiIHLQAAIAAgBGoiCEEBaiIJLQAAbCAGQQFqIgotAAAgCEECaiILLQAAbGs6AAAgBUEBaiAGLQAAIAstAABsIActAAAgCC0AAGxrOgAAIAVBAmogCi0AACAILQAAbCAGLQAAIAktAABsazoAACAEQQNqIQQgA0F/aiIDDQALCws=",De=null;function QI(){if(De)return De;let A=atob(K_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);De=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=De.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),De}function Ap(A,r,I,t){QI().exports.cross_f64(A,r,I,t)}function zE(A,r,I,t){QI().exports.cross_f32(A,r,I,t)}function rp(A,r,I,t){QI().exports.cross_c128(A,r,I,t)}function Ip(A,r,I,t){QI().exports.cross_c64(A,r,I,t)}function jE(A,r,I,t){QI().exports.cross_i64(A,r,I,t)}function $E(A,r,I,t){QI().exports.cross_i32(A,r,I,t)}function Au(A,r,I,t){QI().exports.cross_i16(A,r,I,t)}function ru(A,r,I,t){QI().exports.cross_i8(A,r,I,t)}var v_=8,X_={float64:Ap,float32:zE,complex128:rp,complex64:Ip,int64:jE,uint64:jE,int32:$E,uint32:$E,int16:Au,uint16:Au,int8:ru,uint8:ru,float16:zE},T_={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array},O_={complex128:2,complex64:2};function tp(A,r,I){if(I<v_*K.thresholdMultiplier||!A.isCContiguous||!r.isCContiguous)return null;let t=tA(A.dtype,r.dtype),o=X_[t],e=T_[t];if(!o||!e)return null;let g=O_[t]??1,i=e.BYTES_PER_ELEMENT,n=I*3,Q=n*g*i,C=n*g*i,a=n*g*i;x(Q+C+a),U();let B=t==="float16",s=A.data.subarray(A.offset*g,A.offset*g+n*g),E=r.data.subarray(r.offset*g,r.offset*g+n*g);B&&(s=AA(s,t),E=AA(E,t));let u=R(s),D=R(E),y=H(a);o(u,D,y,I);let f=_(y,n*g,e);return d.fromData(B?eA(f,t):f,[...A.shape],t)}var V_="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",fe=null;function W_(){if(fe)return fe;let A=atob(V_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);fe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=fe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),fe}function op(A,r,I,t,o,e,g){W_().exports.qr_f64(A,r,I,t,o,e,g)}var ep=4;function gp(A){if(A.ndim!==2)return null;let r=A.shape[0],I=A.shape[1];if(r<ep*K.thresholdMultiplier||I<ep*K.thresholdMultiplier)return null;let t=Math.min(r,I),o=r*I,e=r*t,g=t*I,i=t,n=t,C=(o+e+g+i+n)*8;x(C),U();let a=new Float64Array(o);for(let l=0;l<r;l++)for(let w=0;w<I;w++)a[l*I+w]=Number(A.get(l,w));let B=R(a),s=H(e*8),E=H(g*8),u=H(i*8),D=H(n*8);op(B,s,E,u,D,r,I);let y=_(s,e,Float64Array),f=_(E,g,Float64Array),c=d.fromData(y,[r,t],"float64"),m=d.fromData(f,[t,I],"float64");return{q:c,r:m}}var Z_="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",ye=null;function ip(){if(ye)return ye;let A=atob(Z_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ye=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ye.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ye}function np(A,r,I){return ip().exports.cholesky_f64(A,r,I)}function Qp(A,r,I){return ip().exports.cholesky_f32(A,r,I)}var Cp=4;function ap(A){if(A.ndim!==2)return null;let r=A.shape[0];if(r!==A.shape[1]||r<Cp*K.thresholdMultiplier)return null;let I=r*r,o=I*2*8;x(o),U();let e=new Float64Array(I);for(let C=0;C<r;C++)for(let a=0;a<r;a++)e[C*r+a]=Number(A.get(C,a));let g=R(e),i=H(I*8);if(np(g,i,r)!==0)throw new Error("cholesky: matrix is not positive definite");let Q=_(i,I,Float64Array);return d.fromData(Q,[r,r],"float64")}function Bp(A){if(A.ndim!==2)return null;let r=A.shape[0];if(r!==A.shape[1]||r<Cp*K.thresholdMultiplier)return null;let I=r*r,o=I*2*4;x(o),U();let e=new Float32Array(I);for(let C=0;C<r;C++)for(let a=0;a<r;a++)e[C*r+a]=Number(A.get(C,a));let g=R(e),i=H(I*4);if(Qp(g,i,r)!==0)throw new Error("cholesky: matrix is not positive definite");let Q=_(i,I,Float32Array);return d.fromData(Q,[r,r],"float32")}var z_="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",me=null;function j_(){if(me)return me;let A=atob(z_),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);me=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=me.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),me}function sp(A,r,I,t,o,e,g){j_().exports.svd_f64(A,r,I,t,o,e,g)}var Ep=4;function up(A){if(A.ndim!==2)return null;let r=A.shape[0],I=A.shape[1];if(r<Ep*K.thresholdMultiplier||I<Ep*K.thresholdMultiplier)return null;let t=Math.min(r,I),o=r*I,e=r*r,g=t,i=I*I,n=r*I+I*I,C=(o+e+g+i+n)*8;x(C),U();let a=new Float64Array(o);for(let h=0;h<r;h++)for(let b=0;b<I;b++)a[h*I+b]=Number(A.get(h,b));let B=R(a),s=H(e*8),E=H(g*8),u=H(i*8),D=H(n*8);sp(B,s,E,u,D,r,I);let y=_(s,e,Float64Array),f=_(E,g,Float64Array),c=_(u,i,Float64Array),m=d.fromData(y,[r,r],"float64"),l=d.fromData(f,[t],"float64"),w=d.fromData(c,[I,I],"float64");return{u:m,s:l,vt:w}}var $_=new Int32Array(1),AK=new Uint32Array(1),rK=new Int16Array(1),IK=new Uint16Array(1),tK=new Int8Array(1),oK=new Uint8Array(1),eK={int32:$_,uint32:AK,int16:rK,uint16:IK,int8:tK,uint8:oK};function Br(A){return eK[A]??null}function hr(A,r){if(A instanceof X||r instanceof X){let I=A instanceof X?A:new X(Number(A),0),t=r instanceof X?r:new X(Number(r),0);return I.mul(t)}return typeof A=="bigint"&&typeof r=="bigint"?Number(A*r):Number(A)*Number(r)}function gK(A,r,I,t,o,e,g,i,n){for(let Q=0;Q<I;Q++)for(let C=0;C<e;C++)for(let a=0;a<g;a++){let B=0;for(let s=0;s<i;s++)B+=A[r+Q*i+s]*t[o+C*i*g+s*g+a];n[Q*e*g+C*g+a]=B}}function iK(A,r,I,t,o,e,g,i,n,Q){for(let C=0;C<I;C++)for(let a=0;a<g;a++){let B=0;for(let E=0;E<n;E++){let u=t===1?E:C*n+E,D=i===1?E:a*n+E;B+=A[r+u]*o[e+D]}let s=I===1?a:C*g+a;Q[s]=B}}function nK(A,r,I,t,o,e,g,i,n,Q,C,a){for(let E=0;E<I*t;E++)C[E]=0;let B=A==="transpose",s=r==="transpose";if(!B&&!s)for(let E=0;E<I;E++)for(let u=0;u<t;u++){let D=0;for(let y=0;y<o;y++)D+=(g[E*i+y]??0)*(n[y*Q+u]??0);C[E*a+u]=e*D}else if(B&&!s)for(let E=0;E<I;E++)for(let u=0;u<t;u++){let D=0;for(let y=0;y<o;y++)D+=(g[y*i+E]??0)*(n[y*Q+u]??0);C[E*a+u]=e*D}else if(!B&&s)for(let E=0;E<I;E++)for(let u=0;u<t;u++){let D=0;for(let y=0;y<o;y++)D+=(g[E*i+y]??0)*(n[u*Q+y]??0);C[E*a+u]=e*D}else for(let E=0;E<I;E++)for(let u=0;u<t;u++){let D=0;for(let y=0;y<o;y++)D+=(g[y*i+E]??0)*(n[u*Q+y]??0);C[E*a+u]=e*D}}function dI(A,r){let I=A.ndim,t=r.ndim,o=k(A.dtype)||k(r.dtype);if(I===0||t===0){let e=I===0?A.get():null,g=t===0?r.get():null;if(I===0&&t===0)return hr(e,g);if(I===0){let i=tA(A.dtype,r.dtype),n=d.zeros([...r.shape],i),Q=(C,a)=>{let B=new Array(a.length),s=C;for(let E=a.length-1;E>=0;E--)B[E]=s%a[E],s=Math.floor(s/a[E]);return B};for(let C=0;C<r.size;C++){let a=Q(C,r.shape),B=r.get(...a);n.set(a,hr(e,B))}return n}else{let i=tA(A.dtype,r.dtype),n=d.zeros([...A.shape],i),Q=(C,a)=>{let B=new Array(a.length),s=C;for(let E=a.length-1;E>=0;E--)B[E]=s%a[E],s=Math.floor(s/a[E]);return B};for(let C=0;C<A.size;C++){let a=Q(C,A.shape),B=A.get(...a);n.set(a,hr(B,g))}return n}}if(I===1&&t===1){if(A.shape[0]!==r.shape[0])throw new Error(`dot: incompatible shapes (${A.shape[0]},) and (${r.shape[0]},)`);let e=_n(A,r);if(e!==null)return e;let g=A.shape[0];if(o){let C=0,a=0;for(let B=0;B<g;B++){let s=A.get(B),E=r.get(B),u=hr(s,E);u instanceof X?(C+=u.re,a+=u.im):C+=u}return new X(C,a)}let i=tA(A.dtype,r.dtype),n=Br(i);if(n){n[0]=0;for(let C=0;C<g;C++)n[0]+=Number(A.get(C))*Number(r.get(C));return n[0]}if(i==="float16"&&uA){let C=new Float16Array(1);C[0]=0;for(let a=0;a<g;a++)C[0]+=Number(A.get(a))*Number(r.get(a));return Number(C[0])}if(i==="float32"){let C=new Float32Array(1);C[0]=0;for(let a=0;a<g;a++)C[0]+=Number(A.get(a))*Number(r.get(a));return C[0]}let Q=0;for(let C=0;C<g;C++){let a=A.get(C),B=r.get(C);typeof a=="bigint"&&typeof B=="bigint"?Q=Number(Q)+Number(a*B):Q+=Number(a)*Number(B)}return Q}if(I===2&&t===2)return Ar(A,r);if(I===2&&t===1){let[e,g]=A.shape,i=r.shape[0];if(g!==i)throw new Error(`dot: incompatible shapes (${e},${g}) and (${i},)`);let n=GE(A,r);if(n)return n;let Q=tA(A.dtype,r.dtype),C=d.zeros([e],Q);if(o)for(let a=0;a<e;a++){let B=0,s=0;for(let E=0;E<g;E++){let u=A.get(a,E),D=r.get(E),y=u instanceof X?u:new X(Number(u),0),f=D instanceof X?D:new X(Number(D),0);B+=y.re*f.re-y.im*f.im,s+=y.re*f.im+y.im*f.re}C.set([a],new X(B,s))}else{let a=Br(Q);for(let B=0;B<e;B++)if(a){a[0]=0;for(let s=0;s<g;s++)a[0]+=Number(A.get(B,s))*Number(r.get(s));C.set([B],a[0])}else{let s=0;for(let E=0;E<g;E++){let u=A.get(B,E),D=r.get(E);typeof u=="bigint"&&typeof D=="bigint"?s=Number(s)+Number(u*D):s+=Number(u)*Number(D)}C.set([B],s)}}return C}if(I===1&&t===2){let e=A.shape[0],[g,i]=r.shape;if(e!==g)throw new Error(`dot: incompatible shapes (${e},) and (${g},${i})`);let n=JE(A,r);if(n)return n;let Q=tA(A.dtype,r.dtype),C=d.zeros([i],Q);if(o)for(let a=0;a<i;a++){let B=0,s=0;for(let E=0;E<e;E++){let u=A.get(E),D=r.get(E,a),y=u instanceof X?u:new X(Number(u),0),f=D instanceof X?D:new X(Number(D),0);B+=y.re*f.re-y.im*f.im,s+=y.re*f.im+y.im*f.re}C.set([a],new X(B,s))}else{let a=Br(Q);for(let B=0;B<i;B++)if(a){a[0]=0;for(let s=0;s<e;s++)a[0]+=Number(A.get(s))*Number(r.get(s,B));C.set([B],a[0])}else{let s=0;for(let E=0;E<e;E++){let u=A.get(E),D=r.get(E,B);typeof u=="bigint"&&typeof D=="bigint"?s=Number(s)+Number(u*D):s+=Number(u)*Number(D)}C.set([B],s)}}return C}if(I>2&&t===1){let e=A.shape[I-1],g=r.shape[0];if(e!==g)throw new Error(`dot: incompatible shapes ${JSON.stringify(A.shape)} and (${g},)`);let i=[...A.shape.slice(0,-1)],n=tA(A.dtype,r.dtype),Q=d.zeros(i,n),C=i.reduce((a,B)=>a*B,1);if(o)for(let a=0;a<C;a++){let B=0,s=0,E=a,u=[];for(let D=i.length-1;D>=0;D--)u[D]=E%i[D],E=Math.floor(E/i[D]);for(let D=0;D<e;D++){let y=[...u,D],f=A.get(...y),c=r.get(D),m=f instanceof X?f:new X(Number(f),0),l=c instanceof X?c:new X(Number(c),0);B+=m.re*l.re-m.im*l.im,s+=m.re*l.im+m.im*l.re}Q.set(u,new X(B,s))}else{let a=Br(n);for(let B=0;B<C;B++){let s=B,E=[];for(let u=i.length-1;u>=0;u--)E[u]=s%i[u],s=Math.floor(s/i[u]);if(a){a[0]=0;for(let u=0;u<e;u++){let D=[...E,u];a[0]+=Number(A.get(...D))*Number(r.get(u))}Q.set(E,a[0])}else{let u=0;for(let D=0;D<e;D++){let y=[...E,D],f=A.get(...y),c=r.get(D);typeof f=="bigint"&&typeof c=="bigint"?u=Number(u)+Number(f*c):u+=Number(f)*Number(c)}Q.set(E,u)}}}return Q}if(I===1&&t>2){let e=A.shape[0],g=1,i=r.shape[g];if(e!==i)throw new Error(`dot: incompatible shapes (${e},) and ${JSON.stringify(r.shape)}`);let n=[...r.shape.slice(0,g),...r.shape.slice(g+1)],Q=tA(A.dtype,r.dtype),C=d.zeros(n,Q),a=n.reduce((B,s)=>B*s,1);if(o)for(let B=0;B<a;B++){let s=B,E=[];for(let c=n.length-1;c>=0;c--)E[c]=s%n[c],s=Math.floor(s/n[c]);let u=E.slice(0,g),D=E.slice(g),y=0,f=0;for(let c=0;c<e;c++){let m=A.get(c),l=[...u,c,...D],w=r.get(...l),h=m instanceof X?m:new X(Number(m),0),b=w instanceof X?w:new X(Number(w),0);y+=h.re*b.re-h.im*b.im,f+=h.re*b.im+h.im*b.re}C.set(E,new X(y,f))}else{let B=Br(Q);for(let s=0;s<a;s++){let E=s,u=[];for(let f=n.length-1;f>=0;f--)u[f]=E%n[f],E=Math.floor(E/n[f]);let D=u.slice(0,g),y=u.slice(g);if(B){B[0]=0;for(let f=0;f<e;f++){let c=[...D,f,...y];B[0]+=Number(A.get(f))*Number(r.get(...c))}C.set(u,B[0])}else{let f=0;for(let c=0;c<e;c++){let m=A.get(c),l=[...D,c,...y],w=r.get(...l);typeof m=="bigint"&&typeof w=="bigint"?f=Number(f)+Number(m*w):f+=Number(m)*Number(w)}C.set(u,f)}}}return C}if(I>=2&&t>=2&&!(I===2&&t===2)){let e=A.shape[I-1],g=r.shape[t-2];if(e!==g)throw new Error(`dot: incompatible shapes ${JSON.stringify(A.shape)} and ${JSON.stringify(r.shape)}`);let i=[...A.shape.slice(0,-1),...r.shape.slice(0,-2),r.shape[t-1]],n=tA(A.dtype,r.dtype),Q=d.zeros(i,n),C=A.shape.slice(0,-1).reduce((E,u)=>E*u,1),a=r.shape.slice(0,-2).reduce((E,u)=>E*u,1),B=r.shape[t-1],s=e;if(o)for(let E=0;E<C;E++)for(let u=0;u<a;u++)for(let D=0;D<B;D++){let y=0,f=0;for(let l=0;l<s;l++){let w=[],h=E;for(let Y=A.shape.length-2;Y>=0;Y--)w.unshift(h%A.shape[Y]),h=Math.floor(h/A.shape[Y]);w.push(l);let b=A.get(...w),p=[],N=u;for(let Y=r.shape.length-3;Y>=0;Y--)p.unshift(N%r.shape[Y]),N=Math.floor(N/r.shape[Y]);p.push(l,D);let F=r.get(...p),S=b instanceof X?b:new X(Number(b),0),M=F instanceof X?F:new X(Number(F),0);y+=S.re*M.re-S.im*M.im,f+=S.re*M.im+S.im*M.re}let c=E*a*B+u*B+D,m=Q.data;m[c*2]=y,m[c*2+1]=f}else if(A.isCContiguous&&r.isCContiguous&&!P(A.dtype)&&!P(r.dtype)&&!Br(n))gK(A.data,A.offset,C,r.data,r.offset,a,B,s,Q.data);else{let E=Br(n);for(let u=0;u<C;u++)for(let D=0;D<a;D++)for(let y=0;y<B;y++){let f=u*a*B+D*B+y;if(E){E[0]=0;for(let c=0;c<s;c++){let m=u*s+c,l=D*s*B+c*B+y;E[0]+=Number(A.iget(m))*Number(r.iget(l))}Q.data[f]=E[0]}else{let c=0;for(let m=0;m<s;m++){let l=u*s+m,w=D*s*B+m*B+y,h=A.iget(l),b=r.iget(w);typeof h=="bigint"&&typeof b=="bigint"?c=Number(c)+Number(h*b):c+=Number(h)*Number(b)}Q.data[f]=c}}}return Q}throw new Error(`dot: unexpected combination of dimensions ${I}D \xB7 ${t}D`)}function OI(A,r){let[I=0,t=0]=A.shape,[o=0,e=0]=r.shape;if(t!==o)throw new Error(`matmul shape mismatch: (${I},${t}) @ (${o},${e})`);let g=tA(A.dtype,r.dtype);if(k(g)){let w=d.zeros([I,e],g),h=w.data;for(let b=0;b<I;b++)for(let p=0;p<e;p++){let N=0,F=0;for(let M=0;M<t;M++){let Y=A.iget(b*t+M),L=r.iget(M*e+p);N+=Y.re*L.re-Y.im*L.im,F+=Y.re*L.im+Y.im*L.re}let S=b*e+p;h[S*2]=N,h[S*2+1]=F}return w}if(g.startsWith("int")||g.startsWith("uint")||g==="bool"){let w=d.zeros([I,e],g),h=w.data,b=A.offset,p=r.offset,[N=0,F=0]=A.strides,[S=0,M=0]=r.strides;if(P(g)){let Y=A.data,L=r.data,v=h;for(let Z=0;Z<I;Z++)for(let O=0;O<e;O++){let z=0n;for(let j=0;j<t;j++)z+=Y[b+Z*N+j*F]*L[p+j*S+O*M];v[Z*e+O]=z}}else{let Y=A.data,L=r.data,v=h;for(let Z=0;Z<I;Z++)for(let O=0;O<e;O++){let z=0;for(let j=0;j<t;j++)z+=Y[b+Z*N+j*F]*L[p+j*S+O*M];v[Z*e+O]=z}}return w}let i=g;if(i!=="float64"&&i!=="float32"&&i!=="float16")throw new Error(`matmul currently only supports float64/float32/float16, got ${i}`);let n=w=>w.dtype==="float64"?w.data:w.dtype==="float32"||w.dtype==="float16"?Float64Array.from(w.data):Float64Array.from(Array.from(w.data).map(Number)),Q=n(A),C=n(r);A.offset>0&&(Q=Q.subarray(A.offset)),r.offset>0&&(C=C.subarray(r.offset));let[a=0,B=0]=A.strides,[s=0,E=0]=r.strides,u=B>a,D=E>s,y=u?"transpose":"no-transpose",f=D?"transpose":"no-transpose",c,m;u?c=B:c=a,D?m=E:m=s;let l=d.zeros([I,e],"float64");if(nK(y,f,I,e,t,1,Q,c,C,m,l.data,e),i==="float32"||i==="float16"){let w=d.zeros([I,e],i),h=l.data,b=w.data;for(let p=0;p<h.length;p++)b[p]=h[p];return w}return l}function QK(A,r){let I=Math.max(A.length,r.length),t=new Array(I);for(let o=0;o<I;o++){let e=A[A.length-I+o]??1,g=r[r.length-I+o]??1;if(e!==g&&e!==1&&g!==1)throw new Error(`matmul: cannot broadcast batch shapes ${JSON.stringify(A)} and ${JSON.stringify(r)}`);t[o]=Math.max(e,g)}return t}function Kn(A,r){let I=new Array(r.length),t=A;for(let o=r.length-1;o>=0;o--)I[o]=t%r[o],t=Math.floor(t/r[o]);return I}function cp(A,r){let I=r.length,t=0;for(let o=0;o<I;o++){let e=A.length-I+o,g=e>=0?A[e]:0,i=r[o]===1?0:g;t=t*r[o]+i}return t}function rr(A){if(A.isCContiguous&&A.offset===0&&A.dtype==="float64")return A.data;let r=new Float64Array(A.size);for(let I=0;I<A.size;I++)r[I]=Number(A.iget(I));return r}function Dp(A,r,I,t){let o=A.ndim,e=I*t,g=k(A.dtype),i=P(A.dtype),n=g?2:1,Q=iA(A.dtype),C=new Q(e*n);if(A.isCContiguous){let a=(A.offset+r*e)*n;if(i){let B=A.data,s=C;for(let E=0;E<e*n;E++)s[E]=B[a+E]}else{let B=A.data,s=C;for(let E=0;E<e*n;E++)s[E]=B[a+E]}}else{let a=r*e;for(let B=0;B<e;B++){let E=a+B,u=A.offset;for(let D=o-1;D>=0;D--){let y=A.shape[D];u+=E%y*A.strides[D],E=Math.floor(E/y)}if(g){let D=A.data,y=C;y[B*2]=D[u*2],y[B*2+1]=D[u*2+1]}else C[B]=A.data[u]}}return d.fromData(C,[I,t],A.dtype)}function Ar(A,r){if(A.ndim===1&&r.ndim===1){let S=_n(A,r);if(S!==null){let M=tA(A.dtype,r.dtype),Y=d.zeros([],M);return S instanceof X?(Y.data[0]=S.re,Y.data[1]=S.im):Y.data[0]=S,Y}}else if(A.ndim>=2&&r.ndim===1){if(A.ndim===2){let S=GE(A,r);if(S)return S}}else if(A.ndim===1&&r.ndim>=2&&r.ndim===2){let S=JE(A,r);if(S)return S}let I=TI(A,r);if(I)return I;if(A.ndim===0||r.ndim===0)throw new Error("matmul: Input operand does not have enough dimensions (has 0, gufunc core with signature (n?,k),(k,m?)->(n?,m?) requires at least 1-D)");let t=A.ndim===1,o=r.ndim===1,e=t?yA(A,[1,A.shape[0]]):A,g=o?yA(r,[r.shape[0],1]):r,i=e.ndim,n=g.ndim,Q=e.shape[i-2],C=e.shape[i-1],a=g.shape[n-2],B=g.shape[n-1];if(C!==a)throw new Error(`matmul: shape mismatch: (...,${Q},${C}) @ (...,${a},${B}): inner dimensions must match`);if(i===2&&n===2){let S=OI(e,g);return t&&o?yA(S,[]):t?yA(S,[B]):o?yA(S,[Q]):S}let s=Array.from(e.shape).slice(0,i-2),E=Array.from(g.shape).slice(0,n-2),u=QK(s,E),D=u.reduce((S,M)=>S*M,1),y=tA(e.dtype,g.dtype),f=[];for(let S=0;S<D;S++){let M=Kn(S,u),Y=cp(M,s),L=cp(M,E),v=Dp(e,Y,Q,C),Z=Dp(g,L,C,B);f.push(OI(v,Z))}let c=Q*B,m=k(y),l=P(y),w=m?2:1,h=iA(y),b=D*c*w,p=new h(b);for(let S=0;S<D;S++){let Y=f[S].data,L=S*c*w;if(l){let v=Y,Z=p;for(let O=0;O<c;O++)Z[L+O]=v[O]}else{let v=Y,Z=p;for(let O=0;O<c*w;O++)Z[L+O]=v[O]}}let N=[...u,Q,B],F=d.fromData(p,N,y);return t&&o?yA(F,[...u]):t?yA(F,[...u,B]):o?yA(F,[...u,Q]):F}function yp(A,r=0,I=0,t=1){if(A.ndim<2)throw new Error(`trace requires at least 2D array, got ${A.ndim}D`);if(A.ndim===2){let s=I<0?A.ndim+I:I,E=t<0?A.ndim+t:t,u=A.shape[s],D=A.shape[E],y=Math.min(u,D)-Math.max(0,r);if(y<=0)return k(A.dtype)?new X(0,0):0;if(k(A.dtype)){let c=0,m=0;for(let l=0;l<y;l++){let w=r>=0?l:l-r,h=r>=0?l+r:l,b=[0,0];b[s]=w,b[E]=h;let p=A.get(...b);c+=p.re,m+=p.im}return new X(c,m)}if(A.dtype==="float16"&&uA){let c=new Float16Array(1);c[0]=0;for(let m=0;m<y;m++){let l=r>=0?m:m-r,w=r>=0?m+r:m,h=[0,0];h[s]=l,h[E]=w,c[0]+=Number(A.get(...h))}return Number(c[0])}if(A.dtype==="float32"){let c=new Float32Array(1);c[0]=0;for(let m=0;m<y;m++){let l=r>=0?m:m-r,w=r>=0?m+r:m,h=[0,0];h[s]=l,h[E]=w,c[0]+=Number(A.get(...h))}return c[0]}let f=0;for(let c=0;c<y;c++){let m=r>=0?c:c-r,l=r>=0?c+r:c,w=[0,0];w[s]=m,w[E]=l;let h=A.get(...w);typeof h=="bigint"?f=(typeof f=="bigint"?f:BigInt(f))+h:f=(typeof f=="bigint"?Number(f):f)+h}return f}let o=A.ndim,e=(I%o+o)%o,g=(t%o+o)%o;if(e===g)throw new Error("trace: axis1 and axis2 must be different");let i=A.shape[e],n=A.shape[g],Q=Math.min(i,n)-Math.max(0,r),C=Array.from(A.shape).filter((s,E)=>E!==e&&E!==g),a=C.reduce((s,E)=>s*E,1),B=d.zeros(C.length>0?C:[1],A.dtype);if(Q<=0)return B.shape.length===0?0:B;for(let s=0;s<a;s++){let E=new Array(C.length),u=s;for(let m=C.length-1;m>=0;m--)E[m]=u%C[m],u=Math.floor(u/C[m]);let D=0,y=0,f=0,c=k(A.dtype);for(let m=0;m<Q;m++){let l=r>=0?m:m-r,w=r>=0?m+r:m,h=new Array(o),b=0;for(let N=0;N<o;N++)N===e?h[N]=l:N===g?h[N]=w:h[N]=E[b++];let p=A.get(...h);c?(y+=p.re,f+=p.im):typeof p=="bigint"?D=(typeof D=="bigint"?D:BigInt(D))+p:D=(typeof D=="bigint"?Number(D):D)+p}c?B.iset(s,new X(y,f)):B.iset(s,typeof D=="bigint"?Number(D):D)}return B}function aI(A,r){return ba(A,r)}function mp(A,r){let I=A.ndim,t=r.ndim,o=k(A.dtype)||k(r.dtype);if(I===0||t===0)return dI(A,r);let e=A.shape[I-1],g=r.shape[t-1];if(e!==g)throw new Error(`inner: incompatible shapes - last dimensions ${e} and ${g} don't match`);let i=Nb(A,r);if(i!==null)return i;if(I===1&&t===1)return dI(A,r);let n=[...A.shape.slice(0,-1),...r.shape.slice(0,-1)],Q=tA(A.dtype,r.dtype),C=d.zeros(n,Q),a=I===1?1:A.shape.slice(0,-1).reduce((E,u)=>E*u,1),B=t===1?1:r.shape.slice(0,-1).reduce((E,u)=>E*u,1),s=e;if(o)for(let E=0;E<a;E++)for(let u=0;u<B;u++){let D=0,y=0;for(let m=0;m<s;m++){let l,w;if(I===1)l=A.get(m);else{let p=[],N=E,F=A.shape.slice(0,-1);for(let S=F.length-1;S>=0;S--)p.unshift(N%F[S]),N=Math.floor(N/F[S]);p.push(m),l=A.get(...p)}if(t===1)w=r.get(m);else{let p=[],N=u,F=r.shape.slice(0,-1);for(let S=F.length-1;S>=0;S--)p.unshift(N%F[S]),N=Math.floor(N/F[S]);p.push(m),w=r.get(...p)}let h=l instanceof X?l:new X(Number(l),0),b=w instanceof X?w:new X(Number(w),0);D+=h.re*b.re-h.im*b.im,y+=h.re*b.im+h.im*b.re}if(n.length===0)return new X(D,y);let f=a===1?u:E*B+u,c=C.data;c[f*2]=D,c[f*2+1]=y}else{let E=Br(Q);if(A.isCContiguous&&r.isCContiguous&&!P(A.dtype)&&!P(r.dtype)&&!E){if(n.length===0){let u=A.data,D=r.data,y=A.offset,f=r.offset,c=0;for(let m=0;m<s;m++)c+=u[y+m]*D[f+m];return c}iK(A.data,A.offset,a,I,r.data,r.offset,B,t,s,C.data)}else for(let u=0;u<a;u++)for(let D=0;D<B;D++)if(E){E[0]=0;for(let f=0;f<s;f++){let c=I===1?f:u*s+f,m=t===1?f:D*s+f;E[0]+=Number(A.iget(c))*Number(r.iget(m))}if(n.length===0)return E[0];let y=a===1?D:u*B+D;C.data[y]=E[0]}else{let y=0;for(let c=0;c<s;c++){let m=I===1?c:u*s+c,l=t===1?c:D*s+c,w=A.iget(m),h=r.iget(l);typeof w=="bigint"&&typeof h=="bigint"?y=Number(y)+Number(w*h):y+=Number(w)*Number(h)}if(n.length===0)return y;let f=a===1?D:u*B+D;C.data[f]=y}}return C}function ou(A,r){let I=A.ndim===1?A:UI(A),t=r.ndim===1?r:UI(r),o=Pb(I,t);if(o)return o;let e=I.size,g=t.size,i=tA(A.dtype,r.dtype),n=d.zeros([e,g],i);if(i==="float16"&&uA&&I.isCContiguous&&t.isCContiguous){let Q=new Float32Array(I.data.subarray(I.offset,I.offset+e)),C=new Float32Array(t.data.subarray(t.offset,t.offset+g)),a=new Float32Array(e*g);for(let B=0;B<e;B++){let s=Q[B],E=B*g;for(let u=0;u<g;u++)a[E+u]=s*C[u]}return n.data.set(a),n}for(let Q=0;Q<e;Q++)for(let C=0;C<g;C++){let a=I.get(Q),B=t.get(C),s=hr(a,B);n.set([Q,C],s)}return n}function lp(A,r,I){let t,o;if(typeof I=="number"){let E=I;if(E<0)throw new Error("tensordot: axes must be non-negative");if(E>A.ndim||E>r.ndim)throw new Error("tensordot: axes exceeds array dimensions");t=Array.from({length:E},(u,D)=>A.ndim-E+D),o=Array.from({length:E},(u,D)=>D)}else if([t,o]=I,t.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let E=0;E<t.length;E++){let u=t[E],D=o[E];if(u<0||u>=A.ndim||D<0||D>=r.ndim)throw new Error("tensordot: axis out of bounds");if(A.shape[u]!==r.shape[D])throw new Error(`tensordot: shape mismatch on axes ${u} and ${D}: ${A.shape[u]} != ${r.shape[D]}`)}let e=[],g=[];for(let E=0;E<A.ndim;E++)t.includes(E)||e.push(E);for(let E=0;E<r.ndim;E++)o.includes(E)||g.push(E);let i=[...e.map(E=>A.shape[E]),...g.map(E=>r.shape[E])],n=tA(A.dtype,r.dtype),Q=k(n),C=E=>E instanceof X?{re:E.re,im:E.im}:{re:Number(E),im:0};if(i.length===0){let E=0,u=0,D=t.map(y=>A.shape[y]).reduce((y,f)=>y*f,1);for(let y=0;y<D;y++){let f=y,c=new Array(t.length);for(let b=t.length-1;b>=0;b--){let p=t[b];c[b]=f%A.shape[p],f=Math.floor(f/A.shape[p])}let m=new Array(A.ndim),l=new Array(r.ndim);for(let b=0;b<t.length;b++)m[t[b]]=c[b];for(let b=0;b<o.length;b++)l[o[b]]=c[b];let w=A.get(...m),h=r.get(...l);if(Q){let b=C(w),p=C(h);E+=b.re*p.re-b.im*p.im,u+=b.re*p.im+b.im*p.re}else typeof w=="bigint"&&typeof h=="bigint"?E+=Number(w*h):E+=Number(w)*Number(h)}return Q?new X(E,u):E}let a=d.zeros(i,n),B=i.reduce((E,u)=>E*u,1),s=t.map(E=>A.shape[E]).reduce((E,u)=>E*u,1);for(let E=0;E<B;E++){let u=E,D=[];for(let l=i.length-1;l>=0;l--)D[l]=u%i[l],u=Math.floor(u/i[l]);let y=D.slice(0,e.length),f=D.slice(e.length),c=0,m=0;for(let l=0;l<s;l++){u=l;let w=[];for(let F=t.length-1;F>=0;F--){let S=t[F];w[F]=u%A.shape[S],u=Math.floor(u/A.shape[S])}let h=new Array(A.ndim),b=new Array(r.ndim);for(let F=0;F<e.length;F++)h[e[F]]=y[F];for(let F=0;F<g.length;F++)b[g[F]]=f[F];for(let F=0;F<t.length;F++)h[t[F]]=w[F],b[o[F]]=w[F];let p=A.get(...h),N=r.get(...b);if(Q){let F=C(p),S=C(N);c+=F.re*S.re-F.im*S.im,m+=F.re*S.im+F.im*S.re}else typeof p=="bigint"&&typeof N=="bigint"?c+=Number(p*N):c+=Number(p)*Number(N)}Q?a.set(D,new X(c,m)):a.set(D,c)}return a}function hp(A,r=0,I=0,t=1){let o=A.shape,e=o.length;if(e<2)throw new Error("diagonal requires an array of at least two dimensions");let g=I<0?e+I:I,i=t<0?e+t:t;if(g<0||g>=e||i<0||i>=e)throw new Error("axis out of bounds");if(g===i)throw new Error("axis1 and axis2 cannot be the same");let n=o[g],Q=o[i],C;r>=0?C=Math.max(0,Math.min(n,Q-r)):C=Math.max(0,Math.min(n+r,Q));let a=[];for(let u=0;u<e;u++)u!==g&&u!==i&&a.push(o[u]);a.push(C);let B=d.zeros(a,A.dtype),s=o.filter((u,D)=>D!==g&&D!==i),E=s.reduce((u,D)=>u*D,1);for(let u=0;u<E;u++){let D=u,y=[];for(let f=s.length-1;f>=0;f--)y.unshift(D%s[f]),D=Math.floor(D/s[f]);for(let f=0;f<C;f++){let c=new Array(e),m=0;for(let h=0;h<e;h++)h===g?c[h]=r>=0?f:f-r:h===i?c[h]=r>=0?f+r:f:c[h]=y[m++];let l=[...y,f],w=A.get(...c);B.set(l,w)}}return B}function wp(A,...r){let I=A.indexOf("->"),t,o;I===-1?(t=A,o=dp(t)):(t=A.slice(0,I),o=A.slice(I+2));let e=t.split(",").map(u=>u.trim());if(e.length!==r.length)throw new Error(`einsum: expected ${e.length} operands, got ${r.length}`);let g=new Map;for(let u=0;u<r.length;u++){let D=e[u],y=r[u];if(D.length!==y.ndim)throw new Error(`einsum: operand ${u} has ${y.ndim} dimensions but subscript '${D}' has ${D.length} indices`);for(let f=0;f<D.length;f++){let c=D[f],m=y.shape[f];if(g.has(c)){if(g.get(c)!==m)throw new Error(`einsum: size mismatch for index '${c}': ${g.get(c)} vs ${m}`)}else g.set(c,m)}}for(let u of o)if(!g.has(u))throw new Error(`einsum: output subscript contains unknown index '${u}'`);let i=new Set(o),n=new Set;for(let u of e)for(let D of u)n.add(D);let Q=[];for(let u of n)i.has(u)||Q.push(u);if(r.length===2&&e.length===2){let[u,D]=e,[y,f]=r;if(u.length===2&&D.length===2&&o.length===2&&y.ndim===2&&f.ndim===2){let[c,m]=[u[0],u[1]],[l,w]=[D[0],D[1]],[h,b]=[o[0],o[1]];if(c===h&&w===b&&m===l&&Q.length===1&&Q[0]===m||c===h&&w===b&&m===l&&Q.length===1&&Q[0]===m)return Ar(y,f);if(m===h&&w===b&&c===l&&Q.length===1&&Q[0]===c){let p=aI(y);return Ar(p,f)}if(c===h&&l===b&&m===w&&Q.length===1&&Q[0]===m){let p=aI(f);return Ar(y,p)}}if(u.length===1&&D.length===1&&u===D&&o.length===0&&y.ndim===1&&f.ndim===1)return Iu(r,e,Q,g);if(u&&D&&u.length===1&&D.length===1&&o.length===2&&o===u+D&&Q.length===0&&y.ndim===1&&f.ndim===1)return ou(y,f)}if(r.length===1&&e[0].length===2&&o.length===0){let u=e[0];if(u[0]===u[1]&&r[0].ndim===2)return Iu(r,e,Q,g)}let C=Array.from(o).map(u=>g.get(u));if(C.length===0)return Iu(r,e,Q,g);let a=r[0].dtype;for(let u=1;u<r.length;u++)a=tA(a,r[u].dtype);let B=d.zeros(C,a),s=C.reduce((u,D)=>u*D,1),E=1;for(let u of Q)E*=g.get(u);for(let u=0;u<s;u++){let D=CK(u,C),y=new Map;for(let c=0;c<o.length;c++)y.set(o[c],D[c]);let f=0;for(let c=0;c<E;c++){let m=c;for(let w=Q.length-1;w>=0;w--){let h=Q[w],b=g.get(h);y.set(h,m%b),m=Math.floor(m/b)}let l=1;for(let w=0;w<r.length;w++){let h=r[w],b=e[w],p=[];for(let F of b)p.push(y.get(F));let N=h.get(...p);l*=Number(N)}f+=l}B.set(D,f)}return B}function dp(A){let r=new Map,I=A.split(",");for(let o of I)for(let e of o.trim())r.set(e,(r.get(e)||0)+1);let t=[];for(let[o,e]of r)e===1&&t.push(o);return t.sort().join("")}function Iu(A,r,I,t){let o=!1;for(let Q of A)if(k(Q.dtype)){o=!0;break}let e=Q=>Q instanceof X?{re:Q.re,im:Q.im}:{re:Number(Q),im:0},g=1;for(let Q of I)g*=t.get(Q);let i=0,n=0;for(let Q=0;Q<g;Q++){let C=new Map,a=Q;for(let E=I.length-1;E>=0;E--){let u=I[E],D=t.get(u);C.set(u,a%D),a=Math.floor(a/D)}let B=1,s=0;for(let E=0;E<A.length;E++){let u=A[E],D=r[E],y=[];for(let c of D)y.push(C.get(c));let f=u.get(...y);if(o){let c=e(f),m=B*c.re-s*c.im,l=B*c.im+s*c.re;B=m,s=l}else B*=Number(f)}i+=B,n+=s}return o?new X(i,n):i}function CK(A,r){let I=new Array(r.length),t=A;for(let o=r.length-1;o>=0;o--)I[o]=t%r[o],t=Math.floor(t/r[o]);return I}function bp(A,r){let I=A.shape,t=r.shape,o=I.length,e=t.length,g=tA(A.dtype,r.dtype);if(o===2&&e===2){let E=$b(A,r);if(E)return E}let i=Math.max(o,e),n=new Array(i),Q=new Array(i).fill(1),C=new Array(i).fill(1);for(let E=0;E<o;E++)Q[i-o+E]=I[E];for(let E=0;E<e;E++)C[i-e+E]=t[E];for(let E=0;E<i;E++)n[E]=Q[E]*C[E];let a=d.zeros(n,g),B=I.reduce((E,u)=>E*u,1),s=t.reduce((E,u)=>E*u,1);for(let E=0;E<B;E++){let u=E,D=new Array(o);for(let c=o-1;c>=0;c--)D[c]=u%I[c],u=Math.floor(u/I[c]);let y=new Array(i).fill(0);for(let c=0;c<o;c++)y[i-o+c]=D[c];let f=A.get(...D);for(let c=0;c<s;c++){let m=c,l=new Array(e);for(let N=e-1;N>=0;N--)l[N]=m%t[N],m=Math.floor(m/t[N]);let w=new Array(i).fill(0);for(let N=0;N<e;N++)w[i-e+N]=l[N];let h=r.get(...l),b=new Array(i);for(let N=0;N<i;N++)b[N]=y[N]*C[N]+w[N];let p=hr(f,h);a.set(b,p)}}return a}function pp(A,r,I=-1,t=-1,o=-1,e){e!==void 0&&(I=e,t=e,o=e);let g=(b,p)=>b<0?p+b:b,i=g(I,A.ndim),n=g(t,r.ndim),Q=tA(A.dtype,r.dtype),C=k(Q),a=(b,...p)=>{let N=b.get(...p);return N instanceof X||typeof N=="bigint"?N:Number(N)},B=(b,p)=>{if(b instanceof X||p instanceof X){let N=b instanceof X?b:new X(Number(b),0),F=p instanceof X?p:new X(Number(p),0);return N.mul(F)}return typeof b=="bigint"||typeof p=="bigint"?BigInt(b)*BigInt(p):b*p},s=(b,p)=>{if(b instanceof X||p instanceof X){let N=b instanceof X?b:new X(Number(b),0),F=p instanceof X?p:new X(Number(p),0);return N.sub(F)}return typeof b=="bigint"||typeof p=="bigint"?BigInt(b)-BigInt(p):b-p};if(A.ndim===1&&r.ndim===1){let b=A.shape[0],p=r.shape[0];if(b===3&&p===3){let N=a(A,0),F=a(A,1),S=a(A,2),M=a(r,0),Y=a(r,1),L=a(r,2),v=d.zeros([3],Q);return v.set([0],s(B(F,L),B(S,Y))),v.set([1],s(B(S,M),B(N,L))),v.set([2],s(B(N,Y),B(F,M))),v}else if(b===2&&p===2){let N=a(A,0),F=a(A,1),S=a(r,0),M=a(r,1);return s(B(N,M),B(F,S))}else if(b===2&&p===3||b===3&&p===2){let N=a(A,0),F=a(A,1),S=b===3?a(A,2):C?new X(0,0):P(Q)?0n:0,M=a(r,0),Y=a(r,1),L=p===3?a(r,2):C?new X(0,0):P(Q)?0n:0,v=d.zeros([3],Q);return v.set([0],s(B(F,L),B(S,Y))),v.set([1],s(B(S,M),B(N,L))),v.set([2],s(B(N,Y),B(F,M))),v}else throw new Error(`cross: incompatible dimensions for cross product: ${b} and ${p}`)}let E=A.shape[i],u=r.shape[n];if(E!==2&&E!==3||u!==2&&u!==3)throw new Error(`cross: incompatible dimensions for cross product: ${E} and ${u}`);let D=E===2&&u===2?0:3,y=[...A.shape.slice(0,i),...A.shape.slice(i+1)],f=[...r.shape.slice(0,n),...r.shape.slice(n+1)];if(y.length!==f.length)throw new Error("cross: incompatible shapes for cross product");for(let b=0;b<y.length;b++)if(y[b]!==f[b])throw new Error("cross: incompatible shapes for cross product");let c=y;if(E===3&&u===3&&i===A.ndim-1&&n===r.ndim-1){let b=c.reduce((N,F)=>N*F,1),p=tp(A,r,b);if(p)return p}let m=o<0?c.length+1+o:o,l;if(D===0?l=c:l=[...c.slice(0,m),D,...c.slice(m)],l.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let w=d.zeros(l,Q),h=c.reduce((b,p)=>b*p,1);for(let b=0;b<h;b++){let p=b,N=[];for(let V=c.length-1;V>=0;V--)N[V]=p%c[V],p=Math.floor(p/c[V]);let F=[...N.slice(0,i),0,...N.slice(i)],S=[...N.slice(0,n),0,...N.slice(n)],M=V=>(F[i]=V,a(A,...F)),Y=V=>(S[n]=V,a(r,...S)),L=M(0),v=M(1),Z=E===3?M(2):C?new X(0,0):P(Q)?0n:0,O=Y(0),z=Y(1),j=u===3?Y(2):C?new X(0,0):P(Q)?0n:0;if(D===0)w.set(N,s(B(L,z),B(v,O)));else{let V=s(B(v,j),B(Z,z)),rA=s(B(Z,O),B(L,j)),oA=s(B(L,z),B(v,O)),QA=(dA,bA)=>{let FA=[...N.slice(0,m),dA,...N.slice(m)];w.set(FA,bA)};QA(0,V),QA(1,rA),QA(2,oA)}}return w}function VI(A,r=2,I,t=!1){if(typeof r!="number")throw new Error("vector_norm: ord must be a number");if(I==null){let Q=A.ndim===1?A:UI(A),C=Q.size,a;if(r===1/0){a=0;for(let B=0;B<C;B++)a=Math.max(a,Math.abs(Number(Q.get(B))))}else if(r===-1/0){a=1/0;for(let B=0;B<C;B++)a=Math.min(a,Math.abs(Number(Q.get(B))))}else if(r===0){a=0;for(let B=0;B<C;B++)Number(Q.get(B))!==0&&a++}else if(r===1){a=0;for(let B=0;B<C;B++)a+=Math.abs(Number(Q.get(B)))}else if(r===2){a=0;for(let B=0;B<C;B++){let s=Number(Q.get(B));a+=s*s}a=Math.sqrt(a)}else{a=0;for(let B=0;B<C;B++)a+=Math.pow(Math.abs(Number(Q.get(B))),r);a=Math.pow(a,1/r)}if(t){let B=new Array(A.ndim).fill(1),s=d.zeros(B,"float64");return s.set(new Array(A.ndim).fill(0),a),s}return a}let o=I<0?A.ndim+I:I;if(o<0||o>=A.ndim)throw new Error(`vector_norm: axis ${I} out of bounds for array with ${A.ndim} dimensions`);let e=t?[...A.shape.slice(0,o),1,...A.shape.slice(o+1)]:[...A.shape.slice(0,o),...A.shape.slice(o+1)];if(e.length===0)return VI(A,r,null,!1);let g=d.zeros(e,"float64"),i=A.shape[o],n=e.reduce((Q,C)=>Q*C,1);for(let Q=0;Q<n;Q++){let C=Q,a=[];for(let E=e.length-1;E>=0;E--)a[E]=C%e[E],C=Math.floor(C/e[E]);let B=t?[...a.slice(0,o),0,...a.slice(o+1)]:[...a.slice(0,o),0,...a.slice(o)],s;if(r===1/0){s=0;for(let E=0;E<i;E++)B[o]=E,s=Math.max(s,Math.abs(Number(A.get(...B))))}else if(r===-1/0){s=1/0;for(let E=0;E<i;E++)B[o]=E,s=Math.min(s,Math.abs(Number(A.get(...B))))}else if(r===0){s=0;for(let E=0;E<i;E++)B[o]=E,Number(A.get(...B))!==0&&s++}else if(r===1){s=0;for(let E=0;E<i;E++)B[o]=E,s+=Math.abs(Number(A.get(...B)))}else if(r===2){s=0;for(let E=0;E<i;E++){B[o]=E;let u=Number(A.get(...B));s+=u*u}s=Math.sqrt(s)}else{s=0;for(let E=0;E<i;E++)B[o]=E,s+=Math.pow(Math.abs(Number(A.get(...B))),r);s=Math.pow(s,1/r)}g.set(a,s)}return g}function CI(A,r="fro",I=!1){if(A.ndim<2)throw new Error(`matrix_norm: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let g=Array.from(A.shape).slice(0,-2),i=A.shape[A.ndim-2],n=A.shape[A.ndim-1],Q=g.reduce((B,s)=>B*s,1),C=new Float64Array(Q),a=rr(A);for(let B=0;B<Q;B++){let s=B*i*n,E=d.fromData(a.slice(s,s+i*n),[i,n],"float64");C[B]=CI(E,r,!1)}if(I){let B=[...g,1,1],s=d.fromData(C,g,"float64");return yA(s,B)}return d.fromData(C,g,"float64")}let[t,o]=A.shape,e;if(r==="fro"){e=0;for(let g=0;g<t;g++)for(let i=0;i<o;i++){let n=Number(A.get(g,i));e+=n*n}e=Math.sqrt(e)}else if(r==="nuc"){let{s:g}=Yr(A);e=0;for(let i=0;i<g.size;i++)e+=Number(g.get(i))}else if(r===1){e=0;for(let g=0;g<o;g++){let i=0;for(let n=0;n<t;n++)i+=Math.abs(Number(A.get(n,g)));e=Math.max(e,i)}}else if(r===-1){e=1/0;for(let g=0;g<o;g++){let i=0;for(let n=0;n<t;n++)i+=Math.abs(Number(A.get(n,g)));e=Math.min(e,i)}}else if(r===1/0){e=0;for(let g=0;g<t;g++){let i=0;for(let n=0;n<o;n++)i+=Math.abs(Number(A.get(g,n)));e=Math.max(e,i)}}else if(r===-1/0){e=1/0;for(let g=0;g<t;g++){let i=0;for(let n=0;n<o;n++)i+=Math.abs(Number(A.get(g,n)));e=Math.min(e,i)}}else if(r===2){let{s:g}=Yr(A);e=Number(g.get(0))}else if(r===-2){let{s:g}=Yr(A);e=Number(g.get(g.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${r}`);if(I){let g=d.zeros([1,1],"float64");return g.set([0,0],e),g}return e}function Np(A,r=null,I=null,t=!1){if(r===null){if(I===null)return VI(A,2,null,t);if(typeof I=="number")return VI(A,2,I,t);r="fro"}if(Array.isArray(I)){if(I.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=I[0]<0?A.ndim+I[0]:I[0],e=I[1]<0?A.ndim+I[1]:I[1],g=r??"fro";if(A.ndim===2)return CI(A,g,t);let i=A.ndim,n=Array.from({length:i},(D,y)=>y).filter(D=>D!==o&&D!==e),Q=n.map(D=>A.shape[D]),C=Q.reduce((D,y)=>D*y,1)||1,a=A.shape[o],B=A.shape[e],s=[...n,o,e],E=aI(A,s),u=new Float64Array(C);for(let D=0;D<C;D++){let y=new Array(Q.length),f=D;for(let l=Q.length-1;l>=0;l--)y[l]=f%Q[l],f=Math.floor(f/Q[l]);let c=d.zeros([a,B],"float64");for(let l=0;l<a;l++)for(let w=0;w<B;w++)c.set([l,w],Number(E.get(...y,l,w)));let m=CI(c,g,!1);u[D]=typeof m=="number"?m:Number(m)}if(t){let D=Array.from(A.shape);return D[o]=1,D[e]=1,d.fromData(u,D,"float64")}return Q.length===0?u[0]:d.fromData(u,Q,"float64")}if(A.ndim===2&&I===null&&(r==="fro"||r==="nuc"))return CI(A,r,t);if(typeof r!="number"&&r!==null)throw new Error(`norm: ord '${r}' not valid for vector norm`);return VI(A,r??2,I,t)}function vn(A,r="reduced"){if(A.ndim>2){let s=A.shape.slice(0,-2),[E,u]=[A.shape[A.ndim-2],A.shape[A.ndim-1]],D=Math.min(E,u),y=s.reduce((l,w)=>l*w,1),f=r==="complete"?E:D,c=d.zeros([...s,E,f],"float64"),m=d.zeros([...s,f,u],"float64");for(let l=0;l<y;l++){let w=Kn(l,s),h=d.zeros([E,u],"float64");for(let p=0;p<E;p++)for(let N=0;N<u;N++)h.set([p,N],Number(A.get(...w,p,N)));let b=vn(h,r);for(let p=0;p<E;p++)for(let N=0;N<f;N++)c.set([...w,p,N],Number(b.q.get(p,N)));for(let p=0;p<f;p++)for(let N=0;N<u;N++)m.set([...w,p,N],Number(b.r.get(p,N)))}return{q:c,r:m}}if(A.ndim!==2)throw new Error(`qr: input must be 2D, got ${A.ndim}D`);if(r==="reduced"){let s=gp(A);if(s)return s}let[I,t]=A.shape,o=Math.min(I,t),e=d.zeros([I,t],"float64");for(let s=0;s<I;s++)for(let E=0;E<t;E++)e.set([s,E],Number(A.get(s,E)));let g=[],i=[];for(let s=0;s<o;s++){let E=I-s,u=[];for(let l=s;l<I;l++)u.push(Number(e.get(l,s)));let D=0;for(let l=0;l<E;l++)D+=u[l]*u[l];if(D=Math.sqrt(D),D<1e-15){g.push(u),i.push(0);continue}let y=u[0]>=0?1:-1,f=u[0]+y*D,c=[1];for(let l=1;l<E;l++)c.push(u[l]/f);let m=y*f/D;i.push(m),g.push(c);for(let l=s;l<t;l++){let w=0;for(let h=0;h<E;h++)w+=c[h]*Number(e.get(s+h,l));for(let h=0;h<E;h++)e.set([s+h,l],Number(e.get(s+h,l))-m*c[h]*w)}}if(r==="raw"){let s=d.zeros([I,t],"float64");for(let u=0;u<I;u++)for(let D=0;D<t;D++)s.set([u,D],Number(e.get(u,D)));let E=d.zeros([o],"float64");for(let u=0;u<o;u++)E.set([u],i[u]);return{h:s,tau:E}}if(r==="r"){let s=d.zeros([o,t],"float64");for(let E=0;E<o;E++)for(let u=E;u<t;u++)s.set([E,u],Number(e.get(E,u)));return s}let n=r==="complete"?I:o,Q=d.zeros([I,n],"float64");for(let s=0;s<Math.min(I,n);s++)Q.set([s,s],1);for(let s=o-1;s>=0;s--){let E=g[s],u=i[s],D=I-s;for(let y=s;y<n;y++){let f=0;for(let c=0;c<D;c++)f+=E[c]*Number(Q.get(s+c,y));for(let c=0;c<D;c++)Q.set([s+c,y],Number(Q.get(s+c,y))-u*E[c]*f)}}let C=d.zeros([I,n],"float64");for(let s=0;s<I;s++)for(let E=0;E<n;E++)C.set([s,E],Number(Q.get(s,E)));let a=r==="complete"?I:o,B=d.zeros([a,t],"float64");for(let s=0;s<a;s++)for(let E=0;E<t;E++)E>=s&&B.set([s,E],Number(e.get(s,E)));return{q:C,r:B}}function eu(A,r=!1){if(A.ndim<2)throw new Error(`cholesky: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let i=Array.from(A.shape).slice(0,-2),n=A.shape[A.ndim-1],Q=A.shape[A.ndim-2];if(Q!==n)throw new Error(`cholesky: last 2 dimensions must be square, got ${Q}x${n}`);let C=i.reduce((s,E)=>s*E,1),a=new Float64Array(C*n*n),B=rr(A);for(let s=0;s<C;s++){let E=s*n*n,u=d.fromData(B.slice(E,E+n*n),[n,n],"float64"),D=eu(u,r);a.set(rr(D),E)}return d.fromData(a,[...i,n,n],"float64")}let[I,t]=A.shape;if(I!==t)throw new Error(`cholesky: matrix must be square, got ${I}x${t}`);let o=A.dtype==="float32"?Bp(A):ap(A);if(o){if(r){let i=I,n=d.zeros([i,i],o.dtype);for(let Q=0;Q<i;Q++)for(let C=Q;C<i;C++)n.set([Q,C],Number(o.get(C,Q)));return n}return o}let e=I,g=d.zeros([e,e],"float64");for(let i=0;i<e;i++)for(let n=0;n<=i;n++){let Q=0;if(i===n){for(let a=0;a<n;a++)Q+=Number(g.get(n,a))**2;let C=Number(A.get(n,n))-Q;if(C<0)throw new Error("cholesky: matrix is not positive definite");g.set([n,n],Math.sqrt(C))}else{for(let a=0;a<n;a++)Q+=Number(g.get(i,a))*Number(g.get(n,a));let C=Number(g.get(n,n));if(Math.abs(C)<1e-15)throw new Error("cholesky: matrix is not positive definite");g.set([i,n],(Number(A.get(i,n))-Q)/C)}}if(r){let i=d.zeros([e,e],"float64");for(let n=0;n<e;n++)for(let Q=n;Q<e;Q++)i.set([n,Q],Number(g.get(Q,n)));return i}return g}function Yr(A){if(A.ndim!==2)throw new Error(`svd: input must be 2D, got ${A.ndim}D`);let r=up(A);if(r)return r;let[I,t]=A.shape,o=Math.min(I,t),e=d.zeros([t,t],"float64");for(let B=0;B<t;B++)for(let s=0;s<t;s++){let E=0;for(let u=0;u<I;u++)E+=Number(A.get(u,B))*Number(A.get(u,s));e.set([B,s],E)}let{values:g,vectors:i}=gu(e),n=Array.from({length:t},(B,s)=>s);n.sort((B,s)=>g[s]-g[B]);let Q=d.zeros([o],"float64");for(let B=0;B<o;B++){let s=g[n[B]];Q.set([B],Math.sqrt(Math.max(0,s)))}let C=d.zeros([t,t],"float64");for(let B=0;B<t;B++)for(let s=0;s<t;s++)C.set([B,s],i[s][n[B]]);let a=d.zeros([I,I],"float64");for(let B=0;B<I;B++)for(let s=0;s<o;s++){let E=Number(Q.get(s));if(E>1e-10){let u=0;for(let D=0;D<t;D++)u+=Number(A.get(B,D))*Number(C.get(s,D));a.set([B,s],u/E)}}if(I>o)for(let B=o;B<I;B++){let s=new Array(I).fill(0);s[B]=1;for(let u=0;u<B;u++){let D=0;for(let y=0;y<I;y++)D+=s[y]*Number(a.get(y,u));for(let y=0;y<I;y++)s[y]=s[y]-D*Number(a.get(y,u))}let E=0;for(let u=0;u<I;u++)E+=s[u]*s[u];if(E=Math.sqrt(E),E>1e-10)for(let u=0;u<I;u++)a.set([u,B],s[u]/E)}return{u:a,s:Q,vt:C}}function gu(A){let r=A.shape[0],I=100*r*r,t=1e-10,o=[];for(let i=0;i<r;i++){o.push([]);for(let n=0;n<r;n++)o[i].push(Number(A.get(i,n)))}let e=[];for(let i=0;i<r;i++){e.push([]);for(let n=0;n<r;n++)e[i].push(i===n?1:0)}for(let i=0;i<I;i++){let n=0,Q=0,C=1;for(let c=0;c<r;c++)for(let m=c+1;m<r;m++)Math.abs(o[c][m])>n&&(n=Math.abs(o[c][m]),Q=c,C=m);if(n<t)break;let a=o[Q][Q],B=o[C][C],s=o[Q][C],E;Math.abs(a-B)<1e-15?E=Math.PI/4:E=.5*Math.atan2(2*s,B-a);let u=Math.cos(E),D=Math.sin(E),y=u*u*a+D*D*B-2*D*u*s,f=D*D*a+u*u*B+2*D*u*s;o[Q][Q]=y,o[C][C]=f,o[Q][C]=0,o[C][Q]=0;for(let c=0;c<r;c++)if(c!==Q&&c!==C){let m=o[c][Q],l=o[c][C];o[c][Q]=u*m-D*l,o[Q][c]=o[c][Q],o[c][C]=D*m+u*l,o[C][c]=o[c][C]}for(let c=0;c<r;c++){let m=e[c][Q],l=e[c][C];e[c][Q]=u*m-D*l,e[c][C]=D*m+u*l}}let g=[];for(let i=0;i<r;i++)g.push(o[i][i]);return{values:g,vectors:e}}function WI(A,r=!0,I=!0){if(A.ndim>2){let o=A.shape.slice(0,-2),[e,g]=[A.shape[A.ndim-2],A.shape[A.ndim-1]],i=Math.min(e,g),n=o.reduce((E,u)=>E*u,1);if(!I){let E=d.zeros([...o,i],"float64");for(let u=0;u<n;u++){let D=Kn(u,o),y=d.zeros([e,g],"float64");for(let c=0;c<e;c++)for(let m=0;m<g;m++)y.set([c,m],Number(A.get(...D,c,m)));let{s:f}=Yr(y);for(let c=0;c<i;c++)E.set([...D,c],Number(f.get(c)))}return E}let Q=r?e:i,C=r?g:i,a=d.zeros([...o,e,Q],"float64"),B=d.zeros([...o,i],"float64"),s=d.zeros([...o,C,g],"float64");for(let E=0;E<n;E++){let u=Kn(E,o),D=d.zeros([e,g],"float64");for(let f=0;f<e;f++)for(let c=0;c<g;c++)D.set([f,c],Number(A.get(...u,f,c)));let y=WI(D,r,!0);for(let f=0;f<e;f++)for(let c=0;c<Q;c++)a.set([...u,f,c],Number(y.u.get(f,c)));for(let f=0;f<i;f++)B.set([...u,f],Number(y.s.get(f)));for(let f=0;f<C;f++)for(let c=0;c<g;c++)s.set([...u,f,c],Number(y.vt.get(f,c)))}return{u:a,s:B,vt:s}}let t=Yr(A);if(!I)return t.s;if(!r){let[o,e]=A.shape,g=Math.min(o,e),i=d.zeros([o,g],"float64");for(let Q=0;Q<o;Q++)for(let C=0;C<g;C++)i.set([Q,C],Number(t.u.get(Q,C)));let n=d.zeros([g,e],"float64");for(let Q=0;Q<g;Q++)for(let C=0;C<e;C++)n.set([Q,C],Number(t.vt.get(Q,C)));return{u:i,s:t.s,vt:n}}return t}function iu(A){if(A.ndim<2)throw new Error(`det: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let Q=Array.from(A.shape).slice(0,-2),C=A.shape[A.ndim-1],a=A.shape[A.ndim-2];if(a!==C)throw new Error(`det: last 2 dimensions must be square, got ${a}x${C}`);let B=Q.reduce((u,D)=>u*D,1),s=new Float64Array(B),E=rr(A);for(let u=0;u<B;u++){let D=u*C*C,y=d.fromData(E.slice(D,D+C*C),[C,C],"float64");s[u]=iu(y)}return d.fromData(s,Q,"float64")}let[r,I]=A.shape;if(r!==I)throw new Error(`det: matrix must be square, got ${r}x${I}`);let t=r;if(t===0)return 1;let o=A.data;if(t===1)return Number(o[0]);if(t===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:e,sign:g}=Xn(A),i=e.data,n=g;for(let Q=0;Q<t;Q++)n*=i[Q*t+Q];return n}function Xn(A){let[r,I]=A.shape,t=r,o=I,e=d.zeros([t,o],"float64"),g=e.data,i=A.data;for(let C=0;C<t*o;C++)g[C]=Number(i[C]);let n=Array.from({length:t},(C,a)=>a),Q=1;for(let C=0;C<Math.min(t,o);C++){let a=Math.abs(g[C*o+C]),B=C;for(let E=C+1;E<t;E++){let u=Math.abs(g[E*o+C]);u>a&&(a=u,B=E)}if(B!==C){for(let u=0;u<o;u++){let D=g[C*o+u];g[C*o+u]=g[B*o+u],g[B*o+u]=D}let E=n[C];n[C]=n[B],n[B]=E,Q=-Q}let s=g[C*o+C];if(Math.abs(s)>1e-15)for(let E=C+1;E<t;E++){let u=g[E*o+C]/s;g[E*o+C]=u;for(let D=C+1;D<o;D++)g[E*o+D]=g[E*o+D]-u*g[C*o+D]}}return{lu:e,piv:n,sign:Q}}function ZI(A){if(A.ndim<2)throw new Error(`inv: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let Q=Array.from(A.shape).slice(0,-2),C=A.shape[A.ndim-1],a=A.shape[A.ndim-2];if(a!==C)throw new Error(`inv: last 2 dimensions must be square, got ${a}x${C}`);let B=Q.reduce((u,D)=>u*D,1),s=rr(A),E=new Float64Array(B*C*C);for(let u=0;u<B;u++){let D=u*C*C,y=d.fromData(s.slice(D,D+C*C),[C,C],"float64"),c=ZI(y).data;for(let m=0;m<C*C;m++)E[D+m]=c[m]}return d.fromData(E,Array.from(A.shape),"float64")}let[r,I]=A.shape;if(r!==I)throw new Error(`inv: matrix must be square, got ${r}x${I}`);let t=r,{lu:o,piv:e}=Xn(A),g=o.data,i=d.zeros([t,t],"float64"),n=i.data;for(let Q=0;Q<t;Q++){let C=new Float64Array(t);for(let a=0;a<t;a++){let B=e[a]===Q?1:0;for(let s=0;s<a;s++)B-=g[a*t+s]*C[s];C[a]=B}for(let a=t-1;a>=0;a--){let B=C[a];for(let E=a+1;E<t;E++)B-=g[a*t+E]*n[E*t+Q];let s=g[a*t+a];if(Math.abs(s)<1e-15)throw new Error("inv: singular matrix");n[a*t+Q]=B/s}}return i}function fp(A,r){let[I]=A.shape,t=I,{lu:o,piv:e}=Xn(A),g=o.data,i=r.data,n=new Float64Array(t);for(let B=0;B<t;B++)n[B]=Number(i[e[B]]);let Q=new Float64Array(t);for(let B=0;B<t;B++){let s=n[B];for(let E=0;E<B;E++)s-=g[B*t+E]*Q[E];Q[B]=s}let C=d.zeros([t],"float64"),a=C.data;for(let B=t-1;B>=0;B--){let s=Q[B];for(let u=B+1;u<t;u++)s-=g[B*t+u]*a[u];let E=g[B*t+B];if(Math.abs(E)<1e-15)throw new Error("solve: singular matrix");a[B]=s/E}return C}function nu(A,r){if(A.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${A.ndim}D`);let[I,t]=A.shape;if(I!==t)throw new Error(`solve: coefficient matrix must be square, got ${I}x${t}`);let o=I;if(r.ndim===1){if(r.shape[0]!==o)throw new Error(`solve: incompatible shapes (${I},${t}) and (${r.shape[0]},)`);return fp(A,r)}if(r.ndim===2){if(r.shape[0]!==o)throw new Error(`solve: incompatible shapes (${I},${t}) and (${r.shape[0]},${r.shape[1]})`);let e=r.shape[1],g=d.zeros([o,e],"float64");for(let i=0;i<e;i++){let n=d.zeros([o],"float64");for(let C=0;C<o;C++)n.set([C],Number(r.get(C,i)));let Q=fp(A,n);for(let C=0;C<o;C++)g.set([C,i],Number(Q.get(C)))}return g}throw new Error(`solve: b must be 1D or 2D, got ${r.ndim}D`)}function Fp(A,r,I=null){if(A.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${A.ndim}D`);let[t,o]=A.shape,e=Math.min(t,o),g=r.ndim===1?yA(r,[r.size,1]):r,i=g.shape[1];if(g.shape[0]!==t)throw new Error(`lstsq: incompatible shapes (${t},${o}) and (${r.shape.join(",")})`);let{u:n,s:Q,vt:C}=Yr(A),a=Q.data,B=n.data,s=C.data,E=I??Math.max(t,o)*Number.EPSILON,D=a[0]*E,y=0;for(let N=0;N<e;N++)a[N]>D&&y++;let f=new Float64Array(o*e);for(let N=0;N<e;N++){let F=a[N];if(F>D){let S=1/F;for(let M=0;M<o;M++)f[M*e+N]=s[N*o+M]*S}}let c=new Float64Array(e*t);for(let N=0;N<e;N++)for(let F=0;F<t;F++)c[N*t+F]=B[F*t+N];let m=d.fromData(f,[o,e],"float64"),l=d.fromData(c,[e,t],"float64"),w=TI(l,g)??OI(l,g),h=TI(m,w)??OI(m,w),b;if(t>o&&y===o){let N=new Float64Array(i),F=r.ndim===1?yA(h,[o,1]):h,M=(TI(A,F)??OI(A,F)).data;for(let Y=0;Y<i;Y++){let L=0;for(let v=0;v<t;v++){let Z=M[v*i+Y]-Number(g.iget(v*i+Y));L+=Z*Z}N[Y]=L}b=d.fromData(N,[i],"float64")}else b=d.zeros([0],"float64");return{x:r.ndim===1?yA(h,[o]):h,residuals:b,rank:y,s:Q}}function Gp(A,r=2){if(A.ndim!==2)throw new Error(`cond: input must be 2D, got ${A.ndim}D`);let[I,t]=A.shape;if(r===2||r===-2){let{s:i}=Yr(A),n=Math.min(I,t),Q=Number(i.get(0)),C=Number(i.get(n-1));return r===2?C>0?Q/C:1/0:Q>0?C/Q:0}if(I!==t)throw new Error(`cond: matrix must be square for p=${r}`);let o=CI(A,r),e=ZI(A),g=CI(e,r);return o*g}function Sp(A,r){if(A.ndim===0)return Number(A.get())!==0?1:0;if(A.ndim===1){for(let g=0;g<A.size;g++)if(Number(A.get(g))!==0)return 1;return 0}if(A.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${A.ndim}D`);let{s:I}=Yr(A),t=Number(I.get(0)),o=r??t*Math.max(A.shape[0],A.shape[1])*Number.EPSILON,e=0;for(let g=0;g<I.size;g++)Number(I.get(g))>o&&e++;return e}function Rp(A,r){if(A.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${A.ndim}D`);let[I,t]=A.shape;if(I!==t)throw new Error(`matrix_power: matrix must be square, got ${I}x${t}`);let o=I;if(!Number.isInteger(r))throw new Error("matrix_power: exponent must be an integer");if(r===0){let a=d.zeros([o,o],"float64");for(let B=0;B<o;B++)a.set([B,B],1);return a}let e=A,g=r;r<0&&(e=ZI(A),g=-r);let i=e.dtype==="float32"?"float32":"float64",n=d.zeros([o,o],i),Q=n.data;for(let a=0;a<o;a++)Q[a*o+a]=1;let C;if(e.isCContiguous&&(e.dtype==="float64"||e.dtype==="float32"))C=e.copy();else{C=d.zeros([o,o],i);let a=C.data,B=e.data,s=e.offset,[E=0,u=0]=e.strides;for(let D=0;D<o;D++)for(let y=0;y<o;y++)a[D*o+y]=Number(B[s+D*E+y*u])}for(;g>0;)g&1&&(n=Ar(n,C)),C=Ar(C,C),g>>=1;return n}function Qu(A,r=1e-15){if(A.ndim<2)throw new Error(`pinv: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let y=Array.from(A.shape).slice(0,-2),f=A.shape[A.ndim-2],c=A.shape[A.ndim-1],m=y.reduce((h,b)=>h*b,1),l=new Float64Array(m*c*f),w=rr(A);for(let h=0;h<m;h++){let b=h*f*c,p=d.fromData(w.slice(b,b+f*c),[f,c],"float64"),N=Qu(p,r);l.set(rr(N),h*c*f)}return d.fromData(l,[...y,c,f],"float64")}let[I,t]=A.shape,{u:o,s:e,vt:g}=Yr(A),i=Math.min(I,t),n=e.data,C=n[0]*r,a=new Float64Array(t*i);for(let y=0;y<i;y++){let f=n[y];if(f>C){let c=1/f;for(let m=0;m<t;m++)a[m*i+y]=g.data[y*t+m]*c}}let B=d.fromData(a,[t,i],"float64"),s=new Float64Array(i*I),E=o.data;for(let y=0;y<i;y++)for(let f=0;f<I;f++)s[y*I+f]=E[f*I+y];let u=d.fromData(s,[i,I],"float64");return TI(B,u)??OI(B,u)}function Tn(A){if(A.ndim<2)throw new Error(`eig: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let C=Array.from(A.shape).slice(0,-2),a=A.shape[A.ndim-1],B=A.shape[A.ndim-2];if(B!==a)throw new Error(`eig: last 2 dimensions must be square, got ${B}x${a}`);let s=C.reduce((y,f)=>y*f,1),E=new Float64Array(s*a),u=new Float64Array(s*a*a),D=rr(A);for(let y=0;y<s;y++){let f=y*a*a,c=d.fromData(D.slice(f,f+a*a),[a,a],"float64"),{w:m,v:l}=Tn(c);E.set(rr(m),y*a),u.set(rr(l),f)}return{w:d.fromData(E,[...C,a],"float64"),v:d.fromData(u,[...C,a,a],"float64")}}let[r,I]=A.shape;if(r!==I)throw new Error(`eig: matrix must be square, got ${r}x${I}`);let t=r,o=!0;A:for(let C=0;C<t;C++)for(let a=C+1;a<t;a++)if(Math.abs(Number(A.get(C,a))-Number(A.get(a,C)))>1e-10){o=!1;break A}if(o){let{values:C,vectors:a}=gu(A),B=d.zeros([t],"float64"),s=d.zeros([t,t],"float64");for(let E=0;E<t;E++){B.set([E],C[E]);for(let u=0;u<t;u++)s.set([u,E],a[u][E])}return{w:B,v:s}}let{values:e,vectors:g,hasComplexEigenvalues:i}=aK(A);i&&console.warn("numpy-ts: eig() detected complex eigenvalues which cannot be represented. Results are real approximations and may be inaccurate. For symmetric matrices, use eigh() instead.");let n=d.zeros([t],"float64"),Q=d.zeros([t,t],"float64");for(let C=0;C<t;C++){n.set([C],e[C]);for(let a=0;a<t;a++)Q.set([a,C],g[a][C])}return{w:n,v:Q}}function aK(A){let r=A.shape[0],I=1e3,t=1e-10,o=d.zeros([r,r],"float64");for(let Q=0;Q<r;Q++)for(let C=0;C<r;C++)o.set([Q,C],Number(A.get(Q,C)));let e=d.zeros([r,r],"float64");for(let Q=0;Q<r;Q++)e.set([Q,Q],1);for(let Q=0;Q<I;Q++){let C=0;for(let E=0;E<r;E++)for(let u=0;u<r;u++)E!==u&&(C+=Number(o.get(E,u))**2);if(Math.sqrt(C)<t*r)break;let a=vn(o,"reduced"),B=a.q,s=a.r;o=Ar(s,B),e=Ar(e,B)}let g=!1;for(let Q=0;Q<r-1;Q++){let C=Math.abs(Number(o.get(Q+1,Q))),a=Math.abs(Number(o.get(Q,Q))),B=Math.abs(Number(o.get(Q+1,Q+1))),s=Math.max(a,B,1e-10);if(C/s>1e-6){g=!0;break}}let i=[];for(let Q=0;Q<r;Q++)i.push(Number(o.get(Q,Q)));let n=[];for(let Q=0;Q<r;Q++){n.push([]);for(let C=0;C<r;C++)n[Q].push(Number(e.get(Q,C)))}return{values:i,vectors:n,hasComplexEigenvalues:g}}function On(A,r="L"){if(A.ndim<2)throw new Error(`eigh: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let a=Array.from(A.shape).slice(0,-2),B=A.shape[A.ndim-1],s=A.shape[A.ndim-2];if(s!==B)throw new Error(`eigh: last 2 dimensions must be square, got ${s}x${B}`);let E=a.reduce((f,c)=>f*c,1),u=new Float64Array(E*B),D=new Float64Array(E*B*B),y=rr(A);for(let f=0;f<E;f++){let c=f*B*B,m=d.fromData(y.slice(c,c+B*B),[B,B],"float64"),{w:l,v:w}=On(m,r);u.set(rr(l),f*B),D.set(rr(w),c)}return{w:d.fromData(u,[...a,B],"float64"),v:d.fromData(D,[...a,B,B],"float64")}}let[I,t]=A.shape;if(I!==t)throw new Error(`eigh: matrix must be square, got ${I}x${t}`);let o=I,e=d.zeros([o,o],"float64");for(let a=0;a<o;a++)for(let B=0;B<o;B++)r==="L"?a>=B&&(e.set([a,B],Number(A.get(a,B))),e.set([B,a],Number(A.get(a,B)))):B>=a&&(e.set([a,B],Number(A.get(a,B))),e.set([B,a],Number(A.get(a,B))));let{values:g,vectors:i}=gu(e),n=Array.from({length:o},(a,B)=>B);n.sort((a,B)=>g[a]-g[B]);let Q=d.zeros([o],"float64"),C=d.zeros([o,o],"float64");for(let a=0;a<o;a++){Q.set([a],g[n[a]]);for(let B=0;B<o;B++)C.set([B,a],i[B][n[a]])}return{w:Q,v:C}}function kp(A){let{w:r}=Tn(A);return r}function qp(A,r="L"){let{w:I}=On(A,r);return I}function Mp(A,r){let I=lI(A),t=lI(r),o=I.shape[0],e=t.shape[0];if(o!==e)throw new Error(`vdot: arrays must have same number of elements, got ${o} and ${e}`);let g=k(A.dtype)||k(r.dtype);if(g){let C=Wb(I,t);if(C!==null)return C}else{let C=_n(I,t);if(C!==null)return C}if(g){let C=0,a=0;for(let B=0;B<o;B++){let s=I.get(B),E=t.get(B),u=s instanceof X?s.re:Number(s),D=s instanceof X?s.im:0,y=E instanceof X?E.re:Number(E),f=E instanceof X?E.im:0;C+=u*y+D*f,a+=-D*y+u*f}return Math.abs(a)<1e-15?C:new X(C,a)}let i=tA(A.dtype,r.dtype),n=Br(i);if(n){n[0]=0;for(let C=0;C<o;C++)n[0]+=Number(I.get(C))*Number(t.get(C));return n[0]}if(i==="float16"&&uA){let C=new Float16Array(1);C[0]=0;for(let a=0;a<o;a++)C[0]+=Number(I.get(a))*Number(t.get(a));return Number(C[0])}if(i==="float32"){let C=new Float32Array(1);C[0]=0;for(let a=0;a<o;a++)C[0]+=Number(I.get(a))*Number(t.get(a));return C[0]}let Q=0;for(let C=0;C<o;C++){let a=I.get(C),B=t.get(C);typeof a=="bigint"&&typeof B=="bigint"?Q=(typeof Q=="bigint"?Q:BigInt(Q))+a*B:Q=(typeof Q=="bigint"?Number(Q):Q)+Number(a)*Number(B)}return Q}function Jp(A,r,I=-1){let t=A.ndim,o=r.ndim,e=I<0?t+I:I,g=I<0?o+I:I;if(e<0||e>=t)throw new Error(`vecdot: axis ${I} out of bounds for array with ${t} dimensions`);if(g<0||g>=o)throw new Error(`vecdot: axis ${I} out of bounds for array with ${o} dimensions`);let i=A.shape[e],n=r.shape[g];if(i!==n)throw new Error(`vecdot: axis dimensions must match, got ${i} and ${n}`);if(t===1&&o===1){if(!(k(A.dtype)||k(r.dtype)))return dI(A,r);let c=A.shape[0],m=0,l=0;for(let w=0;w<c;w++){let h=A.get(w),b=r.get(w),p=h instanceof X?new X(h.re,-h.im):h,N=hr(p,b);N instanceof X?(m+=N.re,l+=N.im):m+=Number(N)}return new X(m,l)}if(t===2&&o===2&&I===-1){let f=Xb(A,r);if(f)return f}let Q=[...A.shape.slice(0,e),...A.shape.slice(e+1)],C=[...r.shape.slice(0,g),...r.shape.slice(g+1)],a=i,B=k(A.dtype)||k(r.dtype),s=tA(A.dtype,r.dtype),E=Q.length>C.length?Q:C,u=Br(s);if(E.length===0){if(u){u[0]=0;for(let c=0;c<a;c++)u[0]+=Number(A.get(c))*Number(r.get(c));return u[0]}let f=B?new X(0,0):P(s)?0n:0;for(let c=0;c<a;c++){let m=A.get(c),l=r.get(c),w=m instanceof X?new X(m.re,-m.im):m,h=hr(w,l);if(f instanceof X||h instanceof X){let b=f instanceof X?f:new X(Number(f),0),p=h instanceof X?h:new X(Number(h),0);f=b.add(p)}else typeof f=="bigint"||typeof h=="bigint"?f=BigInt(f)+BigInt(h):f=f+h}return f}let D=d.zeros(E,s),y=E.reduce((f,c)=>f*c,1);for(let f=0;f<y;f++){let c=[],m=f;for(let h=E.length-1;h>=0;h--)c.unshift(m%E[h]),m=Math.floor(m/E[h]);let l=[...c.slice(0,e),0,...c.slice(e)],w=[...c.slice(0,g),0,...c.slice(g)];if(u){u[0]=0;for(let h=0;h<a;h++)l[e]=h,w[g]=h,u[0]+=Number(A.get(...l))*Number(r.get(...w));D.set(c,u[0])}else{let h=B?new X(0,0):P(s)?0n:0;for(let b=0;b<a;b++){l[e]=b,w[g]=b;let p=A.get(...l),N=r.get(...w),F=p instanceof X?new X(p.re,-p.im):p,S=hr(F,N);if(h instanceof X||S instanceof X){let M=h instanceof X?h:new X(Number(h),0),Y=S instanceof X?S:new X(Number(S),0);h=M.add(Y)}else typeof h=="bigint"||typeof S=="bigint"?h=BigInt(h)+BigInt(S):h=h+S}D.set(c,h)}}return D}function xp(A){if(A.ndim<2)throw new Error(`matrix_transpose: input must have at least 2 dimensions, got ${A.ndim}D`);let r=Array.from({length:A.ndim},(t,o)=>o),I=r.length-1;return r[I]=I-1,r[I-1]=I,aI(A,r)}function Up(A,r){return aI(A,r)}function Lp(A,r){if(A.ndim<2)throw new Error(`matvec: x1 must have at least 2 dimensions, got ${A.ndim}D`);if(r.ndim<1)throw new Error(`matvec: x2 must have at least 1 dimension, got ${r.ndim}D`);let I=A.shape[A.ndim-2],t=A.shape[A.ndim-1],o=r.shape[r.ndim-1];if(t!==o)throw new Error(`matvec: last axis of x1 (${t}) must match last axis of x2 (${o})`);if(A.ndim===2&&r.ndim===1)return dI(A,r);let e=A.shape.slice(0,-2),g=r.shape.slice(0,-1),i=Math.max(e.length,g.length),n=[...Array(i-e.length).fill(1),...e],Q=[...Array(i-g.length).fill(1),...g],C=[];for(let D=0;D<i;D++){let y=n[D],f=Q[D];if(y!==1&&f!==1&&y!==f)throw new Error(`matvec: batch dimensions not broadcastable: ${e} vs ${g}`);C.push(Math.max(y,f))}let a=[...C,I],B=tA(A.dtype,r.dtype),s=d.zeros(a,B),E=k(B),u=C.reduce((D,y)=>D*y,1);for(let D=0;D<u;D++){let y=[],f=D;for(let w=C.length-1;w>=0;w--)y.unshift(f%C[w]),f=Math.floor(f/C[w]);let c=y.slice(-(e.length||1)).map((w,h)=>(e[h]??1)===1?0:w),m=y.slice(-(g.length||1)).map((w,h)=>(g[h]??1)===1?0:w),l=Br(B);for(let w=0;w<I;w++)if(l){l[0]=0;for(let h=0;h<t;h++){let b=[...c,w,h],p=[...m,h];l[0]+=Number(A.get(...b))*Number(r.get(...p))}s.set([...y,w],l[0])}else{let h=E?new X(0,0):P(B)?0n:0;for(let b=0;b<t;b++){let p=[...c,w,b],N=[...m,b],F=A.get(...p),S=r.get(...N),M=hr(F,S);if(h instanceof X||M instanceof X){let Y=h instanceof X?h:new X(Number(h),0),L=M instanceof X?M:new X(Number(M),0);h=Y.add(L)}else typeof h=="bigint"||typeof M=="bigint"?h=BigInt(h)+BigInt(M):h=h+M}s.set([...y,w],h)}}return s}function Hp(A,r){if(A.ndim<1)throw new Error(`vecmat: x1 must have at least 1 dimension, got ${A.ndim}D`);if(r.ndim<2)throw new Error(`vecmat: x2 must have at least 2 dimensions, got ${r.ndim}D`);let I=A.shape[A.ndim-1],t=r.shape[r.ndim-2],o=r.shape[r.ndim-1];if(I!==t)throw new Error(`vecmat: last axis of x1 (${I}) must match second-to-last axis of x2 (${t})`);if(A.ndim===1&&r.ndim===2)return dI(A,r);let e=A.shape.slice(0,-1),g=r.shape.slice(0,-2),i=Math.max(e.length,g.length),n=[...Array(i-e.length).fill(1),...e],Q=[...Array(i-g.length).fill(1),...g],C=[];for(let D=0;D<i;D++){let y=n[D],f=Q[D];if(y!==1&&f!==1&&y!==f)throw new Error(`vecmat: batch dimensions not broadcastable: ${e} vs ${g}`);C.push(Math.max(y,f))}let a=[...C,o],B=tA(A.dtype,r.dtype),s=d.zeros(a,B),E=k(B),u=C.reduce((D,y)=>D*y,1);for(let D=0;D<u;D++){let y=[],f=D;for(let w=C.length-1;w>=0;w--)y.unshift(f%C[w]),f=Math.floor(f/C[w]);let c=y.slice(-(e.length||1)).map((w,h)=>(e[h]??1)===1?0:w),m=y.slice(-(g.length||1)).map((w,h)=>(g[h]??1)===1?0:w),l=Br(B);for(let w=0;w<o;w++)if(l){l[0]=0;for(let h=0;h<I;h++){let b=[...c,h],p=[...m,h,w];l[0]+=Number(A.get(...b))*Number(r.get(...p))}s.set([...y,w],l[0])}else{let h=E?new X(0,0):P(B)?0n:0;for(let b=0;b<I;b++){let p=[...c,b],N=[...m,b,w],F=A.get(...p),S=r.get(...N),M=hr(F,S);if(h instanceof X||M instanceof X){let Y=h instanceof X?h:new X(Number(h),0),L=M instanceof X?M:new X(Number(M),0);h=Y.add(L)}else typeof h=="bigint"||typeof M=="bigint"?h=BigInt(h)+BigInt(M):h=h+M}s.set([...y,w],h)}}return s}function Cu(A){if(A.ndim<2)throw new Error(`slogdet: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let Q=Array.from(A.shape).slice(0,-2),C=A.shape[A.ndim-1],a=A.shape[A.ndim-2];if(a!==C)throw new Error(`slogdet: last 2 dimensions must be square, got ${a}x${C}`);let B=Q.reduce((D,y)=>D*y,1),s=new Float64Array(B),E=new Float64Array(B),u=rr(A);for(let D=0;D<B;D++){let y=D*C*C,f=d.fromData(u.slice(y,y+C*C),[C,C],"float64"),{sign:c,logabsdet:m}=Cu(f);s[D]=c,E[D]=m}return{sign:d.fromData(s,Q,"float64"),logabsdet:d.fromData(E,Q,"float64")}}let[r,I]=A.shape;if(r!==I)throw new Error(`slogdet: matrix must be square, got ${r}x${I}`);let t=r;if(t===0)return{sign:1,logabsdet:0};let{lu:o,sign:e}=Xn(A),g=o.data,i=0,n=e;for(let Q=0;Q<t;Q++){let C=g[Q*t+Q];if(C===0)return{sign:0,logabsdet:-1/0};C<0&&(n=-n),i+=Math.log(Math.abs(C))}return{sign:n,logabsdet:i}}function Yp(A){return WI(A,!0,!1)}function Pp(A){if(A.length<2)throw new Error("multi_dot: need at least 2 arrays");if(A.length===2)return Ar(A[0],A[1]);let r=A[0];for(let I=1;I<A.length;I++)r=Ar(r,A[I]);return r}function _p(A,r=2){if(r<=0)throw new Error(`tensorinv: ind must be positive, got ${r}`);let I=A.shape,t=A.ndim;if(t<r)throw new Error(`tensorinv: array has ${t} dimensions, ind=${r} is too large`);let o=1;for(let Q=0;Q<r;Q++)o*=I[Q];let e=1;for(let Q=r;Q<t;Q++)e*=I[Q];if(o!==e)throw new Error(`tensorinv: product of first ${r} dimensions (${o}) must equal product of remaining dimensions (${e})`);let g=yA(A,[o,e]),i=ZI(g),n=[...I.slice(r),...I.slice(0,r)];return yA(i,n)}function Kp(A,r,I){let t=A.shape,o=r.shape,e=A.ndim,g=r.ndim,i;I==null?i=Array.from({length:g},(c,m)=>e-g+m):i=I.map(c=>c<0?e+c:c);let n=[];for(let c=0;c<e;c++)i.includes(c)||n.push(c);let Q=[...n,...i],C=aI(A,Q),B=i.map(c=>t[c]).reduce((c,m)=>c*m,1),E=n.map(c=>t[c]).reduce((c,m)=>c*m,1),u=o.reduce((c,m)=>c*m,1);if(B!==u)throw new Error(`tensorsolve: dimensions don't match - sum dimensions product (${B}) != b total elements (${u})`);if(E!==B)throw new Error(`tensorsolve: non-square problem - other dimensions product (${E}) != sum dimensions product (${B})`);let D=yA(C,[E,B]),y=yA(r,[B]),f=nu(D,y);return yA(f,[...o])}function vp(A,...r){let I=A.indexOf("->"),t,o;I===-1?(t=A,o=dp(t)):(t=A.slice(0,I),o=A.slice(I+2));let e=t.split(",").map(B=>B.trim());if(e.length!==r.length)throw new Error(`einsum_path: expected ${e.length} operands, got ${r.length}`);let g=r.map(B=>Array.isArray(B)?B:Array.from(B.shape)),i=new Map;for(let B=0;B<r.length;B++){let s=e[B],E=g[B];if(s.length!==E.length)throw new Error(`einsum_path: operand ${B} has ${E.length} dimensions but subscript '${s}' has ${s.length} indices`);for(let u=0;u<s.length;u++){let D=s[u],y=E[u];if(i.has(D)&&i.get(D)!==y)throw new Error(`einsum_path: size mismatch for index '${D}': ${i.get(D)} vs ${y}`);i.set(D,y)}}if(r.length===1){let B=[[0]];return[B,tu(A,g,B,i)]}if(r.length===2){let B=[[0,1]];return[B,tu(A,g,B,i)]}let n=[],Q=[...e],C=[...g],a=r.map((B,s)=>s);for(;Q.length>1;){let B=0,s=1,E=1/0;for(let y=0;y<Q.length;y++)for(let f=y+1;f<Q.length;f++){let c=BK(Q[y],Q[f],C[y],C[f],o,i);c<E&&(E=c,B=y,s=f)}n.push([a[B],a[s]]);let[u,D]=sK(Q[B],Q[s],C[B],C[s],o,i);Q.splice(s,1),Q.splice(B,1),C.splice(s,1),C.splice(B,1),a.splice(s,1),a.splice(B,1),Q.push(u),C.push(D),a.push(-1)}return[n,tu(A,g,n,i)]}function BK(A,r,I,t,o,e){let g=new Set(A),i=new Set(r),n=1;for(let Q of g)n*=e.get(Q)||1;for(let Q of i)g.has(Q)||(n*=e.get(Q)||1);return n}function sK(A,r,I,t,o,e){let g=new Set([...A,...r]),i=new Map;for(let a of A)i.set(a,(i.get(a)||0)+1);for(let a of r)i.set(a,(i.get(a)||0)+1);let n=new Set(o),Q=[];for(let a of g)(n.has(a)||i.get(a)===1)&&Q.push(a);Q.sort();let C=Q.map(a=>e.get(a));return[Q.join(""),C]}function tu(A,r,I,t){let o=[];o.push(" Complete contraction: "+A),o.push(" Operand shapes: "+r.map(g=>`(${g.join(", ")})`).join(", ")),o.push(" Contraction path: "+JSON.stringify(I));let e=0;for(let g of r)e+=g.reduce((i,n)=>i*n,1);return o.push(" Estimated FLOPS: ~"+e.toExponential(2)),o.join(`
5
+ `)}function zI(A,r){let I=dI(G(A),G(r));return typeof I=="number"||typeof I=="bigint"||I instanceof X?I:q(I)}function jI(A,r=0,I=0,t=1){let o=yp(G(A),r,I,t);return o instanceof d?q(o):o}function $I(A,r=0,I=0,t=1){return q(hp(G(A),r,I,t))}function au(A,r){return q(bp(G(A),G(r)))}function At(A,r){return or(aI(G(A),r),A)}function rt(A,r){let I=mp(G(A),G(r));return typeof I=="number"||typeof I=="bigint"||I instanceof X?I:q(I)}function It(A,r){return q(ou(G(A),G(r)))}function tt(A,r,I=2){let t=lp(G(A),G(r),I);return typeof t=="number"||typeof t=="bigint"||t instanceof X?t:q(t)}function Vn(A,...r){let I=r.map(o=>G(o)),t=wp(A,...I);return typeof t=="number"||typeof t=="bigint"||t instanceof X?t:q(t)}function Wn(A,...r){let I=r.map(t=>G(t));return vp(A,...I)}function Zn(A,r){return Mp(G(A),G(r))}function zn(A,r,I=-1){let t=Jp(G(A),G(r),I);return typeof t=="number"||typeof t=="bigint"||t instanceof X?t:q(t)}function jn(A){return or(xp(G(A)),A)}function $n(A,r){return or(Up(G(A),r),A)}function Bu(A,r){return q(Lp(G(A),G(r)))}function su(A,r){return q(Hp(G(A),G(r)))}function AQ(A,r,I=-1,t=-1,o=-1,e){let g=pp(G(A),G(r),I,t,o,e);return typeof g=="number"||typeof g=="bigint"||g instanceof X?g:q(g)}function le(A,r){return q(Ar(G(A),G(r)))}var rQ={matmul:(A,r)=>q(Ar(G(A),G(r))),dot:(A,r)=>zI(A,r),det:A=>{let r=iu(G(A));return typeof r=="number"?r:q(r)},inv:A=>q(ZI(G(A))),solve:(A,r)=>q(nu(G(A),G(r))),lstsq:(A,r,I)=>{let t=Fp(G(A),G(r),I);return{x:q(t.x),residuals:q(t.residuals),rank:t.rank,s:q(t.s)}},norm:(A,r,I,t)=>{let o=Np(G(A),r,I,t);return typeof o=="number"?o:q(o)},cond:(A,r)=>Gp(G(A),r),matrix_rank:(A,r)=>Sp(G(A),r),matrix_power:(A,r)=>q(Rp(G(A),r)),pinv:(A,r)=>q(Qu(G(A),r)),qr:(A,r)=>{let I=vn(G(A),r);return"h"in I&&"tau"in I?{h:q(I.h),tau:q(I.tau)}:"q"in I&&"r"in I?{q:q(I.q),r:q(I.r)}:q(I)},cholesky:(A,r)=>q(eu(G(A),r)),svd:(A,r,I)=>{let t=WI(G(A),r,I);return"u"in t&&"s"in t&&"vt"in t?{u:q(t.u),s:q(t.s),vt:q(t.vt)}:q(t)},eig:A=>{let r=Tn(G(A));return{w:q(r.w),v:q(r.v)}},eigh:(A,r)=>{let I=On(G(A),r);return{w:q(I.w),v:q(I.v)}},eigvals:A=>q(kp(G(A))),eigvalsh:(A,r)=>q(qp(G(A),r)),slogdet:A=>{let r=Cu(G(A)),I=r.sign instanceof d?q(r.sign):r.sign,t=r.logabsdet instanceof d?q(r.logabsdet):r.logabsdet;return{sign:I,logabsdet:t}},svdvals:A=>q(Yp(G(A))),multi_dot:A=>q(Pp(A.map(r=>G(r)))),tensorinv:(A,r)=>q(_p(G(A),r)),tensorsolve:(A,r,I)=>q(Kp(G(A),G(r),I)),vector_norm:(A,r,I,t)=>{let o=VI(G(A),r,I,t);return typeof o=="number"?o:q(o)},matrix_norm:(A,r,I)=>{let t=CI(G(A),r,I);return typeof t=="number"?t:q(t)},cross:(A,r,I,t,o,e)=>AQ(A,r,I,t,o,e),matrix_transpose:A=>jn(A),permute_dims:(A,r)=>$n(A,r),trace:(A,r,I,t)=>jI(A,r,I,t),diagonal:(A,r,I,t)=>$I(A,r,I,t),outer:(A,r)=>It(A,r),inner:(A,r)=>rt(A,r),tensordot:(A,r,I)=>tt(A,r,I),vecdot:(A,r,I)=>zn(A,r,I),transpose:(A,r)=>At(A,r)};function he(A,r){return q(yA(G(A),r))}function wr(A){return q(lI(G(A)))}function we(A){return q(UI(G(A)))}function de(A,r){return or(ym(G(A),r),A)}function be(A,r){return or(mI(G(A),r),A)}function pe(A,r,I){return or(mm(G(A),r,I),A)}function Ne(A,r,I){return or(pa(G(A),r,I),A)}function Eu(A,r,I=0){return or(km(G(A),r,I),A)}function ot(A,r=0){return q(zr(A.map(I=>G(I)),r))}function uu(A,r=0){return q(lm(A.map(I=>G(I)),r))}function IQ(A){return q(hm(A.map(r=>G(r))))}function cu(A){return q(Na(A.map(r=>G(r))))}function Du(A){return q(wm(A.map(r=>G(r))))}function fu(A){return q(Mm(A.map(r=>G(r))))}var tQ=IQ;function yu(A){return q(Ym(A.map(r=>G(r))))}function oQ(A,r,I=0){return HI(dm(G(A),r,I),A)}function eQ(A,r,I=0){return HI(xt(G(A),r,I),A)}function gQ(A,r){return HI(pm(G(A),r),A)}function iQ(A,r){return HI(Nm(G(A),r),A)}function nQ(A,r){return HI(qm(G(A),r),A)}function mu(A,r=0){return pr(Hm(G(A),r))}function lu(A,r){return q(Fm(G(A),r))}function Fe(A,r,I){return q(Gm(G(A),r,I))}function Ge(A,r){return q(Sm(G(A),r))}function hu(A){return Ge(A,1)}function wu(A){return Ge(A,0)}function du(A,r=1,I=[0,1]){return q(Rm(G(A),r,I))}function bu(A,r,I){return q(hI(G(A),r,I))}function Se(A,r){return q(Jm(G(A),r))}function QQ(...A){let r=xm(A.map(I=>G(I)));return r.length===1?q(r[0]):pr(r)}function CQ(...A){let r=Um(A.map(I=>G(I)));return r.length===1?q(r[0]):pr(r)}function aQ(...A){let r=Lm(A.map(I=>G(I)));return r.length===1?q(r[0]):pr(r)}function Fr(A){let r=new Array(A.length),I=1;for(let t=A.length-1;t>=0;t--)r[t]=I,I*=A[t];return r}function aA(A,r,I,t,o){let e=A.length,g=r[t],i=[],n=[];for(let a=0;a<e;a++)a!==t&&(i.push(A[a]),n.push(r[a]));let Q=new Int32Array(o),C=i.length;if(C===0)Q[0]=I;else if(C===1){let a=n[0];for(let B=0;B<o;B++)Q[B]=I+B*a}else{let a=new Int32Array(C);a[C-1]=1;for(let B=C-2;B>=0;B--)a[B]=a[B+1]*i[B+1];for(let B=0;B<o;B++){let s=I,E=B;for(let u=0;u<C;u++){let D=E/a[u]|0;E-=D*a[u],s+=D*n[u]}Q[B]=s}}return{baseOffsets:Q,axisStride:g}}var uK="AGFzbQEAAAABIQVgAn9/AXxgAn9/AX1gAn9/AX5gAn9/AX9gBX9/f39/AAIPAQNlbnYGbWVtb3J5AgAQAxEQAAECAwMDBAQEBAQEBAQEBAYJAX8BQYCAwAALB94CEA5yZWR1Y2Vfc3VtX2Y2NAAADnJlZHVjZV9zdW1fZjMyAAEOcmVkdWNlX3N1bV9pNjQAAg5yZWR1Y2Vfc3VtX2kzMgADDnJlZHVjZV9zdW1faTE2AAQNcmVkdWNlX3N1bV9pOAAFFnJlZHVjZV9zdW1fc3RyaWRlZF9mNjQABhZyZWR1Y2Vfc3VtX3N0cmlkZWRfZjMyAAcWcmVkdWNlX3N1bV9zdHJpZGVkX2k2NAAIFnJlZHVjZV9zdW1fc3RyaWRlZF91NjQACRZyZWR1Y2Vfc3VtX3N0cmlkZWRfaTMyAAoWcmVkdWNlX3N1bV9zdHJpZGVkX3UzMgALFnJlZHVjZV9zdW1fc3RyaWRlZF9pMTYADBZyZWR1Y2Vfc3VtX3N0cmlkZWRfdTE2AA0VcmVkdWNlX3N1bV9zdHJpZGVkX2k4AA4VcmVkdWNlX3N1bV9zdHJpZGVkX3U4AA8KvnMQ0wMEAX8BewR/AXwCQAJAIAFBfnEiAg0A/QwAAAAAAAAAAAAAAAAAAAAAIQNBACEEDAELIAJBf2oiBUEBdkEBaiIGQQNxIQcCQAJAIAJBB08NAEEAIQb9DAAAAAAAAAAAAAAAAAAAAAAhAwwBCyAGQXxxIQRBACEG/QwAAAAAAAAAAAAAAAAAAAAAIQMgACECA0AgAyAC/QADAP3wASACQRBq/QADAP3wASACQSBq/QADAP3wASACQTBq/QADAP3wASEDIAJBwABqIQIgBkEIaiEGIARBfGoiBA0ACwsgBUF+cSEEAkAgB0UNACAAIAZBA3RqIQIDQCADIAL9AAMA/fABIQMgAkEQaiECIAdBf2oiBw0ACwsgBEECaiEECyAD/SEAIAP9IQGgIQgCQCAEIAFPDQACQAJAIAEgBGtBA3EiBg0AIAQhBwwBCyAAIARBA3RqIQIgBCEHA0AgB0EBaiEHIAggAisDAKAhCCACQQhqIQIgBkF/aiIGDQALCyAEIAFrQXxLDQAgASAHayEGIAAgB0EDdGohAgNAIAggAisDAKAgAkEIaisDAKAgAkEQaisDAKAgAkEYaisDAKAhCCACQSBqIQIgBkF8aiIGDQALCyAIC+MDBAF/AXsEfwF9AkACQCABQXxxIgINAP0MAAAAAAAAAAAAAAAAAAAAACEDQQAhBAwBCyACQX9qIgVBAnZBAWoiBkEDcSEHAkACQCACQQ1PDQBBACEG/QwAAAAAAAAAAAAAAAAAAAAAIQMMAQsgBkH8////B3EhBEEAIQb9DAAAAAAAAAAAAAAAAAAAAAAhAyAAIQIDQCADIAL9AAIA/eQBIAJBEGr9AAIA/eQBIAJBIGr9AAIA/eQBIAJBMGr9AAIA/eQBIQMgAkHAAGohAiAGQRBqIQYgBEF8aiIEDQALCyAFQXxxIQQCQCAHRQ0AIAAgBkECdGohAgNAIAMgAv0AAgD95AEhAyACQRBqIQIgB0F/aiIHDQALCyAEQQRqIQQLIAP9HwMgA/0fAiAD/R8AIAP9HwGSkpIhCAJAIAQgAU8NAAJAAkAgASAEa0EDcSIGDQAgBCEHDAELIAAgBEECdGohAiAEIQcDQCAHQQFqIQcgCCACKgIAkiEIIAJBBGohAiAGQX9qIgYNAAsLIAQgAWtBfEsNACABIAdrIQYgACAHQQJ0aiECA0AgCCACKgIAkiACQQRqKgIAkiACQQhqKgIAkiACQQxqKgIAkiEIIAJBEGohAiAGQXxqIgYNAAsLIAgLugEEAX8BfgF7An9BACECQgAhAwJAAkACQCABDgICAQAL/QwAAAAAAAAAAAAAAAAAAAAAIQQgAUF+cSICIQUgACEGA0AgBv0AAwAgBP3OASEEIAZBEGohBiAFQX5qIgUNAAsgBCAEIAT9DQgJCgsMDQ4PAAECAwQFBgf9zgH9HQAhAyABIAJGDQELIAEgAmshBSAAIAJBA3RqIQYDQCAGKQMAIAN8IQMgBkEIaiEGIAVBf2oiBQ0ACwsgAwuWBAMBfwF7BH8CQAJAIAFBfHEiAg0A/QwAAAAAAAAAAAAAAAAAAAAAIQNBACEEDAELIAJBf2oiBUECdkEBaiIGQQNxIQcCQAJAIAJBDU8NAEEAIQb9DAAAAAAAAAAAAAAAAAAAAAAhAwwBCyAGQfz///8HcSEEQQAhBv0MAAAAAAAAAAAAAAAAAAAAACEDIAAhAgNAIAJBMGr9AAIAIAJBIGr9AAIAIAJBEGr9AAIAIAL9AAIAIAP9rgH9rgH9rgH9rgEhAyACQcAAaiECIAZBEGohBiAEQXxqIgQNAAsLIAVBfHEhBAJAIAdFDQAgACAGQQJ0aiECA0AgAv0AAgAgA/2uASEDIAJBEGohAiAHQX9qIgcNAAsLIARBBGohBAsgA/0bACAD/RsBaiAD/RsCaiAD/RsDaiEHAkAgASAETQ0AAkAgASAEayIGQQRJDQD9DAAAAAAAAAAAAAAAAAAAAAAgB/0cACEDIAAgBEECdGohAiAEIAZBfHEiBWohBCAFIQcDQCAC/QACACAD/a4BIQMgAkEQaiECIAdBfGoiBw0ACyADIAMgA/0NCAkKCwwNDg8AAQIDAAECA/2uASIDIAMgA/0NBAUGBwABAgMAAQIDAAECA/2uAf0bACEHIAYgBUYNAQsgASAEayEGIAAgBEECdGohAgNAIAIoAgAgB2ohByACQQRqIQIgBkF/aiIGDQALCyAHC8oEAwF/AXsEfwJAAkAgAUF4cSICDQD9DAAAAAAAAAAAAAAAAAAAAAAhA0EAIQQMAQsgAkF/aiIFQQN2QQFqIgZBA3EhBwJAAkAgAkEZTw0AQQAhBv0MAAAAAAAAAAAAAAAAAAAAACEDDAELIAZB/P///wNxIQRBACEG/QwAAAAAAAAAAAAAAAAAAAAAIQMgACECA0AgAkEwav0AAQAgAkEgav0AAQAgAkEQav0AAQAgAv0AAQAgA/2OAf2OAf2OAf2OASEDIAJBwABqIQIgBkEgaiEGIARBfGoiBA0ACwsgBUF4cSEEAkAgB0UNACAAIAZBAXRqIQIDQCAC/QABACAD/Y4BIQMgAkEQaiECIAdBf2oiBw0ACwsgBEEIaiEECyAD/RkAIAP9GQFqIAP9GQJqIAP9GQNqIAP9GQRqIAP9GQVqIAP9GQZqIAP9GQdqIQcCQCABIARNDQACQCABIARrIgZBCEkNAP0MAAAAAAAAAAAAAAAAAAAAACAH/RoAIQMgACAEQQF0aiECIAQgBkF4cSIFaiEEIAUhBwNAIAL9AAEAIAP9jgEhAyACQRBqIQIgB0F4aiIHDQALIAMgAyAD/Q0ICQoLDA0ODwABAAEAAQAB/Y4BIgMgAyAD/Q0EBQYHAAEAAQABAAEAAQAB/Y4BIgMgAyAD/Q0CAwABAAEAAQABAAEAAQAB/Y4B/RkAIQcgBiAFRg0BCyABIARrIQYgACAEQQF0aiECA0AgAi8BACAHaiEHIAJBAmohAiAGQX9qIgYNAAsLIAfBC/wEAwF/AXsEfwJAAkAgAUFwcSICDQD9DAAAAAAAAAAAAAAAAAAAAAAhA0EAIQQMAQsgAkF/aiIFQQR2QQFqIgZBA3EhBAJAAkAgAkExTw0AQQAhBv0MAAAAAAAAAAAAAAAAAAAAACEDDAELIAZB/P///wFxIQdBACEG/QwAAAAAAAAAAAAAAAAAAAAAIQMDQCAAIAZqIgJBMGr9AAAAIAJBIGr9AAAAIAJBEGr9AAAAIAL9AAAAIAP9bv1u/W79biEDIAZBwABqIQYgB0F8aiIHDQALCyAFQXBxIQcCQCAERQ0AIAAgBmohAgNAIAL9AAAAIAP9biEDIAJBEGohAiAEQX9qIgQNAAsLIAdBEGohBAsgA/0WACAD/RYBaiAD/RYCaiAD/RYDaiAD/RYEaiAD/RYFaiAD/RYGaiAD/RYHaiAD/RYIaiAD/RYJaiAD/RYKaiAD/RYLaiAD/RYMaiAD/RYNaiAD/RYOaiAD/RYPaiEGAkAgASAETQ0AAkAgASAEayIHQRBJDQAgACAEaiEC/QwAAAAAAAAAAAAAAAAAAAAAIAb9FwAhAyAEIAdBcHEiBWohBCAFIQYDQCAC/QAAACAD/W4hAyACQRBqIQIgBkFwaiIGDQALIAMgAyAD/Q0ICQoLDA0ODwAAAAAAAAAA/W4iAyADIAP9DQQFBgcAAAAAAAAAAAAAAAD9biIDIAMgA/0NAgMAAAAAAAAAAAAAAAAAAP1uIgMgAyAD/Q0BAAAAAAAAAAAAAAAAAAAA/W79FgAhBiAHIAVGDQELIAAgBGohAiABIARrIQQDQCACLQAAIAZqIQYgAkEBaiECIARBf2oiBA0ACwsgBsALuBABIn8CQCACRQ0AIAQgA2whBQJAAkAgA0F/aiIGRQ0AIARBfnEiB0UNASAEIAdBf2oiCEF+cSIJQQNqIgogBCAKSxsiCiAJa0F+aiILIApBAXEiDGshDSABIApBA3QiCiAIQQN0QXBxIglraiEOIAAgBEEDdCIPIApqIAlraiEQIAFBEGohESAEQX5xIRIgBUEDdCETIAhBAnEhFCAAIA9qIhVBEGohFiAIQQF2QQFqQX5xIhdBAXQhGEEAIRkgBEEGSSABIAAgBCADIAJBf2psQQN0QQhqbGpJIAAgASAEIAJsQQN0aklxIAUgBHJBgICAgAFxQRx2cnJBAXEhGiAAIRsgASEcA0ACQCAERQ0AQQAhCQJAIBoNACAHIQkgGyEDIBwhCgNAIAogA/0AAwD9CwMAIANBEGohAyAKQRBqIQogCUF+aiIJDQALIBIhCSAEIBJGDQELIAkhHQJAIAQgCWtBA3EiCkUNACAJIApqIR0gCUEDdCEDA0AgHCADaiAbIANqKwMAOQMAIANBCGohAyAKQX9qIgoNAAsLIAkgBGtBfEsNACAdQQN0IQMgBCAdayEdA0AgHCADaiIKIBsgA2oiCSsDADkDACAKQQhqIAlBCGorAwA5AwAgCkEQaiAJQRBqKwMAOQMAIApBGGogCUEYaisDADkDACADQSBqIQMgHUF8aiIdDQALCyAQIBMgGWwiA2ohHiAWIANqIR8gDiAPIBlsIgNqISAgESADaiEhIAEgGSAEbEEDdGohIiAAIAUgGWxBA3RqISNBACEkIBUhCQNAICQhJUEAIR1BACEDAkAgCEEBRg0AQQAhA0EAIR0DQCAcIANqIgogCv0AAwAgCSADaiIm/QADAP3wAf0LAwAgCkEQaiIKIAr9AAMAICZBEGr9AAMA/fAB/QsDACADQSBqIQMgFyAdQQJqIh1HDQALIB1Bf2ohJiAYIQogGCEDCyAlQQFqISQCQCAUDQAgIiADQQN0IgpqIiYgJv0AAwAgIyAkIARsQQN0aiAKav0AAwD98AH9CwMAIANBAmohCiAdISYLAkAgCiAETw0AAkAgC0EISQ0AAkAgISAmQQR0IgNqIB4gA2ogDyAlbCIdak8NACAfIANqIB1qICAgA2pJDQELIApBA3QhAyAKIA1qIQogDSEdA0AgHCADaiImICb9AAMAIAkgA2r9AAMA/fAB/QsDACADQRBqIQMgHUF+aiIdDQALIAxFDQELIApBA3QhAwNAIBwgA2oiHSAdKwMAIAkgA2orAwCgOQMAIANBCGohAyAKQQFqIgogBEkNAAsLIAkgD2ohCSAkIAZHDQALIBUgE2ohFSAbIBNqIRsgHCAPaiEcIBlBAWoiGSACRw0ADAMLCyAERQ0BIARBA3QhFyAEQX5xISYgBUEDdCEkQQAhHSAEQQZJIAEgACAEIAMgAkF/amxBA3RBCGpsakkgACABIAQgAmxBA3RqSXEgBSAEckGAgICAAXFBHHZyckEBcSElA0BBACEJAkACQCAlDQAgJiEJIAAhAyABIQoDQCAKIAP9AAMA/QsDACADQRBqIQMgCkEQaiEKIAlBfmoiCQ0ACyAmIQkgBCAmRg0BCyAJIRwCQCAEIAlrQQNxIgpFDQAgCSAKaiEcIAlBA3QhAwNAIAEgA2ogACADaisDADkDACADQQhqIQMgCkF/aiIKDQALCyAJIARrQXxLDQAgHEEDdCEDIAQgHGshHANAIAEgA2oiCiAAIANqIgkrAwA5AwAgCkEIaiAJQQhqKwMAOQMAIApBEGogCUEQaisDADkDACAKQRhqIAlBGGorAwA5AwAgA0EgaiEDIBxBfGoiHA0ACwsgACAkaiEAIAEgF2ohASAdQQFqIh0gAkcNAAwCCwsgBEUNACAEQX9qISMgASAEQQN0IiVqIQsgACAFQQN0IhhqIR4gBEEGSSABIAAgBCADIAJBf2psQQN0QQhqbGpJIAAgASAEIAJsQQN0aklxIAVBgICAgAFxQRx2cnJBAXEhIiAEQQRJISEgACAlaiINIRsgASEDQQAhFANAAkAgIg0AA0AgAyAA/QADAP0LAwAgAEEQaiEAIANBEGohAwwACwtBACEdAkAgI0EDSSIIDQBBACEKQQAhHQNAIAMgCmoiCSAAIApqIhwrAwA5AwAgCUEIaiAcQQhqKwMAOQMAIAlBEGogHEEQaisDADkDACAJQRhqIBxBGGorAwA5AwAgCkEgaiEKIB1BBGoiHQ0ACwsgHiAYIBRsIgpqIRwgDSAKaiEmIAsgJSAUbCIKaiEXIAEgCmohDyAdQQN0IQogBCEJA0AgAyAKaiAAIApqKwMAOQMAIApBCGohCiAJQX9qIgkNAAtBACEkICEgDyAcSSAmIBdJcXJBAXEhDyAbIQoDQAJAIA8NAANAIAMgA/0AAwAgCv0AAwD98AH9CwMAIApBEGohCiADQRBqIQMMAAsLQQAhCQJAIAgNAEEAISZBACEcA0AgAyAcaiIJIAkrAwAgCiAcaiIdKwMAoDkDACAJQQhqIhcgFysDACAdQQhqKwMAoDkDACAJQRBqIhcgFysDACAdQRBqKwMAoDkDACAJQRhqIgkgCSsDACAdQRhqKwMAoDkDACAcQSBqIRwgJkF8aiImDQALQQAgJmshCQsgJEEBaiEkIAlBA3QhCSAEIRwDQCADIAlqIh0gHSsDACAKIAlqKwMAoDkDACAJQQhqIQkgHEF/aiIcDQALIAogJWohCiAkIAZHDQALIAAgGGohACAbIBhqIRsgAyAlaiEDIBRBAWoiFCACRw0ACwsLhQoBF38CQCACRQ0AIAQgA2whBQJAIANBf2oiBkUNACAERQ0BQQAhByAEQQFxIQggBEF+cSEJIAEgBEEDdCIKaiELIAAgBUECdCIMaiENIARBBkkgASAAIAQgAyACQX9qbEECdEEEamxqSSAAIAEgBCACbEEDdGpJcSAFQYCAgIACcSAEQYCAgIABcXJBAEdyckEBcSEOIAAgBEECdCIPaiIQIREgACESIAEhEwNAIA0gDCAHbCIDaiEUIBAgA2ohFSALIAogB2wiA2ohFiABIANqIRdBACEYAkACQCAODQAgCSEZIBIhAyATIRoDQCAaIAP9XQIA/V/9CwMAIANBCGohAyAaQRBqIRogGUF+aiIZDQALIAkhGCAEIAlGDQELIBghGwJAIAQgGGtBA3EiGUUNACAYIBlqIRsgEyAYQQN0aiEDIBIgGEECdGohGgNAIAMgGioCALs5AwAgA0EIaiEDIBpBBGohGiAZQX9qIhkNAAsLIBggBGtBfEsNACAEIBtrIRkgEiAbQQJ0aiEDIBMgG0EDdGohGgNAIBogAyoCALs5AwAgGkEIaiADQQRqKgIAuzkDACAaQRBqIANBCGoqAgC7OQMAIBpBGGogA0EMaioCALs5AwAgA0EQaiEDIBpBIGohGiAZQXxqIhkNAAsLQQAhGyAXIBRJIBUgFklxIA9BAEhyIRUgACAFIAdsQQJ0aiEWIAEgByAEbEEDdGohFyARIRQDQCAbQQFqIRtBACEDAkACQCAEQQFGIBVyQQFxDQAgCSEZIBQhGiATIQMDQCADIAP9AAMAIBr9XQIA/V/98AH9CwMAIBpBCGohGiADQRBqIQMgGUF+aiIZDQALIAkhAyAEIAlGDQELIANBAXIhGgJAIAhFDQAgFyADQQN0aiIZIBkrAwAgFiAbIARsQQJ0aiADQQJ0aioCALugOQMAIBohAwsgBCAaRg0AIAQgA2shGSAUIANBAnRqIRogEyADQQN0aiEDA0AgAyADKwMAIBoqAgC7oDkDACADQQhqIhggGCsDACAaQQRqKgIAu6A5AwAgGkEIaiEaIANBEGohAyAZQX5qIhkNAAsLIBQgD2ohFCAbIAZHDQALIBEgDGohESASIAxqIRIgEyAKaiETIAdBAWoiByACRw0ADAILCyAERQ0AQQAhFCAEQQN0IQ8gBEF+cSEJIAVBAnQhFSAEQQZJIAEgACAEIAMgAkF/amxBAnRBBGpsakkgACABIAQgAmxBA3RqSXEgBUGAgICAAnEgBEGAgICAAXFyQQBHcnJBAXEhBgNAQQAhGAJAAkAgBg0AIAkhGSAAIQMgASEaA0AgGiAD/V0CAP1f/QsDACADQQhqIQMgGkEQaiEaIBlBfmoiGQ0ACyAJIRggBCAJRg0BCyAYIRsCQCAEIBhrQQNxIhlFDQAgGCAZaiEbIAEgGEEDdGohAyAAIBhBAnRqIRoDQCADIBoqAgC7OQMAIANBCGohAyAaQQRqIRogGUF/aiIZDQALCyAYIARrQXxLDQAgBCAbayEZIAAgG0ECdGohAyABIBtBA3RqIRoDQCAaIAMqAgC7OQMAIBpBCGogA0EEaioCALs5AwAgGkEQaiADQQhqKgIAuzkDACAaQRhqIANBDGoqAgC7OQMAIANBEGohAyAaQSBqIRogGUF8aiIZDQALCyAAIBVqIQAgASAPaiEBIBRBAWoiFCACRw0ACwsL6AkDFH8BewJ/AkAgAkUNACAEIANsIQUCQCADQX9qIgZFDQAgBEUNAUEAIQcgBEEBcSEIIARBfnEhCSABIARBA3QiCmohCyAAIAVBA3QiDGohDSAEQQZJIAEgACAEIAMgAkF/amxBA3RBCGpsakkgACABIAQgAmxBA3RqSXEgCkEASHIgBUGAgICAAXFBHHZyckEBcSEOIAAgCmoiDyEQIAAhESABIRIDQCANIAwgB2wiA2ohEyAPIANqIRQgCyAKIAdsIgNqIRUgASADaiEWQQAhFwJAAkAgDg0AIAkhFyARIQMgEiEYA0AgGCAD/QADACIZ/R0Auf0UIBn9HQG5/SIB/QsDACADQRBqIQMgGEEQaiEYIBdBfmoiFw0ACyAJIRcgBCAJRg0BCyAXIRoCQCAEIBdrQQNxIhhFDQAgFyAYaiEaIBdBA3QhAwNAIBIgA2ogESADaikDALk5AwAgA0EIaiEDIBhBf2oiGA0ACwsgFyAEa0F8Sw0AIBpBA3QhAyAEIBprIRoDQCASIANqIhggESADaiIXKQMAuTkDACAYQQhqIBdBCGopAwC5OQMAIBhBEGogF0EQaikDALk5AwAgGEEYaiAXQRhqKQMAuTkDACADQSBqIQMgGkF8aiIaDQALC0EAIRsgFiATSSAUIBVJcSAKQQBIciEUIAAgBSAHbEEDdGohFSABIAcgBGxBA3RqIRYgECEaA0AgG0EBaiEbQQAhGAJAAkAgBEEBRiAUckEBcQ0AQQAhAyAJIRgDQCASIANqIhcgF/0AAwAgGiADav0AAwAiGf0dALn9FCAZ/R0Buf0iAf3wAf0LAwAgA0EQaiEDIBhBfmoiGA0ACyAJIRggBCAJRg0BCyAYQQFyIQMCQCAIRQ0AIBYgGEEDdCIYaiIXIBcrAwAgFSAbIARsQQN0aiAYaikDALmgOQMAIAMhGAsgBCADRg0AIBhBA3QhAyAEIBhrIRcDQCASIANqIhggGCsDACAaIANqIhMpAwC5oDkDACAYQQhqIhggGCsDACATQQhqKQMAuaA5AwAgA0EQaiEDIBdBfmoiFw0ACwsgGiAKaiEaIBsgBkcNAAsgECAMaiEQIBEgDGohESASIApqIRIgB0EBaiIHIAJHDQAMAgsLIARFDQAgBEEDdCEbIARBfnEhEyAFQQN0IQlBACESIARBBkkgASAAIAQgAyACQX9qbEEDdEEIamxqSSAAIAEgBCACbEEDdGpJcSAFIARyQYCAgIABcUEcdnJyQQFxIQoDQEEAIRcCQAJAIAoNACATIRcgACEDIAEhGANAIBggA/0AAwAiGf0dALn9FCAZ/R0Buf0iAf0LAwAgA0EQaiEDIBhBEGohGCAXQX5qIhcNAAsgEyEXIAQgE0YNAQsgFyEaAkAgBCAXa0EDcSIYRQ0AIBcgGGohGiAXQQN0IQMDQCABIANqIAAgA2opAwC5OQMAIANBCGohAyAYQX9qIhgNAAsLIBcgBGtBfEsNACAaQQN0IQMgBCAaayEaA0AgASADaiIYIAAgA2oiFykDALk5AwAgGEEIaiAXQQhqKQMAuTkDACAYQRBqIBdBEGopAwC5OQMAIBhBGGogF0EYaikDALk5AwAgA0EgaiEDIBpBfGoiGg0ACwsgACAJaiEAIAEgG2ohASASQQFqIhIgAkcNAAsLC8wLAxR/AXsCfwJAIAJFDQAgBCADbCEFAkAgA0F/aiIGRQ0AIARFDQFBACEHIARBAXEhCCAEQX5xIQkgASAEQQN0IgpqIQsgACAFQQN0IgxqIQ0gBEEGSSABIAAgBCADIAJBf2psQQN0QQhqbGpJIAAgASAEIAJsQQN0aklxIApBAEhyIAVBgICAgAFxQRx2cnJBAXEhDiAAIApqIg8hECAAIREgASESA0AgDSAMIAdsIgNqIRMgDyADaiEUIAsgCiAHbCIDaiEVIAEgA2ohFkEAIRcCQAJAIA4NACAJIRcgESEDIBIhGANAIBggA/0AAwAiGf0M/////wAAAAD/////AAAAAP1O/QwAAAAAAAAwQwAAAAAAADBD/VAgGUEg/c0B/QwAAAAAAAAwRQAAAAAAADBF/VD9DAAAEAAAADBFAAAQAAAAMEX98QH98AH9CwMAIANBEGohAyAYQRBqIRggF0F+aiIXDQALIAkhFyAEIAlGDQELIBchGgJAIAQgF2tBA3EiGEUNACAXIBhqIRogF0EDdCEDA0AgEiADaiARIANqKQMAujkDACADQQhqIQMgGEF/aiIYDQALCyAXIARrQXxLDQAgGkEDdCEDIAQgGmshGgNAIBIgA2oiGCARIANqIhcpAwC6OQMAIBhBCGogF0EIaikDALo5AwAgGEEQaiAXQRBqKQMAujkDACAYQRhqIBdBGGopAwC6OQMAIANBIGohAyAaQXxqIhoNAAsLQQAhGyAWIBNJIBQgFUlxIApBAEhyIRQgACAFIAdsQQN0aiEVIAEgByAEbEEDdGohFiAQIRoDQCAbQQFqIRtBACEYAkACQCAEQQFGIBRyQQFxDQBBACEDIAkhGANAIBIgA2oiFyAX/QADACAaIANq/QADACIZ/Qz/////AAAAAP////8AAAAA/U79DAAAAAAAADBDAAAAAAAAMEP9UCAZQSD9zQH9DAAAAAAAADBFAAAAAAAAMEX9UP0MAAAQAAAAMEUAABAAAAAwRf3xAf3wAf3wAf0LAwAgA0EQaiEDIBhBfmoiGA0ACyAJIRggBCAJRg0BCyAYQQFyIQMCQCAIRQ0AIBYgGEEDdCIYaiIXIBcrAwAgFSAbIARsQQN0aiAYaikDALqgOQMAIAMhGAsgBCADRg0AIBhBA3QhAyAEIBhrIRcDQCASIANqIhggGCsDACAaIANqIhMpAwC6oDkDACAYQQhqIhggGCsDACATQQhqKQMAuqA5AwAgA0EQaiEDIBdBfmoiFw0ACwsgGiAKaiEaIBsgBkcNAAsgECAMaiEQIBEgDGohESASIApqIRIgB0EBaiIHIAJHDQAMAgsLIARFDQAgBEEDdCEbIARBfnEhEyAFQQN0IQlBACESIARBBkkgASAAIAQgAyACQX9qbEEDdEEIamxqSSAAIAEgBCACbEEDdGpJcSAFIARyQYCAgIABcUEcdnJyQQFxIQoDQEEAIRcCQAJAIAoNACATIRcgACEDIAEhGANAIBggA/0AAwAiGf0M/////wAAAAD/////AAAAAP1O/QwAAAAAAAAwQwAAAAAAADBD/VAgGUEg/c0B/QwAAAAAAAAwRQAAAAAAADBF/VD9DAAAEAAAADBFAAAQAAAAMEX98QH98AH9CwMAIANBEGohAyAYQRBqIRggF0F+aiIXDQALIBMhFyAEIBNGDQELIBchGgJAIAQgF2tBA3EiGEUNACAXIBhqIRogF0EDdCEDA0AgASADaiAAIANqKQMAujkDACADQQhqIQMgGEF/aiIYDQALCyAXIARrQXxLDQAgGkEDdCEDIAQgGmshGgNAIAEgA2oiGCAAIANqIhcpAwC6OQMAIBhBCGogF0EIaikDALo5AwAgGEEQaiAXQRBqKQMAujkDACAYQRhqIBdBGGopAwC6OQMAIANBIGohAyAaQXxqIhoNAAsLIAAgCWohACABIBtqIQEgEkEBaiISIAJHDQALCwvLBwEZfwJAIAJFDQAgBCADbCEFAkAgA0F/aiIGRQ0AIARFDQEgBEEBcSEHIARBfnEhCCAEQXxxIQkgBEEDcSEKIAEgBEEDdCILaiEMIAAgBUECdCINaiEOQQAhDyAEQQRJIRAgACAEQQJ0IhFqIhIhEyAAIRQgASEVA0BBACEWAkAgEA0AQQAhFiAUIQMgFSEXA0AgFyADKAIAtzkDACAXQQhqIANBBGooAgC3OQMAIBdBEGogA0EIaigCALc5AwAgF0EYaiADQQxqKAIAtzkDACADQRBqIQMgF0EgaiEXIAkgFkEEaiIWRw0ACwsgDiANIA9sIgNqIRggEiADaiEZIAwgCyAPbCIDaiEaIAEgA2ohGwJAIApFDQAgFSAWQQN0aiEDIBQgFkECdGohFyAKIRYDQCADIBcoAgC3OQMAIANBCGohAyAXQQRqIRcgFkF/aiIWDQALC0EAIRwgGyAYSSAZIBpJcSARQQBIciEaIAAgBSAPbEECdGohGyABIA8gBGxBA3RqIR0gEyEZA0AgHEEBaiEcQQAhAwJAAkAgBEEBRiAackEBcQ0AIAghFiAZIRcgFSEDA0AgAyAD/QADACAX/V0CAP3+Af3wAf0LAwAgF0EIaiEXIANBEGohAyAWQX5qIhYNAAsgCCEDIAQgCEYNAQsgA0EBciEXAkAgB0UNACAdIANBA3RqIhYgFisDACAbIBwgBGxBAnRqIANBAnRqKAIAt6A5AwAgFyEDCyAEIBdGDQAgBCADayEWIBkgA0ECdGohFyAVIANBA3RqIQMDQCADIAMrAwAgFygCALegOQMAIANBCGoiGCAYKwMAIBdBBGooAgC3oDkDACAXQQhqIRcgA0EQaiEDIBZBfmoiFg0ACwsgGSARaiEZIBwgBkcNAAsgEyANaiETIBQgDWohFCAVIAtqIRUgD0EBaiIPIAJHDQAMAgsLIARFDQAgBEEDdCEIIARBfHEhGCAEQQNxIRkgBUECdCERQQAhHCAEQQRJIQQDQEEAIRYCQCAEDQBBACEWIAAhAyABIRcDQCAXIAMoAgC3OQMAIBdBCGogA0EEaigCALc5AwAgF0EQaiADQQhqKAIAtzkDACAXQRhqIANBDGooAgC3OQMAIANBEGohAyAXQSBqIRcgGCAWQQRqIhZHDQALCwJAIBlFDQAgASAWQQN0aiEDIAAgFkECdGohFyAZIRYDQCADIBcoAgC3OQMAIANBCGohAyAXQQRqIRcgFkF/aiIWDQALCyAAIBFqIQAgASAIaiEBIBxBAWoiHCACRw0ACwsLywcBGX8CQCACRQ0AIAQgA2whBQJAIANBf2oiBkUNACAERQ0BIARBAXEhByAEQX5xIQggBEF8cSEJIARBA3EhCiABIARBA3QiC2ohDCAAIAVBAnQiDWohDkEAIQ8gBEEESSEQIAAgBEECdCIRaiISIRMgACEUIAEhFQNAQQAhFgJAIBANAEEAIRYgFCEDIBUhFwNAIBcgAygCALg5AwAgF0EIaiADQQRqKAIAuDkDACAXQRBqIANBCGooAgC4OQMAIBdBGGogA0EMaigCALg5AwAgA0EQaiEDIBdBIGohFyAJIBZBBGoiFkcNAAsLIA4gDSAPbCIDaiEYIBIgA2ohGSAMIAsgD2wiA2ohGiABIANqIRsCQCAKRQ0AIBUgFkEDdGohAyAUIBZBAnRqIRcgCiEWA0AgAyAXKAIAuDkDACADQQhqIQMgF0EEaiEXIBZBf2oiFg0ACwtBACEcIBsgGEkgGSAaSXEgEUEASHIhGiAAIAUgD2xBAnRqIRsgASAPIARsQQN0aiEdIBMhGQNAIBxBAWohHEEAIQMCQAJAIARBAUYgGnJBAXENACAIIRYgGSEXIBUhAwNAIAMgA/0AAwAgF/1dAgD9/wH98AH9CwMAIBdBCGohFyADQRBqIQMgFkF+aiIWDQALIAghAyAEIAhGDQELIANBAXIhFwJAIAdFDQAgHSADQQN0aiIWIBYrAwAgGyAcIARsQQJ0aiADQQJ0aigCALigOQMAIBchAwsgBCAXRg0AIAQgA2shFiAZIANBAnRqIRcgFSADQQN0aiEDA0AgAyADKwMAIBcoAgC4oDkDACADQQhqIhggGCsDACAXQQRqKAIAuKA5AwAgF0EIaiEXIANBEGohAyAWQX5qIhYNAAsLIBkgEWohGSAcIAZHDQALIBMgDWohEyAUIA1qIRQgFSALaiEVIA9BAWoiDyACRw0ADAILCyAERQ0AIARBA3QhCCAEQXxxIRggBEEDcSEZIAVBAnQhEUEAIRwgBEEESSEEA0BBACEWAkAgBA0AQQAhFiAAIQMgASEXA0AgFyADKAIAuDkDACAXQQhqIANBBGooAgC4OQMAIBdBEGogA0EIaigCALg5AwAgF0EYaiADQQxqKAIAuDkDACADQRBqIQMgF0EgaiEXIBggFkEEaiIWRw0ACwsCQCAZRQ0AIAEgFkEDdGohAyAAIBZBAnRqIRcgGSEWA0AgAyAXKAIAuDkDACADQQhqIQMgF0EEaiEXIBZBf2oiFg0ACwsgACARaiEAIAEgCGohASAcQQFqIhwgAkcNAAsLC84HARl/AkAgAkUNACAEIANsIQUCQCADQX9qIgZFDQAgBEUNASAEQQFxIQcgBEF+cSEIIARBfHEhCSAEQQNxIQogASAEQQN0IgtqIQwgACAFQQF0Ig1qIQ5BACEPIARBBEkhECAAIARBAXQiEWoiEiETIAAhFCABIRUDQEEAIRYCQCAQDQBBACEWIBQhAyAVIRcDQCAXIAMuAQC3OQMAIBdBCGogA0ECai4BALc5AwAgF0EQaiADQQRqLgEAtzkDACAXQRhqIANBBmouAQC3OQMAIANBCGohAyAXQSBqIRcgCSAWQQRqIhZHDQALCyAOIA0gD2wiA2ohGCASIANqIRkgDCALIA9sIgNqIRogASADaiEbAkAgCkUNACAVIBZBA3RqIQMgFCAWQQF0aiEXIAohFgNAIAMgFy4BALc5AwAgA0EIaiEDIBdBAmohFyAWQX9qIhYNAAsLQQAhHCAbIBhJIBkgGklxIBFBAEhyIRogACAFIA9sQQF0aiEbIAEgDyAEbEEDdGohHSATIRkDQCAcQQFqIRxBACEDAkACQCAEQQFGIBpyQQFxDQAgCCEWIBkhFyAVIQMDQCADIAP9AAMAIBf9XAEA/acB/f4B/fAB/QsDACAXQQRqIRcgA0EQaiEDIBZBfmoiFg0ACyAIIQMgBCAIRg0BCyADQQFyIRcCQCAHRQ0AIB0gA0EDdGoiFiAWKwMAIBsgHCAEbEEBdGogA0EBdGouAQC3oDkDACAXIQMLIAQgF0YNACAEIANrIRYgGSADQQF0aiEXIBUgA0EDdGohAwNAIAMgAysDACAXLgEAt6A5AwAgA0EIaiIYIBgrAwAgF0ECai4BALegOQMAIBdBBGohFyADQRBqIQMgFkF+aiIWDQALCyAZIBFqIRkgHCAGRw0ACyATIA1qIRMgFCANaiEUIBUgC2ohFSAPQQFqIg8gAkcNAAwCCwsgBEUNACAEQQN0IQggBEF8cSEYIARBA3EhGSAFQQF0IRFBACEcIARBBEkhBANAQQAhFgJAIAQNAEEAIRYgACEDIAEhFwNAIBcgAy4BALc5AwAgF0EIaiADQQJqLgEAtzkDACAXQRBqIANBBGouAQC3OQMAIBdBGGogA0EGai4BALc5AwAgA0EIaiEDIBdBIGohFyAYIBZBBGoiFkcNAAsLAkAgGUUNACABIBZBA3RqIQMgACAWQQF0aiEXIBkhFgNAIAMgFy4BALc5AwAgA0EIaiEDIBdBAmohFyAWQX9qIhYNAAsLIAAgEWohACABIAhqIQEgHEEBaiIcIAJHDQALCwvOBwEZfwJAIAJFDQAgBCADbCEFAkAgA0F/aiIGRQ0AIARFDQEgBEEBcSEHIARBfnEhCCAEQXxxIQkgBEEDcSEKIAEgBEEDdCILaiEMIAAgBUEBdCINaiEOQQAhDyAEQQRJIRAgACAEQQF0IhFqIhIhEyAAIRQgASEVA0BBACEWAkAgEA0AQQAhFiAUIQMgFSEXA0AgFyADLwEAuDkDACAXQQhqIANBAmovAQC4OQMAIBdBEGogA0EEai8BALg5AwAgF0EYaiADQQZqLwEAuDkDACADQQhqIQMgF0EgaiEXIAkgFkEEaiIWRw0ACwsgDiANIA9sIgNqIRggEiADaiEZIAwgCyAPbCIDaiEaIAEgA2ohGwJAIApFDQAgFSAWQQN0aiEDIBQgFkEBdGohFyAKIRYDQCADIBcvAQC4OQMAIANBCGohAyAXQQJqIRcgFkF/aiIWDQALC0EAIRwgGyAYSSAZIBpJcSARQQBIciEaIAAgBSAPbEEBdGohGyABIA8gBGxBA3RqIR0gEyEZA0AgHEEBaiEcQQAhAwJAAkAgBEEBRiAackEBcQ0AIAghFiAZIRcgFSEDA0AgAyAD/QADACAX/VwBAP2pAf3/Af3wAf0LAwAgF0EEaiEXIANBEGohAyAWQX5qIhYNAAsgCCEDIAQgCEYNAQsgA0EBciEXAkAgB0UNACAdIANBA3RqIhYgFisDACAbIBwgBGxBAXRqIANBAXRqLwEAuKA5AwAgFyEDCyAEIBdGDQAgBCADayEWIBkgA0EBdGohFyAVIANBA3RqIQMDQCADIAMrAwAgFy8BALigOQMAIANBCGoiGCAYKwMAIBdBAmovAQC4oDkDACAXQQRqIRcgA0EQaiEDIBZBfmoiFg0ACwsgGSARaiEZIBwgBkcNAAsgEyANaiETIBQgDWohFCAVIAtqIRUgD0EBaiIPIAJHDQAMAgsLIARFDQAgBEEDdCEIIARBfHEhGCAEQQNxIRkgBUEBdCERQQAhHCAEQQRJIQQDQEEAIRYCQCAEDQBBACEWIAAhAyABIRcDQCAXIAMvAQC4OQMAIBdBCGogA0ECai8BALg5AwAgF0EQaiADQQRqLwEAuDkDACAXQRhqIANBBmovAQC4OQMAIANBCGohAyAXQSBqIRcgGCAWQQRqIhZHDQALCwJAIBlFDQAgASAWQQN0aiEDIAAgFkEBdGohFyAZIRYDQCADIBcvAQC4OQMAIANBCGohAyAXQQJqIRcgFkF/aiIWDQALCyAAIBFqIQAgASAIaiEBIBxBAWoiHCACRw0ACwsLlwcBF38CQCACRQ0AIAQgA2whBQJAIANBf2oiBkUNACAERQ0BIARBAXEhByAEQf7///8HcSEIIARBfHEhCSAEQQNxIQogACAFaiELIAEgBEEDdCIMaiENQQAhDiAEQQRJIQ8gACAEaiIQIREgACESIAEhEwNAQQAhFAJAIA8NAEEAIRQgEyEDA0AgAyASIBRqIhUsAAC3OQMAIANBCGogFUEBaiwAALc5AwAgA0EQaiAVQQJqLAAAtzkDACADQRhqIBVBA2osAAC3OQMAIANBIGohAyAJIBRBBGoiFEcNAAsLIAsgBSAObCIWaiEXIBAgFmohGCANIAwgDmwiA2ohGSABIANqIRoCQCAKRQ0AIBIgFGohAyATIBRBA3RqIRUgCiEUA0AgFSADLAAAtzkDACAVQQhqIRUgA0EBaiEDIBRBf2oiFA0ACwtBACEbIBogF0kgGCAZSXEgBEEASHIhGCAAIBZqIRkgASAOIARsQQN0aiEaIBEhFwNAIBtBAWohG0EAIRUCQAJAIARBAUYgGHJBAXENACAIIRQgFyEVIBMhAwNAIAMgA/0AAwAgFS8AAP0Q/YcB/acB/f4B/fAB/QsDACAVQQJqIRUgA0EQaiEDIBRBfmoiFA0ACyAIIRUgBCAIRg0BCyAVQQFyIQMCQCAHRQ0AIBogFUEDdGoiFCAUKwMAIBkgGyAEbGogFWosAAC3oDkDACADIRULIAQgA0YNACATIBVBA3RqIQMDQCADIAMrAwAgFyAVaiIULAAAt6A5AwAgA0EIaiIWIBYrAwAgFEEBaiwAALegOQMAIANBEGohAyAEIBVBAmoiFUcNAAsLIBcgBGohFyAbIAZHDQALIBEgBWohESASIAVqIRIgEyAMaiETIA5BAWoiDiACRw0ADAILCyAERQ0AIARBA3QhCCAEQXxxIRYgBEEDcSEbQQAhFyAEQQRJIQQDQEEAIRQCQCAEDQBBACEUIAEhAwNAIAMgACAUaiIVLAAAtzkDACADQQhqIBVBAWosAAC3OQMAIANBEGogFUECaiwAALc5AwAgA0EYaiAVQQNqLAAAtzkDACADQSBqIQMgFiAUQQRqIhRHDQALCwJAIBtFDQAgACAUaiEDIAEgFEEDdGohFSAbIRQDQCAVIAMsAAC3OQMAIBVBCGohFSADQQFqIQMgFEF/aiIUDQALCyAAIAVqIQAgASAIaiEBIBdBAWoiFyACRw0ACwsLlwcBF38CQCACRQ0AIAQgA2whBQJAIANBf2oiBkUNACAERQ0BIARBAXEhByAEQf7///8HcSEIIARBfHEhCSAEQQNxIQogACAFaiELIAEgBEEDdCIMaiENQQAhDiAEQQRJIQ8gACAEaiIQIREgACESIAEhEwNAQQAhFAJAIA8NAEEAIRQgEyEDA0AgAyASIBRqIhUtAAC4OQMAIANBCGogFUEBai0AALg5AwAgA0EQaiAVQQJqLQAAuDkDACADQRhqIBVBA2otAAC4OQMAIANBIGohAyAJIBRBBGoiFEcNAAsLIAsgBSAObCIWaiEXIBAgFmohGCANIAwgDmwiA2ohGSABIANqIRoCQCAKRQ0AIBIgFGohAyATIBRBA3RqIRUgCiEUA0AgFSADLQAAuDkDACAVQQhqIRUgA0EBaiEDIBRBf2oiFA0ACwtBACEbIBogF0kgGCAZSXEgBEEASHIhGCAAIBZqIRkgASAOIARsQQN0aiEaIBEhFwNAIBtBAWohG0EAIRUCQAJAIARBAUYgGHJBAXENACAIIRQgFyEVIBMhAwNAIAMgA/0AAwAgFS8AAP0Q/YkB/akB/f8B/fAB/QsDACAVQQJqIRUgA0EQaiEDIBRBfmoiFA0ACyAIIRUgBCAIRg0BCyAVQQFyIQMCQCAHRQ0AIBogFUEDdGoiFCAUKwMAIBkgGyAEbGogFWotAAC4oDkDACADIRULIAQgA0YNACATIBVBA3RqIQMDQCADIAMrAwAgFyAVaiIULQAAuKA5AwAgA0EIaiIWIBYrAwAgFEEBai0AALigOQMAIANBEGohAyAEIBVBAmoiFUcNAAsLIBcgBGohFyAbIAZHDQALIBEgBWohESASIAVqIRIgEyAMaiETIA5BAWoiDiACRw0ADAILCyAERQ0AIARBA3QhCCAEQXxxIRYgBEEDcSEbQQAhFyAEQQRJIQQDQEEAIRQCQCAEDQBBACEUIAEhAwNAIAMgACAUaiIVLQAAuDkDACADQQhqIBVBAWotAAC4OQMAIANBEGogFUECai0AALg5AwAgA0EYaiAVQQNqLQAAuDkDACADQSBqIQMgFiAUQQRqIhRHDQALCwJAIBtFDQAgACAUaiEDIAEgFEEDdGohFSAbIRQDQCAVIAMtAAC4OQMAIBVBCGohFSADQQFqIQMgFEF/aiIUDQALCyAAIAVqIQAgASAIaiEBIBdBAWoiFyACRw0ACwsL",Re=null;function Ir(){if(Re)return Re;let A=atob(uK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Re=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Re.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Re}function Xp(A,r){return Ir().exports.reduce_sum_f64(A,r)}function Tp(A,r){return Ir().exports.reduce_sum_f32(A,r)}function pu(A,r){return Ir().exports.reduce_sum_i64(A,r)}function Nu(A,r){return Ir().exports.reduce_sum_i32(A,r)}function Op(A,r,I,t,o){Ir().exports.reduce_sum_strided_f64(A,r,I,t,o)}function Vp(A,r,I,t,o){Ir().exports.reduce_sum_strided_f32(A,r,I,t,o)}function Wp(A,r,I,t,o){Ir().exports.reduce_sum_strided_i64(A,r,I,t,o)}function Zp(A,r,I,t,o){Ir().exports.reduce_sum_strided_u64(A,r,I,t,o)}function zp(A,r,I,t,o){Ir().exports.reduce_sum_strided_i32(A,r,I,t,o)}function jp(A,r,I,t,o){Ir().exports.reduce_sum_strided_u32(A,r,I,t,o)}function $p(A,r,I,t,o){Ir().exports.reduce_sum_strided_i16(A,r,I,t,o)}function AN(A,r,I,t,o){Ir().exports.reduce_sum_strided_u16(A,r,I,t,o)}function rN(A,r,I,t,o){Ir().exports.reduce_sum_strided_i8(A,r,I,t,o)}function IN(A,r,I,t,o){Ir().exports.reduce_sum_strided_u8(A,r,I,t,o)}var tN=64,cK={float64:Xp,float32:Tp,int64:pu,uint64:pu,int32:Nu,uint32:Nu},oN={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function eN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<tN*K.thresholdMultiplier)return null;let I=A.dtype,t=cK[I],o=oN[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=R(i);return Number(t(n,r))}var DK={float64:Op,float32:Vp,int64:Wp,uint64:Zp,int32:zp,uint32:jp,int16:$p,uint16:AN,int8:rN,uint8:IN};function gN(A,r,I,t){if(!A.isCContiguous)return null;let o=r*I*t;if(o<tN*K.thresholdMultiplier)return null;let e=A.dtype,g=DK[e],i=oN[e];if(!g||!i)return null;let n=i.BYTES_PER_ELEMENT,Q=r*t;x(o*n+Q*8),U();let C=A.offset,a=A.data.subarray(C,C+o),B=R(a),s=H(Q*8);g(B,s,r,I,t);let E=_(s,Q,Float64Array);return d.fromData(E,[Q],"float64")}var fK="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",ke=null;function PA(){if(ke)return ke;let A=atob(fK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ke=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ke.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ke}function Fu(A,r){return PA().exports.reduce_max_f32(A,r)}function iN(A,r){return PA().exports.reduce_max_i64(A,r)}function nN(A,r){return PA().exports.reduce_max_u64(A,r)}function QN(A,r){return PA().exports.reduce_max_i32(A,r)}function CN(A,r){return PA().exports.reduce_max_u32(A,r)}function aN(A,r){return PA().exports.reduce_max_i16(A,r)}function BN(A,r){return PA().exports.reduce_max_u16(A,r)}function sN(A,r){return PA().exports.reduce_max_i8(A,r)}function EN(A,r){return PA().exports.reduce_max_u8(A,r)}function Gu(A,r,I,t,o){PA().exports.reduce_max_strided_f32(A,r,I,t,o)}function uN(A,r,I,t,o){PA().exports.reduce_max_strided_i64(A,r,I,t,o)}function cN(A,r,I,t,o){PA().exports.reduce_max_strided_u64(A,r,I,t,o)}function DN(A,r,I,t,o){PA().exports.reduce_max_strided_i32(A,r,I,t,o)}function fN(A,r,I,t,o){PA().exports.reduce_max_strided_u32(A,r,I,t,o)}function yN(A,r,I,t,o){PA().exports.reduce_max_strided_i16(A,r,I,t,o)}function mN(A,r,I,t,o){PA().exports.reduce_max_strided_u16(A,r,I,t,o)}function lN(A,r,I,t,o){PA().exports.reduce_max_strided_i8(A,r,I,t,o)}function hN(A,r,I,t,o){PA().exports.reduce_max_strided_u8(A,r,I,t,o)}var wN=64,yK={float32:Fu,float16:Fu,int64:iN,uint64:nN,int32:QN,uint32:CN,int16:aN,uint16:BN,int8:sN,uint8:EN},dN={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function bN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<wN*K.thresholdMultiplier)return null;let I=A.dtype,t=yK[I],o=dN[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return Number(t(Q,r))}var mK={float32:Gu,float16:Gu,int64:uN,uint64:cN,int32:DN,uint32:fN,int16:yN,uint16:mN,int8:lN,uint8:hN},lK={float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function pN(A,r,I,t){if(!A.isCContiguous)return null;let o=r*I*t;if(o<wN*K.thresholdMultiplier)return null;let e=A.dtype,g=mK[e],i=dN[e],n=lK[e];if(!g||!i||!n)return null;let Q=i.BYTES_PER_ELEMENT,C=Q,a=r*t;x(o*Q+a*C),U();let B=A.offset,s=A.data.subarray(B,B+o),E=AA(s,e),u=R(E),D=H(a*C);g(u,D,r,I,t);let y=_(D,a,n);return y=eA(y,e),d.fromData(y,[a],e)}var hK="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",qe=null;function _A(){if(qe)return qe;let A=atob(hK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);qe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=qe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),qe}function Su(A,r){return _A().exports.reduce_min_f32(A,r)}function NN(A,r){return _A().exports.reduce_min_i64(A,r)}function FN(A,r){return _A().exports.reduce_min_u64(A,r)}function GN(A,r){return _A().exports.reduce_min_i32(A,r)}function SN(A,r){return _A().exports.reduce_min_u32(A,r)}function RN(A,r){return _A().exports.reduce_min_i16(A,r)}function kN(A,r){return _A().exports.reduce_min_u16(A,r)}function qN(A,r){return _A().exports.reduce_min_i8(A,r)}function MN(A,r){return _A().exports.reduce_min_u8(A,r)}function Ru(A,r,I,t,o){_A().exports.reduce_min_strided_f32(A,r,I,t,o)}function JN(A,r,I,t,o){_A().exports.reduce_min_strided_i64(A,r,I,t,o)}function xN(A,r,I,t,o){_A().exports.reduce_min_strided_u64(A,r,I,t,o)}function UN(A,r,I,t,o){_A().exports.reduce_min_strided_i32(A,r,I,t,o)}function LN(A,r,I,t,o){_A().exports.reduce_min_strided_u32(A,r,I,t,o)}function HN(A,r,I,t,o){_A().exports.reduce_min_strided_i16(A,r,I,t,o)}function YN(A,r,I,t,o){_A().exports.reduce_min_strided_u16(A,r,I,t,o)}function PN(A,r,I,t,o){_A().exports.reduce_min_strided_i8(A,r,I,t,o)}function _N(A,r,I,t,o){_A().exports.reduce_min_strided_u8(A,r,I,t,o)}var KN=64,wK={float32:Su,float16:Su,int64:NN,uint64:FN,int32:GN,uint32:SN,int16:RN,uint16:kN,int8:qN,uint8:MN},vN={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function XN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<KN*K.thresholdMultiplier)return null;let I=A.dtype,t=wK[I],o=vN[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return Number(t(Q,r))}var dK={float32:Ru,float16:Ru,int64:JN,uint64:xN,int32:UN,uint32:LN,int16:HN,uint16:YN,int8:PN,uint8:_N},bK={float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function TN(A,r,I,t){if(!A.isCContiguous)return null;let o=r*I*t;if(o<KN*K.thresholdMultiplier)return null;let e=A.dtype,g=dK[e],i=vN[e],n=bK[e];if(!g||!i||!n)return null;let Q=i.BYTES_PER_ELEMENT,C=Q,a=r*t;x(o*Q+a*C),U();let B=A.offset,s=A.data.subarray(B,B+o),E=AA(s,e),u=R(E),D=H(a*C);g(u,D,r,I,t);let y=_(D,a,n);return y=eA(y,e),d.fromData(y,[a],e)}var pK="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",Me=null;function Pr(){if(Me)return Me;let A=atob(pK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Me=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Me.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Me}function ku(A,r){return Pr().exports.reduce_argmax_f32(A,r)}function ON(A,r){return Pr().exports.reduce_argmax_i64(A,r)}function VN(A,r){return Pr().exports.reduce_argmax_u64(A,r)}function WN(A,r){return Pr().exports.reduce_argmax_i32(A,r)}function ZN(A,r){return Pr().exports.reduce_argmax_u32(A,r)}function zN(A,r){return Pr().exports.reduce_argmax_i16(A,r)}function jN(A,r){return Pr().exports.reduce_argmax_u16(A,r)}function $N(A,r){return Pr().exports.reduce_argmax_i8(A,r)}function AF(A,r){return Pr().exports.reduce_argmax_u8(A,r)}var NK=64,FK={float32:ku,float16:ku,int64:ON,uint64:VN,int32:WN,uint32:ZN,int16:zN,uint16:jN,int8:$N,uint8:AF},GK={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function rF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<NK*K.thresholdMultiplier)return null;let I=A.dtype,t=FK[I],o=GK[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return Number(t(Q,r))}var SK="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",Je=null;function _r(){if(Je)return Je;let A=atob(SK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Je=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Je.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Je}function qu(A,r){return _r().exports.reduce_argmin_f32(A,r)}function IF(A,r){return _r().exports.reduce_argmin_i64(A,r)}function tF(A,r){return _r().exports.reduce_argmin_u64(A,r)}function oF(A,r){return _r().exports.reduce_argmin_i32(A,r)}function eF(A,r){return _r().exports.reduce_argmin_u32(A,r)}function gF(A,r){return _r().exports.reduce_argmin_i16(A,r)}function iF(A,r){return _r().exports.reduce_argmin_u16(A,r)}function nF(A,r){return _r().exports.reduce_argmin_i8(A,r)}function QF(A,r){return _r().exports.reduce_argmin_u8(A,r)}var RK=64,kK={float32:qu,float16:qu,int64:IF,uint64:tF,int32:oF,uint32:eF,int16:gF,uint16:iF,int8:nF,uint8:QF},qK={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function CF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<RK*K.thresholdMultiplier)return null;let I=A.dtype,t=kK[I],o=qK[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return Number(t(Q,r))}var MK="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",xe=null;function xA(){if(xe)return xe;let A=atob(MK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);xe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=xe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),xe}function aF(A,r){return xA().exports.reduce_mean_f64(A,r)}function Mu(A,r){return xA().exports.reduce_mean_f32(A,r)}function BF(A,r){return xA().exports.reduce_mean_i64(A,r)}function sF(A,r){return xA().exports.reduce_mean_u64(A,r)}function EF(A,r){return xA().exports.reduce_mean_i32(A,r)}function uF(A,r){return xA().exports.reduce_mean_u32(A,r)}function cF(A,r){return xA().exports.reduce_mean_i16(A,r)}function DF(A,r){return xA().exports.reduce_mean_u16(A,r)}function fF(A,r){return xA().exports.reduce_mean_i8(A,r)}function yF(A,r){return xA().exports.reduce_mean_u8(A,r)}function mF(A,r,I,t,o){xA().exports.reduce_mean_strided_f64(A,r,I,t,o)}function Ju(A,r,I,t,o){xA().exports.reduce_mean_strided_f32(A,r,I,t,o)}function lF(A,r,I,t,o){xA().exports.reduce_mean_strided_i64(A,r,I,t,o)}function hF(A,r,I,t,o){xA().exports.reduce_mean_strided_u64(A,r,I,t,o)}function wF(A,r,I,t,o){xA().exports.reduce_mean_strided_i32(A,r,I,t,o)}function dF(A,r,I,t,o){xA().exports.reduce_mean_strided_u32(A,r,I,t,o)}function bF(A,r,I,t,o){xA().exports.reduce_mean_strided_i16(A,r,I,t,o)}function pF(A,r,I,t,o){xA().exports.reduce_mean_strided_u16(A,r,I,t,o)}function NF(A,r,I,t,o){xA().exports.reduce_mean_strided_i8(A,r,I,t,o)}function FF(A,r,I,t,o){xA().exports.reduce_mean_strided_u8(A,r,I,t,o)}var GF=64,JK={float64:aF,float32:Mu,float16:Mu,int64:BF,uint64:sF,int32:EF,uint32:uF,int16:cF,uint16:DF,int8:fF,uint8:yF},SF={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function RF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<GF*K.thresholdMultiplier)return null;let I=A.dtype,t=JK[I],o=SF[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return Number(t(Q,r))}var xK={float64:mF,float32:Ju,float16:Ju,int64:lF,uint64:hF,int32:wF,uint32:dF,int16:bF,uint16:pF,int8:NF,uint8:FF};function kF(A,r,I,t){if(!A.isCContiguous)return null;let o=r*I*t;if(o<GF*K.thresholdMultiplier)return null;let e=A.dtype,g=xK[e],i=SF[e];if(!g||!i)return null;let n=i.BYTES_PER_ELEMENT,Q=Float64Array.BYTES_PER_ELEMENT,C=r*t;x(o*n+C*Q),U();let a=A.offset,B=A.data.subarray(a,a+o),s=AA(B,e),E=R(s),u=H(C*Q);g(E,u,r,I,t);let D=_(u,C,Float64Array);return d.fromData(D,[C],"float64")}var UK="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",Ue=null;function Gr(){if(Ue)return Ue;let A=atob(UK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ue=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ue.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ue}function qF(A,r){return Gr().exports.reduce_var_f64(A,r)}function MF(A,r){return Gr().exports.reduce_var_f32(A,r)}function JF(A,r){return Gr().exports.reduce_var_i64(A,r)}function xF(A,r){return Gr().exports.reduce_var_u64(A,r)}function UF(A,r){return Gr().exports.reduce_var_i32(A,r)}function LF(A,r){return Gr().exports.reduce_var_u32(A,r)}function HF(A,r){return Gr().exports.reduce_var_i16(A,r)}function YF(A,r){return Gr().exports.reduce_var_u16(A,r)}function PF(A,r){return Gr().exports.reduce_var_i8(A,r)}function _F(A,r){return Gr().exports.reduce_var_u8(A,r)}var LK=64,HK={float64:qF,float32:MF,int64:JF,uint64:xF,int32:UF,uint32:LF,int16:HF,uint16:YF,int8:PF,uint8:_F},YK={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function KF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<LK*K.thresholdMultiplier)return null;let I=A.dtype,t=HK[I],o=YK[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=R(i);return Number(t(n,r))}var PK="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbnN1bV9mNjQAABFyZWR1Y2VfbmFuc3VtX2YzMgABCvUDAv4BBAJ/AXwBfwF8AkAgAQ0ARAAAAAAAAAAADwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAAAAIQQMAQsgAUF8cSEFQQAhA0QAAAAAAAAAACEEIAAhAQNAIAQgASsDACIGoCAEIAYgBmEbIgYgAUEIaisDACIEoCAGIAQgBGEbIgYgAUEQaisDACIEoCAGIAQgBGEbIgYgAUEYaisDACIEoCAGIAQgBGEbIQQgAUEgaiEBIAUgA0EEaiIDRw0ACwsCQCACRQ0AIAAgA0EDdGohAQNAIAQgASsDACIGoCAEIAYgBmEbIQQgAUEIaiEBIAJBf2oiAg0ACwsgBAvyAQQCfwF9AX8BfQJAIAENAEMAAAAADwsgAUEDcSECAkACQCABQQRPDQBBACEDQwAAAAAhBAwBCyABQXxxIQVBACEDQwAAAAAhBCAAIQEDQCAEIAEqAgAiBpIgBCAGIAZbGyIGIAFBBGoqAgAiBJIgBiAEIARbGyIGIAFBCGoqAgAiBJIgBiAEIARbGyIGIAFBDGoqAgAiBJIgBiAEIARbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCAEIAEqAgAiBpIgBCAGIAZbGyEEIAFBBGohASACQX9qIgINAAsLIAQL",Le=null;function vF(){if(Le)return Le;let A=atob(PK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Le=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Le.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Le}function XF(A,r){return vF().exports.reduce_nansum_f64(A,r)}function TF(A,r){return vF().exports.reduce_nansum_f32(A,r)}var _K=64,KK={float64:XF,float32:TF},vK={float64:Float64Array,float32:Float32Array};function OF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<_K*K.thresholdMultiplier)return null;let I=A.dtype,t=KK[I],o=vK[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=R(i);return Number(t(n,r))}var XK="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbm1pbl9mNjQAABFyZWR1Y2VfbmFubWluX2YzMgABCqcEApcCBAJ/AXwBfwR8AkAgAQ0ARAAAAAAAAPB/DwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAPB/IQQMAQsgAUF8cSEFQQAhA0QAAAAAAADwfyEEIAAhAQNAIAFBGGorAwAiBiABQRBqKwMAIgcgAUEIaisDACIIIAErAwAiCSAEIAkgBGMbIAQgCSAJYRsiBCAIIARjGyAEIAggCGEbIgQgByAEYxsgBCAHIAdhGyIEIAYgBGMbIAQgBiAGYRshBCABQSBqIQEgBSADQQRqIgNHDQALCwJAIAJFDQAgACADQQN0aiEBA0AgASsDACIGIAQgBiAEYxsgBCAGIAZhGyEEIAFBCGohASACQX9qIgINAAsLIAQLiwIEAn8BfQF/BH0CQCABDQBDAACAfw8LIAFBA3EhAgJAAkAgAUEETw0AQQAhA0MAAIB/IQQMAQsgAUF8cSEFQQAhA0MAAIB/IQQgACEBA0AgAUEMaioCACIGIAFBCGoqAgAiByABQQRqKgIAIgggASoCACIJIAQgCSAEXRsgBCAJIAlbGyIEIAggBF0bIAQgCCAIWxsiBCAHIARdGyAEIAcgB1sbIgQgBiAEXRsgBCAGIAZbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCABKgIAIgYgBCAGIARdGyAEIAYgBlsbIQQgAUEEaiEBIAJBf2oiAg0ACwsgBAs=",He=null;function VF(){if(He)return He;let A=atob(XK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);He=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=He.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),He}function WF(A,r){return VF().exports.reduce_nanmin_f64(A,r)}function xu(A,r){return VF().exports.reduce_nanmin_f32(A,r)}var TK=64,OK={float64:WF,float32:xu,float16:xu},VK={float64:Float64Array,float32:Float32Array,float16:Float32Array};function ZF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<TK*K.thresholdMultiplier)return null;let I=A.dtype,t=OK[I],o=VK[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return Number(t(Q,r))}var WK="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbm1heF9mNjQAABFyZWR1Y2VfbmFubWF4X2YzMgABCqcEApcCBAJ/AXwBfwR8AkAgAQ0ARAAAAAAAAPD/DwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAPD/IQQMAQsgAUF8cSEFQQAhA0QAAAAAAADw/yEEIAAhAQNAIAFBGGorAwAiBiABQRBqKwMAIgcgAUEIaisDACIIIAErAwAiCSAEIAkgBGQbIAQgCSAJYRsiBCAIIARkGyAEIAggCGEbIgQgByAEZBsgBCAHIAdhGyIEIAYgBGQbIAQgBiAGYRshBCABQSBqIQEgBSADQQRqIgNHDQALCwJAIAJFDQAgACADQQN0aiEBA0AgASsDACIGIAQgBiAEZBsgBCAGIAZhGyEEIAFBCGohASACQX9qIgINAAsLIAQLiwIEAn8BfQF/BH0CQCABDQBDAACA/w8LIAFBA3EhAgJAAkAgAUEETw0AQQAhA0MAAID/IQQMAQsgAUF8cSEFQQAhA0MAAID/IQQgACEBA0AgAUEMaioCACIGIAFBCGoqAgAiByABQQRqKgIAIgggASoCACIJIAQgCSAEXhsgBCAJIAlbGyIEIAggBF4bIAQgCCAIWxsiBCAHIAReGyAEIAcgB1sbIgQgBiAEXhsgBCAGIAZbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCABKgIAIgYgBCAGIAReGyAEIAYgBlsbIQQgAUEEaiEBIAJBf2oiAg0ACwsgBAs=",Ye=null;function zF(){if(Ye)return Ye;let A=atob(WK),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ye=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ye.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ye}function jF(A,r){return zF().exports.reduce_nanmax_f64(A,r)}function Uu(A,r){return zF().exports.reduce_nanmax_f32(A,r)}var ZK=64,zK={float64:jF,float32:Uu,float16:Uu},jK={float64:Float64Array,float32:Float32Array,float16:Float32Array};function $F(A){if(!A.isCContiguous)return null;let r=A.size;if(r<ZK*K.thresholdMultiplier)return null;let I=A.dtype,t=zK[I],o=jK[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return Number(t(Q,r))}var $K="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",Pe=null;function KA(){if(Pe)return Pe;let A=atob($K),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Pe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Pe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Pe}function AG(A,r){return KA().exports.reduce_prod_f64(A,r)}function rG(A,r){return KA().exports.reduce_prod_f32(A,r)}function Lu(A,r){return KA().exports.reduce_prod_i64(A,r)}function Hu(A,r){return KA().exports.reduce_prod_i32(A,r)}function IG(A,r){return KA().exports.reduce_prod_i16(A,r)}function tG(A,r){return KA().exports.reduce_prod_u16(A,r)}function oG(A,r){return KA().exports.reduce_prod_i8(A,r)}function eG(A,r){return KA().exports.reduce_prod_u8(A,r)}function gG(A,r,I,t,o){KA().exports.reduce_prod_strided_f64(A,r,I,t,o)}function iG(A,r,I,t,o){KA().exports.reduce_prod_strided_f32(A,r,I,t,o)}function nG(A,r,I,t,o){KA().exports.reduce_prod_strided_i64(A,r,I,t,o)}function QG(A,r,I,t,o){KA().exports.reduce_prod_strided_u64(A,r,I,t,o)}function CG(A,r,I,t,o){KA().exports.reduce_prod_strided_i32(A,r,I,t,o)}function aG(A,r,I,t,o){KA().exports.reduce_prod_strided_u32(A,r,I,t,o)}function BG(A,r,I,t,o){KA().exports.reduce_prod_strided_i16(A,r,I,t,o)}function sG(A,r,I,t,o){KA().exports.reduce_prod_strided_u16(A,r,I,t,o)}function EG(A,r,I,t,o){KA().exports.reduce_prod_strided_i8(A,r,I,t,o)}function uG(A,r,I,t,o){KA().exports.reduce_prod_strided_u8(A,r,I,t,o)}var cG=64,Av={float64:AG,float32:rG,int64:Lu,uint64:Lu,int32:Hu,uint32:Hu,int16:IG,uint16:tG,int8:oG,uint8:eG},DG={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function fG(A){if(!A.isCContiguous)return null;let r=A.size;if(r<cG*K.thresholdMultiplier)return null;let I=A.dtype,t=Av[I],o=DG[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=R(i);return Number(t(n,r))}var rv={float64:gG,float32:iG,int64:nG,uint64:QG,int32:CG,uint32:aG,int16:BG,uint16:sG,int8:EG,uint8:uG},Iv={float64:"float64",float32:"float32",int64:"int64",uint64:"uint64",int32:"int32",uint32:"uint32",int16:"int64",uint16:"uint64",int8:"int64",uint8:"uint64"},tv={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:BigInt64Array,uint16:BigUint64Array,int8:BigInt64Array,uint8:BigUint64Array},ov={float64:8,float32:4,int64:8,uint64:8,int32:4,uint32:4,int16:8,uint16:8,int8:8,uint8:8};function yG(A,r,I,t){if(!A.isCContiguous)return null;let o=r*I*t;if(o<cG*K.thresholdMultiplier)return null;let e=A.dtype,g=rv[e],i=DG[e],n=tv[e],Q=Iv[e],C=ov[e];if(!g||!i||!n||!Q||!C)return null;let a=i.BYTES_PER_ELEMENT,B=r*t;x(o*a+B*C),U();let s=A.offset,E=A.data.subarray(s,s+o),u=R(E),D=H(B*C);g(u,D,r,I,t);let y=_(D,B,n);return d.fromData(y,[B],Q)}var ev="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",_e=null;function gv(){if(_e)return _e;let A=atob(ev),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);_e=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=_e.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),_e}function mG(A,r,I){return gv().exports.reduce_quantile_f64(A,r,I)}var iv=64;function lG(A,r){if(!A.isCContiguous||k(A.dtype))return null;let I=A.size;if(I<iv*K.thresholdMultiplier)return null;let t=new Float64Array(I),o=A.offset,e=A.data;if(A.dtype==="float64")t.set(e.subarray(o,o+I));else if(A.dtype==="float16"){let i=AA(e.subarray(o,o+I),A.dtype);for(let n=0;n<I;n++)t[n]=i[n]}else if(P(A.dtype)){let i=e;for(let n=0;n<I;n++)t[n]=Number(i[o+n])}else for(let i=0;i<I;i++)t[i]=Number(e[o+i]);x(I*8),U();let g=R(t);return mG(g,I,r)}var nv="AGFzbQEAAAABBwFgAn9/AX8CDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB2YGDnJlZHVjZV9hbnlfZjY0AAAOcmVkdWNlX2FueV9mMzIAAQ5yZWR1Y2VfYW55X2k2NAACDnJlZHVjZV9hbnlfaTMyAAMOcmVkdWNlX2FueV9pMTYABA1yZWR1Y2VfYW55X2k4AAUK3QIGQAEBf0EAIQICQCABRQ0AAkADQCAAKwMARAAAAAAAAAAAYg0BIABBCGohACABQX9qIgFFDQIMAAsLQQEhAgsgAgs8AQF/QQAhAgJAIAFFDQACQANAIAAqAgBDAAAAAFwNASAAQQRqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAILOAEBf0EAIQICQCABRQ0AAkADQCAAKQMAUEUNASAAQQhqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAILNgEBf0EAIQICQCABRQ0AAkADQCAAKAIADQEgAEEEaiEAIAFBf2oiAUUNAgwACwtBASECCyACCzYBAX9BACECAkAgAUUNAAJAA0AgAC8BAA0BIABBAmohACABQX9qIgFFDQIMAAsLQQEhAgsgAgs2AQF/QQAhAgJAIAFFDQACQANAIAAtAAANASAAQQFqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAIL",Ke=null;function et(){if(Ke)return Ke;let A=atob(nv),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ke=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ke.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ke}function hG(A,r){return et().exports.reduce_any_f64(A,r)}function Yu(A,r){return et().exports.reduce_any_f32(A,r)}function Pu(A,r){return et().exports.reduce_any_i64(A,r)}function _u(A,r){return et().exports.reduce_any_i32(A,r)}function Ku(A,r){return et().exports.reduce_any_i16(A,r)}function vu(A,r){return et().exports.reduce_any_i8(A,r)}var Qv=64,Cv={float64:hG,float32:Yu,float16:Yu,int64:Pu,uint64:Pu,int32:_u,uint32:_u,int16:Ku,uint16:Ku,int8:vu,uint8:vu},av={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function wG(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Qv*K.thresholdMultiplier)return null;let I=A.dtype,t=Cv[I],o=av[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return t(Q,r)}var Bv="AGFzbQEAAAABBwFgAn9/AX8CDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB2YGDnJlZHVjZV9hbGxfZjY0AAAOcmVkdWNlX2FsbF9mMzIAAQ5yZWR1Y2VfYWxsX2k2NAACDnJlZHVjZV9hbGxfaTMyAAMOcmVkdWNlX2FsbF9pMTYABA1yZWR1Y2VfYWxsX2k4AAUK5gIGQAEBf0EBIQICQCABRQ0AAkADQCAAKwMARAAAAAAAAAAAYQ0BIABBCGohACABQX9qIgFFDQIMAAsLQQAhAgsgAgs8AQF/QQEhAgJAIAFFDQACQANAIAAqAgBDAAAAAFsNASAAQQRqIQAgAUF/aiIBRQ0CDAALC0EAIQILIAILNwEBf0EBIQICQCABRQ0AAkADQCAAKQMAUA0BIABBCGohACABQX9qIgFFDQIMAAsLQQAhAgsgAgs3AQF/QQEhAgJAIAFFDQACQANAIAAoAgBFDQEgAEEEaiEAIAFBf2oiAUUNAgwACwtBACECCyACCzcBAX9BASECAkAgAUUNAAJAA0AgAC8BAEUNASAAQQJqIQAgAUF/aiIBRQ0CDAALC0EAIQILIAILPgEBfwJAAkAgAQ0AQQEhAgwBCwJAA0AgAC0AAEUNAUEBIQIgAEEBaiEAIAFBf2oiAUUNAgwACwtBAA8LIAIL",ve=null;function gt(){if(ve)return ve;let A=atob(Bv),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ve=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ve.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ve}function dG(A,r){return gt().exports.reduce_all_f64(A,r)}function Xu(A,r){return gt().exports.reduce_all_f32(A,r)}function Tu(A,r){return gt().exports.reduce_all_i64(A,r)}function Ou(A,r){return gt().exports.reduce_all_i32(A,r)}function Vu(A,r){return gt().exports.reduce_all_i16(A,r)}function Wu(A,r){return gt().exports.reduce_all_i8(A,r)}var sv=64,Ev={float64:dG,float32:Xu,float16:Xu,int64:Tu,uint64:Tu,int32:Ou,uint32:Ou,int16:Vu,uint16:Vu,int8:Wu,uint8:Wu},uv={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function bG(A){if(!A.isCContiguous)return null;let r=A.size;if(r<sv*K.thresholdMultiplier)return null;let I=A.dtype,t=Ev[I],o=uv[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return t(Q,r)}var cv="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",Xe=null;function Sr(){if(Xe)return Xe;let A=atob(cv),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Xe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Xe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Xe}function pG(A,r){return Sr().exports.reduce_std_f64(A,r)}function NG(A,r){return Sr().exports.reduce_std_f32(A,r)}function FG(A,r){return Sr().exports.reduce_std_i64(A,r)}function GG(A,r){return Sr().exports.reduce_std_u64(A,r)}function SG(A,r){return Sr().exports.reduce_std_i32(A,r)}function RG(A,r){return Sr().exports.reduce_std_u32(A,r)}function kG(A,r){return Sr().exports.reduce_std_i16(A,r)}function qG(A,r){return Sr().exports.reduce_std_u16(A,r)}function MG(A,r){return Sr().exports.reduce_std_i8(A,r)}function JG(A,r){return Sr().exports.reduce_std_u8(A,r)}var Dv=64,fv={float64:pG,float32:NG,int64:FG,uint64:GG,int32:SG,uint32:RG,int16:kG,uint16:qG,int8:MG,uint8:JG},yv={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function xG(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Dv*K.thresholdMultiplier)return null;let I=A.dtype,t=fv[I],o=yv[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=R(i);return Number(t(n,r))}var jA=new Float32Array(2),Te=typeof globalThis.Float16Array<"u"?new Float16Array(2):null;function dr(A){return A==="float16"?Te:A==="float32"?jA:null}function Zu(A,r){let I=dr(r);return I?(I[0]=A,I[0]):A}function UG(A){switch(A){case"int8":case"int16":case"int32":return"int64";case"uint8":case"uint16":case"uint32":return"uint64";default:return A}}function mv(A){switch(A){case"int8":case"int16":case"int32":case"uint8":case"uint16":case"uint32":case"int64":case"uint64":return"float64";default:return A}}function vA(A,r,I){let t=d.zeros(Array(r).fill(1),I);return t.iset(0,A),t}function BI(A,r,I=!1){let t=A.dtype,o=A.shape,e=o.length,g=A.size,i=A.data,n=A.offset,Q=A.strides,C=A.isCContiguous;if(r===void 0){let m=eN(A);if(m!==null)return m;if(k(t)){let l=0,w=0;if(C){let h=i;for(let b=0;b<g;b++)l+=h[(n+b)*2],w+=h[(n+b)*2+1]}else for(let h=0;h<g;h++){let b=A.iget(h);l+=b.re,w+=b.im}return new X(l,w)}else if(P(t)){let l=BigInt(0);if(C){let w=i;for(let h=0;h<g;h++)l+=w[n+h]}else for(let w=0;w<g;w++)l+=A.iget(w);return Number(l)}else if(t==="float32"||t==="float16"&&Te){let l=dr(t);if(l[0]=0,C){let w=t==="float16"?new Float32Array(i.subarray(n,n+g)):i,h=t==="float16"?0:n;for(let b=0;b<g;b++)l[0]+=Number(w[h+b])}else for(let w=0;w<g;w++)l[0]+=Number(A.iget(w));return l[0]}else{let l=0;if(C)if(n===0)for(let w=0;w<g;w++)l+=Number(i[w]);else for(let w=0;w<g;w++)l+=Number(i[n+w]);else for(let w=0;w<g;w++)l+=Number(A.iget(w));return l}}let a=r;if(a<0&&(a=e+a),a<0||a>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let B=UG(t),s=Array.from(o).filter((m,l)=>l!==a);if(s.length===0){let m=BI(A);if(!I)return m;let l=d.zeros(Array(e).fill(1),B);return l.iset(0,m),l}let E=d.zeros(s,B),u=E.data,D=o[a],y=s.reduce((m,l)=>m*l,1);if(C&&!k(t)){let m=o.slice(0,a).reduce((h,b)=>h*b,1),l=o.slice(a+1).reduce((h,b)=>h*b,1),w=gN(A,m,D,l);if(w){let h=I?o.map((p,N)=>N===a?1:p):s;if(B==="float64")return d.fromData(w.data,h,B);if(B==="float32"){let p=new Float32Array(w.data.length),N=w.data;for(let F=0;F<N.length;F++)p[F]=N[F];return d.fromData(p,h,B)}let b=w.data;for(let p=0;p<b.length;p++)u[p]=u instanceof BigInt64Array||u instanceof BigUint64Array?BigInt(Math.round(b[p])):b[p];return I?d.fromData(u,h,B):E}}let{baseOffsets:f,axisStride:c}=aA(o,Q,n,a,y);if(k(t)){let m=i,l=u;if(t==="complex64")for(let w=0;w<y;w++){jA[0]=0,jA[1]=0;let h=f[w];for(let b=0;b<D;b++)jA[0]+=m[h*2],jA[1]+=m[h*2+1],h+=c;l[w*2]=jA[0],l[w*2+1]=jA[1]}else for(let w=0;w<y;w++){let h=0,b=0,p=f[w];for(let N=0;N<D;N++)h+=m[p*2],b+=m[p*2+1],p+=c;l[w*2]=h,l[w*2+1]=b}}else if(P(t)){let m=i,l=u;for(let w=0;w<y;w++){let h=BigInt(0),b=f[w];for(let p=0;p<D;p++)h+=m[b],b+=c;l[w]=h}}else if(P(B)){let m=u;for(let l=0;l<y;l++){let w=0,h=f[l];for(let b=0;b<D;b++)w+=Number(i[h]),h+=c;m[l]=BigInt(Math.round(w))}}else if(t==="float32"||t==="float16"&&Te){let m=dr(t);for(let l=0;l<y;l++){m[0]=0;let w=f[l];for(let h=0;h<D;h++)m[0]+=Number(i[w]),w+=c;u[l]=m[0]}}else for(let m=0;m<y;m++){let l=0,w=f[m];for(let h=0;h<D;h++)l+=Number(i[w]),w+=c;u[m]=l}if(I){let m=[...o];return m[a]=1,d.fromData(u,m,B)}return E}function nt(A,r,I=!1){let t=A.dtype,o=A.shape;if(r===void 0){let E=RF(A);if(E!==null)return E;if(t==="float16"||t==="float32"){let D=0,y=A.offset;if(A.isCContiguous)for(let f=0;f<A.size;f++)D+=Number(A.data[y+f]);else for(let f=0;f<A.size;f++)D+=Number(A.iget(f));return Zu(D/A.size,t)}let u=BI(A);return u instanceof X?new X(u.re/A.size,u.im/A.size):u/A.size}let e=r;if(e<0&&(e=o.length+e),e<0||e>=o.length)throw new Error(`axis ${r} is out of bounds for array of dimension ${o.length}`);if(A.isCContiguous&&!k(t)){let E=o[e],u=I?o.map((c,m)=>m===e?1:c):Array.from(o).filter((c,m)=>m!==e),D=o.slice(0,e).reduce((c,m)=>c*m,1),y=o.slice(e+1).reduce((c,m)=>c*m,1),f=kF(A,D,E,y);if(f)return d.fromData(f.data,u,"float64")}let g;if(t==="float16"||t==="float32"){let E=d.zeros(Array.from(o),"float64"),u=A.data,D=E.data,y=A.offset;if(A.isCContiguous){let h=t==="float16"&&uA?new Float32Array(u.subarray(y,y+A.size)):u,b=t==="float16"&&uA?0:y;for(let p=0;p<A.size;p++)D[p]=Number(h[b+p])}else for(let h=0;h<A.size;h++)D[h]=Number(A.iget(h));let f=BI(E,e,I);if(typeof f=="number")return Zu(f/o[e],t);g=f;let c=o[e],m=g.data,l=iA(t),w=new l(m.length);for(let h=0;h<m.length;h++)w[h]=m[h]/c;return d.fromData(w,Array.from(g.shape),t)}let i=BI(A,r,I);if(typeof i=="number")return i/o[e];if(i instanceof X)return new X(i.re/o[e],i.im/o[e]);let n=o[e],Q=mv(t),C=d.zeros(Array.from(i.shape),Q),a=C.data,B=i.data,s=i.dtype;if(k(t)){let E=B,u=a,D=i.size;for(let y=0;y<D;y++)u[y*2]=E[y*2]/n,u[y*2+1]=E[y*2+1]/n}else if(P(s)){let E=B;for(let u=0;u<a.length;u++)a[u]=Number(E[u])/n}else for(let E=0;E<a.length;E++)a[E]=Number(B[E])/n;return C}function sI(A,r,I=!1){let t=A.dtype,o=A.shape,e=o.length,g=A.size,i=A.data,n=A.offset,Q=A.strides;if(k(t)){let f=i;if(r===void 0){if(g===0)throw new Error("max of empty array");let F=f[n*2],S=f[n*2+1];for(let M=1;M<g;M++){let Y=f[(n+M)*2],L=f[(n+M)*2+1];if(isNaN(Y)||isNaN(L))return new X(NaN,NaN);(Y>F||Y===F&&L>S)&&(F=Y,S=L)}return isNaN(F)||isNaN(S)?new X(NaN,NaN):new X(F,S)}let c=r;if(c<0&&(c=e+c),c<0||c>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let m=Array.from(o).filter((F,S)=>S!==c);if(m.length===0){let F=sI(A);return I?vA(F,e,t):F}let l=d.zeros(m,t),w=l.data,h=o[c],b=m.reduce((F,S)=>F*S,1),{baseOffsets:p,axisStride:N}=aA(o,Q,n,c,b);for(let F=0;F<b;F++){let S=p[F],M=f[S*2],Y=f[S*2+1];S+=N;for(let L=1;L<h;L++){let v=f[S*2],Z=f[S*2+1];if(S+=N,isNaN(v)||isNaN(Z)){M=NaN,Y=NaN;break}(v>M||v===M&&Z>Y)&&(M=v,Y=Z)}w[F*2]=M,w[F*2+1]=Y}if(I){let F=[...o];return F[c]=1,d.fromData(w,F,t)}return l}if(r===void 0){let f=bN(A);if(f!==null)return f;if(g===0)throw new Error("max of empty array");if(A.isCContiguous){let c=i[n];if(n===0)for(let m=1;m<g;m++)i[m]>c&&(c=i[m]);else for(let m=1;m<g;m++)i[n+m]>c&&(c=i[n+m]);return Number(c)}else{let c=A.iget(0);for(let m=1;m<g;m++){let l=A.iget(m);l>c&&(c=l)}return Number(c)}}let C=r;if(C<0&&(C=e+C),C<0||C>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let a=Array.from(o).filter((f,c)=>c!==C);if(a.length===0){let f=sI(A);return I?vA(f,e,t):f}let B=d.zeros(a,t),s=B.data,E=o[C],u=a.reduce((f,c)=>f*c,1);if(A.isCContiguous&&!k(t)){let f=o.slice(0,C).reduce((l,w)=>l*w,1),c=o.slice(C+1).reduce((l,w)=>l*w,1),m=pN(A,f,E,c);if(m){let l=I?o.map((w,h)=>h===C?1:w):a;return d.fromData(m.data,l,t)}}let{baseOffsets:D,axisStride:y}=aA(o,Q,n,C,u);if(P(t)){let f=i,c=s;for(let m=0;m<u;m++){let l=D[m],w=f[l];l+=y;for(let h=1;h<E;h++){let b=f[l];b>w&&(w=b),l+=y}c[m]=w}}else for(let f=0;f<u;f++){let c=-1/0,m=D[f];for(let l=0;l<E;l++){let w=Number(i[m]);w>c&&(c=w),m+=y}s[f]=c}if(I){let f=[...o];return f[C]=1,d.fromData(s,f,t)}return B}function We(A,r,I=!1){let t=A.dtype,o=A.shape,e=o.length,g=A.size,i=A.data,n=A.offset,Q=A.strides,C=A.isCContiguous;if(r===void 0){let m=fG(A);if(m!==null)return m;if(k(t)){let l=1,w=0;if(C){let h=i;for(let b=0;b<g;b++){let p=h[(n+b)*2],N=h[(n+b)*2+1],F=l*p-w*N,S=l*N+w*p;l=F,w=S}}else for(let h=0;h<g;h++){let b=A.iget(h),p=b.re,N=b.im,F=l*p-w*N,S=l*N+w*p;l=F,w=S}return new X(l,w)}else if(P(t)){let l=BigInt(1);if(C){let w=i;for(let h=0;h<g;h++)l*=w[n+h]}else for(let w=0;w<g;w++)l*=A.iget(w);return Number(l)}else if(t==="float32"||t==="float16"&&Te){let l=dr(t);if(l[0]=1,C)for(let w=0;w<g;w++)l[0]*=Number(i[n+w]);else for(let w=0;w<g;w++)l[0]*=Number(A.iget(w));return l[0]}else{let l=1;if(C)if(n===0)for(let w=0;w<g;w++)l*=Number(i[w]);else for(let w=0;w<g;w++)l*=Number(i[n+w]);else for(let w=0;w<g;w++)l*=Number(A.iget(w));return l}}let a=r;if(a<0&&(a=e+a),a<0||a>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let B=UG(t),s=Array.from(o).filter((m,l)=>l!==a);if(s.length===0){let m=We(A);return I?vA(m,e,B):m}let E=d.zeros(s,B),u=E.data,D=o[a],y=s.reduce((m,l)=>m*l,1);if(C&&!k(t)){let m=o.slice(0,a).reduce((h,b)=>h*b,1),l=o.slice(a+1).reduce((h,b)=>h*b,1),w=yG(A,m,D,l);if(w){let h=I?o.map((b,p)=>p===a?1:b):s;return d.fromData(w.data,h,B)}}let{baseOffsets:f,axisStride:c}=aA(o,Q,n,a,y);if(k(t)){let m=i,l=u;if(t==="complex64")for(let w=0;w<y;w++){jA[0]=1,jA[1]=0;let h=f[w];for(let b=0;b<D;b++){let p=m[h*2],N=m[h*2+1],F=jA[0],S=jA[1];jA[0]=F*p-S*N,jA[1]=F*N+S*p,h+=c}l[w*2]=jA[0],l[w*2+1]=jA[1]}else for(let w=0;w<y;w++){let h=1,b=0,p=f[w];for(let N=0;N<D;N++){let F=m[p*2],S=m[p*2+1],M=h*F-b*S,Y=h*S+b*F;h=M,b=Y,p+=c}l[w*2]=h,l[w*2+1]=b}}else if(P(t)){let m=i,l=u;for(let w=0;w<y;w++){let h=BigInt(1),b=f[w];for(let p=0;p<D;p++)h*=m[b],b+=c;l[w]=h}}else if(P(B)){let m=u;for(let l=0;l<y;l++){let w=BigInt(1),h=f[l];for(let b=0;b<D;b++)w*=BigInt(Number(i[h])),h+=c;m[l]=w}}else if(t==="float32"||t==="float16"&&Te){let m=dr(t);for(let l=0;l<y;l++){m[0]=1;let w=f[l];for(let h=0;h<D;h++)m[0]*=Number(i[w]),w+=c;u[l]=m[0]}}else for(let m=0;m<y;m++){let l=1,w=f[m];for(let h=0;h<D;h++)l*=Number(i[w]),w+=c;u[m]=l}if(I){let m=[...o];return m[a]=1,d.fromData(u,m,B)}return E}function EI(A,r,I=!1){let t=A.dtype,o=A.shape,e=o.length,g=A.size,i=A.data,n=A.offset,Q=A.strides;if(k(t)){let f=i;if(r===void 0){if(g===0)throw new Error("min of empty array");let F=f[n*2],S=f[n*2+1];for(let M=1;M<g;M++){let Y=f[(n+M)*2],L=f[(n+M)*2+1];if(isNaN(Y)||isNaN(L))return new X(NaN,NaN);(Y<F||Y===F&&L<S)&&(F=Y,S=L)}return isNaN(F)||isNaN(S)?new X(NaN,NaN):new X(F,S)}let c=r;if(c<0&&(c=e+c),c<0||c>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let m=Array.from(o).filter((F,S)=>S!==c);if(m.length===0){let F=EI(A);return I?vA(F,e,t):F}let l=d.zeros(m,t),w=l.data,h=o[c],b=m.reduce((F,S)=>F*S,1),{baseOffsets:p,axisStride:N}=aA(o,Q,n,c,b);for(let F=0;F<b;F++){let S=p[F],M=f[S*2],Y=f[S*2+1];S+=N;for(let L=1;L<h;L++){let v=f[S*2],Z=f[S*2+1];if(S+=N,isNaN(v)||isNaN(Z)){M=NaN,Y=NaN;break}(v<M||v===M&&Z<Y)&&(M=v,Y=Z)}w[F*2]=M,w[F*2+1]=Y}if(I){let F=[...o];return F[c]=1,d.fromData(w,F,t)}return l}if(r===void 0){let f=XN(A);if(f!==null)return f;if(g===0)throw new Error("min of empty array");if(A.isCContiguous){let c=i[n];if(n===0)for(let m=1;m<g;m++)i[m]<c&&(c=i[m]);else for(let m=1;m<g;m++)i[n+m]<c&&(c=i[n+m]);return Number(c)}else{let c=A.iget(0);for(let m=1;m<g;m++){let l=A.iget(m);l<c&&(c=l)}return Number(c)}}let C=r;if(C<0&&(C=e+C),C<0||C>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let a=Array.from(o).filter((f,c)=>c!==C);if(a.length===0){let f=EI(A);return I?vA(f,e,t):f}let B=d.zeros(a,t),s=B.data,E=o[C],u=a.reduce((f,c)=>f*c,1);if(A.isCContiguous&&!k(t)){let f=o.slice(0,C).reduce((l,w)=>l*w,1),c=o.slice(C+1).reduce((l,w)=>l*w,1),m=TN(A,f,E,c);if(m){let l=I?o.map((w,h)=>h===C?1:w):a;return d.fromData(m.data,l,t)}}let{baseOffsets:D,axisStride:y}=aA(o,Q,n,C,u);if(P(t)){let f=i,c=s;for(let m=0;m<u;m++){let l=D[m],w=f[l];l+=y;for(let h=1;h<E;h++){let b=f[l];b<w&&(w=b),l+=y}c[m]=w}}else for(let f=0;f<u;f++){let c=1/0,m=D[f];for(let l=0;l<E;l++){let w=Number(i[m]);w<c&&(c=w),m+=y}s[f]=c}if(I){let f=[...o];return f[C]=1,d.fromData(s,f,t)}return B}function sr(A,r,I,t){return A<I?-1:A>I?1:r<t?-1:r>t?1:0}function uQ(A,r){let I=A.dtype,t=k(I),o=A.shape,e=o.length,g=A.size,i=A.data,n=A.offset,Q=A.strides,C=A.isCContiguous;if(r===void 0){let c=CF(A);if(c!==null)return c;if(g===0)throw new Error("argmin of empty array");if(t)if(C){let m=i,l=m[n*2],w=m[n*2+1],h=0;for(let b=1;b<g;b++){let p=m[(n+b)*2],N=m[(n+b)*2+1];sr(p,N,l,w)<0&&(l=p,w=N,h=b)}return h}else{let m=A.iget(0),l=m.re,w=m.im,h=0;for(let b=1;b<g;b++){let p=A.iget(b);sr(p.re,p.im,l,w)<0&&(l=p.re,w=p.im,h=b)}return h}if(C){let m=i[n],l=0;if(n===0)for(let w=1;w<g;w++)i[w]<m&&(m=i[w],l=w);else for(let w=1;w<g;w++)i[n+w]<m&&(m=i[n+w],l=w);return l}else{let m=A.iget(0),l=0;for(let w=1;w<g;w++){let h=A.iget(w);h<m&&(m=h,l=w)}return l}}let a=r;if(a<0&&(a=e+a),a<0||a>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let B=Array.from(o).filter((c,m)=>m!==a);if(B.length===0)return uQ(A);let s=d.zeros(B,"int32"),E=s.data,u=o[a],D=B.reduce((c,m)=>c*m,1),{baseOffsets:y,axisStride:f}=aA(o,Q,n,a,D);if(t){let c=i;for(let m=0;m<D;m++){let l=y[m],w=c[l*2],h=c[l*2+1],b=0;l+=f;for(let p=1;p<u;p++){let N=c[l*2],F=c[l*2+1];sr(N,F,w,h)<0&&(w=N,h=F,b=p),l+=f}E[m]=b}}else if(P(I)){let c=i;for(let m=0;m<D;m++){let l=y[m],w=c[l],h=0;l+=f;for(let b=1;b<u;b++){let p=c[l];p<w&&(w=p,h=b),l+=f}E[m]=h}}else for(let c=0;c<D;c++){let m=1/0,l=0,w=y[c];for(let h=0;h<u;h++){let b=Number(i[w]);b<m&&(m=b,l=h),w+=f}E[c]=l}return s}function cQ(A,r){let I=A.dtype,t=k(I),o=A.shape,e=o.length,g=A.size,i=A.data,n=A.offset,Q=A.strides,C=A.isCContiguous;if(r===void 0){let c=rF(A);if(c!==null)return c;if(g===0)throw new Error("argmax of empty array");if(t)if(C){let m=i,l=m[n*2],w=m[n*2+1],h=0;for(let b=1;b<g;b++){let p=m[(n+b)*2],N=m[(n+b)*2+1];sr(p,N,l,w)>0&&(l=p,w=N,h=b)}return h}else{let m=A.iget(0),l=m.re,w=m.im,h=0;for(let b=1;b<g;b++){let p=A.iget(b);sr(p.re,p.im,l,w)>0&&(l=p.re,w=p.im,h=b)}return h}if(C){let m=i[n],l=0;for(let w=1;w<g;w++)i[n+w]>m&&(m=i[n+w],l=w);return l}else{let m=A.iget(0),l=0;for(let w=1;w<g;w++){let h=A.iget(w);h>m&&(m=h,l=w)}return l}}let a=r;if(a<0&&(a=e+a),a<0||a>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let B=Array.from(o).filter((c,m)=>m!==a);if(B.length===0)return cQ(A);let s=d.zeros(B,"int32"),E=s.data,u=o[a],D=B.reduce((c,m)=>c*m,1),{baseOffsets:y,axisStride:f}=aA(o,Q,n,a,D);if(t){let c=i;for(let m=0;m<D;m++){let l=y[m],w=c[l*2],h=c[l*2+1],b=0;l+=f;for(let p=1;p<u;p++){let N=c[l*2],F=c[l*2+1];sr(N,F,w,h)>0&&(w=N,h=F,b=p),l+=f}E[m]=b}}else if(P(I)){let c=i;for(let m=0;m<D;m++){let l=y[m],w=c[l],h=0;l+=f;for(let b=1;b<u;b++){let p=c[l];p>w&&(w=p,h=b),l+=f}E[m]=h}}else for(let c=0;c<D;c++){let m=-1/0,l=0,w=y[c];for(let h=0;h<u;h++){let b=Number(i[w]);b>m&&(m=b,l=h),w+=f}E[c]=l}return s}function Ze(A,r,I=0,t=!1){let o=A.dtype,e=A.shape,g=e.length,i=A.size,n=A.data,Q=A.offset,C=A.strides,a=nt(A,r,t),B=A.isCContiguous;if(r===void 0){let h=KF(A);if(h!==null)return h;if(k(o)){let F=a,S=0;if(B){let M=n;for(let Y=0;Y<i;Y++){let L=M[(Q+Y)*2],v=M[(Q+Y)*2+1],Z=L-F.re,O=v-F.im;S+=Z*Z+O*O}}else for(let M=0;M<i;M++){let Y=A.iget(M),L=Y.re-F.re,v=Y.im-F.im;S+=L*L+v*v}return S/(i-I)}let b=a,p=dr(o);if(p){if(p[0]=0,B)for(let F=0;F<i;F++){let S=Number(n[Q+F])-b;p[0]+=S*S}else for(let F=0;F<i;F++){let S=Number(A.iget(F))-b;p[0]+=S*S}return p[0]/=i-I,p[0]}let N=0;if(B)for(let F=0;F<i;F++){let S=Number(n[Q+F])-b;N+=S*S}else for(let F=0;F<i;F++){let S=Number(A.iget(F))-b;N+=S*S}return N/(i-I)}let s=r;if(s<0&&(s=g+s),s<0||s>=g)throw new Error(`axis ${r} is out of bounds for array of dimension ${g}`);let E=e[s],u=a,D=u.data,y=t?u.shape:Array.from(e).filter((h,b)=>b!==s),f=d.zeros(Array.from(y),"float64"),c=f.data,m=y.reduce((h,b)=>h*b,1),{baseOffsets:l,axisStride:w}=aA(e,C,Q,s,m);if(k(o)){let h=n,b=D;for(let p=0;p<m;p++){let N=0,F=b[p*2],S=b[p*2+1],M=l[p];for(let Y=0;Y<E;Y++){let L=h[M*2],v=h[M*2+1],Z=L-F,O=v-S;N+=Z*Z+O*O,M+=w}c[p]=N/(E-I)}}else{let h=dr(o);if(h){let b=iA(o),p=new b(m);for(let N=0;N<m;N++){h[0]=0;let F=Number(D[N]),S=l[N];for(let M=0;M<E;M++){let Y=Number(n[S])-F;h[0]+=Y*Y,S+=w}h[0]/=E-I,p[N]=h[0]}return d.fromData(p,Array.from(y),o)}for(let b=0;b<m;b++){let p=0,N=Number(D[b]),F=l[b];for(let S=0;S<E;S++){let M=Number(n[F])-N;p+=M*M,F+=w}c[b]=p/(E-I)}}return f}function zu(A,r,I=0,t=!1){if(r===void 0&&I===0&&!t){let n=xG(A);if(n!==null)return n}let o=Ze(A,r,I,t);if(typeof o=="number")return Math.sqrt(o);let e=d.zeros(Array.from(o.shape),"float64"),g=o.data,i=e.data;for(let n=0;n<g.length;n++)i[n]=Math.sqrt(Number(g[n]));return e}function DQ(A,r,I=!1){let t=A.shape,o=t.length,e=A.size,g=A.data,i=A.offset,n=A.strides,Q=A.isCContiguous;if(r===void 0){let f=bG(A);if(f!==null)return f===1;if(Q){for(let c=0;c<e;c++)if(!g[i+c])return!1}else for(let c=0;c<e;c++)if(!A.iget(c))return!1;return!0}let C=r;if(C<0&&(C=o+C),C<0||C>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((f,c)=>c!==C);if(a.length===0){let f=DQ(A);if(!I)return f;let c=d.zeros(Array(o).fill(1),"bool");return c.iset(0,f?1:0),c}let B=d.zeros(a,"bool"),s=B.data,E=t[C],u=a.reduce((f,c)=>f*c,1),{baseOffsets:D,axisStride:y}=aA(t,n,i,C,u);for(let f=0;f<u;f++){let c=!0,m=D[f];for(let l=0;l<E;l++){if(!g[m]){c=!1;break}m+=y}s[f]=c?1:0}if(I){let f=[...t];return f[C]=1,d.fromData(s,f,"bool")}return B}function fQ(A,r,I=!1){let t=A.shape,o=t.length,e=A.size,g=A.data,i=A.offset,n=A.strides,Q=A.isCContiguous;if(r===void 0){let f=wG(A);if(f!==null)return f===1;if(Q){for(let c=0;c<e;c++)if(g[i+c])return!0}else for(let c=0;c<e;c++)if(A.iget(c))return!0;return!1}let C=r;if(C<0&&(C=o+C),C<0||C>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((f,c)=>c!==C);if(a.length===0){let f=fQ(A);if(!I)return f;let c=d.zeros(Array(o).fill(1),"bool");return c.iset(0,f?1:0),c}let B=d.zeros(a,"bool"),s=B.data,E=t[C],u=a.reduce((f,c)=>f*c,1),{baseOffsets:D,axisStride:y}=aA(t,n,i,C,u);for(let f=0;f<u;f++){let c=!1,m=D[f];for(let l=0;l<E;l++){if(g[m]){c=!0;break}m+=y}s[f]=c?1:0}if(I){let f=[...t];return f[C]=1,d.fromData(s,f,"bool")}return B}function ju(A,r){let I=A.dtype,t=A.shape,o=t.length,e=A.data,g=A.offset,i=A.strides,n=A.isCContiguous;if(k(I)){let l=e,w=A.size;if(r===void 0){let O=d.zeros([w],I),z=O.data,j=0,V=0;if(n)for(let rA=0;rA<w;rA++)j+=l[(g+rA)*2],V+=l[(g+rA)*2+1],z[rA*2]=j,z[rA*2+1]=V;else for(let rA=0;rA<w;rA++){let oA=A.iget(rA);j+=oA.re,V+=oA.im,z[rA*2]=j,z[rA*2+1]=V}return O}let h=r;if(h<0&&(h=o+h),h<0||h>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let b=d.zeros([...t],I),p=b.data,N=t[h],F=Array.from(t).filter((O,z)=>z!==h),S=F.length===0?1:F.reduce((O,z)=>O*z,1),{baseOffsets:M,axisStride:Y}=aA(t,i,g,h,S),L=Fr(t),{baseOffsets:v,axisStride:Z}=aA(t,L,0,h,S);for(let O=0;O<S;O++){let z=M[O],j=v[O],V=0,rA=0;for(let oA=0;oA<N;oA++)V+=l[z*2],rA+=l[z*2+1],p[j*2]=V,p[j*2+1]=rA,z+=Y,j+=Z}return b}if(r===void 0){let l=A.size,w=dr(I);if(w){let p=iA(I),N=new p(l);if(w[0]=0,n)for(let F=0;F<l;F++)w[0]+=Number(e[g+F]),N[F]=w[0];else for(let F=0;F<l;F++)w[0]+=Number(A.iget(F)),N[F]=w[0];return d.fromData(N,[l],I)}let h=new Float64Array(l),b=0;if(n)for(let p=0;p<l;p++)b+=Number(e[g+p]),h[p]=b;else for(let p=0;p<l;p++)b+=Number(A.iget(p)),h[p]=b;return d.fromData(h,[l],"float64")}let Q=r;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let C=dr(I),a=C?iA(I):null,B=a?new a(A.size):new Float64Array(A.size),s=t[Q],E=Array.from(t).filter((l,w)=>w!==Q),u=E.length===0?1:E.reduce((l,w)=>l*w,1),{baseOffsets:D,axisStride:y}=aA(t,i,g,Q,u),f=Fr(t),{baseOffsets:c,axisStride:m}=aA(t,f,0,Q,u);if(C)for(let l=0;l<u;l++){let w=D[l],h=c[l];C[0]=0;for(let b=0;b<s;b++)C[0]+=Number(e[w]),B[h]=C[0],w+=y,h+=m}else for(let l=0;l<u;l++){let w=D[l],h=c[l],b=0;for(let p=0;p<s;p++)b+=Number(e[w]),B[h]=b,w+=y,h+=m}return d.fromData(B,[...t],C?I:"float64")}function $u(A,r){let I=A.dtype,t=A.shape,o=t.length,e=A.data,g=A.offset,i=A.strides,n=A.isCContiguous;if(k(I)){let c=e,m=A.size;if(r===void 0){let v=d.zeros([m],I),Z=v.data,O=1,z=0;if(n)for(let j=0;j<m;j++){let V=c[(g+j)*2],rA=c[(g+j)*2+1],oA=O*V-z*rA,QA=O*rA+z*V;O=oA,z=QA,Z[j*2]=O,Z[j*2+1]=z}else for(let j=0;j<m;j++){let V=A.iget(j),rA=V.re,oA=V.im,QA=O*rA-z*oA,dA=O*oA+z*rA;O=QA,z=dA,Z[j*2]=O,Z[j*2+1]=z}return v}let l=r;if(l<0&&(l=o+l),l<0||l>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let w=d.zeros([...t],I),h=w.data,b=t[l],p=Array.from(t).filter((v,Z)=>Z!==l),N=p.length===0?1:p.reduce((v,Z)=>v*Z,1),{baseOffsets:F,axisStride:S}=aA(t,i,g,l,N),M=Fr(t),{baseOffsets:Y,axisStride:L}=aA(t,M,0,l,N);for(let v=0;v<N;v++){let Z=F[v],O=Y[v],z=1,j=0;for(let V=0;V<b;V++){let rA=c[Z*2],oA=c[Z*2+1],QA=z*rA-j*oA,dA=z*oA+j*rA;z=QA,j=dA,h[O*2]=z,h[O*2+1]=j,Z+=S,O+=L}}return w}if(r===void 0){let c=A.size,m=new Float64Array(c),l=1;if(n)for(let w=0;w<c;w++)l*=Number(e[g+w]),m[w]=l;else for(let w=0;w<c;w++)l*=Number(A.iget(w)),m[w]=l;return d.fromData(m,[c],"float64")}let Q=r;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let C=new Float64Array(A.size),a=t[Q],B=Array.from(t).filter((c,m)=>m!==Q),s=B.length===0?1:B.reduce((c,m)=>c*m,1),{baseOffsets:E,axisStride:u}=aA(t,i,g,Q,s),D=Fr(t),{baseOffsets:y,axisStride:f}=aA(t,D,0,Q,s);for(let c=0;c<s;c++){let m=E[c],l=y[c],w=1;for(let h=0;h<a;h++)w*=Number(e[m]),C[l]=w,m+=u,l+=f}return d.fromData(C,[...t],"float64")}function LG(A,r,I=!1){let t=A.dtype;if(k(t)){let B=sI(A,r,I),s=EI(A,r,I);if(B instanceof X&&s instanceof X)return new X(B.re-s.re,B.im-s.im);let E=B,u=s,D=E.data,y=u.data,f=new Float64Array(E.size*2);for(let c=0;c<E.size;c++)f[c*2]=D[c*2]-y[c*2],f[c*2+1]=D[c*2+1]-y[c*2+1];return d.fromData(f,[...E.shape],t)}let o=sI(A,r,I),e=EI(A,r,I);if(typeof o=="number"&&typeof e=="number"){let B=o-e;if(t==="int8"||t==="int16"||t==="int32"||t==="uint8"||t==="uint16"||t==="uint32"){let s=d.zeros([1],t);return s.iset(0,B),Number(s.iget(0))}return B}let g=o,i=e,n=g.data,Q=i.data,C=d.zeros([...g.shape],t),a=C.data;for(let B=0;B<g.size;B++)a[B]=Number(n[B])-Number(Q[B]);return C}function yQ(A,r,I=!1){return Qt(A,.5,r,I)}function HG(A,r,I,t=!1){return Qt(A,r/100,I,t)}function Qt(A,r,I,t=!1){if(gA(A.dtype,"quantile","Complex numbers are not orderable."),r<0||r>1)throw new Error("Quantile must be between 0 and 1");let o=A.shape,e=o.length,g=A.data,i=A.offset,n=A.strides;if(I===void 0){let y=lG(A,r);if(y!==null)return y;let f=[];if(A.isCContiguous)for(let p=0;p<A.size;p++)f.push(Number(g[i+p]));else for(let p=0;p<A.size;p++)f.push(Number(A.iget(p)));f.sort((p,N)=>p-N);let m=f.length,l=r*(m-1),w=Math.floor(l),h=Math.ceil(l);if(w===h)return f[w];let b=l-w;return f[w]*(1-b)+f[h]*b}let Q=I;if(Q<0&&(Q=e+Q),Q<0||Q>=e)throw new Error(`axis ${I} is out of bounds for array of dimension ${e}`);let C=Array.from(o).filter((y,f)=>f!==Q);if(C.length===0){let y=Qt(A,r);if(!t)return y;let f=d.zeros(Array(e).fill(1),"float64");return f.iset(0,y),f}let a=C.reduce((y,f)=>y*f,1),B=o[Q],s=new Float64Array(a),{baseOffsets:E,axisStride:u}=aA(o,n,i,Q,a);for(let y=0;y<a;y++){let f=[],c=E[y];for(let b=0;b<B;b++)f.push(Number(g[c])),c+=u;f.sort((b,p)=>b-p);let m=f.length,l=r*(m-1),w=Math.floor(l),h=Math.ceil(l);if(w===h)s[y]=f[w];else{let b=l-w;s[y]=f[w]*(1-b)+f[h]*b}}let D=d.fromData(s,C,"float64");if(t){let y=[...o];return y[Q]=1,d.fromData(s,y,"float64")}return D}function BQ(A,r,I,t=!1){let o=A.dtype,e=A.shape,g=e.length,i=A.data,n=A.offset,Q=A.strides;if(I===void 0)return nt(A,r,t);if(k(o)){let m=i,l=I.data,w=I.offset;if(r===void 0){let L=0,v=0,Z=0;if(A.isCContiguous)for(let z=0;z<A.size;z++){let j=Number(l[w+z%I.size]),V=m[(n+z)*2],rA=m[(n+z)*2+1];L+=V*j,v+=rA*j,Z+=j}else for(let z=0;z<A.size;z++){let j=Number(l[w+z%I.size]),V=A.iget(z);L+=V.re*j,v+=V.im*j,Z+=j}return Z===0?new X(NaN,NaN):new X(L/Z,v/Z)}let h=r;if(h<0&&(h=g+h),h<0||h>=g)throw new Error(`axis ${r} is out of bounds for array of dimension ${g}`);let b=Array.from(e).filter((L,v)=>v!==h);if(b.length===0){let L=BQ(A,void 0,I);return t?vA(L,g,o):L}let p=b.reduce((L,v)=>L*v,1),N=e[h],F=d.zeros(b,o),S=F.data,{baseOffsets:M,axisStride:Y}=aA(e,Q,n,h,p);for(let L=0;L<p;L++){let v=0,Z=0,O=0,z=M[L];for(let j=0;j<N;j++){let V=Number(l[w+j%I.size]),rA=m[z*2],oA=m[z*2+1];v+=rA*V,Z+=oA*V,O+=V,z+=Y}O===0?(S[L*2]=NaN,S[L*2+1]=NaN):(S[L*2]=v/O,S[L*2+1]=Z/O)}if(t){let L=[...e];return L[h]=1,d.fromData(S,L,o)}return F}let C=I.offset;if(r===void 0){let m=0,l=0,w=I.data;if(A.isCContiguous)for(let b=0;b<A.size;b++){let p=Number(w[C+b%I.size]);m+=Number(i[n+b])*p,l+=p}else for(let b=0;b<A.size;b++){let p=Number(w[C+b%I.size]);m+=Number(A.iget(b))*p,l+=p}return l===0?NaN:Zu(m/l,o)}let a=r;if(a<0&&(a=g+a),a<0||a>=g)throw new Error(`axis ${r} is out of bounds for array of dimension ${g}`);let B=Array.from(e).filter((m,l)=>l!==a);if(B.length===0){let m=BQ(A,void 0,I);return t?vA(m,g,"float64"):m}let s=B.reduce((m,l)=>m*l,1),E=e[a],u=I.data,D=new Float64Array(s),{baseOffsets:y,axisStride:f}=aA(e,Q,n,a,s);for(let m=0;m<s;m++){let l=0,w=0,h=y[m];for(let b=0;b<E;b++){let p=Number(u[C+b%I.size]);l+=Number(i[h])*p,w+=p,h+=f}D[m]=w===0?NaN:l/w}let c=d.fromData(D,B,"float64");if(t){let m=[...e];return m[a]=1,d.fromData(D,m,"float64")}return c}function lA(A,r){return isNaN(A)||isNaN(r)}function mQ(A,r,I=!1){let t=A.dtype,o=k(t),e=A.shape,g=e.length,i=A.data,n=A.offset,Q=A.strides;if(!o&&!fA(t))return BI(A,r,I);if(r===void 0){let f=OF(A);if(f!==null)return f;if(o){let w=i,h=0,b=0;if(A.isCContiguous)for(let N=0;N<A.size;N++){let F=w[(n+N)*2],S=w[(n+N)*2+1];lA(F,S)||(h+=F,b+=S)}else for(let N=0;N<A.size;N++){let F=A.iget(N),S=F.re,M=F.im;lA(S,M)||(h+=S,b+=M)}return new X(h,b)}let c=dr(t);if(c){if(c[0]=0,A.isCContiguous)for(let h=0;h<A.size;h++){let b=Number(i[n+h]);isNaN(b)||(c[0]+=b)}else for(let h=0;h<A.size;h++){let b=Number(A.iget(h));isNaN(b)||(c[0]+=b)}return c[0]}let m=0;if(A.isCContiguous)for(let w=0;w<A.size;w++){let h=Number(i[n+w]);isNaN(h)||(m+=h)}else for(let w=0;w<A.size;w++){let h=Number(A.iget(w));isNaN(h)||(m+=h)}return m}let C=r;if(C<0&&(C=g+C),C<0||C>=g)throw new Error(`axis ${r} is out of bounds for array of dimension ${g}`);let a=Array.from(e).filter((f,c)=>c!==C);if(a.length===0){let f=mQ(A);return I?vA(f,g,t):f}let B=a.reduce((f,c)=>f*c,1),s=e[C],{baseOffsets:E,axisStride:u}=aA(e,Q,n,C,B);if(o){let f=i,c=new Float64Array(B*2);for(let m=0;m<B;m++){let l=0,w=0,h=E[m];for(let b=0;b<s;b++){let p=f[h*2],N=f[h*2+1];lA(p,N)||(l+=p,w+=N),h+=u}c[m*2]=l,c[m*2+1]=w}if(I){let m=[...e];return m[C]=1,d.fromData(c,m,t)}return d.fromData(c,a,t)}let D=new Float64Array(B);for(let f=0;f<B;f++){let c=0,m=E[f];for(let l=0;l<s;l++){let w=Number(i[m]);isNaN(w)||(c+=w),m+=u}D[f]=c}let y=d.fromData(D,a,"float64");if(I){let f=[...e];return f[C]=1,d.fromData(D,f,"float64")}return y}function lQ(A,r,I=!1){let t=A.dtype,o=k(t);if(!o&&!fA(t))return We(A,r,I);let e=A.shape,g=e.length,i=A.data,n=A.offset,Q=A.strides;if(r===void 0){if(o){let m=i,l=1,w=0;if(A.isCContiguous)for(let b=0;b<A.size;b++){let p=m[(n+b)*2],N=m[(n+b)*2+1];if(!lA(p,N)){let F=l*p-w*N,S=l*N+w*p;l=F,w=S}}else for(let b=0;b<A.size;b++){let p=A.iget(b),N=p.re,F=p.im;if(!lA(N,F)){let S=l*N-w*F,M=l*F+w*N;l=S,w=M}}return new X(l,w)}let f=1;if(A.isCContiguous)for(let m=0;m<A.size;m++){let l=Number(i[n+m]);isNaN(l)||(f*=l)}else for(let m=0;m<A.size;m++){let l=Number(A.iget(m));isNaN(l)||(f*=l)}return f}let C=r;if(C<0&&(C=g+C),C<0||C>=g)throw new Error(`axis ${r} is out of bounds for array of dimension ${g}`);let a=Array.from(e).filter((f,c)=>c!==C);if(a.length===0){let f=lQ(A);return I?vA(f,g,t):f}let B=a.reduce((f,c)=>f*c,1),s=e[C],{baseOffsets:E,axisStride:u}=aA(e,Q,n,C,B);if(o){let f=i,c=new Float64Array(B*2);for(let m=0;m<B;m++){let l=1,w=0,h=E[m];for(let b=0;b<s;b++){let p=f[h*2],N=f[h*2+1];if(!lA(p,N)){let F=l*p-w*N,S=l*N+w*p;l=F,w=S}h+=u}c[m*2]=l,c[m*2+1]=w}if(I){let m=[...e];return m[C]=1,d.fromData(c,m,t)}return d.fromData(c,a,t)}let D=new Float64Array(B);for(let f=0;f<B;f++){let c=1,m=E[f];for(let l=0;l<s;l++){let w=Number(i[m]);isNaN(w)||(c*=w),m+=u}D[f]=c}let y=d.fromData(D,a,"float64");if(I){let f=[...e];return f[C]=1,d.fromData(D,f,"float64")}return y}function hQ(A,r,I=!1){let t=A.dtype,o=k(t);if(!o&&!fA(t))return nt(A,r,I);let e=A.shape,g=e.length,i=A.data,n=A.offset,Q=A.strides;if(r===void 0){if(o){let w=i,h=0,b=0,p=0;if(A.isCContiguous)for(let F=0;F<A.size;F++){let S=w[(n+F)*2],M=w[(n+F)*2+1];lA(S,M)||(h+=S,b+=M,p++)}else for(let F=0;F<A.size;F++){let S=A.iget(F),M=S.re,Y=S.im;lA(M,Y)||(h+=M,b+=Y,p++)}return p===0?new X(NaN,NaN):new X(h/p,b/p)}let f=dr(t),c=0,m=A.isCContiguous;if(f){if(f[0]=0,m)for(let w=0;w<A.size;w++){let h=Number(i[n+w]);isNaN(h)||(f[0]+=h,c++)}else for(let w=0;w<A.size;w++){let h=Number(A.iget(w));isNaN(h)||(f[0]+=h,c++)}return c===0?NaN:(f[0]/=c,f[0])}let l=0;if(m)for(let w=0;w<A.size;w++){let h=Number(i[n+w]);isNaN(h)||(l+=h,c++)}else for(let w=0;w<A.size;w++){let h=Number(A.iget(w));isNaN(h)||(l+=h,c++)}return c===0?NaN:l/c}let C=r;if(C<0&&(C=g+C),C<0||C>=g)throw new Error(`axis ${r} is out of bounds for array of dimension ${g}`);let a=Array.from(e).filter((f,c)=>c!==C);if(a.length===0){let f=hQ(A);return I?vA(f,g,t):f}let B=a.reduce((f,c)=>f*c,1),s=e[C],{baseOffsets:E,axisStride:u}=aA(e,Q,n,C,B);if(o){let f=i,c=new Float64Array(B*2);for(let m=0;m<B;m++){let l=0,w=0,h=0,b=E[m];for(let p=0;p<s;p++){let N=f[b*2],F=f[b*2+1];lA(N,F)||(l+=N,w+=F,h++),b+=u}h===0?(c[m*2]=NaN,c[m*2+1]=NaN):(c[m*2]=l/h,c[m*2+1]=w/h)}if(I){let m=[...e];return m[C]=1,d.fromData(c,m,t)}return d.fromData(c,a,t)}let D=new Float64Array(B);for(let f=0;f<B;f++){let c=0,m=0,l=E[f];for(let w=0;w<s;w++){let h=Number(i[l]);isNaN(h)||(c+=h,m++),l+=u}D[f]=m===0?NaN:c/m}let y=d.fromData(D,a,"float64");if(I){let f=[...e];return f[C]=1,d.fromData(D,f,"float64")}return y}function it(A,r,I=0,t=!1){let o=A.dtype;if(!k(o)&&!fA(o))return Ze(A,r,I,t);let e=A.shape,g=e.length,i=A.data,n=A.offset,Q=A.strides;if(k(o)){let f=i;if(r===void 0){let F=0,S=0,M=0,Y=A.isCContiguous;if(Y)for(let O=0;O<A.size;O++){let z=f[(n+O)*2],j=f[(n+O)*2+1];lA(z,j)||(F+=z,S+=j,M++)}else for(let O=0;O<A.size;O++){let z=A.iget(O),j=z.re,V=z.im;lA(j,V)||(F+=j,S+=V,M++)}if(M-I<=0)return NaN;let L=F/M,v=S/M,Z=0;if(Y)for(let O=0;O<A.size;O++){let z=f[(n+O)*2],j=f[(n+O)*2+1];if(!lA(z,j)){let V=z-L,rA=j-v;Z+=V*V+rA*rA}}else for(let O=0;O<A.size;O++){let z=A.iget(O),j=z.re,V=z.im;if(!lA(j,V)){let rA=j-L,oA=V-v;Z+=rA*rA+oA*oA}}return Z/(M-I)}let c=r;if(c<0&&(c=g+c),c<0||c>=g)throw new Error(`axis ${r} is out of bounds for array of dimension ${g}`);let m=Array.from(e).filter((F,S)=>S!==c);if(m.length===0){let F=it(A,void 0,I);return t?vA(F,g,"float64"):F}let l=m.reduce((F,S)=>F*S,1),w=e[c],h=new Float64Array(l),{baseOffsets:b,axisStride:p}=aA(e,Q,n,c,l);for(let F=0;F<l;F++){let S=0,M=0,Y=0,L=b[F];for(let z=0;z<w;z++){let j=f[L*2],V=f[L*2+1];lA(j,V)||(S+=j,M+=V,Y++),L+=p}if(Y-I<=0){h[F]=NaN;continue}let v=S/Y,Z=M/Y,O=0;L=b[F];for(let z=0;z<w;z++){let j=f[L*2],V=f[L*2+1];if(!lA(j,V)){let rA=j-v,oA=V-Z;O+=rA*rA+oA*oA}L+=p}h[F]=O/(Y-I)}let N=d.fromData(h,m,"float64");if(t){let F=[...e];return F[c]=1,d.fromData(h,F,"float64")}return N}if(r===void 0){let f=0,c=0,m=A.isCContiguous;if(m)for(let h=0;h<A.size;h++){let b=Number(i[n+h]);isNaN(b)||(f+=b,c++)}else for(let h=0;h<A.size;h++){let b=Number(A.iget(h));isNaN(b)||(f+=b,c++)}if(c-I<=0)return NaN;let l=f/c,w=0;if(m)for(let h=0;h<A.size;h++){let b=Number(i[n+h]);isNaN(b)||(w+=(b-l)**2)}else for(let h=0;h<A.size;h++){let b=Number(A.iget(h));isNaN(b)||(w+=(b-l)**2)}return w/(c-I)}let C=r;if(C<0&&(C=g+C),C<0||C>=g)throw new Error(`axis ${r} is out of bounds for array of dimension ${g}`);let a=Array.from(e).filter((f,c)=>c!==C);if(a.length===0){let f=it(A,void 0,I);return t?vA(f,g,"float64"):f}let B=a.reduce((f,c)=>f*c,1),s=e[C],E=new Float64Array(B),{baseOffsets:u,axisStride:D}=aA(e,Q,n,C,B);for(let f=0;f<B;f++){let c=0,m=0,l=u[f];for(let b=0;b<s;b++){let p=Number(i[l]);isNaN(p)||(c+=p,m++),l+=D}if(m-I<=0){E[f]=NaN;continue}let w=c/m,h=0;l=u[f];for(let b=0;b<s;b++){let p=Number(i[l]);isNaN(p)||(h+=(p-w)**2),l+=D}E[f]=h/(m-I)}let y=d.fromData(E,a,"float64");if(t){let f=[...e];return f[C]=1,d.fromData(E,f,"float64")}return y}function Ac(A,r,I=0,t=!1){let o=it(A,r,I,t);if(typeof o=="number")return Math.sqrt(o);let e=o,g=new Float64Array(e.size);for(let i=0;i<e.size;i++)g[i]=Math.sqrt(Number(e.data[i]));return d.fromData(g,[...e.shape],"float64")}function Oe(A,r,I=!1){let t=A.dtype,o=A.shape,e=o.length,g=A.data,i=A.offset,n=A.strides;if(!k(t)&&!fA(t))return EI(A,r,I);if(k(t)){let y=g;if(r===void 0){let N=1/0,F=1/0,S=!1;if(A.isCContiguous)for(let Y=0;Y<A.size;Y++){let L=y[(i+Y)*2],v=y[(i+Y)*2+1];isNaN(L)||isNaN(v)||(S?(L<N||L===N&&v<F)&&(N=L,F=v):(N=L,F=v,S=!0))}else for(let Y=0;Y<A.size;Y++){let L=A.iget(Y),v=L.re,Z=L.im;isNaN(v)||isNaN(Z)||(S?(v<N||v===N&&Z<F)&&(N=v,F=Z):(N=v,F=Z,S=!0))}return S?new X(N,F):new X(NaN,NaN)}let f=r;if(f<0&&(f=e+f),f<0||f>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let c=Array.from(o).filter((N,F)=>F!==f);if(c.length===0){let N=Oe(A);return I?vA(N,e,t):N}let m=c.reduce((N,F)=>N*F,1),l=o[f],w=new Float64Array(m*2),{baseOffsets:h,axisStride:b}=aA(o,n,i,f,m);for(let N=0;N<m;N++){let F=1/0,S=1/0,M=!1,Y=h[N];for(let L=0;L<l;L++){let v=y[Y*2],Z=y[Y*2+1];Y+=b,!(isNaN(v)||isNaN(Z))&&(M?(v<F||v===F&&Z<S)&&(F=v,S=Z):(F=v,S=Z,M=!0))}w[N*2]=M?F:NaN,w[N*2+1]=M?S:NaN}let p=d.fromData(w,c,t);if(I){let N=[...o];return N[f]=1,d.fromData(w,N,t)}return p}if(r===void 0){let y=ZF(A);if(y!==null)return y;let f=1/0;if(A.isCContiguous)for(let m=0;m<A.size;m++){let l=Number(g[i+m]);!isNaN(l)&&l<f&&(f=l)}else for(let m=0;m<A.size;m++){let l=Number(A.iget(m));!isNaN(l)&&l<f&&(f=l)}return f===1/0?NaN:f}let Q=r;if(Q<0&&(Q=e+Q),Q<0||Q>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let C=Array.from(o).filter((y,f)=>f!==Q);if(C.length===0){let y=Oe(A);return I?vA(y,e,"float64"):y}let a=C.reduce((y,f)=>y*f,1),B=o[Q],s=new Float64Array(a),{baseOffsets:E,axisStride:u}=aA(o,n,i,Q,a);for(let y=0;y<a;y++){let f=1/0,c=E[y];for(let m=0;m<B;m++){let l=Number(g[c]);!isNaN(l)&&l<f&&(f=l),c+=u}s[y]=f===1/0?NaN:f}let D=d.fromData(s,C,"float64");if(I){let y=[...o];return y[Q]=1,d.fromData(s,y,"float64")}return D}function Ve(A,r,I=!1){let t=A.dtype,o=A.shape,e=o.length,g=A.data,i=A.offset,n=A.strides;if(!k(t)&&!fA(t))return sI(A,r,I);if(k(t)){let y=g;if(r===void 0){let N=-1/0,F=-1/0,S=!1;if(A.isCContiguous)for(let Y=0;Y<A.size;Y++){let L=y[(i+Y)*2],v=y[(i+Y)*2+1];isNaN(L)||isNaN(v)||(S?(L>N||L===N&&v>F)&&(N=L,F=v):(N=L,F=v,S=!0))}else for(let Y=0;Y<A.size;Y++){let L=A.iget(Y),v=L.re,Z=L.im;isNaN(v)||isNaN(Z)||(S?(v>N||v===N&&Z>F)&&(N=v,F=Z):(N=v,F=Z,S=!0))}return S?new X(N,F):new X(NaN,NaN)}let f=r;if(f<0&&(f=e+f),f<0||f>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let c=Array.from(o).filter((N,F)=>F!==f);if(c.length===0){let N=Ve(A);return I?vA(N,e,t):N}let m=c.reduce((N,F)=>N*F,1),l=o[f],w=new Float64Array(m*2),{baseOffsets:h,axisStride:b}=aA(o,n,i,f,m);for(let N=0;N<m;N++){let F=-1/0,S=-1/0,M=!1,Y=h[N];for(let L=0;L<l;L++){let v=y[Y*2],Z=y[Y*2+1];Y+=b,!(isNaN(v)||isNaN(Z))&&(M?(v>F||v===F&&Z>S)&&(F=v,S=Z):(F=v,S=Z,M=!0))}w[N*2]=M?F:NaN,w[N*2+1]=M?S:NaN}let p=d.fromData(w,c,t);if(I){let N=[...o];return N[f]=1,d.fromData(w,N,t)}return p}if(r===void 0){let y=$F(A);if(y!==null)return y;let f=-1/0;if(A.isCContiguous)for(let m=0;m<A.size;m++){let l=Number(g[i+m]);!isNaN(l)&&l>f&&(f=l)}else for(let m=0;m<A.size;m++){let l=Number(A.iget(m));!isNaN(l)&&l>f&&(f=l)}return f===-1/0?NaN:f}let Q=r;if(Q<0&&(Q=e+Q),Q<0||Q>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let C=Array.from(o).filter((y,f)=>f!==Q);if(C.length===0){let y=Ve(A);return I?vA(y,e,"float64"):y}let a=C.reduce((y,f)=>y*f,1),B=o[Q],s=new Float64Array(a),{baseOffsets:E,axisStride:u}=aA(o,n,i,Q,a);for(let y=0;y<a;y++){let f=-1/0,c=E[y];for(let m=0;m<B;m++){let l=Number(g[c]);!isNaN(l)&&l>f&&(f=l),c+=u}s[y]=f===-1/0?NaN:f}let D=d.fromData(s,C,"float64");if(I){let y=[...o];return y[Q]=1,d.fromData(s,y,"float64")}return D}function sQ(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return uQ(A,r);let t=A.shape,o=t.length,e=A.data,g=A.offset,i=A.strides;if(k(I)){let u=e;if(r===void 0){let h=1/0,b=1/0,p=-1;if(A.isCContiguous)for(let F=0;F<A.size;F++){let S=u[(g+F)*2],M=u[(g+F)*2+1];!lA(S,M)&&sr(S,M,h,b)<0&&(h=S,b=M,p=F)}else for(let F=0;F<A.size;F++){let S=A.iget(F),M=S.re,Y=S.im;!lA(M,Y)&&sr(M,Y,h,b)<0&&(h=M,b=Y,p=F)}return p}let D=r;if(D<0&&(D=o+D),D<0||D>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let y=Array.from(t).filter((h,b)=>b!==D);if(y.length===0)return sQ(A);let f=y.reduce((h,b)=>h*b,1),c=t[D],m=new Int32Array(f),{baseOffsets:l,axisStride:w}=aA(t,i,g,D,f);for(let h=0;h<f;h++){let b=1/0,p=1/0,N=0,F=l[h];for(let S=0;S<c;S++){let M=u[F*2],Y=u[F*2+1];!lA(M,Y)&&sr(M,Y,b,p)<0&&(b=M,p=Y,N=S),F+=w}m[h]=N}return d.fromData(m,y,"int32")}if(r===void 0){let u=1/0,D=-1;if(A.isCContiguous)for(let f=0;f<A.size;f++){let c=Number(e[g+f]);!isNaN(c)&&c<u&&(u=c,D=f)}else for(let f=0;f<A.size;f++){let c=Number(A.iget(f));!isNaN(c)&&c<u&&(u=c,D=f)}return D}let n=r;if(n<0&&(n=o+n),n<0||n>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let Q=Array.from(t).filter((u,D)=>D!==n);if(Q.length===0)return sQ(A);let C=Q.reduce((u,D)=>u*D,1),a=t[n],B=new Int32Array(C),{baseOffsets:s,axisStride:E}=aA(t,i,g,n,C);for(let u=0;u<C;u++){let D=1/0,y=0,f=s[u];for(let c=0;c<a;c++){let m=Number(e[f]);!isNaN(m)&&m<D&&(D=m,y=c),f+=E}B[u]=y}return d.fromData(B,Q,"int32")}function EQ(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return cQ(A,r);let t=A.shape,o=t.length,e=A.data,g=A.offset,i=A.strides;if(k(I)){let u=e;if(r===void 0){let h=-1/0,b=-1/0,p=-1;if(A.isCContiguous)for(let F=0;F<A.size;F++){let S=u[(g+F)*2],M=u[(g+F)*2+1];!lA(S,M)&&sr(S,M,h,b)>0&&(h=S,b=M,p=F)}else for(let F=0;F<A.size;F++){let S=A.iget(F),M=S.re,Y=S.im;!lA(M,Y)&&sr(M,Y,h,b)>0&&(h=M,b=Y,p=F)}return p}let D=r;if(D<0&&(D=o+D),D<0||D>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let y=Array.from(t).filter((h,b)=>b!==D);if(y.length===0)return EQ(A);let f=y.reduce((h,b)=>h*b,1),c=t[D],m=new Int32Array(f),{baseOffsets:l,axisStride:w}=aA(t,i,g,D,f);for(let h=0;h<f;h++){let b=-1/0,p=-1/0,N=0,F=l[h];for(let S=0;S<c;S++){let M=u[F*2],Y=u[F*2+1];!lA(M,Y)&&sr(M,Y,b,p)>0&&(b=M,p=Y,N=S),F+=w}m[h]=N}return d.fromData(m,y,"int32")}if(r===void 0){let u=-1/0,D=-1;if(A.isCContiguous)for(let f=0;f<A.size;f++){let c=Number(e[g+f]);!isNaN(c)&&c>u&&(u=c,D=f)}else for(let f=0;f<A.size;f++){let c=Number(A.iget(f));!isNaN(c)&&c>u&&(u=c,D=f)}return D}let n=r;if(n<0&&(n=o+n),n<0||n>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let Q=Array.from(t).filter((u,D)=>D!==n);if(Q.length===0)return EQ(A);let C=Q.reduce((u,D)=>u*D,1),a=t[n],B=new Int32Array(C),{baseOffsets:s,axisStride:E}=aA(t,i,g,n,C);for(let u=0;u<C;u++){let D=-1/0,y=0,f=s[u];for(let c=0;c<a;c++){let m=Number(e[f]);!isNaN(m)&&m>D&&(D=m,y=c),f+=E}B[u]=y}return d.fromData(B,Q,"int32")}function YG(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return ju(A,r);let t=A.shape,o=t.length,e=A.data,g=A.offset;if(k(I)){let u=e,D=A.size;if(r===void 0){let N=d.zeros([D],I),F=N.data,S=0,M=0;if(A.isCContiguous)for(let L=0;L<D;L++){let v=u[(g+L)*2],Z=u[(g+L)*2+1];lA(v,Z)||(S+=v,M+=Z),F[L*2]=S,F[L*2+1]=M}else for(let L=0;L<D;L++){let v=A.iget(L),Z=v.re,O=v.im;lA(Z,O)||(S+=Z,M+=O),F[L*2]=S,F[L*2+1]=M}return N}let y=r;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let f=d.zeros([...t],I),c=f.data,m=t[y],l=[],w=1;for(let N=o-1;N>=0;N--)l.unshift(w),w*=t[N];let h=A.size,b=l[y];if(A.isCContiguous)for(let N=0;N<h;N++){let F=u[(g+N)*2],S=u[(g+N)*2+1],M=Math.floor(N/b)%m,Y=lA(F,S);M===0?(c[N*2]=Y?0:F,c[N*2+1]=Y?0:S):(c[N*2]=c[(N-b)*2]+(Y?0:F),c[N*2+1]=c[(N-b)*2+1]+(Y?0:S))}else for(let N=0;N<h;N++){let F=A.iget(N),S=F.re,M=F.im,Y=Math.floor(N/b)%m,L=lA(S,M);Y===0?(c[N*2]=L?0:S,c[N*2+1]=L?0:M):(c[N*2]=c[(N-b)*2]+(L?0:S),c[N*2+1]=c[(N-b)*2+1]+(L?0:M))}return f}if(r===void 0){let u=A.size,D=new Float64Array(u),y=0;if(A.isCContiguous)for(let c=0;c<u;c++){let m=Number(e[g+c]);isNaN(m)||(y+=m),D[c]=y}else for(let c=0;c<u;c++){let m=Number(A.iget(c));isNaN(m)||(y+=m),D[c]=y}return d.fromData(D,[u],"float64")}let i=r;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let n=new Float64Array(A.size),Q=t[i],C=[],a=1;for(let u=o-1;u>=0;u--)C.unshift(a),a*=t[u];let B=A.size,s=C[i];if(A.isCContiguous)for(let u=0;u<B;u++){let D=Number(e[g+u]);Math.floor(u/s)%Q===0?n[u]=isNaN(D)?0:D:n[u]=n[u-s]+(isNaN(D)?0:D)}else for(let u=0;u<B;u++){let D=Number(A.iget(u));Math.floor(u/s)%Q===0?n[u]=isNaN(D)?0:D:n[u]=n[u-s]+(isNaN(D)?0:D)}return d.fromData(n,[...t],"float64")}function PG(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return $u(A,r);let t=A.shape,o=t.length,e=A.data,g=A.offset;if(k(I)){let u=e,D=A.size;if(r===void 0){let N=d.zeros([D],I),F=N.data,S=1,M=0;if(A.isCContiguous)for(let L=0;L<D;L++){let v=u[(g+L)*2],Z=u[(g+L)*2+1];if(!lA(v,Z)){let O=S*v-M*Z,z=S*Z+M*v;S=O,M=z}F[L*2]=S,F[L*2+1]=M}else for(let L=0;L<D;L++){let v=A.iget(L),Z=v.re,O=v.im;if(!lA(Z,O)){let z=S*Z-M*O,j=S*O+M*Z;S=z,M=j}F[L*2]=S,F[L*2+1]=M}return N}let y=r;if(y<0&&(y=o+y),y<0||y>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let f=d.zeros([...t],I),c=f.data,m=t[y],l=[],w=1;for(let N=o-1;N>=0;N--)l.unshift(w),w*=t[N];let h=A.size,b=l[y];if(A.isCContiguous)for(let N=0;N<h;N++){let F=u[(g+N)*2],S=u[(g+N)*2+1],M=Math.floor(N/b)%m,Y=lA(F,S);if(M===0)c[N*2]=Y?1:F,c[N*2+1]=Y?0:S;else{let L=c[(N-b)*2],v=c[(N-b)*2+1];Y?(c[N*2]=L,c[N*2+1]=v):(c[N*2]=L*F-v*S,c[N*2+1]=L*S+v*F)}}else for(let N=0;N<h;N++){let F=A.iget(N),S=F.re,M=F.im,Y=Math.floor(N/b)%m,L=lA(S,M);if(Y===0)c[N*2]=L?1:S,c[N*2+1]=L?0:M;else{let v=c[(N-b)*2],Z=c[(N-b)*2+1];L?(c[N*2]=v,c[N*2+1]=Z):(c[N*2]=v*S-Z*M,c[N*2+1]=v*M+Z*S)}}return f}if(r===void 0){let u=A.size,D=new Float64Array(u),y=1;if(A.isCContiguous)for(let c=0;c<u;c++){let m=Number(e[g+c]);isNaN(m)||(y*=m),D[c]=y}else for(let c=0;c<u;c++){let m=Number(A.iget(c));isNaN(m)||(y*=m),D[c]=y}return d.fromData(D,[u],"float64")}let i=r;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let n=new Float64Array(A.size),Q=t[i],C=[],a=1;for(let u=o-1;u>=0;u--)C.unshift(a),a*=t[u];let B=A.size,s=C[i];if(A.isCContiguous)for(let u=0;u<B;u++){let D=Number(e[g+u]);Math.floor(u/s)%Q===0?n[u]=isNaN(D)?1:D:n[u]=n[u-s]*(isNaN(D)?1:D)}else for(let u=0;u<B;u++){let D=Number(A.iget(u));Math.floor(u/s)%Q===0?n[u]=isNaN(D)?1:D:n[u]=n[u-s]*(isNaN(D)?1:D)}return d.fromData(n,[...t],"float64")}function rc(A,r,I=!1){if(gA(A.dtype,"nanmedian","Complex numbers are not orderable."),!fA(A.dtype))return yQ(A,r,I);let t=A.shape,o=t.length,e=A.data,g=A.offset,i=A.strides;if(r===void 0){let D=[];if(A.isCContiguous)for(let m=0;m<A.size;m++){let l=Number(e[g+m]);isNaN(l)||D.push(l)}else for(let m=0;m<A.size;m++){let l=Number(A.iget(m));isNaN(l)||D.push(l)}if(D.length===0)return NaN;D.sort((m,l)=>m-l);let f=D.length,c=Math.floor(f/2);return f%2===0?(D[c-1]+D[c])/2:D[c]}let n=r;if(n<0&&(n=o+n),n<0||n>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let Q=Array.from(t).filter((D,y)=>y!==n);if(Q.length===0){let D=rc(A);return I?vA(D,o,"float64"):D}let C=Q.reduce((D,y)=>D*y,1),a=t[n],B=new Float64Array(C),{baseOffsets:s,axisStride:E}=aA(t,i,g,n,C);for(let D=0;D<C;D++){let y=[],f=s[D];for(let l=0;l<a;l++){let w=Number(e[f]);isNaN(w)||y.push(w),f+=E}if(y.length===0){B[D]=NaN;continue}y.sort((l,w)=>l-w);let c=y.length,m=Math.floor(c/2);c%2===0?B[D]=(y[m-1]+y[m])/2:B[D]=y[m]}let u=d.fromData(B,Q,"float64");if(I){let D=[...t];return D[n]=1,d.fromData(B,D,"float64")}return u}function wQ(A,r,I,t=!1){if(gA(A.dtype,"nanquantile","Complex numbers are not orderable."),!fA(A.dtype))return Qt(A,r,I,t);if(r<0||r>1)throw new Error("Quantile must be between 0 and 1");let o=A.shape,e=o.length,g=A.data,i=A.offset,n=A.strides;if(I===void 0){let y=[];if(A.isCContiguous)for(let b=0;b<A.size;b++){let p=Number(g[i+b]);isNaN(p)||y.push(p)}else for(let b=0;b<A.size;b++){let p=Number(A.iget(b));isNaN(p)||y.push(p)}if(y.length===0)return NaN;y.sort((b,p)=>b-p);let c=y.length,m=r*(c-1),l=Math.floor(m),w=Math.ceil(m);if(l===w)return y[l];let h=m-l;return y[l]*(1-h)+y[w]*h}let Q=I;if(Q<0&&(Q=e+Q),Q<0||Q>=e)throw new Error(`axis ${I} is out of bounds for array of dimension ${e}`);let C=Array.from(o).filter((y,f)=>f!==Q);if(C.length===0){let y=wQ(A,r);return t?vA(y,e,"float64"):y}let a=C.reduce((y,f)=>y*f,1),B=o[Q],s=new Float64Array(a),{baseOffsets:E,axisStride:u}=aA(o,n,i,Q,a);for(let y=0;y<a;y++){let f=[],c=E[y];for(let b=0;b<B;b++){let p=Number(g[c]);isNaN(p)||f.push(p),c+=u}if(f.length===0){s[y]=NaN;continue}f.sort((b,p)=>b-p);let m=f.length,l=r*(m-1),w=Math.floor(l),h=Math.ceil(l);if(w===h)s[y]=f[w];else{let b=l-w;s[y]=f[w]*(1-b)+f[h]*b}}let D=d.fromData(s,C,"float64");if(t){let y=[...o];return y[Q]=1,d.fromData(s,y,"float64")}return D}function _G(A,r,I,t=!1){return wQ(A,r/100,I,t)}function TA(A,r,I,t){let o=G(A).ndim,e=r.map(Q=>Q<0?o+Q:Q),g=[...e].sort((Q,C)=>C-Q),i=[...e].sort((Q,C)=>Q-C),n=G(A);for(let Q of g){let C=t(n,Q,!1);if(!(C instanceof d)){if(I){let a=Array(o).fill(1),B=d.zeros(a,n.dtype);return B.iset(0,C),q(B)}return C}n=C}if(I)for(let Q of i)n=mI(n,Q);return q(n)}function ze(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>BI(o,e,g));let t=BI(G(A),r,I);return typeof t=="number"||typeof t=="bigint"||t instanceof X?t:q(t)}function je(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>nt(o,e,g));let t=nt(G(A),r,I);return typeof t=="number"||t instanceof X?t:q(t)}function $e(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>We(o,e,g));let t=We(G(A),r,I);return typeof t=="number"||typeof t=="bigint"||t instanceof X?t:q(t)}function Ag(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>sI(o,e,g));let t=sI(G(A),r,I);return typeof t=="number"||t instanceof X?t:q(t)}var rg=Ag;function Ig(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>EI(o,e,g));let t=EI(G(A),r,I);return typeof t=="number"||t instanceof X?t:q(t)}var tg=Ig;function og(A,r,I){let t=LG(G(A),r,I);return typeof t=="number"||t instanceof X?t:q(t)}function eg(A,r){let I=uQ(G(A),r);return typeof I=="number"?I:q(I)}function gg(A,r){let I=cQ(G(A),r);return typeof I=="number"?I:q(I)}function bI(A,r,I,t){if(Array.isArray(r))return TA(A,r,t??!1,(e,g,i)=>Ze(e,g,I,i));let o=Ze(G(A),r,I,t);return typeof o=="number"?o:q(o)}var dQ=bI;function ig(A,r,I,t){if(Array.isArray(r))return TA(A,r,t??!1,(e,g,i)=>zu(e,g,I,i));let o=zu(G(A),r,I,t);return typeof o=="number"?o:q(o)}function ng(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>yQ(o,e,g));let t=yQ(G(A),r,I);return typeof t=="number"?t:q(t)}function Qg(A,r,I,t){let o=HG(G(A),r,I,t);return typeof o=="number"?o:q(o)}function Cg(A,r,I,t){let o=Qt(G(A),r,I,t);return typeof o=="number"?o:q(o)}function ag(A,r,I,t){let o=I?G(I):void 0,e=BQ(G(A),r,o,t);return typeof e=="number"||e instanceof X?e:q(e)}function Bg(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>DQ(o,e,g));let t=DQ(G(A),r,I);return typeof t=="boolean"?t:q(t)}function sg(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>fQ(o,e,g));let t=fQ(G(A),r,I);return typeof t=="boolean"?t:q(t)}function Eg(A,r){return q(ju(G(A),r))}function ug(A,r){return q($u(G(A),r))}function cg(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>mQ(o,e,g));let t=mQ(G(A),r,I);return typeof t=="number"||t instanceof X?t:q(t)}function Dg(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>lQ(o,e,g));let t=lQ(G(A),r,I);return typeof t=="number"||t instanceof X?t:q(t)}function fg(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>hQ(o,e,g));let t=hQ(G(A),r,I);return typeof t=="number"||t instanceof X?t:q(t)}function yg(A,r,I,t){if(Array.isArray(r))return TA(A,r,t??!1,(e,g,i)=>it(e,g,I,i));let o=it(G(A),r,I,t);return typeof o=="number"?o:q(o)}function mg(A,r,I,t){if(Array.isArray(r))return TA(A,r,t??!1,(e,g,i)=>Ac(e,g,I,i));let o=Ac(G(A),r,I,t);return typeof o=="number"?o:q(o)}function lg(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>Oe(o,e,g));let t=Oe(G(A),r,I);return typeof t=="number"||t instanceof X?t:q(t)}function hg(A,r,I){if(Array.isArray(r))return TA(A,r,I??!1,(o,e,g)=>Ve(o,e,g));let t=Ve(G(A),r,I);return typeof t=="number"||t instanceof X?t:q(t)}function wg(A,r){let I=sQ(G(A),r);return typeof I=="number"?I:q(I)}function dg(A,r){let I=EQ(G(A),r);return typeof I=="number"?I:q(I)}function bg(A,r){return q(YG(G(A),r))}function pg(A,r){return q(PG(G(A),r))}function Ng(A,r,I){let t=rc(G(A),r,I);return typeof t=="number"?t:q(t)}function Fg(A,r,I,t){let o=wQ(G(A),r,I,t);return typeof o=="number"?o:q(o)}function Gg(A,r,I,t){let o=_G(G(A),r,I,t);return typeof o=="number"?o:q(o)}var hv="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",Sg=null;function Er(){if(Sg)return Sg;let A=atob(hv),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Sg=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Sg.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Sg}function KG(A,r,I,t){Er().exports.logical_and_f64(A,r,I,t)}function vG(A,r,I,t){Er().exports.logical_and_scalar_f64(A,r,I,t)}function XG(A,r,I,t){Er().exports.logical_and_f32(A,r,I,t)}function TG(A,r,I,t){Er().exports.logical_and_scalar_f32(A,r,I,t)}function Ic(A,r,I,t){Er().exports.logical_and_i64(A,r,I,t)}function tc(A,r,I,t){Er().exports.logical_and_scalar_i64(A,r,I,BigInt(Math.round(t)))}function oc(A,r,I,t){Er().exports.logical_and_i32(A,r,I,t)}function ec(A,r,I,t){Er().exports.logical_and_scalar_i32(A,r,I,t)}function gc(A,r,I,t){Er().exports.logical_and_i16(A,r,I,t)}function ic(A,r,I,t){Er().exports.logical_and_scalar_i16(A,r,I,t)}function nc(A,r,I,t){Er().exports.logical_and_i8(A,r,I,t)}function Qc(A,r,I,t){Er().exports.logical_and_scalar_i8(A,r,I,t)}var OG=64,wv={float64:KG,float32:XG,int64:Ic,uint64:Ic,int32:oc,uint32:oc,int16:gc,uint16:gc,int8:nc,uint8:nc},dv={float64:vG,float32:TG,int64:tc,uint64:tc,int32:ec,uint32:ec,int16:ic,uint16:ic,int8:Qc,uint8:Qc},VG={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function WG(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<OG*K.thresholdMultiplier)return null;let t=A.dtype,o=wv[t],e=VG[t];if(!o||!e||r.dtype!==t)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g,Q=I;x(i+n+Q),U();let C=R(A.data.subarray(A.offset,A.offset+I)),a=R(r.data.subarray(r.offset,r.offset+I)),B=H(Q);o(C,a,B,I);let s=_(B,I,Uint8Array);return d.fromData(s,Array.from(A.shape),"bool")}function Cc(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<OG*K.thresholdMultiplier)return null;let t=A.dtype,o=dv[t],e=VG[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I;x(i+n),U();let Q=R(A.data.subarray(A.offset,A.offset+I)),C=H(n);o(Q,C,I,r);let a=_(C,I,Uint8Array);return d.fromData(a,Array.from(A.shape),"bool")}var bv="AGFzbQEAAAABHQRgBH9/f38AYAR/f398AGAEf39/fQBgBH9/f34AAg8BA2VudgZtZW1vcnkCABADDQwAAQACAAMAAAAAAAAGCQF/AUGAgMAACwf1AQwObG9naWNhbF9vcl9mNjQAABVsb2dpY2FsX29yX3NjYWxhcl9mNjQAAQ5sb2dpY2FsX29yX2YzMgACFWxvZ2ljYWxfb3Jfc2NhbGFyX2YzMgADDmxvZ2ljYWxfb3JfaTY0AAQVbG9naWNhbF9vcl9zY2FsYXJfaTY0AAUObG9naWNhbF9vcl9pMzIABhVsb2dpY2FsX29yX3NjYWxhcl9pMzIABw5sb2dpY2FsX29yX2kxNgAIFWxvZ2ljYWxfb3Jfc2NhbGFyX2kxNgAJDWxvZ2ljYWxfb3JfaTgAChRsb2dpY2FsX29yX3NjYWxhcl9pOAALCrsiDIYCAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBkEAIQUgASEHIAAhAwNAQQEhCEEBIQkCQCADKwMARAAAAAAAAAAAYg0AIAcrAwBEAAAAAAAAAABiIQkLIAIgBWoiCiAJOgAAAkAgA0EIaisDAEQAAAAAAAAAAGINACAHQQhqKwMARAAAAAAAAAAAYiEICyAKQQFqIAg6AAAgB0EQaiEHIANBEGohAyAGIAVBAmoiBUcNAAsLIARFDQAgAiAFaiEHQQEhAwJAIAAgBUEDdCIFaisDAEQAAAAAAAAAAGINACABIAVqKwMARAAAAAAAAAAAYiEDCyAHIAM6AAALC70DAgR/AXsCQAJAIANEAAAAAAAAAABiDQAgAkUNAUEAIQQCQCACQQhJDQACQCABIAAgAkEDdGpPDQAgACABIAJqSQ0BCyACQX5xIgQhBSAAIQYgASEHA0AgByAG/QADAP0MAAAAAAAAAAAAAAAAAAAAAP1IIAj9DQAIAAAAAAAAAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1ZAAAAIAZBEGohBiAHQQJqIQcgBUF+aiIFDQALIAIgBEYNAgsgBCEHAkAgAiAEa0EDcSIFRQ0AIAAgBEEDdGohBiAEIQcDQCABIAdqIAYrAwBEAAAAAAAAAABiOgAAIAZBCGohBiAHQQFqIQcgBUF/aiIFDQALCyAEIAJrQXxLDQEgACAHQQN0aiEGA0AgASAHaiIFIAYrAwBEAAAAAAAAAABiOgAAIAVBAWogBkEIaisDAEQAAAAAAAAAAGI6AAAgBUECaiAGQRBqKwMARAAAAAAAAAAAYjoAACAFQQNqIAZBGGorAwBEAAAAAAAAAABiOgAAIAFBBGohASAGQSBqIQYgByACQXxqIgJHDQAMAgsLIAJFDQAgAUEBIAL8CwALC+4BAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBkEAIQUgASEHIAAhAwNAQQEhCEEBIQkCQCADKgIAQwAAAABcDQAgByoCAEMAAAAAXCEJCyACIAVqIgogCToAAAJAIANBBGoqAgBDAAAAAFwNACAHQQRqKgIAQwAAAABcIQgLIApBAWogCDoAACAHQQhqIQcgA0EIaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQdBASEDAkAgACAFQQJ0IgVqKgIAQwAAAABcDQAgASAFaioCAEMAAAAAXCEDCyAHIAM6AAALC6IDAgR/AXsCQAJAIANDAAAAAFwNACACRQ0BQQAhBAJAIAJBCEkNAAJAIAEgACACQQJ0ak8NACAAIAEgAmpJDQELIAJBfHEiBCEFIAAhBiABIQcDQCAHIAb9AAIA/QwAAAAAAAAAAAAAAAAAAAAA/UIgCP0NAAQIDAAAAAAAAAAAAAAAAP0MAQEBAQEBAQEBAQEBAQEBAf1O/VoAAAAgBkEQaiEGIAdBBGohByAFQXxqIgUNAAsgAiAERg0CCyAEIQcCQCACQQNxIgVFDQAgACAEQQJ0aiEGIAQhBwNAIAEgB2ogBioCAEMAAAAAXDoAACAGQQRqIQYgB0EBaiEHIAVBf2oiBQ0ACwsgBCACa0F8Sw0BIAAgB0ECdGohBgNAIAEgB2oiBSAGKgIAQwAAAABcOgAAIAVBAWogBkEEaioCAEMAAAAAXDoAACAFQQJqIAZBCGoqAgBDAAAAAFw6AAAgBUEDaiAGQQxqKgIAQwAAAABcOgAAIAFBBGohASAGQRBqIQYgByACQXxqIgJHDQAMAgsLIAJFDQAgAUEBIAL8CwALC9sBAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBkEAIQUgASEHIAAhAwNAQQEhCEEBIQkCQCADKQMAUEUNACAHKQMAQgBSIQkLIAIgBWoiCiAJOgAAAkAgA0EIaikDAEIAUg0AIAdBCGopAwBCAFIhCAsgCkEBaiAIOgAAIAdBEGohByADQRBqIQMgBiAFQQJqIgVHDQALCyAERQ0AIAIgBWohB0EBIQMCQCAAIAVBA3QiBWopAwBCAFINACABIAVqKQMAQgBSIQMLIAcgAzoAAAsLlAMCBH8BewJAAkAgA0IAUg0AIAJFDQFBACEEAkAgAkEISQ0AAkAgASAAIAJBA3RqTw0AIAAgASACakkNAQsgAkF+cSIEIQUgACEGIAEhBwNAIAcgBv0AAwD9DAAAAAAAAAAAAAAAAAAAAAD91wEgCP0NAAgAAAAAAAAAAAAAAAAAAP0MAQEBAQEBAQEBAQEBAQEBAf1O/VkAAAAgBkEQaiEGIAdBAmohByAFQX5qIgUNAAsgAiAERg0CCyAEIQcCQCACIARrQQNxIgVFDQAgACAEQQN0aiEGIAQhBwNAIAEgB2ogBikDAEIAUjoAACAGQQhqIQYgB0EBaiEHIAVBf2oiBQ0ACwsgBCACa0F8Sw0BIAAgB0EDdGohBgNAIAEgB2oiBSAGKQMAQgBSOgAAIAVBAWogBkEIaikDAEIAUjoAACAFQQJqIAZBEGopAwBCAFI6AAAgBUEDaiAGQRhqKQMAQgBSOgAAIAFBBGohASAGQSBqIQYgByACQXxqIgJHDQAMAgsLIAJFDQAgAUEBIAL8CwALC9MBAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBiABIQcgACEDQQAhBQNAQQEhCEEBIQkCQCADKAIADQAgBygCAEEARyEJCyACIAVqIgogCToAAAJAIANBBGooAgANACAHQQRqKAIAQQBHIQgLIApBAWogCDoAACAHQQhqIQcgA0EIaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQdBASEDAkAgACAFQQJ0IgVqKAIADQAgASAFaigCAEEARyEDCyAHIAM6AAALC40DAgN/AXsCQAJAIAMNACACRQ0BQQAhBAJAIAJBCEkNAAJAIAEgACACQQJ0ak8NACAAIAEgAmpJDQELIAJBfHEiBCEFIAAhAyABIQYDQCAGIAP9AAIA/QwAAAAAAAAAAAAAAAAAAAAA/TggB/0NAAQIDAAAAAAAAAAAAAAAAP0MAQEBAQEBAQEBAQEBAQEBAf1O/VoAAAAgA0EQaiEDIAZBBGohBiAFQXxqIgUNAAsgAiAERg0CCyAEIQYCQCACQQNxIgVFDQAgACAEQQJ0aiEDIAQhBgNAIAEgBmogAygCAEEARzoAACADQQRqIQMgBkEBaiEGIAVBf2oiBQ0ACwsgBCACa0F8Sw0BIAAgBkECdGohAwNAIAEgBmoiBSADKAIAQQBHOgAAIAVBAWogA0EEaigCAEEARzoAACAFQQJqIANBCGooAgBBAEc6AAAgBUEDaiADQQxqKAIAQQBHOgAAIAFBBGohASADQRBqIQMgBiACQXxqIgJHDQAMAgsLIAJFDQAgAUEBIAL8CwALC9QBAQd/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBiABIQcgACEDQQAhBQNAQQEhCEEBIQkCQCADLwEADQAgBy8BAEEARyEJCyACIAVqIgogCToAAAJAIANBAmovAQANACAHQQJqLwEAQQBHIQgLIApBAWogCDoAACAHQQRqIQcgA0EEaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQdBASEDAkAgACAFQQF0ai8BAA0AIAEgBUEBdGovAQBBAEchAwsgByADOgAACwuNAwIDfwF7AkACQCADDQAgAkUNAUEAIQQCQCACQQhJDQACQCABIAAgAkEBdGpPDQAgACABIAJqSQ0BCyACQXhxIgQhBSAAIQMgASEGA0AgBiAD/QABAP0MAAAAAAAAAAAAAAAAAAAAAP0uIAf9DQACBAYICgwOAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1bAAAAIANBEGohAyAGQQhqIQYgBUF4aiIFDQALIAIgBEYNAgsgBCEGAkAgAkEDcSIFRQ0AIAAgBEEBdGohAyAEIQYDQCABIAZqIAMvAQBBAEc6AAAgA0ECaiEDIAZBAWohBiAFQX9qIgUNAAsLIAQgAmtBfEsNASAAIAZBAXRqIQMDQCABIAZqIgUgAy8BAEEARzoAACAFQQFqIANBAmovAQBBAEc6AAAgBUECaiADQQRqLwEAQQBHOgAAIAVBA2ogA0EGai8BAEEARzoAACABQQRqIQEgA0EIaiEDIAYgAkF8aiICRw0ADAILCyACRQ0AIAFBASAC/AsACwv2AwIGfwJ7AkACQCADQXBxIgQNAEEAIQQMAQsCQAJAIARBf2oiBUEPRw0AQQAhBAwBCyAFQQR2QQFqQf7///8BcSEGQQAhBANAIAIgBGoiByABIARqIgj9AAAAIAAgBGoiCf0AAAD9UP0MAAAAAAAAAAAAAAAAAAAAACIK/ST9DAEBAQEBAQEBAQEBAQEBAQEiC/1O/QsAACAHQRBqIAhBEGr9AAAAIAlBEGr9AAAA/VAgCv0kIAv9Tv0LAAAgBEEgaiEEIAZBfmoiBg0ACwsgBUEQcQ0AIAIgBGogASAEav0AAAAgACAEav0AAAD9UP0MAAAAAAAAAAAAAAAAAAAAAP0k/QwBAQEBAQEBAQEBAQEBAQEB/U79CwAAIARBEGohBAsCQCADIARNDQBBASEHIARBAWohBgJAIAMgBGtBAXFFDQAgAiAEaiEIAkAgACAEai0AAA0AIAEgBGotAABBAEchBwsgCCAHOgAAIARBAWohBAsgAyAGRg0AA0BBASEGAkAgACAEaiIHLQAADQAgASAEai0AAEEARyEGCyACIARqIgggBjoAAEEBIQYCQCAHQQFqLQAADQAgASAEakEBai0AAEEARyEGCyAIQQFqIAY6AAAgAkECaiECIABBAmohACABQQJqIQEgBCADQX5qIgNHDQALCwupBQMEfwJ7AX8CQAJAIANFDQAgAkUNASABQQEgAvwLAA8LAkACQCACQXBxIgMNAEEAIQMMAQsgA0F/akEEdkEBaiIEQQNxIQUCQAJAIANBMU8NAEEAIQMMAQsgBEH8////AXEhBkEAIQMDQCABIANqIgQgACADaiIH/QAAAP0MAAAAAAAAAAAAAAAAAAAAACII/ST9DAEBAQEBAQEBAQEBAQEBAQEiCf1O/QsAACAEQRBqIAdBEGr9AAAAIAj9JCAJ/U79CwAAIARBIGogB0Egav0AAAAgCP0kIAn9Tv0LAAAgBEEwaiAHQTBq/QAAACAI/SQgCf1O/QsAACADQcAAaiEDIAZBfGoiBg0ACwsgBUUNAANAIAEgA2ogACADav0AAAD9DAAAAAAAAAAAAAAAAAAAAAD9JP0MAQEBAQEBAQEBAQEBAQEBAf1O/QsAACADQRBqIQMgBUF/aiIFDQALCyACIANNDQACQCACIANrIgZBEEkNACABIABrQRBJDQAgACADaiEEIAEgA2ohByADIAZBcHEiCmohAyAKIQUDQCAHIAT9AAAA/QwAAAAAAAAAAAAAAAAAAAAA/ST9DAEBAQEBAQEBAQEBAQEBAQH9Tv0LAAAgBEEQaiEEIAdBEGohByAFQXBqIgUNAAsgBiAKRg0BCyADIQQCQCACIANrQQNxIgdFDQAgAyEEA0AgASAEaiAAIARqLQAAQQBHOgAAIARBAWohBCAHQX9qIgcNAAsLIAMgAmtBfEsNAANAIAEgBGoiAyAAIARqIgctAABBAEc6AAAgA0EBaiAHQQFqLQAAQQBHOgAAIANBAmogB0ECai0AAEEARzoAACADQQNqIAdBA2otAABBAEc6AAAgAUEEaiEBIABBBGohACAEIAJBfGoiAkcNAAsLCw==",Rg=null;function ur(){if(Rg)return Rg;let A=atob(bv),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Rg=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Rg.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Rg}function ZG(A,r,I,t){ur().exports.logical_or_f64(A,r,I,t)}function zG(A,r,I,t){ur().exports.logical_or_scalar_f64(A,r,I,t)}function jG(A,r,I,t){ur().exports.logical_or_f32(A,r,I,t)}function $G(A,r,I,t){ur().exports.logical_or_scalar_f32(A,r,I,t)}function ac(A,r,I,t){ur().exports.logical_or_i64(A,r,I,t)}function Bc(A,r,I,t){ur().exports.logical_or_scalar_i64(A,r,I,BigInt(Math.round(t)))}function sc(A,r,I,t){ur().exports.logical_or_i32(A,r,I,t)}function Ec(A,r,I,t){ur().exports.logical_or_scalar_i32(A,r,I,t)}function uc(A,r,I,t){ur().exports.logical_or_i16(A,r,I,t)}function cc(A,r,I,t){ur().exports.logical_or_scalar_i16(A,r,I,t)}function Dc(A,r,I,t){ur().exports.logical_or_i8(A,r,I,t)}function fc(A,r,I,t){ur().exports.logical_or_scalar_i8(A,r,I,t)}var AS=64,pv={float64:ZG,float32:jG,int64:ac,uint64:ac,int32:sc,uint32:sc,int16:uc,uint16:uc,int8:Dc,uint8:Dc},Nv={float64:zG,float32:$G,int64:Bc,uint64:Bc,int32:Ec,uint32:Ec,int16:cc,uint16:cc,int8:fc,uint8:fc},rS={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function IS(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<AS*K.thresholdMultiplier)return null;let t=A.dtype,o=pv[t],e=rS[t];if(!o||!e||r.dtype!==t)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g,Q=I;x(i+n+Q),U();let C=R(A.data.subarray(A.offset,A.offset+I)),a=R(r.data.subarray(r.offset,r.offset+I)),B=H(Q);o(C,a,B,I);let s=_(B,I,Uint8Array);return d.fromData(s,Array.from(A.shape),"bool")}function yc(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<AS*K.thresholdMultiplier)return null;let t=A.dtype,o=Nv[t],e=rS[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I;x(i+n),U();let Q=R(A.data.subarray(A.offset,A.offset+I)),C=H(n);o(Q,C,I,r);let a=_(C,I,Uint8Array);return d.fromData(a,Array.from(A.shape),"bool")}var Fv="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",kg=null;function cr(){if(kg)return kg;let A=atob(Fv),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);kg=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=kg.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),kg}function tS(A,r,I,t){cr().exports.logical_xor_f64(A,r,I,t)}function oS(A,r,I,t){cr().exports.logical_xor_scalar_f64(A,r,I,t)}function eS(A,r,I,t){cr().exports.logical_xor_f32(A,r,I,t)}function gS(A,r,I,t){cr().exports.logical_xor_scalar_f32(A,r,I,t)}function mc(A,r,I,t){cr().exports.logical_xor_i64(A,r,I,t)}function lc(A,r,I,t){cr().exports.logical_xor_scalar_i64(A,r,I,BigInt(Math.round(t)))}function hc(A,r,I,t){cr().exports.logical_xor_i32(A,r,I,t)}function wc(A,r,I,t){cr().exports.logical_xor_scalar_i32(A,r,I,t)}function dc(A,r,I,t){cr().exports.logical_xor_i16(A,r,I,t)}function bc(A,r,I,t){cr().exports.logical_xor_scalar_i16(A,r,I,t)}function pc(A,r,I,t){cr().exports.logical_xor_i8(A,r,I,t)}function Nc(A,r,I,t){cr().exports.logical_xor_scalar_i8(A,r,I,t)}var iS=64,Gv={float64:tS,float32:eS,int64:mc,uint64:mc,int32:hc,uint32:hc,int16:dc,uint16:dc,int8:pc,uint8:pc},Sv={float64:oS,float32:gS,int64:lc,uint64:lc,int32:wc,uint32:wc,int16:bc,uint16:bc,int8:Nc,uint8:Nc},nS={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function QS(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<iS*K.thresholdMultiplier)return null;let t=A.dtype,o=Gv[t],e=nS[t];if(!o||!e||r.dtype!==t)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g,Q=I;x(i+n+Q),U();let C=R(A.data.subarray(A.offset,A.offset+I)),a=R(r.data.subarray(r.offset,r.offset+I)),B=H(Q);o(C,a,B,I);let s=_(B,I,Uint8Array);return d.fromData(s,Array.from(A.shape),"bool")}function Fc(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<iS*K.thresholdMultiplier)return null;let t=A.dtype,o=Sv[t],e=nS[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I;x(i+n),U();let Q=R(A.data.subarray(A.offset,A.offset+I)),C=H(n);o(Q,C,I,r);let a=_(C,I,Uint8Array);return d.fromData(a,Array.from(A.shape),"bool")}var Rv="AGFzbQEAAAABHQRgBH9/f38AYAR/f398AGAEf39/fQBgBH9/f34AAg8BA2VudgZtZW1vcnkCABADFRQAAAAAAAAAAAAAAQIDAQABAAEAAQYJAX8BQYCAwAALB+8CFAxjb3B5c2lnbl9mNjQAAAxjb3B5c2lnbl9mMzIAAQxjb3B5c2lnbl9pNjQAAgxjb3B5c2lnbl91NjQAAwxjb3B5c2lnbl9pMzIABAxjb3B5c2lnbl91MzIABQxjb3B5c2lnbl9pMTYABgxjb3B5c2lnbl91MTYABwtjb3B5c2lnbl9pOAAIC2NvcHlzaWduX3U4AAkTY29weXNpZ25fc2NhbGFyX2Y2NAAKE2NvcHlzaWduX3NjYWxhcl9mMzIACxNjb3B5c2lnbl9zY2FsYXJfaTY0AAwTY29weXNpZ25fc2NhbGFyX3U2NAANE2NvcHlzaWduX3NjYWxhcl9pMzIADhNjb3B5c2lnbl9zY2FsYXJfdTMyAA8TY29weXNpZ25fc2NhbGFyX2kxNgAQE2NvcHlzaWduX3NjYWxhcl91MTYAERJjb3B5c2lnbl9zY2FsYXJfaTgAEhJjb3B5c2lnbl9zY2FsYXJfdTgAEwqTRhTdBQMGfwJ7AX8CQAJAIANBfnEiBA0AQQAhBQwBCwJAAkAgBEF/aiIGQQFHDQBBACEFDAELIAZBAXZBAWpBfnEiB0EBdCEFIAIhBCABIQggACEJA0AgBCAI/QADAP0MAAAAAAAAAIAAAAAAAAAAgCIK/U4gCf0AAwD9DP////////9//////////38iC/1O/VD9CwMAIARBEGogCEEQav0AAwAgCv1OIAlBEGr9AAMAIAv9Tv1Q/QsDACAEQSBqIQQgCEEgaiEIIAlBIGohCSAHQX5qIgcNAAsLIAZBAnENACACIAVBA3QiBGogASAEav0AAwD9DAAAAAAAAACAAAAAAAAAAID9TiAAIARq/QADAP0M/////////3//////////f/1O/VD9CwMAIAVBAmohBQsCQCADIAVNDQACQCADIAVrIgZBBkkNACACIABrQRBJDQAgAiABa0EQSQ0AIAIgBUEDdCIJaiEEIAEgCWohCCAAIAlqIQkgBSAGQX5xIgxqIQUgDCEHA0AgBCAI/QADAP0MAAAAAAAAAIAAAAAAAAAAgP1OIAn9AAMA/Qz/////////f/////////9//U79UP0LAwAgBEEQaiEEIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALIAYgDEYNAQsgBUEBaiEEAkAgAyAFa0EBcUUNACACIAVBA3QiCGogASAIaikDAEKAgICAgICAgIB/gyAAIAhqKQMAQv///////////wCDhDcDACAEIQULIAMgBEYNACADIAVrIQcgACAFQQN0IglqIQQgASAJaiEIIAIgCWohCQNAIAkgCCkDAEKAgICAgICAgIB/gyAEKQMAQv///////////wCDhDcDACAJQQhqIAhBCGopAwBCgICAgICAgICAf4MgBEEIaikDAEL///////////8Ag4Q3AwAgBEEQaiEEIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALCwueAwEFfwJAIANFDQBBACEEAkAgA0EKSQ0AIAIgACADQQJ0IgVqSSAAIAIgA0EDdGoiBklxDQAgAiABIAVqSSABIAZJcQ0AIANBfnEiBCEHIAIhBSABIQYgACEIA0AgBSAG/V0CAP0MAAAAgAAAAIAAAACAAAAAgP1OIAj9XQIA/Qz///9/////f////3////9//U79UP1f/QsDACAFQRBqIQUgBkEIaiEGIAhBCGohCCAHQX5qIgcNAAsgAyAERg0BCyAEQQFyIQUCQCADQQFxRQ0AIAIgBEEDdGogASAEQQJ0IgZqKAIAQYCAgIB4cSAAIAZqKAIAQf////8HcXK+uzkDACAFIQQLIAMgBUYNACADIARrIQcgACAEQQJ0IgZqIQUgASAGaiEGIAIgBEEDdGohCANAIAggBigCAEGAgICAeHEgBSgCAEH/////B3Fyvrs5AwAgCEEIaiAGQQRqKAIAQYCAgIB4cSAFQQRqKAIAQf////8HcXK+uzkDACAFQQhqIQUgBkEIaiEGIAhBEGohCCAHQX5qIgcNAAsLC40EAwV/AnsBfgJAIANFDQBBACEEAkAgA0EESQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgA0F+cSIEIQUgAiEGIAEhByAAIQgDQCAGIAj9AAMAIgn9HQC5/RQgCf0dAbn9IgH97AH9DAAAAAAAAPA/AAAAAAAA8D/9DAAAAAAAAAAAAAAAAAAAAAD9DAAAAAAAAPC/AAAAAAAA8L8gB/0AAwAiCf0MAAAAAAAAAAAAAAAAAAAAACIK/dYB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GzkDACAAQQJqIQAgAUECaiEBIAVBEGohBSAEIANBfmoiA0cNAAsLC44FBAJ/AXsEfwF7AkACQCACQX5xIgQNAEEAIQUMAQsgA71CgICAgICAgICAf4P9EiEGIARBf2pBAXZBAWoiB0EDcSEIAkACQCAEQQdPDQBBACEFDAELIAdBfHEiCUEBdCEFQQAhBANAIAEgBGoiByAAIARqIgr9AAMA/Qz/////////f/////////9/Igv9TiAG/VD9CwMAIAdBEGogCkEQav0AAwAgC/1OIAb9UP0LAwAgB0EgaiAKQSBq/QADACAL/U4gBv1Q/QsDACAHQTBqIApBMGr9AAMAIAv9TiAG/VD9CwMAIARBwABqIQQgCUF8aiIJDQALCyAIRQ0AIAUgCEEBdGohCiAAIAVBA3QiB2ohBCABIAdqIQcDQCAHIAT9AAMA/Qz/////////f/////////9//U4gBv1Q/QsDACAEQRBqIQQgB0EQaiEHIAhBf2oiCA0ACyAKIQULAkAgAiAFTQ0AAkAgAiAFayIIQQRJDQAgASAAa0EQSQ0AIAEgBUEDdCIHaiEEIAAgB2ohByAFIAhBfnEiCWohBSAD/RQhBiAJIQoDQCAEIAf9AAMA/Qz/////////f/////////9//U4gBv0MAAAAAAAAAIAAAAAAAAAAgP1O/VD9CwMAIARBEGohBCAHQRBqIQcgCkF+aiIKDQALIAggCUYNAQsgBUEBaiEEAkAgAiAFa0EBcUUNACABIAVBA3QiB2ogACAHaisDACADpjkDACAEIQULIAIgBEYNACACIAVrIQogACAFQQN0IgdqIQQgASAHaiEHA0AgByAEKwMAIAOmOQMAIAdBCGogBEEIaisDACADpjkDACAEQRBqIQQgB0EQaiEHIApBfmoiCg0ACwsLuwIDAX8BewN/AkAgAkUNAEEAIQQCQCACQQhJDQACQCABIAAgAkECdGpPDQAgACABIAJBA3RqSQ0BCyAD/RMhBSACQX5xIgQhBiABIQcgACEIA0AgByAI/V0CAP0M////f////3////9/////f/1OIAX9DAAAAIAAAACAAAAAgAAAAID9Tv1Q/V/9CwMAIAdBEGohByAIQQhqIQggBkF+aiIGDQALIAIgBEYNAQsgBEEBciEHAkAgAkEBcUUNACABIARBA3RqIAAgBEEC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",qg=null;function UA(){if(qg)return qg;let A=atob(Rv),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);qg=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=qg.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),qg}function CS(A,r,I,t){UA().exports.copysign_f64(A,r,I,t)}function aS(A,r,I,t){UA().exports.copysign_f32(A,r,I,t)}function BS(A,r,I,t){UA().exports.copysign_i64(A,r,I,t)}function sS(A,r,I,t){UA().exports.copysign_u64(A,r,I,t)}function ES(A,r,I,t){UA().exports.copysign_i32(A,r,I,t)}function uS(A,r,I,t){UA().exports.copysign_u32(A,r,I,t)}function cS(A,r,I,t){UA().exports.copysign_i16(A,r,I,t)}function DS(A,r,I,t){UA().exports.copysign_u16(A,r,I,t)}function fS(A,r,I,t){UA().exports.copysign_i8(A,r,I,t)}function yS(A,r,I,t){UA().exports.copysign_u8(A,r,I,t)}function mS(A,r,I,t){UA().exports.copysign_scalar_f64(A,r,I,t)}function lS(A,r,I,t){UA().exports.copysign_scalar_f32(A,r,I,t)}function hS(A,r,I,t){UA().exports.copysign_scalar_i64(A,r,I,BigInt(Math.round(t)))}function wS(A,r,I,t){UA().exports.copysign_scalar_u64(A,r,I,t)}function dS(A,r,I,t){UA().exports.copysign_scalar_i32(A,r,I,t)}function bS(A,r,I,t){UA().exports.copysign_scalar_u32(A,r,I,t)}function pS(A,r,I,t){UA().exports.copysign_scalar_i16(A,r,I,t)}function NS(A,r,I,t){UA().exports.copysign_scalar_u16(A,r,I,t)}function FS(A,r,I,t){UA().exports.copysign_scalar_i8(A,r,I,t)}function GS(A,r,I,t){UA().exports.copysign_scalar_u8(A,r,I,t)}var SS=64,kv={float64:CS,float32:aS,int64:BS,uint64:sS,int32:ES,uint32:uS,int16:cS,uint16:DS,int8:fS,uint8:yS},qv={float64:mS,float32:lS,int64:hS,uint64:wS,int32:dS,uint32:bS,int16:pS,uint16:NS,int8:FS,uint8:GS},RS={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function kS(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<SS*K.thresholdMultiplier)return null;let t=A.dtype,o=kv[t],e=RS[t];if(!o||!e||r.dtype!==t)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*8;x(i*2+n),U();let Q=R(A.data.subarray(A.offset,A.offset+I)),C=R(r.data.subarray(r.offset,r.offset+I)),a=H(n);o(Q,C,a,I);let B=_(a,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}function Gc(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<SS*K.thresholdMultiplier)return null;let t=A.dtype,o=qv[t],e=RS[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*8;x(i+n),U();let Q=R(A.data.subarray(A.offset,A.offset+I)),C=H(n);o(Q,C,I,r);let a=_(C,I,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var Mv="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",Mg=null;function Ct(){if(Mg)return Mg;let A=atob(Mv),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Mg=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Mg.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Mg}function qS(A,r,I){Ct().exports.logical_not_f64(A,r,I)}function MS(A,r,I){Ct().exports.logical_not_f32(A,r,I)}function Sc(A,r,I){Ct().exports.logical_not_i64(A,r,I)}function Rc(A,r,I){Ct().exports.logical_not_i32(A,r,I)}function kc(A,r,I){Ct().exports.logical_not_i16(A,r,I)}function qc(A,r,I){Ct().exports.logical_not_i8(A,r,I)}var Jv=64,xv={float64:qS,float32:MS,int64:Sc,uint64:Sc,int32:Rc,uint32:Rc,int16:kc,uint16:kc,int8:qc,uint8:qc},Uv={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function JS(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Jv*K.thresholdMultiplier)return null;let I=A.dtype,t=xv[I],o=Uv[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT,g=r*e,i=r;x(g+i),U();let n=R(A.data.subarray(A.offset,A.offset+r)),Q=H(i);t(n,Q,r);let C=_(Q,r,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function Bt(A){return A!==0&&A!==0n}function Rr(A,r){let I=A[r*2],t=A[r*2+1];return I!==0||t!==0}function Jg(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,t)=>I===r.shape[t])}function YS(A,r){if(typeof r=="number"){let I=Cc(A,r);return I||xS(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),t=Cc(A,I);return t||xS(A,I)}if(Jg(A,r)){let I=WG(A,r);return I||Lv(A,r)}return Qr(A,r,(I,t)=>Bt(I)&&Bt(t))}function Lv(A,r){let I=new Uint8Array(A.size),t=A.data,o=r.data,e=A.offset,g=r.offset,i=A.size,n=P(A.dtype),Q=P(r.dtype),C=k(A.dtype),a=k(r.dtype);if(C||a)for(let B=0;B<i;B++){let s=C?Rr(t,e+B):t[e+B]!==0,E=a?Rr(o,g+B):o[g+B]!==0;I[B]=s&&E?1:0}else if(n||Q)for(let B=0;B<i;B++){let s=n?t[e+B]!==0n:t[e+B]!==0,E=Q?o[g+B]!==0n:o[g+B]!==0;I[B]=s&&E?1:0}else for(let B=0;B<i;B++)I[B]=t[e+B]!==0&&o[g+B]!==0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function xS(A,r){let I=new Uint8Array(A.size),t=r!==0,o=A.size;if(A.isCContiguous){let e=A.data,g=A.offset;if(k(A.dtype)){let i=e;for(let n=0;n<o;n++)I[n]=Rr(i,g+n)&&t?1:0}else if(P(A.dtype)){let i=e;for(let n=0;n<o;n++)I[n]=i[g+n]!==0n&&t?1:0}else if(g===0)for(let i=0;i<o;i++)I[i]=e[i]!==0&&t?1:0;else for(let i=0;i<o;i++)I[i]=e[g+i]!==0&&t?1:0}else if(k(A.dtype))for(let e=0;e<o;e++){let g=A.iget(e);I[e]=(g.re!==0||g.im!==0)&&t?1:0}else if(P(A.dtype))for(let e=0;e<o;e++)I[e]=A.iget(e)!==0n&&t?1:0;else for(let e=0;e<o;e++)I[e]=Number(A.iget(e))!==0&&t?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function PS(A,r){if(typeof r=="number"){let I=yc(A,r);return I||US(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),t=yc(A,I);return t||US(A,I)}if(Jg(A,r)){let I=IS(A,r);return I||Hv(A,r)}return Qr(A,r,(I,t)=>Bt(I)||Bt(t))}function Hv(A,r){let I=new Uint8Array(A.size),t=A.data,o=r.data,e=A.offset,g=r.offset,i=A.size,n=P(A.dtype),Q=P(r.dtype),C=k(A.dtype),a=k(r.dtype);if(C||a)for(let B=0;B<i;B++){let s=C?Rr(t,e+B):t[e+B]!==0,E=a?Rr(o,g+B):o[g+B]!==0;I[B]=s||E?1:0}else if(n||Q)for(let B=0;B<i;B++){let s=n?t[e+B]!==0n:t[e+B]!==0,E=Q?o[g+B]!==0n:o[g+B]!==0;I[B]=s||E?1:0}else for(let B=0;B<i;B++)I[B]=t[e+B]!==0||o[g+B]!==0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function US(A,r){let I=new Uint8Array(A.size),t=r!==0,o=A.size;if(A.isCContiguous){let e=A.data,g=A.offset;if(k(A.dtype)){let i=e;for(let n=0;n<o;n++)I[n]=Rr(i,g+n)||t?1:0}else if(P(A.dtype)){let i=e;for(let n=0;n<o;n++)I[n]=i[g+n]!==0n||t?1:0}else if(g===0)for(let i=0;i<o;i++)I[i]=e[i]!==0||t?1:0;else for(let i=0;i<o;i++)I[i]=e[g+i]!==0||t?1:0}else if(k(A.dtype))for(let e=0;e<o;e++){let g=A.iget(e);I[e]=g.re!==0||g.im!==0||t?1:0}else if(P(A.dtype))for(let e=0;e<o;e++)I[e]=A.iget(e)!==0n||t?1:0;else for(let e=0;e<o;e++)I[e]=Number(A.iget(e))!==0||t?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function _S(A){let r=JS(A);if(r)return r;let I=new Uint8Array(A.size),t=A.size;if(A.isCContiguous){let o=A.data,e=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=Rr(g,e+i)?0:1}else if(P(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=g[e+i]===0n?1:0}else if(e===0)for(let g=0;g<t;g++)I[g]=o[g]===0?1:0;else for(let g=0;g<t;g++)I[g]=o[e+g]===0?1:0}else if(k(A.dtype))for(let o=0;o<t;o++){let e=A.iget(o);I[o]=e.re===0&&e.im===0?1:0}else if(P(A.dtype))for(let o=0;o<t;o++)I[o]=A.iget(o)===0n?1:0;else for(let o=0;o<t;o++)I[o]=Number(A.iget(o))===0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function KS(A,r){if(typeof r=="number"){let I=Fc(A,r);return I||LS(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),t=Fc(A,I);return t||LS(A,I)}if(Jg(A,r)){let I=QS(A,r);return I||Yv(A,r)}return Qr(A,r,(I,t)=>Bt(I)!==Bt(t))}function Yv(A,r){let I=new Uint8Array(A.size),t=A.data,o=r.data,e=A.offset,g=r.offset,i=A.size,n=P(A.dtype),Q=P(r.dtype),C=k(A.dtype),a=k(r.dtype);if(C||a)for(let B=0;B<i;B++){let s=C?Rr(t,e+B):t[e+B]!==0,E=a?Rr(o,g+B):o[g+B]!==0;I[B]=s!==E?1:0}else if(n||Q)for(let B=0;B<i;B++){let s=n?t[e+B]!==0n:t[e+B]!==0,E=Q?o[g+B]!==0n:o[g+B]!==0;I[B]=s!==E?1:0}else for(let B=0;B<i;B++){let s=t[e+B]!==0,E=o[g+B]!==0;I[B]=s!==E?1:0}return d.fromData(I,Array.from(A.shape),"bool")}function LS(A,r){let I=new Uint8Array(A.size),t=r!==0,o=A.size;if(A.isCContiguous){let e=A.data,g=A.offset;if(k(A.dtype)){let i=e;for(let n=0;n<o;n++){let Q=Rr(i,g+n);I[n]=Q!==t?1:0}}else if(P(A.dtype)){let i=e;for(let n=0;n<o;n++){let Q=i[g+n]!==0n;I[n]=Q!==t?1:0}}else if(g===0)for(let i=0;i<o;i++){let n=e[i]!==0;I[i]=n!==t?1:0}else for(let i=0;i<o;i++){let n=e[g+i]!==0;I[i]=n!==t?1:0}}else if(k(A.dtype))for(let e=0;e<o;e++){let g=A.iget(e),i=g.re!==0||g.im!==0;I[e]=i!==t?1:0}else if(P(A.dtype))for(let e=0;e<o;e++){let g=A.iget(e)!==0n;I[e]=g!==t?1:0}else for(let e=0;e<o;e++){let g=Number(A.iget(e))!==0;I[e]=g!==t?1:0}return d.fromData(I,Array.from(A.shape),"bool")}function vS(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(k(A.dtype)){let e=t;for(let g=0;g<I;g++){let i=e[(o+g)*2],n=e[(o+g)*2+1];r[g]=Number.isFinite(i)&&Number.isFinite(n)?1:0}}else if(P(A.dtype)||SA(A.dtype))r.fill(1);else if(o===0)for(let e=0;e<I;e++)r[e]=Number.isFinite(t[e])?1:0;else for(let e=0;e<I;e++){let g=t[o+e];r[e]=Number.isFinite(g)?1:0}}else if(k(A.dtype))for(let t=0;t<I;t++){let o=A.iget(t);r[t]=Number.isFinite(o.re)&&Number.isFinite(o.im)?1:0}else if(P(A.dtype)||SA(A.dtype))r.fill(1);else for(let t=0;t<I;t++)r[t]=Number.isFinite(Number(A.iget(t)))?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function XS(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(k(A.dtype)){let e=t;for(let g=0;g<I;g++){let i=e[(o+g)*2],n=e[(o+g)*2+1],Q=!Number.isFinite(i)&&!Number.isNaN(i),C=!Number.isFinite(n)&&!Number.isNaN(n);r[g]=Q||C?1:0}}else if(!(P(A.dtype)||SA(A.dtype)))if(o===0)for(let e=0;e<I;e++){let g=t[e];r[e]=!Number.isFinite(g)&&!Number.isNaN(g)?1:0}else for(let e=0;e<I;e++){let g=t[o+e];r[e]=!Number.isFinite(g)&&!Number.isNaN(g)?1:0}}else if(k(A.dtype))for(let t=0;t<I;t++){let o=A.iget(t),e=!Number.isFinite(o.re)&&!Number.isNaN(o.re),g=!Number.isFinite(o.im)&&!Number.isNaN(o.im);r[t]=e||g?1:0}else if(!(P(A.dtype)||SA(A.dtype)))for(let t=0;t<I;t++){let o=Number(A.iget(t));r[t]=!Number.isFinite(o)&&!Number.isNaN(o)?1:0}return d.fromData(r,Array.from(A.shape),"bool")}function TS(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(k(A.dtype)){let e=t;for(let g=0;g<I;g++){let i=e[(o+g)*2],n=e[(o+g)*2+1];r[g]=Number.isNaN(i)||Number.isNaN(n)?1:0}}else if(!(P(A.dtype)||SA(A.dtype)))for(let e=0;e<I;e++)r[e]=Number.isNaN(t[o+e])?1:0}else if(k(A.dtype))for(let t=0;t<I;t++){let o=A.iget(t);r[t]=Number.isNaN(o.re)||Number.isNaN(o.im)?1:0}else if(!(P(A.dtype)||SA(A.dtype)))for(let t=0;t<I;t++)r[t]=Number.isNaN(Number(A.iget(t)))?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function OS(A){let r=new Uint8Array(A.size);return d.fromData(r,Array.from(A.shape),"bool")}function VS(A,r){if(gA(A.dtype,"copysign","copysign is only defined for real numbers."),typeof r!="number"&&gA(r.dtype,"copysign","copysign is only defined for real numbers."),typeof r=="number"){let n=Gc(A,r);return n||HS(A,r)}if(r.size===1&&!k(r.dtype)){let n=Number(r.iget(0)),Q=Gc(A,n);return Q||HS(A,n)}if(Jg(A,r)){let n=kS(A,r);return n||Pv(A,r)}let I=jr(A.shape,r.shape),t=I.reduce((n,Q)=>n*Q,1),o=d.zeros(I,"float64"),e=o.data,g=bQ(A,I),i=bQ(r,I);for(let n=0;n<t;n++){let Q=Number(g.iget(n)),C=Number(i.iget(n));e[n]=Math.sign(C)*Math.abs(Q)}return o}function Pv(A,r){let I=d.zeros(Array.from(A.shape),"float64"),t=I.data,o=A.size,e=A.data,g=r.data,i=A.offset,n=r.offset,Q=P(A.dtype),C=P(r.dtype);for(let a=0;a<o;a++){let B=Q?Number(e[i+a]):e[i+a],s=C?Number(g[n+a]):g[n+a];t[a]=Math.sign(s)*Math.abs(B)}return I}function HS(A,r){let I=d.zeros(Array.from(A.shape),"float64"),t=I.data,o=A.size,e=Math.sign(r);if(!A.isCContiguous){for(let n=0;n<o;n++)t[n]=e*Math.abs(Number(A.iget(n)));return I}let g=A.data,i=A.offset;if(P(A.dtype)){let n=g;for(let Q=0;Q<o;Q++)t[Q]=e*Math.abs(Number(n[i+Q]))}else if(i===0)for(let n=0;n<o;n++)t[n]=e*Math.abs(g[n]);else for(let n=0;n<o;n++)t[n]=e*Math.abs(g[i+n]);return I}function WS(A){gA(A.dtype,"signbit","signbit is only defined for real numbers.");let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(P(A.dtype)){let e=t;for(let g=0;g<I;g++)r[g]=e[o+g]<0n?1:0}else for(let e=0;e<I;e++){let g=t[o+e];r[e]=g<0||Object.is(g,-0)?1:0}}else if(P(A.dtype))for(let t=0;t<I;t++)r[t]=A.iget(t)<0n?1:0;else for(let t=0;t<I;t++){let o=Number(A.iget(t));r[t]=o<0||Object.is(o,-0)?1:0}return d.fromData(r,Array.from(A.shape),"bool")}function ZS(A,r){if(gA(A.dtype,"nextafter","nextafter is only defined for real numbers."),typeof r!="number"&&gA(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof r=="number")return Kv(A,r);if(Jg(A,r))return _v(A,r);let I=jr(A.shape,r.shape),t=I.reduce((n,Q)=>n*Q,1),o=d.zeros(I,"float64"),e=o.data,g=bQ(A,I),i=bQ(r,I);for(let n=0;n<t;n++){let Q=Number(g.iget(n)),C=Number(i.iget(n));e[n]=at(Q,C)}return o}function _v(A,r){let I=d.zeros(Array.from(A.shape),"float64"),t=I.data,o=A.size,e=A.data,g=r.data,i=A.offset,n=r.offset,Q=P(A.dtype),C=P(r.dtype);for(let a=0;a<o;a++){let B=Q?Number(e[i+a]):e[i+a],s=C?Number(g[n+a]):g[n+a];t[a]=at(B,s)}return I}function Kv(A,r){let I=d.zeros(Array.from(A.shape),"float64"),t=I.data,o=A.size;if(A.isCContiguous){let e=A.data,g=A.offset;if(P(A.dtype)){let i=e;for(let n=0;n<o;n++)t[n]=at(Number(i[g+n]),r)}else for(let i=0;i<o;i++)t[i]=at(e[g+i],r)}else for(let e=0;e<o;e++)t[e]=at(Number(A.iget(e)),r);return I}function at(A,r){if(Number.isNaN(A)||Number.isNaN(r))return NaN;if(A===r)return r;if(A===0)return r>0?Number.MIN_VALUE:-Number.MIN_VALUE;let I=new ArrayBuffer(8),t=new Float64Array(I),o=new BigInt64Array(I);t[0]=A;let e=o[0];return(A>0?r>A:r<A)?e=e+1n:e=e-1n,o[0]=e,t[0]}function zS(A){gA(A.dtype,"spacing","spacing is only defined for real numbers.");let r=d.zeros(Array.from(A.shape),"float64"),I=r.data,t=A.size;if(A.isCContiguous){let o=A.data,e=A.offset;if(P(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=Mc(Number(g[e+i]))}else for(let g=0;g<t;g++)I[g]=Mc(o[e+g])}else for(let o=0;o<t;o++)I[o]=Mc(Number(A.iget(o)));return r}function Mc(A){if(Number.isNaN(A))return NaN;if(!Number.isFinite(A))return NaN;if(Math.abs(A)===0)return Number.MIN_VALUE;let I=at(A,1/0);return Math.abs(I-A)}function bQ(A,r){let I=A.shape.length,t=r.length,o=new Array(t).fill(0);for(let e=0;e<I;e++){let g=t-I+e,i=A.shape[e],n=r[g];if(i===n)o[g]=A.strides[e];else if(i===1)o[g]=0;else throw new Error("Invalid broadcast")}return d.fromData(A.data,Array.from(r),A.dtype,o,A.offset)}function jS(A){let r=A.dtype,I=A.size,t=new Uint8Array(I);if(k(r))if(A.isCContiguous){let o=A.offset,e=A.data;for(let g=0;g<I;g++)t[g]=e[(o+g)*2+1]!==0?1:0}else for(let o=0;o<I;o++){let e=A.iget(o);t[o]=e.im!==0?1:0}return d.fromData(t,Array.from(A.shape),"bool")}function $S(A){return k(A.dtype)}function AR(A){let r=A.dtype,I=A.size,t=new Uint8Array(I);if(k(r))if(A.isCContiguous){let o=A.offset,e=A.data;for(let g=0;g<I;g++)t[g]=e[(o+g)*2+1]===0?1:0}else for(let o=0;o<I;o++){let e=A.iget(o);t[o]=e.im===0?1:0}else t.fill(1);return d.fromData(t,Array.from(A.shape),"bool")}function rR(A){return!k(A.dtype)}function IR(A){gA(A.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let r=new Uint8Array(A.size),I=A.size;if(!(P(A.dtype)||SA(A.dtype)))if(A.isCContiguous){let t=A.data,o=A.offset;for(let e=0;e<I;e++){let g=t[o+e];r[e]=g===-1/0?1:0}}else for(let t=0;t<I;t++)r[t]=Number(A.iget(t))===-1/0?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function tR(A){gA(A.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let r=new Uint8Array(A.size),I=A.size;if(!(P(A.dtype)||SA(A.dtype)))if(A.isCContiguous){let t=A.data,o=A.offset;for(let e=0;e<I;e++){let g=t[o+e];r[e]=g===1/0?1:0}}else for(let t=0;t<I;t++)r[t]=Number(A.iget(t))===1/0?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function oR(A){return A.isFContiguous}function eR(A,r=100){let I=A.dtype;if(k(I)){let t=A.size,e=r*(I==="complex64"?11920929e-14:2220446049250313e-31);if(A.isCContiguous){let g=A.data,i=A.offset,n=!0;for(let Q=0;Q<t;Q++){let C=g[(i+Q)*2+1];if(Math.abs(C)>e){n=!1;break}}if(n){let Q=I==="complex64"?"float32":"float64",C=d.zeros(Array.from(A.shape),Q),a=C.data;for(let B=0;B<t;B++)a[B]=g[(i+B)*2];return C}}else{let g=!0;for(let i=0;i<t;i++){let n=A.iget(i);if(Math.abs(n.im)>e){g=!1;break}}if(g){let i=I==="complex64"?"float32":"float64",n=d.zeros(Array.from(A.shape),i),Q=n.data;for(let C=0;C<t;C++){let a=A.iget(C);Q[C]=a.re}return n}}return A.copy()}return A.copy()}function gR(A){return typeof A=="number"||typeof A=="bigint"||typeof A=="boolean"||typeof A=="string"}function iR(A){return A==null?!1:typeof A[Symbol.iterator]=="function"}function nR(A,r){let t={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[r];return t?t.includes(A):!1}function QR(A,r){let I=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],t=I.indexOf(A),o=I.indexOf(r);return t<=o?A:r}function kr(A){if(A.length===0)return[];if(A.length===1)return Array.from(A[0]);let r=Math.max(...A.map(t=>t.length)),I=new Array(r);for(let t=0;t<r;t++){let o=1;for(let e of A){let g=e.length-r+t,i=g<0?1:e[g];if(i!==1){if(o===1)o=i;else if(o!==i)return null}}I[t]=o}return I}function Xv(A,r,I){let t=A.length,o=I.length,e=new Array(o).fill(0);for(let g=0;g<t;g++){let i=o-t+g,n=A[g],Q=I[i];if(n===Q)e[i]=r[g];else if(n===1)e[i]=0;else throw new Error("Invalid broadcast")}return e}function Dr(A,r){let I=Xv(A.shape,A.strides,r);return d.fromData(A.data,Array.from(r),A.dtype,I,A.offset)}function pI(A,r){return[A[r*2],A[r*2+1]]}function CR(A,r){if(k(A.dtype))return pI(A.data,r);let I=A.iget(r);return I instanceof X?[I.re,I.im]:[Number(I),0]}function st(A,r,I){let t=kr([Array.from(A.shape),Array.from(r.shape)]);if(!t)throw new Error("Cannot broadcast arrays together");let o=Dr(A,t),e=Dr(r,t),g=t.reduce((n,Q)=>n*Q,1),i=new Uint8Array(g);for(let n=0;n<g;n++){let[Q,C]=CR(o,n),[a,B]=CR(e,n);i[n]=I(Q,C,a,B)?1:0}return d.fromData(i,t,"bool")}function aR(A,r){return typeof r=="number"?Tv(A,r):k(A.dtype)||k(r.dtype)?st(A,r,(I,t,o,e)=>I!==o?I>o:t>e):Qr(A,r,(I,t)=>I>t)}function BR(A,r){return typeof r=="number"?Ov(A,r):k(A.dtype)||k(r.dtype)?st(A,r,(I,t,o,e)=>I!==o?I>=o:t>=e):Qr(A,r,(I,t)=>I>=t)}function sR(A,r){return typeof r=="number"?Vv(A,r):k(A.dtype)||k(r.dtype)?st(A,r,(I,t,o,e)=>I!==o?I<o:t<e):Qr(A,r,(I,t)=>I<t)}function ER(A,r){return typeof r=="number"?Wv(A,r):k(A.dtype)||k(r.dtype)?st(A,r,(I,t,o,e)=>I!==o?I<=o:t<=e):Qr(A,r,(I,t)=>I<=t)}function uR(A,r){return typeof r=="number"?Zv(A,r):k(A.dtype)||k(r.dtype)?st(A,r,(I,t,o,e)=>I===o&&t===e):Qr(A,r,(I,t)=>I===t)}function cR(A,r){return typeof r=="number"?zv(A,r):k(A.dtype)||k(r.dtype)?st(A,r,(I,t,o,e)=>I!==o||t!==e):Qr(A,r,(I,t)=>I!==t)}function Jc(A,r,I=1e-5,t=1e-8){return typeof r=="number"?jv(A,r,I,t):Qr(A,r,(o,e)=>{let g=Math.abs(o-e),i=t+I*Math.abs(e);return g<=i})}function DR(A,r,I=1e-5,t=1e-8){let o=Jc(A,r,I,t),e=o.data;for(let g=0;g<o.size;g++)if(e[g]===0)return!1;return!0}function fR(A,r){let I=[Array.from(A.shape),Array.from(r.shape)],t=kr(I);if(t===null)return!1;let o=Dr(A,t),e=Dr(r,t),g=t.length,i=t.reduce((C,a)=>C*a,1),n=P(o.dtype),Q=P(e.dtype);for(let C=0;C<i;C++){let a=C,B=new Array(g);for(let u=g-1;u>=0;u--)B[u]=a%t[u],a=Math.floor(a/t[u]);let s=o.get(...B),E=e.get(...B);if(n||Q){let u=typeof s=="bigint"?s:BigInt(Number(s)),D=typeof E=="bigint"?E:BigInt(Number(E));if(u!==D)return!1}else if(s!==E)return!1}return!0}function Tv(A,r){let I=new Uint8Array(A.size),t=A.size,o=A.isCContiguous;if(k(A.dtype))if(o){let e=A.data,g=A.offset;for(let i=0;i<t;i++){let[n,Q]=pI(e,g+i);I[i]=(n!==r?n>r:Q>0)?1:0}}else for(let e=0;e<t;e++){let g=A.iget(e);I[e]=(g.re!==r?g.re>r:g.im>0)?1:0}else if(o){let e=A.data,g=A.offset;for(let i=0;i<t;i++)I[i]=e[g+i]>r?1:0}else for(let e=0;e<t;e++)I[e]=Number(A.iget(e))>r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function Ov(A,r){let I=new Uint8Array(A.size),t=A.size,o=A.isCContiguous;if(k(A.dtype))if(o){let e=A.data,g=A.offset;for(let i=0;i<t;i++){let[n,Q]=pI(e,g+i);I[i]=(n!==r?n>=r:Q>=0)?1:0}}else for(let e=0;e<t;e++){let g=A.iget(e);I[e]=(g.re!==r?g.re>=r:g.im>=0)?1:0}else if(o){let e=A.data,g=A.offset;for(let i=0;i<t;i++)I[i]=e[g+i]>=r?1:0}else for(let e=0;e<t;e++)I[e]=Number(A.iget(e))>=r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function Vv(A,r){let I=new Uint8Array(A.size),t=A.size,o=A.isCContiguous;if(k(A.dtype))if(o){let e=A.data,g=A.offset;for(let i=0;i<t;i++){let[n,Q]=pI(e,g+i);I[i]=(n!==r?n<r:Q<0)?1:0}}else for(let e=0;e<t;e++){let g=A.iget(e);I[e]=(g.re!==r?g.re<r:g.im<0)?1:0}else if(o){let e=A.data,g=A.offset;for(let i=0;i<t;i++)I[i]=e[g+i]<r?1:0}else for(let e=0;e<t;e++)I[e]=Number(A.iget(e))<r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function Wv(A,r){let I=new Uint8Array(A.size),t=A.size,o=A.isCContiguous;if(k(A.dtype))if(o){let e=A.data,g=A.offset;for(let i=0;i<t;i++){let[n,Q]=pI(e,g+i);I[i]=(n!==r?n<=r:Q<=0)?1:0}}else for(let e=0;e<t;e++){let g=A.iget(e);I[e]=(g.re!==r?g.re<=r:g.im<=0)?1:0}else if(o){let e=A.data,g=A.offset;for(let i=0;i<t;i++)I[i]=e[g+i]<=r?1:0}else for(let e=0;e<t;e++)I[e]=Number(A.iget(e))<=r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function Zv(A,r){let I=new Uint8Array(A.size),t=A.size,o=A.dtype,e=A.isCContiguous;if(k(o))if(e){let g=A.data,i=A.offset;for(let n=0;n<t;n++){let[Q,C]=pI(g,i+n);I[n]=Q===r&&C===0?1:0}}else for(let g=0;g<t;g++){let i=A.iget(g);I[g]=i.re===r&&i.im===0?1:0}else if(P(o)){let g=BigInt(Math.round(r));if(e){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++)I[Q]=i[n+Q]===g?1:0}else for(let i=0;i<t;i++)I[i]=A.iget(i)===g?1:0}else if(e){let g=A.data,i=A.offset;for(let n=0;n<t;n++)I[n]=g[i+n]===r?1:0}else for(let g=0;g<t;g++)I[g]=Number(A.iget(g))===r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function zv(A,r){let I=new Uint8Array(A.size),t=A.size,o=A.dtype,e=A.isCContiguous;if(k(o))if(e){let g=A.data,i=A.offset;for(let n=0;n<t;n++){let[Q,C]=pI(g,i+n);I[n]=Q!==r||C!==0?1:0}}else for(let g=0;g<t;g++){let i=A.iget(g);I[g]=i.re!==r||i.im!==0?1:0}else if(e){let g=A.data,i=A.offset;for(let n=0;n<t;n++)I[n]=g[i+n]!==r?1:0}else for(let g=0;g<t;g++)I[g]=Number(A.iget(g))!==r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function jv(A,r,I,t){let o=new Uint8Array(A.size),e=A.size,g=t+I*Math.abs(r);if(A.isCContiguous){let i=A.data,n=A.offset;for(let Q=0;Q<e;Q++){let C=Math.abs(Number(i[n+Q])-r);o[Q]=C<=g?1:0}}else for(let i=0;i<e;i++){let n=Math.abs(Number(A.iget(i))-r);o[i]=n<=g?1:0}return d.fromData(o,Array.from(A.shape),"bool")}function xg(A,r){let I=typeof r=="number"?r:G(r);return q(YS(G(A),I))}function Ug(A,r){let I=typeof r=="number"?r:G(r);return q(PS(G(A),I))}function Lg(A){return q(_S(G(A)))}function Hg(A,r){let I=typeof r=="number"?r:G(r);return q(KS(G(A),I))}function Yg(A){return q(vS(G(A)))}function Pg(A){return q(XS(G(A)))}function _g(A){return q(TS(G(A)))}function Kg(A){return q(OS(G(A)))}function xc(A){return q(IR(G(A)))}function Uc(A){return q(tR(G(A)))}function Lc(A){return q(jS(G(A)))}function pQ(A){return $S(G(A))}function Hc(A){return q(AR(G(A)))}function NQ(A){return rR(G(A))}function Yc(A,r){return q(eR(G(A),r))}function FQ(A){return oR(G(A))}function GQ(A){return gR(A)}function SQ(A){return iR(A)}function RQ(A,r){return nR(A,r)}function kQ(A,r){return QR(A,r)}function vg(A,r){let I=typeof r=="number"?r:G(r);return q(VS(G(A),I))}function Xg(A){return q(WS(G(A)))}function Tg(A,r){let I=typeof r=="number"?r:G(r);return q(ZS(G(A),I))}function Og(A){return q(zS(G(A)))}function Vg(A,r){return q(aR(G(A),typeof r=="number"?r:G(r)))}function Wg(A,r){return q(BR(G(A),typeof r=="number"?r:G(r)))}function Zg(A,r){return q(sR(G(A),typeof r=="number"?r:G(r)))}function zg(A,r){return q(ER(G(A),typeof r=="number"?r:G(r)))}function jg(A,r){return q(uR(G(A),typeof r=="number"?r:G(r)))}function $g(A,r){return q(cR(G(A),typeof r=="number"?r:G(r)))}function Ai(A,r,I=1e-5,t=1e-8){return q(Jc(G(A),typeof r=="number"?r:G(r),I,t))}function Et(A,r,I=1e-5,t=1e-8){return DR(G(A),typeof r=="number"?r:G(r),I,t)}var $v="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",ri=null;function ut(){if(ri)return ri;let A=atob($v),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ri=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ri.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ri}function mR(A,r){return ut().exports.reduce_count_nz_f64(A,r)}function Pc(A,r){return ut().exports.reduce_count_nz_f32(A,r)}function _c(A,r){return ut().exports.reduce_count_nz_i64(A,r)}function Kc(A,r){return ut().exports.reduce_count_nz_i32(A,r)}function vc(A,r){return ut().exports.reduce_count_nz_i16(A,r)}function Xc(A,r){return ut().exports.reduce_count_nz_i8(A,r)}var AX=64,rX={float64:mR,float32:Pc,float16:Pc,int64:_c,uint64:_c,int32:Kc,uint32:Kc,int16:vc,uint16:vc,int8:Xc,uint8:Xc},IX={float64:Float64Array,float32:Float32Array,float16:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function lR(A){if(!A.isCContiguous)return null;let r=A.size;if(r<AX*K.thresholdMultiplier)return null;let I=A.dtype,t=rX[I],o=IX[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT;x(r*e),U();let g=A.offset,i=A.data.subarray(g,g+r),n=AA(i,I),Q=R(n);return Number(t(Q,r))}var tX="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UCAG/VH9CwEAIAVBEGohBSAEQXhqIgQNAAsgASADRg0BCyABIANrIQQgACADQQF0aiEFA0AgBUGAgH5BfyAFLgEAIgNBf0obIANzOwEAIAVBAmohBSAEQX9qIgQNAAsLAkACQCABQYB+akGBHk8NACAAIAEgAhCSgICAAAwBCyABQQFGDQAgAEEAIAFBf2ogAWdBAXRBPnMQk4CAgAALQQAhAwJAIAFBCEkNACABQXhxIgMhBCAAIQUDQCAF/Qz/////////////////////Igb9DACAAIAAgACAAIAAgACAAIAgBf0AAQAiByAG/TH9UiAH/VH9CwEAIAVBEGohBSAEQXhqIgQNAAsgASADRg0BCyABIANrIQQgACADQQF0aiEFA0AgBUF/QYCAfiAFLgEAIgNBf0obIANzOwEAIAVBAmohBSAEQX9qIgQNAAsLIAJBgMAAaiSAgICAAAuVBAIFfwJ7I4CAgIAAQYDAAGsiAySAgICAAAJAIAIgAWwiBEUNAEEAIQUCQCAEQQhJDQAgBEF4cSIFIQYgACEHA0AgByAH/QABACIIQQ/9jAH9DACAAIAAgACAAIAAgACAAID9UCAI/VH9CwEAIAdBEGohByAGQXhqIgYNAAsgBCAFRg0BCyAEIAVrIQYgACAFQQF0aiEHA0AgB0GAgH5BfyAHLgEAIgVBf0obIAVzOwEAIAdBAmohByAGQX9qIgYNAAsLAkACQAJAIAFBgH5qQYEeSQ0AIAJFDQIgAUECSQ0BIAFBf2ohBiABZ0EBdEE+cyEFIAFBAXQhASAAIQcDQCAHQQAgBiAFEJOAgIAAIAcgAWohByACQX9qIgINAAwCCwsgAkUNASABQQF0IQYgACEHA0AgByABIAMQkoCAgAAgByAGaiEHIAJBf2oiAg0ACwsgBEUNAEEAIQYCQCAEQQhJDQAgBEF4cSIGIQIgACEHA0AgB/0M/////////////////////yII/QwAgACAAIAAgACAAIAAgACAIAf9AAEAIgkgCP0x/VIgCf1R/QsBACAHQRBqIQcgAkF4aiICDQALIAQgBkYNAQsgBCAGayECIAAgBkEBdGohBwNAIAdBf0GAgH4gBy4BACIGQX9KGyAGczsBACAHQQJqIQcgAkF/aiICDQALCyADQYDAAGokgICAgAALJAACQCABQQJJDQAgAEEAIAFBf2ogAWdBAXRBPnMQpYCAgAALC4cMBwV/AXwCfwF8AXsEfAF/AkAgAiABTQ0AIABBEGohBANAAkAgAiABayIFQRdLDQAgACABQQR0aiEGIAEhBwNAIAcgAUkhCCAAIAdBAWoiB0EEdGorAwAhCSAAIAdBAXQiCkEBciILQQN0aisDACEMAkAgCA0AIAYhCCAHIQUgCSAJYiAMIAxicg0AAkADQAJAIAj9AAMAIg39IQAiDiAOYg0AIA39IQEiDyAPYg0AIAkgDmMNACAJIA5kDQIgDCAPY0UNAgsgCEEQaiAN/QsDACAIQXBqIQggBUF/aiIFIAFLDQALIAEhBQsgBUEBdCIKQQFyIQsLIAAgC0EDdGogDDkDACAAIApBA3RqIAk5AwAgBkEQaiEGIAcgAkcNAAwDCwsCQCADDQAgACABQQR0aiIIIAVBf2oiB0EBdiIGIAUQpoCAgAAgBkF/aiEGA0AgCCAGIAUQpoCAgAAgBkF/aiIGQX9HDQALIAAgAkEEdGohBQNAIAj9AAMAIQ0gCCAF/QADAP0LAwAgBSAN/QsDACAIQQAgBxCmgICAACAFQXBqIQUgB0F/aiIHQX9HDQAMAwsLIAAgAUEEdGoiCCsDACEMIAhBCGoiBisDACEQIAAgAkEEdGoiB0EIaiILKwMAIQ8CQAJAAkAgBysDACIOIA5iDQAgDyAPYg0AIA4gDGMNASAMIAxiDQEgECAQYg0BIA4gDGQNACAPIBBjDQELIBAhESAMIQkMAQsgBiAPOQMAIAggDjkDACALIBA5AwAgByAMOQMAIAYrAwAhESAIKwMAIQkgECEPIAwhDgsgACAFIAFBAXRqIgpBA3RBCHJqIgUrAwAhEAJAAkAgACAKQf7///8BcUEDdGoiCisDACIMIAxiDQAgECAQYg0AAkAgDCAJYw0AIAkgCWINACARIBFiDQAgDCAJZA0BIBAgEWNFDQELIAggDDkDACAKIAk5AwAgBiAQOQMAIAUgETkDACALKwMAIQ8gBysDACEODAELIBAhESAMIQkLAkAgDiAOYg0AIA8gD2INAAJAIAkgCWINACARIBFiDQAgDiAJYw0AIA4gCWQNASAPIBFjRQ0BCyAKIA45AwAgByAJOQMAIAUgDzkDACALIBE5AwAgBSsDACERCyACIQUgASEGAkACQCAKKwMAIgkgCWIgESARYnJFDQAgAiEFIAEhBwNAIAdBAXQhBgJAIAAgB0EEdCILaiIIKwMAIg4gDmINACAAIAZBA3RqQQhqKwMAIg8gD2INACAHQQFqIQogBCALaiELIAdBAXRBAmohEgNAIAohByASIQYgCyIIKwMAIg4gDmINASAIQRBqIQsgBkECaiESIAdBAWohCiAIQQhqKwMAIg8gD2ENAAsLIAcgBU8NAiAIIAAgBUEEdGoiCisDADkDACAKIA45AwAgACAGQQN0akEIaiIIKwMAIQ4gCCAKQQhqIgYrAwA5AwAgBiAOOQMAIAVBf2ohBSAHQQFqIQcMAAsLA0AgBkEBdCEKAkAgACAGQQR0aiILKwMAIgwgDGINACAAIApBA3RqQQhqKwMAIg4gDmINAAJAAkADQCAGIRIgCiEHIAshCAJAIAwgCWMNACAMIAlkDQIgDiARY0UNAgsgCEEQaiILKwMAIgwgDGINAiASQQFqIQYgB0ECaiEKIAhBGGorAwAiDiAOYg0CDAALCyAIIQsgByEKIBIhBgwBCyAIQRBqIQsgB0ECaiEKIBJBAWohBgsgACAFQQR0aiEIA0ACQCAIKwMAIg4gDmINACAIQQhqIgcrAwAiDyAPYg0AIAkgDmMNAAJAIAkgDmQNACARIA9jDQELIAYgBU8NAyALIA45AwAgCCAMOQMAIAAgCkEDdGpBCGoiCCsDACEOIAggBysDADkDACAHIA45AwAgBUF/aiEFIAZBAWohBgwCCyAIQXBqIQggBUF/aiEFDAALCwsgA0F/aiEDAkACQCAFIAFrIAIgBWtJDQAgACAFQQFqIAIgAxClgICAACAFIQIMAQsgACABIAUgAxClgICAACAFQQFqIQELIAIgAUsNAAsLC80CAgZ/BHwCQCABQQF0IgEgAk8NAANAIAEiA0EBciIEQQF0IQUCQAJAAkAgA0ECaiIGIAJNDQAgBUEBciEHDAELIAVBAXIhCAJAIAAgBUEDdGorAwAiCSAJYg0AIAAgCEEDdGorAwAiCiAKYg0AIAZBAXQiAUEBciEHIAkgACAGQQR0aisDACILYw0CIAsgC2INAiAAIAdBA3RqKwMAIgwgDGINAiAJIAtkDQAgCiAMYw0CCyAIIQcLIAUhAQsgACADQQN0aiIFKwMAIgkgCWINASAAIARBA3RqIgMrAwAiDCAMYg0BIAAgB0EDdGoiBysDACELAkAgCSAAIAFBA3RqIgQrAwAiCmMNACAKIApiDQAgCyALYg0AIAkgCmQNAiAMIAtjRQ0CCyAFIAo5AwAgBCAJOQMAIAMgCzkDACAHIAw5AwAgASACSQ0ACwsLJAACQCABQQJJDQAgAEEAIAFBf2ogAWdBAXRBPnMQqICAgAALC6QMBQV/AX0CfwV9AX8CQCACIAFNDQAgAEEIaiEEA0ACQCACIAFrIgVBF0sNACAAIAFBA3RqIQYgASEHA0AgByABSSEIIAAgB0EBaiIHQQN0aioCACEJIAAgB0EBdCIKQQFyIgtBAnRqKgIAIQwCQCAIDQAgBiEIIAchBSAJIAlcIAwgDFxyDQACQANAIAhBBGoqAgAhDQJAIAgqAgAiDiAOXA0AIA0gDVwNACAJIA5dDQAgCSAOXg0CIAwgDV1FDQILIAhBDGogDTgCACAIQQhqIA44AgAgCEF4aiEIIAVBf2oiBSABSw0ACyABIQULIAVBAXQiCkEBciELCyAAIAtBAnRqIAw4AgAgACAKQQJ0aiAJOAIAIAZBCGohBiAHIAJHDQAMAwsLAkAgAw0AIAAgAUEDdGoiCCAFQX9qIgdBAXYiBiAFEKmAgIAAIAZBf2ohBgNAIAggBiAFEKmAgIAAIAZBf2oiBkF/Rw0ACyAAIAJBA3RqIQUDQCAIKgIAIQ4gCCAFKgIAOAIAIAUgDjgCACAIKgIEIQ4gCCAFQQRqIgYqAgA4AgQgBiAOOAIAIAhBACAHEKmAgIAAIAVBeGohBSAHQX9qIgdBf0cNAAwDCwsgACABQQN0aiIIKgIAIQwgCEEEaiIGKgIAIQ8gACACQQN0aiIHQQRqIgsqAgAhDQJAAkACQCAHKgIAIg4gDlwNACANIA1cDQAgDiAMXQ0BIAwgDFwNASAPIA9cDQEgDiAMXg0AIA0gD10NAQsgDyEQIAwhCQwBCyAGIA04AgAgCCAOOAIAIAsgDzgCACAHIAw4AgAgBioCACEQIAgqAgAhCSAPIQ0gDCEOCyAAIAUgAUEBdGoiCkECdEEEcmoiBSoCACEPAkACQCAAIApB/v///wNxQQJ0aiIKKgIAIgwgDFwNACAPIA9cDQACQCAMIAldDQAgCSAJXA0AIBAgEFwNACAMIAleDQEgDyAQXUUNAQsgCCAMOAIAIAogCTgCACAGIA84AgAgBSAQOAIAIAsqAgAhDSAHKgIAIQ4MAQsgDyEQIAwhCQsCQCAOIA5cDQAgDSANXA0AAkAgCSAJXA0AIBAgEFwNACAOIAldDQAgDiAJXg0BIA0gEF1FDQELIAogDjgCACAHIAk4AgAgBSANOAIAIAsgEDgCACAFKgIAIRALIAIhBSABIQYCQAJAIAoqAgAiCSAJXCAQIBBcckUNACACIQUgASEHA0AgB0EBdCEGAkAgACAHQQN0IgtqIggqAgAiDiAOXA0AIAAgBkECdGpBBGoqAgAiDSANXA0AIAdBAWohCiAEIAtqIQsgB0EBdEECaiERA0AgCiEHIBEhBiALIggqAgAiDiAOXA0BIAhBCGohCyAGQQJqIREgB0EBaiEKIAhBBGoqAgAiDSANWw0ACwsgByAFTw0CIAggACAFQQN0aiIKKgIAOAIAIAogDjgCACAAIAZBAnRqQQRqIggqAgAhDiAIIApBBGoiBioCADgCACAGIA44AgAgBUF/aiEFIAdBAWohBwwACwsDQCAGQQF0IQoCQCAAIAZBA3RqIgsqAgAiDCAMXA0AIAAgCkECdGpBBGoqAgAiDiAOXA0AAkACQANAIAYhESAKIQcgCyEIAkAgDCAJXQ0AIAwgCV4NAiAOIBBdRQ0CCyAIQQhqIgsqAgAiDCAMXA0CIBFBAWohBiAHQQJqIQogCEEMaioCACIOIA5cDQIMAAsLIAghCyAHIQogESEGDAELIAhBCGohCyAHQQJqIQogEUEBaiEGCyAAIAVBA3RqIQgDQAJAIAgqAgAiDiAOXA0AIAhBBGoiByoCACINIA1cDQAgCSAOXQ0AAkAgCSAOXg0AIBAgDV0NAQsgBiAFTw0DIAsgDjgCACAIIAw4AgAgACAKQQJ0akEEaiIIKgIAIQ4gCCAHKgIAOAIAIAcgDjgCACAFQX9qIQUgBkEBaiEGDAILIAhBeGohCCAFQX9qIQUMAAsLCyADQX9qIQMCQAJAIAUgAWsgAiAFa0kNACAAIAVBAWogAiADEKiAgIAAIAUhAgwBCyAAIAEgBSADEKiAgIAAIAVBAWohAQsgAiABSw0ACwsLzQICBn8EfQJAIAFBAXQiASACTw0AA0AgASIDQQFyIgRBAXQhBQJAAkACQCADQQJqIgYgAk0NACAFQQFyIQcMAQsgBUEBciEIAkAgACAFQQJ0aioCACIJIAlcDQAgACAIQQJ0aioCACIKIApcDQAgBkEBdCIBQQFyIQcgCSAAIAZBA3RqKgIAIgtdDQIgCyALXA0CIAAgB0ECdGoqAgAiDCAMXA0CIAkgC14NACAKIAxdDQILIAghBwsgBSEBCyAAIANBAnRqIgUqAgAiCSAJXA0BIAAgBEECdGoiAyoCACIMIAxcDQEgACAHQQJ0aiIHKgIAIQsCQCAJIAAgAUECdGoiBCoCACIKXQ0AIAogClwNACALIAtcDQAgCSAKXg0CIAwgC11FDQILIAUgCjgCACAEIAk4AgAgAyALOAIAIAcgDDgCACABIAJJDQALCwtNAQJ/AkAgAkUNACABQQJJDQAgAUF/aiEDIAFBBHQhBCABZ0EBdEE+cyEBA0AgAEEAIAMgARClgICAACAAIARqIQAgAkF/aiICDQALCwtNAQJ/AkAgAkUNACABQQJJDQAgAUF/aiEDIAFBA3QhBCABZ0EBdEE+cyEBA0AgAEEAIAMgARCogICAACAAIARqIQAgAkF/aiICDQALCws=",Ii=null;function hA(){if(Ii)return Ii;let A=atob(tX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ii=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ii.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ii}function hR(A,r){hA().exports.sort_f64(A,r)}function wR(A,r){hA().exports.sort_f32(A,r)}function dR(A,r){hA().exports.sort_i64(A,r)}function bR(A,r){hA().exports.sort_u64(A,r)}function pR(A,r){hA().exports.sort_i32(A,r)}function NR(A,r){hA().exports.sort_u32(A,r)}function FR(A,r){hA().exports.sort_i16(A,r)}function GR(A,r){hA().exports.sort_u16(A,r)}function SR(A,r){hA().exports.sort_i8(A,r)}function RR(A,r){hA().exports.sort_u8(A,r)}function kR(A,r,I){hA().exports.sort_slices_f64(A,r,I)}function qR(A,r,I){hA().exports.sort_slices_f32(A,r,I)}function MR(A,r,I){hA().exports.sort_slices_i64(A,r,I)}function JR(A,r,I){hA().exports.sort_slices_u64(A,r,I)}function xR(A,r,I){hA().exports.sort_slices_i32(A,r,I)}function UR(A,r,I){hA().exports.sort_slices_u32(A,r,I)}function LR(A,r,I){hA().exports.sort_slices_i16(A,r,I)}function HR(A,r,I){hA().exports.sort_slices_u16(A,r,I)}function YR(A,r,I){hA().exports.sort_slices_i8(A,r,I)}function PR(A,r,I){hA().exports.sort_slices_u8(A,r,I)}function _R(A,r){hA().exports.sort_f16(A,r)}function KR(A,r,I){hA().exports.sort_slices_f16(A,r,I)}function vR(A,r){hA().exports.sort_c128(A,r)}function XR(A,r){hA().exports.sort_c64(A,r)}function TR(A,r,I){hA().exports.sort_slices_c128(A,r,I)}function OR(A,r,I){hA().exports.sort_slices_c64(A,r,I)}var oX=64,VR={float64:hR,float32:wR,float16:_R,int64:dR,uint64:bR,int32:pR,uint32:NR,int16:FR,uint16:GR,int8:SR,uint8:RR,complex128:vR,complex64:XR},eX={float64:kR,float32:qR,float16:KR,int64:MR,uint64:JR,int32:xR,uint32:UR,int16:LR,uint16:HR,int8:YR,uint8:PR,complex128:TR,complex64:OR},WR={float64:Float64Array,float32:Float32Array,float16:Uint16Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,complex128:Float64Array,complex64:Float32Array};function ZR(A,r,I,t,o){if(I<2)return!0;let e=eX[o],g=A.byteLength;if(e&&r[0]===0&&t>1&&r[1]===I){x(g),U();let E=R(A);e(E,I,t);let u=T();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(u.buffer,E,A.byteLength)),!0}let i=VR[o],n=WR[o];if(!i||!n)return!1;let Q=o==="complex128"||o==="complex64",C=n.BYTES_PER_ELEMENT,a=Q?C*2:C;x(g),U();let B=R(A);for(let E=0;E<t;E++)i(B+r[E]*a,I);let s=T();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(s.buffer,B,A.byteLength)),!0}function zR(A){if(!A.isCContiguous)return null;let r=A.size;if(r<oX*K.thresholdMultiplier)return null;let I=A.dtype,t=VR[I],o=WR[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT,g=r*e;x(g),U();let i=I==="float16",n=A.offset,C=I==="complex128"||I==="complex64"?r*2:r,a=A.data.subarray(n,n+C);i&&(a=AA(a,I));let B=R(a);t(B,r);let s=_(B,C,o);return d.fromData(i?eA(s,I):s,Array.from(A.shape),I)}var gX="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",ti=null;function NA(){if(ti)return ti;let A=atob(gX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ti=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ti.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ti}function jR(A,r,I){NA().exports.argsort_f64(A,r,I)}function Tc(A,r,I){NA().exports.argsort_f32(A,r,I)}function $R(A,r,I){NA().exports.argsort_i64(A,r,I)}function Ak(A,r,I){NA().exports.argsort_u64(A,r,I)}function rk(A,r,I){NA().exports.argsort_i32(A,r,I)}function Ik(A,r,I){NA().exports.argsort_u32(A,r,I)}function tk(A,r,I){NA().exports.argsort_i16(A,r,I)}function ok(A,r,I){NA().exports.argsort_u16(A,r,I)}function ek(A,r,I){NA().exports.argsort_i8(A,r,I)}function gk(A,r,I){NA().exports.argsort_u8(A,r,I)}function ik(A,r,I,t){NA().exports.argsort_slices_f64(A,r,I,t)}function Oc(A,r,I,t){NA().exports.argsort_slices_f32(A,r,I,t)}function nk(A,r,I,t){NA().exports.argsort_slices_i64(A,r,I,t)}function Qk(A,r,I,t){NA().exports.argsort_slices_u64(A,r,I,t)}function Ck(A,r,I,t){NA().exports.argsort_slices_i32(A,r,I,t)}function ak(A,r,I,t){NA().exports.argsort_slices_u32(A,r,I,t)}function Bk(A,r,I,t){NA().exports.argsort_slices_i16(A,r,I,t)}function sk(A,r,I,t){NA().exports.argsort_slices_u16(A,r,I,t)}function Ek(A,r,I,t){NA().exports.argsort_slices_i8(A,r,I,t)}function uk(A,r,I,t){NA().exports.argsort_slices_u8(A,r,I,t)}function ck(A,r,I){NA().exports.argsort_c128(A,r,I)}function Dk(A,r,I){NA().exports.argsort_c64(A,r,I)}function fk(A,r,I,t){NA().exports.argsort_slices_c128(A,r,I,t)}function yk(A,r,I,t){NA().exports.argsort_slices_c64(A,r,I,t)}var iX=64,mk={float64:jR,float32:Tc,int64:$R,uint64:Ak,int32:rk,uint32:Ik,int16:tk,uint16:ok,int8:ek,uint8:gk,complex128:ck,complex64:Dk,float16:Tc},nX={float64:ik,float32:Oc,int64:nk,uint64:Qk,int32:Ck,uint32:ak,int16:Bk,uint16:sk,int8:Ek,uint8:uk,complex128:fk,complex64:yk,float16:Oc},Vc={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,complex128:Float64Array,complex64:Float32Array,float16:Float32Array};function lk(A,r,I,t,o,e,g){if(o<2)return!1;let i=g==="complex128"||g==="complex64",n=nX[g];if(n&&I[0]===0&&e>1&&I[1]===o&&t[0]===0&&t[1]===o){let f=Vc[g];if(!f)return!1;let c=f.BYTES_PER_ELEMENT,m=A.length*c,l=r.length*4;x(m+l),U();let w=R(g==="float16"?AA(A,g):A),h=H(l);n(w,h,o,e);let b=T();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(b.buffer,h,r.byteLength)),!0}let Q=mk[g],C=Vc[g];if(!Q||!C)return!1;let a=C.BYTES_PER_ELEMENT,B=i?a*2:a,s=A.length*a,E=r.length*4;x(s+E),U();let u=R(g==="float16"?AA(A,g):A),D=H(E);for(let f=0;f<e;f++)Q(u+I[f]*B,D+t[f]*4,o);let y=T();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(y.buffer,D,r.byteLength)),!0}function hk(A){if(!A.isCContiguous)return null;let r=A.size;if(r<iX*K.thresholdMultiplier)return null;let I=A.dtype,t=mk[I],o=Vc[I];if(!t||!o)return null;let e=I==="complex128"||I==="complex64",g=o.BYTES_PER_ELEMENT,i=e?r*2:r,n=i*g,Q=r*4;x(n+Q),U();let C=A.offset,a=A.data.subarray(C,C+i);I==="float16"&&(a=AA(a,I));let B=R(a),s=H(Q);t(B,s,r);let E=_(s,r,Int32Array);return d.fromData(E,Array.from(A.shape),"int32")}var QX="AGFzbQEAAAABDgJgA39/fwBgBH9/f38AAg8BA2VudgZtZW1vcnkCABADFxYAAAAAAAAAAAAAAAABAQEBAQEBAQEBBgkBfwFBgIDAAAsHgwMUDXBhcnRpdGlvbl9mNjQAAA1wYXJ0aXRpb25fZjMyAAINcGFydGl0aW9uX2k2NAAEDXBhcnRpdGlvbl91NjQABQ1wYXJ0aXRpb25faTMyAAYNcGFydGl0aW9uX3UzMgAHDXBhcnRpdGlvbl9pMTYACA1wYXJ0aXRpb25fdTE2AAkMcGFydGl0aW9uX2k4AAoMcGFydGl0aW9uX3U4AAsUcGFydGl0aW9uX3NsaWNlc19mNjQADBRwYXJ0aXRpb25fc2xpY2VzX2YzMgANFHBhcnRpdGlvbl9zbGljZXNfaTY0AA4UcGFydGl0aW9uX3NsaWNlc191NjQADxRwYXJ0aXRpb25fc2xpY2VzX2kzMgAQFHBhcnRpdGlvbl9zbGljZXNfdTMyABEUcGFydGl0aW9uX3NsaWNlc19pMTYAEhRwYXJ0aXRpb25fc2xpY2VzX3UxNgATE3BhcnRpdGlvbl9zbGljZXNfaTgAFBNwYXJ0aXRpb25fc2xpY2VzX3U4ABUK81AWIgACQCABQQJJDQAgAiABTw0AIAAgAUF/aiACEIGAgIAACwv3BQUFfwF8AX8CfAF/QQAhAwNAIAEgA2siBEEBdiEFIAAgA0EDdCIGaiIHKwMAIQgCQAJAAkAgACABQQN0aiIJKwMAIgogCmINACAIIAhiDQEgCiAIYw0BCyAIIQsMAQsgByAKOQMAIAkgCDkDACAHKwMAIQsgCCEKCwJAAkACQCAAIAVBA3RqIAZqIgUrAwAiCCAIYg0AIAsgC2INASAIIAtjDQELIAghCwwBCyAHIAg5AwAgBSALOQMAIAkrAwAhCgsCQAJAIAogCmENACALIQgMAQsCQCALIAtiDQAgCiALYw0AIAshCAwBCyAFIAo5AwAgCSALOQMAIAUrAwAhCCALIQoLIAUgCjkDACAJIAg5AwACQAJAIAggCGINACADQQFqIQUgAyEGIAMhDAJAIARBAXFFDQAgBSADIAcrAwAgCGMbIQYgBSEMCyABIAVGDQEgASAMayEHIAAgDEEDdGohBQNAAkAgBSsDACIKIAhjRQ0AIAAgBkEDdGoiDCsDACELIAwgCjkDACAFIAs5AwAgBkEBaiEGCwJAIAVBCGoiDCsDACIKIAhjRQ0AIAAgBkEDdGoiBCsDACELIAQgCjkDACAMIAs5AwAgBkEBaiEGCyAFQRBqIQUgB0F+aiIHDQAMAgsLIANBAWohBSADIQYgAyEMAkAgBEEBcUUNACADIAUgBysDACIIIAhiGyEGIAUhDAsgASAFRg0AIAEgDGshByAAIAxBA3RqIQUDQAJAIAUrAwAiCCAIYg0AIAAgBkEDdGoiDCsDACEKIAwgCDkDACAFIAo5AwAgBkEBaiEGCwJAIAVBCGoiDCsDACIIIAhiDQAgACAGQQN0aiIEKwMAIQogBCAIOQMAIAwgCjkDACAGQQFqIQYLIAVBEGohBSAHQX5qIgcNAAsLIAAgBkEDdGoiBSsDACEIIAUgCSsDADkDACAJIAg5AwACQCAGIAJGDQAgAyAGQQFqIAIgBkkiBRsiAyAGQX9qIAEgBRsiAUkNAQsLCyIAAkAgAUECSQ0AIAIgAU8NACAAIAFBf2ogAhCDgICAAAsL9wUFBX8BfQF/An0Bf0EAIQMDQCABIANrIgRBAXYhBSAAIANBAnQiBmoiByoCACEIAkACQAJAIAAgAUECdGoiCSoCACIKIApcDQAgCCAIXA0BIAogCF0NAQsgCCELDAELIAcgCjgCACAJIAg4AgAgByoCACELIAghCgsCQAJAAkAgACAFQQJ0aiAGaiIFKgIAIgggCFwNACALIAtcDQEgCCALXQ0BCyAIIQsMAQsgByAIOAIAIAUgCzgCACAJKgIAIQoLAkACQCAKIApbDQAgCyEIDAELAkAgCyALXA0AIAogC10NACALIQgMAQsgBSAKOAIAIAkgCzgCACAFKgIAIQggCyEKCyAFIAo4AgAgCSAIOAIAAkACQCAIIAhcDQAgA0EBaiEFIAMhBiADIQwCQCAEQQFxRQ0AIAUgAyAHKgIAIAhdGyEGIAUhDAsgASAFRg0BIAEgDGshByAAIAxBAnRqIQUDQAJAIAUqAgAiCiAIXUUNACAAIAZBAnRqIgwqAgAhCyAMIAo4AgAgBSALOAIAIAZBAWohBgsCQCAFQQRqIgwqAgAiCiAIXUUNACAAIAZBAnRqIgQqAgAhCyAEIAo4AgAgDCALOAIAIAZBAWohBgsgBUEIaiEFIAdBfmoiBw0ADAILCyADQQFqIQUgAyEGIAMhDAJAIARBAXFFDQAgAyAFIAcqAgAiCCAIXBshBiAFIQwLIAEgBUYNACABIAxrIQcgACAMQQJ0aiEFA0ACQCAFKgIAIgggCFwNACAAIAZBAnRqIgwqAgAhCiAMIAg4AgAgBSAKOAIAIAZBAWohBgsCQCAFQQRqIgwqAgAiCCAIXA0AIAAgBkECdGoiBCoCACEKIAQgCDgCACAMIAo4AgAgBkEBaiEGCyAFQQhqIQUgB0F+aiIHDQALCyAAIAZBAnRqIgUqAgAhCCAFIAkqAgA4AgAgCSAIOAIAAkAgBiACRg0AIAMgBkEBaiACIAZJIgUbIgMgBkF/aiABIAUbIgFJDQELCwv+AwUEfwF+An8CfgF/AkAgAUECSQ0AIAIgAU8NACABQX9qIQNBACEEA0AgAyAEayIFQQF2IQECQAJAIAAgA0EDdGoiBikDACIHIAAgBEEDdCIIaiIJKQMAIgpTDQAgCiELDAELIAkgBzcDACAGIAo3AwAgCSkDACELIAohBwsCQAJAIAAgAUEDdGogCGoiASkDACIKIAtTDQAgCiELDAELIAkgCjcDACABIAs3AwAgBikDACEHCwJAAkAgByALUw0AIAshCgwBCyABIAc3AwAgBiALNwMAIAEpAwAhCiALIQcLIAEgBzcDACAGIAo3AwAgBEEBaiEBIAQhCCAEIQwCQCAFQQFxRQ0AIAEgBCAJKQMAIApTGyEIIAEhDAsCQCADIAFGDQAgAyAMayEJIAAgDEEDdGohAQNAAkAgASkDACIHIApZDQAgACAIQQN0aiIMKQMAIQsgDCAHNwMAIAEgCzcDACAIQQFqIQgLAkAgAUEIaiIMKQMAIgcgClkNACAAIAhBA3RqIgUpAwAhCyAFIAc3AwAgDCALNwMAIAhBAWohCAsgAUEQaiEBIAlBfmoiCQ0ACwsgACAIQQN0aiIBKQMAIQogASAGKQMANwMAIAYgCjcDACAIIAJGDQEgBCAIQQFqIAIgCEkiARsiBCAIQX9qIAMgARsiA0kNAAsLC/4DBQR/AX4CfwJ+AX8CQCABQQJJDQAgAiABTw0AIAFBf2ohA0EAIQQDQCADIARrIgVBAXYhAQJAAkAgACADQQN0aiIGKQMAIgcgACAEQQN0IghqIgkpAwAiClQNACAKIQsMAQsgCSAHNwMAIAYgCjcDACAJKQMAIQsgCiEHCwJAAkAgACABQQN0aiAIaiIBKQMAIgogC1QNACAKIQsMAQsgCSAKNwMAIAEgCzcDACAGKQMAIQcLAkACQCAHIAtUDQAgCyEKDAELIAEgBzcDACAGIAs3AwAgASkDACEKIAshBwsgASAHNwMAIAYgCjcDACAEQQFqIQEgBCEIIAQhDAJAIAVBAXFFDQAgASAEIAkpAwAgClQbIQggASEMCwJAIAMgAUYNACADIAxrIQkgACAMQQN0aiEBA0ACQCABKQMAIgcgCloNACAAIAhBA3RqIgwpAwAhCyAMIAc3AwAgASALNwMAIAhBAWohCAsCQCABQQhqIgwpAwAiByAKWg0AIAAgCEEDdGoiBSkDACELIAUgBzcDACAMIAs3AwAgCEEBaiEICyABQRBqIQEgCUF+aiIJDQALCyAAIAhBA3RqIgEpAwAhCiABIAYpAwA3AwAgBiAKNwMAIAggAkYNASAEIAhBAWogAiAISSIBGyIEIAhBf2ogAyABGyIDSQ0ACwsL9gMBCn8CQCABQQJJDQAgAiABTw0AIAFBf2ohA0EAIQQDQCADIARrIgVBAXYhBgJAAkAgACADQQJ0aiIHKAIAIgEgACAEQQJ0IghqIgkoAgAiCkgNACAKIQsMAQsgCSABNgIAIAcgCjYCACAJKAIAIQsgCiEBCwJAAkAgACAGQQJ0aiAIaiIGKAIAIgogC0gNACAKIQsMAQsgCSAKNgIAIAYgCzYCACAHKAIAIQELAkACQCABIAtIDQAgCyEKDAELIAYgATYCACAHIAs2AgAgBigCACEKIAshAQsgBiABNgIAIAcgCjYCACAEQQFqIQEgBCELIAQhCAJAIAVBAXFFDQAgASAEIAkoAgAgCkgbIQsgASEICwJAIAMgAUYNACADIAhrIQYgACAIQQJ0aiEBA0ACQCABKAIAIgkgCk4NACAAIAtBAnRqIggoAgAhBSAIIAk2AgAgASAFNgIAIAtBAWohCwsCQCABQQRqIgkoAgAiCCAKTg0AIAAgC0ECdGoiBSgCACEMIAUgCDYCACAJIAw2AgAgC0EBaiELCyABQQhqIQEgBkF+aiIGDQALCyAAIAtBAnRqIgEoAgAhCiABIAcoAgA2AgAgByAKNgIAIAsgAkYNASAEIAtBAWogAiALSSIBGyIEIAtBf2ogAyABGyIDSQ0ACwsL9gMBCn8CQCABQQJJDQAgAiABTw0AIAFBf2ohA0EAIQQDQCADIARrIgVBAXYhBgJAAkAgACADQQJ0aiIHKAIAIgEgACAEQQJ0IghqIgkoAgAiCkkNACAKIQsMAQsgCSABNgIAIAcgCjYCACAJKAIAIQsgCiEBCwJAAkAgACAGQQJ0aiAIaiIGKAIAIgogC0kNACAKIQsMAQsgCSAKNgIAIAYgCzYCACAHKAIAIQELAkACQCABIAtJDQAgCyEKDAELIAYgATYCACAHIAs2AgAgBigCACEKIAshAQsgBiABNgIAIAcgCjYCACAEQQFqIQEgBCELIAQhCAJAIAVBAXFFDQAgASAEIAkoAgAgCkkbIQsgASEICwJAIAMgAUYNACADIAhrIQYgACAIQQJ0aiEBA0ACQCABKAIAIgkgCk8NACAAIAtBAnRqIggoAgAhBSAIIAk2AgAgASAFNgIAIAtBAWohCwsCQCABQQRqIgkoAgAiCCAKTw0AIAAgC0ECdGoiBSgCACEMIAUgCDYCACAJIAw2AgAgC0EBaiELCyABQQhqIQEgBkF+aiIGDQALCyAAIAtBAnRqIgEoAgAhCiABIAcoAgA2AgAgByAKNgIAIAsgAkYNASAEIAtBAWogAiALSSIBGyIEIAtBf2ogAyABGyIDSQ0ACwsL/QMBCn8CQCABQQJJDQAgAiABTw0AIAFBf2ohA0EAIQQDQCADIARrIgVBAXYhBgJAAkAgACADQQF0aiIHLgEAIgEgACAEQQF0IghqIgkuAQAiCkgNACAKIQsMAQsgCSABOwEAIAcgCjsBACAJLwEAIQsgCiEBCwJAAkAgACAGQQF0aiAIaiIKLgEAIgYgC8FIDQAgBiELDAELIAkgBjsBACAKIAs7AQAgBy8BACEBCwJAAkAgAcEgC8FIDQAgCyEIDAELIAogATsBACAHIAs7AQAgCi8BACEIIAshAQsgCiABOwEAIAcgCDsBACAEQQFqIQEgBCELIAQhBgJAIAVBAXFFDQAgASAEIAkuAQAgCMFIGyELIAEhBgsCQCADIAFGDQAgAyAGayEKIAAgBkEBdGohAQNAAkAgAS4BACIGIAjBIglODQAgACALQQF0aiIFLwEAIQwgBSAGOwEAIAEgDDsBACALQQFqIQsLAkAgAUECaiIGLgEAIgUgCU4NACAAIAtBAXRqIgkvAQAhDCAJIAU7AQAgBiAMOwEAIAtBAWohCwsgAUEEaiEBIApBfmoiCg0ACwsgACALQQF0aiIBLwEAIQogASAHLwEAOwEAIAcgCjsBACALIAJGDQEgBCALQQFqIAIgC0kiARsiBCALQX9qIAMgARsiA0kNAAsLC5EEAQp/AkAgAUECSQ0AIAIgAU8NACABQX9qIQNBACEEA0AgAyAEayIFQQF2IQYCQAJAIAAgA0EBdGoiBy8BACIBIAAgBEEBdCIIaiIJLwEAIgpJDQAgCiELDAELIAkgATsBACAHIAo7AQAgCS8BACELIAohAQsCQAJAIAAgBkEBdGogCGoiCi8BACIGIAtB//8DcUkNACAGIQsMAQsgCSAGOwEAIAogCzsBACAHLwEAIQELAkACQCABQf//A3EgC0H//wNxSQ0AIAshCAwBCyAKIAE7AQAgByALOwEAIAovAQAhCCALIQELIAogATsBACAHIAg7AQAgBEEBaiEBIAQhCyAEIQYCQCAFQQFxRQ0AIAEgBCAJLwEAIAhB//8DcUkbIQsgASEGCwJAIAMgAUYNACADIAZrIQogACAGQQF0aiEBA0ACQCABLwEAIgYgCEH//wNxIglPDQAgACALQQF0aiIFLwEAIQwgBSAGOwEAIAEgDDsBACALQQFqIQsLAkAgAUECaiIGLwEAIgUgCU8NACAAIAtBAXRqIgkvAQAhDCAJIAU7AQAgBiAMOwEAIAtBAWohCwsgAUEEaiEBIApBfmoiCg0ACwsgACALQQF0aiIBLwEAIQogASAHLwEAOwEAIAcgCjsBACALIAJGDQEgBCALQQFqIAIgC0kiARsiBCALQX9qIAMgARsiA0kNAAsLC+YDAQp/AkAgAUECSQ0AIAIgAU8NACABQX9qIQNBACEEA0AgAyAEayIFQQF2IQYCQAJAIAAgA2oiBywAACIBIAAgBGoiCCwAACIJSA0AIAkhCgwBCyAIIAE6AAAgByAJOgAAIAgtAAAhCiAJIQELAkACQCAAIAZqIARqIgksAAAiBiAKwEgNACAGIQoMAQsgCCAGOgAAIAkgCjoAACAHLQAAIQELAkACQCABwCAKwEgNACAKIQsMAQsgCSABOgAAIAcgCjoAACAJLQAAIQsgCiEBCyAJIAE6AAAgByALOgAAIARBAWohASAEIQogBCEGAkAgBUEBcUUNACABIAQgCCwAACALwEgbIQogASEGCwJAIAMgAUYNACADIAZrIQkgACAGaiEBA0ACQCABLAAAIgYgC8AiCE4NACAAIApqIgUtAAAhDCAFIAY6AAAgASAMOgAAIApBAWohCgsCQCABQQFqIgYsAAAiBSAITg0AIAAgCmoiCC0AACEMIAggBToAACAGIAw6AAAgCkEBaiEKCyABQQJqIQEgCUF+aiIJDQALCyAAIApqIgEtAAAhCSABIActAAA6AAAgByAJOgAAIAogAkYNASAEIApBAWogAiAKSSIBGyIEIApBf2ogAyABGyIDSQ0ACwsL9QMBCn8CQCABQQJJDQAgAiABTw0AIAFBf2ohA0EAIQQDQCADIARrIgVBAXYhBgJAAkAgACADaiIHLQAAIgEgACAEaiIILQAAIglJDQAgCSEKDAELIAggAToAACAHIAk6AAAgCC0AACEKIAkhAQsCQAJAIAAgBmogBGoiCS0AACIGIApB/wFxSQ0AIAYhCgwBCyAIIAY6AAAgCSAKOgAAIActAAAhAQsCQAJAIAFB/wFxIApB/wFxSQ0AIAohCwwBCyAJIAE6AAAgByAKOgAAIAktAAAhCyAKIQELIAkgAToAACAHIAs6AAAgBEEBaiEBIAQhCiAEIQYCQCAFQQFxRQ0AIAEgBCAILQAAIAtB/wFxSRshCiABIQYLAkAgAyABRg0AIAMgBmshCSAAIAZqIQEDQAJAIAEtAAAiBiALQf8BcSIITw0AIAAgCmoiBS0AACEMIAUgBjoAACABIAw6AAAgCkEBaiEKCwJAIAFBAWoiBi0AACIFIAhPDQAgACAKaiIILQAAIQwgCCAFOgAAIAYgDDoAACAKQQFqIQoLIAFBAmohASAJQX5qIgkNAAsLIAAgCmoiAS0AACEJIAEgBy0AADoAACAHIAk6AAAgCiACRg0BIAQgCkEBaiACIApJIgEbIgQgCkF/aiADIAEbIgNJDQALCwtHAQF/AkAgAUECSQ0AIAMgAU8NACACRQ0AIAFBA3QhBCABQX9qIQEDQCAAIAEgAxCBgICAACAAIARqIQAgAkF/aiICDQALCwtHAQF/AkAgAUECSQ0AIAMgAU8NACACRQ0AIAFBAnQhBCABQX9qIQEDQCAAIAEgAxCDgICAACAAIARqIQAgAkF/aiICDQALCwu+BAUKfwF+An8CfgF/AkAgAUECSQ0AIAMgAU8NACACRQ0AIAFBA3QhBCABQX9qIQVBACEGIAAhBwNAIAAgBiABbEEDdGohCEEAIQkgBSEKA0AgCiAJayILQQF2IQwCQAJAIAggCkEDdGoiDSkDACIOIAggCUEDdCIPaiIQKQMAIhFTDQAgESESDAELIBAgDjcDACANIBE3AwAgECkDACESIBEhDgsCQAJAIAggDEEDdGogD2oiDCkDACIRIBJTDQAgESESDAELIBAgETcDACAMIBI3AwAgDSkDACEOCwJAAkAgDiASUw0AIBIhEQwBCyAMIA43AwAgDSASNwMAIAwpAwAhESASIQ4LIAwgDjcDACANIBE3AwAgCUEBaiEPIAkhDCAJIRMCQCALQQFxRQ0AIA8gCSAQKQMAIBFTGyEMIA8hEwsCQCAKIA9GDQAgCiATayELIBNBA3QhDwNAAkAgByAPaiIQKQMAIg4gEVkNACAIIAxBA3RqIhMpAwAhEiATIA43AwAgECASNwMAIAxBAWohDAsCQCAQQQhqIhApAwAiDiARWQ0AIAggDEEDdGoiEykDACESIBMgDjcDACAQIBI3AwAgDEEBaiEMCyAPQRBqIQ8gC0F+aiILDQALCyAIIAxBA3RqIg8pAwAhESAPIA0pAwA3AwAgDSARNwMAAkAgDCADRg0AIAkgDEEBaiADIAxJIg8bIgkgDEF/aiAKIA8bIgpJDQELCyAHIARqIQcgBkEBaiIGIAJHDQALCwu+BAUKfwF+An8CfgF/AkAgAUECSQ0AIAMgAU8NACACRQ0AIAFBA3QhBCABQX9qIQVBACEGIAAhBwNAIAAgBiABbEEDdGohCEEAIQkgBSEKA0AgCiAJayILQQF2IQwCQAJAIAggCkEDdGoiDSkDACIOIAggCUEDdCIPaiIQKQMAIhFUDQAgESESDAELIBAgDjcDACANIBE3AwAgECkDACESIBEhDgsCQAJAIAggDEEDdGogD2oiDCkDACIRIBJUDQAgESESDAELIBAgETcDACAMIBI3AwAgDSkDACEOCwJAAkAgDiASVA0AIBIhEQwBCyAMIA43AwAgDSASNwMAIAwpAwAhESASIQ4LIAwgDjcDACANIBE3AwAgCUEBaiEPIAkhDCAJIRMCQCALQQFxRQ0AIA8gCSAQKQMAIBFUGyEMIA8hEwsCQCAKIA9GDQAgCiATayELIBNBA3QhDwNAAkAgByAPaiIQKQMAIg4gEVoNACAIIAxBA3RqIhMpAwAhEiATIA43AwAgECASNwMAIAxBAWohDAsCQCAQQQhqIhApAwAiDiARWg0AIAggDEEDdGoiEykDACESIBMgDjcDACAQIBI3AwAgDEEBaiEMCyAPQRBqIQ8gC0F+aiILDQALCyAIIAxBA3RqIg8pAwAhESAPIA0pAwA3AwAgDSARNwMAAkAgDCADRg0AIAkgDEEBaiADIAxJIg8bIgkgDEF/aiAKIA8bIgpJDQELCyAHIARqIQcgBkEBaiIGIAJHDQALCwu2BAEQfwJAIAFBAkkNACADIAFPDQAgAkUNACABQQJ0IQQgAUF/aiEFQQAhBiAAIQcDQCAAIAYgAWxBAnRqIQhBACEJIAUhCgNAIAogCWsiC0EBdiEMAkACQCAIIApBAnRqIg0oAgAiDiAIIAlBAnQiD2oiECgCACIRSA0AIBEhEgwBCyAQIA42AgAgDSARNgIAIBAoAgAhEiARIQ4LAkACQCAIIAxBAnRqIA9qIhEoAgAiDCASSA0AIAwhEgwBCyAQIAw2AgAgESASNgIAIA0oAgAhDgsCQAJAIA4gEkgNACASIQwMAQsgESAONgIAIA0gEjYCACARKAIAIQwgEiEOCyARIA42AgAgDSAMNgIAIAlBAWohEiAJIQ4gCSERAkAgC0EBcUUNACASIAkgECgCACAMSBshDiASIRELAkAgCiASRg0AIAogEWshECARQQJ0IRIDQAJAIAcgEmoiESgCACILIAxODQAgCCAOQQJ0aiIPKAIAIRMgDyALNgIAIBEgEzYCACAOQQFqIQ4LAkAgEUEEaiIRKAIAIgsgDE4NACAIIA5BAnRqIg8oAgAhEyAPIAs2AgAgESATNgIAIA5BAWohDgsgEkEIaiESIBBBfmoiEA0ACwsgCCAOQQJ0aiISKAIAIREgEiANKAIANgIAIA0gETYCAAJAIA4gA0YNACAJIA5BAWogAyAOSSISGyIJIA5Bf2ogCiASGyIKSQ0BCwsgByAEaiEHIAZBAWoiBiACRw0ACwsLtgQBEH8CQCABQQJJDQAgAyABTw0AIAJFDQAgAUECdCEEIAFBf2ohBUEAIQYgACEHA0AgACAGIAFsQQJ0aiEIQQAhCSAFIQoDQCAKIAlrIgtBAXYhDAJAAkAgCCAKQQJ0aiINKAIAIg4gCCAJQQJ0Ig9qIhAoAgAiEUkNACARIRIMAQsgECAONgIAIA0gETYCACAQKAIAIRIgESEOCwJAAkAgCCAMQQJ0aiAPaiIRKAIAIgwgEkkNACAMIRIMAQsgECAMNgIAIBEgEjYCACANKAIAIQ4LAkACQCAOIBJJDQAgEiEMDAELIBEgDjYCACANIBI2AgAgESgCACEMIBIhDgsgESAONgIAIA0gDDYCACAJQQFqIRIgCSEOIAkhEQJAIAtBAXFFDQAgEiAJIBAoAgAgDEkbIQ4gEiERCwJAIAogEkYNACAKIBFrIRAgEUECdCESA0ACQCAHIBJqIhEoAgAiCyAMTw0AIAggDkECdGoiDygCACETIA8gCzYCACARIBM2AgAgDkEBaiEOCwJAIBFBBGoiESgCACILIAxPDQAgCCAOQQJ0aiIPKAIAIRMgDyALNgIAIBEgEzYCACAOQQFqIQ4LIBJBCGohEiAQQX5qIhANAAsLIAggDkECdGoiEigCACERIBIgDSgCADYCACANIBE2AgACQCAOIANGDQAgCSAOQQFqIAMgDkkiEhsiCSAOQX9qIAogEhsiCkkNAQsLIAcgBGohByAGQQFqIgYgAkcNAAsLC70EARF/AkAgAUECSQ0AIAMgAU8NACACRQ0AIAFBAXQhBCABQX9qIQVBACEGIAAhBwNAIAAgBiABbEEBdGohCEEAIQkgBSEKA0AgCiAJayILQQF2IQwCQAJAIAggCkEBdGoiDS4BACIOIAggCUEBdCIPaiIQLgEAIhFIDQAgESESDAELIBAgDjsBACANIBE7AQAgEC8BACESIBEhDgsCQAJAIAggDEEBdGogD2oiES4BACIMIBLBSA0AIAwhEgwBCyAQIAw7AQAgESASOwEAIA0vAQAhDgsCQAJAIA7BIBLBSA0AIBIhDwwBCyARIA47AQAgDSASOwEAIBEvAQAhDyASIQ4LIBEgDjsBACANIA87AQAgCUEBaiESIAkhDiAJIRECQCALQQFxRQ0AIBIgCSAQLgEAIA/BSBshDiASIRELAkAgCiASRg0AIAogEWshECARQQF0IRIDQAJAIAcgEmoiES4BACIMIA/BIgtODQAgCCAOQQF0aiITLwEAIRQgEyAMOwEAIBEgFDsBACAOQQFqIQ4LAkAgEUECaiIRLgEAIgwgC04NACAIIA5BAXRqIgsvAQAhEyALIAw7AQAgESATOwEAIA5BAWohDgsgEkEEaiESIBBBfmoiEA0ACwsgCCAOQQF0aiISLwEAIREgEiANLwEAOwEAIA0gETsBAAJAIA4gA0YNACAJIA5BAWogAyAOSSISGyIJIA5Bf2ogCiASGyIKSQ0BCwsgByAEaiEHIAZBAWoiBiACRw0ACwsL0QQBEX8CQCABQQJJDQAgAyABTw0AIAJFDQAgAUEBdCEEIAFBf2ohBUEAIQYgACEHA0AgACAGIAFsQQF0aiEIQQAhCSAFIQoDQCAKIAlrIgtBAXYhDAJAAkAgCCAKQQF0aiINLwEAIg4gCCAJQQF0Ig9qIhAvAQAiEUkNACARIRIMAQsgECAOOwEAIA0gETsBACAQLwEAIRIgESEOCwJAAkAgCCAMQQF0aiAPaiIRLwEAIgwgEkH//wNxSQ0AIAwhEgwBCyAQIAw7AQAgESASOwEAIA0vAQAhDgsCQAJAIA5B//8DcSASQf//A3FJDQAgEiEPDAELIBEgDjsBACANIBI7AQAgES8BACEPIBIhDgsgESAOOwEAIA0gDzsBACAJQQFqIRIgCSEOIAkhEQJAIAtBAXFFDQAgEiAJIBAvAQAgD0H//wNxSRshDiASIRELAkAgCiASRg0AIAogEWshECARQQF0IRIDQAJAIAcgEmoiES8BACIMIA9B//8DcSILTw0AIAggDkEBdGoiEy8BACEUIBMgDDsBACARIBQ7AQAgDkEBaiEOCwJAIBFBAmoiES8BACIMIAtPDQAgCCAOQQF0aiILLwEAIRMgCyAMOwEAIBEgEzsBACAOQQFqIQ4LIBJBBGohEiAQQX5qIhANAAsLIAggDkEBdGoiEi8BACERIBIgDS8BADsBACANIBE7AQACQCAOIANGDQAgCSAOQQFqIAMgDkkiEhsiCSAOQX9qIAogEhsiCkkNAQsLIAcgBGohByAGQQFqIgYgAkcNAAsLC5oEAQ9/AkAgAUECSQ0AIAMgAU8NACACRQ0AIAFBf2ohBEEAIQUgACEGA0AgACAFIAFsaiEHQQAhCCAEIQkDQCAJIAhrIgpBAXYhCwJAAkAgByAJaiIMLAAAIg0gByAIaiIOLAAAIg9IDQAgDyEQDAELIA4gDToAACAMIA86AAAgDi0AACEQIA8hDQsCQAJAIAcgC2ogCGoiDywAACILIBDASA0AIAshEAwBCyAOIAs6AAAgDyAQOgAAIAwtAAAhDQsCQAJAIA3AIBDASA0AIBAhEQwBCyAPIA06AAAgDCAQOgAAIA8tAAAhESAQIQ0LIA8gDToAACAMIBE6AAAgCEEBaiENIAghECAIIQsCQCAKQQFxRQ0AIA0gCCAOLAAAIBHASBshECANIQsLAkAgCSANRg0AIAkgC2shDyAGIAtqIQ0DQAJAIA0sAAAiCyARwCIOTg0AIAcgEGoiCi0AACESIAogCzoAACANIBI6AAAgEEEBaiEQCwJAIA1BAWoiCywAACIKIA5ODQAgByAQaiIOLQAAIRIgDiAKOgAAIAsgEjoAACAQQQFqIRALIA1BAmohDSAPQX5qIg8NAAsLIAcgEGoiDS0AACEPIA0gDC0AADoAACAMIA86AAACQCAQIANGDQAgCCAQQQFqIAMgEEkiDRsiCCAQQX9qIAkgDRsiCUkNAQsLIAYgAWohBiAFQQFqIgUgAkcNAAsLC6kEAQ9/AkAgAUECSQ0AIAMgAU8NACACRQ0AIAFBf2ohBEEAIQUgACEGA0AgACAFIAFsaiEHQQAhCCAEIQkDQCAJIAhrIgpBAXYhCwJAAkAgByAJaiIMLQAAIg0gByAIaiIOLQAAIg9JDQAgDyEQDAELIA4gDToAACAMIA86AAAgDi0AACEQIA8hDQsCQAJAIAcgC2ogCGoiDy0AACILIBBB/wFxSQ0AIAshEAwBCyAOIAs6AAAgDyAQOgAAIAwtAAAhDQsCQAJAIA1B/wFxIBBB/wFxSQ0AIBAhEQwBCyAPIA06AAAgDCAQOgAAIA8tAAAhESAQIQ0LIA8gDToAACAMIBE6AAAgCEEBaiENIAghECAIIQsCQCAKQQFxRQ0AIA0gCCAOLQAAIBFB/wFxSRshECANIQsLAkAgCSANRg0AIAkgC2shDyAGIAtqIQ0DQAJAIA0tAAAiCyARQf8BcSIOTw0AIAcgEGoiCi0AACESIAogCzoAACANIBI6AAAgEEEBaiEQCwJAIA1BAWoiCy0AACIKIA5PDQAgByAQaiIOLQAAIRIgDiAKOgAAIAsgEjoAACAQQQFqIRALIA1BAmohDSAPQX5qIg8NAAsLIAcgEGoiDS0AACEPIA0gDC0AADoAACAMIA86AAACQCAQIANGDQAgCCAQQQFqIAMgEEkiDRsiCCAQQX9qIAkgDRsiCUkNAQsLIAYgAWohBiAFQQFqIgUgAkcNAAsLCw==",oi=null;function LA(){if(oi)return oi;let A=atob(QX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);oi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=oi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),oi}function wk(A,r,I){LA().exports.partition_f64(A,r,I)}function Wc(A,r,I){LA().exports.partition_f32(A,r,I)}function dk(A,r,I){LA().exports.partition_i64(A,r,I)}function bk(A,r,I){LA().exports.partition_u64(A,r,I)}function pk(A,r,I){LA().exports.partition_i32(A,r,I)}function Nk(A,r,I){LA().exports.partition_u32(A,r,I)}function Fk(A,r,I){LA().exports.partition_i16(A,r,I)}function Gk(A,r,I){LA().exports.partition_u16(A,r,I)}function Sk(A,r,I){LA().exports.partition_i8(A,r,I)}function Rk(A,r,I){LA().exports.partition_u8(A,r,I)}function kk(A,r,I,t){LA().exports.partition_slices_f64(A,r,I,t)}function Zc(A,r,I,t){LA().exports.partition_slices_f32(A,r,I,t)}function qk(A,r,I,t){LA().exports.partition_slices_i64(A,r,I,t)}function Mk(A,r,I,t){LA().exports.partition_slices_u64(A,r,I,t)}function Jk(A,r,I,t){LA().exports.partition_slices_i32(A,r,I,t)}function xk(A,r,I,t){LA().exports.partition_slices_u32(A,r,I,t)}function Uk(A,r,I,t){LA().exports.partition_slices_i16(A,r,I,t)}function Lk(A,r,I,t){LA().exports.partition_slices_u16(A,r,I,t)}function Hk(A,r,I,t){LA().exports.partition_slices_i8(A,r,I,t)}function Yk(A,r,I,t){LA().exports.partition_slices_u8(A,r,I,t)}var CX=64,Pk={float64:wk,float32:Wc,int64:dk,uint64:bk,int32:pk,uint32:Nk,int16:Fk,uint16:Gk,int8:Sk,uint8:Rk,float16:Wc},aX={float64:kk,float32:Zc,int64:qk,uint64:Mk,int32:Jk,uint32:xk,int16:Uk,uint16:Lk,int8:Hk,uint8:Yk,float16:Zc},zc={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function _k(A,r,I,t,o,e){if(I<2)return!0;let g=aX[e],i=e==="float16";if(g&&r[0]===0&&t>1&&r[1]===I){let u=zc[e];if(!u)return!1;let D=u.BYTES_PER_ELEMENT,y=i?AA(A,e):A,f=y.length*D;x(f),U();let c=R(y);g(c,I,t,o);let m=T();if(i){let l=new Float32Array(y.length);new Uint8Array(l.buffer,0,l.byteLength).set(new Uint8Array(m.buffer,c,l.byteLength));let w=eA(l,e);new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(w.buffer,w.byteOffset,w.byteLength))}else new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(m.buffer,c,A.byteLength));return!0}let n=Pk[e],Q=zc[e];if(!n||!Q)return!1;let C=Q.BYTES_PER_ELEMENT,a=i?AA(A,e):A,B=a.length*C;x(B),U();let s=R(a);for(let u=0;u<t;u++)n(s+r[u]*C,I,o);let E=T();if(i){let u=new Float32Array(a.length);new Uint8Array(u.buffer,0,u.byteLength).set(new Uint8Array(E.buffer,s,u.byteLength));let D=eA(u,e);new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(D.buffer,D.byteOffset,D.byteLength))}else new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(E.buffer,s,A.byteLength));return!0}function Kk(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<CX*K.thresholdMultiplier)return null;let t=A.dtype,o=Pk[t],e=zc[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g;x(i),U();let n=t==="float16",Q=A.offset,C=A.data.subarray(Q,Q+I);n&&(C=AA(C,t));let a=R(C);o(a,I,r);let B=_(a,I,e);return d.fromData(n?eA(B,t):B,Array.from(A.shape),t)}var BX="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",ei=null;function HA(){if(ei)return ei;let A=atob(BX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ei=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ei.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ei}function vk(A,r,I,t){HA().exports.argpartition_f64(A,r,I,t)}function jc(A,r,I,t){HA().exports.argpartition_f32(A,r,I,t)}function Xk(A,r,I,t){HA().exports.argpartition_i64(A,r,I,t)}function Tk(A,r,I,t){HA().exports.argpartition_u64(A,r,I,t)}function Ok(A,r,I,t){HA().exports.argpartition_i32(A,r,I,t)}function Vk(A,r,I,t){HA().exports.argpartition_u32(A,r,I,t)}function Wk(A,r,I,t){HA().exports.argpartition_i16(A,r,I,t)}function Zk(A,r,I,t){HA().exports.argpartition_u16(A,r,I,t)}function zk(A,r,I,t){HA().exports.argpartition_i8(A,r,I,t)}function jk(A,r,I,t){HA().exports.argpartition_u8(A,r,I,t)}function $k(A,r,I,t,o){HA().exports.argpartition_slices_f64(A,r,I,t,o)}function $c(A,r,I,t,o){HA().exports.argpartition_slices_f32(A,r,I,t,o)}function Aq(A,r,I,t,o){HA().exports.argpartition_slices_i64(A,r,I,t,o)}function rq(A,r,I,t,o){HA().exports.argpartition_slices_u64(A,r,I,t,o)}function Iq(A,r,I,t,o){HA().exports.argpartition_slices_i32(A,r,I,t,o)}function tq(A,r,I,t,o){HA().exports.argpartition_slices_u32(A,r,I,t,o)}function oq(A,r,I,t,o){HA().exports.argpartition_slices_i16(A,r,I,t,o)}function eq(A,r,I,t,o){HA().exports.argpartition_slices_u16(A,r,I,t,o)}function gq(A,r,I,t,o){HA().exports.argpartition_slices_i8(A,r,I,t,o)}function iq(A,r,I,t,o){HA().exports.argpartition_slices_u8(A,r,I,t,o)}var sX=64,nq={float64:vk,float32:jc,int64:Xk,uint64:Tk,int32:Ok,uint32:Vk,int16:Wk,uint16:Zk,int8:zk,uint8:jk,float16:jc},EX={float64:$k,float32:$c,int64:Aq,uint64:rq,int32:Iq,uint32:tq,int16:oq,uint16:eq,int8:gq,uint8:iq,float16:$c},AD={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function Qq(A,r,I,t,o,e,g,i){if(o<2)return!1;let n=EX[i];if(n&&I[0]===0&&e>1&&I[1]===o&&t[0]===0&&t[1]===o){let y=AD[i];if(!y)return!1;let f=y.BYTES_PER_ELEMENT,c=A.length*f,m=r.length*4;x(c+m),U();let l=R(i==="float16"?AA(A,i):A),w=H(m);n(l,w,o,e,g);let h=T();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(h.buffer,w,r.byteLength)),!0}let Q=nq[i],C=AD[i];if(!Q||!C)return!1;let a=C.BYTES_PER_ELEMENT,B=A.length*a,s=r.length*4;x(B+s),U();let E=R(i==="float16"?AA(A,i):A),u=H(s);for(let y=0;y<e;y++)Q(E+I[y]*a,u+t[y]*4,o,g);let D=T();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(D.buffer,u,r.byteLength)),!0}function Cq(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<sX*K.thresholdMultiplier)return null;let t=A.dtype,o=nq[t],e=AD[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*4;x(i+n),U();let Q=A.offset,C=A.data.subarray(Q,Q+I);t==="float16"&&(C=AA(C,t));let a=R(C),B=H(n);o(a,B,I,r);let s=_(B,I,Int32Array);return d.fromData(s,Array.from(A.shape),"int32")}var uX="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",gi=null;function YA(){if(gi)return gi;let A=atob(uX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);gi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=gi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),gi}function aq(A,r,I,t,o){YA().exports.searchsorted_left_f64(A,r,I,t,o)}function rD(A,r,I,t,o){YA().exports.searchsorted_left_f32(A,r,I,t,o)}function Bq(A,r,I,t,o){YA().exports.searchsorted_left_i64(A,r,I,t,o)}function sq(A,r,I,t,o){YA().exports.searchsorted_left_u64(A,r,I,t,o)}function Eq(A,r,I,t,o){YA().exports.searchsorted_left_i32(A,r,I,t,o)}function uq(A,r,I,t,o){YA().exports.searchsorted_left_u32(A,r,I,t,o)}function cq(A,r,I,t,o){YA().exports.searchsorted_left_i16(A,r,I,t,o)}function Dq(A,r,I,t,o){YA().exports.searchsorted_left_u16(A,r,I,t,o)}function fq(A,r,I,t,o){YA().exports.searchsorted_left_i8(A,r,I,t,o)}function yq(A,r,I,t,o){YA().exports.searchsorted_left_u8(A,r,I,t,o)}function mq(A,r,I,t,o){YA().exports.searchsorted_right_f64(A,r,I,t,o)}function ID(A,r,I,t,o){YA().exports.searchsorted_right_f32(A,r,I,t,o)}function lq(A,r,I,t,o){YA().exports.searchsorted_right_i64(A,r,I,t,o)}function hq(A,r,I,t,o){YA().exports.searchsorted_right_u64(A,r,I,t,o)}function wq(A,r,I,t,o){YA().exports.searchsorted_right_i32(A,r,I,t,o)}function dq(A,r,I,t,o){YA().exports.searchsorted_right_u32(A,r,I,t,o)}function bq(A,r,I,t,o){YA().exports.searchsorted_right_i16(A,r,I,t,o)}function pq(A,r,I,t,o){YA().exports.searchsorted_right_u16(A,r,I,t,o)}function Nq(A,r,I,t,o){YA().exports.searchsorted_right_i8(A,r,I,t,o)}function Fq(A,r,I,t,o){YA().exports.searchsorted_right_u8(A,r,I,t,o)}var cX=64,DX={float64:aq,float32:rD,int64:Bq,uint64:sq,int32:Eq,uint32:uq,int16:cq,uint16:Dq,int8:fq,uint8:yq,float16:rD},fX={float64:mq,float32:ID,int64:lq,uint64:hq,int32:wq,uint32:dq,int16:bq,uint16:pq,int8:Nq,uint8:Fq,float16:ID},yX={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function Gq(A,r,I){if(!A.isCContiguous||!r.isCContiguous)return null;let t=A.size,o=r.size;if(o<cX*K.thresholdMultiplier)return null;let e=A.dtype,i=(I==="left"?DX:fX)[e],n=yX[e];if(!i||!n||r.dtype!==e)return null;let Q=n.BYTES_PER_ELEMENT,C=t*Q,a=o*Q,B=o*4;x(C+a+B),U();let s=e==="float16",E=A.offset,u=A.data.subarray(E,E+t);s&&(u=AA(u,e));let D=R(u),y=r.offset,f=r.data.subarray(y,y+o);s&&(f=AA(f,e));let c=R(f),m=H(B);i(D,t,c,m,o);let l=_(m,o,Int32Array);return d.fromData(l,Array.from(r.shape),"int32")}var mX="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",ii=null;function qr(){if(ii)return ii;let A=atob(mX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ii=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ii.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ii}function Sq(A,r,I,t){qr().exports.lexsort_f64(A,r,I,t)}function tD(A,r,I,t){qr().exports.lexsort_f32(A,r,I,t)}function Rq(A,r,I,t){qr().exports.lexsort_i64(A,r,I,t)}function kq(A,r,I,t){qr().exports.lexsort_u64(A,r,I,t)}function qq(A,r,I,t){qr().exports.lexsort_i32(A,r,I,t)}function Mq(A,r,I,t){qr().exports.lexsort_u32(A,r,I,t)}function Jq(A,r,I,t){qr().exports.lexsort_i16(A,r,I,t)}function xq(A,r,I,t){qr().exports.lexsort_u16(A,r,I,t)}function Uq(A,r,I,t){qr().exports.lexsort_i8(A,r,I,t)}function Lq(A,r,I,t){qr().exports.lexsort_u8(A,r,I,t)}var lX=64,hX={float64:Sq,float32:tD,int64:Rq,uint64:kq,int32:qq,uint32:Mq,int16:Jq,uint16:xq,int8:Uq,uint8:Lq,float16:tD},wX={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function Hq(A){if(A.length===0)return null;let r=A[0].size;if(r<lX*K.thresholdMultiplier)return null;let I=A[0].dtype;for(let s of A)if(s.dtype!==I||!s.isCContiguous||s.ndim!==1||s.size!==r)return null;let t=hX[I],o=wX[I];if(!t||!o)return null;let e=A.length,g=o.BYTES_PER_ELEMENT,i=e*r*g,n=r*4;x(i+n),U();let Q=H(i),C=T();for(let s=0;s<e;s++){let E=A[s],u=E.offset,D=E.data.subarray(u,u+r);I==="float16"&&(D=AA(D,I));let y=Q+s*r*g;new Uint8Array(C.buffer,y,r*g).set(new Uint8Array(D.buffer,D.byteOffset,D.byteLength))}let a=H(n);t(Q,e,r,a);let B=_(a,r,Int32Array);return d.fromData(B,[r],"int32")}var dX="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",ni=null;function mA(){if(ni)return ni;let A=atob(dX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ni=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ni.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ni}function Yq(A,r,I,t){return mA().exports.extract_f64(A,r,I,t)}function oD(A,r,I,t){return mA().exports.extract_f32(A,r,I,t)}function Pq(A,r,I,t){return mA().exports.extract_i64(A,r,I,t)}function _q(A,r,I,t){return mA().exports.extract_u64(A,r,I,t)}function Kq(A,r,I,t){return mA().exports.extract_i32(A,r,I,t)}function vq(A,r,I,t){return mA().exports.extract_u32(A,r,I,t)}function Xq(A,r,I,t){return mA().exports.extract_i16(A,r,I,t)}function Tq(A,r,I,t){return mA().exports.extract_u16(A,r,I,t)}function Oq(A,r,I,t){return mA().exports.extract_i8(A,r,I,t)}function Vq(A,r,I,t){return mA().exports.extract_u8(A,r,I,t)}function Wq(A,r,I,t,o){mA().exports.take_axis0_2d_f64(A,r,I,t,o)}function eD(A,r,I,t,o){mA().exports.take_axis0_2d_f32(A,r,I,t,o)}function Zq(A,r,I,t,o){mA().exports.take_axis0_2d_i64(A,r,I,t,o)}function zq(A,r,I,t,o){mA().exports.take_axis0_2d_u64(A,r,I,t,o)}function jq(A,r,I,t,o){mA().exports.take_axis0_2d_i32(A,r,I,t,o)}function $q(A,r,I,t,o){mA().exports.take_axis0_2d_u32(A,r,I,t,o)}function AM(A,r,I,t,o){mA().exports.take_axis0_2d_i16(A,r,I,t,o)}function rM(A,r,I,t,o){mA().exports.take_axis0_2d_u16(A,r,I,t,o)}function IM(A,r,I,t,o){mA().exports.take_axis0_2d_i8(A,r,I,t,o)}function tM(A,r,I,t,o){mA().exports.take_axis0_2d_u8(A,r,I,t,o)}function oM(A,r,I,t,o){mA().exports.where_f64(A,r,I,t,o)}function gD(A,r,I,t,o){mA().exports.where_f32(A,r,I,t,o)}function eM(A,r,I,t,o){mA().exports.where_i64(A,r,I,t,o)}function gM(A,r,I,t,o){mA().exports.where_u64(A,r,I,t,o)}function iM(A,r,I,t,o){mA().exports.where_i32(A,r,I,t,o)}function nM(A,r,I,t,o){mA().exports.where_u32(A,r,I,t,o)}function QM(A,r,I,t,o){mA().exports.where_i16(A,r,I,t,o)}function CM(A,r,I,t,o){mA().exports.where_u16(A,r,I,t,o)}function aM(A,r,I,t,o){mA().exports.where_i8(A,r,I,t,o)}function BM(A,r,I,t,o){mA().exports.where_u8(A,r,I,t,o)}var iD=64,bX={float64:Yq,float32:oD,int64:Pq,uint64:_q,int32:Kq,uint32:vq,int16:Xq,uint16:Tq,int8:Oq,uint8:Vq,float16:oD},pX={float64:Wq,float32:eD,int64:Zq,uint64:zq,int32:jq,uint32:$q,int16:AM,uint16:rM,int8:IM,uint8:tM,float16:eD},nD={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function sM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=Math.min(A.size,r.size);if(I<iD*K.thresholdMultiplier)return null;let t=r.dtype,o=bX[t],e=nD[t];if(!o||!e)return null;let g=A.dtype;if(g!=="int32"&&g!=="float64"&&g!=="int8"&&g!=="uint8"&&g!=="int16"&&g!=="uint16"&&g!=="float32"&&g!=="uint32")return null;let i=e.BYTES_PER_ELEMENT,n=A.offset,Q=A.data,C=new Int32Array(I);for(let w=0;w<I;w++)C[w]=Q[n+w]?1:0;let a=I*4,B=I*i,s=I*i;x(a+B+s),U();let E=R(C),u=t==="float16",D=r.offset,y=r.data.subarray(D,D+I);u&&(y=AA(y,t));let f=R(y),c=H(s),m=o(E,f,c,I),l=_(c,m,e);return d.fromData(u?eA(l,t):l,[m],t)}function EM(A,r,I){if(I!==0||A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let[t,o]=A.shape,e=t*o;if(e<iD*K.thresholdMultiplier)return null;let g=A.dtype,i=pX[g],n=nD[g];if(!i||!n)return null;let Q=n.BYTES_PER_ELEMENT,C=e*Q,a=e*4,B=e*Q;x(C+a+B),U();let s=g==="float16",E=A.offset,u=A.data.subarray(E,E+e);s&&(u=AA(u,g));let D=R(u),y=r.offset,f=r.data,c=new Int32Array(e);for(let h=0;h<e;h++)c[h]=Number(f[y+h]);let m=R(c),l=H(B);i(D,m,l,t,o);let w=_(l,e,n);return d.fromData(s?eA(w,g):w,Array.from(r.shape),g)}var NX={float64:oM,float32:gD,int64:eM,uint64:gM,int32:iM,uint32:nM,int16:QM,uint16:CM,int8:aM,uint8:BM,float16:gD};function uM(A,r,I){if(!A.isCContiguous||!r.isCContiguous||!I.isCContiguous)return null;let t=A.size;if(t!==r.size||t!==I.size||t<iD*K.thresholdMultiplier)return null;let o=r.dtype;if(o!==I.dtype)return null;let e=NX[o],g=nD[o];if(!e||!g)return null;let i=g.BYTES_PER_ELEMENT,n=t*4,Q=t*i;x(n+Q*2+Q),U();let C=A.offset,a=A.data,B=new Int32Array(t);for(let h=0;h<t;h++)B[h]=a[C+h]?1:0;let s=R(B),E=o==="float16",u=r.offset,D=r.data.subarray(u,u+t);E&&(D=AA(D,o));let y=R(D),f=I.offset,c=I.data.subarray(f,f+t);E&&(c=AA(c,o));let m=R(c),l=H(Q);e(s,y,m,l,t);let w=_(l,t,g);return d.fromData(E?eA(w,o):w,Array.from(r.shape),o)}function fr(A,r,I){if(I){let t=A[r*2],o=A[r*2+1];return t!==0||o!==0}return!!A[r]}function NI(A,r,I,t){let o=isNaN(A)||isNaN(r),e=isNaN(I)||isNaN(t);return o&&e?0:o?1:e||A<I?-1:A>I?1:r<t?-1:r>t?1:0}function cM(A,r=-1){let I=A.shape,t=I.length,o=A.dtype,e=A.data,g=A.offset,i=A.strides;if(t===0)return A.copy();let n=r;if(n<0&&(n=t+n),n<0||n>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=A.copy(),C=Q.data,a=I[n],B=Array.from(I).filter((c,m)=>m!==n),s=B.length===0?1:B.reduce((c,m)=>c*m,1),{baseOffsets:E,axisStride:u}=aA(I,i,g,n,s),D=Fr(I),{baseOffsets:y,axisStride:f}=aA(I,D,0,n,s);if(t===1&&Q.isCContiguous){let c=zR(Q);if(c)return c}if(f===1&&ZR(C,y,a,s,o))return Q;if(k(o)){let c=e,m=C;for(let l=0;l<s;l++){let w=[],h=E[l];for(let p=0;p<a;p++)w.push({re:c[h*2],im:c[h*2+1],idx:p}),h+=u;w.sort((p,N)=>NI(p.re,p.im,N.re,N.im));let b=y[l];for(let p=0;p<a;p++)m[b*2]=w[p].re,m[b*2+1]=w[p].im,b+=f}}else if(P(o)){let c=e,m=C;for(let l=0;l<s;l++){let w=[],h=E[l];for(let p=0;p<a;p++)w.push({value:c[h],idx:p}),h+=u;w.sort((p,N)=>p.value<N.value?-1:p.value>N.value?1:0);let b=y[l];for(let p=0;p<a;p++)m[b]=w[p].value,b+=f}}else if(o==="float16"&&uA&&A.isCContiguous&&Q.isCContiguous)for(let c=0;c<s;c++){let m=E[c],l=u===1?new Float32Array(e.subarray(m,m+a)):Float32Array.from({length:a},(h,b)=>Number(e[m+b*u]));l.sort((h,b)=>isNaN(h)&&isNaN(b)?0:isNaN(h)?1:isNaN(b)?-1:h-b);let w=y[c];if(f===1)C.subarray(w,w+a).set(l);else for(let h=0;h<a;h++)C[w+h*f]=l[h]}else for(let c=0;c<s;c++){let m=[],l=E[c];for(let h=0;h<a;h++)m.push(Number(e[l])),l+=u;m.sort((h,b)=>isNaN(h)&&isNaN(b)?0:isNaN(h)?1:isNaN(b)?-1:h-b);let w=y[c];for(let h=0;h<a;h++)C[w]=m[h],w+=f}return Q}function DM(A,r=-1){let I=A.shape,t=I.length,o=A.dtype,e=A.data,g=A.offset,i=A.strides;if(t===0)return d.zeros([0],"int32");let n=r;if(n<0&&(n=t+n),n<0||n>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=d.zeros(Array.from(I),"int32"),C=Q.data,a=I[n],B=Array.from(I).filter((c,m)=>m!==n),s=B.length===0?1:B.reduce((c,m)=>c*m,1),{baseOffsets:E,axisStride:u}=aA(I,i,g,n,s),D=Fr(I),{baseOffsets:y,axisStride:f}=aA(I,D,0,n,s);if(t===1&&A.isCContiguous){let c=hk(A);if(c)return c}if(f===1&&u===1&&lk(e,C,E,y,a,s,o))return Q;if(k(o)){let c=e;for(let m=0;m<s;m++){let l=[],w=E[m];for(let b=0;b<a;b++)l.push({re:c[w*2],im:c[w*2+1],idx:b}),w+=u;l.sort((b,p)=>NI(b.re,b.im,p.re,p.im));let h=y[m];for(let b=0;b<a;b++)C[h]=l[b].idx,h+=f}}else if(P(o)){let c=e;for(let m=0;m<s;m++){let l=[],w=E[m];for(let b=0;b<a;b++)l.push({value:c[w],idx:b}),w+=u;l.sort((b,p)=>b.value<p.value?-1:b.value>p.value?1:0);let h=y[m];for(let b=0;b<a;b++)C[h]=l[b].idx,h+=f}}else if(o==="float16"&&uA&&A.isCContiguous)for(let c=0;c<s;c++){let m=E[c],l=u===1?new Float32Array(e.subarray(m,m+a)):Float32Array.from({length:a},(b,p)=>Number(e[m+p*u])),w=Array.from({length:a},(b,p)=>p);w.sort((b,p)=>{let N=l[b],F=l[p];return isNaN(N)&&isNaN(F)?0:isNaN(N)?1:isNaN(F)?-1:N-F});let h=y[c];for(let b=0;b<a;b++)C[h]=w[b],h+=f}else for(let c=0;c<s;c++){let m=[],l=E[c];for(let h=0;h<a;h++)m.push({value:Number(e[l]),idx:h}),l+=u;m.sort((h,b)=>isNaN(h.value)&&isNaN(b.value)?0:isNaN(h.value)?1:isNaN(b.value)?-1:h.value-b.value);let w=y[c];for(let h=0;h<a;h++)C[w]=m[h].idx,w+=f}return Q}function fM(A){if(A.length===0)return d.zeros([0],"int32");let I=A[0].size;for(let a of A){if(a.ndim!==1)throw new Error("keys must be 1D arrays");if(a.size!==I)throw new Error("all keys must have the same length")}let t=Hq(A);if(t)return t;let o=[];for(let a=0;a<I;a++)o.push(a);let e=A.map(a=>k(a.dtype)),g=A.map(a=>a.isCContiguous),i=A.map(a=>a.data),n=A.map(a=>a.offset);o.sort((a,B)=>{for(let s=A.length-1;s>=0;s--)if(e[s]){let E,u,D,y;if(g[s]){let f=i[s],c=n[s];E=f[(c+a)*2],u=f[(c+a)*2+1],D=f[(c+B)*2],y=f[(c+B)*2+1]}else{let f=A[s].iget(a),c=A[s].iget(B);E=f.re,u=f.im,D=c.re,y=c.im}if(E<D)return-1;if(E>D)return 1;if(u<y)return-1;if(u>y)return 1}else{let E,u;if(g[s]){let D=i[s],y=n[s];E=Number(D[y+a]),u=Number(D[y+B])}else E=Number(A[s].iget(a)),u=Number(A[s].iget(B));if(isNaN(E)&&isNaN(u))continue;if(isNaN(E))return 1;if(isNaN(u)||E<u)return-1;if(E>u)return 1}return 0});let Q=d.zeros([I],"int32"),C=Q.data;for(let a=0;a<I;a++)C[a]=o[a];return Q}function FX(A,r){let I=0,t=A.length-1;for(;I<t;){let o=Math.floor((I+t)/2),e=A[I],g=A[o],i=A[t],n;e<=g&&g<=i||i<=g&&g<=e?n=o:g<=e&&e<=i||i<=e&&e<=g?n=I:n=t;let Q=A[n];[A[n],A[t]]=[A[t],A[n]];let C=I;for(let a=I;a<t;a++){let B=A[a],s=isNaN(B),E=isNaN(Q);!s&&(E||B<=Q)&&([A[C],A[a]]=[A[a],A[C]],C++)}if([A[C],A[t]]=[A[t],A[C]],C===r)return;C<r?I=C+1:t=C-1}}function GX(A,r){let I=0,t=A.length-1;for(;I<t;){let o=Math.floor((I+t)/2),e=A[I],g=A[o],i=A[t],n;e<=g&&g<=i||i<=g&&g<=e?n=o:g<=e&&e<=i||i<=e&&e<=g?n=I:n=t;let Q=A[n];[A[n],A[t]]=[A[t],A[n]];let C=I;for(let a=I;a<t;a++)A[a]<=Q&&([A[C],A[a]]=[A[a],A[C]],C++);if([A[C],A[t]]=[A[t],A[C]],C===r)return;C<r?I=C+1:t=C-1}}function SX(A,r){let I=0,t=A.length-1;for(;I<t;){let o=Math.floor((I+t)/2),e=A[I].value,g=A[o].value,i=A[t].value,n;e<=g&&g<=i||i<=g&&g<=e?n=o:g<=e&&e<=i||i<=e&&e<=g?n=I:n=t;let Q=A[n].value;[A[n],A[t]]=[A[t],A[n]];let C=I;for(let a=I;a<t;a++){let B=A[a].value,s=isNaN(B),E=isNaN(Q);!s&&(E||B<=Q)&&([A[C],A[a]]=[A[a],A[C]],C++)}if([A[C],A[t]]=[A[t],A[C]],C===r)return;C<r?I=C+1:t=C-1}}function RX(A,r){let I=0,t=A.length-1;for(;I<t;){let o=Math.floor((I+t)/2),e=A[I].value,g=A[o].value,i=A[t].value,n;e<=g&&g<=i||i<=g&&g<=e?n=o:g<=e&&e<=i||i<=e&&e<=g?n=I:n=t;let Q=A[n].value;[A[n],A[t]]=[A[t],A[n]];let C=I;for(let a=I;a<t;a++)A[a].value<=Q&&([A[C],A[a]]=[A[a],A[C]],C++);if([A[C],A[t]]=[A[t],A[C]],C===r)return;C<r?I=C+1:t=C-1}}function yM(A,r,I=-1){let t=A.shape,o=t.length,e=A.dtype;if(o===0)return A.copy();let g=I;if(g<0&&(g=o+g),g<0||g>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let i=t[g],n=r;if(n<0&&(n=i+n),n<0||n>=i)throw new Error(`kth(=${r}) out of bounds (${i})`);if(o===1&&A.isCContiguous&&!k(e)){let D=A.copy(),y=Kk(D,n);if(y)return y}let Q=A.copy(),C=Q.data,a=Array.from(t).filter((D,y)=>y!==g),B=a.length===0?1:a.reduce((D,y)=>D*y,1),s=Fr(t),{baseOffsets:E,axisStride:u}=aA(t,s,0,g,B);if(u===1&&!k(e)&&_k(C,E,i,B,n,e))return Q;if(P(e)){let D=C;for(let y=0;y<B;y++){let f=[],c=E[y];for(let m=0;m<i;m++)f.push(D[c]),c+=u;GX(f,n),c=E[y];for(let m=0;m<i;m++)D[c]=f[m],c+=u}}else for(let D=0;D<B;D++){let y=[],f=E[D];for(let c=0;c<i;c++)y.push(Number(C[f])),f+=u;FX(y,n),f=E[D];for(let c=0;c<i;c++)C[f]=y[c],f+=u}return Q}function mM(A,r,I=-1){let t=A.shape,o=t.length,e=A.dtype,g=A.data,i=A.offset,n=A.strides;if(o===0)return d.zeros([0],"int32");let Q=I;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let C=t[Q],a=r;if(a<0&&(a=C+a),a<0||a>=C)throw new Error(`kth(=${r}) out of bounds (${C})`);if(o===1&&A.isCContiguous&&!k(e)){let l=Cq(A,a);if(l)return l}let B=d.zeros(Array.from(t),"int32"),s=B.data,E=Array.from(t).filter((l,w)=>w!==Q),u=E.length===0?1:E.reduce((l,w)=>l*w,1),{baseOffsets:D,axisStride:y}=aA(t,n,i,Q,u),f=Fr(t),{baseOffsets:c,axisStride:m}=aA(t,f,0,Q,u);if(m===1&&y===1&&!k(e)&&Qq(g,s,D,c,C,u,a,e))return B;if(P(e)){let l=g;for(let w=0;w<u;w++){let h=[],b=D[w];for(let N=0;N<C;N++)h.push({value:l[b],idx:N}),b+=y;RX(h,a);let p=c[w];for(let N=0;N<C;N++)s[p]=h[N].idx,p+=m}}else for(let l=0;l<u;l++){let w=[],h=D[l];for(let p=0;p<C;p++)w.push({value:Number(g[h]),idx:p}),h+=y;SX(w,a);let b=c[l];for(let p=0;p<C;p++)s[b]=w[p].idx,b+=m}return B}function lM(A){let r=A.dtype,I=A.size,t=A.isCContiguous,o=A.data,e=A.offset;if(k(r)){let g=[];if(t){let Q=o;for(let C=0;C<I;C++)g.push({re:Q[(e+C)*2],im:Q[(e+C)*2+1]})}else for(let Q=0;Q<I;Q++){let C=A.iget(Q);g.push({re:C.re,im:C.im})}g.sort((Q,C)=>NI(Q.re,Q.im,C.re,C.im));let i=d.zeros([I],"complex128"),n=i.data;for(let Q=0;Q<I;Q++)n[Q*2]=g[Q].re,n[Q*2+1]=g[Q].im;return i}else{let g=[];if(t)for(let Q=0;Q<I;Q++)g.push(Number(o[e+Q]));else for(let Q=0;Q<I;Q++)g.push(Number(A.iget(Q)));g.sort((Q,C)=>isNaN(Q)&&isNaN(C)?0:isNaN(Q)?1:isNaN(C)?-1:Q-C);let i=d.zeros([I],"complex128"),n=i.data;for(let Q=0;Q<I;Q++)n[Q*2]=g[Q],n[Q*2+1]=0;return i}}function QD(A){let r=A.shape,I=r.length,t=A.size,o=k(A.dtype),e=A.isCContiguous,g=A.data,i=A.offset,n=[];for(let s=0;s<I;s++)n.push([]);let Q=[],C=1;for(let s=I-1;s>=0;s--)Q.unshift(C),C*=r[s];if(e&&!o&&I>=1){let s=[];for(let D=0;D<I;D++)s.push(new Int32Array(t));let E=0;for(let D=0;D<t;D++)if(g[i+D]){let y=D;for(let f=0;f<I;f++)s[f][E]=y/Q[f]|0,y-=s[f][E]*Q[f];E++}let u=[];for(let D=0;D<I;D++){let y=d.zeros([E],"int32");y.data.set(s[D].subarray(0,E)),u.push(y)}return u}if(e){for(let s=0;s<t;s++)if(fr(g,i+s,o)){let E=s;for(let u=0;u<I;u++){let D=Math.floor(E/Q[u]);E=E%Q[u],n[u].push(D)}}}else for(let s=0;s<t;s++){let E=A.iget(s);if(o?E.re!==0||E.im!==0:!!E){let D=s;for(let y=0;y<I;y++){let f=Math.floor(D/Q[y]);D=D%Q[y],n[y].push(f)}}}let a=n[0]?.length??0,B=[];for(let s=0;s<I;s++){let E=d.zeros([a],"int32"),u=E.data;for(let D=0;D<a;D++)u[D]=n[s][D];B.push(E)}return B}function hM(A){let r=A.shape,I=r.length,t=A.size,o=k(A.dtype),e=A.isCContiguous,g=A.data,i=A.offset,n=[],Q=[],C=1;for(let u=I-1;u>=0;u--)Q.unshift(C),C*=r[u];if(e){for(let u=0;u<t;u++)if(fr(g,i+u,o)){let D=[],y=u;for(let f=0;f<I;f++){let c=Math.floor(y/Q[f]);y=y%Q[f],D.push(c)}n.push(D)}}else for(let u=0;u<t;u++){let D=A.iget(u);if(o?D.re!==0||D.im!==0:!!D){let f=[],c=u;for(let m=0;m<I;m++){let l=Math.floor(c/Q[m]);c=c%Q[m],f.push(l)}n.push(f)}}let a=n.length,B=I===0?[a,1]:[a,I],s=d.zeros(B,"int32"),E=s.data;for(let u=0;u<a;u++){let D=n[u];for(let y=0;y<(I===0?1:I);y++)E[u*(I===0?1:I)+y]=D[y]??0}return s}function wM(A){let r=A.size,I=k(A.dtype),t=A.isCContiguous,o=A.data,e=A.offset;if(t&&!I){let Q=new Int32Array(r),C=0;for(let B=0;B<r;B++)o[e+B]&&(Q[C++]=B);let a=d.zeros([C],"int32");return a.data.set(Q.subarray(0,C)),a}let g=[];if(t)for(let Q=0;Q<r;Q++)fr(o,e+Q,I)&&g.push(Q);else for(let Q=0;Q<r;Q++){let C=A.iget(Q);(I?C.re!==0||C.im!==0:C)&&g.push(Q)}let i=d.zeros([g.length],"int32"),n=i.data;for(let Q=0;Q<g.length;Q++)n[Q]=g[Q];return i}function dM(A,r,I){if(r===void 0&&I===void 0)return QD(A);if(r===void 0||I===void 0)throw new Error("either both or neither of x and y should be given");if(A.size===r.size&&r.size===I.size&&r.dtype===I.dtype&&A.shape.length===r.shape.length&&A.shape.every((O,z)=>O===r.shape[z])&&r.shape.every((O,z)=>O===I.shape[z])){let O=uM(A,r,I);if(O)return O}let t=A.shape,o=r.shape,e=I.shape,g=Math.max(t.length,o.length,e.length),i=O=>{let z=Array(g).fill(1);for(let j=0;j<O.length;j++)z[g-O.length+j]=O[j];return z},n=i(t),Q=i(o),C=i(e),a=[];for(let O=0;O<g;O++){let z=[n[O],Q[O],C[O]],j=Math.max(...z);for(let V of z)if(V!==1&&V!==j)throw new Error("operands could not be broadcast together");a.push(j)}let B=r.dtype,s=d.zeros(a,B),E=s.data,u=(O,z)=>{let j=[],V=1;for(let rA=O.length-1;rA>=0;rA--)j.unshift(V),V*=O[rA];for(;j.length<z.length;)j.unshift(0);for(let rA=0;rA<z.length;rA++)z[rA]===1&&a[rA]!==1&&(j[rA]=0);return j},D=u(t,n),y=u(o,Q),f=u(e,C),c=[],m=1;for(let O=a.length-1;O>=0;O--)c.unshift(m),m*=a[O];let l=a.reduce((O,z)=>O*z,1),w=k(A.dtype),h=k(B),b=A.isCContiguous,p=A.data,N=A.offset,F=r.isCContiguous,S=r.data,M=r.offset,Y=I.isCContiguous,L=I.data,v=I.offset;if(t.length===a.length&&o.length===a.length&&e.length===a.length&&t.every((O,z)=>O===a[z])&&o.every((O,z)=>O===a[z])&&e.every((O,z)=>O===a[z])&&b&&F&&Y)if(h){let O=E,z=S,j=L;if(w)for(let V=0;V<l;V++)fr(p,N+V,!0)?(O[V*2]=z[(M+V)*2],O[V*2+1]=z[(M+V)*2+1]):(O[V*2]=j[(v+V)*2],O[V*2+1]=j[(v+V)*2+1]);else for(let V=0;V<l;V++)p[N+V]?(O[V*2]=z[(M+V)*2],O[V*2+1]=z[(M+V)*2+1]):(O[V*2]=j[(v+V)*2],O[V*2+1]=j[(v+V)*2+1])}else if(P(B)){let O=E,z=S,j=L;for(let V=0;V<l;V++)p[N+V]?O[V]=z[M+V]:O[V]=j[v+V]}else for(let O=0;O<l;O++)p[N+O]?E[O]=S[M+O]:E[O]=L[v+O];else for(let O=0;O<l;O++){let z=O,j=0,V=0,rA=0;for(let QA=0;QA<g;QA++){let dA=Math.floor(z/c[QA]);z=z%c[QA],j+=dA*D[QA],V+=dA*y[QA],rA+=dA*f[QA]}let oA;if(b)oA=fr(p,N+j,w);else{let QA=A.iget(j);oA=w?QA.re!==0||QA.im!==0:!!QA}if(oA)if(h)if(F){let QA=S;E[O*2]=QA[(M+V)*2],E[O*2+1]=QA[(M+V)*2+1]}else{let QA=r.iget(V);E[O*2]=QA.re,E[O*2+1]=QA.im}else F?E[O]=S[M+V]:E[O]=r.iget(V);else if(h)if(Y){let QA=L;E[O*2]=QA[(v+rA)*2],E[O*2+1]=QA[(v+rA)*2+1]}else{let QA=I.iget(rA);E[O*2]=QA.re,E[O*2+1]=QA.im}else Y?E[O]=L[v+rA]:E[O]=I.iget(rA)}return s}function bM(A,r,I="left"){if(A.ndim!==1)throw new Error("storage must be 1D");let t=A.size,o=r.size,e=k(A.dtype),g=A.isCContiguous,i=A.data,n=A.offset,Q=r.isCContiguous,C=r.data,a=r.offset;if(!e){let E=Gq(A,r,I);if(E)return E}let B=d.zeros([o],"int32"),s=B.data;if(e)if(g&&Q){let E=i,u=C;for(let D=0;D<o;D++){let y=u[(a+D)*2],f=u[(a+D)*2+1],c=0,m=t;if(I==="left")for(;c<m;){let l=Math.floor((c+m)/2),w=E[(n+l)*2],h=E[(n+l)*2+1];NI(w,h,y,f)<0?c=l+1:m=l}else for(;c<m;){let l=Math.floor((c+m)/2),w=E[(n+l)*2],h=E[(n+l)*2+1];NI(w,h,y,f)<=0?c=l+1:m=l}s[D]=c}}else for(let E=0;E<o;E++){let u=r.iget(E),D=u.re,y=u.im,f=0,c=t;if(I==="left")for(;f<c;){let m=Math.floor((f+c)/2),l=A.iget(m);NI(l.re,l.im,D,y)<0?f=m+1:c=m}else for(;f<c;){let m=Math.floor((f+c)/2),l=A.iget(m);NI(l.re,l.im,D,y)<=0?f=m+1:c=m}s[E]=f}else if(g&&Q)for(let E=0;E<o;E++){let u=Number(C[a+E]),D=0,y=t;if(I==="left")for(;D<y;){let f=Math.floor((D+y)/2);Number(i[n+f])<u?D=f+1:y=f}else for(;D<y;){let f=Math.floor((D+y)/2);Number(i[n+f])<=u?D=f+1:y=f}s[E]=D}else for(let E=0;E<o;E++){let u=Number(r.iget(E)),D=0,y=t;if(I==="left")for(;D<y;){let f=Math.floor((D+y)/2);Number(A.iget(f))<u?D=f+1:y=f}else for(;D<y;){let f=Math.floor((D+y)/2);Number(A.iget(f))<=u?D=f+1:y=f}s[E]=D}return B}function pM(A,r){let I=sM(A,r);if(I)return I;let t=r.dtype,o=k(A.dtype),e=k(t),g=Math.min(A.size,r.size),i=A.isCContiguous,n=A.data,Q=A.offset,C=r.isCContiguous,a=r.data,B=r.offset,s=0;if(i)for(let y=0;y<g;y++)fr(n,Q+y,o)&&s++;else for(let y=0;y<g;y++){let f=A.iget(y);(o?f.re!==0||f.im!==0:f)&&s++}let E=d.zeros([s],t),u=E.data,D=0;if(i&&C)if(P(t)){let y=u,f=a;for(let c=0;c<g;c++)fr(n,Q+c,o)&&(y[D++]=f[B+c])}else if(e){let y=u,f=a;for(let c=0;c<g;c++)fr(n,Q+c,o)&&(y[D*2]=f[(B+c)*2],y[D*2+1]=f[(B+c)*2+1],D++)}else for(let y=0;y<g;y++)fr(n,Q+y,o)&&(u[D++]=a[B+y]);else{let y=i?f=>fr(n,Q+f,o):f=>{let c=A.iget(f);if(o){let m=c;return m.re!==0||m.im!==0}return!!c};if(P(t)){let f=u;for(let c=0;c<g;c++)y(c)&&(f[D++]=r.iget(c))}else if(e){let f=u;for(let c=0;c<g;c++)if(y(c)){let m=r.iget(c);f[D*2]=m.re,f[D*2+1]=m.im,D++}}else for(let f=0;f<g;f++)y(f)&&(u[D++]=r.iget(f))}return E}function qQ(A,r){let I=A.shape,t=I.length,o=A.data,e=A.size,g=A.offset,i=A.strides,n=k(A.dtype),Q=A.isCContiguous;if(r===void 0){let f=lR(A);if(f!==null)return f;let c=0;if(Q)for(let m=0;m<e;m++)fr(o,g+m,n)&&c++;else for(let m=0;m<e;m++){let l=A.iget(m);if(n){let w=l;(w.re!==0||w.im!==0)&&c++}else l!==0&&l!==BigInt(0)&&c++}return c}let C=r;if(C<0&&(C=t+C),C<0||C>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let a=Array.from(I).filter((f,c)=>c!==C);if(a.length===0)return qQ(A);let B=d.zeros(a,"int32"),s=B.data,E=I[C],u=a.reduce((f,c)=>f*c,1),{baseOffsets:D,axisStride:y}=aA(I,i,g,C,u);for(let f=0;f<u;f++){let c=0,m=D[f];for(let l=0;l<E;l++)fr(o,m,n)&&c++,m+=y;s[f]=c}return B}function Qi(A,r=-1){return q(cM(G(A),r))}function Ci(A,r=-1){return q(DM(G(A),r))}function CD(A){return q(fM(A.map(r=>G(r))))}function ai(A,r,I=-1){return q(yM(G(A),r,I))}function Bi(A,r,I=-1){return q(mM(G(A),r,I))}function aD(A){return q(lM(G(A)))}function si(A){return pr(QD(G(A)))}function Ei(A){return q(hM(G(A)))}function BD(A){return q(wM(G(A)))}function MQ(A,r,I){let t=dM(G(A),r?G(r):void 0,I?G(I):void 0);return Array.isArray(t)?pr(t):q(t)}function ct(A,r,I="left"){return q(bM(G(A),G(r),I))}function sD(A,r){return q(pM(G(A),G(r)))}function JQ(A,r){if(Array.isArray(r)){let t=G(A).ndim,e=[...r.map(i=>i<0?t+i:i)].sort((i,n)=>n-i),g=G(A);for(let i of e){let n=qQ(g,i);if(typeof n=="number")return n;g=n}return q(g)}let I=qQ(G(A),r);return typeof I=="number"?I:q(I)}var qX="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",ui=null;function xQ(){if(ui)return ui;let A=atob(qX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ui=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ui.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ui}function ED(A,r,I,t){xQ().exports.bitwise_and_i64(A,r,I,t)}function uD(A,r,I,t){xQ().exports.bitwise_and_i32(A,r,I,t)}function cD(A,r,I,t){xQ().exports.bitwise_and_i16(A,r,I,t)}function DD(A,r,I,t){xQ().exports.bitwise_and_i8(A,r,I,t)}var MX=64,JX={int64:ED,uint64:ED,int32:uD,uint32:uD,int16:cD,uint16:cD,int8:DD,uint8:DD},xX={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function NM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<MX*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=JX[t],e=xX[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g,Q=I*g;x(i+n+Q),U();let C=A.offset,a=r.offset,B=A.data.subarray(C,C+I),s=r.data.subarray(a,a+I),E=R(B),u=R(s),D=H(Q);o(E,u,D,I);let y=_(D,I,e);return d.fromData(y,Array.from(A.shape),t)}var UX="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",ci=null;function UQ(){if(ci)return ci;let A=atob(UX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);ci=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=ci.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ci}function fD(A,r,I,t){UQ().exports.bitwise_or_i64(A,r,I,t)}function yD(A,r,I,t){UQ().exports.bitwise_or_i32(A,r,I,t)}function mD(A,r,I,t){UQ().exports.bitwise_or_i16(A,r,I,t)}function lD(A,r,I,t){UQ().exports.bitwise_or_i8(A,r,I,t)}var LX=64,HX={int64:fD,uint64:fD,int32:yD,uint32:yD,int16:mD,uint16:mD,int8:lD,uint8:lD},YX={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function FM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<LX*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=HX[t],e=YX[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g,Q=I*g;x(i+n+Q),U();let C=A.offset,a=r.offset,B=A.data.subarray(C,C+I),s=r.data.subarray(a,a+I),E=R(B),u=R(s),D=H(Q);o(E,u,D,I);let y=_(D,I,e);return d.fromData(y,Array.from(A.shape),t)}var PX="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADBQQAAAAABgkBfwFBgIDAAAsHSAQPYml0d2lzZV94b3JfaTY0AAAPYml0d2lzZV94b3JfaTMyAAEPYml0d2lzZV94b3JfaTE2AAIOYml0d2lzZV94b3JfaTgAAwqfEASNBAEHfwJAAkAgA0F+cSIEDQBBACEFDAELAkACQCAEQX9qIgZBAUcNAEEAIQUMAQsgBkEBdkEBakF+cSIHQQF0IQUgAiEEIAEhCCAAIQkDQCAEIAj9AAMAIAn9AAMA/VH9CwMAIARBEGogCEEQav0AAwAgCUEQav0AAwD9Uf0LAwAgBEEgaiEEIAhBIGohCCAJQSBqIQkgB0F+aiIHDQALCyAGQQJxDQAgAiAFQQN0IgRqIAEgBGr9AAMAIAAgBGr9AAMA/VH9CwMAIAVBAmohBQsCQCADIAVNDQACQCADIAVrIgZBCEkNACACIABrQRBJDQAgAiABa0EQSQ0AIAEgBUEDdCIJaiEEIAAgCWohCCACIAlqIQkgBSAGQX5xIgpqIQUgCiEHA0AgCSAE/QADACAI/QADAP1R/QsDACAEQRBqIQQgCEEQaiEIIAlBEGohCSAHQX5qIgcNAAsgBiAKRg0BCyAFQQFqIQQCQCADIAVrQQFxRQ0AIAIgBUEDdCIIaiABIAhqKQMAIAAgCGopAwCFNwMAIAQhBQsgAyAERg0AIAMgBWshByACIAVBA3QiCWohBCAAIAlqIQggASAJaiEJA0AgBCAJKQMAIAgpAwCFNwMAIARBCGogCUEIaikDACAIQQhqKQMAhTcDACAEQRBqIQQgCEEQaiEIIAlBEGohCSAHQX5qIgcNAAsLC5EEAQd/AkACQCADQXxxIgQNAEEAIQUMAQsCQAJAIARBf2oiBkEDRw0AQQAhBQwBCyAGQQJ2QQFqQf7///8HcSIHQQJ0IQUgAiEEIAEhCCAAIQkDQCAEIAj9AAIAIAn9AAIA/VH9CwIAIARBEGogCEEQav0AAgAgCUEQav0AAgD9Uf0LAgAgBEEgaiEEIAhBIGohCCAJQSBqIQkgB0F+aiIHDQALCyAGQQRxDQAgAiAFQQJ0IgRqIAEgBGr9AAIAIAAgBGr9AAIA/VH9CwIAIAVBBGohBQsCQCADIAVNDQACQCADIAVrIgZBCEkNACACIABrQRBJDQAgAiABa0EQSQ0AIAEgBUECdCIJaiEEIAAgCWohCCACIAlqIQkgBSAGQXxxIgpqIQUgCiEHA0AgCSAE/QACACAI/QACAP1R/QsCACAEQRBqIQQgCEEQaiEIIAlBEGohCSAHQXxqIgcNAAsgBiAKRg0BCyAFQQFqIQQCQCADIAVrQQFxRQ0AIAIgBUECdCIIaiABIAhqKAIAIAAgCGooAgBzNgIAIAQhBQsgAyAERg0AIAMgBWshByACIAVBAnQiCWohBCAAIAlqIQggASAJaiEJA0AgBCAJKAIAIAgoAgBzNgIAIARBBGogCUEEaigCACAIQQRqKAIAczYCACAEQQhqIQQgCEEIaiEIIAlBCGohCSAHQX5qIgcNAAsLC5EEAQd/AkACQCADQXhxIgQNAEEAIQUMAQsCQAJAIARBf2oiBkEHRw0AQQAhBQwBCyAGQQN2QQFqQf7///8DcSIHQQN0IQUgAiEEIAEhCCAAIQkDQCAEIAj9AAEAIAn9AAEA/VH9CwEAIARBEGogCEEQav0AAQAgCUEQav0AAQD9Uf0LAQAgBEEgaiEEIAhBIGohCCAJQSBqIQkgB0F+aiIHDQALCyAGQQhxDQAgAiAFQQF0IgRqIAEgBGr9AAEAIAAgBGr9AAEA/VH9CwEAIAVBCGohBQsCQCADIAVNDQACQCADIAVrIgZBCEkNACACIABrQRBJDQAgAiABa0EQSQ0AIAEgBUEBdCIJaiEEIAAgCWohCCACIAlqIQkgBSAGQXhxIgpqIQUgCiEHA0AgCSAE/QABACAI/QABAP1R/QsBACAEQRBqIQQgCEEQaiEIIAlBEGohCSAHQXhqIgcNAAsgBiAKRg0BCyAFQQFqIQQCQCADIAVrQQFxRQ0AIAIgBUEBdCIIaiABIAhqLwEAIAAgCGovAQBzOwEAIAQhBQsgAyAERg0AIAMgBWshByACIAVBAXQiCWohBCAAIAlqIQggASAJaiEJA0AgBCAJLwEAIAgvAQBzOwEAIARBAmogCUECai8BACAIQQJqLwEAczsBACAEQQRqIQQgCEEEaiEIIAlBBGohCSAHQX5qIgcNAAsLC+cDAQd/AkACQCADQXBxIgQNAEEAIQQMAQsCQAJAIARBf2oiBUEPRw0AQQAhBAwBCyAFQQR2QQFqQf7///8BcSEGQQAhBANAIAIgBGoiByABIARqIgj9AAAAIAAgBGoiCf0AAAD9Uf0LAAAgB0EQaiAIQRBq/QAAACAJQRBq/QAAAP1R/QsAACAEQSBqIQQgBkF+aiIGDQALCyAFQRBxDQAgAiAEaiABIARq/QAAACAAIARq/QAAAP1R/QsAACAEQRBqIQQLAkAgAyAETQ0AAkAgAyAEayIFQRBJDQAgAiAAa0EQSQ0AIAIgAWtBEEkNACABIARqIQYgACAEaiEHIAIgBGohCCAEIAVBcHEiCmohBCAKIQkDQCAIIAb9AAAAIAf9AAAA/VH9CwAAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAlBcGoiCQ0ACyAFIApGDQELIARBAWohBgJAIAMgBGtBAXFFDQAgAiAEaiABIARqLQAAIAAgBGotAABzOgAAIAYhBAsgAyAGRg0AA0AgAiAEaiIGIAEgBGoiBy0AACAAIARqIggtAABzOgAAIAZBAWogB0EBai0AACAIQQFqLQAAczoAACACQQJqIQIgAEECaiEAIAFBAmohASAEIANBfmoiA0cNAAsLCw==",Di=null;function LQ(){if(Di)return Di;let A=atob(PX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Di=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Di.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Di}function hD(A,r,I,t){LQ().exports.bitwise_xor_i64(A,r,I,t)}function wD(A,r,I,t){LQ().exports.bitwise_xor_i32(A,r,I,t)}function dD(A,r,I,t){LQ().exports.bitwise_xor_i16(A,r,I,t)}function bD(A,r,I,t){LQ().exports.bitwise_xor_i8(A,r,I,t)}var _X=64,KX={int64:hD,uint64:hD,int32:wD,uint32:wD,int16:dD,uint16:dD,int8:bD,uint8:bD},vX={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function GM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<_X*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=KX[t],e=vX[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g,Q=I*g;x(i+n+Q),U();let C=A.offset,a=r.offset,B=A.data.subarray(C,C+I),s=r.data.subarray(a,a+I),E=R(B),u=R(s),D=H(Q);o(E,u,D,I);let y=_(D,I,e);return d.fromData(y,Array.from(A.shape),t)}var XX="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",fi=null;function HQ(){if(fi)return fi;let A=atob(XX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);fi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=fi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),fi}function pD(A,r,I){HQ().exports.bitwise_not_i64(A,r,I)}function ND(A,r,I){HQ().exports.bitwise_not_i32(A,r,I)}function FD(A,r,I){HQ().exports.bitwise_not_i16(A,r,I)}function GD(A,r,I){HQ().exports.bitwise_not_i8(A,r,I)}var TX=64,OX={int64:pD,uint64:pD,int32:ND,uint32:ND,int16:FD,uint16:FD,int8:GD,uint8:GD},VX={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function SM(A){if(!A.isCContiguous)return null;let r=A.size;if(r<TX*K.thresholdMultiplier)return null;let I=A.dtype,t=OX[I],o=VX[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT,g=r*e,i=r*e;x(g+i),U();let n=A.offset,Q=A.data.subarray(n,n+r),C=R(Q),a=H(i);t(C,a,r);let B=_(a,r,o);return d.fromData(B,Array.from(A.shape),I)}var WX="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",yi=null;function uI(){if(yi)return yi;let A=atob(WX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);yi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=yi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),yi}function SD(A,r,I,t){uI().exports.left_shift_i64(A,r,I,t)}function RD(A,r,I,t){uI().exports.left_shift_scalar_i64(A,r,I,BigInt(Math.round(t)))}function kD(A,r,I,t){uI().exports.left_shift_i32(A,r,I,t)}function qD(A,r,I,t){uI().exports.left_shift_scalar_i32(A,r,I,t)}function MD(A,r,I,t){uI().exports.left_shift_i16(A,r,I,t)}function JD(A,r,I,t){uI().exports.left_shift_scalar_i16(A,r,I,t)}function xD(A,r,I,t){uI().exports.left_shift_i8(A,r,I,t)}function UD(A,r,I,t){uI().exports.left_shift_scalar_i8(A,r,I,t)}var RM=64,ZX={int64:SD,uint64:SD,int32:kD,uint32:kD,int16:MD,uint16:MD,int8:xD,uint8:xD},zX={int64:RD,uint64:RD,int32:qD,uint32:qD,int16:JD,uint16:JD,int8:UD,uint8:UD},kM={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function qM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<RM*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=ZX[t],e=kM[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g,Q=I*g;x(i+n+Q),U();let C=A.offset,a=r.offset,B=A.data.subarray(C,C+I),s=r.data.subarray(a,a+I),E=R(B),u=R(s),D=H(Q);o(E,u,D,I);let y=_(D,I,e);return d.fromData(y,Array.from(A.shape),t)}function MM(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<RM*K.thresholdMultiplier)return null;let t=A.dtype,o=zX[t],e=kM[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g;x(i+n),U();let Q=A.offset,C=A.data.subarray(Q,Q+I),a=R(C),B=H(n);o(a,B,I,r);let s=_(B,I,e);return d.fromData(s,Array.from(A.shape),t)}var jX="AGFzbQEAAAABDwJgBH9/f38AYAR/f39+AAIPAQNlbnYGbWVtb3J5AgAQAxEQAAEAAAAAAAAAAQAAAAAAAAYJAX8BQYCAwAALB9UCEA9yaWdodF9zaGlmdF9pNjQAABZyaWdodF9zaGlmdF9zY2FsYXJfaTY0AAEPcmlnaHRfc2hpZnRfaTMyAAIWcmlnaHRfc2hpZnRfc2NhbGFyX2kzMgADD3JpZ2h0X3NoaWZ0X2kxNgAEFnJpZ2h0X3NoaWZ0X3NjYWxhcl9pMTYABQ5yaWdodF9zaGlmdF9pOAAGFXJpZ2h0X3NoaWZ0X3NjYWxhcl9pOAAHD3JpZ2h0X3NoaWZ0X3U2NAAIFnJpZ2h0X3NoaWZ0X3NjYWxhcl91NjQACQ9yaWdodF9zaGlmdF91MzIAChZyaWdodF9zaGlmdF9zY2FsYXJfdTMyAAsPcmlnaHRfc2hpZnRfdTE2AAwWcmlnaHRfc2hpZnRfc2NhbGFyX3UxNgANDnJpZ2h0X3NoaWZ0X3U4AA4VcmlnaHRfc2hpZnRfc2NhbGFyX3U4AA8KhToQ1AICBX8CewJAIANFDQBBACEEAkAgA0EGSQ0AIAIgAWtBEEkNACACIABrQRBJDQAgA0F+cSIEIQUgACEGIAIhByABIQgDQCAHIAb9AAMAIgn9HQAgCP0AAwD9DD8AAAAAAAAAPwAAAAAAAAD9TiIK/R0Ah/0SIAn9HQEgCv0dAYf9HgH9CwMAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAVBfmoiBQ0ACyADIARGDQELIARBAXIhBgJAIANBAXFFDQAgAiAEQQN0IgdqIAAgB2opAwAgASAHaikDAIc3AwAgBiEECyADIAZGDQAgAyAEayEFIAEgBEEDdCIIaiEGIAIgCGohByAAIAhqIQgDQCAHIAgpAwAgBikDAIc3AwAgB0EIaiAIQQhqKQMAIAZBCGopAwCHNwMAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAVBfmoiBQ0ACwsLxgIBBX8CQCACRQ0AIANCP4MhA0EAIQQCQCACQQRJDQAgASAAa0EQSQ0AIAJBfnEiBCEFIAAhBiABIQcDQCAHIAb9AAMAIAOn/cwB/QsDACAGQRBqIQYgB0EQaiEHIAVBfmoiBQ0ACyACIARGDQELIAQhCAJAIAIgBGtBA3EiBUUNACAEIAVqIQggASAEQQN0IgdqIQYgACAHaiEHA0AgBiAHKQMAIAOHNwMAIAZBCGohBiAHQQhqIQcgBUF/aiIFDQALCyAEIAJrQXxLDQAgCEEDdCEFIAIgCGshAgNAIAEgBWoiBiAAIAVqIgcpAwAgA4c3AwAgBkEIaiAHQQhqKQMAIAOHNwMAIAZBEGogB0EQaikDACADhzcDACAGQRhqIAdBGGopAwAgA4c3AwAgAUEgaiEBIABBIGohACACQXxqIgINAAsLC/ACAgV/AnsCQCADRQ0AQQAhBAJAIANBCEkNACACIAFrQRBJDQAgAiAAa0EQSQ0AIANBfHEiBCEFIAAhBiACIQcgASEIA0AgByAG/QACACIJ/RsAIAj9AAIA/QwfAAAAHwAAAB8AAAAfAAAA/U4iCv0bAHX9ESAJ/RsBIAr9GwF1/RwBIAn9GwIgCv0bAnX9HAIgCf0bAyAK/RsDdf0cA/0LAgAgBkEQaiEGIAdBEGohByAIQRBqIQggBUF8aiIFDQALIAMgBEYNAQsgBEEBciEGAkAgA0EBcUUNACACIARBAnQiB2ogACAHaigCACABIAdqKAIAdTYCACAGIQQLIAMgBkYNACADIARrIQUgASAEQQJ0IghqIQYgAiAIaiEHIAAgCGohCANAIAcgCCgCACAGKAIAdTYCACAHQQRqIAhBBGooAgAgBkEEaigCAHU2AgAgBkEIaiEGIAdBCGohByAIQQhqIQggBUF+aiIFDQALCwvsAwUCfwF7An8BewJ/AkACQCACQXxxIgQNAEEAIQUMAQsgA0Efcf0RIQZBACEFIAAhByABIQgDQCAIIAf9AAIAIgn9GwAgBv0bAHX9ESAJ/RsBIAb9GwF1/RwBIAn9GwIgBv0bAnX9HAIgCf0bAyAG/RsDdf0cA/0LAgAgB0EQaiEHIAhBEGohCCAFQQRqIgUgBEkNAAsLAkAgAiAFTQ0AIANBH3EhBwJAIAIgBWsiCkEESQ0AIAEgAGtBEEkNACAAIAVBAnQiBGohCCABIARqIQQgBSAKQXxxIgtqIQUgCyEDA0AgBCAI/QACACAH/awB/QsCACAIQRBqIQggBEEQaiEEIANBfGoiAw0ACyAKIAtGDQELIAUhCgJAIAIgBWtBA3EiA0UNACAFIANqIQogASAFQQJ0IgRqIQggACAEaiEEA0AgCCAEKAIAIAd1NgIAIAhBBGohCCAEQQRqIQQgA0F/aiIDDQALCyAFIAJrQXxLDQAgCkECdCEEIAIgCmshAwNAIAEgBGoiCCAAIARqIgUoAgAgB3U2AgAgCEEEaiAFQQRqKAIAIAd1NgIAIAhBCGogBUEIaigCACAHdTYCACAIQQxqIAVBDGooAgAgB3U2AgAgAUEQaiEBIABBEGohACADQXxqIgMNAAsLC7UDAgV/AnsCQCADRQ0AQQAhBAJAIANBCEkNACACIAFrQRBJDQAgAiAAa0EQSQ0AIANBeHEiBCEFIAAhBiACIQcgASEIA0AgByAG/QABACIJ/RgAIAj9AAEAIgr9GQBBD3F1/RAgCf0YASAK/RkBQQ9xdf0aASAJ/RgCIAr9GQJBD3F1/RoCIAn9GAMgCv0ZA0EPcXX9GgMgCf0YBCAK/RkEQQ9xdf0aBCAJ/RgFIAr9GQVBD3F1/RoFIAn9GAYgCv0ZBkEPcXX9GgYgCf0YByAK/RkHQQ9xdf0aB/0LAQAgBkEQaiEGIAdBEGohByAIQRBqIQggBUF4aiIFDQALIAMgBEYNAQsgBEEBciEGAkAgA0EBcUUNACACIARBAXQiB2ogACAHai4BACABIAdqLwEAQQ9xdTsBACAGIQQLIAMgBkYNACADIARrIQUgASAEQQF0IghqIQYgAiAIaiEHIAAgCGohCANAIAcgCC4BACAGLwEAQQ9xdTsBACAHQQJqIAhBAmouAQAgBkECai8BAEEPcXU7AQAgBkEEaiEGIAdBBGohByAIQQRqIQggBUF+aiIFDQALCwu1BAUCfwF7An8BewJ/AkACQCACQXhxIgQNAEEAIQUMAQsgA/0Q/QwPAA8ADwAPAA8ADwAPAA8A/U4hBkEAIQUgACEHIAEhCANAIAggB/0AAQAiCf0YACAG/RkAdf0QIAn9GAEgBv0ZAXX9GgEgCf0YAiAG/RkCdf0aAiAJ/RgDIAb9GQN1/RoDIAn9GAQgBv0ZBHX9GgQgCf0YBSAG/RkFdf0aBSAJ/RgGIAb9GQZ1/RoGIAn9GAcgBv0ZB3X9Ggf9CwEAIAdBEGohByAIQRBqIQggBUEIaiIFIARJDQALCwJAIAIgBU0NACADQQ9xIQcCQCACIAVrIgpBCEkNACABIABrQRBJDQAgACAFQQF0IgRqIQggASAEaiEEIAUgCkF4cSILaiEFIAshAwNAIAQgCP0AAQAgB/2MAf0LAQAgCEEQaiEIIARBEGohBCADQXhqIgMNAAsgCiALRg0BCyAFIQoCQCACIAVrQQNxIgNFDQAgBSADaiEKIAEgBUEBdCIEaiEIIAAgBGohBANAIAggBC4BACAHdTsBACAIQQJqIQggBEECaiEEIANBf2oiAw0ACwsgBSACa0F8Sw0AIApBAXQhBCACIAprIQMDQCABIARqIgggACAEaiIFLgEAIAd1OwEAIAhBAmogBUECai4BACAHdTsBACAIQQRqIAVBBGouAQAgB3U7AQAgCEEGaiAFQQZqLgEAIAd1OwEAIAFBCGohASAAQQhqIQAgA0F8aiIDDQALCwupBAIFfwJ7AkAgA0UNAEEAIQQCQCADQRBJDQAgAiABa0EQSQ0AIAIgAGtBEEkNACADQXBxIgQhBSAAIQYgAiEHIAEhCANAIAcgBv0AAAAiCf0VACAI/QAAACIK/RYAQQdxdf0PIAn9FQEgCv0WAUEHcXX9FwEgCf0VAiAK/RYCQQdxdf0XAiAJ/RUDIAr9FgNBB3F1/RcDIAn9FQQgCv0WBEEHcXX9FwQgCf0VBSAK/RYFQQdxdf0XBSAJ/RUGIAr9FgZBB3F1/RcGIAn9FQcgCv0WB0EHcXX9FwcgCf0VCCAK/RYIQQdxdf0XCCAJ/RUJIAr9FglBB3F1/RcJIAn9FQogCv0WCkEHcXX9FwogCf0VCyAK/RYLQQdxdf0XCyAJ/RUMIAr9FgxBB3F1/RcMIAn9FQ0gCv0WDUEHcXX9Fw0gCf0VDiAK/RYOQQdxdf0XDiAJ/RUPIAr9Fg9BB3F1/RcP/QsAACAGQRBqIQYgB0EQaiEHIAhBEGohCCAFQXBqIgUNAAsgAyAERg0BCyAEQQFyIQYCQCADQQFxRQ0AIAIgBGogACAEaiwAACABIARqLQAAQQdxdToAACAGIQQLIAMgBkYNAANAIAIgBGoiBiAAIARqIgcsAAAgASAEaiIILQAAQQdxdToAACAGQQFqIAdBAWosAAAgCEEBai0AAEEHcXU6AAAgAUECaiEBIAJBAmohAiAAQQJqIQAgBCADQX5qIgNHDQALCwvpBAMCfwJ7BH8CQAJAIAJBcHEiBA0AQQAhBQwBCyAD/Q/9DAcHBwcHBwcHBwcHBwcHBwf9TiEGQQAhBQNAIAEgBWogACAFav0AAAAiB/0VACAG/RYAdf0PIAf9FQEgBv0WAXX9FwEgB/0VAiAG/RYCdf0XAiAH/RUDIAb9FgN1/RcDIAf9FQQgBv0WBHX9FwQgB/0VBSAG/RYFdf0XBSAH/RUGIAb9FgZ1/RcGIAf9FQcgBv0WB3X9FwcgB/0VCCAG/RYIdf0XCCAH/RUJIAb9Fgl1/RcJIAf9FQogBv0WCnX9FwogB/0VCyAG/RYLdf0XCyAH/RUMIAb9Fgx1/RcMIAf9FQ0gBv0WDXX9Fw0gB/0VDiAG/RYOdf0XDiAH/RUPIAb9Fg91/RcP/QsAACAFQRBqIgUgBEkNAAsLAkAgAiAFTQ0AIANBB3EhAwJAIAIgBWsiCEEQSQ0AIAEgAGtBEEkNACAAIAVqIQQgASAFaiEJIAUgCEFwcSIKaiEFIAohCwNAIAkgBP0AAAAgA/1s/QsAACAEQRBqIQQgCUEQaiEJIAtBcGoiCw0ACyAIIApGDQELIAUhBAJAIAIgBWtBA3EiCUUNACAFIQQDQCABIARqIAAgBGosAAAgA3U6AAAgBEEBaiEEIAlBf2oiCQ0ACwsgBSACa0F8Sw0AA0AgASAEaiIFIAAgBGoiCSwAACADdToAACAFQQFqIAlBAWosAAAgA3U6AAAgBUECaiAJQQJqLAAAIAN1OgAAIAVBA2ogCUEDaiwAACADdToAACABQQRqIQEgAEEEaiEAIAQgAkF8aiICRw0ACwsL1AICBX8CewJAIANFDQBBACEEAkAgA0EGSQ0AIAIgAWtBEEkNACACIABrQRBJDQAgA0F+cSIEIQUgACEGIAIhByABIQgDQCAHIAb9AAMAIgn9HQAgCP0AAwD9DD8AAAAAAAAAPwAAAAAAAAD9TiIK/R0AiP0SIAn9HQEgCv0dAYj9HgH9CwMAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAVBfmoiBQ0ACyADIARGDQELIARBAXIhBgJAIANBAXFFDQAgAiAEQQN0IgdqIAAgB2opAwAgASAHaikDAIg3AwAgBiEECyADIAZGDQAgAyAEayEFIAEgBEEDdCIIaiEGIAIgCGohByAAIAhqIQgDQCAHIAgpAwAgBikDAIg3AwAgB0EIaiAIQQhqKQMAIAZBCGopAwCINwMAIAZBEGohBiAHQRBqIQcgCEEQaiEIIAVBfmoiBQ0ACwsLxgIBBX8CQCACRQ0AIANCP4MhA0EAIQQCQCACQQRJDQAgASAAa0EQSQ0AIAJBfnEiBCEFIAAhBiABIQcDQCAHIAb9AAMAIAOn/c0B/QsDACAGQRBqIQYgB0EQaiEHIAVBfmoiBQ0ACyACIARGDQELIAQhCAJAIAIgBGtBA3EiBUUNACAEIAVqIQggASAEQQN0IgdqIQYgACAHaiEHA0AgBiAHKQMAIAOINwMAIAZBCGohBiAHQQhqIQcgBUF/aiIFDQALCyAEIAJrQXxLDQAgCEEDdCEFIAIgCGshAgNAIAEgBWoiBiAAIAVqIgcpAwAgA4g3AwAgBkEIaiAHQQhqKQMAIAOINwMAIAZBEGogB0EQaikDACADiDcDACAGQRhqIAdBGGopAwAgA4g3AwAgAUEgaiEBIABBIGohACACQXxqIgINAAsLC/ACAgV/AnsCQCADRQ0AQQAhBAJAIANBCEkNACACIAFrQRBJDQAgAiAAa0EQSQ0AIANBfHEiBCEFIAAhBiACIQcgASEIA0AgByAG/QACACIJ/RsAIAj9AAIA/QwfAAAAHwAAAB8AAAAfAAAA/U4iCv0bAHb9ESAJ/RsBIAr9GwF2/RwBIAn9GwIgCv0bAnb9HAIgCf0bAyAK/RsDdv0cA/0LAgAgBkEQaiEGIAdBEGohByAIQRBqIQggBUF8aiIFDQALIAMgBEYNAQsgBEEBciEGAkAgA0EBcUUNACACIARBAnQiB2ogACAHaigCACABIAdqKAIAdjYCACAGIQQLIAMgBkYNACADIARrIQUgASAEQQJ0IghqIQYgAiAIaiEHIAAgCGohCANAIAcgCCgCACAGKAIAdjYCACAHQQRqIAhBBGooAgAgBkEEaigCAHY2AgAgBkEIaiEGIAdBCGohByAIQQhqIQggBUF+aiIFDQALCwvsAwUCfwF7An8BewJ/AkACQCACQXxxIgQNAEEAIQUMAQsgA0Efcf0RIQZBACEFIAAhByABIQgDQCAIIAf9AAIAIgn9GwAgBv0bAHb9ESAJ/RsBIAb9GwF2/RwBIAn9GwIgBv0bAnb9HAIgCf0bAyAG/RsDdv0cA/0LAgAgB0EQaiEHIAhBEGohCCAFQQRqIgUgBEkNAAsLAkAgAiAFTQ0AIANBH3EhBwJAIAIgBWsiCkEESQ0AIAEgAGtBEEkNACAAIAVBAnQiBGohCCABIARqIQQgBSAKQXxxIgtqIQUgCyEDA0AgBCAI/QACACAH/a0B/QsCACAIQRBqIQggBEEQaiEEIANBfGoiAw0ACyAKIAtGDQELIAUhCgJAIAIgBWtBA3EiA0UNACAFIANqIQogASAFQQJ0IgRqIQggACAEaiEEA0AgCCAEKAIAIAd2NgIAIAhBBGohCCAEQQRqIQQgA0F/aiIDDQALCyAFIAJrQXxLDQAgCkECdCEEIAIgCmshAwNAIAEgBGoiCCAAIARqIgUoAgAgB3Y2AgAgCEEEaiAFQQRqKAIAIAd2NgIAIAhBCGogBUEIaigCACAHdjYCACAIQQxqIAVBDGooAgAgB3Y2AgAgAUEQaiEBIABBEGohACADQXxqIgMNAAsLC7UDAgV/AnsCQCADRQ0AQQAhBAJAIANBCEkNACACIAFrQRBJDQAgAiAAa0EQSQ0AIANBeHEiBCEFIAAhBiACIQcgASEIA0AgByAG/QABACIJ/RkAIAj9AAEAIgr9GQBBD3F2/RAgCf0ZASAK/RkBQQ9xdv0aASAJ/RkCIAr9GQJBD3F2/RoCIAn9GQMgCv0ZA0EPcXb9GgMgCf0ZBCAK/RkEQQ9xdv0aBCAJ/RkFIAr9GQVBD3F2/RoFIAn9GQYgCv0ZBkEPcXb9GgYgCf0ZByAK/RkHQQ9xdv0aB/0LAQAgBkEQaiEGIAdBEGohByAIQRBqIQggBUF4aiIFDQALIAMgBEYNAQsgBEEBciEGAkAgA0EBcUUNACACIARBAXQiB2ogACAHai8BACABIAdqLwEAQQ9xdjsBACAGIQQLIAMgBkYNACADIARrIQUgASAEQQF0IghqIQYgAiAIaiEHIAAgCGohCANAIAcgCC8BACAGLwEAQQ9xdjsBACAHQQJqIAhBAmovAQAgBkECai8BAEEPcXY7AQAgBkEEaiEGIAdBBGohByAIQQRqIQggBUF+aiIFDQALCwu1BAUCfwF7An8BewJ/AkACQCACQXhxIgQNAEEAIQUMAQsgA/0Q/QwPAA8ADwAPAA8ADwAPAA8A/U4hBkEAIQUgACEHIAEhCANAIAggB/0AAQAiCf0ZACAG/RkAdv0QIAn9GQEgBv0ZAXb9GgEgCf0ZAiAG/RkCdv0aAiAJ/RkDIAb9GQN2/RoDIAn9GQQgBv0ZBHb9GgQgCf0ZBSAG/RkFdv0aBSAJ/RkGIAb9GQZ2/RoGIAn9GQcgBv0ZB3b9Ggf9CwEAIAdBEGohByAIQRBqIQggBUEIaiIFIARJDQALCwJAIAIgBU0NACADQQ9xIQcCQCACIAVrIgpBCEkNACABIABrQRBJDQAgACAFQQF0IgRqIQggASAEaiEEIAUgCkF4cSILaiEFIAshAwNAIAQgCP0AAQAgB/2NAf0LAQAgCEEQaiEIIARBEGohBCADQXhqIgMNAAsgCiALRg0BCyAFIQoCQCACIAVrQQNxIgNFDQAgBSADaiEKIAEgBUEBdCIEaiEIIAAgBGohBANAIAggBC8BACAHdjsBACAIQQJqIQggBEECaiEEIANBf2oiAw0ACwsgBSACa0F8Sw0AIApBAXQhBCACIAprIQMDQCABIARqIgggACAEaiIFLwEAIAd2OwEAIAhBAmogBUECai8BACAHdjsBACAIQQRqIAVBBGovAQAgB3Y7AQAgCEEGaiAFQQZqLwEAIAd2OwEAIAFBCGohASAAQQhqIQAgA0F8aiIDDQALCwupBAIFfwJ7AkAgA0UNAEEAIQQCQCADQRBJDQAgAiABa0EQSQ0AIAIgAGtBEEkNACADQXBxIgQhBSAAIQYgAiEHIAEhCANAIAcgBv0AAAAiCf0WACAI/QAAACIK/RYAQQdxdv0PIAn9FgEgCv0WAUEHcXb9FwEgCf0WAiAK/RYCQQdxdv0XAiAJ/RYDIAr9FgNBB3F2/RcDIAn9FgQgCv0WBEEHcXb9FwQgCf0WBSAK/RYFQQdxdv0XBSAJ/RYGIAr9FgZBB3F2/RcGIAn9FgcgCv0WB0EHcXb9FwcgCf0WCCAK/RYIQQdxdv0XCCAJ/RYJIAr9FglBB3F2/RcJIAn9FgogCv0WCkEHcXb9FwogCf0WCyAK/RYLQQdxdv0XCyAJ/RYMIAr9FgxBB3F2/RcMIAn9Fg0gCv0WDUEHcXb9Fw0gCf0WDiAK/RYOQQdxdv0XDiAJ/RYPIAr9Fg9BB3F2/RcP/QsAACAGQRBqIQYgB0EQaiEHIAhBEGohCCAFQXBqIgUNAAsgAyAERg0BCyAEQQFyIQYCQCADQQFxRQ0AIAIgBGogACAEai0AACABIARqLQAAQQdxdjoAACAGIQQLIAMgBkYNAANAIAIgBGoiBiAAIARqIgctAAAgASAEaiIILQAAQQdxdjoAACAGQQFqIAdBAWotAAAgCEEBai0AAEEHcXY6AAAgAUECaiEBIAJBAmohAiAAQQJqIQAgBCADQX5qIgNHDQALCwvpBAMCfwJ7BH8CQAJAIAJBcHEiBA0AQQAhBQwBCyAD/Q/9DAcHBwcHBwcHBwcHBwcHBwf9TiEGQQAhBQNAIAEgBWogACAFav0AAAAiB/0WACAG/RYAdv0PIAf9FgEgBv0WAXb9FwEgB/0WAiAG/RYCdv0XAiAH/RYDIAb9FgN2/RcDIAf9FgQgBv0WBHb9FwQgB/0WBSAG/RYFdv0XBSAH/RYGIAb9FgZ2/RcGIAf9FgcgBv0WB3b9FwcgB/0WCCAG/RYIdv0XCCAH/RYJIAb9Fgl2/RcJIAf9FgogBv0WCnb9FwogB/0WCyAG/RYLdv0XCyAH/RYMIAb9Fgx2/RcMIAf9Fg0gBv0WDXb9Fw0gB/0WDiAG/RYOdv0XDiAH/RYPIAb9Fg92/RcP/QsAACAFQRBqIgUgBEkNAAsLAkAgAiAFTQ0AIANBB3EhAwJAIAIgBWsiCEEQSQ0AIAEgAGtBEEkNACAAIAVqIQQgASAFaiEJIAUgCEFwcSIKaiEFIAohCwNAIAkgBP0AAAAgA/1t/QsAACAEQRBqIQQgCUEQaiEJIAtBcGoiCw0ACyAIIApGDQELIAUhBAJAIAIgBWtBA3EiCUUNACAFIQQDQCABIARqIAAgBGotAAAgA3Y6AAAgBEEBaiEEIAlBf2oiCQ0ACwsgBSACa0F8Sw0AA0AgASAEaiIFIAAgBGoiCS0AACADdjoAACAFQQFqIAlBAWotAAAgA3Y6AAAgBUECaiAJQQJqLQAAIAN2OgAAIAVBA2ogCUEDai0AACADdjoAACABQQRqIQEgAEEEaiEAIAQgAkF8aiICRw0ACwsL",mi=null;function ZA(){if(mi)return mi;let A=atob(jX),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);mi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=mi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),mi}function JM(A,r,I,t){ZA().exports.right_shift_i64(A,r,I,t)}function xM(A,r,I,t){ZA().exports.right_shift_scalar_i64(A,r,I,BigInt(Math.round(t)))}function UM(A,r,I,t){ZA().exports.right_shift_i32(A,r,I,t)}function LM(A,r,I,t){ZA().exports.right_shift_scalar_i32(A,r,I,t)}function HM(A,r,I,t){ZA().exports.right_shift_i16(A,r,I,t)}function YM(A,r,I,t){ZA().exports.right_shift_scalar_i16(A,r,I,t)}function PM(A,r,I,t){ZA().exports.right_shift_i8(A,r,I,t)}function _M(A,r,I,t){ZA().exports.right_shift_scalar_i8(A,r,I,t)}function KM(A,r,I,t){ZA().exports.right_shift_u64(A,r,I,t)}function vM(A,r,I,t){ZA().exports.right_shift_scalar_u64(A,r,I,BigInt(Math.round(t)))}function XM(A,r,I,t){ZA().exports.right_shift_u32(A,r,I,t)}function TM(A,r,I,t){ZA().exports.right_shift_scalar_u32(A,r,I,t)}function OM(A,r,I,t){ZA().exports.right_shift_u16(A,r,I,t)}function VM(A,r,I,t){ZA().exports.right_shift_scalar_u16(A,r,I,t)}function WM(A,r,I,t){ZA().exports.right_shift_u8(A,r,I,t)}function ZM(A,r,I,t){ZA().exports.right_shift_scalar_u8(A,r,I,t)}var zM=64,$X={int64:JM,uint64:KM,int32:UM,uint32:XM,int16:HM,uint16:OM,int8:PM,uint8:WM},AT={int64:xM,uint64:vM,int32:LM,uint32:TM,int16:YM,uint16:VM,int8:_M,uint8:ZM},jM={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function $M(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<zM*K.thresholdMultiplier)return null;let t=tA(A.dtype,r.dtype),o=$X[t],e=jM[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g,Q=I*g;x(i+n+Q),U();let C=A.offset,a=r.offset,B=A.data.subarray(C,C+I),s=r.data.subarray(a,a+I),E=R(B),u=R(s),D=H(Q);o(E,u,D,I);let y=_(D,I,e);return d.fromData(y,Array.from(A.shape),t)}function AJ(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<zM*K.thresholdMultiplier)return null;let t=A.dtype,o=AT[t],e=jM[t];if(!o||!e)return null;let g=e.BYTES_PER_ELEMENT,i=I*g,n=I*g;x(i+n),U();let Q=A.offset,C=A.data.subarray(Q,Q+I),a=R(C),B=H(n);o(a,B,I,r);let s=_(B,I,e);return d.fromData(s,Array.from(A.shape),t)}var rT="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",li=null;function cI(){if(li)return li;let A=atob(rT),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);li=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=li.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),li}function rJ(A,r,I){cI().exports.bitwise_count_i64(A,r,I)}function IJ(A,r,I){cI().exports.bitwise_count_u64(A,r,I)}function tJ(A,r,I){cI().exports.bitwise_count_i32(A,r,I)}function oJ(A,r,I){cI().exports.bitwise_count_u32(A,r,I)}function eJ(A,r,I){cI().exports.bitwise_count_i16(A,r,I)}function gJ(A,r,I){cI().exports.bitwise_count_u16(A,r,I)}function iJ(A,r,I){cI().exports.bitwise_count_i8(A,r,I)}function nJ(A,r,I){cI().exports.bitwise_count_u8(A,r,I)}var IT=64,tT={int64:rJ,uint64:IJ,int32:tJ,uint32:oJ,int16:eJ,uint16:gJ,int8:iJ,uint8:nJ},oT={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function QJ(A){if(!A.isCContiguous)return null;let r=A.size;if(r<IT*K.thresholdMultiplier)return null;let I=A.dtype,t=tT[I],o=oT[I];if(!t||!o)return null;let e=o.BYTES_PER_ELEMENT,g=r*e,i=r;x(g+i),U();let n=A.offset,Q=A.data.subarray(n,n+r),C=R(Q),a=H(i);t(C,a,r);let B=_(a,r,Uint8Array);return d.fromData(B,Array.from(A.shape),"uint8")}function yr(A,r){if(!SA(A)&&A!=="bool")throw new TypeError(`ufunc '${r}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function hi(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,t)=>I===r.shape[t])}function BJ(A,r){if(yr(A.dtype,"bitwise_and"),typeof r=="number")return gT(A,r);if(yr(r.dtype,"bitwise_and"),hi(A,r)){let I=NM(A,r);return I||eT(A,r)}return pA(A,r,(I,t)=>I&t,"bitwise_and")}function eT(A,r){let I=tA(A.dtype,r.dtype),t=d.zeros(Array.from(A.shape),I),o=A.size,e=A.data,g=r.data,i=A.offset,n=r.offset,Q=t.data;if(P(I)){let C=Q;if(!P(A.dtype)||!P(r.dtype))for(let B=0;B<o;B++){let s=typeof e[i+B]=="bigint"?e[i+B]:BigInt(Math.round(Number(e[i+B]))),E=typeof g[n+B]=="bigint"?g[n+B]:BigInt(Math.round(Number(g[n+B])));C[B]=s&E}else{let B=e,s=g;for(let E=0;E<o;E++)C[E]=B[i+E]&s[n+E]}}else for(let C=0;C<o;C++)Q[C]=e[i+C]&g[n+C];return t}function gT(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.offset,g=A.size,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q,a=BigInt(Math.round(r));if(i){let B=o;if(e===0)for(let s=0;s<g;s++)C[s]=B[s]&a;else for(let s=0;s<g;s++)C[s]=B[e+s]&a}else for(let B=0;B<g;B++)C[B]=A.iget(B)&a}else if(i)if(e===0)for(let C=0;C<g;C++)Q[C]=o[C]&r;else for(let C=0;C<g;C++)Q[C]=o[e+C]&r;else for(let C=0;C<g;C++)Q[C]=Number(A.iget(C))&r;return n}function sJ(A,r){if(yr(A.dtype,"bitwise_or"),typeof r=="number")return nT(A,r);if(yr(r.dtype,"bitwise_or"),hi(A,r)){let I=FM(A,r);return I||iT(A,r)}return pA(A,r,(I,t)=>I|t,"bitwise_or")}function iT(A,r){let I=tA(A.dtype,r.dtype),t=d.zeros(Array.from(A.shape),I),o=A.size,e=A.data,g=r.data,i=A.offset,n=r.offset,Q=t.data;if(P(I)){let C=Q;if(!P(A.dtype)||!P(r.dtype))for(let B=0;B<o;B++){let s=typeof e[i+B]=="bigint"?e[i+B]:BigInt(Math.round(Number(e[i+B]))),E=typeof g[n+B]=="bigint"?g[n+B]:BigInt(Math.round(Number(g[n+B])));C[B]=s|E}else{let B=e,s=g;for(let E=0;E<o;E++)C[E]=B[i+E]|s[n+E]}}else for(let C=0;C<o;C++)Q[C]=e[i+C]|g[n+C];return t}function nT(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.offset,g=A.size,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q,a=BigInt(Math.round(r));if(i){let B=o;if(e===0)for(let s=0;s<g;s++)C[s]=B[s]|a;else for(let s=0;s<g;s++)C[s]=B[e+s]|a}else for(let B=0;B<g;B++)C[B]=A.iget(B)|a}else if(i)if(e===0)for(let C=0;C<g;C++)Q[C]=o[C]|r;else for(let C=0;C<g;C++)Q[C]=o[e+C]|r;else for(let C=0;C<g;C++)Q[C]=Number(A.iget(C))|r;return n}function EJ(A,r){if(yr(A.dtype,"bitwise_xor"),typeof r=="number")return CT(A,r);if(yr(r.dtype,"bitwise_xor"),hi(A,r)){let I=GM(A,r);return I||QT(A,r)}return pA(A,r,(I,t)=>I^t,"bitwise_xor")}function QT(A,r){let I=tA(A.dtype,r.dtype),t=d.zeros(Array.from(A.shape),I),o=A.size,e=A.data,g=r.data,i=A.offset,n=r.offset,Q=t.data;if(P(I)){let C=Q;if(!P(A.dtype)||!P(r.dtype))for(let B=0;B<o;B++){let s=typeof e[i+B]=="bigint"?e[i+B]:BigInt(Math.round(Number(e[i+B]))),E=typeof g[n+B]=="bigint"?g[n+B]:BigInt(Math.round(Number(g[n+B])));C[B]=s^E}else{let B=e,s=g;for(let E=0;E<o;E++)C[E]=B[i+E]^s[n+E]}}else for(let C=0;C<o;C++)Q[C]=e[i+C]^g[n+C];return t}function CT(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.offset,g=A.size,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q,a=BigInt(Math.round(r));if(i){let B=o;if(e===0)for(let s=0;s<g;s++)C[s]=B[s]^a;else for(let s=0;s<g;s++)C[s]=B[e+s]^a}else for(let B=0;B<g;B++)C[B]=A.iget(B)^a}else if(i)if(e===0)for(let C=0;C<g;C++)Q[C]=o[C]^r;else for(let C=0;C<g;C++)Q[C]=o[e+C]^r;else for(let C=0;C<g;C++)Q[C]=Number(A.iget(C))^r;return n}function HD(A){yr(A.dtype,"bitwise_not");let r=SM(A);if(r)return r;let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.offset,g=A.size,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q;if(i){let a=o;if(e===0)for(let B=0;B<g;B++)C[B]=~a[B];else for(let B=0;B<g;B++)C[B]=~a[e+B]}else for(let a=0;a<g;a++)C[a]=~A.iget(a)}else if(i)if(e===0)for(let C=0;C<g;C++)Q[C]=~o[C];else for(let C=0;C<g;C++)Q[C]=~o[e+C];else for(let C=0;C<g;C++)Q[C]=~Number(A.iget(C));return n}function uJ(A){return HD(A)}function cJ(A,r){if(yr(A.dtype,"left_shift"),typeof r=="number")return CJ(A,r);if(yr(r.dtype,"left_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let I=Number(r.iget(0)),t=MM(A,I);return t||CJ(A,I)}if(hi(A,r)){let I=qM(A,r);return I||aT(A,r)}return pA(A,r,(I,t)=>I<<t,"left_shift")}function aT(A,r){let I=tA(A.dtype,r.dtype),t=d.zeros(Array.from(A.shape),I),o=A.size,e=A.data,g=r.data,i=A.offset,n=r.offset,Q=t.data;if(P(I)){let C=Q;for(let a=0;a<o;a++){let B=typeof e[i+a]=="bigint"?e[i+a]:BigInt(Math.round(Number(e[i+a]))),s=typeof g[n+a]=="bigint"?g[n+a]:BigInt(Math.round(Number(g[n+a])));C[a]=B<<s}}else for(let C=0;C<o;C++)Q[C]=e[i+C]<<g[n+C];return t}function CJ(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.offset,g=A.size,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q,a=BigInt(Math.round(r));if(i){let B=o;if(e===0)for(let s=0;s<g;s++)C[s]=B[s]<<a;else for(let s=0;s<g;s++)C[s]=B[e+s]<<a}else for(let B=0;B<g;B++)C[B]=A.iget(B)<<a}else if(i)if(e===0)for(let C=0;C<g;C++)Q[C]=o[C]<<r;else for(let C=0;C<g;C++)Q[C]=o[e+C]<<r;else for(let C=0;C<g;C++)Q[C]=Number(A.iget(C))<<r;return n}function DJ(A,r){if(yr(A.dtype,"right_shift"),typeof r=="number")return aJ(A,r);if(yr(r.dtype,"right_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let I=Number(r.iget(0)),t=AJ(A,I);return t||aJ(A,I)}if(hi(A,r)){let I=$M(A,r);return I||BT(A,r)}return pA(A,r,(I,t)=>I>>t,"right_shift")}function BT(A,r){let I=tA(A.dtype,r.dtype),t=d.zeros(Array.from(A.shape),I),o=A.size,e=A.data,g=r.data,i=A.offset,n=r.offset,Q=t.data;if(P(I)){let C=Q;for(let a=0;a<o;a++){let B=typeof e[i+a]=="bigint"?e[i+a]:BigInt(Math.round(Number(e[i+a]))),s=typeof g[n+a]=="bigint"?g[n+a]:BigInt(Math.round(Number(g[n+a])));C[a]=B>>s}}else for(let C=0;C<o;C++)Q[C]=e[i+C]>>g[n+C];return t}function aJ(A,r){let I=A.dtype,t=Array.from(A.shape),o=A.data,e=A.offset,g=A.size,i=A.isCContiguous,n=d.zeros(t,I),Q=n.data;if(P(I)){let C=Q,a=BigInt(Math.round(r));if(i){let B=o;if(e===0)for(let s=0;s<g;s++)C[s]=B[s]>>a;else for(let s=0;s<g;s++)C[s]=B[e+s]>>a}else for(let B=0;B<g;B++)C[B]=A.iget(B)>>a}else if(i)if(e===0)for(let C=0;C<g;C++)Q[C]=o[C]>>r;else for(let C=0;C<g;C++)Q[C]=o[e+C]>>r;else for(let C=0;C<g;C++)Q[C]=Number(A.iget(C))>>r;return n}function fJ(A,r=-1,I="big"){let t=Array.from(A.shape),o=t.length;if(r<0&&(r=o+r),r<0||r>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let e=t[r],g=Math.ceil(e/8),i=[...t];i[r]=g;let n=d.zeros(i,"uint8"),Q=n.data,C=A.offset,a=A.isCContiguous;if(o===1){for(let f=0;f<g;f++){let c=0;for(let m=0;m<8;m++){let l=f*8+m;if(l<e){let w=a?Number(A.data[C+l])!==0?1:0:Number(A.iget(l))!==0?1:0;I==="big"?c|=w<<7-m:c|=w<<m}}Q[f]=c}return n}let B=t.slice(0,r),s=t.slice(r+1),E=B.reduce((f,c)=>f*c,1),u=s.reduce((f,c)=>f*c,1),D=YQ(t),y=YQ(i);for(let f=0;f<E;f++)for(let c=0;c<u;c++)for(let m=0;m<g;m++){let l=0;for(let p=0;p<8;p++){let N=m*8+p;if(N<e){let F=0,S=f;for(let L=0;L<r;L++){let v=L<r-1?B.slice(L+1).reduce((O,z)=>O*z,1):1,Z=Math.floor(S/v);S%=v,F+=Z*D[L]}F+=N*D[r];let M=c;for(let L=r+1;L<o;L++){let v=L<o-1?s.slice(L-r).reduce((O,z)=>O*z,1):1,Z=Math.floor(M/v);M%=v,F+=Z*D[L]}let Y=a?Number(A.data[C+F])!==0?1:0:Number(A.iget(F))!==0?1:0;I==="big"?l|=Y<<7-p:l|=Y<<p}}let w=0,h=f;for(let p=0;p<r;p++){let N=p<r-1?B.slice(p+1).reduce((S,M)=>S*M,1):1,F=Math.floor(h/N);h%=N,w+=F*y[p]}w+=m*y[r];let b=c;for(let p=r+1;p<o;p++){let N=p<o-1?s.slice(p-r).reduce((S,M)=>S*M,1):1,F=Math.floor(b/N);b%=N,w+=F*y[p]}Q[w]=l}return n}function yJ(A,r=-1,I=-1,t="big"){if(A.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(A.shape),e=o.length;if(r<0&&(r=e+r),r<0||r>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let g=o[r],i=g*8;I>=0&&(i=I);let n=[...o];n[r]=i;let Q=d.zeros(n,"uint8"),C=Q.data,a=A.offset,B=A.isCContiguous;if(e===1){for(let c=0;c<g;c++){let m=Number(B?A.data[a+c]:A.iget(c));for(let l=0;l<8;l++){let w=c*8+l;if(w>=i)break;t==="big"?C[w]=m>>7-l&1:C[w]=m>>l&1}}return Q}let s=o.slice(0,r),E=o.slice(r+1),u=s.reduce((c,m)=>c*m,1),D=E.reduce((c,m)=>c*m,1),y=YQ(o),f=YQ(n);for(let c=0;c<u;c++)for(let m=0;m<D;m++)for(let l=0;l<g;l++){let w=0,h=c;for(let N=0;N<r;N++){let F=N<r-1?s.slice(N+1).reduce((M,Y)=>M*Y,1):1,S=Math.floor(h/F);h%=F,w+=S*y[N]}w+=l*y[r];let b=m;for(let N=r+1;N<e;N++){let F=N<e-1?E.slice(N-r).reduce((M,Y)=>M*Y,1):1,S=Math.floor(b/F);b%=F,w+=S*y[N]}let p=Number(B?A.data[a+w]:A.iget(w));for(let N=0;N<8;N++){let F=l*8+N;if(F>=i)break;let S=0;h=c;for(let M=0;M<r;M++){let Y=M<r-1?s.slice(M+1).reduce((v,Z)=>v*Z,1):1,L=Math.floor(h/Y);h%=Y,S+=L*f[M]}S+=F*f[r],b=m;for(let M=r+1;M<e;M++){let Y=M<e-1?E.slice(M-r).reduce((v,Z)=>v*Z,1):1,L=Math.floor(b/Y);b%=Y,S+=L*f[M]}t==="big"?C[S]=p>>7-N&1:C[S]=p>>N&1}}return Q}function YQ(A){let r=A.length,I=new Array(r),t=1;for(let o=r-1;o>=0;o--)I[o]=t,t*=A[o];return I}function mJ(A){let r=A.dtype;yr(r,"bitwise_count");let I=QJ(A);if(I)return I;let t=Array.from(A.shape),o=A.data,e=A.offset,g=A.size,i=A.isCContiguous,n=d.zeros(t,"uint8"),Q=n.data,C=r==="int8"||r==="int16"||r==="int32"||r==="int64";if(P(r))if(i){let a=o;if(e===0)for(let B=0;B<g;B++){let s=a[B];Q[B]=LD(C&&s<0n?-s:s)}else for(let B=0;B<g;B++){let s=a[e+B];Q[B]=LD(C&&s<0n?-s:s)}}else for(let a=0;a<g;a++){let B=A.iget(a);Q[a]=LD(C&&B<0n?-B:B)}else if(C)if(i)if(e===0)for(let a=0;a<g;a++)Q[a]=Dt(Math.abs(o[a]));else for(let a=0;a<g;a++)Q[a]=Dt(Math.abs(o[e+a]));else for(let a=0;a<g;a++)Q[a]=Dt(Math.abs(Number(A.iget(a))));else{let a=r==="uint8"?255:r==="uint16"?65535:4294967295;if(i)if(e===0)for(let B=0;B<g;B++)Q[B]=Dt(o[B]&a);else for(let B=0;B<g;B++)Q[B]=Dt(o[e+B]&a);else for(let B=0;B<g;B++)Q[B]=Dt(Number(A.iget(B))&a)}return n}function Dt(A){A=A>>>0;let r=0;for(;A!==0;)A=A&A-1,r++;return r}function LD(A){A<0n&&(A=BigInt.asUintN(64,A));let r=0;for(;A!==0n;)A=A&A-1n,r++;return r}function wi(A,r){let I=typeof r=="number"?r:G(r);return q(BJ(G(A),I))}function di(A,r){let I=typeof r=="number"?r:G(r);return q(sJ(G(A),I))}function bi(A,r){let I=typeof r=="number"?r:G(r);return q(EJ(G(A),I))}function pi(A){return q(HD(G(A)))}function Ni(A){return q(uJ(G(A)))}function Fi(A,r){let I=typeof r=="number"?r:G(r);return q(cJ(G(A),I))}function Gi(A,r){let I=typeof r=="number"?r:G(r);return q(DJ(G(A),I))}function YD(A,r,I){return q(fJ(G(A),r,I))}function PD(A,r,I,t){return q(yJ(G(A),r,I,t))}function _D(A){return q(mJ(G(A)))}function PQ(A){if(!isFinite(A))return A;let r=Math.floor(A),I=A-r;return Math.abs(I-.5)<1e-10?r%2===0?r:r+1:Math.round(A)}function lJ(A,r=0){gA(A.dtype,"around","Rounding is not defined for complex numbers.");let I=A.dtype,t=Array.from(A.shape),o=A.size,e=I==="float32"?"float32":"float64",g=d.zeros(t,e),i=g.data,n=Math.pow(10,r);if(A.isCContiguous){let Q=A.data,C=A.offset;for(let a=0;a<o;a++){let B=Number(Q[C+a]);i[a]=PQ(B*n)/n}}else for(let Q=0;Q<o;Q++){let C=Number(A.iget(Q));i[Q]=PQ(C*n)/n}return g}function hJ(A){gA(A.dtype,"ceil","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),t=A.size,o=r==="float32"?"float32":"float64",e=d.zeros(I,o),g=e.data;if(A.isCContiguous){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++)g[Q]=Math.ceil(Number(i[n+Q]))}else for(let i=0;i<t;i++)g[i]=Math.ceil(Number(A.iget(i)));return e}function wJ(A){gA(A.dtype,"fix","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),t=A.size,o=r==="float32"?"float32":"float64",e=d.zeros(I,o),g=e.data;if(A.isCContiguous){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++)g[Q]=Math.trunc(Number(i[n+Q]))}else for(let i=0;i<t;i++)g[i]=Math.trunc(Number(A.iget(i)));return e}function dJ(A){gA(A.dtype,"floor","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),t=A.size,o=r==="float32"?"float32":"float64",e=d.zeros(I,o),g=e.data;if(A.isCContiguous){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++)g[Q]=Math.floor(Number(i[n+Q]))}else for(let i=0;i<t;i++)g[i]=Math.floor(Number(A.iget(i)));return e}function bJ(A){gA(A.dtype,"rint","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),t=A.size,o=r==="float32"?"float32":"float64",e=d.zeros(I,o),g=e.data;if(A.isCContiguous){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++)g[Q]=PQ(Number(i[n+Q]))}else for(let i=0;i<t;i++)g[i]=PQ(Number(A.iget(i)));return e}function pJ(A){gA(A.dtype,"trunc","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),t=A.size,o=r==="float32"?"float32":"float64",e=d.zeros(I,o),g=e.data;if(A.isCContiguous){let i=A.data,n=A.offset;for(let Q=0;Q<t;Q++)g[Q]=Math.trunc(Number(i[n+Q]))}else for(let i=0;i<t;i++)g[i]=Math.trunc(Number(A.iget(i)));return e}function Si(A,r=0){return q(lJ(G(A),r))}function Ri(A){return q(hJ(G(A)))}function ki(A){return q(wJ(G(A)))}function qi(A){return q(dJ(G(A)))}function Mi(A){return q(bJ(G(A)))}function Ji(A){return q(pJ(G(A)))}function KD(A,r,I,t){let o=isNaN(A)||isNaN(r),e=isNaN(I)||isNaN(t);return o&&e?0:o?1:e||A<I?-1:A>I?1:r<t?-1:r>t?1:0}function uT(A,r,I,t){let o=isNaN(A)||isNaN(r),e=isNaN(I)||isNaN(t);return o&&e?!0:o||e?!1:A===I&&r===t}function NJ(A,r,I,t,o,e,g,i,n){let Q=new Int32Array(e),C=g?new Int32Array(e).fill(-1):null;for(let w=0;w<I;w++){let h=Number(A[r+w])-o;Q[h]++,C!==null&&C[h]===-1&&(C[h]=w)}let a=0;for(let w=0;w<e;w++)Q[w]>0&&a++;let B=d.zeros([a],t),s=B.data,E=s instanceof BigInt64Array||s instanceof BigUint64Array,u=n?d.zeros([a],"int32"):null,D=u?u.data:null,y=g?d.zeros([a],"int32"):null,f=y?y.data:null,c=i?new Int32Array(e).fill(-1):null,m=0;for(let w=0;w<e;w++)Q[w]>0&&(E?s[m]=BigInt(w+o):s[m]=w+o,D&&(D[m]=Q[w]),f&&(f[m]=C[w]),c&&(c[w]=m),m++);if(!g&&!i&&!n)return B;let l={values:B};if(y&&(l.indices=y),i){let w=d.zeros([I],"int32"),h=w.data;for(let b=0;b<I;b++)h[b]=c[Number(A[r+b])-o];l.inverse=w}return u&&(l.counts=u),l}function gr(A,r=!1,I=!1,t=!1,o){if(o!==void 0){let h=Array.from(A.shape),b=h.length,p=o<0?b+o:o;if(p<0||p>=b)throw new Error(`unique: axis ${o} out of bounds for array of dimension ${b}`);let N=h[p],F=[];for(let Z=0;Z<N;Z++){let O=[],z=h.filter((V,rA)=>rA!==p),j=z.reduce((V,rA)=>V*rA,1);for(let V=0;V<j;V++){let rA=V,oA=new Array(z.length);for(let bA=z.length-1;bA>=0;bA--)oA[bA]=rA%z[bA],rA=Math.floor(rA/z[bA]);let QA=[],dA=0;for(let bA=0;bA<b;bA++)QA.push(bA===p?Z:oA[dA++]);O.push(Number(A.get(...QA)))}F.push(O.join(","))}let S=F.map((Z,O)=>({key:Z,i:O}));S.sort((Z,O)=>Z.key<O.key?-1:Z.key>O.key?1:0);let M=[],Y;for(let{key:Z,i:O}of S)Z!==Y&&(M.push(O),Y=Z);let L=h.map((Z,O)=>O===p?M.length:Z),v=d.zeros(L,A.dtype);for(let Z=0;Z<M.length;Z++){let O=M[Z],z=h.filter((V,rA)=>rA!==p),j=z.reduce((V,rA)=>V*rA,1);for(let V=0;V<j;V++){let rA=V,oA=new Array(z.length);for(let FA=z.length-1;FA>=0;FA--)oA[FA]=rA%z[FA],rA=Math.floor(rA/z[FA]);let QA=[],dA=[],bA=0;for(let FA=0;FA<b;FA++)QA.push(FA===p?O:oA[bA]),dA.push(FA===p?Z:oA[bA]),FA!==p&&bA++;v.set(dA,Number(A.get(...QA)))}}return v}let e=A.dtype,g=A.size,i=A.data,n=A.offset;if(k(e)){let h=i,b=[];for(let V=0;V<g;V++)b.push({re:h[(n+V)*2],im:h[(n+V)*2+1],index:V});b.sort((V,rA)=>KD(V.re,V.im,rA.re,rA.im));let p=[],N=[],F=new Array(g),S=[],M,Y,L=0;for(let V=0;V<b.length;V++){let{re:rA,im:oA,index:QA}=b[V];M===void 0||!uT(rA,oA,M,Y)?(M!==void 0&&S.push(L),p.push({re:rA,im:oA}),N.push(QA),L=1,M=rA,Y=oA):L++}L>0&&S.push(L);let v=new Map,Z=-1;for(let V=0;V<p.length;V++){let{re:rA,im:oA}=p[V];isNaN(rA)||isNaN(oA)?Z=V:v.set(`${rA},${oA}`,V)}for(let V=0;V<g;V++){let rA=h[(n+V)*2],oA=h[(n+V)*2+1];isNaN(rA)||isNaN(oA)?F[V]=Z:F[V]=v.get(`${rA},${oA}`)}let O=d.zeros([p.length],e),z=O.data;for(let V=0;V<p.length;V++)z[V*2]=p[V].re,z[V*2+1]=p[V].im;if(!r&&!I&&!t)return O;let j={values:O};if(r){let V=d.zeros([N.length],"int32"),rA=V.data;for(let oA=0;oA<N.length;oA++)rA[oA]=N[oA];j.indices=V}if(I){let V=d.zeros([F.length],"int32"),rA=V.data;for(let oA=0;oA<F.length;oA++)rA[oA]=F[oA];j.inverse=V}if(t){let V=d.zeros([S.length],"int32"),rA=V.data;for(let oA=0;oA<S.length;oA++)rA[oA]=S[oA];j.counts=V}return j}if(e==="int8"||e==="uint8")return NJ(i,n,g,e,e==="int8"?-128:0,256,r,I,t);if(e==="int16"||e==="uint16"||e==="int32"||e==="uint32"){let h=Number(i[n]),b=h;for(let N=1;N<g;N++){let F=Number(i[n+N]);F<h?h=F:F>b&&(b=F)}let p=b-h+1;if(p<=4*g)return NJ(i,n,g,e,h,p,r,I,t)}let Q=i instanceof BigInt64Array||i instanceof BigUint64Array,C=e==="float64"||e==="float32"||e==="float16";if(!r&&!I){let h=new Float64Array(g);for(let L=0;L<g;L++)h[L]=Number(i[n+L]);if(h.sort(),g===0){let L=d.zeros([0],e);return t?{values:L,counts:d.zeros([0],"int32")}:L}let b=[h[0]],p=[1];for(let L=1;L<g;L++){let v=h[L],Z=h[L-1];v!==Z&&!(v!==v&&Z!==Z)?(b.push(v),p.push(1)):p[p.length-1]++}let N=b.length,F=d.zeros([N],e),S=F.data;if(Q)for(let L=0;L<N;L++)S[L]=BigInt(b[L]);else for(let L=0;L<N;L++)S[L]=b[L];if(!t)return F;let M=d.zeros([N],"int32"),Y=M.data;for(let L=0;L<N;L++)Y[L]=p[L];return{values:F,counts:M}}let a=new Float64Array(g),B=new Int32Array(g);for(let h=0;h<g;h++)a[h]=Number(i[n+h]),B[h]=h;C?B.sort((h,b)=>{let p=a[h],N=a[b];return p!==p&&N!==N?0:p!==p?1:N!==N?-1:p-N}):B.sort((h,b)=>a[h]-a[b]);let s=[],E=[],u=[],D,y=0;for(let h=0;h<g;h++){let b=B[h],p=a[b];D===void 0||(C?p!==p&&D===D||p===p&&D!==D||p===p&&p!==D:p!==D)?(D!==void 0&&u.push(y),s.push(p),E.push(b),y=1,D=p):y++}y>0&&u.push(y);let f=s.length,c=d.zeros([f],e),m=c.data,l=m instanceof BigInt64Array||m instanceof BigUint64Array;for(let h=0;h<f;h++)m[h]=l?BigInt(s[h]):s[h];if(!r&&!I&&!t)return c;let w={values:c};if(r){let h=d.zeros([f],"int32"),b=h.data;for(let p=0;p<f;p++)b[p]=E[p];w.indices=h}if(I){let h=new Map,b=-1;for(let F=0;F<f;F++){let S=s[F];S!==S?b=F:h.set(S,F)}let p=d.zeros([g],"int32"),N=p.data;for(let F=0;F<g;F++){let S=a[F];N[F]=S!==S?b:h.get(S)}w.inverse=p}if(t){let h=d.zeros([f],"int32"),b=h.data;for(let p=0;p<f;p++)b[p]=u[p];w.counts=h}return w}function Mr(A,r,I,t=0){if(I){let o=Number(A[(t+r)*2]),e=Number(A[(t+r)*2+1]);return`${o},${e}`}return String(Number(A[t+r]))}function FJ(A,r){return vD(A,r)}function GJ(A,r){let I=A.dtype,t=k(I),o=gr(A),e=gr(r),g=new Set;for(let C=0;C<e.size;C++)g.add(Mr(e.data,C,t));let i=[];for(let C=0;C<o.size;C++){let a=Mr(o.data,C,t);g.has(a)&&i.push(C)}if(t){let C=d.zeros([i.length],I),a=C.data,B=o.data;for(let s=0;s<i.length;s++){let E=i[s];a[s*2]=B[E*2],a[s*2+1]=B[E*2+1]}return C}let n=d.zeros([i.length],I),Q=n.data;for(let C=0;C<i.length;C++)Q[C]=o.data[i[C]];return n}function vD(A,r){let I=Array.from(A.shape),t=A.size,o=k(A.dtype),e=new Set;for(let n=0;n<r.size;n++)e.add(Mr(r.data,n,o,r.offset));let g=d.zeros(I,"bool"),i=g.data;for(let n=0;n<t;n++){let Q=Mr(A.data,n,o,A.offset);i[n]=e.has(Q)?1:0}return g}function SJ(A,r){let I=A.dtype,t=k(I),o=gr(A),e=new Set;for(let Q=0;Q<r.size;Q++)e.add(Mr(r.data,Q,t,r.offset));let g=[];for(let Q=0;Q<o.size;Q++){let C=Mr(o.data,Q,t);e.has(C)||g.push(Q)}if(t){let Q=d.zeros([g.length],I),C=Q.data,a=o.data;for(let B=0;B<g.length;B++){let s=g[B];C[B*2]=a[s*2],C[B*2+1]=a[s*2+1]}return Q}let i=d.zeros([g.length],I),n=i.data;for(let Q=0;Q<g.length;Q++)n[Q]=o.data[g[Q]];return i}function RJ(A,r){let I=A.dtype,t=k(I),o=gr(A),e=gr(r),g=new Set,i=new Set;for(let s=0;s<o.size;s++)g.add(Mr(o.data,s,t));for(let s=0;s<e.size;s++)i.add(Mr(e.data,s,t));let n=[],Q=[];for(let s=0;s<o.size;s++){let E=Mr(o.data,s,t);i.has(E)||n.push(s)}for(let s=0;s<e.size;s++){let E=Mr(e.data,s,t);g.has(E)||Q.push(s)}if(t){let s=[],E=o.data,u=e.data;for(let f of n)s.push({re:E[f*2],im:E[f*2+1]});for(let f of Q)s.push({re:u[f*2],im:u[f*2+1]});s.sort((f,c)=>KD(f.re,f.im,c.re,c.im));let D=d.zeros([s.length],I),y=D.data;for(let f=0;f<s.length;f++)y[f*2]=s[f].re,y[f*2+1]=s[f].im;return D}let C=[];for(let s of n)C.push(Number(o.data[s]));for(let s of Q)C.push(Number(e.data[s]));C.sort((s,E)=>isNaN(s)&&isNaN(E)?0:isNaN(s)?1:isNaN(E)?-1:s-E);let a=d.zeros([C.length],I),B=a.data;for(let s=0;s<C.length;s++)B[s]=C[s];return a}function kJ(A,r){let I=A.dtype,t=k(I),o=gr(A),e=gr(r),g=new Set,i=[];if(t){let a=o.data,B=e.data;for(let u=0;u<o.size;u++){let D=a[u*2],y=a[u*2+1],f=`${D},${y}`;g.has(f)||(g.add(f),i.push({re:D,im:y}))}for(let u=0;u<e.size;u++){let D=B[u*2],y=B[u*2+1],f=`${D},${y}`;g.has(f)||(g.add(f),i.push({re:D,im:y}))}i.sort((u,D)=>KD(u.re,u.im,D.re,D.im));let s=d.zeros([i.length],I),E=s.data;for(let u=0;u<i.length;u++)E[u*2]=i[u].re,E[u*2+1]=i[u].im;return s}let n=[];for(let a=0;a<o.size;a++){let B=Number(o.data[a]),s=String(B);g.has(s)||(g.add(s),n.push(B))}for(let a=0;a<e.size;a++){let B=Number(e.data[a]),s=String(B);g.has(s)||(g.add(s),n.push(B))}n.sort((a,B)=>isNaN(a)&&isNaN(B)?0:isNaN(a)?1:isNaN(B)?-1:a-B);let Q=d.zeros([n.length],I),C=Q.data;for(let a=0;a<n.length;a++)C[a]=n[a];return Q}function qJ(A,r="fb"){let I=A.dtype,t=A.data,o=A.size,e=A.offset;if(o===0)return d.zeros([0],I);let g=0,i=o-1;if(k(I)){let C=t;if(r!=="b")for(;g<o&&C[(e+g)*2]===0&&C[(e+g)*2+1]===0;)g++;if(r!=="f")for(;i>=g&&C[(e+i)*2]===0&&C[(e+i)*2+1]===0;)i--;if(g>i)return d.zeros([0],I);let a=i-g+1,B=d.zeros([a],I);return B.data.set(C.subarray((e+g)*2,(e+g+a)*2)),B}if(t instanceof BigInt64Array||t instanceof BigUint64Array){if(r!=="b")for(;g<o&&t[e+g]===0n;)g++;if(r!=="f")for(;i>=g&&t[e+i]===0n;)i--}else{let C=t.subarray(e,e+o);if(r!=="b")for(;g<o&&C[g]===0;)g++;if(r!=="f")for(;i>=g&&C[i]===0;)i--}if(g>i)return d.zeros([0],I);let n=i-g+1,Q=d.zeros([n],I);return t instanceof BigInt64Array||t instanceof BigUint64Array,Q.data.set(t.subarray(e+g,e+g+n)),Q}function MJ(A){let I=gr(A,!0,!0,!0);return{values:I.values,indices:I.indices,inverse_indices:I.inverse,counts:I.counts}}function JJ(A){let I=gr(A,!1,!1,!0);return{values:I.values,counts:I.counts}}function xJ(A){let I=gr(A,!1,!0,!1);return{values:I.values,inverse_indices:I.inverse}}function UJ(A){return gr(A)}function _Q(A,r=!1,I=!1,t=!1,o){let e=gr(G(A),r,I,t,o);return"values"in e?{values:q(e.values),indices:e.indices?q(e.indices):void 0,inverse:e.inverse?q(e.inverse):void 0,counts:e.counts?q(e.counts):void 0}:q(e)}function XD(A,r){return q(FJ(G(A),G(r)))}function TD(A,r){return q(GJ(G(A),G(r)))}function OD(A,r){return q(vD(G(A),G(r)))}function VD(A,r){return q(SJ(G(A),G(r)))}function WD(A,r){return q(RJ(G(A),G(r)))}function ZD(A,r){return q(kJ(G(A),G(r)))}function zD(A,r){return q(qJ(G(A),r))}function KQ(A){let r=MJ(G(A));return{values:q(r.values),indices:q(r.indices),inverse_indices:q(r.inverse_indices),counts:q(r.counts)}}function vQ(A){let r=JJ(G(A));return{values:q(r.values),counts:q(r.counts)}}function XQ(A){let r=xJ(G(A));return{values:q(r.values),inverse_indices:q(r.inverse_indices)}}function jD(A){return q(UJ(G(A)))}var DT="AGFzbQEAAAABCgFgBn9/f39/fwACDwEDZW52Bm1lbW9yeQIAEAMDAgAABgkBfwFBgIDAAAsHIQINY29ycmVsYXRlX2Y2NAAADWNvcnJlbGF0ZV9mMzIAAQqtCgKOBQQIfwJ7A38BfAJAIANBf2oiBiABaiIHRQ0AIANBA3QgAmoiA0F4aiEIIANBCGohCSAAIQpBACELA0ACQAJAQQAgCyIMIAZrIgMgAyAMSxsiA0EEaiAMQQFqIgsgASAMIAFJGyINTQ0A/QwAAAAAAAAAAAAAAAAAAAAAIg4hDwwBCyAMIAwgBiAMIAZJGyIDayEQIAkgA0EDdCIDayECIAogA2shEf0MAAAAAAAAAAAAAAAAAAAAACIPIQ4DQCAOIBFBEGr9AAMAIAL9AAMA/fIB/fABIQ4gDyAR/QADACACQXBq/QADAP3yAf3wASEPIBBBCGohEiACQSBqIQIgEUEgaiERIBBBBGoiAyEQIBIgDU0NAAsLAkACQCADQQJqIA1NDQAgAyESDAELIAggA0EDdCIRaiECIAAgEWohEQNAIA8gEf0AAwAgAv0AAwD98gH98AEhDyADQQRqIRAgAkEQaiECIBFBEGohESADQQJqIhIhAyAQIA1NDQALCyAOIA/98AEiD/0hACAP/SEBoCETAkAgEiANTw0AAkACQCANIBJrQQNxIhENACASIQIMAQsgEkEDdCEDIBIhAgNAIBMgACADaisDACAIIANqKwMAoqAhEyADQQhqIQMgAkEBaiECIBFBf2oiEQ0ACwsgEiANa0F8Sw0AIAJBA3QhAyANIAJrIRADQCATIAAgA2oiAisDACAIIANqIhErAwCioCACQQhqKwMAIBFBCGorAwCioCACQRBqKwMAIBFBEGorAwCioCACQRhqKwMAIBFBGGorAwCioCETIANBIGohAyAQQXxqIhANAAsLIAQgDEEDdGogEzkDACAIQXhqIQggCkEIaiEKIAsgB0cNAAsLC5oFBAh/AnsDfwF9AkAgA0F/aiIGIAFqIgdFDQAgA0ECdCACaiIDQXxqIQggA0EMaiEJIAAhCkEAIQsDQAJAAkBBACALIgwgBmsiAyADIAxLGyIDQQhqIAxBAWoiCyABIAwgAUkbIg1NDQD9DAAAAAAAAAAAAAAAAAAAAAAiDiEPDAELIAwgDCAGIAwgBkkbIgNrIRAgCSADQQJ0IgNrIQIgCiADayER/QwAAAAAAAAAAAAAAAAAAAAAIg8hDgNAIA4gEUEQav0AAgAgAv0AAgD95gH95AEhDiAPIBH9AAIAIAJBcGr9AAIA/eYB/eQBIQ8gEEEQaiESIAJBIGohAiARQSBqIREgEEEIaiIDIRAgEiANTQ0ACwsCQAJAIANBBGogDU0NACADIRIMAQsgCCADQQJ0IhFqIQIgACARaiERA0AgDyAR/QACACAC/QACAP3mAf3kASEPIANBCGohECACQRBqIQIgEUEQaiERIANBBGoiEiEDIBAgDU0NAAsLIA4gD/3kASIP/R8DIA/9HwIgD/0fACAP/R8BkpKSIRMCQCASIA1PDQACQAJAIA0gEmtBA3EiEQ0AIBIhAgwBCyASQQJ0IQMgEiECA0AgEyAAIANqKgIAIAggA2oqAgCUkiETIANBBGohAyACQQFqIQIgEUF/aiIRDQALCyASIA1rQXxLDQAgAkECdCEDIA0gAmshEANAIBMgACADaiICKgIAIAggA2oiESoCAJSSIAJBBGoqAgAgEUEEaioCAJSSIAJBCGoqAgAgEUEIaioCAJSSIAJBDGoqAgAgEUEMaioCAJSSIRMgA0EQaiEDIBBBfGoiEA0ACwsgBCAMQQJ0aiATOAIAIAhBfGohCCAKQQRqIQogCyAHRw0ACwsL",xi=null;function LJ(){if(xi)return xi;let A=atob(DT),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);xi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=xi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),xi}function HJ(A,r,I,t,o,e){LJ().exports.correlate_f64(A,r,I,t,o,e)}function YJ(A,r,I,t,o,e){LJ().exports.correlate_f32(A,r,I,t,o,e)}var fT=32,yT={float64:HJ,float32:YJ},mT={float64:Float64Array,float32:Float32Array};function PJ(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,t=r.size,o=I+t-1;if(o<fT*K.thresholdMultiplier)return null;let g=(A.dtype==="float32"||A.dtype==="float16")&&(r.dtype==="float32"||r.dtype==="float16")?"float32":"float64",i=yT[g],n=mT[g];if(!i||!n)return null;let Q=n.BYTES_PER_ELEMENT,C=I*Q,a=t*Q,B=o*Q;x(C+a+B),U();let s=A.offset,E=r.offset,u,D;if(A.dtype==="float16")u=AA(A.data.subarray(s,s+I),A.dtype);else if(A.dtype===g)u=A.data.subarray(s,s+I);else{let l=new n(I),w=A.data;for(let h=0;h<I;h++)l[h]=Number(w[s+h]);u=l}if(r.dtype==="float16")D=AA(r.data.subarray(E,E+t),r.dtype);else if(r.dtype===g)D=r.data.subarray(E,E+t);else{let l=new n(t),w=r.data;for(let h=0;h<t;h++)l[h]=Number(w[E+h]);D=l}let y=R(u),f=R(D),c=H(B);i(y,I,f,t,c,o);let m=_(c,o,n);return d.fromData(m,[o],g)}var lT="AGFzbQEAAAABCgFgBn9/f39/fwACDwEDZW52Bm1lbW9yeQIAEAMDAgAABgkBfwFBgIDAAAsHHwIMY29udm9sdmVfZjY0AAAMY29udm9sdmVfZjMyAAEKiQMCxgEDA38BfAR/AkAgA0F/aiIGIAFqIgdFDQBBACEIA0BEAAAAAAAAAAAhCQJAQQAgCCAGayIDIAMgCEsbIgogCEEBaiILIAEgCCABSRsiDE8NACAAIAggBiAIIAZJG0EDdCINayEDIAIgDWohDUQAAAAAAAAAACEJA0AgCSADKwMAIA0rAwCioCEJIANBCGohAyANQXhqIQ0gCkEBaiIKIAxJDQALCyAEIAhBA3RqIAk5AwAgAEEIaiEAIAshCCALIAdHDQALCwu+AQMDfwF9BH8CQCADQX9qIgYgAWoiB0UNAEEAIQgDQEMAAAAAIQkCQEEAIAggBmsiAyADIAhLGyIKIAhBAWoiCyABIAggAUkbIgxPDQAgACAIIAYgCCAGSRtBAnQiDWshAyACIA1qIQ1DAAAAACEJA0AgCSADKgIAIA0qAgCUkiEJIANBBGohAyANQXxqIQ0gCkEBaiIKIAxJDQALCyAEIAhBAnRqIAk4AgAgAEEEaiEAIAshCCALIAdHDQALCws=",Ui=null;function _J(){if(Ui)return Ui;let A=atob(lT),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ui=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ui.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ui}function KJ(A,r,I,t,o,e){_J().exports.convolve_f64(A,r,I,t,o,e)}function vJ(A,r,I,t,o,e){_J().exports.convolve_f32(A,r,I,t,o,e)}var hT=32,wT={float64:KJ,float32:vJ},dT={float64:Float64Array,float32:Float32Array};function XJ(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,t=r.size,o=I+t-1;if(o<hT*K.thresholdMultiplier)return null;let g=(A.dtype==="float32"||A.dtype==="float16")&&(r.dtype==="float32"||r.dtype==="float16")?"float32":"float64",i=wT[g],n=dT[g];if(!i||!n)return null;let Q=n.BYTES_PER_ELEMENT,C=I*Q,a=t*Q,B=o*Q;x(C+a+B),U();let s=A.offset,E=r.offset,u,D;if(A.dtype==="float16")u=AA(A.data.subarray(s,s+I),A.dtype);else if(A.dtype===g)u=A.data.subarray(s,s+I);else{let l=new n(I),w=A.data;for(let h=0;h<I;h++)l[h]=Number(w[s+h]);u=l}if(r.dtype==="float16")D=AA(r.data.subarray(E,E+t),r.dtype);else if(r.dtype===g)D=r.data.subarray(E,E+t);else{let l=new n(t),w=r.data;for(let h=0;h<t;h++)l[h]=Number(w[E+h]);D=l}let y=R(u),f=R(D),c=H(B);i(y,I,f,t,c,o);let m=_(c,o,n);return d.fromData(m,[o],g)}function TJ(A,r,I=0){gA(A.dtype,"bincount","bincount requires integer input.");let t=A.data,o=A.size,e=0;for(let i=0;i<o;i++){let n=Number(t[i]);if(n<0||!Number.isInteger(n))throw new Error("'x' argument must contain non-negative integers");n>e&&(e=n)}let g=Math.max(e+1,I);if(r!==void 0){if(r.size!==o)throw new Error("weights array must have same length as x");let i=r.data,n=new Float64Array(g);for(let Q=0;Q<o;Q++){let C=Number(t[Q]);n[C]+=Number(i[Q])}return d.fromData(n,[g],"float64")}else{let i=new Float64Array(g);for(let n=0;n<o;n++){let Q=Number(t[n]);i[Q]++}return d.fromData(i,[g],"float64")}}function OJ(A,r,I=!1){gA(A.dtype,"digitize","digitize requires real numbers."),gA(r.dtype,"digitize","digitize requires real numbers.");let t=A.data,o=r.data,e=A.size,g=r.size,i=new Float64Array(e),n=!0;g>1&&(n=Number(o[1])>=Number(o[0]));for(let Q=0;Q<e;Q++){let C=Number(t[Q]),a;if(n)I?a=bT(o,g,C):a=Li(o,g,C);else if(I)for(a=0;a<g&&Number(o[a])>=C;)a++;else for(a=0;a<g&&Number(o[a])>C;)a++;i[Q]=a}return d.fromData(i,[...A.shape],"float64")}function bT(A,r,I){let t=0,o=r;for(;t<o;){let e=t+o>>>1;Number(A[e])<I?t=e+1:o=e}return t}function Li(A,r,I){let t=0,o=r;for(;t<o;){let e=t+o>>>1;Number(A[e])<=I?t=e+1:o=e}return t}function VJ(A,r=10,I,t=!1,o){gA(A.dtype,"histogram","histogram requires real numbers."),typeof r!="number"&&gA(r.dtype,"histogram","histogram requires real numbers.");let e=A.data,g=A.size,i;if(typeof r=="number"){let a,B;if(I)[a,B]=I;else{a=1/0,B=-1/0;for(let E=0;E<g;E++){let u=Number(e[E]);u<a&&(a=u),u>B&&(B=u)}a===B&&(a=a-.5,B=B+.5)}i=[];let s=iA(A.dtype);if(s&&fA(A.dtype)&&A.dtype!=="float64"){let E=new s(3);E[0]=(B-a)/r,E[2]=a;for(let u=0;u<=r;u++)E[1]=Number(E[2])+u*Number(E[0]),i.push(Number(E[1]))}else{let E=(B-a)/r;for(let u=0;u<=r;u++)i.push(a+u*E)}}else{let a=r.data;i=[];for(let B=0;B<r.size;B++)i.push(Number(a[B]))}let n=i.length-1,Q=new Float64Array(n),C=o?.data;for(let a=0;a<g;a++){let B=Number(e[a]),s=C?Number(C[a]):1,E=Li(i,i.length,B)-1;if(!(E<0)){if(E>=n)if(B===i[n])E=n-1;else continue;Q[E]+=s}}if(t){let a=0;for(let B=0;B<n;B++)a+=Q[B];for(let B=0;B<n;B++){let s=i[B+1]-i[B];Q[B]=Q[B]/(a*s)}}return{hist:d.fromData(Q,[n],"float64"),bin_edges:d.fromData(new Float64Array(i),[i.length],"float64")}}function WJ(A,r,I=10,t,o=!1,e){gA(A.dtype,"histogram2d","histogram2d requires real numbers."),gA(r.dtype,"histogram2d","histogram2d requires real numbers.");let g=A.data,i=r.data,n=A.size;if(r.size!==n)throw new Error("x and y must have the same length");let Q,C,a,B;if(typeof I=="number"?(a=I,B=I):Array.isArray(I)&&I.length===2?(I[0],a=I[0],B=I[1]):(a=10,B=10),typeof a=="number"){let y,f;if(t)[y,f]=t[0];else{y=1/0,f=-1/0;for(let m=0;m<n;m++){let l=Number(g[m]);l<y&&(y=l),l>f&&(f=l)}y===f&&(y-=.5,f+=.5)}Q=[];let c=iA(A.dtype);if(c&&fA(A.dtype)&&A.dtype!=="float64"){let m=new c(3);m[0]=(f-y)/a,m[2]=y;for(let l=0;l<=a;l++)m[1]=Number(m[2])+l*Number(m[0]),Q.push(Number(m[1]))}else{let m=(f-y)/a;for(let l=0;l<=a;l++)Q.push(y+l*m)}}else{let y=a.data;Q=[];for(let f=0;f<a.size;f++)Q.push(Number(y[f]))}if(typeof B=="number"){let y,f;if(t)[y,f]=t[1];else{y=1/0,f=-1/0;for(let m=0;m<n;m++){let l=Number(i[m]);l<y&&(y=l),l>f&&(f=l)}y===f&&(y-=.5,f+=.5)}C=[];let c=iA(r.dtype);if(c&&fA(r.dtype)&&r.dtype!=="float64"){let m=new c(3);m[0]=(f-y)/B,m[2]=y;for(let l=0;l<=B;l++)m[1]=Number(m[2])+l*Number(m[0]),C.push(Number(m[1]))}else{let m=(f-y)/B;for(let l=0;l<=B;l++)C.push(y+l*m)}}else{let y=B.data;C=[];for(let f=0;f<B.size;f++)C.push(Number(y[f]))}let s=Q.length-1,E=C.length-1,u=new Float64Array(s*E),D=e?.data;for(let y=0;y<n;y++){let f=Number(g[y]),c=Number(i[y]),m=D?Number(D[y]):1,l=Li(Q,Q.length,f)-1,w=Li(C,C.length,c)-1;if(l<0||l>=s)if(f===Q[s]&&l===s)l=s-1;else continue;if(w<0||w>=E)if(c===C[E]&&w===E)w=E-1;else continue;u[l*E+w]+=m}if(o){let y=0;for(let f=0;f<u.length;f++)y+=u[f];for(let f=0;f<s;f++)for(let c=0;c<E;c++){let m=Q[f+1]-Q[f],l=C[c+1]-C[c],w=m*l;u[f*E+c]=u[f*E+c]/(y*w)}}return{hist:d.fromData(u,[s,E],"float64"),x_edges:d.fromData(new Float64Array(Q),[Q.length],"float64"),y_edges:d.fromData(new Float64Array(C),[C.length],"float64")}}function ZJ(A,r=10,I,t=!1,o){gA(A.dtype,"histogramdd","histogramdd requires real numbers.");let e=A.shape,g=A.data,i,n;if(e.length===1)i=e[0],n=1;else if(e.length===2)i=e[0],n=e[1];else throw new Error("sample must be 1D or 2D array");let Q;if(typeof r=="number")Q=new Array(n).fill(r);else if(Q=r,Q.length!==n)throw new Error("bins array length must match number of dimensions");let C=[];for(let y=0;y<n;y++){let f,c;if(I&&I[y])[f,c]=I[y];else{f=1/0,c=-1/0;for(let h=0;h<i;h++){let b=Number(n===1?g[h]:g[h*n+y]);b<f&&(f=b),b>c&&(c=b)}f===c&&(f-=.5,c+=.5)}let m=Q[y],l=[],w=(c-f)/m;for(let h=0;h<=m;h++)l.push(f+h*w);C.push(l)}let a=Q.slice(),B=a.reduce((y,f)=>y*f,1),s=new Float64Array(B),E=new Array(n);E[n-1]=1;for(let y=n-2;y>=0;y--)E[y]=E[y+1]*Q[y+1];let u=o?.data;for(let y=0;y<i;y++){let f=u?Number(u[y]):1,c=0,m=!1;for(let l=0;l<n;l++){let w=Number(n===1?g[y]:g[y*n+l]),h=C[l],b=Q[l],p=Li(h,h.length,w)-1;if(p<0||p>=b)if(w===h[b]&&p===b)p=b-1;else{m=!0;break}c+=p*E[l]}m||(s[c]+=f)}if(t){let y=0;for(let c=0;c<B;c++)y+=s[c];let f=new Float64Array(B);for(let c=0;c<B;c++){let m=1,l=c;for(let w=0;w<n;w++){let h=Math.floor(l/E[w])%Q[w],b=C[w];m*=b[h+1]-b[h]}f[c]=m}for(let c=0;c<B;c++)s[c]=s[c]/(y*f[c])}let D=C.map(y=>d.fromData(new Float64Array(y),[y.length],"float64"));return{hist:d.fromData(s,a,"float64"),edges:D}}function Af(A,r,I="full"){let t=A.data,o=r.data,e=A.size,g=r.size,i=k(A.dtype)||k(r.dtype),n=e+g-1;if(i){let a=new Float64Array(n),B=new Float64Array(n),s=k(A.dtype),E=k(r.dtype);for(let D=0;D<n;D++){let y=0,f=0,c=D-g+1;for(let m=0;m<e;m++){let l=m-c;if(l>=0&&l<g){let w,h,b,p;s?(w=t[m*2],h=t[m*2+1]):(w=Number(t[m]),h=0),E?(b=o[l*2],p=o[l*2+1]):(b=Number(o[l]),p=0),y+=w*b+h*p,f+=h*b-w*p}}a[D]=y,B[D]=f}let u=(D,y,f,c=0)=>{let m=new Float64Array(f*2);for(let l=0;l<f;l++)m[l*2]=D[c+l],m[l*2+1]=y[c+l];return d.fromData(m,[f],"complex128")};if(I==="full")return u(a,B,n);if(I==="same"){let D=Math.floor((n-e)/2);return u(a,B,e,D)}else{let D=Math.max(e,g)-Math.min(e,g)+1,y=Math.min(e,g)-1;return u(a,B,D,y)}}let Q=PJ(A,r);if(Q){if(I==="full")return Q;let a=Q.data;if(I==="same"){let B=Math.floor((n-e)/2),s=new Float64Array(e);for(let E=0;E<e;E++)s[E]=a[B+E];return d.fromData(s,[e],Q.dtype)}else{let B=Math.max(e,g)-Math.min(e,g)+1,s=Math.min(e,g)-1,E=new Float64Array(B);for(let u=0;u<B;u++)E[u]=a[s+u];return d.fromData(E,[B],Q.dtype)}}let C=new Float64Array(n);for(let a=0;a<n;a++){let B=0,s=a-g+1;for(let E=0;E<e;E++){let u=E-s;u>=0&&u<g&&(B+=Number(t[E])*Number(o[u]))}C[a]=B}if(I==="full")return d.fromData(C,[n],"float64");if(I==="same"){let a=Math.floor((n-e)/2),B=new Float64Array(e);for(let s=0;s<e;s++)B[s]=C[a+s];return d.fromData(B,[e],"float64")}else{let a=Math.max(e,g)-Math.min(e,g)+1,B=Math.min(e,g)-1,s=new Float64Array(a);for(let E=0;E<a;E++)s[E]=C[B+E];return d.fromData(s,[a],"float64")}}function zJ(A,r,I="full"){let t=r.size,o=A.size,e=k(r.dtype);if(!e&&!k(A.dtype)){let n=XJ(A,r);if(n){let Q=o+t-1;if(I==="full")return n;let C=n.data;if(I==="same"){let a=Math.floor((Q-o)/2),B=new Float64Array(o);for(let s=0;s<o;s++)B[s]=C[a+s];return d.fromData(B,[o],n.dtype)}else{let a=Math.max(o,t)-Math.min(o,t)+1,B=Math.min(o,t)-1,s=new Float64Array(a);for(let E=0;E<a;E++)s[E]=C[B+E];return d.fromData(s,[a],n.dtype)}}}let g=r.data,i;if(e){let n=new Float64Array(t*2);for(let Q=0;Q<t;Q++){let C=t-1-Q;n[Q*2]=g[C*2],n[Q*2+1]=g[C*2+1]}i=d.fromData(n,[t],r.dtype)}else{let n=new Float64Array(t);for(let Q=0;Q<t;Q++)n[Q]=Number(g[t-1-Q]);i=d.fromData(n,[t],"float64")}if(e){let n=i.data;for(let Q=0;Q<t;Q++)n[Q*2+1]=-n[Q*2+1]}return Af(A,i,I)}function rf(A,r,I=!0,t=!1,o){let e=A.shape,g=A.data,i=k(A.dtype)||r!==void 0&&k(r.dtype),n;if(o!==void 0?n=o:n=t?0:1,e.length===1)if(r!==void 0){let u=r.data,D=A.size,y=k(A.dtype),f=k(r.dtype);if(r.size!==D)throw new Error("m and y must have same length");if(i){let p=0,N=0,F=0,S=0;for(let oA=0;oA<D;oA++)y?(p+=g[oA*2],N+=g[oA*2+1]):p+=Number(g[oA]),f?(F+=u[oA*2],S+=u[oA*2+1]):F+=Number(u[oA]);p/=D,N/=D,F/=D,S/=D;let M=0,Y=0,L=0,v=0,Z=0,O=0,z=0,j=0;for(let oA=0;oA<D;oA++){let QA,dA,bA,FA;y?(QA=g[oA*2]-p,dA=g[oA*2+1]-N):(QA=Number(g[oA])-p,dA=0),f?(bA=u[oA*2]-F,FA=u[oA*2+1]-S):(bA=Number(u[oA])-F,FA=0),M+=QA*QA+dA*dA,L+=bA*bA+FA*FA,Z+=QA*bA+dA*FA,O+=dA*bA-QA*FA,z+=bA*QA+FA*dA,j+=FA*QA-bA*dA}let V=D-n;if(V<=0){let oA=new Float64Array(8);return oA.fill(NaN),d.fromData(oA,[2,2],"complex128")}M/=V,L/=V,Z/=V,O/=V,z/=V,j/=V;let rA=new Float64Array(8);return rA[0]=M,rA[1]=Y,rA[2]=Z,rA[3]=O,rA[4]=z,rA[5]=j,rA[6]=L,rA[7]=v,d.fromData(rA,[2,2],"complex128")}let c=0,m=0;for(let p=0;p<D;p++)c+=Number(g[p]),m+=Number(u[p]);c/=D,m/=D;let l=0,w=0,h=0;for(let p=0;p<D;p++){let N=Number(g[p])-c,F=Number(u[p])-m;l+=N*N,w+=F*F,h+=N*F}let b=D-n;return b<=0?d.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(l/=b,w/=b,h/=b,d.fromData(new Float64Array([l,h,h,w]),[2,2],"float64"))}else{let u=A.size;if(i){let c=0,m=0;for(let h=0;h<u;h++)c+=g[h*2],m+=g[h*2+1];c/=u,m/=u;let l=0;for(let h=0;h<u;h++){let b=g[h*2]-c,p=g[h*2+1]-m;l+=b*b+p*p}let w=u-n;return w<=0?d.fromData(new Float64Array([NaN,0]),[],"complex128"):(l/=w,d.fromData(new Float64Array([l,0]),[],"complex128"))}let D=0;for(let c=0;c<u;c++)D+=Number(g[c]);D/=u;let y=0;for(let c=0;c<u;c++){let m=Number(g[c])-D;y+=m*m}let f=u-n;return f<=0?d.fromData(new Float64Array([NaN]),[],"float64"):(y/=f,d.fromData(new Float64Array([y]),[],"float64"))}let Q,C;I?(Q=e[0],C=e[1]):(Q=e[1],C=e[0]);let a=C-n;if(i){let u=new Float64Array(Q),D=new Float64Array(Q);for(let f=0;f<Q;f++){let c=0,m=0;for(let l=0;l<C;l++){let w=I?f*C+l:l*Q+f;c+=g[w*2],m+=g[w*2+1]}u[f]=c/C,D[f]=m/C}let y=new Float64Array(Q*Q*2);if(a<=0)return y.fill(NaN),d.fromData(y,[Q,Q],"complex128");for(let f=0;f<Q;f++)for(let c=0;c<Q;c++){let m=0,l=0;for(let h=0;h<C;h++){let b=I?f*C+h:h*Q+f,p=I?c*C+h:h*Q+c,N=g[b*2]-u[f],F=g[b*2+1]-D[f],S=g[p*2]-u[c],M=g[p*2+1]-D[c];m+=N*S+F*M,l+=F*S-N*M}let w=(f*Q+c)*2;y[w]=m/a,y[w+1]=l/a}return d.fromData(y,[Q,Q],"complex128")}let B=new Float64Array(Q*C);for(let u=0;u<Q;u++){let D=0;for(let c=0;c<C;c++){let m=I?u*C+c:c*Q+u;D+=Number(g[m])}let y=D/C,f=u*C;for(let c=0;c<C;c++){let m=I?u*C+c:c*Q+u;B[f+c]=Number(g[m])-y}}let s=new Float64Array(Q*Q);if(a<=0)return s.fill(NaN),d.fromData(s,[Q,Q],"float64");let E=1/a;for(let u=0;u<Q;u++){let D=u*C;for(let y=u;y<Q;y++){let f=y*C,c=0;for(let l=0;l<C;l++)c+=B[D+l]*B[f+l];let m=c*E;s[u*Q+y]=m,s[y*Q+u]=m}}return d.fromData(s,[Q,Q],"float64")}function jJ(A,r,I=!0){let t=k(A.dtype)||r!==void 0&&k(r.dtype);if(A.shape.length===1&&r===void 0)return t?d.fromData(new Float64Array([1,0]),[],"complex128"):d.fromData(new Float64Array([1]),[],"float64");let o=rf(A,r,I,!1),e=o.data,i=o.shape[0];if(t){let a=new Float64Array(i*i*2);for(let B=0;B<i;B++)for(let s=0;s<i;s++){let E=e[(B*i+s)*2],u=e[(B*i+s)*2+1],D=e[(B*i+B)*2],y=e[(s*i+s)*2],f=(B*i+s)*2;if(D<=0||y<=0)a[f]=NaN,a[f+1]=NaN;else{let c=Math.sqrt(D*y);a[f]=E/c,a[f+1]=u/c}}return d.fromData(a,[i,i],"complex128")}let n=new Float64Array(i*i),Q=e,C=new Float64Array(i);for(let a=0;a<i;a++){let B=Q[a*i+a];C[a]=B>0?1/Math.sqrt(B):NaN}for(let a=0;a<i;a++)for(let B=a;B<i;B++){let s=Q[a*i+B]*C[a]*C[B];n[a*i+B]=s,n[B*i+a]=s}return d.fromData(n,[i,i],"float64")}function $J(A,r=10,I,t){gA(A.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");let o=A.data,e=A.size,g,i;if(I)[g,i]=I;else{g=1/0,i=-1/0;for(let a=0;a<e;a++){let B=Number(o[a]);isNaN(B)||(B<g&&(g=B),B>i&&(i=B))}!isFinite(g)||!isFinite(i)?(g=0,i=1):g===i&&(g=g-.5,i=i+.5)}let n;typeof r=="number"?n=r:n=$D(o,e,g,i,r),n=Math.max(1,Math.round(n));let Q=new Float64Array(n+1),C=(i-g)/n;for(let a=0;a<=n;a++)Q[a]=g+a*C;return d.fromData(Q,[n+1],"float64")}function $D(A,r,I,t,o){if(r===0)return 1;let e=t-I;if(e===0)return 1;let g=[],i=0;for(let u=0;u<r;u++){let D=Number(A[u]);isNaN(D)||(g.push(D),i+=D)}let n=g.length;if(n===0)return 1;let Q=i/n,C=0;for(let u=0;u<n;u++){let D=g[u]-Q;C+=D*D}let a=Math.sqrt(C/n);g.sort((u,D)=>u-D);let B=g[Math.floor(n*.25)]??0,E=(g[Math.floor(n*.75)]??0)-B;switch(o){case"sqrt":return Math.ceil(Math.sqrt(n));case"sturges":return Math.ceil(Math.log2(n)+1);case"rice":return Math.ceil(2*Math.pow(n,1/3));case"scott":{if(a===0)return 1;let u=3.5*a/Math.pow(n,1/3);return Math.ceil(e/u)}case"fd":{if(E===0)return $D(A,r,I,t,"sturges");let u=2*E/Math.pow(n,1/3);return Math.ceil(e/u)}case"doane":{let u=pT(g,Q,a),D=Math.sqrt(6*(n-2)/((n+1)*(n+3)));return Math.ceil(1+Math.log2(n)+Math.log2(1+Math.abs(u)/D))}case"stone":return $D(A,r,I,t,"sturges");default:{let u=Math.ceil(Math.log2(n)+1),D=E===0?u:Math.ceil(e/(2*E/Math.pow(n,1/3)));return Math.max(u,D)}}}function pT(A,r,I){if(I===0)return 0;let t=A.length,o=0;for(let e=0;e<t;e++)o+=Math.pow((A[e]-r)/I,3);return o/t}function Ax(A,r,I=1,t=-1){gA(A.dtype,"trapezoid","trapezoid requires real numbers."),r!==void 0&&gA(r.dtype,"trapezoid","trapezoid requires real numbers.");let o=Array.from(A.shape),e=o.length;if(t<0&&(t=e+t),t<0||t>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);let g=o[t];if(g<2)throw new Error("trapezoid requires at least 2 samples along axis");let i;if(r!==void 0){if(r.size!==g)throw new Error(`x array size (${r.size}) must match y axis size (${g})`);let c=r.data;i=new Float64Array(g);for(let m=0;m<g;m++)i[m]=Number(c[m])}else{i=new Float64Array(g);for(let c=0;c<g;c++)i[c]=c*I}let n=[...o];if(n.splice(t,1),e===1){let c=A.data,m=A.dtype;if(m==="float16"&&uA){let w=new Float16Array(1);w[0]=0;for(let h=0;h<g-1;h++){let b=Number(c[h]),p=Number(c[h+1]),N=i[h+1]-i[h];w[0]+=.5*(b+p)*N}return Number(w[0])}if(m==="float32"){let w=new Float32Array(1);w[0]=0;for(let h=0;h<g-1;h++){let b=Number(c[h]),p=Number(c[h+1]),N=i[h+1]-i[h];w[0]+=.5*(b+p)*N}return w[0]}let l=0;for(let w=0;w<g-1;w++){let h=Number(c[w]),b=Number(c[w+1]),p=i[w+1]-i[w];l+=.5*(h+b)*p}return l}let Q=n.reduce((c,m)=>c*m,1),C=A.dtype,a=C==="float16"&&uA,B=C==="float32",s=a?new Float16Array(Q):B?new Float32Array(Q):new Float64Array(Q),E=new Array(e),u=1;for(let c=e-1;c>=0;c--)E[c]=u,u*=o[c];let D=new Array(n.length);u=1;for(let c=n.length-1;c>=0;c--)D[c]=u,u*=n[c];let y=A.data;for(let c=0;c<Q;c++){let m=[],l=c;for(let b=0;b<n.length;b++){let p=Math.floor(l/D[b]);l%=D[b],m.push(p)}let w=[],h=0;for(let b=0;b<e;b++)b===t?w.push(0):(w.push(m[h]),h++);if(a){let b=new Float16Array(1);b[0]=0;for(let p=0;p<g-1;p++){w[t]=p;let N=0;for(let S=0;S<e;S++)N+=w[S]*E[S];w[t]=p+1;let F=0;for(let S=0;S<e;S++)F+=w[S]*E[S];b[0]+=.5*(Number(y[N])+Number(y[F]))*(i[p+1]-i[p])}s[c]=b[0]}else if(B){let b=new Float32Array(1);b[0]=0;for(let p=0;p<g-1;p++){w[t]=p;let N=0;for(let S=0;S<e;S++)N+=w[S]*E[S];w[t]=p+1;let F=0;for(let S=0;S<e;S++)F+=w[S]*E[S];b[0]+=.5*(Number(y[N])+Number(y[F]))*(i[p+1]-i[p])}s[c]=b[0]}else{let b=0;for(let p=0;p<g-1;p++){w[t]=p;let N=0;for(let L=0;L<e;L++)N+=w[L]*E[L];w[t]=p+1;let F=0;for(let L=0;L<e;L++)F+=w[L]*E[L];let S=Number(y[N]),M=Number(y[F]),Y=i[p+1]-i[p];b+=.5*(S+M)*Y}s[c]=b}}if(n.length===0)return s[0];let f=a?"float16":B?"float32":"float64";return d.fromData(s,n,f)}function If(A,r,I){let t=r?G(r):void 0;return q(TJ(G(A),t,I))}function tf(A,r,I){return q(OJ(G(A),G(r),I))}function TQ(A,r,I,t,o){let e=r instanceof IA?G(r):r,g=o?G(o):void 0,i=VJ(G(A),e,I,t,g);return[q(i.hist),q(i.bin_edges)]}function OQ(A,r,I,t,o,e){let g;if(Array.isArray(I)&&I.length===2){let Q=I[0]instanceof IA?G(I[0]):I[0],C=I[1]instanceof IA?G(I[1]):I[1];g=[Q,C]}else g=I;let i=e?G(e):void 0,n=WJ(G(A),G(r),g,t,o,i);return[q(n.hist),q(n.x_edges),q(n.y_edges)]}function VQ(A,r,I,t,o){let e=o?G(o):void 0,g=ZJ(G(A),r,I,t,e);return[q(g.hist),g.edges.map(i=>q(i))]}function of(A,r,I){return q(Af(G(A),G(r),I))}function ef(A,r,I){return q(zJ(G(A),G(r),I))}function gf(A,r,I,t,o){return q(rf(G(A),r?G(r):void 0,I,t,o))}function nf(A,r,I){return q(jJ(G(A),r?G(r):void 0,I))}function WQ(A,r,I,t){return q($J(G(A),r,I,t?G(t):void 0))}function Qf(A,r,I,t){let o=Ax(G(A),r?G(r):void 0,I,t);return typeof o=="number"?o:q(o)}var FT="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",Hi=null;function mr(){if(Hi)return Hi;let A=atob(FT),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Hi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Hi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Hi}function rx(A,r,I){mr().exports.diff_f64(A,r,I)}function Cf(A,r,I){mr().exports.diff_f32(A,r,I)}function af(A,r,I){mr().exports.diff_i64(A,r,I)}function Bf(A,r,I){mr().exports.diff_i32(A,r,I)}function sf(A,r,I){mr().exports.diff_i16(A,r,I)}function Ef(A,r,I){mr().exports.diff_i8(A,r,I)}function Ix(A,r,I,t){mr().exports.diff_2d_f64(A,r,I,t)}function uf(A,r,I,t){mr().exports.diff_2d_f32(A,r,I,t)}function cf(A,r,I,t){mr().exports.diff_2d_i64(A,r,I,t)}function Df(A,r,I,t){mr().exports.diff_2d_i32(A,r,I,t)}function ff(A,r,I,t){mr().exports.diff_2d_i16(A,r,I,t)}function yf(A,r,I,t){mr().exports.diff_2d_i8(A,r,I,t)}var GT=64,ST={float64:rx,float32:Cf,int64:af,uint64:af,int32:Bf,uint32:Bf,int16:sf,uint16:sf,int8:Ef,uint8:Ef,float16:Cf},RT={float64:Ix,float32:uf,int64:cf,uint64:cf,int32:Df,uint32:Df,int16:ff,uint16:ff,int8:yf,uint8:yf,float16:uf},kT={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function tx(A,r){if(!A.isCContiguous)return null;let I=A.shape,t=I.length,o=r<0?t+r:r;if(o!==t-1)return null;let e=A.size;if(e<GT*K.thresholdMultiplier)return null;let g=A.dtype,i=kT[g];if(!i)return null;let n=I[o],Q=n-1;if(Q<=0)return null;let C=i.BYTES_PER_ELEMENT,a=e/n,B=a*Q,s=e*C,E=B*C;x(s+E),U();let u=g==="float16",D=A.offset,y=A.data.subarray(D,D+e);u&&(y=AA(y,g));let f=R(y),c=H(E),m=Array.from(I);if(m[o]=Q,t===1){let w=ST[g];if(!w)return null;w(f,c,Q)}else{let w=RT[g];if(!w)return null;w(f,c,a,n)}let l=_(c,B,i);return d.fromData(u?eA(l,g):l,m,g)}var qT="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",Yi=null;function Jr(){if(Yi)return Yi;let A=atob(qT),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Yi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Yi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Yi}function ox(A,r,I,t){Jr().exports.gradient_f64(A,r,I,t)}function mf(A,r,I,t){Jr().exports.gradient_f32(A,r,I,t)}function ex(A,r,I,t){Jr().exports.gradient_i64(A,r,I,t)}function gx(A,r,I,t){Jr().exports.gradient_u64(A,r,I,t)}function ix(A,r,I,t){Jr().exports.gradient_i32(A,r,I,t)}function nx(A,r,I,t){Jr().exports.gradient_u32(A,r,I,t)}function Qx(A,r,I,t){Jr().exports.gradient_i16(A,r,I,t)}function Cx(A,r,I,t){Jr().exports.gradient_u16(A,r,I,t)}function ax(A,r,I,t){Jr().exports.gradient_i8(A,r,I,t)}function Bx(A,r,I,t){Jr().exports.gradient_u8(A,r,I,t)}var MT=64,JT={float64:ox,float32:mf,int64:ex,uint64:gx,int32:ix,uint32:nx,int16:Qx,uint16:Cx,int8:ax,uint8:Bx,float16:mf},xT={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array},UT={float64:Float64Array,float32:Float32Array,int64:Float64Array,uint64:Float64Array,int32:Float64Array,uint32:Float64Array,int16:Float64Array,uint16:Float64Array,int8:Float64Array,uint8:Float64Array,float16:Float32Array},LT={float64:"float64",float32:"float32",int64:"float64",uint64:"float64",int32:"float64",uint32:"float64",int16:"float64",uint16:"float64",int8:"float64",uint8:"float64",float16:"float32"};function sx(A,r){if(!A.isCContiguous||A.shape.length!==1)return null;let I=A.size;if(I<MT*K.thresholdMultiplier||I<2)return null;let t=A.dtype,o=JT[t],e=xT[t],g=UT[t],i=LT[t];if(!o||!e||!g||!i)return null;let n=e.BYTES_PER_ELEMENT,Q=g.BYTES_PER_ELEMENT,C=I*n,a=I*Q;x(C+a),U();let B=A.offset,s=A.data.subarray(B,B+I);t==="float16"&&(s=AA(s,t));let E=R(s),u=H(a);o(E,u,I,r);let D=_(u,I,g);return d.fromData(D,[I],i)}function Ex(A,r=1,I=-1){if(r<0)throw new Error(`order must be non-negative but got ${r}`);if(r===0)return A.copy();let t=Array.from(A.shape),o=t.length,e=I<0?o+I:I;if(e<0||e>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);if(t[e]<r+1)throw new Error(`diff requires at least ${r+1} elements along axis ${I}, but got ${t[e]}`);if(r===1&&!k(A.dtype)){let i=tx(A,e);if(i)return i}let g=A;for(let i=0;i<r;i++)g=HT(g,e);return g}function HT(A,r){let I=Array.from(A.shape),t=I.length,o=I[r],e=[...I];e[r]=o-1;let g=A.dtype,i=k(g),n=P(g)?"float64":g,Q=d.zeros(e,n),C=Q.data,a=A.strides,B=Q.size,s=A.offset;for(let E=0;E<B;E++){let u=E,D=new Array(t);for(let l=t-1;l>=0;l--)D[l]=u%e[l],u=Math.floor(u/e[l]);let y=[...D],f=[...D];f[r]=y[r]+1;let c=0,m=0;for(let l=0;l<t;l++)c+=y[l]*a[l],m+=f[l]*a[l];if(i){let l=A.data,w=l[(s+c)*2],h=l[(s+c)*2+1],b=l[(s+m)*2],p=l[(s+m)*2+1];C[E*2]=b-w,C[E*2+1]=p-h}else{let l=(P(g),Number(A.data[s+c])),w=(P(g),Number(A.data[s+m]));C[E]=w-l}}return Q}function ux(A,r=null,I=null){let t=A.size,o=A.dtype,e=k(o),g=P(o)?"float64":o,i=Math.max(0,t-1),n=I?I.length:0,Q=r?r.length:0,C=n+i+Q,a=d.zeros([C],g),B=a.data,s=0;if(I)if(e)for(let E of I)B[s*2]=E,B[s*2+1]=0,s++;else for(let E of I)B[s++]=E;if(e)for(let E=0;E<i;E++){let u=A.iget(E),D=A.iget(E+1);B[s*2]=D.re-u.re,B[s*2+1]=D.im-u.im,s++}else for(let E=0;E<i;E++){let u=(P(o),Number(A.iget(E))),D=(P(o),Number(A.iget(E+1)));B[s++]=D-u}if(r)if(e)for(let E of r)B[s*2]=E,B[s*2+1]=0,s++;else for(let E of r)B[s++]=E;return a}function cx(A,r=1,I=null){let o=Array.from(A.shape).length,e;if(I===null)e=Array.from({length:o},(n,Q)=>Q);else if(typeof I=="number"){let n=I<0?o+I:I;if(n<0||n>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);e=[n]}else e=I.map(n=>{let Q=n<0?o+n:n;if(Q<0||Q>=o)throw new Error(`axis ${n} is out of bounds for array of dimension ${o}`);return Q});let g;if(typeof r=="number")g=e.map(()=>r);else{if(r.length!==e.length)throw new Error("Number of spacings must match number of axes");g=r}if(e.length===1&&A.shape.length===1&&!k(A.dtype)&&typeof r=="number"){let n=sx(A,g[0]);if(n)return n}let i=[];for(let n=0;n<e.length;n++)i.push(YT(A,e[n],g[n]));return i.length===1?i[0]:i}function YT(A,r,I){let t=Array.from(A.shape),o=t.length,e=t[r];if(e<2)throw new Error(`Shape of array along axis ${r} must be at least 2, but got ${e}`);let g=A.dtype,i=k(g),n=P(g)?"float64":g==="float32"?"float32":i?g:"float64",Q=d.zeros(t,n),C=Q.data,a=A.strides,B=I,s=2*B,E=A.size,u=A.offset;for(let D=0;D<E;D++){let y=D,f=new Array(o);for(let l=o-1;l>=0;l--)f[l]=y%t[l],y=Math.floor(y/t[l]);let c=u;for(let l=0;l<o;l++)c+=f[l]*a[l];let m=f[r];if(i){let l=A.data,w=C,h,b;if(m===0){let p=[...f];p[r]=1;let N=0;for(let L=0;L<o;L++)N+=p[L]*a[L];let F=l[c*2],S=l[c*2+1],M=l[(u+N)*2],Y=l[(u+N)*2+1];h=(M-F)/B,b=(Y-S)/B}else if(m===e-1){let p=[...f];p[r]=e-2;let N=0;for(let L=0;L<o;L++)N+=p[L]*a[L];let F=l[c*2],S=l[c*2+1],M=l[(u+N)*2],Y=l[(u+N)*2+1];h=(F-M)/B,b=(S-Y)/B}else{let p=[...f],N=[...f];p[r]=m+1,N[r]=m-1;let F=0,S=0;for(let Z=0;Z<o;Z++)F+=p[Z]*a[Z],S+=N[Z]*a[Z];let M=l[(u+F)*2],Y=l[(u+F)*2+1],L=l[(u+S)*2],v=l[(u+S)*2+1];h=(M-L)/s,b=(Y-v)/s}w[D*2]=h,w[D*2+1]=b}else{let l;if(m===0){let w=[...f];w[r]=1;let h=0;for(let N=0;N<o;N++)h+=w[N]*a[N];let b=(P(g),Number(A.data[c]));l=((P(g),Number(A.data[u+h]))-b)/B}else if(m===e-1){let w=[...f];w[r]=e-2;let h=0;for(let N=0;N<o;N++)h+=w[N]*a[N];let b=(P(g),Number(A.data[c])),p=(P(g),Number(A.data[u+h]));l=(b-p)/B}else{let w=[...f],h=[...f];w[r]=m+1,h[r]=m-1;let b=0,p=0;for(let S=0;S<o;S++)b+=w[S]*a[S],p+=h[S]*a[S];let N=(P(g),Number(A.data[u+b])),F=(P(g),Number(A.data[u+p]));l=(N-F)/s}C[D]=l}}return Q}function Pi(A,r,I){return q(Ex(G(A),r,I))}function lf(A,r,I){return q(ux(G(A),r??null,I??null))}function ZQ(A,r,I){let t=cx(G(A),r,I);return Array.isArray(t)?pr(t):q(t)}function Dx(A){let r=A.dtype,I=Array.from(A.shape),t=A.size;if(k(r)){let o=St(r),e=d.zeros(I,o),g=e.data,i=A.data;for(let n=0;n<t;n++)g[n]=i[n*2];return e}return A.copy()}function fx(A){let r=A.dtype,I=Array.from(A.shape),t=A.size;if(k(r)){let e=St(r),g=d.zeros(I,e),i=g.data,n=A.data;for(let Q=0;Q<t;Q++)i[Q]=n[Q*2+1];return g}let o=r==="float32"?"float32":"float64";return d.zeros(I,o)}function yx(A){let r=A.dtype,I=Array.from(A.shape),t=A.size;if(k(r)){let o=iA(r),e=t*2,g=new o(e),i=A.data;for(let n=0;n<t;n++)g[n*2]=i[n*2],g[n*2+1]=-i[n*2+1];return d.fromData(g,I,r)}return A.copy()}function mx(A,r=!1){let I=A.dtype,t=Array.from(A.shape),o=A.size,e=d.zeros(t,"float64"),g=e.data;if(k(I)){let i=A.data;for(let n=0;n<o;n++){let Q=i[n*2],C=i[n*2+1],a=Math.atan2(C,Q);r&&(a=a*180/Math.PI),g[n]=a}}else for(let i=0;i<o;i++){let n=A.iget(i),C=(n instanceof X?n.re:Number(n))>=0?0:Math.PI;r&&(C=C*180/Math.PI),g[i]=C}return e}function hf(A){return q(Dx(G(A)))}function wf(A){return q(fx(G(A)))}function _i(A){return q(yx(G(A)))}function df(A,r){return q(mx(G(A),r))}var KT="AGFzbQEAAAABDgJgA39/fwBgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAQYJAX8BQYCAwAALBxsCCmluZGljZXNfMmQAAAppbmRpY2VzXzNkAAEKsQQCwwMDAX8CewN/AkAgAiABbCIDRQ0AQQAhAQJAAkAgA0EESQ0AIAL9ESEE/QwAAAAAAQAAAAIAAAADAAAAIQUgA0F8cSIBIQYgACEHA0AgByAF/RsAIAT9GwBu/REgBf0bASAE/RsBbv0cASAF/RsCIAT9GwJu/RwCIAX9GwMgBP0bA279HAP9CwIAIAdBEGohByAF/QwEAAAABAAAAAQAAAAEAAAA/a4BIQUgBkF8aiIGDQALIAMgAUYNAQsgACABQQJ0aiEHA0AgByABIAJuNgIAIAdBBGohByADIAFBAWoiAUcNAAsLIANBAnQhCEEAIQECQCADQQRJDQAgACAIaiEHIAL9ESEE/QwAAAAAAQAAAAIAAAADAAAAIQUgA0F8cSIBIQYDQCAHIAX9GwAgBP0bAHD9ESAF/RsBIAT9GwFw/RwBIAX9GwIgBP0bAnD9HAIgBf0bAyAE/RsDcP0cA/0LAgAgB0EQaiEHIAX9DAQAAAAEAAAABAAAAAQAAAD9rgEhBSAGQXxqIgYNAAsgAyABRg0BCyAAIAggAUECdGpqIQcDQCAHIAEgAnA2AgAgB0EEaiEHIAMgAUEBaiIBRw0ACwsLagEFfwJAIAMgAmwiBCABbCIFRQ0AIAVBA3QhBiAFQQJ0IQdBACEBA0AgACABIARuNgIAIAAgB2ogASADbiIIIAJwNgIAIAAgBmogASAIIANsazYCACAAQQRqIQAgBSABQQFqIgFHDQALCws=",Ki=null;function lx(){if(Ki)return Ki;let A=atob(KT),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Ki=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Ki.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ki}function hx(A,r,I){lx().exports.indices_2d(A,r,I)}function wx(A,r,I,t){lx().exports.indices_3d(A,r,I,t)}var vT=64;function dx(A,r){if(r!=="int32")return null;let I=A.length;if(I<2||I>3)return null;let t=A.reduce((n,Q)=>n*Q,1);if(t<vT*K.thresholdMultiplier)return null;let o=I*t,e=o*4;x(e),U();let g=H(e);I===2?hx(g,A[0],A[1]):wx(g,A[0],A[1],A[2]);let i=_(g,o,Int32Array);return d.fromData(i,[I,...A],"int32")}function bf(A,r){let I=A.shape,t=I.length,o=r.length;if(o<t)throw new Error("input operand has more dimensions than allowed by the axis remapping");let e=kr([Array.from(I),r]);if(e===null)throw new Error(`operands could not be broadcast together with shape (${I.join(",")}) (${r.join(",")})`);for(let g=0;g<o;g++)if(e[g]!==r[g])throw new Error(`operands could not be broadcast together with shape (${I.join(",")}) (${r.join(",")})`);return Dr(A,r)}function bx(A){if(A.length===0)return[];if(A.length===1)return[A[0]];let r=A.map(t=>Array.from(t.shape)),I=kr(r);if(I===null)throw new Error(`operands could not be broadcast together with shapes ${r.map(t=>`(${t.join(",")})`).join(" ")}`);return A.map(t=>Dr(t,I))}function px(A,r,I){let t=A.shape,o=t.length,e=A.dtype;if(I===void 0){let E=A.size;for(let f of r){let c=f<0?E+f:f;if(c<0||c>=E)throw new Error(`index ${f} is out of bounds for axis 0 with size ${E}`)}let u=r.length,D=iA(e);if(!D)throw new Error(`Cannot take from array with dtype ${e}`);let y=new D(u);for(let f=0;f<u;f++){let c=r[f];c<0&&(c=E+c);let m=A.iget(c);P(e),y[f]=m}return d.fromData(y,[u],e)}let g=I<0?o+I:I;if(g<0||g>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let i=t[g];for(let E of r){let u=E<0?i+E:E;if(u<0||u>=i)throw new Error(`index ${E} is out of bounds for axis ${g} with size ${i}`)}let n=Array.from(t);n[g]=r.length;let Q=n.reduce((E,u)=>E*u,1),C=iA(e);if(!C)throw new Error(`Cannot take from array with dtype ${e}`);let a=new C(Q),B=XA(n),s=new Array(o).fill(0);for(let E=0;E<Q;E++){let u=[...s],D=s[g],y=r[D];y<0&&(y=i+y),u[g]=y;let f=A.get(...u),c=0;for(let m=0;m<o;m++)c+=s[m]*B[m];P(e),a[c]=f;for(let m=o-1;m>=0&&(s[m]++,!(s[m]<n[m]));m--)s[m]=0}return d.fromData(a,n,e)}function Nx(A,r,I){let t=A.size,o=A.dtype,e;if(typeof I=="number"||typeof I=="bigint")e=new Array(r.length).fill(I);else{e=[];for(let g=0;g<I.size;g++){let i=I.iget(g);e.push(i instanceof X?i.re:i)}if(e.length===1)e=new Array(r.length).fill(e[0]);else if(e.length!==r.length){let g=[...e];e=[];for(let i=0;i<r.length;i++)e.push(g[i%g.length])}}for(let g=0;g<r.length;g++){let i=r[g];if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`index ${r[g]} is out of bounds for axis 0 with size ${t}`);let n=e[g];P(o)?typeof n!="bigint"&&(n=BigInt(Math.round(Number(n)))):typeof n=="bigint"&&(n=Number(n)),A.iset(i,n)}}function Fx(A,r){if(r.length===0)throw new Error("choices cannot be empty");let I=A.shape,t=r.length,o=r[0].dtype,e=r.map(B=>Array.from(B.shape));e.unshift(Array.from(I));let g=kr(e);if(g===null)throw new Error("operands could not be broadcast together");let i=Dr(A,g),n=r.map(B=>Dr(B,g)),Q=g.reduce((B,s)=>B*s,1),C=iA(o);if(!C)throw new Error(`Cannot choose with dtype ${o}`);let a=new C(Q);for(let B=0;B<Q;B++){let s=Number(i.iget(B));if(s<0||s>=t)throw new Error(`index ${s} is out of bounds for axis 0 with size ${t}`);let E=n[s].iget(B);P(o),a[B]=E}return d.fromData(a,g,o)}function Gx(A,r,I=!1){if(A.ndim!==r.ndim)return!1;for(let o=0;o<A.ndim;o++)if(A.shape[o]!==r.shape[o])return!1;let t=A.size;for(let o=0;o<t;o++){let e=A.iget(o),g=r.iget(o);if(I){let i=typeof e=="number"&&Number.isNaN(e),n=typeof g=="number"&&Number.isNaN(g);if(i&&n)continue}if(e!==g)return!1}return!0}function Sx(A,r,I){let t=EM(A,r,I);if(t)return t;let o=A.shape,e=o.length,g=A.dtype,i=I<0?e+I:I;if(i<0||i>=e)throw new Error(`axis ${I} is out of bounds for array of dimension ${e}`);let n=r.shape;if(n.length!==e)throw new Error(`indices and arr must have the same number of dimensions, got ${n.length} vs ${e}`);for(let p=0;p<e;p++)if(p!==i&&n[p]!==o[p]&&n[p]!==1&&o[p]!==1)throw new Error(`index ${n[p]} is out of bounds for size ${o[p]} in dimension ${p}`);let Q=Array.from(n),C=Q.reduce((p,N)=>p*N,1),a=iA(g);if(!a)throw new Error(`Cannot take_along_axis with dtype ${g}`);let B=new a(C),s=XA(o),E=XA(n),u=o[i],D=XA(Q),y=new Array(e),f=P(g),c=A.isCContiguous,m=r.isCContiguous,l=A.data,w=A.offset,h=r.data,b=r.offset;for(let p=0;p<C;p++){let N=p;for(let Y=0;Y<e;Y++)y[Y]=N/D[Y]|0,N-=y[Y]*D[Y];let F=0;for(let Y=0;Y<e;Y++){let L=n[Y]===1?0:y[Y];F+=L*E[Y]}let S=Number(m?h[b+F]:r.iget(F));S<0&&(S=u+S);let M=0;for(let Y=0;Y<e;Y++){let L=Y===i?S:o[Y]===1?0:y[Y];M+=L*s[Y]}if(c)B[p]=l[w+M];else{let Y=A.iget(M);B[p]=Y}}return d.fromData(B,Q,g)}function Rx(A,r,I,t){let o=A.shape,e=o.length,g=A.dtype,i=t<0?e+t:t;if(i<0||i>=e)throw new Error(`axis ${t} is out of bounds for array of dimension ${e}`);let n=r.shape,Q=I.shape;if(n.length!==e||Q.length!==e)throw new Error("indices, arr, and values must have same ndim");let C=o[i],a=XA(o),B=XA(n),s=XA(Q),E=n.reduce((u,D)=>u*D,1);for(let u=0;u<E;u++){let D=new Array(e),y=u;for(let b=e-1;b>=0;b--)D[b]=y%n[b],y=Math.floor(y/n[b]);let f=0;for(let b=0;b<e;b++)f+=D[b]*B[b];let c=Number(r.iget(f));if(c<0&&(c=C+c),c<0||c>=C)throw new Error(`index ${c} is out of bounds for axis ${i} with size ${C}`);let m=0;for(let b=0;b<e;b++){let p=Q[b]===1?0:D[b];m+=p*s[b]}let l=I.iget(m),w=[...D];w[i]=c;let h=0;for(let b=0;b<e;b++)h+=w[b]*a[b];P(g)?typeof l!="bigint"&&(l=BigInt(Math.round(Number(l)))):typeof l=="bigint"&&(l=Number(l)),A.iset(h,l)}}function kx(A,r,I){let t=A.size,o=A.dtype,e;if(typeof I=="number"||typeof I=="bigint")e=[I];else{e=[];for(let i=0;i<I.size;i++){let n=I.iget(i);e.push(n instanceof X?n.re:n)}}let g=0;for(let i=0;i<t;i++)if(r.iget(i)){let Q=e[g%e.length];P(o)?typeof Q!="bigint"&&(Q=BigInt(Math.round(Number(Q)))):typeof Q=="bigint"&&(Q=Number(Q)),A.iset(i,Q),g++}}function qx(A,r,I){let t=r.shape,o=t.length,e=r.dtype,g=P(e);if(I===void 0){let h=Math.min(A.size,r.size),b=A.isCContiguous,p=A.data,N=A.offset,F=0;if(b)for(let v=0;v<h;v++)p[N+v]&&F++;else for(let v=0;v<h;v++)A.iget(v)&&F++;let S=iA(e);if(!S)throw new Error(`Cannot compress with dtype ${e}`);let M=new S(F),Y=0,L=r.isCContiguous;if(b&&L){let v=r.data,Z=r.offset;if(g){let O=M,z=v;for(let j=0;j<h;j++)p[N+j]&&(O[Y++]=z[Z+j])}else{let O=M,z=v;for(let j=0;j<h;j++)p[N+j]&&(O[Y++]=z[Z+j])}}else for(let v=0;v<h;v++)(b?p[N+v]:A.iget(v))&&(M[Y]=r.iget(v),Y++);return d.fromData(M,[F],e)}let i=I<0?o+I:I;if(i<0||i>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let n=t[i],Q=Math.min(A.size,n),C=[],a=A.isCContiguous,B=A.data,s=A.offset;for(let h=0;h<Q;h++)(a?B[s+h]:A.iget(h))&&C.push(h);let E=C.length,u=[...t];u[i]=E;let D=u.reduce((h,b)=>h*b,1),y=iA(e);if(!y)throw new Error(`Cannot compress with dtype ${e}`);let f=new y(D),c=t.slice(i+1).reduce((h,b)=>h*b,1),m=t.slice(0,i).reduce((h,b)=>h*b,1),l=0;if(r.isCContiguous){let h=r.data,b=r.offset;for(let p=0;p<m;p++){let N=b+p*n*c;for(let F=0;F<E;F++){let S=N+C[F]*c;f.set(h.subarray(S,S+c),l),l+=c}}}else for(let h=0;h<m;h++)for(let b=0;b<E;b++){let p=C[b];for(let N=0;N<c;N++){let F=h*n*c+p*c+N;f[l++]=r.iget(F)}}return d.fromData(f,u,e)}function Mx(A,r,I=0){if(A.length!==r.length)throw new Error("condlist and choicelist must have same length");if(A.length===0)throw new Error("condlist and choicelist cannot be empty");let t=[...A.map(B=>Array.from(B.shape)),...r.map(B=>Array.from(B.shape))],o=kr(t);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let e=r[0].dtype,g=o.reduce((B,s)=>B*s,1),i=iA(e);if(!i)throw new Error(`Cannot select with dtype ${e}`);let n=P(e)?typeof I=="bigint"?I:BigInt(I):typeof I=="bigint"?Number(I):I,Q=new i(g);for(let B=0;B<g;B++)P(e),Q[B]=n;let C=A.map(B=>Dr(B,o)),a=r.map(B=>Dr(B,o));for(let B=0;B<g;B++)for(let s=0;s<A.length;s++)if(C[s].iget(B)){let E=a[s].iget(B);P(e),Q[B]=E;break}return d.fromData(Q,o,e)}function Jx(A,r,I){let t=A.size,o=A.dtype,e=[];for(let i=0;i<I.size;i++){let n=I.iget(i);e.push(n instanceof X?n.re:n)}if(e.length===0)return;let g=0;for(let i=0;i<t;i++)if(r.iget(i)){let Q=e[g%e.length];P(o)?typeof Q!="bigint"&&(Q=BigInt(Math.round(Number(Q)))):typeof Q=="bigint"&&(Q=Number(Q)),A.iset(i,Q),g++}}function pf(A,r=2){if(r<1)throw new Error("ndim must be at least 1");let I=new Int32Array(A);for(let o=0;o<A;o++)I[o]=o;let t=[];for(let o=0;o<r;o++)t.push(d.fromData(new Int32Array(I),[A],"int32"));return t}function xx(A){let r=A.shape,I=r.length;if(I<2)throw new Error("array must be at least 2-D");let t=r[0];for(let o=1;o<I;o++)if(r[o]!==t)throw new Error("All dimensions of input must be equal");return pf(t,I)}function Nf(A,r=0,I){let t=I??A,o=[],e=[];for(let g=0;g<A;g++)for(let i=0;i<=Math.min(g+r,t-1);i++)i>=0&&(o.push(g),e.push(i));return[d.fromData(new Int32Array(o),[o.length],"int32"),d.fromData(new Int32Array(e),[e.length],"int32")]}function Ux(A,r=0){let I=A.shape;if(I.length!==2)throw new Error("array must be 2-D");return Nf(I[0],r,I[1])}function Ff(A,r=0,I){let t=I??A,o=[],e=[];for(let g=0;g<A;g++)for(let i=Math.max(g+r,0);i<t;i++)o.push(g),e.push(i);return[d.fromData(new Int32Array(o),[o.length],"int32"),d.fromData(new Int32Array(e),[e.length],"int32")]}function Lx(A,r=0){let I=A.shape;if(I.length!==2)throw new Error("array must be 2-D");return Ff(I[0],r,I[1])}function Hx(A,r,I=0){let t=r(A,I),o=t.shape;if(o.length!==2||o[0]!==A||o[1]!==A)throw new Error("mask_func must return n x n array");let e=[],g=[];for(let i=0;i<A;i++)for(let n=0;n<A;n++)t.get(i,n)&&(e.push(i),g.push(n));return[d.fromData(new Int32Array(e),[e.length],"int32"),d.fromData(new Int32Array(g),[g.length],"int32")]}function Yx(A,r="int32"){let I=dx(A,r);if(I)return I;let t=A.length,o=[t,...A],e=o.reduce((C,a)=>C*a,1),g=iA(r);if(!g)throw new Error(`Cannot create indices with dtype ${r}`);let i=new g(e),n=A.reduce((C,a)=>C*a,1),Q=new Array(t);Q[t-1]=1;for(let C=t-2;C>=0;C--)Q[C]=Q[C+1]*A[C+1];for(let C=0;C<t;C++){let a=C*n,B=A[C],s=Q[C];if(r==="int64"){let E=i;for(let u=0;u<n;u++)E[a+u]=BigInt(Math.floor(u/s)%B)}else{let E=i;for(let u=0;u<n;u++)E[a+u]=Math.floor(u/s)%B}}return d.fromData(i,o,r)}function Px(...A){let r=A.length,I=[];for(let t=0;t<r;t++){let o=A[t],e=o.size,g=o.dtype,i=new Array(r).fill(1);i[t]=e;let n=iA(g);if(!n)throw new Error(`Cannot create ix_ with dtype ${g}`);let Q=new n(e);for(let C=0;C<e;C++){let a=o.iget(C);P(g),Q[C]=a}I.push(d.fromData(Q,i,g))}return I}function _x(A,r,I="raise"){if(A.length!==r.length)throw new Error("multi_index length must equal dims length");if(A.length===0)throw new Error("multi_index cannot be empty");let t=A[0].size,o=r.length,e=new Int32Array(t),g=new Array(o),i=1;for(let n=o-1;n>=0;n--)g[n]=i,i*=r[n];for(let n=0;n<t;n++){let Q=0;for(let C=0;C<o;C++){let a=Number(A[C].iget(n)),B=r[C];if(I==="wrap")a=(a%B+B)%B;else if(I==="clip")a=Math.max(0,Math.min(a,B-1));else if(a<0||a>=B)throw new Error(`index ${a} is out of bounds for axis ${C} with size ${B}`);Q+=a*g[C]}e[n]=Q}return d.fromData(e,[t],"int32")}function Kx(A,r,I="C"){let t=r.length,o,e;if(typeof A=="number")o=[A],e=[];else{o=[];for(let C=0;C<A.size;C++)o.push(Number(A.iget(C)));e=Array.from(A.shape)}let g=o.length,i=r.reduce((C,a)=>C*a,1),n=new Array(t);if(I==="C"){let C=1;for(let a=t-1;a>=0;a--)n[a]=C,C*=r[a]}else{let C=1;for(let a=0;a<t;a++)n[a]=C,C*=r[a]}let Q=[];for(let C=0;C<t;C++){let a=new Int32Array(g);Q.push(d.fromData(a,e.length?e:[1],"int32"))}for(let C=0;C<g;C++){let a=o[C];if(a<0||a>=i)throw new Error(`index ${a} is out of bounds for array with size ${i}`);if(I==="C")for(let B=0;B<t;B++){let s=Math.floor(a/n[B]);a=a%n[B],Q[B].data[C]=s%r[B]}else for(let B=t-1;B>=0;B--){let s=Math.floor(a/n[B]);a=a%n[B],Q[B].data[C]=s%r[B]}}return typeof A=="number"?Q.map(C=>{let a=C.iget(0);return d.fromData(new Int32Array([Number(a)]),[],"int32")}):Q}function vx(A,r,I=!1){let t=A.shape,o=t.length;if(o<2)throw new Error("array must be at least 2-d");let e;if(o===2)e=t[1]+1;else{e=1;for(let Q=1;Q<o;Q++){let C=1;for(let a=Q;a<o;a++)C*=t[a];e+=C}}let g=A.size,i=Math.min(...t);I&&o===2&&(i=Math.max(t[0],t[1]));let n=A.isCContiguous;if(typeof r=="number")if(n){let Q=A.data,C=A.offset;if(P(A.dtype)){let a=Q,B=BigInt(Math.round(r));for(let s=0;s<i;s++){let E=s*e;if(E>=g)break;a[C+E]=B}}else for(let a=0;a<i;a++){let B=a*e;if(B>=g)break;Q[C+B]=r}}else for(let Q=0;Q<i&&Q*e<g;Q++)A.iset(Q*e,r);else{let Q=r.size;if(n&&r.isCContiguous){let C=A.data,a=A.offset,B=r.data,s=r.offset;if(P(A.dtype)){let E=C,u=B;for(let D=0;D<i;D++){let y=D*e;if(y>=g)break;E[a+y]=u[s+D%Q]}}else{let E=C,u=B;for(let D=0;D<i;D++){let y=D*e;if(y>=g)break;E[a+y]=u[s+D%Q]}}}else for(let C=0;C<i&&C*e<g;C++)A.iset(C*e,r.iget(C%Q))}}function Xx(A,r,I){let t=Array.from(A.shape),o=t.length;if(r<0&&(r+=o),r<0||r>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let e=[];for(let B=0;B<o;B++)B!==r&&e.push(t[B]);if(e.length===0){let B=I(A);if(typeof B=="number"){let s=d.zeros([1],A.dtype);return s.data[0]=B,s}return B}if(o===2){let[B,s]=t;if(r===0){let E=[];for(let D=0;D<s;D++){let y=new Float64Array(B);for(let c=0;c<B;c++)y[c]=Number(A.get(c,D));let f=d.fromData(y,[B],"float64");E.push(I(f))}let u=E[0];if(u===void 0)return d.zeros([0],"float64");if(typeof u=="number"){let D=d.zeros([s],"float64");for(let y=0;y<s;y++)D.data[y]=E[y];return D}else{let D=[u.size,s],y=d.zeros(D,"float64");for(let f=0;f<s;f++){let c=E[f];for(let m=0;m<c.size;m++)y.data[m*s+f]=Number(c.iget(m))}return y}}else{let E=[];for(let D=0;D<B;D++){let y=new Float64Array(s);for(let c=0;c<s;c++)y[c]=Number(A.get(D,c));let f=d.fromData(y,[s],"float64");E.push(I(f))}let u=E[0];if(u===void 0)return d.zeros([0],"float64");if(typeof u=="number"){let D=d.zeros([B],"float64");for(let y=0;y<B;y++)D.data[y]=E[y];return D}else{let D=[B,u.size],y=d.zeros(D,"float64");for(let f=0;f<B;f++){let c=E[f];for(let m=0;m<c.size;m++)y.data[f*c.size+m]=Number(c.iget(m))}return y}}}if(o===1){let B=I(A);if(typeof B=="number"){let s=d.zeros([1],"float64");return s.data[0]=B,s}return B}let g=t[r],i=e.reduce((B,s)=>B*s,1);function n(B){let s=new Array(e.length),E=B;for(let u=e.length-1;u>=0;u--)s[u]=E%e[u],E=Math.floor(E/e[u]);return s}function Q(B,s){let E=[],u=0;for(let D=0;D<o;D++)E.push(D===r?s:B[u++]);return Number(A.get(...E))}let C=[];for(let B=0;B<i;B++){let s=n(B),E=new Float64Array(g);for(let D=0;D<g;D++)E[D]=Q(s,D);let u=d.fromData(E,[g],"float64");C.push(I(u))}let a=C[0];if(a===void 0)return d.zeros([0],"float64");if(typeof a=="number"){let B=d.zeros(e,"float64");for(let s=0;s<i;s++)B.data[s]=C[s];return B}else{let B=[...e,...Array.from(a.shape)],s=d.zeros(B,"float64"),E=a.size;for(let u=0;u<i;u++){let D=C[u];for(let y=0;y<E;y++)s.data[u*E+y]=Number(D.iget(y))}return s}}function Tx(A,r,I){let t=A,o=A.shape.length;for(let e of I){let g=e<0?e+o:e;if(g<0||g>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(t=r(t,g),t.shape.length<o){let i=Array.from(t.shape);i.splice(g,0,1);let n=XA(i);t=new d(t.data,i,n,0,t.dtype)}}return t}function Gf(A,r){return A.data.buffer===r.data.buffer}function Ox(A,r){return Gf(A,r)}var Kr={divide:"warn",over:"warn",under:"ignore",invalid:"warn"};function Sf(){return{...Kr}}function Vx(A,r,I,t,o){let e=Sf();return A!==void 0&&(Kr.divide=A,Kr.over=A,Kr.under=A,Kr.invalid=A),r!==void 0&&(Kr.divide=r),I!==void 0&&(Kr.over=I),t!==void 0&&(Kr.under=t),o!==void 0&&(Kr.invalid=o),e}function vi(A,r){return or(bf(G(A),r),A)}function zQ(...A){let r=A.map(G);return bx(r).map(I=>q(I))}function jQ(...A){if(A.length===0)return[];if(A.length===1)return[...A[0]];let r=[...A[0]];for(let I=1;I<A.length;I++){let t=A[I],o=Math.max(r.length,t.length),e=[];for(let g=0;g<o;g++){let i=g<r.length?r[r.length-1-g]:1,n=g<t.length?t[t.length-1-g]:1;if(i===n)e.unshift(i);else if(i===1)e.unshift(n);else if(n===1)e.unshift(i);else throw new Error(`Cannot broadcast shapes: dimensions ${i} and ${n} are incompatible`)}r=e}return r}function ft(A,r,I){return q(px(G(A),r,I))}function yt(A,r,I){let t=Array.isArray(I)?G(BA(I)):G(I);Nx(G(A),r,t)}function Rf(A,r,I){return q(Sx(G(A),G(r),I))}function $Q(A,r,I,t){Rx(G(A),G(r),G(I),t)}function Xi(A,r){let I=r.map(G);return q(Fx(G(A),I))}function FI(A,r,I){return q(qx(G(A),G(r),I))}function kf(A,r,I=0){let t;return r instanceof IA?t=Array.from(r.data):Array.isArray(r[0])?t=r.flat():t=r,ft(A,t,I)}function qf(A,r,I){return FI(r,A,I)}function Mf(A,r,I=0){let t=A.map(G),o=r.map(G);return q(Mx(t,o,I))}function AC(A,r,I){Jx(G(A),G(r),G(I))}function rC(A,r,I){kx(G(A),G(r),G(I))}function IC(A,r){let I=G(A),t=A.shape,o=A.size,e=A.dtype;if(typeof r=="number"||typeof r=="bigint"){A.fill(r);return}let g=G(r),i=r.shape,n=kr([i,t]);if(!n)throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${t.join(",")})`);if(n.length!==t.length||!n.every((C,a)=>C===t[a]))throw new Error(`could not broadcast input array from shape (${i.join(",")}) into shape (${t.join(",")})`);let Q=bf(g,t);if(P(e))for(let C=0;C<o;C++){let a=Q.iget(C),B=typeof a=="bigint"?a:BigInt(Math.round(Number(a)));I.iset(C,B)}else if(e==="bool")for(let C=0;C<o;C++){let a=Q.iget(C);I.iset(C,a?1:0)}else for(let C=0;C<o;C++){let a=Q.iget(C);I.iset(C,Number(a))}}function Jf(A,r="int32"){return q(Yx(A,r))}function tC(...A){let r=A.map(G);return Px(...r).map(I=>q(I))}function xf(A,r,I="raise"){let t=A.map(G);return q(_x(t,r,I))}function Uf(A,r){let I=typeof A=="number"?G(BA([A])):G(A);return Kx(I,r).map(t=>q(t))}function Lf(A,r=2){return pf(A,r).map(I=>q(I))}function Hf(A){return xx(G(A)).map(r=>q(r))}function oC(A,r,I=!1){vx(G(A),r,I)}function Yf(A,r=0,I){return Nf(A,r,I).map(t=>q(t))}function Pf(A,r=0){return Ux(G(A),r).map(I=>q(I))}function _f(A,r=0,I){return Ff(A,r,I).map(t=>q(t))}function Kf(A,r=0){return Lx(G(A),r).map(I=>q(I))}function vf(A,r,I=0){return Hx(A,(o,e)=>G(r(o,e)),I).map(o=>q(o))}function eC(A,r,I=!1){return Gx(G(A),G(r),I)}function gC(A,r){return fR(G(A),G(r))}function Xf(A,r,I){let t=o=>{let e=A(q(o));return typeof e=="number"?e:G(e)};return q(Xx(G(I),r,t))}function Tf(A,r,I){let t=(o,e)=>G(A(q(o),e));return q(Tx(G(r),t,I))}function iC(A,r){return Gf(G(A),G(r))}function nC(A,r){return Ox(G(A),G(r))}var QC=Sf,CC=Vx;var aC=Km,BC=vm,sC=Xm,EC=Lt,uC=Ut,cC=Tm,DC=Om;function fC(A,r){return fn(G(A),r?.max_line_width??null,r?.precision??null,r?.suppress_small??null,r?.separator??" ",r?.prefix??"",r?.suffix??"",r?.threshold??null,r?.edgeitems??null,r?.floatmode??null,r?.sign??null)}function yC(A,r,I,t){return Vm(G(A),r,I,t)}function mt(A,r,I){return yn(G(A),r,I)}function mC(A){if(A instanceof IA)return A.ndim;if(typeof A=="number"||typeof A=="bigint"||typeof A=="boolean")return 0;if(Array.isArray(A)){let r=0,I=A;for(;Array.isArray(I)&&I.length>0;)r++,I=I[0];return r}return 0}function Ti(A){if(A instanceof IA)return A.shape;if(typeof A=="number"||typeof A=="bigint"||typeof A=="boolean")return[];if(Array.isArray(A)){let r=[],I=A;for(;Array.isArray(I)&&I.length>0;)r.push(I.length),I=I[0];return r}return[]}function lC(A){return A instanceof IA?A.size:typeof A=="number"||typeof A=="bigint"||typeof A=="boolean"?1:Array.isArray(A)?Ti(A).reduce((I,t)=>I*t,1):1}function hC(A,...r){let I=A.storage,t=A.shape;if(r.length===0){if(A.size!==1)throw new Error("can only convert an array of size 1 to a scalar");return I.isCContiguous?I.data[I.offset]:I.iget(0)}if(r.length===1)return I.isCContiguous?I.data[I.offset+r[0]]:I.iget(r[0]);if(r.length!==t.length)throw new Error("incorrect number of indices for array");return I.get(...r)}function wC(A){let r=A.shape,I=A.storage,t=r.length;if(t===0)return I.iget(0);if(I.isCContiguous){let C=function(a,B){let s=r[B],E=n[B];if(B===t-1){let D=new Array(s);for(let y=0;y<s;y++)D[y]=g[i+a+y];return D}let u=new Array(s);for(let D=0;D<s;D++)u[D]=C(a+D*E,B+1);return u};var e=C;let g=I.data,i=I.offset;if(t===1){let a=r[0],B=new Array(a);for(let s=0;s<a;s++)B[s]=g[i+s];return B}let n=new Array(t),Q=1;for(let a=t-1;a>=0;a--)n[a]=Q,Q*=r[a];return C(0,0)}if(t===1){let g=[];for(let i=0;i<r[0];i++)g.push(I.iget(i));return g}function o(g,i){if(i===t)return I.get(...g);let n=[];for(let Q=0;Q<r[i];Q++)g[i]=Q,n.push(o(g,i+1));return n}return o(new Array(t),0)}function dC(A,r="C"){let I=A.storage;r==="F"&&console.warn('tobytes with order="F" not fully implemented, returning C-order');let t=I.data,o=t.BYTES_PER_ELEMENT;if(I.isCContiguous){let i=t.byteOffset+I.offset*o,n=A.size*o;return new Uint8Array(t.buffer,i,n)}let g=A.copy().data;return new Uint8Array(g.buffer,g.byteOffset,A.size*o)}function bC(A,r=!1){let t=A.data.BYTES_PER_ELEMENT;if(t===1)return r?A:A.copy();let o=r?A:A.copy(),e=o.data,g=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let i=0;i<e.length;i++){let n=i*t;for(let Q=0;Q<t/2;Q++){let C=g[n+Q];g[n+Q]=g[n+t-1-Q],g[n+t-1-Q]=C}}return o}function pC(A,r){if(!r||r===A.dtype)return A.copy();throw new Error("view with different dtype not fully implemented")}function NC(A,r,I="",t=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function FC(A,r){let I=A.storage,t=A.dtype,o=A.size;if(r instanceof X){if(!(t==="complex64"||t==="complex128"))throw new Error("Cannot fill non-complex array with complex value");if(I.isCContiguous){let g=I.data,i=I.offset;for(let n=0;n<o;n++)g[(i+n)*2]=r.re,g[(i+n)*2+1]=r.im}else for(let g=0;g<o;g++)I.iset(g,r)}else if(typeof r=="bigint")if(I.isCContiguous)I.data.fill(r,I.offset,I.offset+o);else for(let e=0;e<o;e++)I.iset(e,r);else{let e=typeof r=="boolean"?r?1:0:r;if(I.isCContiguous)I.data.fill(e,I.offset,I.offset+o);else for(let g=0;g<o;g++)I.iset(g,e)}}var TT="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",Oi=null;function lt(){if(Oi)return Oi;let A=atob(TT),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);Oi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=Oi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Oi}function Wx(A,r,I,t,o){lt().exports.pad_2d_f64(A,r,I,t,o)}function Of(A,r,I,t,o){lt().exports.pad_2d_f32(A,r,I,t,o)}function Vf(A,r,I,t,o){lt().exports.pad_2d_i64(A,r,I,t,o)}function Wf(A,r,I,t,o){lt().exports.pad_2d_i32(A,r,I,t,o)}function Zf(A,r,I,t,o){lt().exports.pad_2d_i16(A,r,I,t,o)}function zf(A,r,I,t,o){lt().exports.pad_2d_i8(A,r,I,t,o)}var OT=64,VT={float64:Wx,float32:Of,int64:Vf,uint64:Vf,int32:Wf,uint32:Wf,int16:Zf,uint16:Zf,int8:zf,uint8:zf,float16:Of},WT={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,float16:Float32Array};function Zx(A,r){if(!A.isCContiguous||A.shape.length!==2)return null;let I=A.size;if(I<OT*K.thresholdMultiplier)return null;let t=A.dtype,o=VT[t],e=WT[t];if(!o||!e)return null;let g=A.shape[0],i=A.shape[1],n=g+2*r,Q=i+2*r,C=n*Q,a=e.BYTES_PER_ELEMENT,B=I*a,s=C*a;x(B+s),U();let E=t==="float16",u=A.offset,D=A.data.subarray(u,u+I);E&&(D=AA(D,t));let y=R(D),f=H(s);o(y,f,g,i,r);let c=_(f,C,e);return d.fromData(E?eA(c,t):c,[n,Q],t)}function jf(A,r,I){let t=r instanceof IA?r:BA(Array.isArray(r)?r:[r]);if(I===void 0){let o=wr(A),e=wr(t);return ot([o,e],0)}return ot([A,t],I)}function GC(A,r,I){let t=Array.isArray(r)?r:[r],o=[...A.shape],e=A.storage;if(I===void 0){let y=wr(A),f=y.storage,c=[],m=new Set(t.map(l=>l<0?y.size+l:l));for(let l=0;l<y.size;l++)m.has(l)||c.push(f.iget(l));return BA(c,A.dtype)}let g=I<0?o.length+I:I,i=o[g],n=new Set(t.map(y=>y<0?i+y:y)),Q=i-n.size,C=[...o];C[g]=Q;let a=nr(C,A.dtype),B=a.storage,s=[],E=1;for(let y=o.length-1;y>=0;y--)s.unshift(E),E*=o[y];let u=[];E=1;for(let y=C.length-1;y>=0;y--)u.unshift(E),E*=C[y];let D=o.reduce((y,f)=>y*f,1);for(let y=0;y<D;y++){let f=[],c=y;for(let h=0;h<o.length;h++)f.push(Math.floor(c/s[h])),c=c%s[h];if(n.has(f[g]))continue;let m=0;for(let h of n)h<f[g]&&m++;let l=[...f];l[g]-=m;let w=0;for(let h=0;h<C.length;h++)w+=l[h]*u[h];B.iset(w,e.iget(y))}return a}function $f(A,r,I,t){let o=Array.isArray(r)?r:[r],e=I instanceof IA?I:BA(Array.isArray(I)?I:[I]);if(t===void 0){let g=wr(A),i=wr(e),n=g.data,Q=i.data,C=Array.from(n);if(o.length===1){let a=o[0],B=a<0?g.size+a:a,s=Array.from(Q);C.splice(B,0,...s)}else{let a=o.map((B,s)=>({idx:B<0?g.size+B:B,valIdx:s})).sort((B,s)=>B.idx-s.idx);for(let B=0;B<a.length;B++){let{idx:s,valIdx:E}=a[B],u=Q[E%Q.length];C.splice(s+B,0,u)}}return BA(C,A.dtype)}throw new Error("insert along axis not fully implemented in standalone")}function Ay(A,r,I="constant",t=0){let o=[...A.shape],e=o.length,g;typeof r=="number"?g=Array(e).fill([r,r]):Array.isArray(r)&&typeof r[0]=="number"?g=Array(e).fill(r):g=r;let i=o.map((u,D)=>u+g[D][0]+g[D][1]);if(I==="constant"&&t===0&&e===2&&typeof r=="number"){let u=Zx(A.storage,r);if(u)return new IA(u)}if(I!=="constant")throw new Error(`pad mode '${I}' not fully implemented in standalone`);let n=nr(i,A.dtype),Q=n.storage;if(t!==0)for(let u=0;u<n.size;u++)Q.iset(u,t);let C=A.storage,a=[],B=1;for(let u=o.length-1;u>=0;u--)a.unshift(B),B*=o[u];let s=[];B=1;for(let u=i.length-1;u>=0;u--)s.unshift(B),B*=i[u];let E=o.reduce((u,D)=>u*D,1);if(A.dtype==="float16"&&uA&&C.isCContiguous&&Q.isCContiguous){let u=new Float32Array(C.data.subarray(C.offset,C.offset+E)),D=Q.size,y=new Float32Array(D);t!==0&&y.fill(t);for(let f=0;f<E;f++){let c=[],m=f;for(let w=0;w<o.length;w++)c.push(Math.floor(m/a[w])),m=m%a[w];let l=0;for(let w=0;w<i.length;w++)l+=(c[w]+g[w][0])*s[w];y[l]=u[f]}return Q.data.set(y),n}for(let u=0;u<E;u++){let D=[],y=u;for(let c=0;c<o.length;c++)D.push(Math.floor(y/a[c])),y=y%a[c];let f=0;for(let c=0;c<i.length;c++)f+=(D[c]+g[c][0])*s[c];Q.iset(f,C.iget(u))}return n}var ty=["int8","int16","int32","int64"],oy=["uint8","uint16","uint32","uint64"],jx=[...ty,...oy],ry=["float16","float32","float64"],Iy=["complex64","complex128"],ZT=[...jx,...ry,...Iy],zx={bool:0,int8:1,uint8:2,int16:3,uint16:4,int32:5,uint32:6,int64:7,uint64:8,float16:9,float32:10,float64:11,complex64:12,complex128:13};function Vi(A,r,I="safe"){let t=A instanceof IA?A.dtype:A;if(I==="no"||I==="equiv")return t===r;if(I==="unsafe")return!0;let o=zx[t]??-1,e=zx[r]??-1;if(I==="safe"){if(SA(t)&&fA(r)){let g={int8:8,int16:16,int32:32,int64:64,uint8:8,uint16:16,uint32:32,uint64:64,bool:1,float16:0,float32:0,float64:0,complex64:0,complex128:0},i={float16:11,float32:24,float64:53,int8:0,int16:0,int32:0,int64:0,uint8:0,uint16:0,uint32:0,uint64:0,bool:0,complex64:24,complex128:53},n=g[t]??64,Q=i[r]??0;return n<=Q}return!!(SA(t)&&k(r)||fA(t)&&k(r)||o<=e)}return I==="same_kind"?!!(SA(t)&&SA(r)||fA(t)&&fA(r)||k(t)&&k(r)||t==="bool"&&SA(r)||t==="bool"&&r==="bool"||fA(t)&&k(r)):!1}function SC(...A){if(A.length===0)return"float64";let r=!1,I=!1,t=!1;for(let e of A){let g=e.dtype;k(g)?(r=!0,g==="complex128"&&(I=!0)):fA(g)?g==="float64"?I=!0:g==="float32"&&(t=!0):SA(g)&&(g==="int64"||g==="uint64"||g==="int32"||g==="uint32")&&(I=!0)}return r?I?"complex128":"complex64":I?"float64":t?"float32":A.every(e=>e.dtype==="float16")?"float16":"float32"}function RC(...A){if(A.length===0)return"float64";let r=A.map(e=>e instanceof IA?e.dtype:e),I=r.some(k),t=r.some(fA),o=r.some(SA);if(I){let e=r.some(n=>n==="float64"),g=r.some(n=>n==="complex128"),i=r.some(n=>n==="int64"||n==="uint64"||n==="int32"||n==="uint32");return g||e||i?"complex128":"complex64"}if(t){let e=r.some(i=>i==="float64"),g=r.some(i=>i==="float32");if(o){if(r.some(Q=>Q==="int32"||Q==="uint32"||Q==="int64"||Q==="uint64")||e)return"float64";let n=r.some(Q=>Q==="int16"||Q==="uint16");if(!g&&n)return"float32"}return e?"float64":g?"float32":"float16"}if(o){let e=r.some(Q=>ty.includes(Q)),g=r.some(Q=>oy.includes(Q)),i={bool:8,int8:8,uint8:8,int16:16,uint16:16,int32:32,uint32:32,int64:64,uint64:64,float16:0,float32:0,float64:0,complex64:0,complex128:0},n=Math.max(...r.map(Q=>i[Q]??0));return e&&g?n>=32?"int64":n>=16?"int32":"int16":e?n>=64?"int64":n>=32?"int32":n>=16?"int16":"int8":n>=64?"uint64":n>=32?"uint32":n>=16?"uint16":"uint8"}return"bool"}function kC(A){return typeof A=="boolean"?"bool":typeof A=="bigint"?A>=0n?A<=255n?"uint8":A<=65535n?"uint16":A<=4294967295n?"uint32":"uint64":A>=-128n&&A<=127n?"int8":A>=-32768n&&A<=32767n?"int16":A>=-2147483648n&&A<=2147483647n?"int32":"int64":Number.isInteger(A)?A>=0?A<=255?"uint8":A<=65535?"uint16":A<=4294967295?"uint32":"int64":A>=-128&&A<=127?"int8":A>=-32768&&A<=32767?"int16":A>=-2147483648&&A<=2147483647?"int32":"int64":"float64"}function qC(A,r){let I=A instanceof IA?A.dtype:A;if(typeof r=="string")switch(r){case"number":case"numeric":return ZT.includes(I);case"integer":case"int":return jx.includes(I);case"signedinteger":return ty.includes(I);case"unsignedinteger":return oy.includes(I);case"floating":case"float":return ry.includes(I);case"complexfloating":case"complex":return Iy.includes(I);case"inexact":return ry.includes(I)||Iy.includes(I);default:return I===r}return I===r}function MC(A){return A}function JC(A,r="GDFgdf",I="d"){let t={b:"int8",B:"uint8",h:"int16",H:"uint16",i:"int32",I:"uint32",l:"int64",L:"uint64",f:"float32",d:"float64",F:"complex64",D:"complex128",g:"float64",G:"complex128"},o={b:0,B:1,h:2,H:3,i:4,I:5,l:6,L:7,f:8,g:9.1,d:9,F:10,G:11.1,D:11};if(A.length===0)return I;let e=[];for(let n of A){let Q=t[n];Q&&e.push(Q)}if(e.length===0)return I;let g=I,i=1/0;for(let n of r){let Q=t[n];if(!Q)continue;let C=o[n]??1/0,a=!0;for(let B of e)if(!Vi(B,Q,"safe")){a=!1;break}a&&C<i&&(i=C,g=n)}return g}function ir(A){return A instanceof IA?A:BA(A)}function ey(A){let r=ir(A),I=r.data,t=r.size;if(t===0)return BA([1]);let o=[1];for(let e=0;e<t;e++){let g=I[e],i=new Array(o.length+1).fill(0);for(let n=0;n<o.length;n++)i[n]+=o[n],i[n+1]-=o[n]*g;o=i}return BA(o)}function gy(A,r){let I=ir(A),t=ir(r),o=I.data,e=t.data,g=Math.max(I.size,t.size),i=new Array(g).fill(0);for(let Q=0;Q<I.size;Q++)i[g-I.size+Q]+=o[Q];for(let Q=0;Q<t.size;Q++)i[g-t.size+Q]+=e[Q];let n=0;for(;n<i.length-1&&i[n]===0;)n++;return BA(i.slice(n))}function iy(A,r=1){let I=ir(A);for(let t=0;t<r;t++){let o=I.data,e=I.size;if(e<=1)return BA([0]);let g=[];for(let i=0;i<e-1;i++){let n=e-1-i;g.push(o[i]*n)}I=BA(g)}return I}function ny(A,r){let I=[...ir(A).data],t=[...ir(r).data];if(t.length===0||t.length===1&&t[0]===0)throw new Error("Division by zero polynomial");for(;I.length>1&&I[0]===0;)I.shift();for(;t.length>1&&t[0]===0;)t.shift();if(I.length<t.length)return[BA([0]),BA(I)];let o=[],e=[...I];for(;e.length>=t.length;){let g=e[0]/t[0];o.push(g);for(let i=0;i<t.length;i++)e[i]-=g*t[i];e.shift()}for(;e.length>1&&Math.abs(e[0])<1e-15;)e.shift();return[BA(o.length>0?o:[0]),BA(e.length>0?e:[0])]}function Qy(A,r,I){let t=A.data,o=r.data,e=A.size;if(I>=e)throw new Error("polyfit: degree must be less than number of points");let g=new Float64Array(e),i=new Float64Array(e);for(let E=0;E<e;E++)g[E]=Number(t[E]),i[E]=Number(o[E]);let n=[];for(let E=0;E<e;E++){let u=[];for(let D=I;D>=0;D--)u.push(Math.pow(g[E],D));n.push(u)}let Q=[],C=[];for(let E=0;E<=I;E++){Q.push([]);for(let D=0;D<=I;D++){let y=0;for(let f=0;f<e;f++)y+=n[f][E]*n[f][D];Q[E].push(y)}let u=0;for(let D=0;D<e;D++)u+=n[D][E]*i[D];C.push(u)}let a=I+1,B=Q.map((E,u)=>[...E,C[u]]);for(let E=0;E<a;E++){let u=E;for(let D=E+1;D<a;D++)Math.abs(B[D][E])>Math.abs(B[u][E])&&(u=D);[B[E],B[u]]=[B[u],B[E]];for(let D=E+1;D<a;D++){let y=B[D][E]/B[E][E];for(let f=E;f<=a;f++)B[D][f]-=y*B[E][f]}}let s=new Array(a).fill(0);for(let E=a-1;E>=0;E--){let u=B[E][a];for(let D=E+1;D<a;D++)u-=B[E][D]*s[D];s[E]=u/B[E][E]}return BA(s)}function Cy(A,r=1,I=0){let t=ir(A),o=Array.isArray(I)?I:[I];for(let e=0;e<r;e++){let g=t.data,i=t.size,n=[];for(let C=0;C<i;C++){let a=i-C;n.push(g[C]/a)}let Q=e<o.length?o[e]:0;n.push(Q),t=BA(n)}return t}function ay(A,r){let I=ir(A),t=ir(r),o=I.data,e=t.data,g=I.size+t.size-1,i=new Array(g).fill(0);for(let n=0;n<I.size;n++)for(let Q=0;Q<t.size;Q++)i[n+Q]+=o[n]*e[Q];return BA(i)}function By(A,r){let I=ir(A),t=ir(r),o=I.data,e=t.data,g=Math.max(I.size,t.size),i=new Array(g).fill(0);for(let Q=0;Q<I.size;Q++)i[g-I.size+Q]+=o[Q];for(let Q=0;Q<t.size;Q++)i[g-t.size+Q]-=e[Q];let n=0;for(;n<i.length-1&&i[n]===0;)n++;return BA(i.slice(n))}function sy(A,r){let I=ir(A),t=I.data;if(typeof r=="number"){let Q=t[0];for(let C=1;C<I.size;C++)Q=Q*r+t[C];return Q}let o=r instanceof IA?r:BA(r),e=o.data,g=o.size,i=I.size,n=new Float64Array(g);for(let Q=0;Q<g;Q++){let C=Number(e[Q]),a=Number(t[0]);for(let B=1;B<i;B++)a=a*C+Number(t[B]);n[Q]=a}return new IA(d.fromData(n,Array.from(o.shape),"float64"))}function Ey(A){let I=[...ir(A).data];for(;I.length>1&&I[0]===0;)I.shift();let t=0;for(;I.length>1&&I[I.length-1]===0;)I.pop(),t++;let o=I.length-1;if(o+t===0)return $x([],[]);let g=[],i=[];if(o===1)g.push(-I[1]/I[0]),i.push(0);else if(o===2){let a=I[0],B=I[1],s=I[2],E=B*B-4*a*s;if(E>=0){let u=Math.sqrt(E);g.push((-B+u)/(2*a),(-B-u)/(2*a)),i.push(0,0)}else{let u=Math.sqrt(-E);g.push(-B/(2*a),-B/(2*a)),i.push(u/(2*a),-u/(2*a))}}else if(o>=3){let a=zT(I,o);for(let B of a)g.push(B.re),i.push(B.im)}for(let a=0;a<t;a++)g.push(0),i.push(0);let n=g.map((a,B)=>B);n.sort((a,B)=>{let s=Math.sqrt(g[a]**2+i[a]**2),E=Math.sqrt(g[B]**2+i[B]**2);return Math.abs(s-E)>1e-10?E-s:Math.abs(g[a]-g[B])>1e-10?g[B]-g[a]:i[B]-i[a]});let Q=n.map(a=>g[a]),C=n.map(a=>i[a]);return $x(Q,C)}function $x(A,r){let I=A.length,t=new Float64Array(2*I);for(let e=0;e<I;e++)t[2*e]=A[e],t[2*e+1]=r[e];let o=d.fromData(t,[I],"complex128");return new IA(o)}function zT(A,r){let I=Array.from({length:r},()=>new Array(r).fill(0)),t=A[0];for(let o=0;o<r;o++)I[0][o]=-A[o+1]/t;for(let o=1;o<r;o++)I[o][o-1]=1;return jT(I,r)}function jT(A,r){let I=[],o=r,e=0,g=100*r,i=r,n=0;for(;o>0&&e<g;){if(e++,o===i?n++:(n=0,i=o),o===1){I.push({re:A[0][0],im:0}),o=0;break}if(o===2){I.push(...AU(A[0][0],A[0][1],A[1][0],A[1][1])),o=0;break}let Q=o-1;for(;Q>0;){let E=Math.abs(A[Q-1][Q-1])+Math.abs(A[Q][Q]),u=222e-18*(E===0?1:E);if(Math.abs(A[Q][Q-1])<=u){A[Q][Q-1]=0;break}Q--}let C=o-Q;if(C===1){I.push({re:A[o-1][o-1],im:0}),o--;continue}if(C===2){I.push(...AU(A[o-2][o-2],A[o-2][o-1],A[o-1][o-2],A[o-1][o-1])),o-=2;continue}let a;if(n>0&&n%10===0)a=Math.abs(A[o-1][o-2])+Math.abs(A[o-2][o-3]);else{let E=A[o-2][o-2],u=A[o-2][o-1],D=A[o-1][o-2],y=A[o-1][o-1],f=E+y,c=E*y-u*D,m=f*f-4*c;if(m>=0){let l=Math.sqrt(m),w=(f+l)/2,h=(f-l)/2;a=Math.abs(w-y)<Math.abs(h-y)?w:h}else a=y}for(let E=Q;E<o;E++)A[E][E]=A[E][E]-a;let B=[],s=[];for(let E=Q;E<o-1;E++){let u=Math.hypot(A[E][E],A[E+1][E]),D=u===0?1:A[E][E]/u,y=u===0?0:A[E+1][E]/u;B.push(D),s.push(y);for(let f=E;f<o;f++){let c=A[E][f],m=A[E+1][f];A[E][f]=D*c+y*m,A[E+1][f]=-y*c+D*m}}for(let E=0;E<B.length;E++){let u=Q+E,D=B[E],y=s[E],f=Math.min(u+2,o-1);for(let c=Q;c<=f;c++){let m=A[c][u],l=A[c][u+1];A[c][u]=D*m+y*l,A[c][u+1]=-y*m+D*l}}for(let E=Q;E<o;E++)A[E][E]=A[E][E]+a}if(o>0)for(let Q=0;Q<o;Q++)I.push({re:A[Q][Q],im:0});return I}function AU(A,r,I,t){let o=A+t,e=A*t-r*I,g=o*o-4*e;if(g>=0){let i=Math.sqrt(g);return[{re:(o+i)/2,im:0},{re:(o-i)/2,im:0}]}else{let i=Math.sqrt(-g);return[{re:o/2,im:i/2},{re:o/2,im:-i/2}]}}var $T=new ArrayBuffer(4),rU=new DataView($T);function AO(A){let r=A>>>15&1,I=A>>>10&31,t=A&1023,o;return I===0?o=t===0?0:t*2**-24:I===31?o=t===0?1/0:NaN:o=(t/1024+1)*2**(I-15),r?-o:o}function IU(A){rU.setFloat32(0,A,!1);let r=rU.getUint32(0,!1),I=r>>>31&1,t=r>>>23&255,o=r&8388607,e,g;if(t===255)e=31,g=o===0?0:512;else if(t>142)e=31,g=0;else if(t<103)e=0,g=0;else if(t<113){e=0;let i=125-t;g=(8388608|o)>>>i;let n=(8388608|o)&(1<<i)-1,Q=1<<i-1;(n>Q||n===Q&&(g&1)!==0)&&g++}else{e=t-112,g=o>>>13;let i=o&8191;(i>4096||i===4096&&(g&1)!==0)&&(g++,g>1023&&(g=0,e++,e>30&&(e=31,g=0)))}return I<<15|e<<10|g}function tU(A,r,I,t){let o=new DataView(A,r),e=new Float32Array(I);for(let g=0;g<I;g++){let i;i=o.getUint16(g*2,!0),e[g]=AO(i)}return e}var Wi=new Uint8Array([147,78,85,77,80,89]),uy=["float64","float32","float16","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function cy(){let A=new ArrayBuffer(2);return new DataView(A).setInt16(0,256,!0),new Int16Array(A)[0]===256}var rO={f8:"float64",f4:"float32",f2:"float16",c16:"complex128",c8:"complex64",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},xC={float64:"<f8",float32:"<f4",float16:"<f2",complex128:"<c16",complex64:"<c8",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},oU={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function eU(A){if(A.startsWith("[")||A.startsWith("("))throw new vr(`Structured/compound dtypes are not supported: ${A}`);let r="",I=A;(A[0]==="<"||A[0]===">"||A[0]==="="||A[0]==="|")&&(r=A[0],I=A.slice(1));let t=I[0];if(t&&t in oU)throw new vr(`Unsupported dtype: ${oU[t]} (${A}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=rO[I];if(!o)throw new vr(`Unknown or unsupported dtype descriptor: ${A}. Supported types: ${uy.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let e=cy(),g=r==="<"||r==="|"||r==="="&&e,i=r===">"||r==="="&&!e,n=parseInt(I.slice(1),10),Q=n>1&&(i&&e||g&&!e);return{dtype:o,needsByteSwap:Q,itemsize:n}}var vr=class extends Error{constructor(r){super(r),this.name="UnsupportedDTypeError"}},tr=class extends Error{constructor(r){super(r),this.name="InvalidNpyError"}};function GI(A){let r=A instanceof ArrayBuffer?new Uint8Array(A):A,I=Dy(r);return fy(r,I)}function Dy(A){if(A.length<10)throw new tr("File too small to be a valid NPY file");for(let Q=0;Q<Wi.length;Q++)if(A[Q]!==Wi[Q])throw new tr("Invalid NPY magic number");let r=A[6],I=A[7];if(r!==1&&r!==2&&r!==3)throw new tr(`Unsupported NPY version: ${r}.${I}`);let t,o;r===1?(t=A[8]|A[9]<<8,o=10):(t=A[8]|A[9]<<8|A[10]<<16|A[11]<<24,o=12);let e=o+t;if(A.length<e)throw new tr("File truncated: header extends beyond file");let g=A.slice(o,e),i=new TextDecoder("utf-8").decode(g).trim(),n=IO(i);return{version:{major:r,minor:I},header:n,dataOffset:e}}function fy(A,r){let{header:I,dataOffset:t}=r,{dtype:o,needsByteSwap:e,itemsize:g}=eU(I.descr),i=I.shape.reduce((u,D)=>u*D,1),n=i*g,Q=A.length-t;if(Q<n)throw new tr(`File truncated: expected ${n} bytes of data, got ${Q}`);let C=new ArrayBuffer(n);new Uint8Array(C).set(A.subarray(t,t+n));let B=tO(C,o,i,e,g),s=I.shape,E;if(I.fortran_order&&s.length>1){let u=[...s].reverse(),D=d.fromData(B,u,o);E=oO(D,u)}else E=d.fromData(B,[...s],o);return new IA(E)}function IO(A){let r=A.match(/'descr'\s*:\s*'([^']+)'/),I=A.match(/'fortran_order'\s*:\s*(True|False)/),t=A.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!r||!I||!t)throw new tr(`Failed to parse NPY header: ${A}`);let o=r[1],e=I[1]==="True",g=t[1].trim(),i;return g===""?i=[]:i=g.split(",").map(n=>n.trim()).filter(n=>n!=="").map(n=>{let Q=parseInt(n,10);if(isNaN(Q))throw new tr(`Invalid shape value: ${n}`);return Q}),{descr:o,fortran_order:e,shape:i}}function tO(A,r,I,t,o){let e=k(r);if(r==="float16"&&!uA){let C=A;if(t){let a=new Uint8Array(A),B=new Uint8Array(A.byteLength);for(let s=0;s<I;s++){let E=s*2;B[E]=a[E+1],B[E+1]=a[E]}C=B.buffer}return tU(C,0,I,!1)}let g=iA(r);if(!g)throw new tr(`Cannot create array for dtype: ${r}`);let i=e?I*2:I;if(!t)return new g(A,0,i);let n=new Uint8Array(A),Q=new Uint8Array(A.byteLength);if(e){let C=o/2;for(let a=0;a<I*2;a++){let B=a*C;for(let s=0;s<C;s++)Q[B+s]=n[B+C-1-s]}}else for(let C=0;C<I;C++){let a=C*o;for(let B=0;B<o;B++)Q[a+B]=n[a+o-1-B]}return new g(Q.buffer,0,i)}function oO(A,r){let I=r.length,t=A.size,o=A.dtype,e=iA(o);if(!e)throw new tr(`Cannot create array for dtype: ${o}`);let g=new e(t),i=[...r].reverse(),n=gU(r),Q=gU(i),C=new Array(I).fill(0);for(let a=0;a<t;a++){let B=a;for(let E=0;E<I;E++){let u=n[E];C[E]=Math.floor(B/u),B=B%u}let s=0;for(let E=0;E<I;E++)s+=C[I-1-E]*Q[E];P(o),g[s]=A.iget(a)}return d.fromData(g,i,o)}function gU(A){let r=new Array(A.length),I=1;for(let t=A.length-1;t>=0;t--)r[t]=I,I*=A[t];return r}function DI(A){let r=A.shape,I=A.dtype,t=xC[I],o=r.length===0?"()":r.length===1?`(${r[0]},)`:`(${r.join(", ")})`,e=`{'descr': '${t}', 'fortran_order': False, 'shape': ${o}, }`,g=12,n=(64-(g+e.length+1)%64)%64;e=e+" ".repeat(n)+`
6
+ `;let Q=new TextEncoder().encode(e),C=Q.length,a=A.size,B=Zr(I),s=a*B,E=g+C+s,u=new Uint8Array(E);u.set(Wi,0),u[6]=3,u[7]=0,u[8]=C&255,u[9]=C>>8&255,u[10]=C>>16&255,u[11]=C>>24&255,u.set(Q,g);let D=g+C;return eO(A,u.subarray(D),B),u}function eO(A,r,I){let t=A.dtype,o=A.size,e=cy(),g=P(t),i=k(t),n=A.storage;if(n.isCContiguous&&n.offset===0&&e&&!(t==="float16"&&!uA)){let C=n.data,a=new Uint8Array(C.buffer,C.byteOffset,o*I);r.set(a)}else{let C=new DataView(r.buffer,r.byteOffset,r.byteLength);for(let a=0;a<o;a++){let B=n.iget(a),s=a*I;g?gO(C,s,B,t==="uint64"):i?iO(C,s,B,t):nO(C,s,B,t)}}}function gO(A,r,I,t){t?A.setBigUint64(r,I,!0):A.setBigInt64(r,I,!0)}function iO(A,r,I,t){t==="complex128"?(A.setFloat64(r,I.re,!0),A.setFloat64(r+8,I.im,!0)):(A.setFloat32(r,I.re,!0),A.setFloat32(r+4,I.im,!0))}function nO(A,r,I,t){switch(t){case"float64":A.setFloat64(r,I,!0);break;case"float32":A.setFloat32(r,I,!0);break;case"int32":A.setInt32(r,I,!0);break;case"int16":A.setInt16(r,I,!0);break;case"int8":A.setInt8(r,I);break;case"uint32":A.setUint32(r,I,!0);break;case"uint16":A.setUint16(r,I,!0);break;case"uint8":case"bool":A.setUint8(r,I);break;case"float16":A.setUint16(r,IU(I),!0);break;default:throw new Error(`Unsupported dtype for serialization: ${t}`)}}var fI=(()=>{let A=[],r=new Uint32Array(256);for(let I=0;I<256;I++){let t=I;for(let o=0;o<8;o++)t=t&1?3988292384^t>>>1:t>>>1;r[I]=t}A.push(r);for(let I=1;I<8;I++){let t=new Uint32Array(256);for(let o=0;o<256;o++)t[o]=A[I-1][o]>>>8^r[A[I-1][o]&255];A.push(t)}return A})();function yy(A){let r=fI[0],I=fI[1],t=fI[2],o=fI[3],e=fI[4],g=fI[5],i=fI[6],n=fI[7],Q=A.length,C=4294967295,a=0,B=Q-7;for(;a<B;){let s=(C^(A[a]|A[a+1]<<8|A[a+2]<<16|A[a+3]<<24))>>>0,E=A[a+4]|A[a+5]<<8|A[a+6]<<16|A[a+7]<<24;C=n[s&255]^i[s>>>8&255]^g[s>>>16&255]^e[s>>>24&255]^o[E&255]^t[E>>>8&255]^I[E>>>16&255]^r[E>>>24&255],a+=8}for(;a<Q;)C=r[(C^A[a])&255]^C>>>8,a++;return(C^4294967295)>>>0}async function QU(A){let r=aU(A),I=new Map;for(let t of r){let o=await QO(t);I.set(t.name,o)}return I}function CU(A){let r=aU(A),I=new Map;for(let t of r){if(t.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${t.name}. Use readZip() (async) for DEFLATE-compressed files.`);I.set(t.name,t.compressedData)}return I}function aU(A){let r=A instanceof ArrayBuffer?new Uint8Array(A):A,I=new DataView(r.buffer,r.byteOffset,r.byteLength),t=[],o=-1;for(let Q=r.length-22;Q>=0;Q--)if(I.getUint32(Q,!0)===101010256){o=Q;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let e=I.getUint32(o+16,!0),g=I.getUint16(o+10,!0),i=[],n=e;for(let Q=0;Q<g&&I.getUint32(n,!0)===33639248;Q++){let a=I.getUint16(n+10,!0),B=I.getUint32(n+16,!0),s=I.getUint32(n+20,!0),E=I.getUint32(n+24,!0),u=I.getUint16(n+28,!0),D=I.getUint16(n+30,!0),y=I.getUint16(n+32,!0),f=I.getUint32(n+42,!0),c=r.slice(n+46,n+46+u),m=new TextDecoder("utf-8").decode(c);i.push({name:m,compressionMethod:a,crc32:B,compressedSize:s,uncompressedSize:E,localHeaderOffset:f}),n=n+46+u+D+y}for(let Q of i){let C=Q.localHeaderOffset;if(I.getUint32(C,!0)!==67324752)throw new Error(`Invalid local file header at offset ${C}`);let B=I.getUint16(C+26,!0),s=I.getUint16(C+28,!0),E=C+30+B+s,u=r.slice(E,E+Q.compressedSize);t.push({name:Q.name,compressedData:u,compressionMethod:Q.compressionMethod,crc32:Q.crc32,compressedSize:Q.compressedSize,uncompressedSize:Q.uncompressedSize})}return t}async function QO(A){if(A.compressionMethod===0)return A.compressedData;if(A.compressionMethod===8)return await CO(A.compressedData);throw new Error(`Unsupported compression method: ${A.compressionMethod}`)}async function CO(A){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let r=new DecompressionStream("deflate-raw"),I=new Uint8Array(A.length);I.set(A);let t=r.writable.getWriter();t.write(I),t.close();let o=r.readable.getReader(),e=[];for(;;){let{done:Q,value:C}=await o.read();if(Q)break;e.push(C)}let g=e.reduce((Q,C)=>Q+C.length,0),i=new Uint8Array(g),n=0;for(let Q of e)i.set(Q,n),n+=Q.length;return i}async function zi(A,r={}){let I=r.force??!1,t=await QU(A);return BU(t,I)}function ji(A,r={}){let I=r.force??!1,t=CU(A);return BU(t,I)}function BU(A,r){let I=new Map,t=[],o=new Map;for(let[e,g]of A){if(!e.endsWith(".npy"))continue;let i=e.slice(0,-4);try{let n=GI(g);I.set(i,n)}catch(n){if(n instanceof vr&&r)t.push(i),o.set(i,n.message);else throw n}}return{arrays:I,skipped:t,errors:o}}async function sU(A,r={}){let I=await zi(A,r);return Object.fromEntries(I.arrays)}function EU(A,r={}){let I=ji(A,r);return Object.fromEntries(I.arrays)}async function uU(A,r={}){let I=r.compress??!1,t=[],o=new TextEncoder;for(let[E,u]of A){let D=yy(u),y,f;I?(y=await BO(u),y.length<u.length?f=8:(y=u,f=0)):(y=u,f=0),t.push({name:E,data:u,compressedData:y,crc:D,compressionMethod:f,offset:0})}let e=new Map;for(let E of t)e.set(E.name,o.encode(E.name));let g=0;for(let E of t)g+=30+e.get(E.name).length+E.compressedData.length;let i=0;for(let E of t)i+=46+e.get(E.name).length;let Q=g+i+22,C=new Uint8Array(Q),a=new DataView(C.buffer),B=0;for(let E of t)E.offset=B,B=DU(C,a,B,E,e.get(E.name));let s=B;for(let E of t)B=fU(C,a,B,E,e.get(E.name));return yU(a,B,t.length,i,s),C}function cU(A){let r=[],I=new TextEncoder;for(let[B,s]of A){let E=yy(s);r.push({name:B,data:s,compressedData:s,crc:E,compressionMethod:0,offset:0})}let t=new Map;for(let B of r)t.set(B.name,I.encode(B.name));let o=0;for(let B of r)o+=30+t.get(B.name).length+B.compressedData.length;let e=0;for(let B of r)e+=46+t.get(B.name).length;let i=o+e+22,n=new Uint8Array(i),Q=new DataView(n.buffer),C=0;for(let B of r)B.offset=C,C=DU(n,Q,C,B,t.get(B.name));let a=C;for(let B of r)C=fU(n,Q,C,B,t.get(B.name));return yU(Q,C,r.length,e,a),n}function DU(A,r,I,t,o){return r.setUint32(I,67324752,!0),I+=4,r.setUint16(I,t.compressionMethod===8?20:10,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,t.compressionMethod,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,33,!0),I+=2,r.setUint32(I,t.crc,!0),I+=4,r.setUint32(I,t.compressedData.length,!0),I+=4,r.setUint32(I,t.data.length,!0),I+=4,r.setUint16(I,o.length,!0),I+=2,r.setUint16(I,0,!0),I+=2,A.set(o,I),I+=o.length,A.set(t.compressedData,I),I+=t.compressedData.length,I}function fU(A,r,I,t,o){return r.setUint32(I,33639248,!0),I+=4,r.setUint16(I,20,!0),I+=2,r.setUint16(I,t.compressionMethod===8?20:10,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,t.compressionMethod,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,33,!0),I+=2,r.setUint32(I,t.crc,!0),I+=4,r.setUint32(I,t.compressedData.length,!0),I+=4,r.setUint32(I,t.data.length,!0),I+=4,r.setUint16(I,o.length,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint32(I,0,!0),I+=4,r.setUint32(I,t.offset,!0),I+=4,A.set(o,I),I+=o.length,I}function yU(A,r,I,t,o){A.setUint32(r,101010256,!0),r+=4,A.setUint16(r,0,!0),r+=2,A.setUint16(r,0,!0),r+=2,A.setUint16(r,I,!0),r+=2,A.setUint16(r,I,!0),r+=2,A.setUint32(r,t,!0),r+=4,A.setUint32(r,o,!0),r+=4,A.setUint16(r,0,!0)}async function BO(A){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let r=new CompressionStream("deflate-raw"),I=new Uint8Array(A.length);I.set(A);let t=r.writable.getWriter();t.write(I),t.close();let o=r.readable.getReader(),e=[];for(;;){let{done:Q,value:C}=await o.read();if(Q)break;e.push(C)}let g=e.reduce((Q,C)=>Q+C.length,0),i=new Uint8Array(g),n=0;for(let Q of e)i.set(Q,n),n+=Q.length;return i}async function LC(A,r={}){let I=mU(A);return uU(I,{compress:r.compress??!1})}function HC(A){let r=mU(A);return cU(r)}function mU(A){let r=new Map;if(Array.isArray(A)){for(let t=0;t<A.length;t++){let o=A[t],e=DI(o);r.set(`arr_${t}.npy`,e)}return r}let I=A instanceof Map?A.entries():Object.entries(A);for(let[t,o]of I){if(typeof t!="string"||t.length===0)throw new Error("Array names must be non-empty strings");let e=DI(o),g=t.endsWith(".npy")?t:`${t}.npy`;r.set(g,e)}return r}function SI(A,r={}){let{delimiter:I,comments:t="#",skiprows:o=0,usecols:e,max_rows:g,dtype:i="float64",missing_values:n,filling_values:Q}=r,C=A.split(/\r?\n/);if(o>0&&(C=C.slice(o)),C=C.filter(u=>{let D=u.trim();return!(D===""||t&&D.startsWith(t))}),g!==void 0&&g>0&&(C=C.slice(0,g)),C.length===0)return BA([],i);let a=[],B=new Set(n?Array.isArray(n)?n:[n]:[]),s=Q!==void 0?Q:i.includes("int")||i==="bool"?0:NaN;for(let u of C){let D;I===void 0?D=u.trim().split(/\s+/):D=u.split(I),e!==void 0&&(D=(Array.isArray(e)?e:[e]).map(c=>(c<0&&(c=D.length+c),D[c]??"")));let y=D.map(f=>{let c=f.trim();if(B.has(c)||c==="")return s;let m=parseFloat(c);return isNaN(m)?s:m});a.push(y)}let E=a[0]?.length??0;for(let u=1;u<a.length;u++)if(a[u].length!==E)throw new Error(`Inconsistent number of columns: row 0 has ${E} columns, row ${u} has ${a[u].length} columns`);return E===1?BA(a.map(u=>u[0]),i):BA(a,i)}function ht(A,r={}){let I={...r,missing_values:r.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:r.filling_values??NaN};return SI(A,I)}function wt(A,r,I="float64"){let t=typeof r=="string"?new RegExp(r,"gm"):new RegExp(r.source,"gm"),o=[],e;for(;(e=t.exec(A))!==null;)if(e.length>1){let g=e.slice(1).map(i=>{let n=parseFloat(i);return isNaN(n)?0:n});o.push(g)}return o.length===0?BA([],I):o[0].length===1?BA(o.map(g=>g[0]),I):BA(o,I)}function lU(A,r){let I=typeof A=="bigint"?Number(A):A,t=r.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!t)return String(I);let[,o,e,g,i]=t,n=g!==void 0?parseInt(g,10):void 0,Q;switch(i){case"d":Q=Math.round(I).toString();break;case"f":Q=I.toFixed(n??6);break;case"e":Q=I.toExponential(n??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":Q=I.toExponential(n??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let C=n??6,a=Math.floor(Math.log10(Math.abs(I)));a>=-4&&a<C?(Q=I.toPrecision(C),Q.includes(".")&&(Q=Q.replace(/\.?0+$/,""))):Q=I.toExponential(C-1),i==="G"&&(Q=Q.toUpperCase());break}case"s":Q=String(I);break;default:Q=String(I)}if(e){let C=parseInt(e,10);if(Q.length<C){let a=" ".repeat(C-Q.length);o==="-"?Q=Q+a:Q=a+Q}}return o==="+"&&I>=0&&!Q.startsWith("-")&&(Q="+"+Q),Q}function dt(A,r={}){let{fmt:I="%.18e",delimiter:t=" ",newline:o=`
7
+ `,header:e,footer:g,comments:i="# "}=r;if(A.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let n=[];if(e!==void 0){let C=e.split(/\r?\n/);for(let a of C)a.startsWith(i.trimEnd())?n.push(a):n.push(i+a)}let Q=A.toArray();if(A.ndim===1)for(let C of Q)n.push(lU(C,I));else for(let C of Q){let a=C.map(B=>lU(B,I));n.push(a.join(t))}if(g!==void 0){let C=g.split(/\r?\n/);for(let a of C)a.startsWith(i.trimEnd())?n.push(a):n.push(i+a)}return n.join(o)+o}var sO="AGFzbQEAAAABogEbYAAAYAF/AGAAAX9gAAF8YAF/AX9gAn9/AGADf39/AGAEfn5+fgBgAAF+YAJ+fgF+YAR/f35+AGABfAF8YAJ8fAF8YAJ/fABgAnx/AXxgA39/fABgBH9/f38AYAR/f39+AGAEf398fABgBX9/fHx8AGABfAF+YAR/f358AGACfnwBfmAFf39+fn4AYAV/fn5+fgBgBX9/f39/AX9gAnx/AX8CDwEDZW52Bm1lbW9yeQIAEQNSUQABAgIDBAUGAQcIAwkKAQcBAwMLAwMFBQMDAwAFBQsLDA0ODw8FBQYQEBEPDw8SEhIPEwUSEg8SEhIUExIPFRYWEg8XDw8FBRgOGQsaCwwMCwYJAX8BQYCAwAALB4AJOwxtdDE5OTM3X2luaXQAAQ9tdDE5OTM3X2dlbnJhbmQAAhJtdDE5OTM3X3JhbmRvbV9mNjQABBFtdDE5OTM3X2dldF9zdGF0ZQAFEW10MTk5Mzdfc2V0X3N0YXRlAAYNc2VlZF9zZXF1ZW5jZQAHEnBjZzY0X2luaXRfZnJvbV9zcwAICnBjZzY0X2luaXQACQpwY2c2NF9zdGVwAAoQcGNnNjRfcmFuZG9tX2Y2NAALFHBjZzY0X2JvdW5kZWRfdWludDY0AAwXZmlsbF9ib3VuZGVkX3VpbnQ2NF9wY2cADQ9wY2c2NF9nZXRfc3RhdGUADg9wY2c2NF9zZXRfc3RhdGUADxNwY2c2NF9zZXRfc3RhdGVfcHRyABATc3RhbmRhcmRfbm9ybWFsX3BjZwARGHN0YW5kYXJkX2V4cG9uZW50aWFsX3BjZwAUGGZpbGxfc3RhbmRhcmRfbm9ybWFsX3BjZwAWHWZpbGxfc3RhbmRhcmRfZXhwb25lbnRpYWxfcGNnABcMbGVnYWN5X2dhdXNzABgbbGVnYWN5X3N0YW5kYXJkX2V4cG9uZW50aWFsABoSbGVnYWN5X2dhdXNzX3Jlc2V0ABsRZmlsbF9sZWdhY3lfZ2F1c3MAHCBmaWxsX2xlZ2FjeV9zdGFuZGFyZF9leHBvbmVudGlhbAAdFWxlZ2FjeV9zdGFuZGFyZF9nYW1tYQAeGmZpbGxfbGVnYWN5X3N0YW5kYXJkX2dhbW1hACMVZmlsbF9sZWdhY3lfY2hpc3F1YXJlACQTZmlsbF91bmlmb3JtX2Y2NF9tdAAl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gICAAAvUAQIBfwR+I4CAgIAAQRBrIgEkgICAgAAgACkCACECQQAgACkCGCIDQgGGQgGEIgQ3A4CKwYAAIAApAgghBUEAIAApAhBCAYYgA0I/iIQiAzcDiIrBgAAgASAEIAV8IgUgAyACfCAFIARUrXxCxeyz/sns98LDAEKku5n+0aC7sCMQyICAgABBACABKQMAIgIgBHwiBDcDkIrBgABBACABKQMIIAN8IAQgAlStfDcDmIrBgABBAEEAOgCgisGAAEEAQQA2AqSKwYAAIAFBEGokgICAgAALvgECAX8BfiOAgICAAEEQayIEJICAgIAAQQAgA0IBhiACQj+IhCIDNwOIisGAAEEAIAJCAYZCAYQiAjcDgIrBgAAgBCAAIAJ8IgUgASADfCAFIABUrXxCxeyz/sns98LDAEKku5n+0aC7sCMQyICAgABBACAEKQMAIgAgAnwiAjcDkIrBgABBACAEKQMIIAN8IAIgAFStfDcDmIrBgABBAEEAOgCgisGAAEEAQQA2AqSKwYAAIARBEGokgICAgAALmQECAX8CfiOAgICAAEEQayIAJICAgIAAIABBACkDkIrBgABBACkDmIrBgABCxeyz/sns98LDAEKku5n+0aC7sCMQyICAgABBACAAKQMAIgFBACkDgIrBgAB8IgI3A5CKwYAAQQAgACkDCEEAKQOIisGAAHwgAiABVK18IgE3A5iKwYAAIABBEGokgICAgAAgASAChSABQjqIigunAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgAEEAKQOQisGAAEEAKQOYisGAAELF7LP+yez3wsMAQqS7mf7RoLuwIxDIgICAAEEAIAApAwAiAUEAKQOAisGAAHwiAjcDkIrBgABBACAAKQMIQQApA4iKwYAAfCACIAFUrXwiATcDmIrBgAAgAEEQaiSAgICAACABIAKFIAFCOoiKQguIukQAAAAAAACgPKILrwgDA38HfgR/I4CAgIAAQfAAayICJICAgIAAAkAgAUIAUQ0AAkACQAJAAkAgAUL/////D1YNACABQv////8PUg0DQQAtAKCKwYAAIgNFDQFBACgCpIrBgAAhBAwCCyACQeAAakEAKQOQisGAAEEAKQOYisGAAELF7LP+yez3wsMAQqS7mf7RoLuwIxDIgICAAEEAIAIpA2AiBUEAKQOAisGAACIG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KQOAisGAACEKQQApA5iKwYAAIQRBACkDkIrBgAAhB0EALQCgisGAACEGQQAoAqSKwYAAIQsDQCAIQQF2IAhyIgFBAnYgAXIiAUEEdiABciIBQQh2IAFyIgFBEHYgAXIhDAJAAkAgBkEBcUUNACALIQEMAQsgAkEQaiAHIARCxeyz/sns98LDAEKku5n+0aC7sCMQyICAgABBACACKQMQIgQgCnwiBzcDkIrBgABBACACKQMYIAl8IAcgBFStfCIENwOYisGAAEEAIAQgB4UgBEI6iIoiA0IgiKciCzYCpIrBgAAgA6chAQsgBkEBcyEGAkAgASAMcSIBIAhNDQADQAJAAkAgBkEBcUUNACALIQEMAQsgAiAHIARCxeyz/sns98LDAEKku5n+0aC7sCMQyICAgABBACACKQMAIgQgCnwiBzcDkIrBgABBACACKQMIIAl8IAcgBFStfCIENwOYisGAAEEAIAQgB4UgBEI6iIoiA0IgiKciCzYCpIrBgAAgA6chAQsgBkEBcyEGIAEgDHEiASAISw0ACwsgACAIQQN0aiIMKQMAIQMgDCAAIAFBA3RqIgEpAwA3AwAgASADNwMAIAhBf2oiCA0AC0EAIAZBAXE6AKCKwYAACyACQSBqJICAgIAAC3UBAX4gACAEIAF+IAIgA358IANCIIgiAiABQiCIIgR+fCADQv////8PgyIDIAFC/////w+DIgF+IgVCIIggAyAEfnwiA0IgiHwgA0L/////D4MgAiABfnwiAUIgiHw3AwggACABQiCGIAVC/////w+DhDcDAAvOAgIDfgJ/AkACQCAAIABiDQAgAL0iAkL///////////8Ag0KAgICAgICA+P8AWg0AIAJCgICAgICAgICAf4MhA0ELIAJCAYYiBHmnayAEQjWIpyAEQoCAgICAgIAQVBshBQJAIAFBAEgNAAJAIAFB/g8gBWtMDQBEAAAAAAAA8H8gAKYPCwJAIAUgAWoiBkEASg0AIAIgAa2GIAOEvw8LAkAgBUEASg0AIAJBASAFa62GQv////////8HgyAGrUI0hoQgA4S/DwsgAa1CNIYgAny/DwtBACABayEGIAFBACAFa0oNAQJAIAFBTCAFa04NACADvw8LIAVBAEqtQjSGIAJC/////////weDhCAGQQEgASAFamsiASAGIAFIG0F/akE/ca0i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",$i=null;function nA(){if($i)return $i;let A=atob(sO),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);$i=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=$i.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),$i}function hU(A){nA().exports.mt19937_init(A)}function wU(){return nA().exports.mt19937_genrand()}function dU(){return nA().exports.mt19937_random_f64()}function bU(A){return nA().exports.mt19937_get_state(A)}function pU(A,r){nA().exports.mt19937_set_state(A,r)}function NU(A,r,I){nA().exports.seed_sequence(A,r,I)}function FU(A){nA().exports.pcg64_init_from_ss(A)}function GU(){return nA().exports.pcg64_random_f64()}function SU(A,r){return nA().exports.pcg64_bounded_uint64(BigInt(Math.round(A)),BigInt(Math.round(r)))}function RU(A,r,I,t){nA().exports.fill_bounded_uint64_pcg(A,r,BigInt(Math.round(I)),BigInt(Math.round(t)))}function kU(A){nA().exports.pcg64_get_state(A)}function qU(A){nA().exports.pcg64_set_state_ptr(A)}function MU(){return nA().exports.standard_normal_pcg()}function JU(){return nA().exports.standard_exponential_pcg()}function xU(A,r){nA().exports.fill_standard_normal_pcg(A,r)}function UU(A,r){nA().exports.fill_standard_exponential_pcg(A,r)}function LU(){return nA().exports.legacy_gauss()}function HU(){return nA().exports.legacy_standard_exponential()}function YU(){nA().exports.legacy_gauss_reset()}function PU(A,r){nA().exports.fill_legacy_gauss(A,r)}function _U(A,r){nA().exports.fill_legacy_standard_exponential(A,r)}function KU(A){return nA().exports.legacy_standard_gamma(A)}function vU(A,r,I){nA().exports.fill_legacy_standard_gamma(A,r,I)}function XU(A,r,I){nA().exports.fill_legacy_chisquare(A,r,I)}function TU(A,r){nA().exports.fill_uniform_f64_mt(A,r)}function OU(A,r){nA().exports.fill_uniform_f64_pcg(A,r)}function VU(A,r,I){nA().exports.fill_rk_interval(A,r,I)}function WU(A,r,I,t){nA().exports.fill_randint_u8(A,r,I,t)}function ZU(A,r,I,t){nA().exports.fill_randint_u16(A,r,I,t)}function zU(A,r,I,t){nA().exports.fill_randint_i64(A,r,I,BigInt(Math.round(t)))}function jU(A,r,I){nA().exports.fill_pareto(A,r,I)}function $U(A,r,I){nA().exports.fill_power(A,r,I)}function A2(A,r,I){nA().exports.fill_weibull(A,r,I)}function r2(A,r,I,t){nA().exports.fill_logistic(A,r,I,t)}function I2(A,r,I,t){nA().exports.fill_gumbel(A,r,I,t)}function t2(A,r,I,t){nA().exports.fill_laplace(A,r,I,t)}function o2(A,r,I){nA().exports.fill_rayleigh(A,r,I)}function e2(A,r,I,t,o){nA().exports.fill_triangular(A,r,I,t,o)}function g2(A,r){nA().exports.fill_standard_cauchy(A,r)}function i2(A,r,I,t){nA().exports.fill_lognormal(A,r,I,t)}function n2(A,r,I,t){nA().exports.fill_wald(A,r,I,t)}function Q2(A,r,I){nA().exports.fill_standard_t(A,r,I)}function C2(A,r,I,t){nA().exports.fill_beta(A,r,I,t)}function a2(A,r,I,t){nA().exports.fill_f(A,r,I,t)}function B2(A,r,I,t){nA().exports.fill_noncentral_chisquare(A,r,I,t)}function s2(A,r,I,t,o){nA().exports.fill_noncentral_f(A,r,I,t,o)}function E2(A,r,I,t){nA().exports.fill_vonmises(A,r,I,t)}function u2(A,r,I){nA().exports.fill_poisson(A,r,I)}function c2(A,r,I,t){nA().exports.fill_binomial(A,r,BigInt(Math.round(I)),t)}function D2(A,r,I,t){nA().exports.fill_negative_binomial(A,r,I,t)}function f2(A,r,I){nA().exports.fill_geometric(A,r,I)}function y2(A,r,I,t,o){nA().exports.fill_hypergeometric(A,r,BigInt(Math.round(I)),BigInt(Math.round(t)),BigInt(Math.round(o)))}function m2(A,r,I){nA().exports.fill_logseries(A,r,I)}function l2(A,r,I){nA().exports.fill_zipf(A,r,I)}function h2(A,r){nA().exports.fill_permutation(A,r)}function w2(A,r){nA().exports.fill_permutation_pcg(A,r)}function EA(A,r,I){let t=r.BYTES_PER_ELEMENT,o=A*t;x(o),U();let e=H(o);return I(e,A),_(e,A,r)}function d2(A){hU(A>>>0)}function YC(){return wU()}function DA(){return dU()}function b2(){x(624*4),U();let A=H(624*4),r=bU(A);return{mt:_(A,624,Uint32Array),mti:r}}function p2(A,r){x(624*4),U();let I=R(A);pU(I,r)}function N2(A){x(32),U();let r=H(32);NU(A>>>0,r,8),FU(r)}function xr(){return GU()}function bt(A,r){return SU(A,r)}function my(){return EA(6,BigUint64Array,(A,r)=>kU(A))}function F2(A){x(48),U();let r=R(A);qU(r)}var ly=MU,G2=JU,br=LU,pt=HU,hy=YU,wy=KU,PC=A=>EA(A,Float64Array,TU),dy=A=>EA(A,Float64Array,OU),by=A=>EA(A,Float64Array,xU),S2=A=>EA(A,Float64Array,UU),Nt=A=>EA(A,Float64Array,PU),R2=A=>EA(A,Float64Array,_U),k2=A=>EA(A,Float64Array,g2),q2=A=>EA(A,Float64Array,h2),py=A=>EA(A,BigInt64Array,w2),Ny=(A,r)=>EA(A,Float64Array,(I,t)=>vU(I,t,r)),M2=(A,r)=>EA(A,Float64Array,(I,t)=>XU(I,t,r)),J2=(A,r)=>EA(A,Float64Array,(I,t)=>jU(I,t,r)),x2=(A,r)=>EA(A,Float64Array,(I,t)=>$U(I,t,r)),U2=(A,r)=>EA(A,Float64Array,(I,t)=>A2(I,t,r)),L2=(A,r,I)=>EA(A,Float64Array,(t,o)=>r2(t,o,r,I)),H2=(A,r,I)=>EA(A,Float64Array,(t,o)=>I2(t,o,r,I)),Y2=(A,r,I)=>EA(A,Float64Array,(t,o)=>t2(t,o,r,I)),P2=(A,r)=>EA(A,Float64Array,(I,t)=>o2(I,t,r)),_2=(A,r,I,t)=>EA(A,Float64Array,(o,e)=>e2(o,e,r,I,t)),K2=(A,r,I)=>EA(A,Float64Array,(t,o)=>i2(t,o,r,I)),v2=(A,r,I)=>EA(A,Float64Array,(t,o)=>n2(t,o,r,I)),X2=(A,r)=>EA(A,Float64Array,(I,t)=>Q2(I,t,r)),T2=(A,r,I)=>EA(A,Float64Array,(t,o)=>C2(t,o,r,I)),O2=(A,r,I)=>EA(A,Float64Array,(t,o)=>a2(t,o,r,I)),V2=(A,r,I)=>EA(A,Float64Array,(t,o)=>B2(t,o,r,I)),W2=(A,r,I,t)=>EA(A,Float64Array,(o,e)=>s2(o,e,r,I,t)),Z2=(A,r,I)=>EA(A,Float64Array,(t,o)=>E2(t,o,r,I)),z2=(A,r)=>EA(A,BigInt64Array,(I,t)=>f2(I,t,r)),j2=(A,r)=>EA(A,BigInt64Array,(I,t)=>u2(I,t,r)),$2=(A,r,I)=>EA(A,BigInt64Array,(t,o)=>c2(t,o,r,I)),AL=(A,r,I)=>EA(A,BigInt64Array,(t,o)=>D2(t,o,r,I)),rL=(A,r,I,t)=>EA(A,BigInt64Array,(o,e)=>y2(o,e,r,I,t)),IL=(A,r)=>EA(A,BigInt64Array,(I,t)=>m2(I,t,r)),tL=(A,r)=>EA(A,BigInt64Array,(I,t)=>l2(I,t,r)),oL=(A,r)=>EA(A,Uint32Array,(I,t)=>VU(I,t,r)),eL=(A,r,I)=>EA(A,BigInt64Array,(t,o)=>zU(t,o,r,I)),gL=(A,r,I)=>EA(A,Uint8Array,(t,o)=>WU(t,o,r,I)),iL=(A,r,I)=>EA(A,Uint16Array,(t,o)=>ZU(t,o,r,I)),nL=(A,r,I)=>EA(A,BigInt64Array,(t,o)=>RU(t,o,r,I));var An=class{constructor(r){let I=r!==void 0?r:Math.floor(Math.random()*4294967296);N2(I),this._state=my()}_withState(r){F2(this._state);let I=r();return this._state=my(),I}random(r){return this._withState(()=>{if(r===void 0)return xr();let I=Array.isArray(r)?r:[r],t=I.reduce((e,g)=>e*g,1),o=dy(t);return d.fromData(new Float64Array(o),I,"float64")})}integers(r,I,t){return this._withState(()=>{I===void 0&&(I=r,r=0);let o=I-r-1;if(t===void 0)return Number(bt(r,o));let e=Array.isArray(t)?t:[t],g=e.reduce((n,Q)=>n*Q,1),i=nL(g,r,o);return d.fromData(new BigInt64Array(i),e,"int64")})}standard_normal(r){return this._withState(()=>{if(r===void 0)return ly();let I=Array.isArray(r)?r:[r],t=I.reduce((e,g)=>e*g,1),o=by(t);return d.fromData(new Float64Array(o),I,"float64")})}normal(r=0,I=1,t){return this._withState(()=>{if(t===void 0)return ly()*I+r;let o=Array.isArray(t)?t:[t],e=o.reduce((n,Q)=>n*Q,1),g=by(e),i=new Float64Array(e);for(let n=0;n<e;n++)i[n]=g[n]*I+r;return d.fromData(i,o,"float64")})}uniform(r=0,I=1,t){return this._withState(()=>{if(t===void 0)return xr()*(I-r)+r;let o=Array.isArray(t)?t:[t],e=o.reduce((Q,C)=>Q*C,1),g=dy(e),i=new Float64Array(e),n=I-r;for(let Q=0;Q<e;Q++)i[Q]=g[Q]*n+r;return d.fromData(i,o,"float64")})}choice(r,I,t=!0,o){return this._withState(()=>hL(r,I,t,o,xr,!0))}permutation(r){return this._withState(()=>KC(r,xr,!0))}shuffle(r){this._withState(()=>{bL(r,xr,!0)})}exponential(r=1,I){return this._withState(()=>{if(I===void 0)return G2()*r;let t=Array.isArray(I)?I:[I],o=t.reduce((i,n)=>i*n,1),e=S2(o),g=new Float64Array(o);for(let i=0;i<o;i++)g[i]=e[i]*r;return d.fromData(g,t,"float64")})}poisson(r=1,I){return this._withState(()=>{if(I===void 0)return Ft(r,xr);let t=Array.isArray(I)?I:[I],o=t.reduce((i,n)=>i*n,1),e=d.zeros(t,"int64"),g=e.data;for(let i=0;i<o;i++)g[i]=BigInt(Ft(r,xr));return e})}binomial(r,I,t){return this._withState(()=>{if(t===void 0)return _C(r,I,xr);let o=Array.isArray(t)?t:[t],e=o.reduce((n,Q)=>n*Q,1),g=d.zeros(o,"int64"),i=g.data;for(let n=0;n<e;n++)i[n]=BigInt(_C(r,I,xr));return g})}};function aL(A){return new An(A)}function BL(A){A==null&&(A=Math.floor(Date.now()^Math.random()*4294967296)),d2(A>>>0),hy()}function sL(){let{mt:A,mti:r}=b2();return{mt:Array.from(A),mti:r}}function EL(A){p2(new Uint32Array(A.mt),A.mti),hy()}function EO(A){if(A===0)return 0;let r=A;r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16;let I;do I=(YC()&r)>>>0;while(I>A);return I}function Xr(A){let r=[.08333333333333333,-.002777777777777778,.0007936507936507937,-.0005952380952380952,.0008417508417508418,-.001917526917526918,.00641025641025641,-.02955065359477124,.1796443723688307,-1.3924322169059];if(A===1||A===2)return 0;let I;A<7?I=Math.floor(7-A):I=0;let t=A+I,o=1/t*(1/t),e=1.8378770664093453,g=r[9];for(let n=8;n>=0;n--)g*=o,g+=r[n];let i=g/t+.5*e+(t-.5)*Math.log(t)-t;if(A<7)for(let n=1;n<=I;n++)i-=Math.log(t-1),t-=1;return i}function RI(A){return wy(A)}function Ur(A){return 2*RI(A/2)}function uO(A,r,I){let t=r+A-I,o=Math.min(r,A),e=o,g=I;for(;e>0;){let n=DA();if(e-=Math.floor(n+e/(t+g)),g--,g===0)break}let i=o-e;return A>r?I-i:i}function cO(A,r,I){let t=1.7155277699214135,o=.8989161620588988,e=Math.min(A,r),g=A+r,i=Math.max(A,r),n=Math.min(I,g-I),Q=e/g,C=1-Q,a=n*Q+.5,B=Math.sqrt((g-n)*I*Q*C/(g-1)+.5),s=t*B+o,E=Math.floor((n+1)*(e+1)/(g+2)),u=Xr(E+1)+Xr(e-E+1)+Xr(n-E+1)+Xr(i-n+E+1),D=Math.min(Math.min(n,e)+1,Math.floor(a+16*B)),y;for(;;){let f=DA(),c=DA(),m=a+s*(c-.5)/f;if(m<0||m>=D)continue;y=Math.floor(m);let l=u-(Xr(y+1)+Xr(e-y+1)+Xr(n-y+1)+Xr(i-n+y+1));if(f*(4-f)-3<=l)break;if(!(f*(f-l)>=1)&&2*Math.log(f)<=l)break}return A>r&&(y=n-y),n<I&&(y=A-y),y}function DO(A,r){let I=Math.exp(-A),t=0,o=1;for(;;){let e=r();if(o*=e,o>I)t+=1;else return t}}function fO(A,r){let I=Math.sqrt(A),t=Math.log(A),o=.931+2.53*I,e=-.059+.02483*o,g=1.1239+1.1328/(o-3.4),i=.9277-3.6224/(o-2);for(;;){let n=r()-.5,Q=r(),C=.5-Math.abs(n),a=Math.floor((2*e/C+o)*n+A+.43);if(C>=.07&&Q<=i)return a;if(!(a<0||C<.013&&Q>C)&&Math.log(Q)+Math.log(g)-Math.log(e/(C*C)+o)<=-A+a*t-Xr(a+1))return a}}function Ft(A,r){return A>=10?fO(A,r):A===0?0:DO(A,r)}function yO(){return{has_binomial:!1,nsave:0,psave:0,r:0,q:0,fm:0,m:0,p1:0,xm:0,xl:0,xr:0,c:0,laml:0,lamr:0,p2:0,p3:0,p4:0}}function QL(A,r,I,t){let o,e,g,i,n,Q,C,a,B,s,E,u,D,y,f,c,m,l,w,h,b,p,N,F,S,M,Y,L,v,Z,O,z,j,V;!t.has_binomial||t.nsave!==A||t.psave!==r?(t.nsave=A,t.psave=r,t.has_binomial=!0,t.r=o=Math.min(r,1-r),t.q=e=1-o,t.fm=g=A*o+o,t.m=z=Math.floor(g),t.p1=i=Math.floor(2.195*Math.sqrt(A*o*e)-4.6*e)+.5,t.xm=n=z+.5,t.xl=Q=n-i,t.xr=C=n+i,t.c=a=.134+20.5/(15.3+z),y=(g-Q)/(g-Q*o),t.laml=B=y*(1+y/2),y=(C-g)/(C*e),t.lamr=s=y*(1+y/2),t.p2=E=i*(1+2*a),t.p3=u=E+a/B,t.p4=D=u+a/s):(o=t.r,e=t.q,z=t.m,i=t.p1,n=t.xm,Q=t.xl,C=t.xr,a=t.c,B=t.laml,s=t.lamr,E=t.p2,u=t.p3,D=t.p4);A:for(;;){if(p=A*o*e,f=I()*D,c=I(),f<=i)j=Math.floor(n-i*c+f);else if(f<=E){if(O=Q+(f-i)/a,c=c*a+1-Math.abs(z-O+.5)/i,c>1)continue A;if(j=Math.floor(O),V=Math.abs(j-z),V>20&&V<p/2-1){if(w=V/p*((V*(V/3+.625)+.16666666666666666)/p+.5),h=-V*V/(2*p),b=Math.log(c),!(b<h-w)){if(b>h+w)continue A;if(N=j+1,S=z+1,Y=A+1-z,v=A-j+1,F=N*N,M=S*S,L=Y*Y,Z=v*v,b>n*Math.log(S/N)+(A-z+.5)*Math.log(Y/v)+(j-z)*Math.log(v*o/(N*e))+(13680-(462-(132-(99-140/M)/M)/M)/M)/S/166320+(13680-(462-(132-(99-140/L)/L)/L)/L)/Y/166320+(13680-(462-(132-(99-140/F)/F)/F)/F)/N/166320+(13680-(462-(132-(99-140/Z)/Z)/Z)/Z)/v/166320)continue A}}else{if(m=o/e,y=m*(A+1),l=1,z<j)for(let rA=z+1;rA<=j;rA++)l*=y/rA-m;else if(z>j)for(let rA=j+1;rA<=z;rA++)l/=y/rA-m;if(c>l)continue A}}else if(f<=u){if(j=Math.floor(Q+Math.log(c)/B),j<0||c===0)continue A;if(c=c*(f-E)*B,V=Math.abs(j-z),V>20&&V<p/2-1){if(w=V/p*((V*(V/3+.625)+.16666666666666666)/p+.5),h=-V*V/(2*p),b=Math.log(c),!(b<h-w)){if(b>h+w)continue A;if(N=j+1,S=z+1,Y=A+1-z,v=A-j+1,F=N*N,M=S*S,L=Y*Y,Z=v*v,b>n*Math.log(S/N)+(A-z+.5)*Math.log(Y/v)+(j-z)*Math.log(v*o/(N*e))+(13680-(462-(132-(99-140/M)/M)/M)/M)/S/166320+(13680-(462-(132-(99-140/L)/L)/L)/L)/Y/166320+(13680-(462-(132-(99-140/F)/F)/F)/F)/N/166320+(13680-(462-(132-(99-140/Z)/Z)/Z)/Z)/v/166320)continue A}}else{if(m=o/e,y=m*(A+1),l=1,z<j)for(let rA=z+1;rA<=j;rA++)l*=y/rA-m;else if(z>j)for(let rA=j+1;rA<=z;rA++)l/=y/rA-m;if(c>l)continue A}}else{if(j=Math.floor(C-Math.log(c)/s),j>A||c===0)continue A;if(c=c*(f-u)*s,V=Math.abs(j-z),V>20&&V<p/2-1){if(w=V/p*((V*(V/3+.625)+.16666666666666666)/p+.5),h=-V*V/(2*p),b=Math.log(c),!(b<h-w)){if(b>h+w)continue A;if(N=j+1,S=z+1,Y=A+1-z,v=A-j+1,F=N*N,M=S*S,L=Y*Y,Z=v*v,b>n*Math.log(S/N)+(A-z+.5)*Math.log(Y/v)+(j-z)*Math.log(v*o/(N*e))+(13680-(462-(132-(99-140/M)/M)/M)/M)/S/166320+(13680-(462-(132-(99-140/L)/L)/L)/L)/Y/166320+(13680-(462-(132-(99-140/F)/F)/F)/F)/N/166320+(13680-(462-(132-(99-140/Z)/Z)/Z)/Z)/v/166320)continue A}}else{if(m=o/e,y=m*(A+1),l=1,z<j)for(let rA=z+1;rA<=j;rA++)l*=y/rA-m;else if(z>j)for(let rA=j+1;rA<=z;rA++)l/=y/rA-m;if(c>l)continue A}}return r>.5&&(j=A-j),j}}function CL(A,r,I,t){let o,e,g,i,n,Q,C;for(!t.has_binomial||t.nsave!==A||t.psave!==r?(t.nsave=A,t.psave=r,t.has_binomial=!0,t.q=o=1-r,t.r=e=Math.exp(A*Math.log(o)),t.c=g=A*r,t.m=C=Math.min(A,Math.floor(g+10*Math.sqrt(g*o+1)))):(o=t.q,e=t.r,C=t.m),Q=0,i=e,n=I();n>i;)Q++,Q>C?(Q=0,i=e,n=I()):(n-=i,i=(A-Q+1)*r*i/(Q*o));return Q}function _C(A,r,I){if(A===0||r===0)return 0;let t=yO();if(r<=.5)return r*A<=30?CL(A,r,I,t):QL(A,r,I,t);{let o=1-r;return o*A<=30?A-CL(A,o,I,t):A-QL(A,o,I,t)}}function In(A){if(A===void 0)return DA();let r=Array.isArray(A)?A:[A],I=r.reduce((o,e)=>o*e,1),t=PC(I);return d.fromData(new Float64Array(t),r,"float64")}function uL(...A){if(A.length===0)return DA();let r=A.reduce((t,o)=>t*o,1),I=PC(r);return d.fromData(new Float64Array(I),A,"float64")}function cL(...A){if(A.length===0)return br();let r=A.reduce((t,o)=>t*o,1),I=Nt(r);return d.fromData(new Float64Array(I),A,"float64")}function rn(A,r,I,t="int64"){r==null&&(r=A,A=0);let e=r-A-1;if(I===void 0)return EO(e)+A;let g=Array.isArray(I)?I:[I],i=g.reduce((n,Q)=>n*Q,1);if(t==="int8"||t==="uint8"){let n=gL(i,e,A),Q=d.zeros(g,t);return Q.data.set(t==="int8"?new Int8Array(n.buffer):n),Q}else if(t==="int16"||t==="uint16"){let n=iL(i,e,A),Q=d.zeros(g,t);return Q.data.set(t==="int16"?new Int16Array(n.buffer):n),Q}else if(P(t)){let n=eL(i,e,A);return d.fromData(new BigInt64Array(n),g,t)}else{let n=oL(i,e),Q=d.zeros(g,t),C=Q.data;for(let a=0;a<i;a++)C[a]=n[a]+A;return Q}}function DL(A=0,r=1,I){if(I===void 0)return DA()*(r-A)+A;let t=Array.isArray(I)?I:[I],o=t.reduce((n,Q)=>n*Q,1),e=PC(o),g=new Float64Array(o),i=r-A;for(let n=0;n<o;n++)g[n]=e[n]*i+A;return d.fromData(g,t,"float64")}function fL(A=0,r=1,I){if(I===void 0)return br()*r+A;let t=Array.isArray(I)?I:[I],o=t.reduce((i,n)=>i*n,1),e=Nt(o),g=new Float64Array(o);for(let i=0;i<o;i++)g[i]=e[i]*r+A;return d.fromData(g,t,"float64")}function yL(A){if(A===void 0)return br();let r=Array.isArray(A)?A:[A],I=r.reduce((o,e)=>o*e,1),t=Nt(I);return d.fromData(new Float64Array(t),r,"float64")}function Fy(A=1,r){if(r===void 0)return pt()*A;let I=Array.isArray(r)?r:[r],t=I.reduce((g,i)=>g*i,1),o=R2(t),e=new Float64Array(t);for(let g=0;g<t;g++)e[g]=o[g]*A;return d.fromData(e,I,"float64")}function mL(A=1,r){if(r===void 0)return Ft(A,DA);let I=Array.isArray(r)?r:[r],t=I.reduce((e,g)=>e*g,1),o=j2(t,A);return d.fromData(new BigInt64Array(o),I,"int64")}function lL(A,r,I){if(I===void 0)return _C(A,r,DA);let t=Array.isArray(I)?I:[I],o=t.reduce((g,i)=>g*i,1),e=$2(o,A,r);return d.fromData(new BigInt64Array(e),t,"int64")}function hL(A,r,I=!0,t,o=DA,e=!1){let g=typeof A=="number"?A:A.size;if(typeof A=="number"&&I&&t===void 0){if(g===0)throw new Error("cannot take a sample from an empty sequence");if(e){if(r===void 0)return Number(bt(0,g-1));let s=Array.isArray(r)?r:[r],E=s.reduce((y,f)=>y*f,1),u=d.zeros(s,"int64"),D=u.data;for(let y=0;y<E;y++)D[y]=bt(0,g-1);return u}return r===void 0?rn(0,g):rn(0,g,Array.isArray(r)?r:[r])}let i;if(typeof A=="number")i=Array.from({length:A},(s,E)=>E);else{i=[];for(let s=0;s<g;s++)i.push(Number(A.iget(s)))}if(g===0)throw new Error("cannot take a sample from an empty sequence");let n;if(t!==void 0){if(Array.isArray(t))n=t;else{let E=t.size;n=[];for(let u=0;u<E;u++)n.push(Number(t.iget(u)))}if(n.length!==g)throw new Error("p and a must have the same size");let s=n.reduce((E,u)=>E+u,0);Math.abs(s-1)>1e-10&&(n=n.map(E=>E/s))}if(r===void 0){if(n){let s=o(),E=0;for(let u=0;u<g;u++)if(E+=n[u],s<E)return i[u];return i[g-1]}return i[Math.floor(o()*g)]}let Q=Array.isArray(r)?r:[r],C=Q.reduce((s,E)=>s*E,1);if(!I&&C>g)throw new Error("cannot take a larger sample than population when replace=false");let a=d.zeros(Q,"float64"),B=a.data;if(I)if(n){let s=new Array(g);s[0]=n[0];for(let E=1;E<g;E++)s[E]=s[E-1]+n[E];for(let E=0;E<C;E++){let u=o(),D=0;for(;D<g-1&&u>=s[D];)D++;B[E]=i[D]}}else for(let s=0;s<C;s++)B[s]=i[Math.floor(o()*g)];else if(n){let s=[...i],E=[...n];for(let u=0;u<C;u++){let D=E.reduce((m,l)=>m+l,0),y=o()*D,f=0,c=0;for(let m=0;m<s.length;m++)if(f+=E[m],y<f){c=m;break}c===0&&y>=f&&(c=s.length-1),B[u]=s[c],s.splice(c,1),E.splice(c,1)}}else if(e)if(g>1e4&&C>g/50){let E=py(g);for(let u=0;u<C;u++){let D=Number(E[g-C+u]);typeof A=="number"?B[u]=D:B[u]=Number(A.iget(D))}}else{let E=new Array(C),u=new Set;for(let D=g-C;D<g;D++){let y=Number(bt(0,D));u.has(y)?(u.add(D),E[D-(g-C)]=D):(u.add(y),E[D-(g-C)]=y)}for(let D=C-1;D>0;D--){let y=Number(bt(0,D)),f=E[D];E[D]=E[y],E[y]=f}for(let D=0;D<C;D++)typeof A=="number"?B[D]=E[D]:B[D]=Number(A.iget(E[D]))}else{let E=KC(g,o,!1).data;for(let u=0;u<C;u++){let D=Number((E instanceof BigInt64Array,E[u]));typeof A=="number"?B[u]=D:B[u]=Number(A.iget(D))}}return a}function wL(A,r,I=!0,t){return hL(A,r,I,t,DA)}function KC(A,r=DA,I=!1){if(typeof A=="number"){if(I){let e=py(A);return d.fromData(new BigInt64Array(e),[A],"int64")}if(r===DA){let e=q2(A);return d.fromData(new Float64Array(e),[A],"float64")}}let t;if(typeof A=="number"){let e=new Float64Array(A);for(let g=0;g<A;g++)e[g]=g;t=d.fromData(e,[A],"float64")}else t=A.copy();let o=t.size;for(let e=o-1;e>0;e--){let g=Math.floor(r()*(e+1)),i=t.iget(e);t.iset(e,t.iget(g)),t.iset(g,i)}return t}function dL(A){return KC(A,DA)}function bL(A,r=DA,I=!1){let t=A.size;if(t<=1)return;let e=KC(t,r,I).data,g=new Array(t);for(let i=0;i<t;i++)g[i]=A.iget(i);for(let i=0;i<t;i++){let n=Number((e instanceof BigInt64Array,e[i]));A.iset(i,g[n])}}function pL(A){bL(A,DA)}function NL(A){return In(A)}function FL(A){return In(A)}function GL(A){return In(A)}function SL(A,r,I){return r===void 0&&(r=A,A=1),rn(A,r+1,I)}function RL(A){let r=new Uint8Array(A),I=0;for(;I+3<A;I+=4){let t=YC();r[I]=t&255,r[I+1]=t>>>8&255,r[I+2]=t>>>16&255,r[I+3]=t>>>24&255}if(I<A){let t=YC();for(;I<A;I++,t>>>=8)r[I]=t&255}return r}var kL={name:"MT19937",state:{}};function qL(){return kL}function ML(A){kL=A}function JL(A){return Fy(1,A)}function xL(A,r){if(A<=0)throw new Error("shape must be positive");if(r===void 0)return RI(A);let I=Array.isArray(r)?r:[r],t=I.reduce((e,g)=>e*g,1),o=Ny(t,A);return d.fromData(new Float64Array(o),I,"float64")}function UL(A){if(A===void 0)return br()/br();let r=Array.isArray(A)?A:[A],I=r.reduce((o,e)=>o*e,1),t=k2(I);return d.fromData(new Float64Array(t),r,"float64")}function LL(A,r){if(A<=0)throw new Error("df must be positive");let I=()=>{let g=br(),i=RI(A/2);return Math.sqrt(A/2)*g/Math.sqrt(i)};if(r===void 0)return I();let t=Array.isArray(r)?r:[r],o=t.reduce((g,i)=>g*i,1),e=X2(o,A);return d.fromData(new Float64Array(e),t,"float64")}function HL(A,r=1,I){if(A<=0)throw new Error("shape must be positive");if(r<=0)throw new Error("scale must be positive");if(I===void 0)return r*RI(A);let t=Array.isArray(I)?I:[I],o=t.reduce((i,n)=>i*n,1),e=Ny(o,A),g=new Float64Array(o);for(let i=0;i<o;i++)g[i]=e[i]*r;return d.fromData(g,t,"float64")}function YL(A,r,I){if(A<=0||r<=0)throw new Error("a and b must be positive");let t=()=>{if(A<=1&&r<=1)for(;;){let i=DA(),n=DA(),Q=Math.pow(i,1/A),C=Math.pow(n,1/r);if(Q+C<=1){if(Q+C>0)return Q/(Q+C);{let a=Math.log(i)/A,B=Math.log(n)/r,s=a>B?a:B,E=a-s,u=B-s;return Math.exp(E-Math.log(Math.exp(E)+Math.exp(u)))}}}else{let i=RI(A),n=RI(r);return i/(i+n)}};if(I===void 0)return t();let o=Array.isArray(I)?I:[I],e=o.reduce((i,n)=>i*n,1),g=T2(e,A,r);return d.fromData(new Float64Array(g),o,"float64")}function PL(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let t=()=>{for(;;){let i=DA();if(i>=.5)return A-r*Math.log(2-i-i);if(i>0)return A+r*Math.log(i+i)}};if(I===void 0)return t();let o=Array.isArray(I)?I:[I],e=o.reduce((i,n)=>i*n,1),g=Y2(e,A,r);return d.fromData(new Float64Array(g),o,"float64")}function _L(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let t=()=>{for(;;){let i=DA();if(i>0)return A+r*Math.log(i/(1-i))}};if(I===void 0)return t();let o=Array.isArray(I)?I:[I],e=o.reduce((i,n)=>i*n,1),g=L2(e,A,r);return d.fromData(new Float64Array(g),o,"float64")}function KL(A=0,r=1,I){if(r<=0)throw new Error("sigma must be positive");if(I===void 0)return Math.exp(br()*r+A);let t=Array.isArray(I)?I:[I],o=t.reduce((g,i)=>g*i,1),e=K2(o,A,r);return d.fromData(new Float64Array(e),t,"float64")}function vL(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let t=()=>{for(;;){let i=1-DA();if(i<1)return A-r*Math.log(-Math.log(i))}};if(I===void 0)return t();let o=Array.isArray(I)?I:[I],e=o.reduce((i,n)=>i*n,1),g=H2(e,A,r);return d.fromData(new Float64Array(g),o,"float64")}function XL(A,r){if(A<=0)throw new Error("a must be positive");let I=()=>Math.exp(pt()/A)-1;if(r===void 0)return I();let t=Array.isArray(r)?r:[r],o=t.reduce((g,i)=>g*i,1),e=J2(o,A);return d.fromData(new Float64Array(e),t,"float64")}function TL(A,r){if(A<=0)throw new Error("a must be positive");let I=()=>Math.pow(1-Math.exp(-pt()),1/A);if(r===void 0)return I();let t=Array.isArray(r)?r:[r],o=t.reduce((g,i)=>g*i,1),e=x2(o,A);return d.fromData(new Float64Array(e),t,"float64")}function OL(A=1,r){if(A<=0)throw new Error("scale must be positive");if(r===void 0)return A*Math.sqrt(2*pt());let I=Array.isArray(r)?r:[r],t=I.reduce((e,g)=>e*g,1),o=P2(t,A);return d.fromData(new Float64Array(o),I,"float64")}function VL(A,r,I,t){if(A>r||r>I||A===I)throw new Error("must have left <= mode <= right and left < right");let o=I-A,e=r-A,g=e/o,i=e*o,n=(I-r)*o,Q=()=>{let s=DA();return s<=g?A+Math.sqrt(s*i):I-Math.sqrt((1-s)*n)};if(t===void 0)return Q();let C=Array.isArray(t)?t:[t],a=C.reduce((s,E)=>s*E,1),B=_2(a,A,r,I);return d.fromData(new Float64Array(B),C,"float64")}function WL(A,r,I){if(A<=0)throw new Error("mean must be positive");if(r<=0)throw new Error("scale must be positive");let t=()=>{let i=A/(2*r),n=br();n=A*n*n;let Q=A+i*(n-Math.sqrt(4*r*n+n*n));return DA()<=A/(A+Q)?Q:A*A/Q};if(I===void 0)return t();let o=Array.isArray(I)?I:[I],e=o.reduce((i,n)=>i*n,1),g=v2(e,A,r);return d.fromData(new Float64Array(g),o,"float64")}function ZL(A,r){if(A<=0)throw new Error("a must be positive");let I=()=>A===0?0:Math.pow(pt(),1/A);if(r===void 0)return I();let t=Array.isArray(r)?r:[r],o=t.reduce((g,i)=>g*i,1),e=U2(o,A);return d.fromData(new Float64Array(e),t,"float64")}function zL(A,r){if(A<=0)throw new Error("df must be positive");if(r===void 0)return Ur(A);let I=Array.isArray(r)?r:[r],t=I.reduce((e,g)=>e*g,1),o=M2(t,A);return d.fromData(new Float64Array(o),I,"float64")}function jL(A,r,I){if(A<=0)throw new Error("df must be positive");if(r<0)throw new Error("nonc must be non-negative");let t=()=>{if(r===0)return Ur(A);if(1<A){let i=Ur(A-1),n=br()+Math.sqrt(r);return i+n*n}else{let i=Ft(r/2,DA);return Ur(A+2*i)}};if(I===void 0)return t();let o=Array.isArray(I)?I:[I],e=o.reduce((i,n)=>i*n,1),g=V2(e,A,r);return d.fromData(new Float64Array(g),o,"float64")}function $L(A,r,I){if(A<=0)throw new Error("dfnum must be positive");if(r<=0)throw new Error("dfden must be positive");let t=()=>{let i=Ur(A)*r,n=Ur(r)*A;return i/n};if(I===void 0)return t();let o=Array.isArray(I)?I:[I],e=o.reduce((i,n)=>i*n,1),g=O2(e,A,r);return d.fromData(new Float64Array(g),o,"float64")}function AH(A,r,I,t){if(A<=0)throw new Error("dfnum must be positive");if(r<=0)throw new Error("dfden must be positive");if(I<0)throw new Error("nonc must be non-negative");let o=()=>{if(I===0)return Ur(A);if(1<A){let Q=Ur(A-1),C=br()+Math.sqrt(I);return Q+C*C}else{let Q=Ft(I/2,DA);return Ur(A+2*Q)}},e=()=>o()*r/(Ur(r)*A);if(t===void 0)return e();let g=Array.isArray(t)?t:[t],i=g.reduce((Q,C)=>Q*C,1),n=W2(i,A,r,I);return d.fromData(new Float64Array(n),g,"float64")}function rH(A,r){if(A<=0||A>1)throw new Error("p must be in (0, 1]");let I=()=>{if(A>=1/3){let g=1,i=A,n=A,Q=1-A,C=DA();for(;C>i;)n*=Q,i+=n,g++;return g}else return Math.ceil(Math.log1p(-DA())/Math.log(1-A))};if(r===void 0)return I();let t=Array.isArray(r)?r:[r],o=t.reduce((g,i)=>g*i,1),e=z2(o,A);return d.fromData(new BigInt64Array(e),t,"int64")}function IH(A,r,I,t){if(A<0)throw new Error("ngood must be non-negative");if(r<0)throw new Error("nbad must be non-negative");if(I<0)throw new Error("nsample must be non-negative");if(I>A+r)throw new Error("nsample must be <= ngood + nbad");let o=()=>I>10?cO(A,r,I):I>0?uO(A,r,I):0;if(t===void 0)return o();let e=Array.isArray(t)?t:[t],g=e.reduce((n,Q)=>n*Q,1),i=rL(g,A,r,I);return d.fromData(new BigInt64Array(i),e,"int64")}function tH(A,r){if(A<=0||A>=1)throw new Error("p must be in (0, 1)");let I=Math.log(1-A),t=()=>{for(;;){let i=DA();if(i>=A)return 1;let n=DA(),Q=1-Math.exp(I*n);if(i<=Q*Q){let C=Math.floor(1+Math.log(i)/Math.log(Q));if(C<1||i===0)continue;return C}return i>=Q?1:2}};if(r===void 0)return t();let o=Array.isArray(r)?r:[r],e=o.reduce((i,n)=>i*n,1),g=IL(e,A);return d.fromData(new BigInt64Array(g),o,"int64")}function oH(A,r,I){if(A<=0)throw new Error("n must be positive");if(r<=0||r>1)throw new Error("p must be in (0, 1]");let t=()=>{if(r===1)return 0;let i=RI(A)*((1-r)/r);return Ft(i,DA)};if(I===void 0)return t();let o=Array.isArray(I)?I:[I],e=o.reduce((i,n)=>i*n,1),g=AL(e,A,r);return d.fromData(new BigInt64Array(g),o,"int64")}function eH(A,r){if(A<=1)throw new Error("a must be > 1");let I=A-1,t=Math.pow(2,I),o=9007199254740991,e=()=>{for(;;){let Q=1-DA(),C=DA(),a=Math.floor(Math.pow(Q,-1/I));if(a>o||a<1)continue;let B=Math.pow(1+1/a,I);if(C*a*(B-1)/(t-1)<=B/t)return a}};if(r===void 0)return e();let g=Array.isArray(r)?r:[r],i=g.reduce((Q,C)=>Q*C,1),n=tL(i,A);return d.fromData(new BigInt64Array(n),g,"int64")}function gH(A,r,I){let t=Array.isArray(r)?r:Array.from({length:r.size},(s,E)=>Number(r.iget(E))),o=t.length;if(o===0)throw new Error("pvals must have at least one element");let e=t.reduce((s,E)=>s+E,0),g=t.map(s=>s/e),i=()=>{let s=new Array(o).fill(0),E=A,u=1;for(let D=0;D<o-1;D++){let y=_C(E,g[D]/u,DA);if(s[D]=y,E-=y,E<=0)break;u-=g[D]}return E>0&&(s[o-1]=E),s};if(I===void 0){let s=i(),E=d.zeros([o],"int64"),u=E.data;for(let D=0;D<o;D++)u[D]=BigInt(s[D]);return E}let n=Array.isArray(I)?I:[I],Q=n.reduce((s,E)=>s*E,1),C=[...n,o],a=d.zeros(C,"int64"),B=a.data;for(let s=0;s<Q;s++){let E=i();for(let u=0;u<o;u++)B[s*o+u]=BigInt(E[u])}return a}function iH(A,r,I,t="warn",o=1e-8){let e=Array.isArray(A)?A:Array.from({length:A.size},(m,l)=>Number(A.iget(l))),g=e.length,i;if(Array.isArray(r))i=r;else{i=[];for(let m=0;m<g;m++){i.push([]);for(let l=0;l<g;l++)i[m].push(Number(r.iget(m*g+l)))}}let n=d.fromData(new Float64Array(i.flat()),[g,g],"float64"),{s:Q,vt:C}=WI(n,!0,!0),a=C.data,B=Q.data;for(let m=0;m<g;m++)if(B[m]<-o){if(t==="raise")throw new Error("covariance matrix is not positive semi-definite");t==="warn"&&console.warn("covariance matrix is not positive semi-definite")}let s=a,E=new Float64Array(g);for(let m=0;m<g;m++)E[m]=Math.sqrt(Math.max(0,B[m]));if(I===void 0){let m=Nt(g),l=d.zeros([g],"float64"),w=l.data;for(let h=0;h<g;h++){let b=e[h];for(let p=0;p<g;p++)b+=m[p]*E[p]*s[p*g+h];w[h]=b}return l}let u=Array.isArray(I)?I:[I],D=u.reduce((m,l)=>m*l,1),y=[...u,g],f=Nt(D*g),c=new Float64Array(D*g);for(let m=0;m<D;m++){let l=m*g;for(let w=0;w<g;w++){let h=e[w];for(let b=0;b<g;b++)h+=f[l+b]*E[b]*s[b*g+w];c[l+w]=h}}return d.fromData(c,y,"float64")}function nH(A,r){let I=Array.isArray(A)?A:Array.from({length:A.size},(Q,C)=>Number(A.iget(C))),t=I.length;if(t<2)throw new Error("alpha must have at least 2 elements");for(let Q of I)if(Q<=0)throw new Error("all alpha values must be positive");let o=(Q,C)=>{let a=0;for(let B=0;B<t;B++){let s=wy(I[B]);Q[C+B]=s,a+=s}for(let B=0;B<t;B++)Q[C+B]=Q[C+B]/a};if(r===void 0){let Q=new Float64Array(t);return o(Q,0),d.fromData(Q,[t],"float64")}let e=Array.isArray(r)?r:[r],g=e.reduce((Q,C)=>Q*C,1),i=[...e,t],n=new Float64Array(g*t);for(let Q=0;Q<g;Q++)o(n,Q*t);return d.fromData(n,i,"float64")}function QH(A,r,I){if(r<0)throw new Error("kappa must be non-negative");let t=()=>{if(r<1e-8)return Math.PI*(2*DA()-1);let i;if(r<1e-5)i=1/r+r;else{let s=1+Math.sqrt(1+4*r*r),E=(s-Math.sqrt(2*s))/(2*r);i=(1+E*E)/(2*E)}let n;for(;;){let s=DA(),E=Math.cos(Math.PI*s);n=(1+i*E)/(i+E);let u=r*(i-n),D=DA();if(u*(2-u)-D>=0||Math.log(u/D)+1-u>=0)break}let Q=DA(),C=Math.acos(n);Q<.5&&(C=-C),C+=A;let a=C<0,B=Math.abs(C);return B=(B+Math.PI)%(2*Math.PI)-Math.PI,a&&(B*=-1),B};if(I===void 0)return t();let o=Array.isArray(I)?I:[I],e=o.reduce((i,n)=>i*n,1),g=Z2(e,A,r);return d.fromData(new Float64Array(g),o,"float64")}var lO="AGFzbQEAAAABVQxgAX8Bf2AEf39/fwBgBX9/f39/AGAGf39/f39/AGADf39/AGAHf39/f39/fwBgA39/fwF/YAJ/fwF/YAJ8fwF8YAV/f39/fwF/YAF8AXxgAnx/AX8CDwEDZW52Bm1lbW9yeQIAEQMjIgABAgMCBAEBAQEBAgIBBQUABQUGAgICAgcCAwcHCAkKCwoGCQF/AUGAgMAACwfNAhUQZmZ0X3NjcmF0Y2hfc2l6ZQAACGZmdF9jMTI4AAEJaWZmdF9jMTI4AAYHZmZ0X2M2NAAHCGlmZnRfYzY0AAgIcmZmdF9mNjQACQlpcmZmdF9mNjQACw5yZmZ0X2JhdGNoX2Y2NAAOD2lyZmZ0X2JhdGNoX2Y2NAAPF3JmZnRfYmF0Y2hfc2NyYXRjaF9zaXplABAJaXJmZnRuXzNkABEWaXJmZnRuXzNkX3NjcmF0Y2hfc2l6ZQATDmZmdF9iYXRjaF9jMTI4ABQPaWZmdF9iYXRjaF9jMTI4ABUJZmZ0Ml9jMTI4ABYKaWZmdDJfYzEyOAAXEWZmdDJfc2NyYXRjaF9zaXplABgJcmZmdDJfZjY0ABkKaXJmZnQyX2Y2NAAaE2lyZmZ0Ml9zY3JhdGNoX3NpemUAGxJyZmZ0Ml9zY3JhdGNoX3NpemUAHAqyowIimAEBAn9BACEBAkAgAEECSQ0AIAAhAgNAIAIiAUEBdiECIAFBAXFFDQALAkAgAUEDcA0AA0AgAUEDbiIBQQNwRQ0ACwsCQCABQQVwDQADQCABQQVuIgFBBXBFDQALCwJAIAFBAUcNACAAQQZsDwsgAEEBdEF/aiEAQQEhAQNAIAEiAkEBdCEBIAIgAEkNAAsgAkEGbCEBCyABCxIAIAAgASACIANBABCCgICAAAuvAwQEfwR8AX8CfAJAAkACQAJAIANBAkkNACADIQUDQCAFIgZBAXYhBSAGQQFxRQ0ACyAGQQNwRQ0BDAILIANBAUcNAiABIAArAwA5AwAgASAAKwMIOQMIDwsDQCAGQQNuIgZBA3BFDQALCwJAIAZBBXANAANAIAZBBW4iBkEFcEUNAAsLAkAgBkEBRw0AIAIgA0EFdCIHaiII/QwAAAAAAADwPwAAAAAAAAAA/QsDACADuCEJQQAhBgNAIAZBAWoiBiAGbCADSQ0AC0QYLURU+yEZQEQYLURU+yEZwCAEQQFxGyIKIAmjIgsQoYCAgAAhDCALEJ+AgIAAIQtBASEFA0ACQAJAIAUgBnANACACIAdqIg1BGGogCiAFuKIgCaMiDhChgICAADkDACANQRBqIA4Qn4CAgAA5AwAMAQsgAiAHaiINQRhqIAwgDSsDACIOoiALIA1BCGorAwAiD6KgOQMAIA1BEGogCyAOoiAMIA+ioTkDAAsgB0EQaiEHIAMgBUEBaiIFRw0ACyAAIAEgAiAIIAMgBBCDgICAAA8LIAAgASADIAQgAhCEgICAAAsLkDAQC38DfAF/AXwMfwF7AX8Bewd8Bn8CewZ8AnsGfAZ/CXwjgICAgABBgBFrIgYkgICAgAACQAJAAkAgBEECSQ0AQQAhByAEIQggBEEHcQ0BQQAhCSAGQYABaiEKIAQhCwNAIApBCDYCACALQQN2IQggCUEBaiEHIAtBOHENAiAKQQRqIQogCUEfSSEMIAchCSAIIQsgDA0ADAILCyABIAArAwA5AwAgASAAKwMIOQMIDAELAkACQCAIQQNxDQAgB0EfSw0AIAZBgAFqIAdBAnRqIQoDQCAKQQQ2AgAgCEECdiEJIAdBAWohCyAHQR5LDQIgCEEMcSEMIApBBGohCiALIQcgCSEIIAwNAgwACwsgCCEJIAchCwsCQAJAIAlBAXENACALQR9LDQAgBkGAAWogC0ECdGohCgNAIApBAjYCACAJQQF2IQcgC0EBaiEIIAtBHksNAiAJQQJxIQwgCkEEaiEKIAghCyAHIQkgDA0CDAALCyAJIQcgCyEICwJAAkACQCAHQQNwDQAgCEEfTQ0BCyAIIQsMAQsgBkGAAWogCEECdGohCQNAIAlBAzYCACAIQQFqIQsgB0EDbiIHQQNwIQogCEEeSw0BIAlBBGohCSALIQggCkUNAAsLIAtBIEkhCgJAAkAgB0EFcEUNACALIQ0MAQsCQCALQR9NDQAgCyENDAELIAZBgAFqIAtBAnRqIQgDQCAIQQU2AgAgC0EfSSEKIAtBAWohDSAHQQVuIgdBBXAhCSALQR5LDQEgCEEEaiEIIA0hCyAJRQ0ACwsCQCAHQQJJDQAgCkUNACAGQYABaiANQQJ0aiAHNgIAIA1BAWohDQsCQEGAAUUNACAGIAZBgAFqQYAB/AoAAAsgBEEBdCIOQQEgDkEBSxshD0EAIQkCQAJAIAIgAGtBEEkNACAPQX5xIgkhCCAAIQcgAiELA0AgCyAH/QADAP0LAwAgB0EQaiEHIAtBEGohCyAIQX5qIggNAAsgDiAJRg0BCyAJIQoCQCAPIAlrQQNxIghFDQAgCSAIaiEKIAIgCUEDdCILaiEHIAAgC2ohCwNAIAcgCysDADkDACAHQQhqIQcgC0EIaiELIAhBf2oiCA0ACwsgCSAPa0F8Sw0AIApBA3QhCSAKIA5rIQogAiEIA0AgCCAJaiIHIAAgCWoiCysDADkDACAHQQhqIAtBCGorAwA5AwAgB0EQaiALQRBqKwMAOQMAIAdBGGogC0EYaisDADkDACAIQSBqIQggAEEgaiEAIApBBGoiCg0ACwsCQAJAIA0NACACIRAMAQtEAAAAAAAA8D9EAAAAAAAA8L8gBUEBcRsiEUSqTFjoerbrP6IhEiARIBGgRBgtRFT7IQlAoiETIAIgDkEDdGohACAGQYABakEYaiEUIBGaIRVBACEWQQEhFwNAIAAhECACIQAgBCAGIBZBAnRqKAIAIgogFyICbCIXbiEYAkACQAJAAkACQAJAAkAgCkF+ag4HAAECAwUFBAULIBcgBEsNBSACQQF0IRkgAkEFdCEaIAJBf2ohGyAYQQF0IRwgECACQQR0Ih1qIR5BACEfIAAhICAQISEDQCAQIB8gGWwiByACakEEdGogACAfIAJsQQR0av0AAwAiIiAAIB8gGGogAmwiI0EEdGr9AAMAIiT98QH9CwMAIBAgB0EEdGogJCAi/fAB/QsDAAJAIAJBAUYNAEEBIQtBACEHIBshCANAICAgB2oiCUEQaisDACElICEgB2oiCkEYaiAJQRhqKwMAIiYgACALICNqQQR0aiIJQQhqKwMAIicgAyALIBxsQQN0aiIMKwMAIiiiIAkrAwAiKSAMQQhqKwMAIiqioCIroDkDACAKQRBqICUgKCApoiAnICqioSInoDkDACAeIAdqIglBGGogJiAroTkDACAJQRBqICUgJ6E5AwAgB0EQaiEHIAtBAWohCyAIQX9qIggNAAsLICAgHWohICAhIBpqISEgHiAaaiEeIB9BAWoiHyAYRw0ADAYLCyAXIARLDQQgAkEDbCEsIAJBMGwhLSACQX9qIS4gAkECdCEvIBhBAnQhHSAYQQF0IRsgECACQQV0aiEhIBAgAkEEdCIwaiEjIBggAmwiGkEBdCEZQQAhMSAAIRwgECEfA0AgECAsIDFsIgdBBHRqIAAgMSACbCIgIBlqQQR0av0AAwAiMiAAICAgGmpBBHRq/QADACIz/fABIiIgACAgQQR0av0AAwAiJP3wAf0LAwAgECAHIAJqQQR0aiILICT9IQAgIv0hAEQAAAAAAADgP6KhIiUgEiAzIDL98QEiMv0hAaIiJqE5AwAgC0EIaiASIDL9IQCiIicgJP0hASAi/SEBRAAAAAAAAOA/oqEiKKA5AwAgECAHQQF0IC9qQQN0aiIHQQhqICggJ6E5AwAgByAmICWgOQMAAkAgAkEBRg0AQQEhC0EAIQcgLiEIA0AgHCAHaiIJQRBqKwMAISUgHyAHaiIKQRhqIAlBGGorAwAiJiAAIAsgIGoiCSAZakEEdGoiDEEIaisDACInIAMgCyAdbEEDdGoiHisDACIooiAMKwMAIikgHkEIaisDACIqoqAiKyAAIAkgGmpBBHRqIglBCGorAwAiNCADIAsgG2xBA3RqIgwrAwAiNaIgCSsDACI2IAxBCGorAwAiN6KgIjigIjmgOQMAIApBEGogJSAoICmiICcgKqKhIicgNSA2oiA0IDeioSIooCIpoDkDACAjIAdqIglBGGogEiAoICehoiInICYgOUQAAAAAAADgP6KhIiagOQMAIAlBEGogJSApRAAAAAAAAOA/oqEiJSASIDggK6GiIiihOQMAICEgB2oiCUEYaiAmICehOQMAIAlBEGogKCAloDkDACAHQRBqIQcgC0EBaiELIAhBf2oiCA0ACwsgHCAwaiEcICEgLWohISAfIC1qIR8gIyAtaiEjIDFBAWoiMSAYRw0ADAULCyAXIARLDQMgAkEEdCEJIABBGGohHSACQQZ0ITEgEEEQaiEbIAJBf2ohLiAQIAJBAnQiLUEDdGohLCAYIAJsIhxBAnQhGiAYIAJBA2wiL2whHyAAIBxBBXRqITBBACEZA0AgECAZIC1sIgdBBHQiC2ogACAZIAJsIiMgH2pBBHRq/QADACIiIAAgIyAcakEEdGr9AAMAIiT98AEiMiAwICNBBHQiCGr9AAMAIjMgACAIav0AAwAiOv3wASI7/fAB/QsDACAQIAcgAmpBBHRqIgggOiAz/fEBIjP9IQAiJSARICQgIv3xASIi/SEBoiImoTkDACAIQQhqIDP9IQEiJyARICL9IQCiIiigOQMAICwgC2ogOyAy/fEB/QsDACAQIAcgL2pBBHRqIgdBCGogJyAooTkDACAHICYgJaA5AwACQCACQQFGDQBBASELIB0hCCAbIQcgLiEeA0AgCCsDACElIAcgCEF4aisDACImIAMgCyAYbCIKQQV0aiIgKwMAIicgACALICNqIgxBAXQgGmpBA3RqIiErAwAiKKIgIUEIaisDACIpICBBCGorAwAiKqKhIiugIjQgAyAKQTBsaiIgKwMAIjUgACAMIB9qQQR0aiIhKwMAIjaiICFBCGorAwAiNyAgQQhqKwMAIjiioSI5IAMgCkEEdGoiCisDACI8IAAgDCAcakEEdGoiDCsDACI9oiAMQQhqKwMAIj4gCkEIaisDACI/oqEiQKAiQaA5AwAgB0EIaiAlICkgJ6IgKCAqoqAiJ6AiKCA3IDWiIDYgOKKgIikgPiA8oiA9ID+ioCIqoCI1oDkDACAHIAlqIgogJiAroSImIBEgKiApoaIiKaE5AwAgCkEIaiAlICehIiUgESBAIDmhoiInoDkDACAKIAlqIgogNCBBoTkDACAKQQhqICggNaE5AwAgCiAJaiIKICYgKaA5AwAgCkEIaiAlICehOQMAIAhBEGohCCAHQRBqIQcgC0EBaiELIB5Bf2oiHg0ACwsgHSAJaiEdIBsgMWohGyAZQQFqIhkgGEcNAAwECwsgFyAESw0CIAJBBHQhCCACQdAAbCExIBggAmwiI0EDdCEcICNBAnQhHyAjQQNsIRpBACEZIAAhHSAQIRsDQCAZIAJsISEgHSEJIBshB0EAIQsDQCAJQQhqKwMAISkgACALICFqIgogGmpBBHRqIgwrAwAhJSAAIAogI2pBBHRqIh4rAwAhJiAAIApBAXQiCiAcakEDdGoiICsDACEnIAxBCGorAwAhNiAAIAogH2pBA3RqIgorAwAhKCAeQQhqKwMAITcgIEEIaisDACE4IApBCGorAwAhOQJAAkAgCw0AIDchKiA5ISsgNiE0IDghNQwBCyA4IAMgCyAYbCIKQQZ0aiIMKwMAIiqiICcgDEEIaisDACIroqAhNSAnICqiIDggK6KhIScgNiADIApBMGxqIgwrAwAiKqIgJSAMQQhqKwMAIiuioCE0ICUgKqIgNiAroqEhJSA5IAMgCkEFdGoiDCsDACIqoiAoIAxBCGorAwAiNqKgISsgKCAqoiA5IDaioSEoIDcgAyAKQQR0aiIKKwMAIjaiICYgCkEIaisDACI4oqAhKiAmIDaiIDcgOKKhISYLIAcgCSsDACI2ICggJaAiNyAmICegIjigoDkDACAHQQhqICkgKyA0oCI5ICogNaAiPKCgOQMAIAcgCGoiCiA2IDhET+kvN+/G0z+ioCA3RKj0l5t34+k/oqEiPSARICsgNKEiK0ReWnUEI8/iP6IgKiA1oSIqRP9URBMOb+4/oqCiIjShOQMAIApBCGogESAoICWhIiVEXlp1BCPP4j+iICYgJ6EiJkT/VEQTDm/uP6KgoiInICkgPERP6S8378bTP6KgIDlEqPSXm3fj6T+ioSIooDkDACAKIAhqIgogN0RP6S8378bTP6IgNiA4RKj0l5t34+k/oqGgIjUgESAqRF5adQQjz+I/oiArRP9URBMOb+4/oqGiIiqhOQMAIApBCGogESAmRF5adQQjz+I/oiAlRP9URBMOb+4/oqGiIiUgOURP6S8378bTP6IgKSA8RKj0l5t34+k/oqGgIiagOQMAIAogCGoiCiA1ICqgOQMAIApBCGogJiAloTkDACAKIAhqIgogPSA0oDkDACAKQQhqICggJ6E5AwAgCUEQaiEJIAdBEGohByACIAtBAWoiC0cNAAsgHSAIaiEdIBsgMWohGyAZQQFqIhkgGEcNAAwDCwsgFyAESw0BIAJBB3QhQiAQIAJBBXRqISEgECACQQZ0aiEjIBAgAkEEdCJDaiEcIBAgAkEwbGohHyAQIAJB0ABsaiEaIBAgAkHgAGxqIRkgECACQfAAbGohHSAYIAJsIixBA3QhLyAsQQJ0ITAgLEEHbCEuICxBBmwhRCAsQQVsIUUgLEEDbCFGQQAhRyAQIRsgACExA0AgRyACbCEtQQAhB0EAIQgDQCAxIAdqIgsrAwAhNCALQQhqKwMAITUgACAIIC1qIgsgLmpBBHRqIgkrAwAhJSAAIAsgRGpBBHRqIgorAwAhJiAAIAsgRWpBBHRqIgwrAwAhJyAAIAsgRmpBBHRqIh4rAwAhKCAAIAsgLGpBBHRqIiArAwAhKSAJQQhqKwMAIT8gCkEIaisDACFAIAxBCGorAwAhQSAAIAtBAXQiCyAvakEDdGoiCSsDACEqIB5BCGorAwAhSCAAIAsgMGpBA3RqIgsrAwAhKyAgQQhqKwMAIUkgCUEIaisDACFKIAtBCGorAwAhSwJAAkAgCA0AIEkhNiBLITcgSCE4IEohOSBBITwgQCE9ID8hPgwBCyA/IAMgCCAYbCILQfAAbGoiCSsDACI2oiAlIAlBCGorAwAiN6KgIT4gJSA2oiA/IDeioSElIEAgAyALQeAAbGoiCSsDACI2oiAmIAlBCGorAwAiN6KgIT0gJiA2oiBAIDeioSEmIEEgAyALQdAAbGoiCSsDACI2oiAnIAlBCGorAwAiN6KgITwgJyA2oiBBIDeioSEnIEogAyALQQZ0aiIJKwMAIjaiICogCUEIaisDACI3oqAhOSAqIDaiIEogN6KhISogSCADIAtBMGxqIgkrAwAiNqIgKCAJQQhqKwMAIjeioCE4ICggNqIgSCA3oqEhKCBLIAMgC0EFdGoiCSsDACI2oiArIAlBCGorAwAiP6KgITcgKyA2oiBLID+ioSErIEkgAyALQQR0aiILKwMAIj+iICkgC0EIaisDACJAoqAhNiApID+iIEkgQKKhISkLIBsgB2oiC0EIaiA1IDmgIj8gNyA9oCJAoCJBIDYgPKAiSCA4ID6gIkmgIkqgOQMAIAsgNCAqoCJLICsgJqAiTKAiTSApICegIk4gKCAloCJPoCJQoDkDACAjIAdqIgtBCGogQSBKoTkDACALIE0gUKE5AwAgISAHaiILQQhqID8gQKEiPyARIE4gT6GiIkCgOQMAIAsgSyBMoSJBIEggSaEgFaIiSKA5AwAgGSAHaiILQQhqID8gQKE5AwAgCyBBIEihOQMAIBwgB2oiC0EIaiA1IDmhIjUgESArICahoiImoCIrIDYgPKEiNiARICggJaGiIiWgIiggESApICehIicgOCA+oSAVoiIpoCI4oqBEzTt/Zp6g5j+iIjmgOQMAIAsgNCAqoSIqIDcgPaEgFaIiNKAiNyA4IBEgKKKhRM07f2aeoOY/oiIooDkDACAaIAdqIgtBCGogKyA5oTkDACALIDcgKKE5AwAgHyAHaiILQQhqIDUgJqEiJiARICcgKaEiJ6IgNiAloSIloUTNO39mnqDmP6IiKKA5AwAgCyAqIDShIikgJ5ogESAloqFEzTt/Zp6g5j+iIiWgOQMAIB0gB2oiC0EIaiAmICihOQMAIAsgKSAloTkDACAHQRBqIQcgAiAIQQFqIghHDQALICEgQmohISAjIEJqISMgGyBCaiEbIBwgQmohHCAfIEJqIR8gGiBCaiEaIBkgQmohGSAdIEJqIR0gMSBDaiExIEdBAWoiRyAYRw0ADAILCyAXIARLDQAgCkUNACAYQQF0IR8gCrghKyAKQX9qIRpBACEjA0AgIyACbCEcICMgCmwhHkEAIQwDQCAGIAAgDCAcakEEdGr9AAMA/QsEgAECQCAKQQFGDQAgHyAMbCEhQQEhByAUIQsgGiEIA0AgCyAAIAcgGGwgI2ogAmwgDGpBBHRqIglBCGorAwAiJSADICEgB2xBA3RqIiArAwAiJqIgCSsDACInICBBCGorAwAiKKKgOQMAIAtBeGogJiAnoiAlICiioTkDACALQRBqIQsgB0EBaiEHIAhBf2oiCA0ACwtBACEJA0BEAAAAAAAAAAAhJyAGQYABaiEHQQAhCyAKIQhEAAAAAAAAAAAhKANAIAdBCGorAwAhJSATIAu4oiAroyIpEJ+AgIAAISYgKCAHKwMAIiogKRChgICAACIpoiAlICaioKAhKCAnICogJqIgJSApoqGgIScgCyAJaiELIAdBEGohByAIQX9qIggNAAsgECAJIB5qIAJsIAxqQQR0aiIHICc5AwAgB0EIaiAoOQMAIAlBAWoiCSAKRw0ACyAMQQFqIgwgAkcNAAsgI0EBaiIjIBhHDQALCyAQIQIgFkEBaiIWIA1HDQALCwJAIAVBAXFFDQBEAAAAAAAA8D8gBLijIiX9FCEiIA9BfnEiCCELIBAhBwNAIAcgIiAH/QADAP3yAf0LAwAgB0EQaiEHIAtBfmoiCw0ACyAOIAhGDQAgDiAIayELIBAgD0EDdEFwcWohBwNAIAcgJSAHKwMAojkDACAHQQhqIQcgC0F/aiILDQALC0EAIQkCQCABIBBrQRBJDQAgD0F+cSIJIQggECEHIAEhCwNAIAsgB/0AAwD9CwMAIAdBEGohByALQRBqIQsgCEF+aiIIDQALIA4gCUYNAQsgCSEKAkAgDyAJa0EDcSIIRQ0AIAkgCGohCiABIAlBA3QiC2ohByAQIAtqIQsDQCAHIAsrAwA5AwAgB0EIaiEHIAtBCGohCyAIQX9qIggNAAsLIAkgD2tBfEsNACAKQQN0IQggCiAOayEJA0AgASAIaiIHIBAgCGoiCysDADkDACAHQQhqIAtBCGorAwA5AwAgB0EQaiALQRBqKwMAOQMAIAdBGGogC0EYaisDADkDACABQSBqIQEgEEEgaiEQIAlBBGoiCQ0ACwsgBkGAEWokgICAgAAL9wYLBH8BfAF/AXwBfwF8A38CfAJ/AXsBfyACQQF0IgVBf2ohBkEBIQcDQCAHIghBAXQhByAIIAZJDQALRBgtRFT7IQnARBgtRFT7IQlAIANBAXEbIQkgBCAHQQN0aiEKIAK4IQtBACEGIAQhDANAIAxBCGogCSAGIAZsuKIgC6MiDRChgICAADkDACAMIA0Qn4CAgAA5AwAgDEEQaiEMIAIgBkEBaiIGRw0ACyAHQQN0IQYCQCAHRQ0AIAhBBHQiDEUNACAKQQAgDPwLAAsgCiAGaiEMIAhBBHQhDiAEIQYgAiEPA0AgBiAOaiIQQQhqIABBCGorAwAiDSAGKwMAIgmiIAArAwAiESAGQQhqKwMAIhKioTkDACAQIBEgCaIgDSASoqA5AwAgBkEQaiEGIABBEGohACAPQX9qIg8NAAsCQCAHRQ0AIAhBBHQiBkUNACAMQQAgBvwLAAsgDCAE/QADAP0LAwBBASEGIAJBf2oiAEEBcSETAkAgAkECRg0AIAhBBXQhBiAAQX5xIRQgCEEwbEFgaiEAQQAhB0EAIQ8DQCAEIAZqIhBBEGogBCAHaiIOQRBq/QADACIV/QsDACAEIABqIhZBEGogFf0LAwAgEEEgaiAOQSBq/QADACIV/QsDACAWIBX9CwMAIABBYGohACAHQSBqIQcgBkEgaiEGIBQgD0ECaiIPRw0ACyAPQQFqIQYLAkAgE0UNACAMIAZBBHQiAGogBCAAav0AAwAiFf0LAwAgDCAIIAZrQQR0aiAV/QsDAAsgCiAIQQAQhYCAgAAgDCAIQQAQhYCAgAACQCAIRQ0AIAohBiAIIQADQCAGQQhqIgcgBysDACINIAwrAwAiCaIgBisDACIRIAxBCGorAwAiEqKgOQMAIAYgESAJoiANIBKioTkDACAMQRBqIQwgBkEQaiEGIABBf2oiAA0ACwsgCiAIQQEQhYCAgAAgCEEEdCEMIAEhBgNAIAZBCGogBCAMaiIAQQhqKwMAIg0gBCsDACIJoiAAKwMAIhEgBEEIaisDACISoqE5AwAgBiARIAmiIA0gEqKgOQMAIAZBEGohBiAEQRBqIQQgAkF/aiICDQALAkAgA0EBcUUNAEQAAAAAAADwPyALo/0UIRUDQCABIBUgAf0AAwD98gH9CwMAIAFBEGohASAFQX5qIgUNAAsLC5UEBwZ/AXsBfAF/A3wDfwZ8IAFBfmohA0EAIQRBACEFA0AgBSEGIAEhBSAEIQcDQCAHIAVBAXYiBXEhCCAHIAVzIgQhByAIDQALAkAgBkEBaiIFIARPDQAgACAFQQR0aiIH/QADACEJIAcgACAEQQR0aiII/QADAP0LAwAgCCAJ/QsDAAsgBiADRw0AC0QYLURU+yEZQEQYLURU+yEZwCACQQFxGyEKQQIhCwJAA0AgCiALuKMiDBChgICAACENIAwQn4CAgAAhDiALRQ0BIAtBAXYiBUEBIAVBAUsbIQ8gC0EEdCEQIAVBBHQhBkEAIREgACEDA0BEAAAAAAAAAAAhDEQAAAAAAADwPyESIAMhBSAPIQgDQCAFQQhqIgcgBysDACITIAwgBSAGaiIHKwMAIhSiIBIgB0EIaiIEKwMAIhWioCIWoDkDACAFIAUrAwAiFyASIBSiIAwgFaKhIhSgOQMAIAQgEyAWoTkDACAHIBcgFKE5AwAgDSASoiETIA4gEqIgDSAMoqEhEiAFQRBqIQUgEyAOIAyioCEMIAhBf2oiCA0ACyADIBBqIQMgESALaiIRIAFJDQALIAtBAXQiCyABTQ0ACwJAIAJBAXFFDQAgAUEBdCEFRAAAAAAAAPA/IAG4o/0UIQkDQCAAIAkgAP0AAwD98gH9CwMAIABBEGohACAFQX5qIgUNAAsLDwsDQAwACwsSACAAIAEgAiADQQEQgoCAgAAL7AUCCX8BeyACIANBBHQiBGoiBSAEaiEGAkAgAw0AIAIgBSAGIANBABCCgICAAA8LIANBAXQiB0EBIAdBAUsbIQhBACEJAkACQCAHQQpJDQACQCACIAAgCEECdGpPDQAgACACIAhBA3RqSQ0BCyAIQX5xIgkhCiAAIQQgAiELA0AgCyAE/V0CAP1f/QsDACAEQQhqIQQgC0EQaiELIApBfmoiCg0ACyAHIAlGDQELIAkhDAJAIAggCWtBA3EiCkUNACAJIApqIQwgAiAJQQN0aiEEIAAgCUECdGohCwNAIAQgCyoCALs5AwAgBEEIaiEEIAtBBGohCyAKQX9qIgoNAAsLIAkgCGtBfEsNACAMIAdrIQogAiAMQQN0aiEEIAAgDEECdGohCwNAIAQgCyoCALs5AwAgBEEIaiALQQRqKgIAuzkDACAEQRBqIAtBCGoqAgC7OQMAIARBGGogC0EMaioCALs5AwAgBEEgaiEEIAtBEGohCyAKQQRqIgoNAAsLQQAhCSACIAUgBiADQQAQgoCAgAACQAJAIAdBDkkNAAJAIAEgAiADQQR0aiAIQQN0ak8NACAFIAEgCEECdGpJDQELIAhBfnEiCSELIAEhBANAIAQgBf0AAwAiDf0hALb9EyAN/SEBtv0gAf1bAgAAIAVBEGohBSAEQQhqIQQgC0F+aiILDQALIAcgCUYNAQsgCSEFAkAgCCAJa0EDcSIKRQ0AIAIgA0EEdCAJQQN0amohBCAJIApqIQUgASAJQQJ0aiELA0AgCyAEKwMAtjgCACALQQRqIQsgBEEIaiEEIApBf2oiCg0ACwsgCSAIa0F8Sw0AIAIgA0EEdCAFQQN0amohBCAFIAdrIQogASAFQQJ0aiELA0AgCyAEKwMAtjgCACALQQRqIARBCGorAwC2OAIAIAtBCGogBEEQaisDALY4AgAgC0EMaiAEQRhqKwMAtjgCACAEQSBqIQQgC0EQaiELIApBBGoiCg0ACwsL7AUCCX8BeyACIANBBHQiBGoiBSAEaiEGAkAgAw0AIAIgBSAGIANBARCCgICAAA8LIANBAXQiB0EBIAdBAUsbIQhBACEJAkACQCAHQQpJDQACQCACIAAgCEECdGpPDQAgACACIAhBA3RqSQ0BCyAIQX5xIgkhCiAAIQQgAiELA0AgCyAE/V0CAP1f/QsDACAEQQhqIQQgC0EQaiELIApBfmoiCg0ACyAHIAlGDQELIAkhDAJAIAggCWtBA3EiCkUNACAJIApqIQwgAiAJQQN0aiEEIAAgCUECdGohCwNAIAQgCyoCALs5AwAgBEEIaiEEIAtBBGohCyAKQX9qIgoNAAsLIAkgCGtBfEsNACAMIAdrIQogAiAMQQN0aiEEIAAgDEECdGohCwNAIAQgCyoCALs5AwAgBEEIaiALQQRqKgIAuzkDACAEQRBqIAtBCGoqAgC7OQMAIARBGGogC0EMaioCALs5AwAgBEEgaiEEIAtBEGohCyAKQQRqIgoNAAsLIAIgBSAGIANBARCCgICAAEEAIQkCQAJAIAdBDkkNAAJAIAEgAiADQQR0aiAIQQN0ak8NACAFIAEgCEECdGpJDQELIAhBfnEiCSELIAEhBANAIAQgBf0AAwAiDf0hALb9EyAN/SEBtv0gAf1bAgAAIAVBEGohBSAEQQhqIQQgC0F+aiILDQALIAcgCUYNAQsgCSEFAkAgCCAJa0EDcSIKRQ0AIAIgA0EEdCAJQQN0amohBCAJIApqIQUgASAJQQJ0aiELA0AgCyAEKwMAtjgCACALQQRqIQsgBEEIaiEEIApBf2oiCg0ACwsgCSAIa0F8Sw0AIAIgA0EEdCAFQQN0amohBCAFIAdrIQogASAFQQJ0aiELA0AgCyAEKwMAtjgCACALQQRqIARBCGorAwC2OAIAIAtBCGogBEEQaisDALY4AgAgC0EMaiAEQRhqKwMAtjgCACAEQSBqIQQgC0EQaiELIApBBGoiCg0ACwsLxAUEAXwEfwF7An8CQAJAAkAgA0EBSw0AIANBAUcNASAAKwMAIQQgAUIANwMIIAEgBDkDAA8LIANBAXFFDQFBACEFAkAgA0EESQ0AIANBfHEhBkEAIQUgACEHIAIhCANAIAggB/0MAAAAAAAAAAAAAAAAAAAAACIJ/VcDAAD9CwMAIAhBEGogB0EIaiAJ/VcDAAD9CwMAIAhBIGogB0EQaiAJ/VcDAAD9CwMAIAhBMGogB0EYaiAJ/VcDAAD9CwMAIAdBIGohByAIQcAAaiEIIAYgBUEEaiIFRw0ACwsgA0EDcSEGIAIgBUEEdGohByAAIAVBA3RqIQgDQCAHIAj9DAAAAAAAAAAAAAAAAAAAAAD9VwMAAP0LAwAgB0EQaiEHIAhBCGohCCAGQX9qIgYNAAtBACEHIAIgAiADQQR0IghqIgAgACAIaiADQQAQgoCAgAAgA0EBdkEBakF+cSEFA0AgASAHaiIIIAAgB2oiBisDADkDACAIQQhqIAZBCGorAwA5AwAgCEEQaiAGQRBqKwMAOQMAIAhBGGogBkEYaisDADkDACAHQSBqIQcgBUF+aiIFDQALIANBAnENACABIAdqIgggACAHaiIHKwMAOQMAIAhBCGogB0EIaisDADkDAAsPCyADQQF2IQpBACELAkAgA0ECRg0AIApB/v///wdxIgVBAXQhC0EAIQcDQCACIAdqIgggACAHaiIGKwMAOQMAIAhBCGogBkEIaisDADkDACAIQRBqIAZBEGorAwA5AwAgCEEYaiAGQRhqKwMAOQMAIAdBIGohByAFQX5qIgUNAAsLAkAgA0ECcUUNACACIAtBA3QiB2ogACAHaisDADkDACACIAdBCHIiB2ogACAHaisDADkDAAsgAiACIANBA3RqIgcgAiADQQR0aiAKQQAQgoCAgAAgByABIANBABCKgICAAAuNCQkCfAF/B3wEfwJ7AX8FewF/A3sgACsDCCEEIAArAwAhBSABQgA3AwggASAFIASgOQMAIAArAwghBCAAKwMAIQUgASACQQN0QQhyakIANwMAIAEgAkH+////AXFBA3RqIAUgBKE5AwACQCACQQNNDQAgAkEBdiEGAkAgAw0ARBgtRFT7IRnAIAK4oyIEEKGAgIAAIQcgBBCfgICAACEIIAZBf2oiAkUNASAAQRhqIQMgAUEQaiEBIAZBBHQgAGpBcGohACAIIQQgByEFA0AgAUEIaiADKwMAIgkgAEEIaisDACIKoUQAAAAAAADgP6IgBCAAKwMAIgsgA0F4aisDACIMoUQAAAAAAADgP6IiDaKgIAUgCSAKoEQAAAAAAADgP6IiCaKgOQMAIAEgDCALoEQAAAAAAADgP6IgBCAJoqAgBSANoqE5AwAgByAEoiEJIAggBKIgByAFoqEhBCAAQXBqIQAgA0EQaiEDIAFBEGohASAJIAggBaKgIQUgAkF/aiICDQAMAgsLIAZBf2oiDkUNAEEAIQ8CQCAOQQRJDQAgAUEQaiIQIAMgBkEEdCICakkgA0EQaiABIAJqIhFJcQ0AIBAgACACakkgAEEQaiARSXENACAG/REhEv0MAAAAAAEAAAAAAAAAAAAAACETIA5BfnEiDyEUA0AgASAT/QwBAAAAAQAAAAEAAAABAAAAIhX9rgEiFkEB/asBIhcgFf1QIhj9GwBBA3QiAmogACAY/RsBQQN0IhBqIAAgAmr9XQMA/VcDAAEiGCAAIBIgFv2xAUEB/asBIhYgFf1QIhX9GwFBA3RqIAAgFf0bAEEDdGr9XQMA/VcDAAEiGf3xAf0MAAAAAAAA4D8AAAAAAADgPyIV/fIBIAMgF/0bAUEDdCIRaiADIBf9GwBBA3QiGmr9XQMA/VcDAAEiFyAAIBb9GwFBA3RqIAAgFv0bAEEDdGr9XQMA/VcDAAEiFiAAIBFqIAAgGmr9XQMA/VcDAAEiG/3xASAV/fIBIhz98gH98AEgAyAQaiADIAJq/V0DAP1XAwABIh0gGCAZ/fABIBX98gEiGP3yAf3wASIZ/SEAOQMAIAEgGmogGyAW/fABIBX98gEgFyAY/fIB/fABIB0gHP3yAf3xASIV/SEAOQMAIAEgEGogGf0hATkDACABIBFqIBX9IQE5AwAgE/0MAgAAAAIAAAACAAAAAgAAAP2uASETIBRBfmoiFA0ACyAOIA9GDQELIAZBBHQgD0EEdCIQayAAakFwaiECIA9Bf3MgBmohEQNAIAEgEGoiGkEYaiAAIBBqIhRBGGorAwAiBCACQQhqKwMAIgWhRAAAAAAAAOA/oiADIBBqIgZBEGorAwAiByACKwMAIgggFEEQaisDACIJoUQAAAAAAADgP6IiCqKgIAZBGGorAwAiCyAEIAWgRAAAAAAAAOA/oiIEoqA5AwAgGkEQaiAJIAigRAAAAAAAAOA/oiAHIASioCALIAqioTkDACACQXBqIQIgA0EQaiEDIABBEGohACABQRBqIQEgEUF/aiIRDQALCwubAgEDfwJAAkAgBEEBSw0AIARBAUcNASABIAArAwA5AwAPCwJAIARBAXFFDQAgACABIAIgAyAEEIyAgIAADwtBACEFIAAgAiAEQQAQjYCAgAAgAiACIARBA3RqIgYgAiAEQQR0aiAEQQF2IgBBARCCgICAAAJAIARBAkYNACAAQf7///8HcSIHQQF0IQVBACECA0AgASACaiIAIAYgAmoiAysDADkDACAAQQhqIANBCGorAwA5AwAgAEEQaiADQRBqKwMAOQMAIABBGGogA0EYaisDADkDACACQSBqIQIgB0F+aiIHDQALCyAEQQJxRQ0AIAEgBUEDdCICaiAGIAJqKwMAOQMAIAEgAkEIciICaiAGIAJqKwMAOQMACwvYBQIIfwJ7IARBAXQhBSACIARBBHRqIQZBfyEHAkACQCADRQ0AIANBAXEhCEEAIQkCQCADQQFGDQAgA0F+cSIHQQF0IQlBACEKA0AgAiAKaiILIAAgCmoiDCsDADkDACALQQhqIAxBCGorAwA5AwAgC0EQaiAMQRBqKwMAOQMAIAtBGGogDEEYaisDADkDACAKQSBqIQogB0F+aiIHDQALCwJAIAhFDQAgAiAJQQN0IgpqIAAgCmorAwA5AwAgAiAKQQhyIgpqIAAgCmorAwA5AwALIANBf2oiB0UNAQsgBEF/aiEKIABBGGohCyAGQXBqIQwDQAJAIAogA0kNACAMIAtBeGorAwA5AwAgDEEIaiALKwMAmjkDAAsgDEFwaiEMIApBf2ohCiALQRBqIQsgB0F/aiIHDQALCyACIAYgBiAFQQN0aiAEQQEQgoCAgAACQCAERQ0AQQAhBwJAIARBEEkNAAJAIAEgAiAEQQV0akF4ak8NACAGIAEgBEEDdGpJDQEL/QwAAAAAAQAAAAAAAAAAAAAAIQ0gBEF+cSIHIQsgASEKA0AgCiAGIA1BBP2rASIO/RsBaiAGIA79GwBq/V0DAP1XAwAB/QsDACAKQRBqIQogDf0MAgAAAAIAAAACAAAAAgAAAP2uASENIAtBfmoiCw0ACyAEIAdGDQELIAchAwJAIAQgB2tBA3EiDEUNACACIAdBBHQgBEEEdGpqIQogByAMaiEDIAEgB0EDdGohCwNAIAsgCisDADkDACALQQhqIQsgCkEQaiEKIAxBf2oiDA0ACwsgByAEa0F8Sw0AIAIgA0EEdCAEQQR0amohCiAEIANrIQwgASADQQN0aiELA0AgCyAKKwMAOQMAIAtBCGogCkEQaisDADkDACALQRBqIApBIGorAwA5AwAgC0EYaiAKQTBqKwMAOQMAIAtBIGohCyAKQcAAaiEKIAxBfGoiDA0ACwsL9ggGAn8JfAN/AnsBfwh7IAEgACsDACAAIAJB/v///wFxQQN0aiIEKwMAoEQAAAAAAADgP6I5AwAgASAAKwMAIAQrAwChRAAAAAAAAOA/ojkDCAJAIAJBA00NACACQQF2IQUCQCADDQBEGC1EVPshGUAgArijIgYQoYCAgAAhByAGEJ+AgIAAIQggBUF/aiICRQ0BIABBGGohAyABQRBqIQEgBUEEdCAAakFwaiEAIAghBiAHIQkDQCABQQhqIAMrAwAiCiAAQQhqKwMAIguhRAAAAAAAAOA/oiAGIANBeGorAwAiDCAAKwMAIg2hRAAAAAAAAOA/oiIOoiAJIAogC6BEAAAAAAAA4D+iIgqioaA5AwAgASAMIA2gRAAAAAAAAOA/oiAJIA6iIAYgCqKgoTkDACAHIAaiIQogCCAGoiAHIAmioSEGIABBcGohACADQRBqIQMgAUEQaiEBIAogCCAJoqAhCSACQX9qIgINAAwCCwsgBUF/aiIPRQ0AQQAhEAJAIA9BBEkNACABQRBqIgQgAyAFQQR0IgJqSSADQRBqIAEgAmoiEUlxDQAgBCAAIAJqSSAAQRBqIBFJcQ0AIAX9ESES/QwAAAAAAQAAAAAAAAAAAAAAIRMgD0F+cSIQIRQDQCABIBP9DAEAAAABAAAAAQAAAAEAAAAiFf2uASIWQQH9qwEiF/0bAEEDdCICaiAAIBf9GwFBA3QiBGogACACav1dAwD9VwMAASIYIAAgEiAW/bEBQQH9qwEiGf0bAUEDdGogACAZ/RsAQQN0av1dAwD9VwMAASIa/fAB/QwAAAAAAADgPwAAAAAAAOA/Ihb98gEgAyAEaiADIAJq/V0DAP1XAwABIhsgACAXIBX9UCIX/RsBQQN0IgJqIAAgF/0bAEEDdCIRav1dAwD9VwMAASIXIAAgGSAV/VAiFf0bAUEDdGogACAV/RsAQQN0av1dAwD9VwMAASIV/fABIBb98gEiGf3yASADIAJqIAMgEWr9XQMA/VcDAAEiHCAYIBr98QEgFv3yASIY/fIB/fEB/fEBIhr9IQA5AwAgASARaiAXIBX98QEgFv3yASAbIBj98gEgHCAZ/fIB/fAB/fABIhb9IQA5AwAgASAEaiAa/SEBOQMAIAEgAmogFv0hATkDACAT/QwCAAAAAgAAAAIAAAACAAAA/a4BIRMgFEF+aiIUDQALIA8gEEYNAQsgBUEEdCAQQQR0IgRrIABqQXBqIQIgEEF/cyAFaiERA0AgASAEaiIUQRhqIAAgBGoiBUEYaisDACIGIAJBCGorAwAiCaFEAAAAAAAA4D+iIAMgBGoiEEEQaisDACIHIAVBEGorAwAiCCACKwMAIgqhRAAAAAAAAOA/oiILoiAQQRhqKwMAIgwgBiAJoEQAAAAAAADgP6IiBqKgoDkDACAUQRBqIAggCqBEAAAAAAAA4D+iIAcgBqIgDCALoqGhOQMAIAJBcGohAiADQRBqIQMgAEEQaiEAIAFBEGohASARQX9qIhENAAsLC4cNBwd/AXwFfwF7AX8EfAN/AkACQCADQQFLDQAgA0EBRw0BIARFDQEgBEEBcSEHQQAhCAJAIARBAUYNACAFQQR0IQkgBUEDdCECIAZBBHQhCiAGQQN0IQMgBEF+cSELQQAhCCAAIQwgASENA0AgDCsDACEOIA1BCGpCADcDACANIA45AwAgDCACaisDACEOIA0gA2oiD0EIakIANwMAIA8gDjkDACAMIAlqIQwgDSAKaiENIAsgCEECaiIIRw0ACwsgB0UNASAAIAggBWxBA3RqKwMAIQ4gASAIIAZsQQN0aiINQQhqQgA3AwAgDSAOOQMADwsCQCADQQFxRQ0AIARFDQEgAiADQQR0Ig1qIgkgDWohByAGQQN0IQYgBUEDdCEQIANBAnEhESADQXxxIQogA0EDcSESIANBAXZBAWpBfnEhE0EAIQsDQEEAIQgCQCADQQRJDQBBACEIIAAhDSACIQwDQCAMIA39DAAAAAAAAAAAAAAAAAAAAAAiFP1XAwAA/QsDACAMQRBqIA1BCGogFP1XAwAA/QsDACAMQSBqIA1BEGogFP1XAwAA/QsDACAMQTBqIA1BGGogFP1XAwAA/QsDACANQSBqIQ0gDEHAAGohDCAKIAhBBGoiCEcNAAsLIAIgCEEEdGohDSAAIAhBA3RqIQwgEiEIA0AgDSAM/QwAAAAAAAAAAAAAAAAAAAAA/VcDAAD9CwMAIA1BEGohDSAMQQhqIQwgCEF/aiIIDQALQQAhDSACIAkgByADQQAQgoCAgAAgEyEPA0AgASANaiIMIAkgDWoiCCsDADkDACAMQQhqIAhBCGorAwA5AwAgDEEQaiAIQRBqKwMAOQMAIAxBGGogCEEYaisDADkDACANQSBqIQ0gD0F+aiIPDQALAkAgEQ0AIAEgDWoiDCAJIA1qIg0rAwA5AwAgDEEIaiANQQhqKwMAOQMACyABIAZqIQEgACAQaiEAIAtBAWoiCyAERw0ADAILCyACIANBBXRqIhX9DAAAAAAAAPA/AAAAAAAAAAAiFP0LAwAgA0EBdiEKIAIgA0EobCIIaiEQIANBBHQhCSADQQN0IQsCQCADQQRJDQBEGC1EVPshGcAgCrgiFqMhF0EAIQwDQCAMQQFqIgwgDGwgCkkNAAsgFxChgICAACEOIBcQn4CAgAAhFyAVIQ1BASEPA0ACQAJAIA8gDHANACANQRhqIA+4RBgtRFT7IRnAoiAWoyIYEKGAgIAAOQMAIA1BEGogGBCfgICAADkDAAwBCyANQRhqIA4gDSsDACIYoiAXIA1BCGorAwAiGaKgOQMAIA1BEGogFyAYoiAOIBmioTkDAAsgDUEQaiENIAogD0EBaiIPRw0ACwsgAiAJaiERIAIgC2ohByAQIBT9CwMARBgtRFT7IRnAIAO4IhajIRdBACENA0AgDUEBaiINIA1sIANJDQALIBcQoYCAgAAhDiAXEJ+AgIAAIRdBASEMA0ACQAJAIAwgDXANACACIAhqIg9BGGogDLhEGC1EVPshGcCiIBajIhgQoYCAgAA5AwAgD0EQaiAYEJ+AgIAAOQMADAELIAIgCGoiD0EYaiAOIA8rAwAiGKIgFyAPQQhqKwMAIhmioDkDACAPQRBqIBcgGKIgDiAZoqE5AwALIAhBEGohCCADIAxBAWoiDEcNAAsgBEUNACAFQQN0IRIgCkEBIApBAUsbIg1BAXEhEyANQf7///8HcSIaQQF0IRsgA0EESSEcIAAhCUEAIQsDQEEAIQ0CQCAcDQBBACENIBohDwNAIAIgDWoiDCAJIA1qIggrAwA5AwAgDEEIaiAIQQhqKwMAOQMAIAxBEGogCEEQaisDADkDACAMQRhqIAhBGGorAwA5AwAgDUEgaiENIA9BfmoiDw0ACyAbIQ0LAkAgE0UNACACIA1BA3QiDWogACALIAVsQQN0aiIMIA1qKwMAOQMAIAIgDUEIciINaiAMIA1qKwMAOQMACyALIAZsIQggCiEMA0AgDCINQQF2IQwgDUEBcUUNAAsCQCANQQNwDQADQCANQQNuIg1BA3BFDQALCyAIQQN0IQwCQCANQQVwDQADQCANQQVuIg1BBXBFDQALCyABIAxqIQwCQAJAIA1BAUcNACACIAcgESAVIApBABCDgICAAAwBCyACIAcgESAKQQAQgoCAgAALIAcgDCADIBAQioCAgAAgCSASaiEJIAtBAWoiCyAERw0ACwsL0BMIDH8BewV8C38Bewd/CHsCfAJAAkAgA0EBSw0AIANBAUcNASAERQ0BQQAhBwJAIARBCkkNACAGQQFHDQAgBUEBRw0AIAEgAGtBEEkNACAEQX5xIgchCCAAIQkgASEKA0AgCiAJ/QADAP0LAwAgCUEQaiEJIApBEGohCiAIQX5qIggNAAsgBCAHRg0CCyAHIQsCQCAEIAdrQQNxIghFDQAgByAIaiELIAZBA3QhAiAFQQN0IQwgASAHIAZsQQN0aiEJIAAgByAFbEEDdGohCgNAIAkgCisDADkDACAJIAJqIQkgCiAMaiEKIAhBf2oiCA0ACwsgByAEa0F8Sw0BIAZBBXQhCiAFQQV0IQggBCALayEJIAsgBmxBA3QhAiALIAVsQQN0IQwgBiALQQFqIg1sQQN0IQcgBSANbEEDdCENIAYgC0ECaiIObEEDdCEPIAUgDmxBA3QhDiAGIAtBA2oiEGxBA3QhCyAFIBBsQQN0IRADQCABIAJqIAAgDGorAwA5AwAgASAHaiAAIA1qKwMAOQMAIAEgD2ogACAOaisDADkDACABIAtqIAAgEGorAwA5AwAgASAKaiEBIAAgCGohACAJQXxqIgkNAAwCCwsgA0EBdiERAkAgA0EBcUUNACAERQ0BIBFBAWohCSAFQQN0IQogBkEDdCEIA0AgACABIAIgCSADEIyAgIAAIAAgCmohACABIAhqIQEgBEF/aiIEDQAMAgsLIAIgA0EFdGoiEv0MAAAAAAAA8D8AAAAAAAAAACIT/QsDACACIANBKGwiB2ohDSADQQR0IQwgA0EDdCEPAkAgA0EESQ0ARBgtRFT7IRlAIBG4IhSjIRVBACEKA0AgCkEBaiIKIApsIBFJDQALIBUQoYCAgAAhFiAVEJ+AgIAAIRUgEiEJQQEhCANAAkACQCAIIApwDQAgCUEYaiAIuEQYLURU+yEZQKIgFKMiFxChgICAADkDACAJQRBqIBcQn4CAgAA5AwAMAQsgCUEYaiAWIAkrAwAiF6IgFSAJQQhqKwMAIhiioDkDACAJQRBqIBUgF6IgFiAYoqE5AwALIAlBEGohCSARIAhBAWoiCEcNAAsLIAIgDGohGSACIA9qIRogDSAT/QsDAEQYLURU+yEZwCADuCIUoyEVQQAhCQNAIAlBAWoiCSAJbCADSQ0ACyAVEKGAgIAAIRYgFRCfgICAACEVIAchCEEBIQoDQAJAAkAgCiAJcA0AIAIgCGoiDEEYaiAKuEQYLURU+yEZwKIgFKMiFxChgICAADkDACAMQRBqIBcQn4CAgAA5AwAMAQsgAiAIaiIMQRhqIBYgDCsDACIXoiAVIAxBCGorAwAiGKKgOQMAIAxBEGogFSAXoiAWIBiioTkDAAsgCEEQaiEIIAMgCkEBaiIKRw0ACyAERQ0AQQAhGyADQQRJIhwgEUF/aiIdRXIhHiAGQQN0IR8gEUEEdCIPIABqIglBcGohICARQQEgEUEBSxsiCkEBcSEhIApB/v///wdxIiJBAXQhIyAR/REhJCADQRZJIAJBGGoiCiAJIAUgBEF/amxBA3RqIgxJIABBGGoiDiACIA9qIglJcSILIAsgCiAMQXhqIhBJIABBEGoiJSAJSXEiJiACQRBqIgggDEkgDiAJQXhqIgxJcSIOIAggEEkgJSAMSXEiECAOIAggCUkgCiAMSXEgCCACIAcgD2pqIg9BeGoiJUkgAiAHaiIHQRBqIicgDElxciAIIA9JIAdBGGoiCCAMSXFyIBAgBUEDdCIoQQBIIgxycnJyciAKICVJICcgCUlxciAKIA9JIAggCUlxcnJyICYgDHJycnJBAXEhKSAdIB1BfnEiKkYhKyABISUgACEmA0AgAiAAIBsgBWxBA3RqIgkrAwAgCSADQQN0aiIKKwMAoEQAAAAAAADgP6I5AwAgAiAJKwMAIAorAwChRAAAAAAAAOA/ojkDCCAbIAZsQQN0IScCQCAeDQBBACEKAkAgKQ0A/QwAAAAAAQAAAAAAAAAAAAAAISwgKiEHA0AgAiAs/QwBAAAAAQAAAAEAAAABAAAAIi39rgEiE0EB/asBIi79GwBBA3QiCmogCSAu/RsBQQN0IghqIAkgCmr9XQMA/VcDAAEiLyAJICQgE/2xAUEB/asBIjD9GwFBA3RqIAkgMP0bAEEDdGr9XQMA/VcDAAEiMf3wAf0MAAAAAAAA4D8AAAAAAADgPyIT/fIBIA0gCGogDSAKav1dAwD9VwMAASIyIAkgLiAt/VAiLv0bAUEDdCIKaiAJIC79GwBBA3QiDGr9XQMA/VcDAAEiLiAJIDAgLf1QIi39GwFBA3RqIAkgLf0bAEEDdGr9XQMA/VcDAAEiLf3wASAT/fIBIjD98gEgDSAKaiANIAxq/V0DAP1XAwABIjMgLyAx/fEBIBP98gEiL/3yAf3xAf3xASIx/SEAOQMAIAIgDGogLiAt/fEBIBP98gEgMiAv/fIBIDMgMP3yAf3wAf3wASIT/SEAOQMAIAIgCGogMf0hATkDACACIApqIBP9IQE5AwAgLP0MAgAAAAIAAAACAAAAAgAAAP2uASEsIAdBfmoiBw0ACyAqIQogKw0BCyAdIAprIQ8gICAKQQR0IgprIQkgJiEIIAIhDCANIQcDQCAMIApqIg5BGGogCCAKaiILQRhqKwMAIhYgCUEIaisDACIVoUQAAAAAAADgP6IgByAKaiIQQRBqKwMAIhcgC0EQaisDACIYIAkrAwAiFKFEAAAAAAAA4D+iIjSiIBBBGGorAwAiNSAWIBWgRAAAAAAAAOA/oiIWoqCgOQMAIA5BEGogGCAUoEQAAAAAAADgP6IgFyAWoiA1IDSioaE5AwAgCEEQaiEIIAxBEGohDCAJQXBqIQkgB0EQaiEHIA9Bf2oiDw0ACwsgASAnaiEHIBEhCgNAIAoiCUEBdiEKIAlBAXFFDQALAkAgCUEDcA0AA0AgCUEDbiIJQQNwRQ0ACwsCQCAJQQVwDQADQCAJQQVuIglBBXBFDQALCwJAAkAgCUEBRw0AIAIgGiAZIBIgEUEBEIOAgIAADAELIAIgGiAZIBFBARCCgICAAAtBACEJAkAgHA0AQQAhCSAiIQwDQCAlIAlqIgogGiAJaiIIKwMAOQMAIApBCGogCEEIaisDADkDACAKQRBqIAhBEGorAwA5AwAgCkEYaiAIQRhqKwMAOQMAIAlBIGohCSAMQX5qIgwNAAsgIyEJCwJAICFFDQAgByAJQQN0IglqIBogCWorAwA5AwAgByAJQQhyIglqIBogCWorAwA5AwALICUgH2ohJSAmIChqISYgICAoaiEgIBtBAWoiGyAERw0ACwsLBwAgAEEGbAvkHgkIfwF7BH8FfAx/AXsJfwh7AnxBASEHIAIgBiAEIANsIghsIglBA3RqIQoCQAJAAkACQCAGQQJJDQAgBkEBcUUNAQsgCEUNAiAGQQN0IQsgBUEEdCEMIAIhDQNAIAAgDSAKIAUgBhCMgICAACAAIAxqIQAgDSALaiENIAhBf2oiCA0ADAILCyAKIAZBBXRqIg79DAAAAAAAAPA/AAAAAAAAAAAiD/0LAwAgBkEBdiEQIAogBkEobGohESAGQQR0IRIgBkEDdCETAkAgBkEESQ0ARBgtRFT7IRlAIBC4IhSjIRVBACELA0AgC0EBaiILIAtsIBBJDQALIBUQoYCAgAAhFiAVEJ+AgIAAIRUgDiENQQEhDANAAkACQCAMIAtwDQAgDUEYaiAMuEQYLURU+yEZQKIgFKMiFxChgICAADkDACANQRBqIBcQn4CAgAA5AwAMAQsgDUEYaiAWIA0rAwAiF6IgFSANQQhqKwMAIhiioDkDACANQRBqIBUgF6IgFiAYoqE5AwALIA1BEGohDSAQIAxBAWoiDEcNAAsLIAogEmohGSAKIBNqIRogESAP/QsDAEQYLURU+yEZwCAGuCIUoyEVQQAhCwNAIAtBAWoiCyALbCAGSQ0ACyAVEKGAgIAAIRYgFRCfgICAACEVIBEhDUEBIQwDQAJAAkAgDCALcA0AIA1BGGogDLhEGC1EVPshGcCiIBSjIhcQoYCAgAA5AwAgDUEQaiAXEJ+AgIAAOQMADAELIA1BGGogFiANKwMAIheiIBUgDUEIaisDACIYoqA5AwAgDUEQaiAVIBeiIBYgGKKhOQMACyANQRBqIQ0gBiAMQQFqIgxHDQALAkAgCA0AQQEhBwwCC0EAIRsgBkEESSIcIBBBf2oiHUVyIR4gHUF+cSEfIAYgCEEDdCITQQhqbCEgIBBBBHQgAGpBcGohISAQQQEgEEEBSxsiDUEBcSEiIA1B/v///wdxIiNBAXQhJCAQ/REhJSAdQQpJIAIgBiAIbEEDdCINaiIMQRhqIgsgACAFIAhBf2psQQR0IAZBA3QiJmpqIhJJIABBGGoiJyACIA0gJmpqIg1JcSIoICggCyASQXhqIilJIABBEGoiKiANSXEiKyAMQRBqIgwgEkkgJyANQXhqIhJJcSInIAwgKUkgKiASSXEiKSAnIAwgDUkgCyASSXEgDCACIAYgE0EoamwiKiAmamoiE0F4aiIsSSACICpqIipBEGoiLSASSXFyIAwgE0kgKkEYaiIMIBJJcXIgKSAFQQR0Ii5BAEgiBXJycnJyIAsgLEkgLSANSXFyIAsgE0kgDCANSXFycnIgKyAFcnJyckEBcSEtIAAhK0EAISoDQCAKIAAgLiAqbGoiDSsDACANICZqIgsrAwCgRAAAAAAAAOA/ojkDACAKIA0rAwAgCysDAKFEAAAAAAAA4D+iOQMIICogBmxBA3QhLAJAIB4NAEEAIQsCQCAtDQD9DAAAAAABAAAAAAAAAAAAAAAhLyAfIRIDQCAKIC/9DAEAAAABAAAAAQAAAAEAAAAiMP2uASIPQQH9qwEiMf0bAEEDdCILaiANIDH9GwFBA3QiDGogDSALav1dAwD9VwMAASIyIA0gJSAP/bEBQQH9qwEiM/0bAUEDdGogDSAz/RsAQQN0av1dAwD9VwMAASI0/fAB/QwAAAAAAADgPwAAAAAAAOA/Ig/98gEgESAMaiARIAtq/V0DAP1XAwABIjUgDSAxIDD9UCIx/RsBQQN0IgtqIA0gMf0bAEEDdCIFav1dAwD9VwMAASIxIA0gMyAw/VAiMP0bAUEDdGogDSAw/RsAQQN0av1dAwD9VwMAASIw/fABIA/98gEiM/3yASARIAtqIBEgBWr9XQMA/VcDAAEiNiAyIDT98QEgD/3yASIy/fIB/fEB/fEBIjT9IQA5AwAgCiAFaiAxIDD98QEgD/3yASA1IDL98gEgNiAz/fIB/fAB/fABIg/9IQA5AwAgCiAMaiA0/SEBOQMAIAogC2ogD/0hATkDACAv/QwCAAAAAgAAAAIAAAACAAAA/a4BIS8gEkF+aiISDQALIB8hCyAdIB9GDQELIB0gC2shEyAhIAtBBHQiC2shDSArIQwgCiEFIBEhEgNAIAUgC2oiJ0EYaiAMIAtqIihBGGorAwAiFiANQQhqKwMAIhWhRAAAAAAAAOA/oiASIAtqIilBEGorAwAiFyAoQRBqKwMAIhggDSsDACIUoUQAAAAAAADgP6IiN6IgKUEYaisDACI4IBYgFaBEAAAAAAAA4D+iIhaioKA5AwAgJ0EQaiAYIBSgRAAAAAAAAOA/oiAXIBaiIDggN6KhoTkDACAMQRBqIQwgBUEQaiEFIA1BcGohDSASQRBqIRIgE0F/aiITDQALCyACICxqIRIgECELA0AgCyINQQF2IQsgDUEBcUUNAAsCQCANQQNwDQADQCANQQNuIg1BA3BFDQALCwJAIA1BBXANAANAIA1BBW4iDUEFcEUNAAsLAkACQCANQQFHDQAgCiAaIBkgDiAQQQEQg4CAgAAMAQsgCiAaIBkgEEEBEIKAgIAAC0EAIQ0CQCAcDQAgIyEFIAIhDQNAIA0gG2oiCyANICBqIgwrAwA5AwAgC0EIaiAMQQhqKwMAOQMAIAtBEGogDEEQaisDADkDACALQRhqIAxBGGorAwA5AwAgDUEgaiENIAVBfmoiBQ0ACyAkIQ0LAkAgIkUNACASIA1BA3QiDWogGiANaisDADkDACASIA1BCHIiDWogGiANaisDADkDAAsgGyAmaiEbICsgLmohKyAhIC5qISEgKkEBaiIqIAhHDQALCyAJRQ0AIAkhDAJAIAlBAXFFDQAgAiAJQX9qIgxBBHRqIg1BCGpCADcDACANIAIgDEEDdGorAwA5AwALQQAhByAJQQFGDQAgDEEEdCACakFgaiENIAxBA3QgAmpBcGohCwNAIA1BGGpCADcDACALQQhqKwMAIRYgDUEIakIANwMAIA1BEGogFjkDACANIAsrAwA5AwAgDUFgaiENIAtBcGohCyAMQX5qIgwNAAsLIAIgCUEFdGohGiACIAlBBHQiLGohJgJAAkAgA0UNACAGQQR0ISggBEEFdCESIAZBAXEhKSAGIARsIiFBBHQhAEEAIAZBfnFrIREgBEUgBkVyISsgAiAEIAYgA2wiGUEEdEEQamxqISogAiEQICYhCEEAIS4DQAJAICsNACAmIC4gIWxBBHQiDWohGyACIA1qISBBACETIBAhJyAIIQogKiEFA0BBACENAkAgBkEBRg0AQQAhDSAnIQtBACEMA0AgCiANaiAL/QADAP0LAwAgBSANaiALQRBq/QADAP0LAwAgC0EgaiELIA0gEmohDSARIAxBfmoiDEcNAAtBACAMayENCwJAIClFDQAgGyANIARsIBNqQQR0aiAgIA0gEyAGbGpBBHRq/QADAP0LAwALICcgKGohJyAKQRBqIQogBUEQaiEFIBNBAWoiEyAERw0ACwsgECAAaiEQIAggAGohCCAqIABqISogLkEBaiIuIANHDQALICYgAiAaIAQgGSAEQQF0QQEQkoCAgAAgBEEEdCEoIAZBBXQhEiAEQQFxISkgIUEEdCEAQQAgBEF+cWshESACIAYgBCADbEEEdEEQamxqISogAiEQICYhCEEAIS4DQAJAICsNACAmIC4gIWxBBHQiDWohGyACIA1qISBBACETIBAhJyAIIQogKiEFA0BBACENAkAgBEEBRg0AQQAhDSAnIQtBACEMA0AgCiANaiAL/QADAP0LAwAgBSANaiALQRBq/QADAP0LAwAgC0EgaiELIA0gEmohDSARIAxBfmoiDEcNAAtBACAMayENCwJAIClFDQAgGyANIAZsIBNqQQR0aiAgIA0gEyAEbGpBBHRq/QADAP0LAwALICcgKGohJyAKQRBqIQogBUEQaiEFIBNBAWoiEyAGRw0ACwsgECAAaiEQIAggAGohCCAqIABqISogLkEBaiIuIANHDQALAkACQCAhDQBBACEoDAELIANBBXQhCiADQQR0IQUgIUEBcSEoICFBBHQhKUEAICFBfnFrIRIgJiETIAIhJ0EAIREDQEEAIQ0CQCAhQQFGDQBBACEMIBMhDSAnIQsDQCALIA39AAMA/QsDACALIAVqIA1BEGr9AAMA/QsDACANQSBqIQ0gCyAK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IgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAogAL1CNIinQf8PcWtBMk4NACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMICyACQTBqJICAgIAAIAQL9gUFAX8BfgF8AX8EfCOAgICAAEEQayIBJICAgIAAAkACQCAAvUIgiEL/////B4MiAkL7w6T/A1YNACACQoCAwPIDVA0BIAAgACAAIACiIgOiIAMgAyADIAOioiADRHzVz1o62eU9okTrnCuK5uVavqCiIAMgA0R9/rFX4x3HPqJE1WHBGaABKr+gokSm+BARERGBP6CgokRJVVVVVVXFv6CioCEADAELAkAgAkL//7//B1YNACAAIAEQoICAgAAhBCABKwMAIgMgA6IiACAAoiEFIAErAwghBgJAAkACQAJAIARBA3EOBAABAgMACyADIAMgAKIiB0RJVVVVVVXFP6IgACAGRAAAAAAAAOA/oiAHIAAgBaIgAER81c9aOtnlPaJE65wriublWr6goiAAIABEff6xV+Mdxz6iRNVhwRmgASq/oKJEpvgQERERgT+goKKhoiAGoaChIQAMBAtEAAAAAAAA8D8gAEQAAAAAAADgP6IiB6EiCEQAAAAAAADwPyAIoSAHoSAAIAAgACAARJAVyxmgAfo+okR3UcEWbMFWv6CiRExVVVVVVaU/oKIgBSAFoiAAIABE1DiIvun6qL2iRMSxtL2e7iE+oKJErVKcgE9+kr6goqCiIAMgBqKhoKAhAAwDCyADIAMgAKIiB0RJVVVVVVXFP6IgACAGRAAAAAAAAOA/oiAHIAAgBaIgAER81c9aOtnlPaJE65wriublWr6goiAAIABEff6xV+Mdxz6iRNVhwRmgASq/oKJEpvgQERERgT+goKKhoiAGoaChmiEADAILRAAAAAAAAPA/IABEAAAAAAAA4D+iIgehIghEAAAAAAAA8D8gCKEgB6EgACAAIAAgAESQFcsZoAH6PqJEd1HBFmzBVr+gokRMVVVVVVWlP6CiIAUgBaIgACAARNQ4iL7p+qi9okTEsbS9nu4hPqCiRK1SnIBPfpK+oKKgoiADIAaioaCgmiEADAELIAAgAKEhAAsgAUEQaiSAgICAACAACwui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",tn=null;function kA(){if(tn)return tn;let A=atob(lO),r=new Uint8Array(A.length);for(let t=0;t<A.length;t++)r[t]=A.charCodeAt(t);tn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:T()}});let I=tn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),tn}function yI(A){return kA().exports.fft_scratch_size(A)}function CH(A,r,I,t){kA().exports.fft_c128(A,r,I,t)}function aH(A,r,I,t){kA().exports.ifft_c128(A,r,I,t)}function BH(A,r,I,t){kA().exports.fft_c64(A,r,I,t)}function sH(A,r,I,t){kA().exports.ifft_c64(A,r,I,t)}function EH(A,r,I,t){kA().exports.rfft_f64(A,r,I,t)}function uH(A,r,I,t,o){kA().exports.irfft_f64(A,r,I,t,o)}function cH(A,r,I,t,o,e,g){kA().exports.rfft_batch_f64(A,r,I,t,o,e,g)}function DH(A,r,I,t,o,e,g){kA().exports.irfft_batch_f64(A,r,I,t,o,e,g)}function Gy(A){return kA().exports.rfft_batch_scratch_size(A)}function fH(A,r,I,t,o,e,g){kA().exports.irfftn_3d(A,r,I,t,o,e,g)}function yH(A,r,I){return kA().exports.irfftn_3d_scratch_size(A,r,I)}function mH(A,r,I,t,o){kA().exports.fft_batch_c128(A,r,I,t,o)}function lH(A,r,I,t,o){kA().exports.ifft_batch_c128(A,r,I,t,o)}function hH(A,r,I,t,o){kA().exports.fft2_c128(A,r,I,t,o)}function wH(A,r,I,t,o){kA().exports.ifft2_c128(A,r,I,t,o)}function dH(A,r){return kA().exports.fft2_scratch_size(A,r)}function bH(A,r,I,t,o){kA().exports.rfft2_f64(A,r,I,t,o)}function pH(A,r){return kA().exports.rfft2_scratch_size(A,r)}function NH(A,r,I,t,o,e){kA().exports.irfft2_f64(A,r,I,t,o,e)}function FH(A,r){return kA().exports.irfft2_scratch_size(A,r)}var vC=32;function GH(A){if(!A.isCContiguous)return null;let r=A.size;if(r<vC*K.thresholdMultiplier)return null;let I=A.dtype;if(I==="complex128"){let t=yI(r),o=r*2,e=o*8,g=o*8,i=t*8;x(e+g+i),U();let n=A.data.subarray(A.offset*2,(A.offset+r)*2),Q=R(n),C=H(g),a=H(i);CH(Q,C,a,r);let B=_(C,o,Float64Array);return d.fromData(B,Array.from(A.shape),"complex128")}if(I==="complex64"){let t=4*r+yI(r),o=r*2,e=o*4,g=o*4,i=t*8;x(e+g+i),U();let n=A.data.subarray(A.offset*2,(A.offset+r)*2),Q=R(n),C=H(g),a=H(i);BH(Q,C,a,r);let B=_(C,o,Float32Array);return d.fromData(B,Array.from(A.shape),"complex64")}return null}function SH(A){if(!A.isCContiguous)return null;let r=A.size;if(r<vC*K.thresholdMultiplier)return null;let I=A.dtype;if(I==="complex128"){let t=yI(r),o=r*2,e=o*8,g=o*8,i=t*8;x(e+g+i),U();let n=A.data.subarray(A.offset*2,(A.offset+r)*2),Q=R(n),C=H(g),a=H(i);aH(Q,C,a,r);let B=_(C,o,Float64Array);return d.fromData(B,Array.from(A.shape),"complex128")}if(I==="complex64"){let t=4*r+yI(r),o=r*2,e=o*4,g=o*4,i=t*8;x(e+g+i),U();let n=A.data.subarray(A.offset*2,(A.offset+r)*2),Q=R(n),C=H(g),a=H(i);sH(Q,C,a,r);let B=_(C,o,Float32Array);return d.fromData(B,Array.from(A.shape),"complex64")}return null}function RH(A,r){if(!A.isCContiguous||A.dtype!=="float64"||r<vC*K.thresholdMultiplier)return null;let I=Math.floor(r/2)+1,t=4*r+yI(r),o=r*8,e=I*2*8,g=t*8;x(o+e+g),U();let i=A.data.subarray(A.offset,A.offset+r),n=R(i),Q=H(e),C=H(g);EH(n,Q,C,r);let a=_(Q,I*2,Float64Array),B=Array.from(A.shape);return B[B.length-1]=I,d.fromData(a,B,"complex128")}function kH(A,r){if(!A.isCContiguous||A.dtype!=="complex128")return null;let I=A.size;if(r<vC*K.thresholdMultiplier)return null;let t=4*r+yI(r),o=I*2*8,e=r*8,g=t*8;x(o+e+g),U();let i=A.data.subarray(A.offset*2,(A.offset+I)*2),n=R(i),Q=H(e),C=H(g);uH(n,Q,C,I,r);let a=_(Q,r,Float64Array),B=Array.from(A.shape);return B[B.length-1]=r,d.fromData(a,B,"float64")}function qH(A,r,I,t){let o=r*I*2,e=dH(r,I),g=o*8,i=e*8;x(g*2+i),U();let n=R(A.subarray(0,o)),Q=H(g),C=H(i);return(t?wH:hH)(n,Q,C,r,I),_(Q,o,Float64Array)}function Sy(A,r,I,t){let o=I*r*2,e=yI(r),g=o*8,i=e*8;x(g*2+i),U();let n=R(A.subarray(0,o)),Q=H(g),C=H(i);return(t?lH:mH)(n,Q,C,r,I),_(Q,o,Float64Array)}function MH(A,r,I,t,o){let e=Math.floor(r/2)+1,g=I*r*8,i=I*e*2*8,Q=Gy(r)*8;x(g+i+Q),U();let C=R(A.subarray(0,I*r)),a=H(i),B=H(Q);return cH(C,a,B,r,I,t,o),_(a,I*e*2,Float64Array)}function JH(A,r,I,t,o,e){let g=t*r*2*8,i=t*I*8,Q=Gy(I)*8;x(g+i+Q),U();let C=R(A.subarray(0,t*r*2)),a=H(i),B=H(Q);return DH(C,a,B,I,t,o,e),_(a,t*I,Float64Array)}function xH(A,r,I){let t=Math.floor(I/2)+1,o=pH(r,I),e=r*I*8,g=r*t*2*8,i=o*8;x(e+g+i),U();let n=R(A),Q=H(g),C=H(i);return bH(n,Q,C,r,I),_(Q,r*t*2,Float64Array)}function UH(A,r,I,t){let o=FH(r,t),e=r*I*2*8,g=r*t*8,i=o*8;x(e+g+i),U();let n=R(A.subarray(0,r*I*2)),Q=H(g),C=H(i);return NH(n,Q,C,r,I,t),_(Q,r*t,Float64Array)}function LH(A,r,I,t,o){let e=r*I*t*2,g=r*I*o,i=e*8,n=g*8,C=yH(r,I,o)*8;x(i+n+C),U();let a=R(A.subarray(0,e)),B=H(n),s=H(C);return fH(a,B,s,r,I,t,o),_(B,g,Float64Array)}function hO(A,r,I){let t=A.length;t!==0&&t!==1&&((t&t-1)===0?XC(A,r,I):dO(A,r,I))}var on=new Map;function wO(A,r){let I=`${A}_${r}`,t=on.get(I);if(t)return t;let o=new Float64Array(A/2),e=new Float64Array(A/2),g=r?1:-1;for(let i=0;i<A/2;i++){let n=g*2*Math.PI*i/A;o[i]=Math.cos(n),e[i]=Math.sin(n)}if(t={cos:o,sin:e},on.set(I,t),on.size>100){let i=on.keys().next().value;on.delete(i)}return t}function XC(A,r,I){let t=A.length,o=0;for(let i=0;i<t-1;i++){if(i<o){let Q=A[i];A[i]=A[o],A[o]=Q,Q=r[i],r[i]=r[o],r[o]=Q}let n=t>>1;for(;n<=o;)o-=n,n>>=1;o+=n}let{cos:e,sin:g}=wO(t,I);for(let i=2;i<=t;i*=2){let n=i>>1,Q=t/i;for(let C=0;C<t;C+=i)for(let a=0,B=0;a<n;a++,B+=Q){let s=e[B],E=g[B],u=C+a,D=C+a+n,y=A[u],f=r[u],c=A[D],m=r[D],l=s*c-E*m,w=s*m+E*c;A[u]=y+l,r[u]=f+w,A[D]=y-l,r[D]=f-w}}if(I){let i=1/t;for(let n=0;n<t;n++)A[n]=A[n]*i,r[n]=r[n]*i}}function dO(A,r,I){let t=A.length,o=1;for(;o<2*t-1;)o*=2;let e=I?1:-1,g=new Float64Array(t),i=new Float64Array(t);for(let B=0;B<t;B++){let s=e*Math.PI*B*B/t;g[B]=Math.cos(s),i[B]=Math.sin(s)}let n=new Float64Array(o),Q=new Float64Array(o);for(let B=0;B<t;B++){let s=g[B],E=i[B];n[B]=A[B]*s-r[B]*E,Q[B]=r[B]*s+A[B]*E}let C=new Float64Array(o),a=new Float64Array(o);C[0]=g[0],a[0]=-i[0];for(let B=1;B<t;B++)C[B]=g[B],a[B]=-i[B],C[o-B]=g[B],a[o-B]=-i[B];XC(n,Q,!1),XC(C,a,!1);for(let B=0;B<o;B++){let s=n[B],E=Q[B],u=C[B],D=a[B];n[B]=s*u-E*D,Q[B]=s*D+E*u}XC(n,Q,!0);for(let B=0;B<t;B++){let s=n[B],E=Q[B],u=g[B],D=i[B];A[B]=s*u-E*D,r[B]=E*u+s*D}if(I)for(let B=0;B<t;B++)A[B]=A[B]/t,r[B]=r[B]/t}function OC(A,r,I=-1,t="backward"){if(r===void 0&&(I===-1||I===A.ndim-1)&&t==="backward"&&A.ndim===1){let o=k(A.dtype)?A:Tr(A),e=GH(o);if(e)return e}return Gt(A,r!==void 0?[r]:void 0,[I],t,!1)}function en(A,r,I=-1,t="backward"){if(r===void 0&&(I===-1||I===A.ndim-1)&&t==="backward"&&A.ndim===1){let o=k(A.dtype)?A:Tr(A),e=SH(o);if(e)return e}return Gt(A,r!==void 0?[r]:void 0,[I],t,!0)}function Ry(A,r,I=[-2,-1],t="backward"){return Gt(A,r,I,t,!1)}function HH(A,r,I=[-2,-1],t="backward"){return Gt(A,r,I,t,!0)}function YH(A,r,I,t="backward"){return Gt(A,r,I,t,!1)}function PH(A,r,I,t="backward"){return Gt(A,r,I,t,!0)}function Gt(A,r,I,t="backward",o=!1){let e=Array.from(A.shape),g=e.length;if(A.size===0)return d.zeros(e,"complex128");if(g===0){let C=d.zeros([1],"complex128"),a=A.iget(0),B=a instanceof X?a.re:Number(a),s=a instanceof X?a.im:0,E=C.data;return E[0]=B,E[1]=s,d.fromData(C.data,[],"complex128")}let i;if(I===void 0)if(r===void 0)i=Array.from({length:g},(C,a)=>a);else{i=[];for(let C=0;C<r.length;C++)i.push(g-r.length+C)}else i=I.map(C=>C<0?g+C:C);let n=[...e];if(r!==void 0)for(let C=0;C<r.length;C++){let a=i[C];n[a]=r[C]}let Q=Tr(A);if(r!==void 0&&(Q=bO(Q,n,i)),i.length===2&&Q.ndim===2&&t==="backward"&&Q.isCContiguous){let C=Q.shape[i[0]],a=Q.shape[i[1]];if(i[0]===0&&i[1]===1&&C>=Lr*K.thresholdMultiplier&&a>=Lr*K.thresholdMultiplier){let s=Q.data,E=qH(s,C,a,o);if(E)return d.fromData(E,[C,a],"complex128")}}for(let C of i)Q=GO(Q,C,o,t);return Q}function Tr(A){let r=A.dtype,I=Array.from(A.shape),t=A.size;if(r==="complex128"||r==="complex64"){let i=d.zeros(I,"complex128"),n=i.data,Q=A.data;for(let C=0;C<t*2;C++)n[C]=Q[C];return i}let o=d.zeros(I,"complex128"),e=o.data,g=A.data;if(r==="float64"){let i=g;for(let n=0;n<t;n++)e[n*2]=i[n]}else if(r==="float32"){let i=g;for(let n=0;n<t;n++)e[n*2]=i[n]}else if(r==="int32"){let i=g;for(let n=0;n<t;n++)e[n*2]=i[n]}else if(r==="int16"){let i=g;for(let n=0;n<t;n++)e[n*2]=i[n]}else if(r==="int8"){let i=g;for(let n=0;n<t;n++)e[n*2]=i[n]}else if(r==="uint32"){let i=g;for(let n=0;n<t;n++)e[n*2]=i[n]}else if(r==="uint16"){let i=g;for(let n=0;n<t;n++)e[n*2]=i[n]}else if(r==="uint8"){let i=g;for(let n=0;n<t;n++)e[n*2]=i[n]}else if(r==="int64"||r==="uint64"){let i=g;for(let n=0;n<t;n++)e[n*2]=Number(i[n])}else for(let i=0;i<t;i++)e[i*2]=Number(g[i]);return o}function bO(A,r,I){let t=Array.from(A.shape),o=A;for(let e of I){let g=t[e],i=r[e];g!==i&&(i>g?o=pO(o,e,i):o=ky(o,e,i),t[e]=i)}return o}function pO(A,r,I){let t=Array.from(A.shape),o=t[r];t[r]=I;let e=d.zeros(t,"complex128"),g=e.data,i=A.data,n=t.slice(0,r).reduce((C,a)=>C*a,1),Q=t.slice(r+1).reduce((C,a)=>C*a,1);for(let C=0;C<n;C++)for(let a=0;a<o;a++)for(let B=0;B<Q;B++){let s=(C*o+a)*Q+B,E=(C*I+a)*Q+B;g[E*2]=i[s*2],g[E*2+1]=i[s*2+1]}return e}function ky(A,r,I){let t=Array.from(A.shape),o=t[r];t[r]=I;let e=d.zeros(t,"complex128"),g=e.data,i=A.data,n=t.slice(0,r).reduce((C,a)=>C*a,1),Q=t.slice(r+1).reduce((C,a)=>C*a,1);for(let C=0;C<n;C++)for(let a=0;a<I;a++)for(let B=0;B<Q;B++){let s=(C*o+a)*Q+B,E=(C*I+a)*Q+B;g[E*2]=i[s*2],g[E*2+1]=i[s*2+1]}return e}var Lr=32;function NO(A,r){let I=Array.from(A.shape),t=I.length,o=Math.floor(r/2)+1,e=I.slice(0,t-1).reduce((a,B)=>a*B,1),g=r,i=o*2,n=A.dtype==="float64"?A.data:Float64Array.from(A.data.subarray(A.offset,A.offset+A.size)),Q=MH(n,r,e,g,i);if(!Q)return null;let C=[...I];return C[t-1]=o,d.fromData(Q,C,"complex128")}function FO(A,r){let I=Array.from(A.shape),t=I.length,o=I[t-1],e=I.slice(0,t-1).reduce((B,s)=>B*s,1),g=o*2,i=r,Q=Tr(A).data,C=JH(Q,o,r,e,g,i);if(!C)return null;let a=[...I];return a[t-1]=r,d.fromData(C,a,"float64")}function GO(A,r,I,t){let o=Array.from(A.shape),e=o[r];if(e===0)return A;let g=d.zeros(o,"complex128"),i=g.data,n=A.data,Q=o.slice(0,r).reduce((s,E)=>s*E,1),C=o.slice(r+1).reduce((s,E)=>s*E,1);if(C===1&&e>=Lr*K.thresholdMultiplier){let s=Q*e*2,E=Sy(n,e,Q,I);if(E){if(i.set(E),t==="ortho"){let u=I?Math.sqrt(e):1/Math.sqrt(e);for(let D=0;D<s;D++)i[D]=i[D]*u}else if(t==="forward"&&!I){let u=1/e;for(let D=0;D<s;D++)i[D]=i[D]*u}else if(t==="forward"&&I)for(let u=0;u<s;u++)i[u]=i[u]*e;return g}}if(C>1&&e>=Lr*K.thresholdMultiplier){let s=Q*C,E=s*e*2,u=new Float64Array(E),D=0;for(let f=0;f<Q;f++)for(let c=0;c<C;c++){let m=D*e*2;for(let l=0;l<e;l++){let w=((f*e+l)*C+c)*2;u[m+l*2]=n[w],u[m+l*2+1]=n[w+1]}D++}let y=Sy(u,e,s,I);if(y){D=0;for(let c=0;c<Q;c++)for(let m=0;m<C;m++){let l=D*e*2;for(let w=0;w<e;w++){let h=((c*e+w)*C+m)*2;i[h]=y[l+w*2],i[h+1]=y[l+w*2+1]}D++}let f=Q*e*C*2;if(t==="ortho"){let c=I?Math.sqrt(e):1/Math.sqrt(e);for(let m=0;m<f;m++)i[m]=i[m]*c}else if(t==="forward"&&!I){let c=1/e;for(let m=0;m<f;m++)i[m]=i[m]*c}else if(t==="forward"&&I)for(let c=0;c<f;c++)i[c]=i[c]*e;return g}}let a=new Float64Array(e),B=new Float64Array(e);for(let s=0;s<Q;s++)for(let E=0;E<C;E++){for(let u=0;u<e;u++){let D=(s*e+u)*C+E;a[u]=n[D*2],B[u]=n[D*2+1]}if(hO(a,B,I),t==="ortho"){let u=1/Math.sqrt(e);if(I){let D=Math.sqrt(e);for(let y=0;y<e;y++)a[y]=a[y]*D,B[y]=B[y]*D}else for(let D=0;D<e;D++)a[D]=a[D]*u,B[D]=B[D]*u}else if(t==="forward"&&!I){let u=1/e;for(let D=0;D<e;D++)a[D]=a[D]*u,B[D]=B[D]*u}else if(!(t==="backward"&&I)){if(t==="forward"&&I)for(let u=0;u<e;u++)a[u]=a[u]*e,B[u]=B[u]*e}for(let u=0;u<e;u++){let D=(s*e+u)*C+E;i[D*2]=a[u],i[D*2+1]=B[u]}}return g}function VC(A,r,I=-1,t="backward"){let o=Array.from(A.shape),e=o.length,g=I<0?e+I:I,i=r??o[g],n=Math.floor(i/2)+1;if(e===1&&r===void 0&&t==="backward"&&!k(A.dtype)&&A.dtype==="float64"){let C=RH(A,i);if(C)return C}if(g===e-1&&A.isCContiguous&&r===void 0&&t==="backward"&&!k(A.dtype)&&i>=Lr*K.thresholdMultiplier&&i%2===0){let C=NO(A,i);if(C)return C}let Q=OC(A,i,I,t);return ky(Q,g,n)}function gn(A,r,I=-1,t="backward"){let o=Array.from(A.shape),e=o.length,g=I<0?e+I:I,i=o[g],n=r??(i-1)*2;if(e===1&&t==="backward"&&k(A.dtype)&&A.dtype==="complex128"){let D=kH(A,n);if(D)return D}if(g===e-1&&A.isCContiguous&&t==="backward"&&n%2===0&&n>=Lr*K.thresholdMultiplier&&i===Math.floor(n/2)+1){let D=FO(A,n);if(D)return D}let Q=[...o];Q[g]=n;let C=d.zeros(Q,"complex128"),a=C.data,B=Tr(A).data,s=o.slice(0,g).reduce((D,y)=>D*y,1),E=o.slice(g+1).reduce((D,y)=>D*y,1);for(let D=0;D<s;D++)for(let y=0;y<E;y++){for(let f=0;f<i;f++){let c=(D*i+f)*E+y,m=(D*n+f)*E+y;a[m*2]=B[c*2],a[m*2+1]=B[c*2+1]}for(let f=i;f<n;f++){let c=n-f,m=(D*i+c)*E+y,l=(D*n+f)*E+y;a[l*2]=B[m*2],a[l*2+1]=-B[m*2+1]}}let u=en(C,n,I,t);return TC(u)}function _H(A,r,I=[-2,-1],t="backward"){let o=Array.from(A.shape),e=o.length,g=I[0]<0?e+I[0]:I[0],i=I[1]<0?e+I[1]:I[1];if(e===2&&g===0&&i===1&&t==="backward"&&!r&&A.isCContiguous&&!k(A.dtype)){let a=o[0],B=o[1];if(a>=Lr*K.thresholdMultiplier&&B>=Lr*K.thresholdMultiplier){let s=Math.floor(B/2)+1,E=A.dtype==="float64"?A.data.subarray(A.offset,A.offset+a*B):Float64Array.from(A.data.subarray(A.offset,A.offset+a*B)),u=xH(E,a,B);if(u)return d.fromData(u,[a,s],"complex128")}}let n=Ry(A,r,I,t),Q=r?r[1]:o[i],C=Math.floor(Q/2)+1;return ky(n,i,C)}function KH(A,r,I=[-2,-1],t="backward"){let o=Array.from(A.shape),e=o.length,g=I[0]<0?e+I[0]:I[0],i=I[1]<0?e+I[1]:I[1],n=o[i],Q=r?r[1]:(n-1)*2,C=r?r[0]:o[g];if(e===2&&g===0&&i===1&&t==="backward"&&!r&&A.isCContiguous&&k(A.dtype)){let B=o[0],s=o[1];if(B>=Lr*K.thresholdMultiplier&&Q>=Lr*K.thresholdMultiplier){let E=A.data.subarray(A.offset,A.offset+B*s*2),u=UH(E,B,s,Q);if(u)return d.fromData(u,[B,Q],"float64")}}let a=gn(A,Q,i,t);return a=en(a,C,g,t),TC(a)}function vH(A,r,I,t="backward"){let e=Array.from(A.shape).length,g;if(I===void 0?g=Array.from({length:e},(C,a)=>a):g=I.map(C=>C<0?e+C:C),g.length===0)return Tr(A);let i=g[g.length-1],n=r?r[g.length-1]:void 0,Q=VC(A,n,i,t);for(let C=0;C<g.length-1;C++){let a=g[C],B=r?r[C]:void 0;Q=OC(Q,B,a,t)}return Q}function XH(A,r,I,t="backward"){let o=Array.from(A.shape),e=o.length,g;if(I===void 0?g=Array.from({length:e},(a,B)=>B):g=I.map(a=>a<0?e+a:a),g.length===0)return TC(Tr(A));let i=g[g.length-1],n=o[i],Q=r?[...r]:g.map((a,B)=>B===g.length-1?(n-1)*2:o[a]);if(e===3&&g.length===3&&g[0]===0&&g[1]===1&&g[2]===2&&t==="backward"&&r===void 0&&A.isCContiguous&&k(A.dtype)&&Q[2]%2===0){let a=Q[0],B=Q[1],s=n,E=Q[2],u=Tr(A),D=LH(u.data,a,B,s,E);if(D)return d.fromData(D,[a,B,E],"float64")}let C=gn(A,Q[g.length-1],i,t);for(let a=g.length-2;a>=0;a--){let B=g[a];C=en(C,Q[a],B,t)}return TC(C)}function TH(A,r,I=-1,t="backward"){let o=Array.from(A.shape),e=o.length,g=I<0?e+I:I,i=o[g],n=r??(i-1)*2,Q=VH(Tr(A)),C=gn(Q,n,I,t),a=C.data;for(let B=0;B<C.size;B++)a[B]=a[B]*n;return C}function OH(A,r,I=-1,t="backward"){let o=Array.from(A.shape),e=o.length,g=I<0?e+I:I,i=r??o[g],n=VC(A,i,I,t),Q=VH(n),C=Q.data;for(let a=0;a<Q.size*2;a++)C[a]=C[a]/i;return Q}function VH(A){let r=Array.from(A.shape),I=A.size,t=d.zeros(r,"complex128"),o=t.data,e=A.data;for(let g=0;g<I;g++)o[g*2]=e[g*2],o[g*2+1]=-e[g*2+1];return t}function TC(A){let r=Array.from(A.shape),I=A.size,t=d.zeros(r,"float64"),o=t.data,e=A.data;for(let g=0;g<I;g++)o[g]=e[g*2];return t}function WH(A,r=1){let I=d.zeros([A],"float64"),t=I.data,o=Math.floor((A-1)/2)+1;for(let e=0;e<o;e++)t[e]=e/(A*r);for(let e=o;e<A;e++)t[e]=(e-A)/(A*r);return I}function ZH(A,r=1){let I=Math.floor(A/2)+1,t=d.zeros([I],"float64"),o=t.data;for(let e=0;e<I;e++)o[e]=e/(A*r);return t}function zH(A,r){let I=Array.from(A.shape),t=I.length,o;r===void 0?o=Array.from({length:t},(g,i)=>i):typeof r=="number"?o=[r<0?t+r:r]:o=r.map(g=>g<0?t+g:g);let e=o.map(g=>Math.floor(I[g]/2));return t===1&&o.length===1&&o[0]===0?hI(A,e[0]):hI(A,e,o)}function jH(A,r){let I=Array.from(A.shape),t=I.length,o;r===void 0?o=Array.from({length:t},(g,i)=>i):typeof r=="number"?o=[r<0?t+r:r]:o=r.map(g=>g<0?t+g:g);let e=o.map(g=>-Math.floor(I[g]/2));return t===1&&o.length===1&&o[0]===0?hI(A,e[0]):hI(A,e,o)}var $=A=>{if(A instanceof sA)return A;let r=A.base?$(A.base):void 0;return sA.fromStorage(A.storage,r)},sA=class A extends IA{constructor(r,I){super(r,I),this._base=I}static fromStorage(r,I){return new A(r,I)}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return Zr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(r){let I=this._storage.dtype,t=this.size;if(P(I)){let o=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));for(let e=0;e<t;e++)this._storage.iset(e,o)}else if(I==="bool"){let o=r?1:0;for(let e=0;e<t;e++)this._storage.iset(e,o)}else{let o=Number(r);for(let e=0;e<t;e++)this._storage.iset(e,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let r=0;r<this.shape[0];r++)yield this._storage.iget(r);else for(let r=0;r<this.shape[0];r++)yield this.slice(String(r))}get(r){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let I=r.map((t,o)=>{let e=t;if(e<0&&(e=this.shape[o]+e),e<0||e>=this.shape[o])throw new Error(`Index ${t} is out of bounds for axis ${o} with size ${this.shape[o]}`);return e});return this._storage.get(...I)}set(r,I){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let t=r.map((e,g)=>{let i=e;if(i<0&&(i=this.shape[g]+i),i<0||i>=this.shape[g])throw new Error(`Index ${e} is out of bounds for axis ${g} with size ${this.shape[g]}`);return i}),o=this.dtype;if(k(o))this._storage.set(t,I);else if(P(o)){let e=I instanceof X?I.re:Number(I),g=typeof I=="bigint"?I:BigInt(Math.round(e));this._storage.set(t,g)}else if(o==="bool"){let g=(I instanceof X?I.re:Number(I))?1:0;this._storage.set(t,g)}else{let e=I instanceof X?I.re:Number(I);this._storage.set(t,e)}}copy(){return new A(this._storage.copy())}astype(r,I=!0){let t=super.astype(r,I);return t instanceof A?t:new A(t._storage)}row(r){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(r),":")}col(r){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(r))}rows(r,I){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${r}:${I}`,":")}cols(r,I){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${r}:${I}`)}reshape(...r){let I=r.length===1&&Array.isArray(r[0])?r[0]:r,t=he(this,I).storage,e=t.data===this.data?this._base??this:void 0;return A.fromStorage(t,e)}ravel(){let r=we(this).storage,t=r.data===this.data?this._base??this:void 0;return A.fromStorage(r,t)}put(r,I){let t=I instanceof A?I._storage:I;yt(this,r,t)}compress(r,I){let t=r instanceof A?r:A.fromStorage(d.fromData(new Uint8Array(r.map(o=>o?1:0)),[r.length],"bool"));return $(FI(t,this,I))}choose(r){return $(Xi(this,r))}clip(r,I){return $(xo(this,r,I))}iindex(r,I=0){let t;if(r instanceof A){t=[];for(let o=0;o<r.size;o++){let e=r.storage.iget(o),g=typeof e=="bigint"?Number(e):e instanceof X?e.re:e;t.push(g)}}else Array.isArray(r)&&r.length>0&&Array.isArray(r[0])?t=r.flat():t=r;return this.take(t,I)}bindex(r,I){return $(FI(r,this,I))}toString(){return mt(this)}toArray(){if(this.ndim===0)return this._storage.iget(0);let r=this.shape,I=r.length,t=(o,e)=>{if(e===I)return this._storage.get(...o);let g=[];for(let i=0;i<r[e];i++)o[e]=i,g.push(t(o,e+1));return g};return t(new Array(I),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let t=this._storage.data,o=t.BYTES_PER_ELEMENT,e=this._storage.offset*o,g=this.size*o;return t.buffer.slice(e,e+g)}let I=this.copy()._storage.data;return I.buffer.slice(0,this.size*I.BYTES_PER_ELEMENT)}item(...r){if(r.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(r.length===1){let I=r[0];if(I<0||I>=this.size)throw new Error(`index ${I} is out of bounds for size ${this.size}`);return this._storage.iget(I)}return this.get(r)}byteswap(r=!1){let I=r?this:this.copy(),t=I._storage.data,o=t.BYTES_PER_ELEMENT;if(o===1)return I;let e=t.buffer,g=new DataView(e);for(let i=0;i<t.length;i++){let n=i*o;if(o===2){let Q=g.getUint8(n),C=g.getUint8(n+1);g.setUint8(n,C),g.setUint8(n+1,Q)}else if(o===4){let Q=g.getUint8(n),C=g.getUint8(n+1),a=g.getUint8(n+2),B=g.getUint8(n+3);g.setUint8(n,B),g.setUint8(n+1,a),g.setUint8(n+2,C),g.setUint8(n+3,Q)}else if(o===8){let Q=g.getUint8(n),C=g.getUint8(n+1),a=g.getUint8(n+2),B=g.getUint8(n+3),s=g.getUint8(n+4),E=g.getUint8(n+5),u=g.getUint8(n+6),D=g.getUint8(n+7);g.setUint8(n,D),g.setUint8(n+1,u),g.setUint8(n+2,E),g.setUint8(n+3,s),g.setUint8(n+4,B),g.setUint8(n+5,a),g.setUint8(n+6,C),g.setUint8(n+7,Q)}}return I}view(r){if(!r||r===this.dtype)return A.fromStorage(this._storage,this._base??this);let I=Zr(this.dtype),t=Zr(r);if(I!==t)throw new Error("When changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.");let o=iA(r);if(!o)throw new Error(`Unsupported dtype: ${r}`);let e=this._storage.data,g=e.byteOffset+this._storage.offset*I,i=new o(e.buffer,g,this.size),n=d.fromData(i,[...this.shape],r,[...this._storage.strides],0);return A.fromStorage(n,this._base??this)}tofile(r,I="",t=""){throw new Error('tofile() requires file system access. Use the node module: import { save } from "numpy-ts/node"')}round(r=0){return this.around(r)}conjugate(){return this.conj()}around(r=0){return $(Si(this,r))}allclose(r,I=1e-5,t=1e-8){return Et(this,r,I,t)}isclose(r,I=1e-5,t=1e-8){return $(Ai(this,r,I,t))}average(r,I){let t=ag(this,I,r);return t instanceof IA?$(t):t}dot(r){let I=zI(this,r);return I instanceof IA?$(I):I}trace(){let r=jI(this);return r instanceof IA?$(r):r}inner(r){let I=rt(this,r);return I instanceof IA?$(I):I}tensordot(r,I=2){let t=tt(this,r,I);return t instanceof IA?$(t):t}divmod(r){let I=ko(this,r);return[$(I[0]),$(I[1])]}searchsorted(r,I="left"){return $(ct(this,r,I))}sqrt(){return $(ao(this))}exp(){return $(so(this))}exp2(){return $(Eo(this))}expm1(){return $(uo(this))}log(){return $(co(this))}log2(){return $(Do(this))}log10(){return $(fo(this))}log1p(){return $(yo(this))}absolute(){return $(ho(this))}negative(){return $(wo(this))}sign(){return $(bo(this))}positive(){return $(Fo(this))}reciprocal(){return $(Go(this))}ceil(){return $(Ri(this))}fix(){return $(ki(this))}floor(){return $(qi(this))}rint(){return $(Mi(this))}trunc(){return $(Ji(this))}sin(){return $(To(this))}cos(){return $(Oo(this))}tan(){return $(Vo(this))}arcsin(){return $(Wo(this))}arccos(){return $(Zo(this))}arctan(){return $(zo(this))}degrees(){return $(Ae(this))}radians(){return $(re(this))}sinh(){return $(Ie(this))}cosh(){return $(te(this))}tanh(){return $(oe(this))}arcsinh(){return $(ee(this))}arccosh(){return $(ge(this))}arctanh(){return $(ie(this))}bitwise_not(){return $(pi(this))}invert(){return $(Ni(this))}logical_not(){return $(Lg(this))}isfinite(){return $(Yg(this))}isinf(){return $(Pg(this))}isnan(){return $(_g(this))}isnat(){return $(Kg(this))}signbit(){return $(Xg(this))}spacing(){return $(Og(this))}cbrt(){return $(So(this))}fabs(){return $(Ro(this))}square(){return $(qo(this))}conj(){return $(_i(this))}flatten(){return $(wr(this))}argwhere(){return $(Ei(this))}add(r){return $(no(this,r))}subtract(r){return $(Qo(this,r))}multiply(r){return $(Co(this,r))}divide(r){return $(XI(this,r))}mod(r){return $(po(this,r))}floor_divide(r){return $(No(this,r))}power(r){return $(Bo(this,r))}logaddexp(r){return $(mo(this,r))}logaddexp2(r){return $(lo(this,r))}arctan2(r){return $(jo(this,r))}hypot(r){return $($o(this,r))}greater(r){return $(Vg(this,r))}greater_equal(r){return $(Wg(this,r))}less(r){return $(Zg(this,r))}less_equal(r){return $(zg(this,r))}equal(r){return $(jg(this,r))}not_equal(r){return $($g(this,r))}bitwise_and(r){return $(wi(this,r))}bitwise_or(r){return $(di(this,r))}bitwise_xor(r){return $(bi(this,r))}left_shift(r){return $(Fi(this,r))}right_shift(r){return $(Gi(this,r))}logical_and(r){return $(xg(this,r))}logical_or(r){return $(Ug(this,r))}logical_xor(r){return $(Hg(this,r))}copysign(r){return $(vg(this,r))}nextafter(r){return $(Tg(this,r))}remainder(r){return $(Mo(this,r))}heaviside(r){return $(Jo(this,r))}matmul(r){return $(le(this,r))}outer(r){return $(It(this,r))}sum(r,I=!1){let t=ze(this,r,I);return t instanceof IA?$(t):t}mean(r,I=!1){let t=je(this,r,I);return t instanceof IA?$(t):t}prod(r,I=!1){let t=$e(this,r,I);return t instanceof IA?$(t):t}max(r,I=!1){let t=Ag(this,r,I);return t instanceof IA?$(t):t}min(r,I=!1){let t=Ig(this,r,I);return t instanceof IA?$(t):t}ptp(r,I=!1){let t=og(this,r,I);return t instanceof IA?$(t):t}nansum(r,I=!1){let t=cg(this,r,I);return t instanceof IA?$(t):t}nanprod(r,I=!1){let t=Dg(this,r,I);return t instanceof IA?$(t):t}nanmean(r,I=!1){let t=fg(this,r,I);return t instanceof IA?$(t):t}nanmin(r,I=!1){let t=lg(this,r,I);return t instanceof IA?$(t):t}nanmax(r,I=!1){let t=hg(this,r,I);return t instanceof IA?$(t):t}argmin(r){let I=eg(this,r);return I instanceof IA?$(I):I}argmax(r){let I=gg(this,r);return I instanceof IA?$(I):I}nanargmin(r){let I=wg(this,r);return I instanceof IA?$(I):I}nanargmax(r){let I=dg(this,r);return I instanceof IA?$(I):I}var(r,I=0,t=!1){let o=bI(this,r,I,t);return o instanceof IA?$(o):o}std(r,I=0,t=!1){let o=ig(this,r,I,t);return o instanceof IA?$(o):o}nanvar(r,I=0,t=!1){let o=yg(this,r,I,t);return o instanceof IA?$(o):o}nanstd(r,I=0,t=!1){let o=mg(this,r,I,t);return o instanceof IA?$(o):o}all(r,I=!1){let t=Bg(this,r,I);return t instanceof IA?$(t):t}any(r,I=!1){let t=sg(this,r,I);return t instanceof IA?$(t):t}median(r,I=!1){let t=ng(this,r,I);return t instanceof IA?$(t):t}nanmedian(r,I=!1){let t=Ng(this,r,I);return t instanceof IA?$(t):t}percentile(r,I,t=!1){let o=Qg(this,r,I,t);return o instanceof IA?$(o):o}quantile(r,I,t=!1){let o=Cg(this,r,I,t);return o instanceof IA?$(o):o}nanquantile(r,I,t=!1){let o=Fg(this,r,I,t);return o instanceof IA?$(o):o}nanpercentile(r,I,t=!1){let o=Gg(this,r,I,t);return o instanceof IA?$(o):o}cumsum(r){return $(Eg(this,r))}cumprod(r){return $(ug(this,r))}nancumsum(r){return $(bg(this,r))}nancumprod(r){return $(pg(this,r))}sort(r=-1){return $(Qi(this,r))}argsort(r=-1){return $(Ci(this,r))}partition(r,I=-1){return $(ai(this,r,I))}argpartition(r,I=-1){return $(Bi(this,r,I))}diagonal(r=0,I=0,t=1){return $($I(this,r,I,t))}resize(r){return $(Se(this,r))}diff(r=1,I=-1){return $(Pi(this,r,I))}take(r,I){return $(ft(this,r,I))}repeat(r,I){return $(Fe(this,r,I))}transpose(r){return $(At(this,r))}squeeze(r){return $(de(this,r))}expand_dims(r){return $(be(this,r))}swapaxes(r,I){return $(pe(this,r,I))}moveaxis(r,I){return $(Ne(this,r,I))}nonzero(){return si(this).map($)}};function qy(...A){let r=[],I="xy";for(let i of A)i instanceof sA?r.push(i):typeof i=="object"&&"indexing"in i&&(I=i.indexing||"xy");if(r.length===0)return[];if(r.length===1)return[r[0].copy()];let t=r.map(i=>i.size);I==="xy"&&r.length>=2&&(r=[r[1],r[0],...r.slice(2)],[t[0],t[1]]=[t[1],t[0]]);let o=t,e=o.length,g=[];for(let i=0;i<r.length;i++){let n=r[i],Q=n.size,C=new Array(e).fill(1);C[i]=Q;let a=n.reshape(...C),B=vi(a,o),s=sA.fromStorage(B.storage.copy());g.push(s)}return I==="xy"&&g.length>=2&&([g[0],g[1]]=[g[1],g[0]]),g}var J=A=>{if(A instanceof sA)return A;let r=A.base?J(A.base):void 0;return sA.fromStorage(A.storage,r)};function $H(A,r){return J(vi(A,r))}function A9(A,r,I){return J(ft(A,r,I))}function r9(A,r,I){return J(Rf(A,r,I))}function I9(A,r){return J(Xi(A,r))}function t9(A,r,I){return J(FI(A,r,I))}function o9(A,r,I=0){return J(kf(A,r,I))}function e9(A,r,I){return J(qf(A,r,I))}function g9(A,r,I=0){return J(Mf(A,r,I))}function i9(A,r="int32"){return J(Jf(A,r))}function n9(A,r,I="raise"){return J(xf(A,r,I))}function Q9(A,r){return Uf(A,r).map(J)}function C9(A,r=2){return Lf(A,r).map(J)}function a9(A){return Hf(A).map(J)}function B9(A,r=0,I){return Yf(A,r,I).map(J)}function s9(A,r=0){return Pf(A,r).map(J)}function E9(A,r=0,I){return _f(A,r,I).map(J)}function u9(A,r=0){return Kf(A,r).map(J)}function c9(A,r,I=0){return vf(A,r,I).map(J)}function D9(A,r,I){return J(Xf(o=>A(J(o)),r,I))}function f9(A,r,I){return J(Tf((o,e)=>A(J(o),e),r,I))}function y9(A,r){return J(no(A,r))}function m9(A,r){return J(Qo(A,r))}function l9(A,r){return J(Co(A,r))}function h9(A){return J(ao(A))}function My(A,r){return J(Bo(A,r))}function w9(A){return J(so(A))}function d9(A){return J(Eo(A))}function b9(A){return J(uo(A))}function p9(A){return J(co(A))}function N9(A){return J(Do(A))}function F9(A){return J(fo(A))}function G9(A){return J(yo(A))}function S9(A,r){return J(mo(A,r))}function R9(A,r){return J(lo(A,r))}function Jy(A){return J(ho(A))}function k9(A){return J(wo(A))}function q9(A){return J(bo(A))}function M9(A,r){return J(po(A,r))}function J9(A,r){return J(XI(A,r))}function x9(A,r){return J(No(A,r))}function U9(A){return J(Fo(A))}function L9(A){return J(Go(A))}function H9(A){return J(So(A))}function Y9(A){return J(Ro(A))}function P9(A,r){let I=ko(A,r);return[J(I[0]),J(I[1])]}function _9(A){return J(qo(A))}function K9(A,r){return J(Mo(A,r))}function v9(A,r){return J(Jo(A,r))}function X9(A,r){return J(fs(A,r))}function T9(A,r){return J(ys(A,r))}function O9(A){let r=ms(A);return[J(r[0]),J(r[1])]}function V9(A,r){return J(ls(A,r))}function W9(A,r){return J(hs(A,r))}function Z9(A,r){return J(ws(A,r))}function z9(A){let r=ds(A);return[J(r[0]),J(r[1])]}function j9(A,r,I){return J(xo(A,r,I))}function $9(A,r){return J(bs(A,r))}function AY(A,r){return J(ps(A,r))}function rY(A,r){return J(Ns(A,r))}function IY(A,r){return J(Fs(A,r))}function tY(A,r=0,I,t){return J(Gs(A,r,I,t))}function oY(A,r,I,t,o){return J(Ss(A,r,I,t,o))}function eY(A,r=Math.PI,I=-1,t=2*Math.PI){return J(Rs(A,r,I,t))}function gY(A){return J(ks(A))}function iY(A){return J(qs(A))}function nY(A,r){return J(wi(A,r))}function QY(A,r){return J(di(A,r))}function CY(A,r){return J(bi(A,r))}function xy(A){return J(pi(A))}function aY(A){return J(Ni(A))}function Uy(A,r){return J(Fi(A,r))}function Ly(A,r){return J(Gi(A,r))}function BY(A,r,I){return J(YD(A,r,I))}function sY(A,r,I,t){return J(PD(A,r,I,t))}function EY(A){return J(_D(A))}function uY(A){return J(hf(A))}function cY(A){return J(wf(A))}function Hy(A){return J(_i(A))}function DY(A,r){return J(df(A,r))}function fY(A,r=cA){return J(nr(A,r))}function yY(A,r=cA){return J(ln(A,r))}function mY(A,r=cA){return J(hn(A,r))}function lY(A,r,I){return J(wn(A,r,I))}function hY(A,r){return J(BA(A,r))}function wY(A,r,I=1,t=cA){return J(Sa(A,r,I,t))}function dY(A,r,I=50,t=cA){return J(Ra(A,r,I,t))}function bY(A,r,I=50,t=10,o=cA){return J(ka(A,r,I,t,o))}function pY(A,r,I=50,t=cA){return J(qa(A,r,I,t))}function NY(A,r,I=0,t=cA){return J(dn(A,r,I,t))}function FY(A,r=cA){return J(Ma(A,r))}function GY(A,r){return J(wI(A,r))}function SY(A,r){return J(Ja(A,r))}function RY(A,r){return J(xa(A,r))}function kY(A,r){return J(Ua(A,r))}function qY(A,r,I){return J(La(A,r,I))}function MY(A){return J(Ha(A))}function JY(A,r){return J(Ya(A,r))}function xY(A,r){return J(Pa(A,r))}function UY(A,r){return J(_a(A,r))}function LY(A,r){return J(Ka(A,r))}function HY(A,r,I){return J(va(A,r,I))}function YY(A,r=0){return J(bn(A,r))}function PY(A,r=0){return J(Xa(A,r))}function _Y(A,r,I=0,t=cA){return J(Ta(A,r,I,t))}function KY(A,r=0){return J(Oa(A,r))}function vY(A,r=0){return J(Va(A,r))}function XY(A,r,I=!1){return J(Wa(A,r,I))}function TY(A,r=cA,I=-1,t=0){return J(Za(A,r,I,t))}function OY(A,r,I=cA){return J(za(A,r,I))}function VY(A,r=cA,I=-1){return J(ja(A,r,I))}function WY(A,r=cA,I=-1,t){return J($a(A,r,I,t))}function ZY(A,r=cA,I=-1,t=""){return J(AB(A,r,I,t))}function zY(A,r,I){return J(Pi(A,r,I))}function jY(A,r,I){return J(lf(A,r,I))}function $Y(A,r){let I=zI(A,r);return I instanceof IA?J(I):I}function A4(A,r=0,I=0,t=1){let o=jI(A,r,I,t);return o instanceof IA?J(o):o}function r4(A,r=0,I=0,t=1){return J($I(A,r,I,t))}function I4(A,r){return J(au(A,r))}function t4(A,r){return J(At(A,r))}function o4(A,r){let I=rt(A,r);return I instanceof IA?J(I):I}function e4(A,r){return J(It(A,r))}function g4(A,r,I=2){let t=tt(A,r,I);return t instanceof IA?J(t):t}function i4(A,r,I=-1){let t=zn(A,r,I);return t instanceof IA?J(t):t}function n4(A){return J(jn(A))}function Q4(A,r){return J($n(A,r))}function C4(A,r){return J(Bu(A,r))}function a4(A,r){return J(su(A,r))}function B4(A,r,I=-1,t=-1,o=-1,e){let g=AQ(A,r,I,t,o,e),i=tA(A.dtype,r.dtype);if(g instanceof X){let Q=iA(i==="complex64"?"float32":"float64"),C=new Q(2);return C[0]=g.re,C[1]=g.im,sA.fromStorage(d.fromData(C,[],i))}if(typeof g=="number"||typeof g=="bigint"){if(k(i)){let a=iA(i==="complex64"?"float32":"float64"),B=new a(2);return B[0]=Number(g),B[1]=0,sA.fromStorage(d.fromData(B,[],i))}let n=iA(i),Q=new n(1);return Q[0]=g,sA.fromStorage(d.fromData(Q,[],i))}return J(g)}function s4(A,r){return J(le(A,r))}function E4(A,r){return J(xg(A,r))}function u4(A,r){return J(Ug(A,r))}function c4(A){return J(Lg(A))}function D4(A,r){return J(Hg(A,r))}function f4(A){return J(Yg(A))}function y4(A){return J(Pg(A))}function m4(A){return J(_g(A))}function l4(A){return J(Kg(A))}function h4(A){return J(xc(A))}function w4(A){return J(Uc(A))}function d4(A){return J(Lc(A))}function b4(A){return J(Hc(A))}function p4(A,r){return J(Yc(A,r))}function N4(A,r){return J(vg(A,r))}function F4(A){return J(Xg(A))}function G4(A,r){return J(Tg(A,r))}function S4(A){return J(Og(A))}function R4(A,r){return J(Vg(A,r))}function k4(A,r){return J(Wg(A,r))}function q4(A,r){return J(Zg(A,r))}function M4(A,r){return J(zg(A,r))}function J4(A,r){return J(jg(A,r))}function x4(A,r){return J($g(A,r))}function U4(A,r,I=1e-5,t=1e-8){return J(Ai(A,r,I,t))}function L4(A){return J(ey(A))}function H4(A,r){return J(gy(A,r))}function Y4(A,r=1){return J(iy(A,r))}function P4(A,r){let I=ny(A,r);return[J(I[0]),J(I[1])]}function _4(A,r,I){return J(Qy(A,r,I))}function K4(A,r=1,I=0){return J(Cy(A,r,I))}function v4(A,r){return J(ay(A,r))}function X4(A,r){return J(By(A,r))}function T4(A,r){let I=sy(A,r);return I instanceof IA?J(I):I}function O4(A){return J(Ey(A))}function V4(A,r,I){let t=ze(A,r,I);return t instanceof IA?J(t):t}function W4(A,r,I){let t=je(A,r,I);return t instanceof IA?J(t):t}function Z4(A,r,I){let t=$e(A,r,I);return t instanceof IA?J(t):t}function z4(A,r,I){let t=og(A,r,I);return t instanceof IA?J(t):t}function j4(A,r){let I=eg(A,r);return I instanceof IA?J(I):I}function $4(A,r){let I=gg(A,r);return I instanceof IA?J(I):I}function A6(A,r,I,t){let o=bI(A,r,I,t);return o instanceof IA?J(o):o}function r6(A,r,I,t){let o=ig(A,r,I,t);return o instanceof IA?J(o):o}function I6(A,r,I){let t=ng(A,r,I);return t instanceof IA?J(t):t}function t6(A,r,I,t){let o=Qg(A,r,I,t);return o instanceof IA?J(o):o}function o6(A,r,I,t){let o=Cg(A,r,I,t);return o instanceof IA?J(o):o}function e6(A,r,I,t){let o=ag(A,r,I,t);return o instanceof IA?J(o):o}function g6(A,r,I){let t=Bg(A,r,I);return t instanceof IA?J(t):t}function i6(A,r,I){let t=sg(A,r,I);return t instanceof IA?J(t):t}function Yy(A,r){return J(Eg(A,r))}function Py(A,r){return J(ug(A,r))}function n6(A,r,I){let t=cg(A,r,I);return t instanceof IA?J(t):t}function Q6(A,r,I){let t=Dg(A,r,I);return t instanceof IA?J(t):t}function C6(A,r,I){let t=fg(A,r,I);return t instanceof IA?J(t):t}function a6(A,r,I,t){let o=yg(A,r,I,t);return o instanceof IA?J(o):o}function B6(A,r,I,t){let o=mg(A,r,I,t);return o instanceof IA?J(o):o}function s6(A,r,I){let t=lg(A,r,I);return t instanceof IA?J(t):t}function E6(A,r,I){let t=hg(A,r,I);return t instanceof IA?J(t):t}function u6(A,r){let I=wg(A,r);return I instanceof IA?J(I):I}function c6(A,r){let I=dg(A,r);return I instanceof IA?J(I):I}function D6(A,r){return J(bg(A,r))}function f6(A,r){return J(pg(A,r))}function y6(A,r,I){let t=Ng(A,r,I);return t instanceof IA?J(t):t}function m6(A,r,I,t){let o=Fg(A,r,I,t);return o instanceof IA?J(o):o}function l6(A,r,I,t){let o=Gg(A,r,I,t);return o instanceof IA?J(o):o}function _y(A,r=0){return J(Si(A,r))}function h6(A){return J(Ri(A))}function w6(A){return J(ki(A))}function d6(A){return J(qi(A))}function b6(A){return J(Mi(A))}function p6(A){return J(Ji(A))}function N6(A,r){return J(XD(A,r))}function F6(A,r){return J(TD(A,r))}function G6(A,r){return J(OD(A,r))}function S6(A,r){return J(VD(A,r))}function R6(A,r){return J(WD(A,r))}function k6(A,r){return J(ZD(A,r))}function q6(A,r){return J(zD(A,r))}function M6(A){return J(jD(A))}function J6(A,r,I){return J(jf(A,r,I))}function Ky(A,r,I){return J(GC(A,r,I))}function x6(A,r,I,t){return J($f(A,r,I,t))}function U6(A,r,I="constant",t=0){return J(Ay(A,r,I,t))}function L6(A,r){return J(he(A,r))}function H6(A){return J(wr(A))}function Y6(A){return J(we(A))}function P6(A,r){return J(de(A,r))}function _6(A,r){return J(be(A,r))}function K6(A,r,I){return J(pe(A,r,I))}function v6(A,r,I){return J(Ne(A,r,I))}function X6(A,r,I=0){return J(Eu(A,r,I))}function vy(A,r=0){return J(ot(A,r))}function T6(A,r=0){return J(uu(A,r))}function O6(A){return J(IQ(A))}function V6(A){return J(cu(A))}function W6(A){return J(Du(A))}function Z6(A){return J(fu(A))}function z6(A){return J(yu(A))}function j6(A,r=0){return mu(A,r).map(J)}function $6(A,r){return J(lu(A,r))}function A1(A,r,I){return J(Fe(A,r,I))}function r1(A,r){return J(Ge(A,r))}function I1(A){return J(hu(A))}function t1(A){return J(wu(A))}function o1(A,r=1,I=[0,1]){return J(du(A,r,I))}function e1(A,r,I){return J(bu(A,r,I))}function g1(A,r){return J(Se(A,r))}function i1(A,r=-1){return J(Qi(A,r))}function n1(A,r=-1){return J(Ci(A,r))}function Q1(A){return J(CD(A))}function C1(A,r,I=-1){return J(ai(A,r,I))}function a1(A,r,I=-1){return J(Bi(A,r,I))}function B1(A){return J(aD(A))}function s1(A){return si(A).map(J)}function E1(A){return J(Ei(A))}function u1(A){return J(BD(A))}function c1(A,r){return J(sD(A,r))}function D1(A,r,I){return J(If(A,r,I))}function f1(A,r,I){return J(tf(A,r,I))}function y1(A,r,I){return J(of(A,r,I))}function m1(A,r,I){return J(ef(A,r,I))}function l1(A,r,I,t,o){return J(gf(A,r,I,t,o))}function h1(A,r,I){return J(nf(A,r,I))}function w1(A,r,I,t){let o=Qf(A,r,I,t);return o instanceof IA?J(o):o}function d1(A){return J(To(A))}function b1(A){return J(Oo(A))}function p1(A){return J(Vo(A))}function Xy(A){return J(Wo(A))}function Ty(A){return J(Zo(A))}function Oy(A){return J(zo(A))}function Vy(A,r){return J(jo(A,r))}function N1(A,r){return J($o(A,r))}function F1(A){return J(Ae(A))}function G1(A){return J(re(A))}function S1(A){return J(nE(A))}function R1(A){return J(QE(A))}function k1(A){return J(Ie(A))}function q1(A){return J(te(A))}function M1(A){return J(oe(A))}function Wy(A){return J(ee(A))}function Zy(A){return J(ge(A))}function zy(A){return J(ie(A))}var nn,WC;function jy(){return!!(typeof globalThis<"u"&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node||typeof Deno<"u"||typeof Bun<"u")}function J1(){throw new Error("File IO requires Node.js, Bun, or Deno. In the browser, use parseNpy(buffer) / parseTxt(text) with fetch() instead.")}function ZC(A){return A.default??A}jy()&&Promise.all([import("node:fs"),import("node:fs/promises")]).then(([A,r])=>{WC=ZC(A),nn=ZC(r)}).catch(()=>{});async function Or(){if(nn)return nn;jy()||J1();let[A,r]=await Promise.all([import("node:fs/promises"),import("node:fs")]);return nn=ZC(A),WC=ZC(r),nn}function Vr(){if(WC)return WC;throw jy()||J1(),new Error("node:fs has not been resolved yet. Call any async IO function first (e.g., await loadNpy(...)) or use the async variants directly.")}function Hr(A){return sA.fromStorage(A.storage)}async function $y(A){let I=await(await Or()).readFile(A);return Hr(GI(I))}function Am(A){let I=Vr().readFileSync(A);return Hr(GI(I))}async function rm(A,r){let I=await Or(),t=DI(r);await I.writeFile(A,t)}function Im(A,r){let I=Vr(),t=DI(r);I.writeFileSync(A,t)}async function tm(A,r={}){let t=await(await Or()).readFile(A),o=await zi(t,r),e=new Map;for(let[g,i]of o.arrays)e.set(g,Hr(i));return{arrays:e,skipped:o.skipped,errors:o.errors}}function om(A,r={}){let t=Vr().readFileSync(A),o=ji(t,r),e=new Map;for(let[g,i]of o.arrays)e.set(g,Hr(i));return{arrays:e,skipped:o.skipped,errors:o.errors}}async function zC(A,r,I={}){let t=await Or(),o=await LC(r,I);await t.writeFile(A,o)}function x1(A,r){let I=Vr(),t=HC(r);I.writeFileSync(A,t)}async function U1(A,r={}){if(A.endsWith(".npy")){if(r.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return $y(A)}else{if(A.endsWith(".npz"))return tm(A,r);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${A}`)}}function L1(A,r={}){if(A.endsWith(".npy")){if(r.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Am(A)}else{if(A.endsWith(".npz"))return om(A,r);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${A}`)}}async function H1(A,r){if(!A.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${A}`);return rm(A,r)}function Y1(A,r){if(!A.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${A}`);return Im(A,r)}async function P1(A,r){return A.endsWith(".npz")||(A=A+".npz"),zC(A,r,{compress:!1})}async function _1(A,r){return A.endsWith(".npz")||(A=A+".npz"),zC(A,r,{compress:!0})}async function K1(A,r={}){let t=await(await Or()).readFile(A,{encoding:r.encoding??"utf-8"});return Hr(SI(t,r))}function v1(A,r={}){let t=Vr().readFileSync(A,{encoding:r.encoding??"utf-8"});return Hr(SI(t,r))}async function X1(A,r,I={}){let t=await Or(),o=dt(r,I);await t.writeFile(A,o,"utf-8")}function T1(A,r,I={}){let t=Vr(),o=dt(r,I);t.writeFileSync(A,o,"utf-8")}async function O1(A,r={}){let t=await(await Or()).readFile(A,{encoding:r.encoding??"utf-8"});return Hr(ht(t,r))}function V1(A,r={}){let t=Vr().readFileSync(A,{encoding:r.encoding??"utf-8"});return Hr(ht(t,r))}async function W1(A,r,I="float64"){let o=await(await Or()).readFile(A,{encoding:"utf-8"});return Hr(wt(o,r,I))}function Z1(A,r,I="float64"){let o=Vr().readFileSync(A,{encoding:"utf-8"});return Hr(wt(o,r,I))}function Wr(A){return sA.fromStorage(A.storage)}function WO(A){return Wr(GI(A))}var ZO=Dy;function zO(A,r){return Wr(fy(A,r))}async function jO(A,r={}){let I=await zi(A,r),t=new Map;for(let[o,e]of I.arrays)t.set(o,Wr(e));return{arrays:t,skipped:I.skipped,errors:I.errors}}function $O(A,r={}){let I=ji(A,r),t=new Map;for(let[o,e]of I.arrays)t.set(o,Wr(e));return{arrays:t,skipped:I.skipped,errors:I.errors}}async function AV(A,r={}){let I=await sU(A,r),t={};for(let[o,e]of Object.entries(I))t[o]=Wr(e);return t}function rV(A,r={}){let I=EU(A,r),t={};for(let[o,e]of Object.entries(I))t[o]=Wr(e);return t}function IV(A,r={}){return Wr(SI(A,r))}function tV(A,r={}){return Wr(ht(A,r))}function oV(A,r,I="float64"){return Wr(wt(A,r,I))}function CA(A){return A&&typeof A=="object"&&"_data"in A&&"_shape"in A?sA.fromStorage(A):A}var eV={seed:BL,get_state:sL,set_state:EL,get_bit_generator:qL,set_bit_generator:ML,default_rng:A=>{let r=aL(A),I=t=>t instanceof sA||t instanceof IA?t.storage:t;return{random:t=>CA(r.random(t)),integers:(t,o,e)=>CA(r.integers(t,o,e)),standard_normal:t=>CA(r.standard_normal(t)),normal:(t,o,e)=>CA(r.normal(t,o,e)),uniform:(t,o,e)=>CA(r.uniform(t,o,e)),choice:(t,o,e,g)=>CA(r.choice(I(t),o,e,g instanceof sA||g instanceof IA?g.storage:g)),permutation:t=>CA(r.permutation(I(t))),shuffle:t=>r.shuffle(t instanceof sA||t instanceof IA?t.storage:t),exponential:(t,o)=>CA(r.exponential(t,o)),poisson:(t,o)=>CA(r.poisson(t,o)),binomial:(t,o,e)=>CA(r.binomial(t,o,e))}},Generator:An,random:A=>CA(In(A)),rand:(...A)=>CA(uL(...A)),randn:(...A)=>CA(cL(...A)),randint:(A,r,I,t)=>CA(rn(A,r,I,t)),random_sample:A=>CA(NL(A)),ranf:A=>CA(FL(A)),sample:A=>CA(GL(A)),random_integers:(A,r,I)=>CA(SL(A,r,I)),bytes:RL,uniform:(A,r,I)=>CA(DL(A,r,I)),normal:(A,r,I)=>CA(fL(A,r,I)),standard_normal:A=>CA(yL(A)),exponential:(A,r)=>CA(Fy(A,r)),standard_exponential:A=>CA(JL(A)),gamma:(A,r,I)=>CA(HL(A,r,I)),standard_gamma:(A,r)=>CA(xL(A,r)),beta:(A,r,I)=>CA(YL(A,r,I)),chisquare:(A,r)=>CA(zL(A,r)),noncentral_chisquare:(A,r,I)=>CA(jL(A,r,I)),f:(A,r,I)=>CA($L(A,r,I)),noncentral_f:(A,r,I,t)=>CA(AH(A,r,I,t)),standard_cauchy:A=>CA(UL(A)),standard_t:(A,r)=>CA(LL(A,r)),laplace:(A,r,I)=>CA(PL(A,r,I)),logistic:(A,r,I)=>CA(_L(A,r,I)),lognormal:(A,r,I)=>CA(KL(A,r,I)),gumbel:(A,r,I)=>CA(vL(A,r,I)),pareto:(A,r)=>CA(XL(A,r)),power:(A,r)=>CA(TL(A,r)),rayleigh:(A,r)=>CA(OL(A,r)),triangular:(A,r,I,t)=>CA(VL(A,r,I,t)),wald:(A,r,I)=>CA(WL(A,r,I)),weibull:(A,r)=>CA(ZL(A,r)),poisson:(A,r)=>CA(mL(A,r)),binomial:(A,r,I)=>CA(lL(A,r,I)),geometric:(A,r)=>CA(rH(A,r)),hypergeometric:(A,r,I,t)=>CA(IH(A,r,I,t)),logseries:(A,r)=>CA(tH(A,r)),negative_binomial:(A,r,I)=>CA(oH(A,r,I)),zipf:(A,r)=>CA(eH(A,r)),multinomial:(A,r,I)=>CA(gH(A,r,I)),multivariate_normal:(A,r,I,t,o)=>CA(iH(A,r,I,t,o)),dirichlet:(A,r)=>CA(nH(A,r)),vonmises:(A,r,I)=>CA(QH(A,r,I)),choice:(A,r,I,t)=>CA(wL(A,r,I,t)),permutation:A=>CA(dL(A)),shuffle:A=>pL(A instanceof sA||A instanceof IA?A.storage:A)};function zA(A){return A instanceof sA||A instanceof IA?A.storage:A}var gV={fft:(A,r,I,t)=>sA.fromStorage(OC(zA(A),r,I,t)),ifft:(A,r,I,t)=>sA.fromStorage(en(zA(A),r,I,t)),fft2:(A,r,I,t)=>sA.fromStorage(Ry(zA(A),r,I,t)),ifft2:(A,r,I,t)=>sA.fromStorage(HH(zA(A),r,I,t)),fftn:(A,r,I,t)=>sA.fromStorage(YH(zA(A),r,I,t)),ifftn:(A,r,I,t)=>sA.fromStorage(PH(zA(A),r,I,t)),rfft:(A,r,I,t)=>sA.fromStorage(VC(zA(A),r,I,t)),irfft:(A,r,I,t)=>sA.fromStorage(gn(zA(A),r,I,t)),rfft2:(A,r,I,t)=>sA.fromStorage(_H(zA(A),r,I,t)),irfft2:(A,r,I,t)=>sA.fromStorage(KH(zA(A),r,I,t)),rfftn:(A,r,I,t)=>sA.fromStorage(vH(zA(A),r,I,t)),irfftn:(A,r,I,t)=>sA.fromStorage(XH(zA(A),r,I,t)),hfft:(A,r,I,t)=>sA.fromStorage(TH(zA(A),r,I,t)),ihfft:(A,r,I,t)=>sA.fromStorage(OH(zA(A),r,I,t)),fftfreq:(A,r)=>sA.fromStorage(WH(A,r)),rfftfreq:(A,r)=>sA.fromStorage(ZH(A,r)),fftshift:(A,r)=>sA.fromStorage(zH(zA(A),r)),ifftshift:(A,r)=>sA.fromStorage(jH(zA(A),r))},iV="1.2.0";return t8(nV);})();