numpy-ts 1.1.0 → 1.3.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 (456) hide show
  1. package/README.md +3 -11
  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 -1
  30. package/dist/esm/common/wasm/add.js +1 -1
  31. package/dist/esm/common/wasm/all_finite.js +1 -0
  32. package/dist/esm/common/wasm/arccos.js +1 -1
  33. package/dist/esm/common/wasm/arcsin.js +1 -1
  34. package/dist/esm/common/wasm/arctan.js +1 -1
  35. package/dist/esm/common/wasm/arctan2.js +1 -0
  36. package/dist/esm/common/wasm/argpartition.js +1 -1
  37. package/dist/esm/common/wasm/argsort.js +1 -1
  38. package/dist/esm/common/wasm/bins/abs.wasm.js +1 -1
  39. package/dist/esm/common/wasm/bins/add.wasm.js +1 -1
  40. package/dist/esm/common/wasm/bins/all_finite.wasm.js +1 -0
  41. package/dist/esm/common/wasm/bins/alloc.wasm.js +1 -0
  42. package/dist/esm/common/wasm/bins/arccos.wasm.js +1 -1
  43. package/dist/esm/common/wasm/bins/arcsin.wasm.js +1 -1
  44. package/dist/esm/common/wasm/bins/arctan.wasm.js +1 -1
  45. package/dist/esm/common/wasm/bins/arctan2.wasm.js +1 -0
  46. package/dist/esm/common/wasm/bins/argpartition.wasm.js +1 -1
  47. package/dist/esm/common/wasm/bins/argsort.wasm.js +1 -1
  48. package/dist/esm/common/wasm/bins/bitwise_and.wasm.js +1 -1
  49. package/dist/esm/common/wasm/bins/bitwise_count.wasm.js +1 -1
  50. package/dist/esm/common/wasm/bins/bitwise_not.wasm.js +1 -1
  51. package/dist/esm/common/wasm/bins/bitwise_or.wasm.js +1 -1
  52. package/dist/esm/common/wasm/bins/bitwise_xor.wasm.js +1 -1
  53. package/dist/esm/common/wasm/bins/cholesky.wasm.js +1 -1
  54. package/dist/esm/common/wasm/bins/clip.wasm.js +1 -1
  55. package/dist/esm/common/wasm/bins/convolve.wasm.js +1 -1
  56. package/dist/esm/common/wasm/bins/copysign.wasm.js +1 -1
  57. package/dist/esm/common/wasm/bins/correlate.wasm.js +1 -1
  58. package/dist/esm/common/wasm/bins/cos.wasm.js +1 -1
  59. package/dist/esm/common/wasm/bins/cosh.wasm.js +1 -1
  60. package/dist/esm/common/wasm/bins/cross.wasm.js +1 -1
  61. package/dist/esm/common/wasm/bins/diff.wasm.js +1 -1
  62. package/dist/esm/common/wasm/bins/divide.wasm.js +1 -1
  63. package/dist/esm/common/wasm/bins/divmod.wasm.js +1 -0
  64. package/dist/esm/common/wasm/bins/dot_float-relaxed.wasm.js +1 -0
  65. package/dist/esm/common/wasm/bins/dot_float.wasm.js +1 -0
  66. package/dist/esm/common/wasm/bins/dot_int.wasm.js +1 -0
  67. package/dist/esm/common/wasm/bins/exp.wasm.js +1 -1
  68. package/dist/esm/common/wasm/bins/exp2.wasm.js +1 -1
  69. package/dist/esm/common/wasm/bins/fft.wasm.js +1 -1
  70. package/dist/esm/common/wasm/bins/frexp.wasm.js +1 -1
  71. package/dist/esm/common/wasm/bins/gather.wasm.js +1 -1
  72. package/dist/esm/common/wasm/bins/gcd.wasm.js +1 -1
  73. package/dist/esm/common/wasm/bins/gradient.wasm.js +1 -1
  74. package/dist/esm/common/wasm/bins/heaviside.wasm.js +1 -1
  75. package/dist/esm/common/wasm/bins/hypot.wasm.js +1 -1
  76. package/dist/esm/common/wasm/bins/indices.wasm.js +1 -1
  77. package/dist/esm/common/wasm/bins/inner_float-relaxed.wasm.js +1 -0
  78. package/dist/esm/common/wasm/bins/inner_float.wasm.js +1 -0
  79. package/dist/esm/common/wasm/bins/inner_int.wasm.js +1 -0
  80. package/dist/esm/common/wasm/bins/isfinite.wasm.js +1 -0
  81. package/dist/esm/common/wasm/bins/isnan.wasm.js +1 -0
  82. package/dist/esm/common/wasm/bins/kron.wasm.js +1 -1
  83. package/dist/esm/common/wasm/bins/ldexp.wasm.js +1 -1
  84. package/dist/esm/common/wasm/bins/left_shift.wasm.js +1 -1
  85. package/dist/esm/common/wasm/bins/lexsort.wasm.js +1 -1
  86. package/dist/esm/common/wasm/bins/logaddexp.wasm.js +1 -1
  87. package/dist/esm/common/wasm/bins/logical_and.wasm.js +1 -1
  88. package/dist/esm/common/wasm/bins/logical_not.wasm.js +1 -1
  89. package/dist/esm/common/wasm/bins/logical_or.wasm.js +1 -1
  90. package/dist/esm/common/wasm/bins/logical_xor.wasm.js +1 -1
  91. package/dist/esm/common/wasm/bins/lu.wasm.js +1 -0
  92. package/dist/esm/common/wasm/bins/matmul_float-relaxed.wasm.js +1 -0
  93. package/dist/esm/common/wasm/bins/matmul_float.wasm.js +1 -0
  94. package/dist/esm/common/wasm/bins/matmul_int.wasm.js +1 -0
  95. package/dist/esm/common/wasm/bins/matvec_float-relaxed.wasm.js +1 -0
  96. package/dist/esm/common/wasm/bins/matvec_float.wasm.js +1 -0
  97. package/dist/esm/common/wasm/bins/matvec_int.wasm.js +1 -0
  98. package/dist/esm/common/wasm/bins/max.wasm.js +1 -1
  99. package/dist/esm/common/wasm/bins/min.wasm.js +1 -1
  100. package/dist/esm/common/wasm/bins/mul.wasm.js +1 -1
  101. package/dist/esm/common/wasm/bins/neg.wasm.js +1 -1
  102. package/dist/esm/common/wasm/bins/outer.wasm.js +1 -1
  103. package/dist/esm/common/wasm/bins/pad.wasm.js +1 -1
  104. package/dist/esm/common/wasm/bins/partition.wasm.js +1 -1
  105. package/dist/esm/common/wasm/bins/power.wasm.js +1 -1
  106. package/dist/esm/common/wasm/bins/qr.wasm.js +1 -1
  107. package/dist/esm/common/wasm/bins/reciprocal.wasm.js +1 -1
  108. package/dist/esm/common/wasm/bins/reduce_all.wasm.js +1 -1
  109. package/dist/esm/common/wasm/bins/reduce_any.wasm.js +1 -1
  110. package/dist/esm/common/wasm/bins/reduce_argmax.wasm.js +1 -1
  111. package/dist/esm/common/wasm/bins/reduce_argmin.wasm.js +1 -1
  112. package/dist/esm/common/wasm/bins/reduce_count_nz.wasm.js +1 -1
  113. package/dist/esm/common/wasm/bins/reduce_max.wasm.js +1 -1
  114. package/dist/esm/common/wasm/bins/reduce_mean.wasm.js +1 -1
  115. package/dist/esm/common/wasm/bins/reduce_min.wasm.js +1 -1
  116. package/dist/esm/common/wasm/bins/reduce_nanmax.wasm.js +1 -1
  117. package/dist/esm/common/wasm/bins/reduce_nanmin.wasm.js +1 -1
  118. package/dist/esm/common/wasm/bins/reduce_nansum.wasm.js +1 -1
  119. package/dist/esm/common/wasm/bins/reduce_prod.wasm.js +1 -1
  120. package/dist/esm/common/wasm/bins/reduce_std.wasm.js +1 -1
  121. package/dist/esm/common/wasm/bins/reduce_sum.wasm.js +1 -1
  122. package/dist/esm/common/wasm/bins/reduce_var.wasm.js +1 -1
  123. package/dist/esm/common/wasm/bins/repeat.wasm.js +1 -1
  124. package/dist/esm/common/wasm/bins/right_shift.wasm.js +1 -1
  125. package/dist/esm/common/wasm/bins/rng.wasm.js +1 -0
  126. package/dist/esm/common/wasm/bins/roll.wasm.js +1 -1
  127. package/dist/esm/common/wasm/bins/searchsorted.wasm.js +1 -1
  128. package/dist/esm/common/wasm/bins/sign.wasm.js +1 -1
  129. package/dist/esm/common/wasm/bins/signbit.wasm.js +1 -0
  130. package/dist/esm/common/wasm/bins/sin.wasm.js +1 -0
  131. package/dist/esm/common/wasm/bins/sinh.wasm.js +1 -1
  132. package/dist/esm/common/wasm/bins/sort.wasm.js +1 -1
  133. package/dist/esm/common/wasm/bins/sqrt.wasm.js +1 -1
  134. package/dist/esm/common/wasm/bins/square.wasm.js +1 -1
  135. package/dist/esm/common/wasm/bins/sub.wasm.js +1 -1
  136. package/dist/esm/common/wasm/bins/svd.wasm.js +1 -1
  137. package/dist/esm/common/wasm/bins/tan.wasm.js +1 -1
  138. package/dist/esm/common/wasm/bins/tanh.wasm.js +1 -1
  139. package/dist/esm/common/wasm/bins/tile.wasm.js +1 -1
  140. package/dist/esm/common/wasm/bins/unravel_index.wasm.js +1 -0
  141. package/dist/esm/common/wasm/bins/vdot.wasm.js +1 -1
  142. package/dist/esm/common/wasm/bins/vecdot_float-relaxed.wasm.js +1 -0
  143. package/dist/esm/common/wasm/bins/vecdot_float.wasm.js +1 -0
  144. package/dist/esm/common/wasm/bins/vecdot_int.wasm.js +1 -0
  145. package/dist/esm/common/wasm/bins/vecmat_float-relaxed.wasm.js +1 -0
  146. package/dist/esm/common/wasm/bins/vecmat_float.wasm.js +1 -0
  147. package/dist/esm/common/wasm/bins/vecmat_int.wasm.js +1 -0
  148. package/dist/esm/common/wasm/bins/vector_norm-relaxed.wasm.js +1 -0
  149. package/dist/esm/common/wasm/bins/vector_norm.wasm.js +1 -0
  150. package/dist/esm/common/wasm/bitwise_and.js +1 -1
  151. package/dist/esm/common/wasm/bitwise_count.js +1 -1
  152. package/dist/esm/common/wasm/bitwise_not.js +1 -1
  153. package/dist/esm/common/wasm/bitwise_or.js +1 -1
  154. package/dist/esm/common/wasm/bitwise_xor.js +1 -1
  155. package/dist/esm/common/wasm/cholesky.js +1 -1
  156. package/dist/esm/common/wasm/clip.js +1 -1
  157. package/dist/esm/common/wasm/config.js +1 -1
  158. package/dist/esm/common/wasm/convolve.js +1 -1
  159. package/dist/esm/common/wasm/copysign.js +1 -1
  160. package/dist/esm/common/wasm/correlate.js +1 -1
  161. package/dist/esm/common/wasm/cos.js +1 -1
  162. package/dist/esm/common/wasm/cosh.js +1 -1
  163. package/dist/esm/common/wasm/cross.js +1 -1
  164. package/dist/esm/common/wasm/detect.js +1 -0
  165. package/dist/esm/common/wasm/diff.js +1 -1
  166. package/dist/esm/common/wasm/divide.js +1 -1
  167. package/dist/esm/common/wasm/divmod.js +1 -0
  168. package/dist/esm/common/wasm/dot.js +1 -1
  169. package/dist/esm/common/wasm/exp.js +1 -1
  170. package/dist/esm/common/wasm/exp2.js +1 -1
  171. package/dist/esm/common/wasm/fft.js +1 -1
  172. package/dist/esm/common/wasm/frexp.js +1 -1
  173. package/dist/esm/common/wasm/gather.js +1 -1
  174. package/dist/esm/common/wasm/gcd.js +1 -1
  175. package/dist/esm/common/wasm/gradient.js +1 -1
  176. package/dist/esm/common/wasm/heaviside.js +1 -1
  177. package/dist/esm/common/wasm/hypot.js +1 -1
  178. package/dist/esm/common/wasm/indices.js +1 -1
  179. package/dist/esm/common/wasm/inner.js +1 -1
  180. package/dist/esm/common/wasm/isfinite.js +1 -0
  181. package/dist/esm/common/wasm/isnan.js +1 -0
  182. package/dist/esm/common/wasm/kron.js +1 -1
  183. package/dist/esm/common/wasm/ldexp.js +1 -1
  184. package/dist/esm/common/wasm/left_shift.js +1 -1
  185. package/dist/esm/common/wasm/lexsort.js +1 -1
  186. package/dist/esm/common/wasm/logaddexp.js +1 -1
  187. package/dist/esm/common/wasm/logical_and.js +1 -1
  188. package/dist/esm/common/wasm/logical_not.js +1 -1
  189. package/dist/esm/common/wasm/logical_or.js +1 -1
  190. package/dist/esm/common/wasm/logical_xor.js +1 -1
  191. package/dist/esm/common/wasm/lu.js +1 -0
  192. package/dist/esm/common/wasm/matmul.js +1 -1
  193. package/dist/esm/common/wasm/matvec.js +1 -1
  194. package/dist/esm/common/wasm/max.js +1 -1
  195. package/dist/esm/common/wasm/min.js +1 -1
  196. package/dist/esm/common/wasm/mul.js +1 -1
  197. package/dist/esm/common/wasm/neg.js +1 -1
  198. package/dist/esm/common/wasm/outer.js +1 -1
  199. package/dist/esm/common/wasm/pad.js +1 -1
  200. package/dist/esm/common/wasm/partition.js +1 -1
  201. package/dist/esm/common/wasm/power.js +1 -1
  202. package/dist/esm/common/wasm/qr.js +1 -1
  203. package/dist/esm/common/wasm/reciprocal.js +1 -1
  204. package/dist/esm/common/wasm/reduce_all.js +1 -1
  205. package/dist/esm/common/wasm/reduce_any.js +1 -1
  206. package/dist/esm/common/wasm/reduce_argmax.js +1 -1
  207. package/dist/esm/common/wasm/reduce_argmin.js +1 -1
  208. package/dist/esm/common/wasm/reduce_count_nz.js +1 -1
  209. package/dist/esm/common/wasm/reduce_max.js +1 -1
  210. package/dist/esm/common/wasm/reduce_mean.js +1 -1
  211. package/dist/esm/common/wasm/reduce_min.js +1 -1
  212. package/dist/esm/common/wasm/reduce_nanmax.js +1 -1
  213. package/dist/esm/common/wasm/reduce_nanmin.js +1 -1
  214. package/dist/esm/common/wasm/reduce_nansum.js +1 -1
  215. package/dist/esm/common/wasm/reduce_prod.js +1 -1
  216. package/dist/esm/common/wasm/reduce_quantile.js +1 -1
  217. package/dist/esm/common/wasm/reduce_std.js +1 -1
  218. package/dist/esm/common/wasm/reduce_sum.js +1 -1
  219. package/dist/esm/common/wasm/reduce_var.js +1 -1
  220. package/dist/esm/common/wasm/repeat.js +1 -1
  221. package/dist/esm/common/wasm/right_shift.js +1 -1
  222. package/dist/esm/common/wasm/rng.js +1 -0
  223. package/dist/esm/common/wasm/roll.js +1 -1
  224. package/dist/esm/common/wasm/runtime.js +1 -1
  225. package/dist/esm/common/wasm/searchsorted.js +1 -1
  226. package/dist/esm/common/wasm/sign.js +1 -1
  227. package/dist/esm/common/wasm/signbit.js +1 -0
  228. package/dist/esm/common/wasm/sin.js +1 -0
  229. package/dist/esm/common/wasm/sinh.js +1 -1
  230. package/dist/esm/common/wasm/sort.js +1 -1
  231. package/dist/esm/common/wasm/sqrt.js +1 -1
  232. package/dist/esm/common/wasm/square.js +1 -1
  233. package/dist/esm/common/wasm/sub.js +1 -1
  234. package/dist/esm/common/wasm/svd.js +1 -1
  235. package/dist/esm/common/wasm/tan.js +1 -1
  236. package/dist/esm/common/wasm/tanh.js +1 -1
  237. package/dist/esm/common/wasm/tile.js +1 -1
  238. package/dist/esm/common/wasm/unravel_index.js +1 -0
  239. package/dist/esm/common/wasm/vdot.js +1 -1
  240. package/dist/esm/common/wasm/vecdot.js +1 -1
  241. package/dist/esm/common/wasm/vecmat.js +1 -1
  242. package/dist/esm/common/wasm/vector_norm.js +1 -0
  243. package/dist/esm/core/advanced.js +1 -1
  244. package/dist/esm/core/arithmetic.js +1 -1
  245. package/dist/esm/core/bitwise.js +1 -1
  246. package/dist/esm/core/complex.js +1 -1
  247. package/dist/esm/core/creation.js +1 -1
  248. package/dist/esm/core/formatting.js +1 -1
  249. package/dist/esm/core/gradient.js +1 -1
  250. package/dist/esm/core/index.js +1 -1
  251. package/dist/esm/core/linalg.js +1 -1
  252. package/dist/esm/core/logic.js +1 -1
  253. package/dist/esm/core/polynomial.js +1 -1
  254. package/dist/esm/core/reduction.js +1 -1
  255. package/dist/esm/core/rounding.js +1 -1
  256. package/dist/esm/core/sets.js +1 -1
  257. package/dist/esm/core/shape-extra.js +1 -1
  258. package/dist/esm/core/shape.js +1 -1
  259. package/dist/esm/core/sorting.js +1 -1
  260. package/dist/esm/core/statistics.js +1 -1
  261. package/dist/esm/core/trig.js +1 -1
  262. package/dist/esm/core/typechecking.js +1 -1
  263. package/dist/esm/core/types.js +1 -1
  264. package/dist/esm/core/utility.js +1 -1
  265. package/dist/esm/core.js +1 -1
  266. package/dist/esm/full/index.js +1 -1
  267. package/dist/esm/full/ndarray.js +1 -1
  268. package/dist/esm/index.js +1 -1
  269. package/dist/esm/io/file-ops.js +1 -0
  270. package/dist/esm/io/filesystem.js +1 -0
  271. package/dist/esm/io/index.js +1 -1
  272. package/dist/esm/io/npy/format.js +1 -1
  273. package/dist/esm/io/npy/index.js +1 -1
  274. package/dist/esm/io/npy/parser.js +1 -1
  275. package/dist/esm/io/npy/serializer.js +2 -2
  276. package/dist/esm/io/npz/index.js +1 -1
  277. package/dist/esm/io/npz/parser.js +1 -1
  278. package/dist/esm/io/npz/serializer.js +1 -1
  279. package/dist/esm/io/txt/index.js +1 -1
  280. package/dist/esm/io/txt/parser.js +1 -1
  281. package/dist/esm/io/zip/index.js +1 -1
  282. package/dist/esm/io/zip/reader.js +1 -1
  283. package/dist/esm/io/zip/writer.js +1 -1
  284. package/dist/esm/node.js +1 -1
  285. package/dist/numpy-ts.browser.js +6 -6
  286. package/dist/types/common/dtype.d.ts +55 -4
  287. package/dist/types/common/float16-conv.d.ts +27 -0
  288. package/dist/types/common/internal/indexing.d.ts +9 -21
  289. package/dist/types/common/ndarray-core.d.ts +20 -0
  290. package/dist/types/common/ops/advanced.d.ts +17 -2
  291. package/dist/types/common/ops/complex.d.ts +19 -1
  292. package/dist/types/common/ops/linalg.d.ts +1 -1
  293. package/dist/types/common/ops/random.d.ts +10 -5
  294. package/dist/types/common/ops/reduction.d.ts +2 -2
  295. package/dist/types/common/ops/sets.d.ts +2 -1
  296. package/dist/types/common/ops/shape.d.ts +2 -2
  297. package/dist/types/common/ops/statistics.d.ts +2 -1
  298. package/dist/types/common/storage.d.ts +54 -2
  299. package/dist/types/common/wasm/all_finite.d.ts +8 -0
  300. package/dist/types/common/wasm/arccos.d.ts +4 -2
  301. package/dist/types/common/wasm/arcsin.d.ts +4 -2
  302. package/dist/types/common/wasm/arctan.d.ts +4 -2
  303. package/dist/types/common/wasm/arctan2.d.ts +17 -0
  304. package/dist/types/common/wasm/argpartition.d.ts +8 -3
  305. package/dist/types/common/wasm/argsort.d.ts +8 -3
  306. package/dist/types/common/wasm/bins/abs.wasm.d.ts +1 -0
  307. package/dist/types/common/wasm/bins/all_finite.wasm.d.ts +4 -0
  308. package/dist/types/common/wasm/bins/alloc.wasm.d.ts +6 -0
  309. package/dist/types/common/wasm/bins/arccos.wasm.d.ts +8 -2
  310. package/dist/types/common/wasm/bins/arcsin.wasm.d.ts +8 -2
  311. package/dist/types/common/wasm/bins/arctan.wasm.d.ts +8 -2
  312. package/dist/types/common/wasm/bins/arctan2.wasm.d.ts +11 -0
  313. package/dist/types/common/wasm/bins/convolve.wasm.d.ts +6 -0
  314. package/dist/types/common/wasm/bins/copysign.wasm.d.ts +2 -0
  315. package/dist/types/common/wasm/bins/correlate.wasm.d.ts +6 -0
  316. package/dist/types/common/wasm/bins/cos.wasm.d.ts +8 -0
  317. package/dist/types/common/wasm/bins/cosh.wasm.d.ts +8 -2
  318. package/dist/types/common/wasm/bins/divmod.wasm.d.ts +11 -0
  319. package/dist/types/common/wasm/bins/dot_float-relaxed.wasm.d.ts +5 -0
  320. package/dist/types/common/wasm/bins/dot_float.wasm.d.ts +5 -0
  321. package/dist/types/common/wasm/bins/dot_int.wasm.d.ts +5 -0
  322. package/dist/types/common/wasm/bins/exp.wasm.d.ts +8 -2
  323. package/dist/types/common/wasm/bins/exp2.wasm.d.ts +8 -2
  324. package/dist/types/common/wasm/bins/fft.wasm.d.ts +11 -0
  325. package/dist/types/common/wasm/bins/frexp.wasm.d.ts +1 -0
  326. package/dist/types/common/wasm/bins/gather.wasm.d.ts +0 -1
  327. package/dist/types/common/wasm/bins/gcd.wasm.d.ts +8 -0
  328. package/dist/types/common/wasm/bins/indices.wasm.d.ts +6 -2
  329. package/dist/types/common/wasm/bins/inner_float-relaxed.wasm.d.ts +5 -0
  330. package/dist/types/common/wasm/bins/inner_float.wasm.d.ts +5 -0
  331. package/dist/types/common/wasm/bins/inner_int.wasm.d.ts +5 -0
  332. package/dist/types/common/wasm/bins/isfinite.wasm.d.ts +4 -0
  333. package/dist/types/common/wasm/bins/isnan.wasm.d.ts +4 -0
  334. package/dist/types/common/wasm/bins/lexsort.wasm.d.ts +4 -4
  335. package/dist/types/common/wasm/bins/logical_and.wasm.d.ts +2 -0
  336. package/dist/types/common/wasm/bins/logical_not.wasm.d.ts +1 -0
  337. package/dist/types/common/wasm/bins/logical_or.wasm.d.ts +2 -0
  338. package/dist/types/common/wasm/bins/logical_xor.wasm.d.ts +2 -0
  339. package/dist/types/common/wasm/bins/lu.wasm.d.ts +7 -0
  340. package/dist/types/common/wasm/bins/matmul_float-relaxed.wasm.d.ts +5 -0
  341. package/dist/types/common/wasm/bins/matmul_float.wasm.d.ts +5 -0
  342. package/dist/types/common/wasm/bins/matmul_int.wasm.d.ts +5 -0
  343. package/dist/types/common/wasm/bins/matvec_float-relaxed.wasm.d.ts +5 -0
  344. package/dist/types/common/wasm/bins/matvec_float.wasm.d.ts +5 -0
  345. package/dist/types/common/wasm/bins/matvec_int.wasm.d.ts +5 -0
  346. package/dist/types/common/wasm/bins/neg.wasm.d.ts +1 -0
  347. package/dist/types/common/wasm/bins/qr.wasm.d.ts +0 -1
  348. package/dist/types/common/wasm/bins/reciprocal.wasm.d.ts +8 -4
  349. package/dist/types/common/wasm/bins/reduce_argmax.wasm.d.ts +8 -0
  350. package/dist/types/common/wasm/bins/reduce_argmin.wasm.d.ts +8 -0
  351. package/dist/types/common/wasm/bins/reduce_max.wasm.d.ts +1 -0
  352. package/dist/types/common/wasm/bins/reduce_min.wasm.d.ts +1 -0
  353. package/dist/types/common/wasm/bins/reduce_prod.wasm.d.ts +2 -0
  354. package/dist/types/common/wasm/bins/reduce_sum.wasm.d.ts +8 -2
  355. package/dist/types/common/wasm/bins/rng.wasm.d.ts +57 -0
  356. package/dist/types/common/wasm/bins/sign.wasm.d.ts +1 -0
  357. package/dist/types/common/wasm/bins/signbit.wasm.d.ts +8 -0
  358. package/dist/types/common/wasm/bins/sin.wasm.d.ts +11 -0
  359. package/dist/types/common/wasm/bins/sinh.wasm.d.ts +8 -2
  360. package/dist/types/common/wasm/bins/sort.wasm.d.ts +6 -4
  361. package/dist/types/common/wasm/bins/sqrt.wasm.d.ts +2 -2
  362. package/dist/types/common/wasm/bins/svd.wasm.d.ts +1 -0
  363. package/dist/types/common/wasm/bins/tan.wasm.d.ts +8 -0
  364. package/dist/types/common/wasm/bins/tanh.wasm.d.ts +8 -2
  365. package/dist/types/common/wasm/bins/unravel_index.wasm.d.ts +4 -0
  366. package/dist/types/common/wasm/bins/vecdot_float-relaxed.wasm.d.ts +5 -0
  367. package/dist/types/common/wasm/bins/vecdot_float.wasm.d.ts +5 -0
  368. package/dist/types/common/wasm/bins/vecdot_int.wasm.d.ts +5 -0
  369. package/dist/types/common/wasm/bins/vecmat_float-relaxed.wasm.d.ts +5 -0
  370. package/dist/types/common/wasm/bins/vecmat_float.wasm.d.ts +5 -0
  371. package/dist/types/common/wasm/bins/vecmat_int.wasm.d.ts +5 -0
  372. package/dist/types/common/wasm/bins/vector_norm-relaxed.wasm.d.ts +3 -0
  373. package/dist/types/common/wasm/bins/vector_norm.wasm.d.ts +3 -0
  374. package/dist/types/common/wasm/config.d.ts +25 -0
  375. package/dist/types/common/wasm/convolve.d.ts +1 -1
  376. package/dist/types/common/wasm/cos.d.ts +4 -2
  377. package/dist/types/common/wasm/cosh.d.ts +4 -2
  378. package/dist/types/common/wasm/detect.d.ts +17 -0
  379. package/dist/types/common/wasm/divide.d.ts +4 -0
  380. package/dist/types/common/wasm/divmod.d.ts +13 -0
  381. package/dist/types/common/wasm/exp.d.ts +4 -2
  382. package/dist/types/common/wasm/exp2.d.ts +4 -2
  383. package/dist/types/common/wasm/fft.d.ts +36 -0
  384. package/dist/types/common/wasm/frexp.d.ts +1 -0
  385. package/dist/types/common/wasm/gather.d.ts +4 -0
  386. package/dist/types/common/wasm/gcd.d.ts +1 -0
  387. package/dist/types/common/wasm/heaviside.d.ts +2 -2
  388. package/dist/types/common/wasm/hypot.d.ts +4 -2
  389. package/dist/types/common/wasm/indices.d.ts +2 -1
  390. package/dist/types/common/wasm/isfinite.d.ts +7 -0
  391. package/dist/types/common/wasm/isnan.d.ts +7 -0
  392. package/dist/types/common/wasm/lexsort.d.ts +3 -1
  393. package/dist/types/common/wasm/logaddexp.d.ts +4 -2
  394. package/dist/types/common/wasm/lu.d.ts +27 -0
  395. package/dist/types/common/wasm/partition.d.ts +3 -1
  396. package/dist/types/common/wasm/reduce_argmax.d.ts +5 -0
  397. package/dist/types/common/wasm/reduce_argmin.d.ts +5 -0
  398. package/dist/types/common/wasm/reduce_prod.d.ts +4 -0
  399. package/dist/types/common/wasm/reduce_quantile.d.ts +11 -3
  400. package/dist/types/common/wasm/reduce_sum.d.ts +10 -0
  401. package/dist/types/common/wasm/rng.d.ts +75 -0
  402. package/dist/types/common/wasm/runtime.d.ts +117 -23
  403. package/dist/types/common/wasm/searchsorted.d.ts +3 -1
  404. package/dist/types/common/wasm/signbit.d.ts +14 -0
  405. package/dist/types/common/wasm/sin.d.ts +17 -0
  406. package/dist/types/common/wasm/sinh.d.ts +4 -2
  407. package/dist/types/common/wasm/sort.d.ts +4 -1
  408. package/dist/types/common/wasm/sqrt.d.ts +4 -2
  409. package/dist/types/common/wasm/svd.d.ts +6 -0
  410. package/dist/types/common/wasm/tan.d.ts +4 -2
  411. package/dist/types/common/wasm/tanh.d.ts +4 -2
  412. package/dist/types/common/wasm/unravel_index.d.ts +12 -0
  413. package/dist/types/common/wasm/vector_norm.d.ts +11 -0
  414. package/dist/types/core/advanced.d.ts +10 -2
  415. package/dist/types/core/creation.d.ts +1 -1
  416. package/dist/types/core/index.d.ts +96 -2
  417. package/dist/types/core/linalg.d.ts +1 -1
  418. package/dist/types/core/rounding.d.ts +0 -2
  419. package/dist/types/core/sets.d.ts +4 -1
  420. package/dist/types/core/statistics.d.ts +2 -1
  421. package/dist/types/full/index.d.ts +19 -6
  422. package/dist/types/index.d.ts +20 -4
  423. package/dist/types/io/file-ops.d.ts +269 -0
  424. package/dist/types/io/filesystem.d.ts +21 -0
  425. package/dist/types/node.d.ts +3 -275
  426. package/package.json +52 -62
  427. package/dist/esm/common/wasm/bins/dot.wasm.js +0 -1
  428. package/dist/esm/common/wasm/bins/flip.wasm.js +0 -1
  429. package/dist/esm/common/wasm/bins/inner.wasm.js +0 -1
  430. package/dist/esm/common/wasm/bins/matmul.wasm.js +0 -1
  431. package/dist/esm/common/wasm/bins/matvec.wasm.js +0 -1
  432. package/dist/esm/common/wasm/bins/reduce_quantile.wasm.js +0 -1
  433. package/dist/esm/common/wasm/bins/rot90.wasm.js +0 -1
  434. package/dist/esm/common/wasm/bins/vecdot.wasm.js +0 -1
  435. package/dist/esm/common/wasm/bins/vecmat.wasm.js +0 -1
  436. package/dist/esm/common/wasm/flip.js +0 -1
  437. package/dist/esm/common/wasm/lstsq.js +0 -1
  438. package/dist/esm/common/wasm/rot90.js +0 -1
  439. package/dist/numpy-ts.node-io.cjs +0 -8
  440. package/dist/numpy-ts.node-io.cjs.map +0 -7
  441. package/dist/numpy-ts.node-io.mjs +0 -8
  442. package/dist/numpy-ts.node-io.mjs.map +0 -7
  443. package/dist/numpy-ts.node.cjs +0 -8
  444. package/dist/numpy-ts.node.cjs.map +0 -7
  445. package/dist/types/common/wasm/bins/dot.wasm.d.ts +0 -9
  446. package/dist/types/common/wasm/bins/flip.wasm.d.ts +0 -7
  447. package/dist/types/common/wasm/bins/inner.wasm.d.ts +0 -9
  448. package/dist/types/common/wasm/bins/matmul.wasm.d.ts +0 -9
  449. package/dist/types/common/wasm/bins/matvec.wasm.d.ts +0 -9
  450. package/dist/types/common/wasm/bins/reduce_quantile.wasm.d.ts +0 -2
  451. package/dist/types/common/wasm/bins/rot90.wasm.d.ts +0 -7
  452. package/dist/types/common/wasm/bins/vecdot.wasm.d.ts +0 -9
  453. package/dist/types/common/wasm/bins/vecmat.wasm.d.ts +0 -9
  454. package/dist/types/common/wasm/flip.d.ts +0 -13
  455. package/dist/types/common/wasm/lstsq.d.ts +0 -14
  456. package/dist/types/common/wasm/rot90.d.ts +0 -14
@@ -1,8 +0,0 @@
1
- import{readFileSync as Hi,writeFileSync as AD}from"node:fs";import{readFile as _i,writeFile as rD}from"node:fs/promises";var BA="float64";function nA(A){switch(A){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: ${A}`)}}function Lr(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"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${A}`)}}function pA(A){return A==="int64"||A==="int32"||A==="int16"||A==="int8"||A==="uint64"||A==="uint32"||A==="uint16"||A==="uint8"}function DA(A){return A==="float64"||A==="float32"}function L(A){return A==="int64"||A==="uint64"}function k(A){return A==="complex64"||A==="complex128"}function eA(A,r,I){if(k(A)){let e=I?` ${I}`:"";throw new TypeError(`ufunc '${r}' not supported for complex dtype '${A}'.${e}`)}}function ne(A){if(A==="complex128")return"float64";if(A==="complex64")return"float32";throw new Error(`${A} is not a complex dtype`)}function IA(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,a=k(A)?r:A;return Q==="complex128"||a==="float64"||a==="int64"||a==="uint64"||a==="int32"||a==="uint32"?"complex128":"complex64"}if(DA(A)||DA(r)){if(A==="float64"||r==="float64")return"float64";if(A==="float32"){let Q=r;return Q==="int32"||Q==="int64"||Q==="uint32"||Q==="uint64"?"float64":"float32"}if(r==="float32"){let Q=A;return Q==="int32"||Q==="int64"||Q==="uint32"||Q==="uint64"?"float64":"float32"}return"float32"}let I=A.startsWith("int"),e=r.startsWith("int"),t=A.startsWith("uint"),o=r.startsWith("uint"),n=Q=>Q.includes("64")?64:Q.includes("32")?32:Q.includes("16")?16:Q.includes("8")?8:0,g=n(A),i=n(r);if(A==="int64"&&r==="uint64"||A==="uint64"&&r==="int64")return"float64";if(I&&o&&g===i){if(g===8)return"int16";if(g===16)return"int32";if(g===32)return"int64"}if(t&&e&&g===i){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(I&&e||t&&o){let Q=Math.max(g,i);return I?Q===64?"int64":Q===32?"int32":Q===16?"int16":"int8":Q===64?"uint64":Q===32?"uint32":Q===16?"uint16":"uint8"}return I&&o?g>i?A:i===8?"int16":i===16?"int32":i===32?"int64":"float64":t&&e?i>g?r:g===8?"int16":g===16?"int32":g===32?"int64":"float64":"float64"}var T=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 ID(A){return A instanceof T||typeof A=="object"&&A!==null&&"re"in A}var Yi=64,d=class A{constructor(r,I,e,t,o){this._isCContiguous=-1;this._data=r,this._shape=I,this._strides=e,this._offset=t,this._dtype=o}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,e=r.length,t;if(e===0)t=!0;else if(e===1)t=I[0]===1;else{t=!0;let o=1;for(let n=e-1;n>=0;n--){if(I[n]!==o){t=!1;break}o*=r[n]}}return this._isCContiguous=t?1:0,t}get isFContiguous(){let r=this._shape,I=this._strides,e=r.length;if(e===0)return!0;if(e===1)return I[0]===1;let t=1;for(let o=0;o<e;o++){if(I[o]!==t)return!1;t*=r[o]}return!0}iget(r){let I=this._shape,e=this._strides,t=I.length,o=k(this._dtype),n;if(t===0)n=this._offset;else{let g=r;n=this._offset;for(let i=0;i<t;i++){let Q=1;for(let s=i+1;s<t;s++)Q*=I[s];let a=Math.floor(g/Q);g=g%Q,n+=a*e[i]}}if(o){let g=n*2,i=this._data[g],Q=this._data[g+1];return new T(i,Q)}return this._data[n]}iset(r,I){let e=this._shape,t=this._strides,o=e.length,n=k(this._dtype),g;if(o===0)g=this._offset;else{let i=r;g=this._offset;for(let Q=0;Q<o;Q++){let a=1;for(let B=Q+1;B<o;B++)a*=e[B];let s=Math.floor(i/a);i=i%a,g+=s*t[Q]}}if(n){let i=g*2,Q,a;I instanceof T?(Q=I.re,a=I.im):typeof I=="object"&&I!==null&&"re"in I?(Q=I.re,a=I.im??0):(Q=Number(I),a=0),this._data[i]=Q,this._data[i+1]=a}else this._data[g]=I}get(...r){let I=this._strides,e=this._offset;for(let t=0;t<r.length;t++)e+=r[t]*I[t];if(k(this._dtype)){let t=e*2,o=this._data[t],n=this._data[t+1];return new T(o,n)}return this._data[e]}set(r,I){let e=this._strides,t=this._offset;for(let o=0;o<r.length;o++)t+=r[o]*e[o];if(k(this._dtype)){let o=t*2,n,g;I instanceof T?(n=I.re,g=I.im):typeof I=="object"&&I!==null&&"re"in I?(n=I.re,g=I.im??0):(n=Number(I),g=0),this._data[o]=n,this._data[o+1]=g}else this._data[t]=I}copy(){let r=Array.from(this._shape),I=this._dtype,e=this.size,t=k(I),o=nA(I);if(!o)throw new Error(`Cannot copy array with dtype ${I}`);let n=t?e*2:e,g=new o(n);if(this.isCContiguous&&this._offset===0)g.set(this._data.subarray(0,n));else if(L(I)){let i=g;for(let Q=0;Q<e;Q++)i[Q]=this.iget(Q)}else if(t){let i=g;for(let Q=0;Q<e;Q++){let a=this.iget(Q);i[Q*2]=a.re,i[Q*2+1]=a.im}}else for(let i=0;i<e;i++)g[i]=this.iget(i);return new A(g,r,A._computeStrides(r),0,I)}static fromData(r,I,e,t,o){if(I.length>Yi)throw new Error(`maximum supported dimension for an ndarray is currently ${Yi}, found ${I.length}`);let n=t??A._computeStrides(I),g=o??0;return new A(r,I,n,g,e)}static zeros(r,I=BA){if(r.length>Yi)throw new Error(`maximum supported dimension for an ndarray is currently ${Yi}, found ${r.length}`);let e=r.reduce((i,Q)=>i*Q,1),t=k(I),o=nA(I);if(!o)throw new Error(`Cannot create array with dtype ${I}`);let n=t?e*2:e,g=new o(n);return new A(g,r,A._computeStrides(r),0,I)}static ones(r,I=BA){let e=r.reduce((i,Q)=>i*Q,1),t=k(I),o=nA(I);if(!o)throw new Error(`Cannot create array with dtype ${I}`);let n=t?e*2:e,g=new o(n);if(L(I))g.fill(BigInt(1));else if(t){let i=g;for(let Q=0;Q<e;Q++)i[Q*2]=1,i[Q*2+1]=0}else g.fill(1);return new A(g,r,A._computeStrides(r),0,I)}static _computeStrides(r){let I=new Array(r.length),e=1;for(let t=r.length-1;t>=0;t--)I[t]=e,e*=r[t];return I}};function HA(A){let r=new Array(A.length),I=1;for(let e=A.length-1;e>=0;e--)r[e]=I,I*=A[e];return r}var Y={thresholdMultiplier:1,wasmCallCount:0};var nQ=null,iQ=0,vi=0;function K(){return nQ||(nQ=new WebAssembly.Memory({initial:17})),nQ}function J(A){let r=K(),I=vi+A,e=r.buffer.byteLength;if(I>e){let t=Math.ceil((I-e)/65536);r.grow(t)}}function U(A=vi){iQ=A,Y.wasmCallCount++}function W(A){A>vi&&(vi=A)}function _(A){let r=iQ+7&-8;return iQ=r+A,r}function q(A){let r=_(A.byteLength),I=K();return new Uint8Array(I.buffer,r,A.byteLength).set(new Uint8Array(A.buffer,A.byteOffset,A.byteLength)),r}function v(A,r,I){let e=K(),t=new I(new ArrayBuffer(r*I.BYTES_PER_ELEMENT),0,r);return new Uint8Array(t.buffer,0,t.byteLength).set(new Uint8Array(e.buffer,A,t.byteLength)),t}var jU="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",ie=null;function lI(){if(ie)return ie;let A=atob(jU),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ie=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ie.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ie}function eD(A,r,I){lI().exports.flip_f64(A,r,I)}function tD(A,r,I){lI().exports.flip_f32(A,r,I)}function gQ(A,r,I){lI().exports.flip_i64(A,r,I)}function QQ(A,r,I){lI().exports.flip_i32(A,r,I)}function aQ(A,r,I){lI().exports.flip_i16(A,r,I)}function sQ(A,r,I){lI().exports.flip_i8(A,r,I)}var $U=64,A2={float64:eD,float32:tD,int64:gQ,uint64:gQ,int32:QQ,uint32:QQ,int16:aQ,uint16:aQ,int8:sQ,uint8:sQ},r2={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function BQ(A){if(!A.isCContiguous)return null;let r=A.size;if(r<$U*Y.thresholdMultiplier)return null;let I=A.dtype,e=A2[I],t=r2[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),s=_(g);e(a,s,r);let B=v(s,r,t);return d.fromData(B,Array.from(A.shape),I)}var I2="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",ge=null;function hI(){if(ge)return ge;let A=atob(I2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ge=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ge.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ge}function oD(A,r,I,e,t,o){hI().exports.tile_2d_f64(A,r,I,e,t,o)}function nD(A,r,I,e,t,o){hI().exports.tile_2d_f32(A,r,I,e,t,o)}function CQ(A,r,I,e,t,o){hI().exports.tile_2d_i64(A,r,I,e,t,o)}function EQ(A,r,I,e,t,o){hI().exports.tile_2d_i32(A,r,I,e,t,o)}function uQ(A,r,I,e,t,o){hI().exports.tile_2d_i16(A,r,I,e,t,o)}function cQ(A,r,I,e,t,o){hI().exports.tile_2d_i8(A,r,I,e,t,o)}var e2=64,t2={float64:oD,float32:nD,int64:CQ,uint64:CQ,int32:EQ,uint32:EQ,int16:uQ,uint16:uQ,int8:cQ,uint8:cQ},o2={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function fQ(A,r,I){if(!A.isCContiguous||A.shape.length!==2)return null;let e=A.size;if(e<e2*Y.thresholdMultiplier)return null;let t=A.dtype,o=t2[t],n=o2[t];if(!o||!n)return null;let g=A.shape[0],i=A.shape[1],Q=g*r*i*I,a=n.BYTES_PER_ELEMENT,s=e*a,B=Q*a;J(s+B),U();let C=A.offset,E=A.data.subarray(C,C+e),u=q(E),D=_(B);o(u,D,g,i,r,I);let m=v(D,Q,n);return d.fromData(m,[g*r,i*I],t)}var n2="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADBwYAAAAAAAAGCQF/AUGAgMAACwdCBghyb2xsX2Y2NAAACHJvbGxfZjMyAAEIcm9sbF9pNjQAAghyb2xsX2kzMgADCHJvbGxfaTE2AAQHcm9sbF9pOAAFCpY+BpMLAgF+CH8CQCACRQ0AAkACQAJAAkACQAJAIAKtIgRCACADrCAEgSIEQoCAgICAgICAgH9WGyAEfCIEQgBSDQACQCACQX5xIgMNAEEAIQUMBgsgA0F/akEBdkEBaiIGQQNxIQcgA0EHTw0BQQAhBQwECyAEpyIIQQEgCEEBSxshCSACIAhrIQpBACEHAkACQCAEQgpUDQAgCEEDdCACQQN0IABqayABakEQSQ0AIAAgCkEDdGohAyAJQX5xIgchCyABIQYDQCAGIAP9AAMA/QsDACADQRBqIQMgBkEQaiEGIAtBfmoiCw0ACyAHIAhGDQELIAchBQJAIAkgB2tBA3EiBkUNACAAIAdBA3QiDCACQQN0aiAIQQN0a2ohAyAHIAZqIQUgBkEDdCELIAEgDGohBgNAIAYgAysDADkDACAGQQhqIQYgA0EIaiEDIAtBeGoiCw0ACwsgByAJa0F8Sw0AIAAgBUEDdCIGIAJBA3RqIAhBA3RraiEDIAggBWshCyABIAZqIQYDQCAGIAMrAwA5AwAgBkEIaiADQQhqKwMAOQMAIAZBEGogA0EQaisDADkDACAGQRhqIANBGGorAwA5AwAgBkEgaiEGIANBIGohAyALQXxqIgsNAAsLIApBfnEiAw0BQQAhBwwCCyAGQXxxIglBAXQhBUEAIQMDQCABIANqIgYgACADaiIL/QADAP0LAwAgBkEQaiALQRBq/QADAP0LAwAgBkEgaiALQSBq/QADAP0LAwAgBkEwaiALQTBq/QADAP0LAwAgA0HAAGohAyAJQXxqIgkNAAwDCwsgA0F/akEBdkEBaiIGQQNxIQkCQAJAIANBB08NAEEAIQcMAQsgASAIQQN0aiEMIAZBfHEiBUEBdCEHQQAhAwNAIAwgA2oiBiAAIANqIgv9AAMA/QsDACAGQRBqIAtBEGr9AAMA/QsDACAGQSBqIAtBIGr9AAMA/QsDACAGQTBqIAtBMGr9AAMA/QsDACADQcAAaiEDIAVBfGoiBQ0ACwsgCUUNACABIAdBA3QiBiAIQQN0amohAyAHIAlBAXRqIQcgACAGaiEGA0AgAyAG/QADAP0LAwAgBkEQaiEGIANBEGohAyAJQX9qIgkNAAsLIAcgCk8NAgJAIAIgByAIamsiCUEISQ0AIAhBA3QiBiABaiAAa0EQSQ0AIAAgB0EDdCILaiEDIAcgCUF+cSIFaiEHIAEgCyAGamohBiAFIQsDQCAGIAP9AAMA/QsDACADQRBqIQMgBkEQaiEGIAtBfmoiCw0ACyAJIAVGDQMLIAEgB0EDdCIGIAhBA3RqaiEDIAAgBmohBgNAIAMgBisDADkDACADQQhqIQMgBkEIaiEGIAdBAWoiByAKSQ0ADAMLCyAHRQ0AIAUgB0EBdGohCyAAIAVBA3QiBmohAyABIAZqIQYDQCAGIAP9AAMA/QsDACADQRBqIQMgBkEQaiEGIAdBf2oiBw0ACyALIQULIAIgBU0NAAJAIAIgBWsiB0EESQ0AIAEgAGtBEEkNACAAIAVBA3QiBmohAyABIAZqIQYgBSAHQX5xIglqIQUgCSELA0AgBiAD/QADAP0LAwAgA0EQaiEDIAZBEGohBiALQX5qIgsNAAsgByAJRg0BCyAFIQcCQCACIAVrQQNxIgtFDQAgBSALaiEHIAEgBUEDdCIGaiEDIAAgBmohBgNAIAMgBisDADkDACADQQhqIQMgBkEIaiEGIAtBf2oiCw0ACwsgBSACa0F8Sw0AIAdBA3QhCyACIAdrIQcDQCABIAtqIgMgACALaiIGKwMAOQMAIANBCGogBkEIaisDADkDACADQRBqIAZBEGorAwA5AwAgA0EYaiAGQRhqKwMAOQMAIAFBIGohASAAQSBqIQAgB0F8aiIHDQALCwuRCwIBfgh/AkAgAkUNAAJAAkACQAJAAkACQCACrSIEQgAgA6wgBIEiBEKAgICAgICAgIB/VhsgBHwiBEIAUg0AAkAgAkF8cSIDDQBBACEFDAYLIANBf2pBAnZBAWoiBkEDcSEHIANBDU8NAUEAIQUMBAsgBKciCEEBIAhBAUsbIQkgAiAIayEKQQAhBwJAAkAgBEIMVA0AIAhBAnQgAkECdCAAamsgAWpBEEkNACAAIApBAnRqIQMgCUF8cSIHIQsgASEGA0AgBiAD/QACAP0LAgAgA0EQaiEDIAZBEGohBiALQXxqIgsNAAsgByAIRg0BCyAHIQUCQCAJQQNxIgtFDQAgACAHQQJ0IgYgAkECdGogCEECdGtqIQMgByALaiEFIAEgBmohBgNAIAYgAyoCADgCACAGQQRqIQYgA0EEaiEDIAtBf2oiCw0ACwsgByAJa0F8Sw0AIAAgBUECdCIGIAJBAnRqIAhBAnRraiEDIAggBWshCyABIAZqIQYDQCAGIAMqAgA4AgAgBkEEaiADQQRqKgIAOAIAIAZBCGogA0EIaioCADgCACAGQQxqIANBDGoqAgA4AgAgBkEQaiEGIANBEGohAyALQXxqIgsNAAsLIApBfHEiAw0BQQAhBwwCCyAGQfz///8HcSIJQQJ0IQVBACEDA0AgASADaiIGIAAgA2oiC/0AAgD9CwIAIAZBEGogC0EQav0AAgD9CwIAIAZBIGogC0Egav0AAgD9CwIAIAZBMGogC0Ewav0AAgD9CwIAIANBwABqIQMgCUF8aiIJDQAMAwsLIANBf2pBAnZBAWoiBkEDcSEJAkACQCADQQ1PDQBBACEHDAELIAEgCEECdGohDCAGQfz///8HcSIFQQJ0IQdBACEDA0AgDCADaiIGIAAgA2oiC/0AAgD9CwIAIAZBEGogC0EQav0AAgD9CwIAIAZBIGogC0Egav0AAgD9CwIAIAZBMGogC0Ewav0AAgD9CwIAIANBwABqIQMgBUF8aiIFDQALCyAJRQ0AIAEgB0ECdCIGIAhBAnRqaiEDIAcgCUECdGohByAAIAZqIQYDQCADIAb9AAIA/QsCACAGQRBqIQYgA0EQaiEDIAlBf2oiCQ0ACwsgByAKTw0CAkAgAiAHIAhqayIJQQhJDQAgCEECdCIGIAFqIABrQRBJDQAgACAHQQJ0IgtqIQMgByAJQXxxIgVqIQcgASALIAZqaiEGIAUhCwNAIAYgA/0AAgD9CwIAIANBEGohAyAGQRBqIQYgC0F8aiILDQALIAkgBUYNAwsgASAHQQJ0IgYgCEECdGpqIQMgACAGaiEGA0AgAyAGKgIAOAIAIANBBGohAyAGQQRqIQYgB0EBaiIHIApJDQAMAwsLIAdFDQAgBSAHQQJ0aiELIAAgBUECdCIGaiEDIAEgBmohBgNAIAYgA/0AAgD9CwIAIANBEGohAyAGQRBqIQYgB0F/aiIHDQALIAshBQsgAiAFTQ0AAkAgAiAFayIHQQRJDQAgASAAa0EQSQ0AIAAgBUECdCIGaiEDIAEgBmohBiAFIAdBfHEiCWohBSAJIQsDQCAGIAP9AAIA/QsCACADQRBqIQMgBkEQaiEGIAtBfGoiCw0ACyAHIAlGDQELIAUhBwJAIAIgBWtBA3EiC0UNACAFIAtqIQcgASAFQQJ0IgZqIQMgACAGaiEGA0AgAyAGKgIAOAIAIANBBGohAyAGQQRqIQYgC0F/aiILDQALCyAFIAJrQXxLDQAgB0ECdCELIAIgB2shBwNAIAEgC2oiAyAAIAtqIgYqAgA4AgAgA0EEaiAGQQRqKgIAOAIAIANBCGogBkEIaioCADgCACADQQxqIAZBDGoqAgA4AgAgAUEQaiEBIABBEGohACAHQXxqIgcNAAsLC48IAgF+CH8CQCACRQ0AAkAgAq0iBEIAIAOsIASBIgRCgICAgICAgICAf1YbIAR8IgRCAFINAEEAIQUCQCACQQRJDQAgASAAa0EQSQ0AIAJBfnEiBSEGIAAhAyABIQcDQCAHIAP9AAMA/QsDACADQRBqIQMgB0EQaiEHIAZBfmoiBg0ACyACIAVGDQILIAUhCAJAIAIgBWtBA3EiBkUNACAFIAZqIQggASAFQQN0IgdqIQMgACAHaiEHA0AgAyAHKQMANwMAIANBCGohAyAHQQhqIQcgBkF/aiIGDQALCyAFIAJrQXxLDQEgCEEDdCEGIAIgCGshAgNAIAEgBmoiAyAAIAZqIgcpAwA3AwAgA0EIaiAHQQhqKQMANwMAIANBEGogB0EQaikDADcDACADQRhqIAdBGGopAwA3AwAgAUEgaiEBIABBIGohACACQXxqIgINAAwCCwsgBKciBUEBIAVBAUsbIQkgAiAFayEKQQAhCAJAAkAgBEIKVA0AIAVBA3QgAkEDdCAAamsgAWpBEEkNACAAIApBA3RqIQMgCUF+cSIIIQYgASEHA0AgByAD/QADAP0LAwAgA0EQaiEDIAdBEGohByAGQX5qIgYNAAsgCCAFRg0BCyAIIQsCQCAJIAhrQQNxIgdFDQAgACAIQQN0IgwgAkEDdGogBUEDdGtqIQMgCCAHaiELIAdBA3QhBiABIAxqIQcDQCAHIAMpAwA3AwAgB0EIaiEHIANBCGohAyAGQXhqIgYNAAsLIAggCWtBfEsNACAAIAtBA3QiByACQQN0aiAFQQN0a2ohAyAFIAtrIQYgASAHaiEHA0AgByADKQMANwMAIAdBCGogA0EIaikDADcDACAHQRBqIANBEGopAwA3AwAgB0EYaiADQRhqKQMANwMAIAdBIGohByADQSBqIQMgBkF8aiIGDQALCyACIAVGDQBBACEIAkAgCkEISQ0AIAEgBUEDdCIDaiAAa0EQSQ0AIAEgA2ohAyAKQX5xIgghBiAAIQcDQCADIAf9AAMA/QsDACAHQRBqIQcgA0EQaiEDIAZBfmoiBg0ACyAKIAhGDQELIAghCQJAIAIgCCAFamtBA3EiB0UNACABIAhBA3QiCyAFQQN0amohAyAIIAdqIQkgB0EDdCEGIAAgC2ohBwNAIAMgBykDADcDACADQQhqIQMgB0EIaiEHIAZBeGoiBg0ACwsgCCACayAFakF8Sw0AIAEgCUEDdCIHIAVBA3RqaiEDIAAgB2ohByAJIAVqIAJrIQYDQCADIAcpAwA3AwAgA0EIaiAHQQhqKQMANwMAIANBEGogB0EQaikDADcDACADQRhqIAdBGGopAwA3AwAgA0EgaiEDIAdBIGohByAGQQRqIgYNAAsLC5ELAgF+CH8CQCACRQ0AAkACQAJAAkACQAJAIAKtIgRCACADrCAEgSIEQoCAgICAgICAgH9WGyAEfCIEQgBSDQACQCACQXxxIgMNAEEAIQUMBgsgA0F/akECdkEBaiIGQQNxIQcgA0ENTw0BQQAhBQwECyAEpyIIQQEgCEEBSxshCSACIAhrIQpBACEHAkACQCAEQgxUDQAgCEECdCACQQJ0IABqayABakEQSQ0AIAAgCkECdGohAyAJQXxxIgchCyABIQYDQCAGIAP9AAIA/QsCACADQRBqIQMgBkEQaiEGIAtBfGoiCw0ACyAHIAhGDQELIAchBQJAIAlBA3EiC0UNACAAIAdBAnQiBiACQQJ0aiAIQQJ0a2ohAyAHIAtqIQUgASAGaiEGA0AgBiADKAIANgIAIAZBBGohBiADQQRqIQMgC0F/aiILDQALCyAHIAlrQXxLDQAgACAFQQJ0IgYgAkECdGogCEECdGtqIQMgCCAFayELIAEgBmohBgNAIAYgAygCADYCACAGQQRqIANBBGooAgA2AgAgBkEIaiADQQhqKAIANgIAIAZBDGogA0EMaigCADYCACAGQRBqIQYgA0EQaiEDIAtBfGoiCw0ACwsgCkF8cSIDDQFBACEHDAILIAZB/P///wdxIglBAnQhBUEAIQMDQCABIANqIgYgACADaiIL/QACAP0LAgAgBkEQaiALQRBq/QACAP0LAgAgBkEgaiALQSBq/QACAP0LAgAgBkEwaiALQTBq/QACAP0LAgAgA0HAAGohAyAJQXxqIgkNAAwDCwsgA0F/akECdkEBaiIGQQNxIQkCQAJAIANBDU8NAEEAIQcMAQsgASAIQQJ0aiEMIAZB/P///wdxIgVBAnQhB0EAIQMDQCAMIANqIgYgACADaiIL/QACAP0LAgAgBkEQaiALQRBq/QACAP0LAgAgBkEgaiALQSBq/QACAP0LAgAgBkEwaiALQTBq/QACAP0LAgAgA0HAAGohAyAFQXxqIgUNAAsLIAlFDQAgASAHQQJ0IgYgCEECdGpqIQMgByAJQQJ0aiEHIAAgBmohBgNAIAMgBv0AAgD9CwIAIAZBEGohBiADQRBqIQMgCUF/aiIJDQALCyAHIApPDQICQCACIAcgCGprIglBCEkNACAIQQJ0IgYgAWogAGtBEEkNACAAIAdBAnQiC2ohAyAHIAlBfHEiBWohByABIAsgBmpqIQYgBSELA0AgBiAD/QACAP0LAgAgA0EQaiEDIAZBEGohBiALQXxqIgsNAAsgCSAFRg0DCyABIAdBAnQiBiAIQQJ0amohAyAAIAZqIQYDQCADIAYoAgA2AgAgA0EEaiEDIAZBBGohBiAHQQFqIgcgCkkNAAwDCwsgB0UNACAFIAdBAnRqIQsgACAFQQJ0IgZqIQMgASAGaiEGA0AgBiAD/QACAP0LAgAgA0EQaiEDIAZBEGohBiAHQX9qIgcNAAsgCyEFCyACIAVNDQACQCACIAVrIgdBBEkNACABIABrQRBJDQAgACAFQQJ0IgZqIQMgASAGaiEGIAUgB0F8cSIJaiEFIAkhCwNAIAYgA/0AAgD9CwIAIANBEGohAyAGQRBqIQYgC0F8aiILDQALIAcgCUYNAQsgBSEHAkAgAiAFa0EDcSILRQ0AIAUgC2ohByABIAVBAnQiBmohAyAAIAZqIQYDQCADIAYoAgA2AgAgA0EEaiEDIAZBBGohBiALQX9qIgsNAAsLIAUgAmtBfEsNACAHQQJ0IQsgAiAHayEHA0AgASALaiIDIAAgC2oiBigCADYCACADQQRqIAZBBGooAgA2AgAgA0EIaiAGQQhqKAIANgIAIANBDGogBkEMaigCADYCACABQRBqIQEgAEEQaiEAIAdBfGoiBw0ACwsLkQsCAX4IfwJAIAJFDQACQAJAAkACQAJAAkAgAq0iBEIAIAOsIASBIgRCgICAgICAgICAf1YbIAR8IgRCAFINAAJAIAJBeHEiAw0AQQAhBQwGCyADQX9qQQN2QQFqIgZBA3EhByADQRlPDQFBACEFDAQLIASnIghBASAIQQFLGyEJIAIgCGshCkEAIQcCQAJAIARCEFQNACAIQQF0IAJBAXQgAGprIAFqQRBJDQAgACAKQQF0aiEDIAlBeHEiByELIAEhBgNAIAYgA/0AAQD9CwEAIANBEGohAyAGQRBqIQYgC0F4aiILDQALIAcgCEYNAQsgByEFAkAgCUEDcSILRQ0AIAAgB0EBdCIGIAJBAXRqIAhBAXRraiEDIAcgC2ohBSABIAZqIQYDQCAGIAMvAQA7AQAgBkECaiEGIANBAmohAyALQX9qIgsNAAsLIAcgCWtBfEsNACAAIAVBAXQiBiACQQF0aiAIQQF0a2ohAyAIIAVrIQsgASAGaiEGA0AgBiADLwEAOwEAIAZBAmogA0ECai8BADsBACAGQQRqIANBBGovAQA7AQAgBkEGaiADQQZqLwEAOwEAIAZBCGohBiADQQhqIQMgC0F8aiILDQALCyAKQXhxIgMNAUEAIQcMAgsgBkH8////A3EiCUEDdCEFQQAhAwNAIAEgA2oiBiAAIANqIgv9AAEA/QsBACAGQRBqIAtBEGr9AAEA/QsBACAGQSBqIAtBIGr9AAEA/QsBACAGQTBqIAtBMGr9AAEA/QsBACADQcAAaiEDIAlBfGoiCQ0ADAMLCyADQX9qQQN2QQFqIgZBA3EhCQJAAkAgA0EZTw0AQQAhBwwBCyABIAhBAXRqIQwgBkH8////A3EiBUEDdCEHQQAhAwNAIAwgA2oiBiAAIANqIgv9AAEA/QsBACAGQRBqIAtBEGr9AAEA/QsBACAGQSBqIAtBIGr9AAEA/QsBACAGQTBqIAtBMGr9AAEA/QsBACADQcAAaiEDIAVBfGoiBQ0ACwsgCUUNACABIAdBAXQiBiAIQQF0amohAyAHIAlBA3RqIQcgACAGaiEGA0AgAyAG/QABAP0LAQAgBkEQaiEGIANBEGohAyAJQX9qIgkNAAsLIAcgCk8NAgJAIAIgByAIamsiCUEISQ0AIAhBAXQiBiABaiAAa0EQSQ0AIAAgB0EBdCILaiEDIAcgCUF4cSIFaiEHIAEgCyAGamohBiAFIQsDQCAGIAP9AAEA/QsBACADQRBqIQMgBkEQaiEGIAtBeGoiCw0ACyAJIAVGDQMLIAEgB0EBdCIGIAhBAXRqaiEDIAAgBmohBgNAIAMgBi8BADsBACADQQJqIQMgBkECaiEGIAdBAWoiByAKSQ0ADAMLCyAHRQ0AIAUgB0EDdGohCyAAIAVBAXQiBmohAyABIAZqIQYDQCAGIAP9AAEA/QsBACADQRBqIQMgBkEQaiEGIAdBf2oiBw0ACyALIQULIAIgBU0NAAJAIAIgBWsiB0EISQ0AIAEgAGtBEEkNACAAIAVBAXQiBmohAyABIAZqIQYgBSAHQXhxIglqIQUgCSELA0AgBiAD/QABAP0LAQAgA0EQaiEDIAZBEGohBiALQXhqIgsNAAsgByAJRg0BCyAFIQcCQCACIAVrQQNxIgtFDQAgBSALaiEHIAEgBUEBdCIGaiEDIAAgBmohBgNAIAMgBi8BADsBACADQQJqIQMgBkECaiEGIAtBf2oiCw0ACwsgBSACa0F8Sw0AIAdBAXQhCyACIAdrIQcDQCABIAtqIgMgACALaiIGLwEAOwEAIANBAmogBkECai8BADsBACADQQRqIAZBBGovAQA7AQAgA0EGaiAGQQZqLwEAOwEAIAFBCGohASAAQQhqIQAgB0F8aiIHDQALCwu0CQIBfgd/AkAgAkUNAAJAAkACQAJAAkACQCACrSIEQgAgA6wgBIEiBEKAgICAgICAgIB/VhsgBHwiBEIAUg0AAkAgAkFwcSIDDQBBACEDDAYLIANBf2pBBHZBAWoiBUEDcSEGIANBMU8NAUEAIQMMBAsgBKciB0EBIAdBAUsbIQggACACIAdrIglqIQVBACEKAkACQCAEQhBUDQAgASAHaiACIABqa0EQSQ0AIAhBcHEiCiEGIAUhAyABIQsDQCALIAP9AAAA/QsAACADQRBqIQMgC0EQaiELIAZBcGoiBg0ACyAKIAdGDQELIAohAwJAIAhBA3EiC0UNACAKIQMDQCABIANqIAUgA2otAAA6AAAgA0EBaiEDIAtBf2oiCw0ACwsgCiAIa0F8Sw0AIAEhCiAHIQgDQCAKIANqIgsgBSADaiIGLQAAOgAAIAtBAWogBkEBai0AADoAACALQQJqIAZBAmotAAA6AAAgC0EDaiAGQQNqLQAAOgAAIApBBGohCiAFQQRqIQUgAyAIQXxqIghHDQALCyAJQXBxIgMNAUEAIQMMAgsgBUH8////AXEhCkEAIQMDQCABIANqIgUgACADaiIL/QAAAP0LAAAgBUEQaiALQRBq/QAAAP0LAAAgBUEgaiALQSBq/QAAAP0LAAAgBUEwaiALQTBq/QAAAP0LAAAgA0HAAGohAyAKQXxqIgoNAAwDCwsgASAHaiEKIANBf2pBBHZBAWoiBUEDcSEGAkACQCADQTFPDQBBACEDDAELIAVB/P///wFxIQhBACEDA0AgCiADaiIFIAAgA2oiC/0AAAD9CwAAIAVBEGogC0EQav0AAAD9CwAAIAVBIGogC0Egav0AAAD9CwAAIAVBMGogC0Ewav0AAAD9CwAAIANBwABqIQMgCEF8aiIIDQALCyAGRQ0AA0AgCiADaiAAIANq/QAAAP0LAAAgA0EQaiEDIAZBf2oiBg0ACwsgAyAJTw0CIAEgB2ohBQJAIAIgAyAHaiIGayIKQRBJDQAgBSAAa0EQSQ0AIAAgA2ohCyABIAZqIQYgAyAKQXBxIghqIQMgCCEBA0AgBiAL/QAAAP0LAAAgC0EQaiELIAZBEGohBiABQXBqIgENAAsgCiAIRg0DCwNAIAUgA2ogACADai0AADoAACADQQFqIgMgCUkNAAwDCwsgBkUNAANAIAEgA2ogACADav0AAAD9CwAAIANBEGohAyAGQX9qIgYNAAsLIAIgA00NAAJAIAIgA2siCkEQSQ0AIAEgAGtBEEkNACAAIANqIQUgASADaiELIAMgCkFwcSIIaiEDIAghBgNAIAsgBf0AAAD9CwAAIAVBEGohBSALQRBqIQsgBkFwaiIGDQALIAogCEYNAQsgAyEFAkAgAiADa0EDcSILRQ0AIAMhBQNAIAEgBWogACAFai0AADoAACAFQQFqIQUgC0F/aiILDQALCyADIAJrQXxLDQADQCABIAVqIgMgACAFaiILLQAAOgAAIANBAWogC0EBai0AADoAACADQQJqIAtBAmotAAA6AAAgA0EDaiALQQNqLQAAOgAAIAFBBGohASAAQQRqIQAgBSACQXxqIgJHDQALCws=",Qe=null;function dI(){if(Qe)return Qe;let A=atob(n2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Qe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Qe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Qe}function iD(A,r,I,e){dI().exports.roll_f64(A,r,I,e)}function gD(A,r,I,e){dI().exports.roll_f32(A,r,I,e)}function DQ(A,r,I,e){dI().exports.roll_i64(A,r,I,e)}function mQ(A,r,I,e){dI().exports.roll_i32(A,r,I,e)}function yQ(A,r,I,e){dI().exports.roll_i16(A,r,I,e)}function lQ(A,r,I,e){dI().exports.roll_i8(A,r,I,e)}var i2=64,g2={float64:iD,float32:gD,int64:DQ,uint64:DQ,int32:mQ,uint32:mQ,int16:yQ,uint16:yQ,int8:lQ,uint8:lQ},Q2={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function QD(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<i2*Y.thresholdMultiplier)return null;let e=A.dtype,t=g2[e],o=Q2[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),s=q(a),B=_(i);t(s,B,I,r);let C=v(B,I,o);return d.fromData(C,Array.from(A.shape),e)}var a2="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADBwYAAAAAAAAGCQF/AUGAgMAACwdIBglyb3Q5MF9mNjQAAAlyb3Q5MF9mMzIAAQlyb3Q5MF9pNjQAAglyb3Q5MF9pMzIAAwlyb3Q5MF9pMTYABAhyb3Q5MF9pOAAFCo8OBqcCAQx/AkAgA0UNACACRQ0AIABBeGoiBCADQQN0IgVqIQYgA0EEdCEHIANBGGwhCCADQQV0IQkgAkEDdCEKIAJBfHEhCyACQQNxIQxBACENA0BBACEOAkAgAkEESQ0AQQAhDiAEIQ8gASEAA0AgACAPIAVqKwMAOQMAIABBCGogDyAHaisDADkDACAAQRBqIA8gCGorAwA5AwAgAEEYaiAPIAlqIg8rAwA5AwAgAEEgaiEAIAsgDkEEaiIORw0ACwsCQCAMRQ0AIAEgDkEDdGohACAGIAUgDmxqIQ8gDCEOA0AgACAPKwMAOQMAIABBCGohACAPIAVqIQ8gDkF/aiIODQALCyAGQXhqIQYgBEF4aiEEIAEgCmohASANQQFqIg0gA0cNAAsLC6cCAQx/AkAgA0UNACACRQ0AIABBfGoiBCADQQJ0IgVqIQYgA0EDdCEHIANBDGwhCCADQQR0IQkgAkECdCEKIAJBfHEhCyACQQNxIQxBACENA0BBACEOAkAgAkEESQ0AQQAhDiAEIQ8gASEAA0AgACAPIAVqKgIAOAIAIABBBGogDyAHaioCADgCACAAQQhqIA8gCGoqAgA4AgAgAEEMaiAPIAlqIg8qAgA4AgAgAEEQaiEAIAsgDkEEaiIORw0ACwsCQCAMRQ0AIAEgDkECdGohACAGIAUgDmxqIQ8gDCEOA0AgACAPKgIAOAIAIABBBGohACAPIAVqIQ8gDkF/aiIODQALCyAGQXxqIQYgBEF8aiEEIAEgCmohASANQQFqIg0gA0cNAAsLC6cCAQx/AkAgA0UNACACRQ0AIABBeGoiBCADQQN0IgVqIQYgA0EEdCEHIANBGGwhCCADQQV0IQkgAkEDdCEKIAJBfHEhCyACQQNxIQxBACENA0BBACEOAkAgAkEESQ0AQQAhDiAEIQ8gASEAA0AgACAPIAVqKQMANwMAIABBCGogDyAHaikDADcDACAAQRBqIA8gCGopAwA3AwAgAEEYaiAPIAlqIg8pAwA3AwAgAEEgaiEAIAsgDkEEaiIORw0ACwsCQCAMRQ0AIAEgDkEDdGohACAGIAUgDmxqIQ8gDCEOA0AgACAPKQMANwMAIABBCGohACAPIAVqIQ8gDkF/aiIODQALCyAGQXhqIQYgBEF4aiEEIAEgCmohASANQQFqIg0gA0cNAAsLC6cCAQx/AkAgA0UNACACRQ0AIABBfGoiBCADQQJ0IgVqIQYgA0EDdCEHIANBDGwhCCADQQR0IQkgAkECdCEKIAJBfHEhCyACQQNxIQxBACENA0BBACEOAkAgAkEESQ0AQQAhDiAEIQ8gASEAA0AgACAPIAVqKAIANgIAIABBBGogDyAHaigCADYCACAAQQhqIA8gCGooAgA2AgAgAEEMaiAPIAlqIg8oAgA2AgAgAEEQaiEAIAsgDkEEaiIORw0ACwsCQCAMRQ0AIAEgDkECdGohACAGIAUgDmxqIQ8gDCEOA0AgACAPKAIANgIAIABBBGohACAPIAVqIQ8gDkF/aiIODQALCyAGQXxqIQYgBEF8aiEEIAEgCmohASANQQFqIg0gA0cNAAsLC6sCAQx/AkAgA0UNACACRQ0AIABBfmoiBCADQQF0IgVqIQYgA0ECdCEHIANBBmwhCCADQQN0IQkgAkEBdCEKIAJBfHEhCyACQQNxIQxBACENIAJBBEkhDgNAQQAhDwJAIA4NAEEAIQ8gBCEAIAEhAgNAIAIgACAFai8BADsBACACQQJqIAAgB2ovAQA7AQAgAkEEaiAAIAhqLwEAOwEAIAJBBmogACAJaiIALwEAOwEAIAJBCGohAiALIA9BBGoiD0cNAAsLAkAgDEUNACABIA9BAXRqIQIgBiAFIA9saiEAIAwhDwNAIAIgAC8BADsBACACQQJqIQIgACAFaiEAIA9Bf2oiDw0ACwsgBkF+aiEGIARBfmohBCABIApqIQEgDUEBaiINIANHDQALCwu7AgENfwJAIANFDQAgAkUNACACQXxxIQQgAkEDcSEFIAAgA0F/aiIGaiEHIANBAXRBf2ohCCADQQNsQX9qIQkgA0ECdCIKQX9qIQtBACEMIAJBBEkhDQNAQQAhDgJAIA0NAEEAIQ4gACEPA0AgASAOaiIQIA8gBmotAAA6AAAgEEEBaiAPIAhqLQAAOgAAIBBBAmogDyAJai0AADoAACAQQQNqIA8gC2otAAA6AAAgDyAKaiEPIAQgDkEEaiIORw0ACwsCQCAFRQ0AIAEgDmohDyAHIAMgDmxqIRAgBSEOA0AgDyAQLQAAOgAAIA9BAWohDyAQIANqIRAgDkF/aiIODQALCyAHQX9qIQcgBkF/aiEGIAhBf2ohCCAJQX9qIQkgC0F/aiELIAEgAmohASAMQQFqIgwgA0cNAAsLCw==",ae=null;function bI(){if(ae)return ae;let A=atob(a2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ae=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ae.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ae}function aD(A,r,I,e){bI().exports.rot90_f64(A,r,I,e)}function sD(A,r,I,e){bI().exports.rot90_f32(A,r,I,e)}function hQ(A,r,I,e){bI().exports.rot90_i64(A,r,I,e)}function dQ(A,r,I,e){bI().exports.rot90_i32(A,r,I,e)}function bQ(A,r,I,e){bI().exports.rot90_i16(A,r,I,e)}function pQ(A,r,I,e){bI().exports.rot90_i8(A,r,I,e)}var s2=64,B2={float64:aD,float32:sD,int64:hQ,uint64:hQ,int32:dQ,uint32:dQ,int16:bQ,uint16:bQ,int8:pQ,uint8:pQ},C2={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function BD(A){if(!A.isCContiguous||A.shape.length!==2)return null;let r=A.size;if(r<s2*Y.thresholdMultiplier)return null;let I=A.dtype,e=B2[I],t=C2[I];if(!e||!t)return null;let o=A.shape[0],n=A.shape[1],g=t.BYTES_PER_ELEMENT,i=r*g,Q=r*g;J(i+Q),U();let a=A.offset,s=A.data.subarray(a,a+r),B=q(s),C=_(Q);e(B,C,o,n);let E=v(C,r,t);return d.fromData(E,[n,o],I)}var E2="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADBwYAAAAAAAAGCQF/AUGAgMAACwdOBgpyZXBlYXRfZjY0AAAKcmVwZWF0X2YzMgABCnJlcGVhdF9pNjQAAgpyZXBlYXRfaTMyAAMKcmVwZWF0X2kxNgAECXJlcGVhdF9pOAAFCt4JBsIBBQR/AXwBfwF7AX8CQCACRQ0AIANFDQAgA0EDdCEEIANBfnEhBUEAIQYgA0ECSSEHA0AgACAGQQN0aisDACEIQQAhCQJAAkAgBw0AIAj9FCEKIAUhCyABIQkDQCAJIAr9CwMAIAlBEGohCSALQX5qIgsNAAsgBSEJIAMgBUYNAQsgAyAJayELIAEgCUEDdGohCQNAIAkgCDkDACAJQQhqIQkgC0F/aiILDQALCyABIARqIQEgBkEBaiIGIAJHDQALCwvCAQUEfwF9AX8BewF/AkAgAkUNACADRQ0AIANBAnQhBCADQXxxIQVBACEGIANBBEkhBwNAIAAgBkECdGoqAgAhCEEAIQkCQAJAIAcNACAI/RMhCiAFIQsgASEJA0AgCSAK/QsCACAJQRBqIQkgC0F8aiILDQALIAUhCSADIAVGDQELIAMgCWshCyABIAlBAnRqIQkDQCAJIAg4AgAgCUEEaiEJIAtBf2oiCw0ACwsgASAEaiEBIAZBAWoiBiACRw0ACwsLwgEFBH8BfgF/AXsBfwJAIAJFDQAgA0UNACADQQN0IQQgA0F+cSEFQQAhBiADQQJJIQcDQCAAIAZBA3RqKQMAIQhBACEJAkACQCAHDQAgCP0SIQogBSELIAEhCQNAIAkgCv0LAwAgCUEQaiEJIAtBfmoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQN0aiEJA0AgCSAINwMAIAlBCGohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC74BAwZ/AXsBfwJAIAJFDQAgA0UNACADQQJ0IQQgA0F8cSEFQQAhBiADQQRJIQcDQCAAIAZBAnRqKAIAIQhBACEJAkACQCAHDQAgCP0RIQogBSELIAEhCQNAIAkgCv0LAgAgCUEQaiEJIAtBfGoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQJ0aiEJA0AgCSAINgIAIAlBBGohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC74BAwZ/AXsBfwJAIAJFDQAgA0UNACADQQF0IQQgA0F4cSEFQQAhBiADQQhJIQcDQCAAIAZBAXRqLwEAIQhBACEJAkACQCAHDQAgCP0QIQogBSELIAEhCQNAIAkgCv0LAQAgCUEQaiEJIAtBeGoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQF0aiEJA0AgCSAIOwEAIAlBAmohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC48CAQh/AkAgAkUNACADRQ0AIAJBA3EhBEEAIQUCQCACQX9qQQNJDQAgA0EBdCEGIANBAnQhByADQQNsIQggAkF8cSEJQQAhBSABIQIDQCAAIAVqIQoCQCADRSILDQAgAiAKLQAAIAP8CwALAkAgCw0AIAIgA2ogCkEBai0AACAD/AsACwJAIAsNACACIAZqIApBAmotAAAgA/wLAAsCQCALDQAgAiAIaiAKQQNqLQAAIAP8CwALIAIgB2ohAiAJIAVBBGoiBUcNAAsLIARFDQAgACAFaiECIAEgBSADbGohCwNAAkAgA0UNACALIAItAAAgA/wLAAsgCyADaiELIAJBAWohAiAEQX9qIgQNAAsLCw==",se=null;function pI(){if(se)return se;let A=atob(E2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);se=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=se.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),se}function CD(A,r,I,e){pI().exports.repeat_f64(A,r,I,e)}function ED(A,r,I,e){pI().exports.repeat_f32(A,r,I,e)}function wQ(A,r,I,e){pI().exports.repeat_i64(A,r,I,e)}function NQ(A,r,I,e){pI().exports.repeat_i32(A,r,I,e)}function FQ(A,r,I,e){pI().exports.repeat_i16(A,r,I,e)}function SQ(A,r,I,e){pI().exports.repeat_i8(A,r,I,e)}var u2=64,c2={float64:CD,float32:ED,int64:wQ,uint64:wQ,int32:NQ,uint32:NQ,int16:FQ,uint16:FQ,int8:SQ,uint8:SQ},f2={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function uD(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<u2*Y.thresholdMultiplier)return null;let e=A.dtype,t=c2[e],o=f2[e];if(!t||!o)return null;let n=I*r,g=o.BYTES_PER_ELEMENT,i=I*g,Q=n*g;J(i+Q),U();let a=A.offset,s=A.data.subarray(a,a+I),B=q(s),C=_(Q);t(B,C,I,r);let E=v(C,n,o);return d.fromData(E,[n],e)}function cD(A){if(!A.includes(":")){if(A.includes("."))throw new Error(`Invalid slice index: "${A}" (must be integer)`);let o=parseInt(A,10);if(isNaN(o))throw new Error(`Invalid slice index: "${A}"`);return{start:o,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),e=r[1]===""||r[1]===void 0?null:parseInt(r[1],10),t=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(e!==null&&isNaN(e))throw new Error(`Invalid stop index in slice: "${A}"`);if(isNaN(t))throw new Error(`Invalid step in slice: "${A}"`);if(t===0)throw new Error("Slice step cannot be zero");return{start:I,stop:e,step:t,isIndex:!1}}function fD(A,r){let{start:I,stop:e}=A,{step:t,isIndex:o}=A;if(o){if(I===null)throw new Error("Index cannot be null");let n=I<0?r+I:I;if(n<0||n>=r)throw new Error(`Index ${I} is out of bounds for size ${r}`);return{start:n,stop:n+1,step:1,isIndex:!0}}return t>0?(I===null&&(I=0),e===null&&(e=r)):(I===null&&(I=r-1),e===null&&(e=-r-1)),I<0&&(I=r+I),e<0&&(e=r+e),I=Math.max(0,Math.min(I,r)),e=Math.max(-1,Math.min(e,r)),{start:I,stop:e,step:t,isIndex:!1}}function DD(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((n,g)=>{let i=cD(n);return fD(i,A.shape[g])});for(;I.length<A.ndim;)I.push({start:0,stop:A.shape[I.length],step:1,isIndex:!1});let e=[],t=[],o=A.offset;for(let n=0;n<I.length;n++){let g=I[n];if(o+=g.start*A.strides[n],g.isIndex)continue;let i=Math.max(0,Math.ceil((g.stop-g.start)/g.step));e.push(i),t.push(A.strides[n]*g.step)}return d.fromData(A.data,e,A.dtype,t,o)}function EA(A,r){let I=A.size,e=A.dtype,t=r.indexOf(-1),o;if(t!==-1){let Q=r.reduce((s,B,C)=>C===t?s:s*B,1),a=I/Q;if(!Number.isInteger(a))throw new Error(`cannot reshape array of size ${I} into shape ${JSON.stringify(r)}`);o=r.map((s,B)=>B===t?a:s)}else o=r;if(o.reduce((Q,a)=>Q*a,1)!==I)throw new Error(`cannot reshape array of size ${I} into shape ${JSON.stringify(o)}`);if(A.isCContiguous){let Q=A.data;return d.fromData(Q,o,e,HA(o),0)}let i=A.copy().data;return d.fromData(i,o,e,HA(o),0)}function gI(A){let r=A.size,I=A.dtype,e=nA(I);if(!e)throw new Error(`Cannot flatten array with dtype ${I}`);let t=k(I),o=t?r*2:r;if(A.isCContiguous){let i=A.data,Q=t?A.offset*2:A.offset,a=i.slice(Q,Q+o);return d.fromData(a,[r],I,[1],0)}let n=new e(o),g=L(I);if(t)for(let i=0;i<r;i++){let Q=A.iget(i);n[i*2]=Q.re,n[i*2+1]=Q.im}else for(let i=0;i<r;i++){let Q=A.iget(i);n[i]=Q}return d.fromData(n,[r],I,[1],0)}function wI(A){let r=A.size,I=A.dtype;if(A.isCContiguous){let e=A.data;return d.fromData(e,[r],I,[1],0)}return gI(A)}function GQ(A,r){let I=A.shape,e=I.length,t=A.strides,o=A.data,n=A.dtype,g;if(r===void 0)g=Array.from({length:e},(s,B)=>e-1-B);else{if(r.length!==e)throw new Error(`axes must have length ${e}, got ${r.length}`);let s=new Set;for(let B of r){let C=B<0?e+B:B;if(C<0||C>=e)throw new Error(`axis ${B} is out of bounds for array of dimension ${e}`);if(s.has(C))throw new Error("repeated axis in transpose");s.add(C)}g=r.map(B=>B<0?e+B:B)}let i=g.map(s=>I[s]),Q=Array.from(t),a=g.map(s=>Q[s]);return d.fromData(o,i,n,a,A.offset)}function mD(A,r){let I=A.shape,e=I.length,t=A.strides,o=A.data,n=A.dtype;if(r===void 0){let g=[],i=[];for(let Q=0;Q<e;Q++)I[Q]!==1&&(g.push(I[Q]),i.push(t[Q]));return d.fromData(o,g,n,i,A.offset)}else{let g=r<0?e+r:r;if(g<0||g>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);if(I[g]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${r} has size ${I[g]})`);let i=[],Q=[];for(let a=0;a<e;a++)a!==g&&(i.push(I[a]),Q.push(t[a]));return d.fromData(o,i,n,Q,A.offset)}}function iI(A,r){let I=A.shape,e=I.length,t=A.strides,o=A.data,n=A.dtype,g=r;if(g<0&&(g=e+r+1),g<0||g>e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e+1}`);let i=[...Array.from(I)];i.splice(g,0,1);let Q=[...Array.from(t)],a=g<e?t[g]*(I[g]||1):1;return Q.splice(g,0,a),d.fromData(o,i,n,Q,A.offset)}function yD(A,r,I){let e=A.shape,t=e.length,o=A.strides,n=A.data,g=A.dtype,i=r<0?t+r:r,Q=I<0?t+I:I;if(i<0||i>=t)throw new Error(`axis1 ${r} is out of bounds for array of dimension ${t}`);if(Q<0||Q>=t)throw new Error(`axis2 ${I} is out of bounds for array of dimension ${t}`);if(i===Q)return d.fromData(n,Array.from(e),g,Array.from(o),A.offset);let a=Array.from(e),s=Array.from(o);return[a[i],a[Q]]=[a[Q],a[i]],[s[i],s[Q]]=[s[Q],s[i]],d.fromData(n,a,g,s,A.offset)}function RQ(A,r,I){let e=A.ndim,t=Array.isArray(r)?r:[r],o=Array.isArray(I)?I:[I];if(t.length!==o.length)throw new Error("source and destination must have the same number of elements");let n=t.map(Q=>{let a=Q<0?e+Q:Q;if(a<0||a>=e)throw new Error(`source axis ${Q} is out of bounds for array of dimension ${e}`);return a}),g=o.map(Q=>{let a=Q<0?e+Q:Q;if(a<0||a>=e)throw new Error(`destination axis ${Q} is out of bounds for array of dimension ${e}`);return a});if(new Set(n).size!==n.length)throw new Error("repeated axis in source");if(new Set(g).size!==g.length)throw new Error("repeated axis in destination");let i=[];for(let Q=0;Q<e;Q++)n.includes(Q)||i.push(Q);for(let Q=0;Q<n.length;Q++){let a=g[Q];i.splice(a,0,n[Q])}return GQ(A,i)}function Hr(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],e=I.ndim,t=I.dtype,o=r<0?e+r:r;if(o<0||o>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);for(let C=1;C<A.length;C++){let E=A[C];if(E.ndim!==e)throw new Error("all the input arrays must have same number of dimensions");for(let u=0;u<e;u++)if(u!==o&&E.shape[u]!==I.shape[u])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let n=Array.from(I.shape),g=I.shape[o];for(let C=1;C<A.length;C++)g+=A[C].shape[o];n[o]=g;let i=n.reduce((C,E)=>C*E,1),Q=nA(t);if(!Q)throw new Error(`Cannot concatenate arrays with dtype ${t}`);let a=new Q(i),s=HA(n),B=0;for(let C of A){let E=C.shape[o];D2(C,a,n,s,o,B,t),B+=E}return d.fromData(a,n,t)}function D2(A,r,I,e,t,o,n){let g=A.shape,i=g.length,Q=A.size,a=n==="int64"||n==="uint64";if(t===0&&A.isCContiguous&&i>0){let C=o*e[0],E=A.data,u=A.offset,D=u+Q;r.set(E.subarray(u,D),C);return}if(t===1&&i===2&&A.isCContiguous){let C=g[0],E=g[1],u=I[1],D=A.data,m=A.offset;for(let c=0;c<C;c++){let f=m+c*E,y=c*u+o;r.set(D.subarray(f,f+E),y)}return}let s=new Array(i).fill(0),B=o*e[t];for(let C=0;C<Q;C++){let E=A.iget(C),u=B;for(let D=0;D<i;D++)u+=s[D]*e[D];r[u]=E;for(let D=i-1;D>=0&&(s[D]++,!(s[D]<g[D]));D--)s[D]=0}}function lD(A,r=0){if(A.length===0)throw new Error("need at least one array to stack");let I=A[0],e=I.shape,t=I.ndim,o=r<0?t+1+r:r;if(o<0||o>t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t+1}`);for(let g=1;g<A.length;g++){let i=A[g];if(i.ndim!==t)throw new Error("all input arrays must have the same shape");for(let Q=0;Q<t;Q++)if(i.shape[Q]!==e[Q])throw new Error("all input arrays must have the same shape")}let n=A.map(g=>iI(g,o));return Hr(n,o)}function hD(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?EA(I,[1,I.shape[0]]):I);return Hr(r,0)}function kQ(A){if(A.length===0)throw new Error("need at least one array to stack");return A.every(I=>I.ndim===1)?Hr(A,0):Hr(A,1)}function dD(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?EA(iI(EA(I,[1,I.shape[0]]),2),[1,I.shape[0],1]):I.ndim===2?iI(I,2):I);return Hr(r,2)}function bD(A,r,I=0){let e=A.shape,t=e.length,o=I<0?t+I:I;if(o<0||o>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let n=e[o],g;if(typeof r=="number"){if(n%r!==0)throw new Error("array split does not result in an equal division");let i=n/r;g=[];for(let Q=1;Q<r;Q++)g.push(Q*i)}else g=r;return pD(A,g,o)}function Be(A,r,I=0){let e=A.shape,t=e.length,o=I<0?t+I:I;if(o<0||o>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let n=e[o],g;if(typeof r=="number"){let i=r,Q=Math.floor(n/i),a=n%i;g=[];let s=0;for(let B=0;B<i-1;B++)s+=Q+(B<a?1:0),g.push(s)}else g=r;return pD(A,g,o)}function pD(A,r,I){let e=A.shape,t=e[I],o=[0,...r,t],n=[];for(let g=0;g<o.length-1;g++){let i=o[g],Q=o[g+1];if(i>Q)throw new Error("split indices must be in ascending order");let a=Array.from(e);a[I]=Q-i;let s=A.offset+i*A.strides[I];n.push(d.fromData(A.data,a,A.dtype,Array.from(A.strides),s))}return n}function wD(A,r){if(A.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return Be(A,r,0)}function ND(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 Be(A,r,I)}function FD(A,r){let I=A.shape,e=I.length,t=A.dtype,o=Array.isArray(r)?r:[r];if(e===2&&o.length===2&&A.isCContiguous){let c=fQ(A,o[0],o[1]);if(c)return c}if(e===1&&o.length===1&&A.isCContiguous){let c=fQ(A,1,o[0]);if(c)return d.fromData(c.data,[A.size*o[0]],A.dtype)}let n=Math.max(e,o.length),g=new Array(n).fill(1),i=new Array(n).fill(1);for(let c=0;c<e;c++)g[n-e+c]=I[c];for(let c=0;c<o.length;c++)i[n-o.length+c]=o[c];let Q=g.map((c,f)=>c*i[f]),a=Q.reduce((c,f)=>c*f,1),s=nA(t);if(!s)throw new Error(`Cannot tile array with dtype ${t}`);let B=new s(a),C=HA(Q),E=A;e<n&&(E=EA(A,g));let u=t==="int64"||t==="uint64",D=E.strides,m=new Array(n).fill(0);for(let c=0;c<a;c++){let f=E.offset;for(let h=0;h<n;h++){let b=m[h]%g[h];f+=b*D[h]}let y=E.data[f],l=0;for(let h=0;h<n;h++)l+=m[h]*C[h];B[l]=y;for(let h=n-1;h>=0&&(m[h]++,!(m[h]<Q[h]));h--)m[h]=0}return d.fromData(B,Q,t)}function SD(A,r,I){let e=A.shape,t=e.length,o=A.dtype,n=A.size;if(I===void 0){if(typeof r=="number"&&A.isCContiguous){let p=uD(A,r);if(p)return p}let c=n,f=Array.isArray(r)?r:new Array(c).fill(r);if(f.length!==c)throw new Error(`operands could not be broadcast together with shape (${c},) (${f.length},)`);let y=f.reduce((p,w)=>p+w,0),l=nA(o);if(!l)throw new Error(`Cannot repeat array with dtype ${o}`);let h=new l(y),b=0;for(let p=0;p<c;p++){let w=A.iget(p),N=f[p];for(let F=0;F<N;F++)h[b++]=w}return d.fromData(h,[y],o)}let g=I<0?t+I:I;if(g<0||g>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let i=e[g],Q=Array.isArray(r)?r:new Array(i).fill(r);if(Q.length!==i)throw new Error(`operands could not be broadcast together with shape (${i},) (${Q.length},)`);let a=Array.from(e);a[g]=Q.reduce((c,f)=>c+f,0);let s=a.reduce((c,f)=>c*f,1),B=nA(o);if(!B)throw new Error(`Cannot repeat array with dtype ${o}`);let C=new B(s),E=HA(a),u=new Array(t).fill(0),D=o==="int64"||o==="uint64",m=[0];for(let c=0;c<i;c++)m.push(m[c]+Q[c]);for(let c=0;c<n;c++){let f=A.iget(c),y=u[g],l=Q[y],h=0;for(let w=0;w<t;w++)w!==g&&(h+=u[w]*E[w]);let b=E[g],p=m[y];for(let w=0;w<l;w++){let N=h+(p+w)*b;C[N]=f}for(let w=t-1;w>=0&&(u[w]++,!(u[w]<e[w]));w--)u[w]=0}return d.fromData(C,a,o)}function GD(A,r){let I=A.shape,e=I.length,t=A.dtype,o=A.size,n;if(r===void 0)n=new Set(Array.from({length:e},(B,C)=>C));else if(typeof r=="number"){let B=r<0?e+r:r;if(B<0||B>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);n=new Set([B])}else n=new Set(r.map(B=>{let C=B<0?e+B:B;if(C<0||C>=e)throw new Error(`axis ${B} is out of bounds for array of dimension ${e}`);return C}));let g=nA(t);if(!g)throw new Error(`Cannot flip array with dtype ${t}`);let i=L(t);if(n.size===e&&A.isCContiguous&&!k(t)){let B=BQ(A);if(B)return B}let Q=new g(o);if(e===1&&A.isCContiguous){let B=A.data,C=A.offset;for(let E=0;E<o;E++)Q[E]=B[C+o-1-E];return d.fromData(Q,[...I],t)}if(e===2&&A.isCContiguous){let B=I[0],C=I[1],E=A.data,u=A.offset;if(n.size===2){for(let D=0;D<o;D++)Q[D]=E[u+o-1-D];return d.fromData(Q,[...I],t)}if(n.size===1){if(n.has(0)){for(let D=0;D<B;D++){let m=u+(B-1-D)*C,c=D*C;for(let f=0;f<C;f++)Q[c+f]=E[m+f]}return d.fromData(Q,[...I],t)}else if(n.has(1)){for(let D=0;D<B;D++){let m=u+D*C,c=D*C;for(let f=0;f<C;f++)Q[c+f]=E[m+C-1-f]}return d.fromData(Q,[...I],t)}}}let a=new Array(e),s=new Array(e).fill(0);for(let B=0;B<o;B++){for(let u=0;u<e;u++)a[u]=n.has(u)?I[u]-1-s[u]:s[u];let C=A.offset;for(let u=0;u<e;u++)C+=a[u]*A.strides[u];let E=A.data[C];Q[B]=E;for(let u=e-1;u>=0&&(s[u]++,!(s[u]<I[u]));u--)s[u]=0}return d.fromData(Q,[...I],t)}function RD(A,r=1,I=[0,1]){let e=A.shape,t=e.length,o=A.dtype;if(t<2)throw new Error("Input must be at least 2-D");let n=I[0]<0?t+I[0]:I[0],g=I[1]<0?t+I[1]:I[1];if(n<0||n>=t||g<0||g>=t)throw new Error(`Axes are out of bounds for array of dimension ${t}`);if(n===g)throw new Error("Axes must be different");if(r=(r%4+4)%4,r===0)return A.copy();if(t===2&&n===0&&g===1&&A.isCContiguous){if(r===1){let c=BD(A);if(c)return c}else if(r===2){let c=BQ(A);if(c)return c}}let i=nA(o);if(!i)throw new Error(`Cannot rotate array with dtype ${o}`);let Q=[...e];(r===1||r===3)&&([Q[n],Q[g]]=[Q[g],Q[n]]);let a=Q.reduce((c,f)=>c*f,1),s=new i(a),B=L(o),C=A.data;if(t===2&&n===0&&g===1){let c=e[0],f=e[1];if(r===1){let y=f,l=c;if(B){let h=C,b=s;for(let p=0;p<y;p++){let w=p*l,N=f-1-p;for(let F=0;F<l;F++)b[w+F]=h[F*f+N]}}else{let h=C,b=s;for(let p=0;p<y;p++){let w=p*l,N=f-1-p;for(let F=0;F<l;F++)b[w+F]=h[F*f+N]}}}else if(r===2)if(B){let y=C,l=s;for(let h=0;h<c;h++){let b=h*f,p=(c-1-h)*f;for(let w=0;w<f;w++)l[b+w]=y[p+(f-1-w)]}}else{let y=C,l=s;for(let h=0;h<c;h++){let b=h*f,p=(c-1-h)*f;for(let w=0;w<f;w++)l[b+w]=y[p+(f-1-w)]}}else{let y=f,l=c;if(B){let h=C,b=s;for(let p=0;p<y;p++){let w=p*l;for(let N=0;N<l;N++)b[w+N]=h[(c-1-N)*f+p]}}else{let h=C,b=s;for(let p=0;p<y;p++){let w=p*l;for(let N=0;N<l;N++)b[w+N]=h[(c-1-N)*f+p]}}}return d.fromData(s,Q,o)}let E=HA(Q),u=HA(e),D=new Array(t).fill(0),m=new Array(t);for(let c=0;c<A.size;c++){for(let b=0;b<t;b++)m[b]=D[b];let f,y;r===1?(f=e[g]-1-D[g],y=D[n]):r===2?(f=e[n]-1-D[n],y=e[g]-1-D[g],m[n]=f,m[g]=y):(f=D[g],y=e[n]-1-D[n]),r!==2&&(m[n]=f,m[g]=y);let l=0;for(let b=0;b<t;b++)l+=m[b]*E[b];let h=0;for(let b=0;b<t;b++)h+=D[b]*u[b];if(B){let b=C,p=s;p[l]=b[h]}else{let b=C,p=s;p[l]=b[h]}for(let b=t-1;b>=0&&(D[b]++,!(D[b]<e[b]));b--)D[b]=0}return d.fromData(s,Q,o)}function kD(A,r,I){let e=A.shape,t=e.length,o=A.dtype,n=A.size;if(I===void 0){let E=Array.isArray(r)?r.reduce((f,y)=>f+y,0):r;if(A.isCContiguous){let f=QD(A,E);if(f)return f}let u=gI(A),D=nA(o);if(!D)throw new Error(`Cannot roll array with dtype ${o}`);let m=new D(n),c=L(o);for(let f=0;f<n;f++){let y=((f-E)%n+n)%n,l=u.iget(y);m[f]=l}return d.fromData(m,[...e],o)}let g=Array.isArray(r)?r:[r],i=Array.isArray(I)?I:[I];if(g.length!==i.length)throw new Error("shift and axis must have the same length");let Q=i.map(E=>{let u=E<0?t+E:E;if(u<0||u>=t)throw new Error(`axis ${E} is out of bounds for array of dimension ${t}`);return u}),a=nA(o);if(!a)throw new Error(`Cannot roll array with dtype ${o}`);let s=new a(n),B=L(o),C=new Array(t).fill(0);for(let E=0;E<n;E++){let u=[...C];for(let c=0;c<Q.length;c++){let f=Q[c],y=e[f],l=g[c];u[f]=((u[f]-l)%y+y)%y}let D=A.offset;for(let c=0;c<t;c++)D+=u[c]*A.strides[c];let m=A.data[D];s[E]=m;for(let c=t-1;c>=0&&(C[c]++,!(C[c]<e[c]));c--)C[c]=0}return d.fromData(s,[...e],o)}function qD(A,r,I=0){let e=A.ndim,t=r<0?e+r:r;if(t<0||t>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let o=I<0?e+I:I;if(o<0||o>e)throw new Error(`start ${I} is out of bounds`);return t<o&&o--,t===o?d.fromData(A.data,Array.from(A.shape),A.dtype,Array.from(A.strides),A.offset):RQ(A,t,o)}function MD(A,r){if(A.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return Be(A,r,2)}function xD(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?EA(I,[I.shape[0],1]):I);return kQ(r)}function JD(A,r){let I=A.dtype,e=r.reduce((i,Q)=>i*Q,1),t=A.size,o=nA(I);if(!o)throw new Error(`Cannot resize array with dtype ${I}`);let n=new o(e),g=L(I);for(let i=0;i<e;i++){let Q=i%t,a=A.iget(Q);n[i]=a}return d.fromData(n,r,I)}function UD(A){return A.map(r=>r.ndim===0?EA(r,[1]):r)}function LD(A){return A.map(r=>r.ndim===0?EA(r,[1,1]):r.ndim===1?EA(r,[1,r.shape[0]]):r)}function HD(A){return A.map(r=>r.ndim===0?EA(r,[1,1,1]):r.ndim===1?EA(r,[1,r.shape[0],1]):r.ndim===2?EA(r,[r.shape[0],r.shape[1],1]):r)}function _D(A,r=0){let I=A.shape,e=I.length,t=r<0?e+r:r;if(t<0||t>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let o=I[t],n=new Array(o),g=A.data,i=A.dtype,Q=A.strides,a=A.offset,s=[],B=[];for(let E=0;E<e;E++)E!==t&&(s.push(I[E]),B.push(Q[E]));let C=Q[t];for(let E=0;E<o;E++)n[E]=d.fromData(g,s,i,B,a+E*C);return n}function YD(A,r=1){if(A.length===0)throw new Error("need at least one array to block");return A.length===1?A[0].copy():Hr(A,-1)}var m2={threshold:1e3,edgeitems:3,precision:8,linewidth:75,floatmode:"maxprec",suppress:!0,separator:" ",prefix:"",suffix:"",nanstr:"nan",infstr:"inf",sign:"-",legacy:!1},wA={...m2};function TD(A){wA={...wA,...A}}function PD(){return{...wA}}function KD(A){let r=null,I={_savedOptions:null,enter(){r={...wA},I._savedOptions=r,wA={...wA,...A}},exit(){r&&(wA=r,r=null,I._savedOptions=null)},apply(e){I.enter();try{return e()}finally{I.exit()}}};return I}function Ee(A,r=null,I=!0,e=!0,t="k",o="-",n=null,g=null,i=null){let Q=r??wA.precision;if(!Number.isFinite(A))return Number.isNaN(A)?wA.nanstr:(A>0?"":"-")+wA.infstr;let a;if(I&&r===null?(a=A.toString(),e&&!a.includes(".")&&!a.includes("e")&&(a+=".0")):a=A.toFixed(Q),i!==null){let s=a.indexOf(".");if(s!==-1){let B=a.length-s-1;B<i&&(a+="0".repeat(i-B))}else e&&(a+="."+"0".repeat(i))}if(t!=="k"&&a.includes(".")){if(t==="."||t==="0"||t==="-"){let s=a.length;for(;s>0&&a[s-1]==="0";)s--;a=a.slice(0,s)}t==="0"&&a.endsWith(".")&&(a+="0"),t==="-"&&a.endsWith(".")&&(a=a.slice(0,-1))}if(A>=0&&!Object.is(A,-0)&&(o==="+"?a="+"+a:o===" "&&(a=" "+a)),n!==null&&a.length<n&&(a=" ".repeat(n-a.length)+a),g!==null){let s=a.indexOf(".");if(s!==-1){let B=a.length-s-1;B<g&&(a+="0".repeat(g-B))}}return a}function Ce(A,r=null,I=!0,e="k",t="-",o=null,n=2,g=null){let i=r??wA.precision;if(!Number.isFinite(A))return Number.isNaN(A)?wA.nanstr:(A>0?"":"-")+wA.infstr;let Q=A.toExponential(i);if(g!==null){let u=Q.indexOf("e"),D=Q.slice(0,u),m=Q.slice(u),c=D.indexOf(".");if(c!==-1){let f=D.length-c-1;f<g&&(Q=D+"0".repeat(g-f)+m)}}if(e!=="k"){let u=Q.indexOf("e"),D=Q.slice(0,u),m=Q.slice(u);D.includes(".")&&((e==="."||e==="0"||e==="-")&&(D=D.replace(/0+$/,"")),e==="0"&&D.endsWith(".")&&(D+="0"),e==="-"&&(D=D.replace(/\.$/,""))),Q=D+m}let a=Q.indexOf("e"),s=Q.slice(0,a),B=Q.slice(a+1),C=B[0]==="-"?"-":"+",E=B.replace(/^[+-]/,"");for(;E.length<n;)E="0"+E;return Q=s+"e"+C+E,A>=0&&!Object.is(A,-0)&&(t==="+"?Q="+"+Q:t===" "&&(Q=" "+Q)),o!==null&&Q.length<o&&(Q=" ".repeat(o-Q.length)+Q),Q}function VD(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 e;if(A<0?e="-"+Math.abs(A).toString(r).toUpperCase():e=A.toString(r).toUpperCase(),I>0){let t="0".repeat(I);e.startsWith("-")?e="-"+t+e.slice(1):e=t+e}return e}function WD(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 t=A.toString(2);return t.length<r&&(t="0".repeat(r-t.length)+t),t}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 Pi(A,r,I){if(A instanceof T){let e=Pi(A.re,"float64",I),t=Pi(Math.abs(A.im),"float64",I),o=A.im>=0?"+":"-";return`${e}${o}${t}j`}return typeof A=="boolean"?A?" True":"False":typeof A=="bigint"?A.toString():Number.isFinite(A)?r==="float32"||r==="float64"?I.suppress&&Math.abs(A)<1e-10&&A!==0?"0.":Ee(A,I.precision,!1,!0,"k",I.sign):A.toString():Number.isNaN(A)?I.nanstr:(A>0?"":"-")+I.infstr}function y2(A,r){let I=[],e=A.shape,t=e.length,o=A.strides;function n(g,i){if(i===t){let B=0;for(let C=0;C<t;C++)B+=g[C]*o[C];I.push(A.iget(B));return}let Q=e[i];if(e.reduce((B,C)=>B*C,1)>r.threshold&&Q>2*r.edgeitems){for(let B=0;B<r.edgeitems;B++)g[i]=B,n(g,i+1);for(let B=Q-r.edgeitems;B<Q;B++)g[i]=B,n(g,i+1)}else for(let B=0;B<Q;B++)g[i]=B,n(g,i+1)}return t>0?n(new Array(t).fill(0),0):I.push(A.iget(0)),I}function vD(A,r){return A<0||Object.is(A,-0)?"-"+Math.abs(A).toString()+".":r==="+"?"+"+A.toString()+".":r===" "?" "+A.toString()+".":A.toString()+"."}function NI(A,r,I){let e=A.indexOf(".");if(e===-1)return A.padStart(r+(I>0?1+I:0));let t=A.slice(0,e),o=A.slice(e+1),n=t.padStart(r),g=I>0?o.padEnd(I):o;return n+"."+g}function XD(A){let r=0,I=0;for(let e of A){let t=e.indexOf(".");t===-1?r=Math.max(r,e.length):(r=Math.max(r,t),I=Math.max(I,e.length-t-1))}return{maxLeft:r,maxRight:I}}function qQ(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),C=B.length>0?Math.max(...B.map(E=>E.length)):1;return E=>Number.isNaN(E)?r.nanstr.padStart(C):Number.isFinite(E)?E.toString().padStart(C):((E>0?"":"-")+r.infstr).padStart(C)}let e=r.suppress?I.map(B=>Math.abs(B)<1e-10&&B!==0?0:B):I,t=e.map(Math.abs).filter(B=>B>0),o=t.length>0?Math.max(...t):0,n=t.length>0?Math.min(...t):0;if(o>=1e16||n>0&&n<1e-4||n>0&&o/n>1e3){let B=e.map(f=>Ce(f,r.precision,!1,".",r.sign)),C=0;for(let f of B){let y=f.indexOf("e"),l=y!==-1?f.slice(0,y):f,h=l.indexOf(".");h!==-1&&(C=Math.max(C,l.length-h-1))}let E=Math.max(C,0),u=Math.max(E,1),D=E===0?".":"k",m=e.map(f=>Ce(f,u,!1,D,r.sign));for(let f of A)Number.isFinite(f)||m.push(Number.isNaN(f)?r.nanstr:(f>0?"":"-")+r.infstr);let c=Math.max(...m.map(f=>f.length));return f=>(r.suppress&&Math.abs(f)<1e-10&&f!==0&&Number.isFinite(f)&&(f=0),Number.isNaN(f)?r.nanstr.padStart(c):Number.isFinite(f)?Ce(f,u,!1,D,r.sign).padStart(c):((f>0?"":"-")+r.infstr).padStart(c))}if(e.every(B=>Number.isInteger(B))){let B=e.map(u=>vD(u,r.sign));for(let u of A)Number.isFinite(u)||B.push(Number.isNaN(u)?r.nanstr:(u>0?"":"-")+r.infstr);let{maxLeft:C,maxRight:E}=XD(B);return u=>(r.suppress&&Math.abs(u)<1e-10&&u!==0&&Number.isFinite(u)&&(u=0),Number.isNaN(u)?NI(r.nanstr,C,E):Number.isFinite(u)?NI(vD(u,r.sign),C,E):NI((u>0?"":"-")+r.infstr,C,E))}let Q=e.map(B=>Ee(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:a,maxRight:s}=XD(Q);return B=>(r.suppress&&Math.abs(B)<1e-10&&B!==0&&Number.isFinite(B)&&(B=0),Number.isNaN(B)?NI(r.nanstr,a,s):Number.isFinite(B)?NI(Ee(B,r.precision,!1,!0,".",r.sign),a,s):NI((B>0?"":"-")+r.infstr,a,s))}function l2(A,r){let I=A.dtype,e=y2(A,r);if(e.length===0)return o=>Pi(o,I,r);if(I==="bool")return o=>o?" True":"False";if(I==="int64"||I==="uint64"){let o=e.map(g=>g.toString()),n=Math.max(...o.map(g=>g.length));return g=>g.toString().padStart(n)}if(I.startsWith("int")||I.startsWith("uint")){let o=e.map(g=>g.toString()),n=Math.max(...o.map(g=>g.length));return g=>g.toString().padStart(n)}if(I==="complex64"||I==="complex128"){let o=e.map(Q=>Q.re),n=e.map(Q=>Math.abs(Q.im)),g=qQ(o,r),i=qQ(n,r);return Q=>{let a=Q,s=g(a.re),B=i(Math.abs(a.im)),C=a.im>=0?"+":"-";return`${s}${C}${B}j`}}let t=qQ(e,r);return o=>t(o)}function Ti(A,r,I,e,t,o){let n=A.shape,g=n.length;if(I===g){let u=0,D=A.strides;for(let c=0;c<g;c++)u+=r[c]*D[c];let m=A.iget(u);return t(m)}let i=n[I],Q=e.threshold,a=e.edgeitems,B=n.reduce((u,D)=>u*D,1)>Q&&i>2*a,C=[],E=[...r];if(B){for(let u=0;u<a;u++)E[I]=u,C.push(Ti(A,E,I+1,e,t,o+1));C.push("...");for(let u=i-a;u<i;u++)E[I]=u,C.push(Ti(A,E,I+1,e,t,o+1))}else for(let u=0;u<i;u++)E[I]=u,C.push(Ti(A,E,I+1,e,t,o+1));if(I===g-1){let u="["+C.join(e.separator)+"]";if(o+u.length<e.linewidth)return u;let D=" ".repeat(o+1),m=e.linewidth-o-1,c=[],f="";for(let y=0;y<C.length;y++){let l=C[y];if(f==="")f=l;else{let h=f+e.separator+l;h.length<m?f=h:(c.push(f),f=l)}}return f&&c.push(f),"["+c.join(`
2
- `+D)+"]"}else{let u=" ".repeat(o+1),D=g-I-2,m=`
3
- `+`
4
- `.repeat(Math.max(0,D))+u;return"["+C.join(m)+"]"}}function Ki(A,r=null,I=null,e=null,t=" ",o="",n="",g=null,i=null,Q=null,a=null){let s={...wA,linewidth:r??wA.linewidth,precision:I??wA.precision,suppress:e??wA.suppress,separator:t,prefix:o,suffix:n,threshold:g??wA.threshold,edgeitems:i??wA.edgeitems,floatmode:Q??wA.floatmode,sign:a??wA.sign};if(A.ndim===0){let u=A.iget(0);return Pi(u,A.dtype,s)}let B=l2(A,s),C=s.prefix.length,E=Ti(A,new Array(A.ndim).fill(0),0,s,B,C);return s.prefix+E+s.suffix}function OD(A,r=null,I=null,e=null){let o="array("+Ki(A,r,I,e,", ");return A.dtype!=="float64"&&(o+=`, dtype='${A.dtype}'`),o+=")",o}function Vi(A,r=null,I=null,e=null){return Ki(A,r,I,e)}var ZD=2**63,zD={int8:-1,int16:-1,uint8:255,uint16:65535},d2={int8:0,int16:0,uint8:0,uint16:0},jD={int32:[-2147483648,2147483647],uint32:[0,4294967295]};function b2(A,r){if(isNaN(A))return 0;if(r in zD)return A>=ZD||A===1/0?zD[r]:A<=-ZD||A===-1/0?d2[r]:Math.trunc(A);if(r in jD){let[I,e]=jD[r];return A>=e||A===1/0?e:A<=I||A===-1/0?I:Math.trunc(A)}return Math.trunc(A)}var AA=class A{static{this._proxyHandler={get(r,I,e){if(typeof I=="string"){let t=parseInt(I,10);if(!isNaN(t)&&String(t)===I){let o=r._storage.ndim>0?r._storage.shape[0]:1,n=t<0?o+t:t;return r._storage.ndim<=1?r._storage.iget(n):r.slice(I)}}return Reflect.get(r,I,e)},set(r,I,e,t){if(typeof I=="string"){let o=parseInt(I,10);if(!isNaN(o)&&String(o)===I){let n=r._storage.shape[0],g=o<0?n+o:o;if(r._storage.ndim===1)return r.set([g],e),!0;let i=r.slice(String(o)),Q=i.size;if(typeof e=="number"||typeof e=="bigint")i.fill(e);else if(e instanceof T)for(let a=0;a<Q;a++)i._storage.iset(a,e);else if(e instanceof A){if(e.size!==Q)throw new Error(`Cannot assign array of size ${e.size} into slice of size ${Q}`);for(let a=0;a<Q;a++)i._storage.iset(a,e._storage.iget(a))}else if(Array.isArray(e)){let a=e.flat(1/0);if(a.length!==Q)throw new Error(`Cannot assign array of length ${a.length} into slice of size ${Q}`);for(let s=0;s<Q;s++)i._storage.iset(s,a[s])}else throw new Error(`Cannot assign value of type ${typeof e} via bracket operator`);return!0}}return Reflect.set(r,I,e,t)}}}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 Lr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(r){let I=this._storage.dtype,e=this.size;if(L(I)){let t=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));for(let o=0;o<e;o++)this._storage.iset(o,t)}else if(I==="bool"){let t=r?1:0;for(let o=0;o<e;o++)this._storage.iset(o,t)}else{let t=Number(r);for(let o=0;o<e;o++)this._storage.iset(o,t)}}*[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((e,t)=>{let o=e;if(o<0&&(o=this.shape[t]+o),o<0||o>=this.shape[t])throw new Error(`Index ${e} is out of bounds for axis ${t} with size ${this.shape[t]}`);return o});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 e=r.map((o,n)=>{let g=o;if(g<0&&(g=this.shape[n]+g),g<0||g>=this.shape[n])throw new Error(`Index ${o} is out of bounds for axis ${n} with size ${this.shape[n]}`);return g}),t=this.dtype;if(k(t))this._storage.set(e,I);else if(L(t)){let o=I instanceof T?I.re:Number(I),n=typeof I=="bigint"?I:BigInt(Math.round(o));this._storage.set(e,n)}else if(t==="bool"){let n=(I instanceof T?I.re:Number(I))?1:0;this._storage.set(e,n)}else{let o=I instanceof T?I.re:Number(I);this._storage.set(e,o)}}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 e=this.dtype;if(e===r&&!I)return this;if(e===r&&I)return this.copy();let t=Array.from(this.shape),o=this.size,n=nA(r);if(!n)throw new Error(`Cannot convert to dtype ${r}`);let g=k(e),i=k(r);if(g&&i){let B=new n(o*2),C=this.data,E=B;for(let D=0;D<o*2;D++)E[D]=C[D];let u=d.fromData(B,t,r);return new A(u)}if(!g&&i){let B=new n(o*2),C=B;for(let u=0;u<o;u++)C[u*2]=Number(this.data[u]),C[u*2+1]=0;let E=d.fromData(B,t,r);return new A(E)}if(g&&!i){let B=new n(o),C=this.data;if(L(r))for(let u=0;u<o;u++)B[u]=BigInt(Math.trunc(C[u*2]));else for(let u=0;u<o;u++)B[u]=C[u*2];let E=d.fromData(B,t,r);return new A(E)}let Q=new n(o),a=this.data;if(L(e)&&!L(r)){let B=a;if(r==="bool")for(let C=0;C<o;C++)Q[C]=B[C]!==BigInt(0)?1:0;else for(let C=0;C<o;C++)Q[C]=Number(B[C])}else if(!L(e)&&L(r)){let B=a;if(DA(e)){let E=r==="int64",u=BigInt(E?"9223372036854775807":"18446744073709551615"),D=E?BigInt("-9223372036854775808"):0n;for(let m=0;m<o;m++){let c=Number(B[m]);isNaN(c)?Q[m]=0n:!isFinite(c)||c>=Number(u)?Q[m]=c<0?D:u:c<=Number(D)?Q[m]=D:Q[m]=BigInt(Math.trunc(c))}}else for(let E=0;E<o;E++)Q[E]=BigInt(Math.round(Number(B[E])))}else if(r==="bool"){let B=a;for(let C=0;C<o;C++)Q[C]=B[C]!==0?1:0}else if(e==="bool"&&!L(r)){let B=a;for(let C=0;C<o;C++)Q[C]=B[C]}else if(!L(e)&&!L(r)){let B=a;if(DA(e)&&!DA(r))for(let E=0;E<o;E++)Q[E]=b2(B[E],r);else for(let E=0;E<o;E++)Q[E]=B[E]}else{let B=a;for(let C=0;C<o;C++)Q[C]=B[C]}let s=d.fromData(Q,t,r);return new A(s)}slice(...r){let I=DD(this._storage,...r);if(I===this._storage)return this;let e=this._base??this;return new this.constructor(I,e)}toString(){return Vi(this._storage)}toArray(){if(this.ndim===0)return this._storage.iget(0);let r=this.shape,I=r.length,e=(t,o)=>{if(o===I)return this._storage.get(...t);let n=[];for(let g=0;g<r[o];g++)t[o]=g,n.push(e(t,o+1));return n};return e(new Array(I),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let e=this._storage.data,t=e.BYTES_PER_ELEMENT,o=this._storage.offset*t,n=this.size*t;return e.buffer.slice(o,o+n)}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 S(A){return A instanceof AA||A&&typeof A=="object"&&"storage"in A&&A.storage instanceof d?A.storage:A}function R(A,r){return AA.fromStorage(A,r)}function jA(A,r){let I=r.base??r;return AA.fromStorage(A,I)}function dr(A){return A.map(r=>R(r))}function FI(A,r){return A.map(I=>jA(I,r))}function Wi(A){return[R(A[0]),R(A[1])]}function MQ(A){return new AA(A)}function p2(A){return!!(A instanceof AA||A&&typeof A=="object"&&"storage"in A&&A.storage instanceof d)}function er(A,r=BA){let I=d.zeros(A,r);return new AA(I)}function Oi(A,r=BA){let I=d.ones(A,r);return new AA(I)}function Zi(A,r=BA){return er(A,r)}function zi(A,r,I){let e=I;e||(typeof r=="bigint"?e="int64":typeof r=="boolean"?e="bool":Number.isInteger(r)?e="int32":e=BA);let t=nA(e);if(!t)throw new Error(`Cannot create full array with dtype ${e}`);let o=A.reduce((i,Q)=>i*Q,1),n=new t(o);if(L(e)){let i=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));n.fill(i)}else e==="bool"?n.fill(r?1:0):n.fill(Number(r));let g=d.fromData(n,A,e);return new AA(g)}function w2(A){let r=[],I=A;for(;Array.isArray(I);)r.push(I.length),I=I[0];return r}function $D(A){return typeof A=="bigint"?!0:Array.isArray(A)?A.some(r=>$D(r)):!1}function Am(A){return ID(A)?!0:Array.isArray(A)?A.some(r=>Am(r)):!1}function N2(A){let r=[];function I(e){Array.isArray(e)?e.forEach(t=>I(t)):r.push(e)}return I(A),r}function QA(A,r){if(A instanceof AA)return!r||A.dtype===r?A.copy():A.astype(r);let I=$D(A),e=Am(A),t=w2(A),o=t.reduce((C,E)=>C*E,1),n=r;n||(e?n="complex128":I?n="int64":n=BA);let g=k(n),i=nA(n);if(!i)throw new Error(`Cannot create array with dtype ${n}`);let Q=g?o*2:o,a=new i(Q),s=N2(A);if(L(n)){let C=a;for(let E=0;E<o;E++){let u=s[E];C[E]=typeof u=="bigint"?u:BigInt(Math.round(Number(u)))}}else if(n==="bool"){let C=a;for(let E=0;E<o;E++)C[E]=s[E]?1:0}else if(g){let C=a;for(let E=0;E<o;E++){let u=s[E],D,m;u instanceof T?(D=u.re,m=u.im):typeof u=="object"&&u!==null&&"re"in u?(D=u.re,m=u.im??0):(D=Number(u),m=0),C[E*2]=D,C[E*2+1]=m}}else{let C=a;for(let E=0;E<o;E++){let u=s[E];C[E]=Number(u)}}let B=d.fromData(a,t,n);return new AA(B)}function xQ(A,r,I=1,e=BA){let t=A,o=r;if(r===void 0&&(t=0,o=A),o===void 0)throw new Error("stop is required");let n=Math.max(0,Math.ceil((o-t)/I)),g=nA(e);if(!g)throw new Error(`Cannot create arange array with dtype ${e}`);let i=new g(n);if(L(e))for(let a=0;a<n;a++)i[a]=BigInt(Math.round(t+a*I));else if(e==="bool")for(let a=0;a<n;a++)i[a]=t+a*I!==0?1:0;else for(let a=0;a<n;a++)i[a]=t+a*I;let Q=d.fromData(i,[n],e);return new AA(Q)}function JQ(A,r,I=50,e=BA){if(I<0)throw new Error("num must be non-negative");if(I===0)return QA([],e);if(I===1)return QA([A],e);let t=nA(e);if(!t)throw new Error(`Cannot create linspace array with dtype ${e}`);let o=new t(I),n=(r-A)/(I-1);if(L(e))for(let i=0;i<I;i++)o[i]=BigInt(Math.round(A+i*n));else if(e==="bool")for(let i=0;i<I;i++)o[i]=A+i*n!==0?1:0;else for(let i=0;i<I;i++)o[i]=A+i*n;let g=d.fromData(o,[I],e);return new AA(g)}function UQ(A,r,I=50,e=10,t=BA){if(I<0)throw new Error("num must be non-negative");if(I===0)return QA([],t);if(I===1)return QA([Math.pow(e,A)],t);let o=nA(t);if(!o)throw new Error(`Cannot create logspace array with dtype ${t}`);let n=new o(I),g=(r-A)/(I-1);if(L(t))for(let Q=0;Q<I;Q++){let a=A+Q*g;n[Q]=BigInt(Math.round(Math.pow(e,a)))}else if(t==="bool")for(let Q=0;Q<I;Q++){let a=A+Q*g;n[Q]=Math.pow(e,a)!==0?1:0}else for(let Q=0;Q<I;Q++){let a=A+Q*g;n[Q]=Math.pow(e,a)}let i=d.fromData(n,[I],t);return new AA(i)}function LQ(A,r,I=50,e=BA){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 QA([],e);if(I===1)return QA([A],e);let t=Math.sign(A),o=Math.sign(r);if(t!==o)throw new Error("Geometric sequence cannot contain both positive and negative values");let n=nA(e);if(!n)throw new Error(`Cannot create geomspace array with dtype ${e}`);let g=new n(I),i=Math.log(Math.abs(A)),a=(Math.log(Math.abs(r))-i)/(I-1);if(L(e))for(let B=0;B<I;B++){let C=t*Math.exp(i+B*a);g[B]=BigInt(Math.round(C))}else if(e==="bool")for(let B=0;B<I;B++){let C=t*Math.exp(i+B*a);g[B]=C!==0?1:0}else for(let B=0;B<I;B++){let C=t*Math.exp(i+B*a);g[B]=C}let s=d.fromData(g,[I],e);return new AA(s)}function ji(A,r,I=0,e=BA){let t=r??A,o=er([A,t],e),n=o.data;if(L(e)){let g=n;for(let i=0;i<A;i++){let Q=i+I;Q>=0&&Q<t&&(g[i*t+Q]=BigInt(1))}}else{let g=n;for(let i=0;i<A;i++){let Q=i+I;Q>=0&&Q<t&&(g[i*t+Q]=1)}}return o}function HQ(A,r=BA){return ji(A,A,0,r)}function QI(A,r){return p2(A)?!r||A.dtype===r?A:A.astype(r):QA(A,r)}function _Q(A,r){return er(Array.from(A.shape),r??A.dtype)}function YQ(A,r){return Oi(Array.from(A.shape),r??A.dtype)}function vQ(A,r){return Zi(Array.from(A.shape),r??A.dtype)}function XQ(A,r,I){return zi(Array.from(A.shape),r,I??A.dtype)}function TQ(A){return A.copy()}function PQ(A,r){return QI(A,r)}function KQ(A,r){return QI(A,r).copy()}function VQ(A,r){return QI(A,r).copy()}function WQ(A,r){let I=QI(A,r),e=I.data;if(e instanceof Float64Array){let t=new Uint32Array(e.buffer,e.byteOffset,e.length*2),o=2146435072;for(let n=1;n<t.length;n+=2)if((t[n]&o)===o)throw new Error("array must not contain infs or NaNs")}else if(e instanceof Float32Array){let t=new Uint32Array(e.buffer,e.byteOffset,e.length),o=2139095040;for(let n=0;n<t.length;n++)if((t[n]&o)===o)throw new Error("array must not contain infs or NaNs")}return I}function OQ(A,r,I){let e=A;return r&&r!==A.dtype&&(e=e.astype(r)),e}function F2(A){let r=A.data,I=d.fromData(r.slice(),[r.length],A.dtype);return MQ(I)}function $i(A,r=0){let I=A.shape,e=A.data,t=A.dtype;if(I.length===1){let o=I[0],n=o+Math.abs(r),g=er([n,n],t),i=g.data;for(let Q=0;Q<o;Q++){let a=r>=0?Q:Q-r,s=r>=0?Q+r:Q;a>=0&&a<n&&s>=0&&s<n&&(i[a*n+s]=e[Q])}return g}else if(I.length===2){let o=I[0],n=I[1],g=Math.min(r>=0?Math.min(o,n-r):Math.min(o+r,n),Math.max(0,r>=0?n-r:o+r));if(g<=0)return QA([],t);let i=[];for(let Q=0;Q<g;Q++){let a=r>=0?Q:Q-r,s=r>=0?Q+r:Q;a>=0&&a<o&&s>=0&&s<n&&i.push(e[a*n+s])}return QA(i,t)}throw new Error("Input must be 1-D or 2-D")}function ZQ(A,r=0){let I=F2(A);return $i(I,r)}function zQ(A,r,I=0,e=BA){let t=r??A,o=er([A,t],e),n=o.data;for(let g=0;g<A;g++)for(let i=0;i<=Math.min(g+I,t-1);i++)i>=0&&(n[g*t+i]=1);return o}function jQ(A,r=0){let I=A.shape;if(I.length<2)throw new Error("Input must be at least 2-D");let e=A.copy(),t=e.data,o=I[I.length-2],n=I[I.length-1],g=I.slice(0,-2).reduce((a,s)=>a*s,1),i=o*n,Q=t instanceof BigInt64Array||t instanceof BigUint64Array;for(let a=0;a<g;a++){let s=a*i;for(let B=0;B<o;B++){let C=s+B*n+Math.max(0,Math.min(B+r+1,n)),E=s+B*n+n;C<E&&t.fill(Q?0n:0,C,E)}}return e}function $Q(A,r=0){let I=A.shape;if(I.length<2)throw new Error("Input must be at least 2-D");let e=A.copy(),t=e.data,o=I[I.length-2],n=I[I.length-1],g=I.slice(0,-2).reduce((a,s)=>a*s,1),i=o*n,Q=t instanceof BigInt64Array||t instanceof BigUint64Array;for(let a=0;a<g;a++){let s=a*i;for(let B=0;B<o;B++){let C=s+B*n+Math.max(0,Math.min(B+r,n)),E=s+B*n;E<C&&t.fill(Q?0n:0,E,C)}}return e}function Aa(A,r,I=!1){let e=A.size,t=r??e,o=A.data,n=er([e,t],A.dtype),g=n.data;for(let i=0;i<e;i++){let Q=o[i];for(let a=0;a<t;a++){let s=I?a:t-1-a;g[i*t+a]=Math.pow(Q,s)}}return n}function ra(A,r=BA,I=-1,e=0){let t=nA(r);if(!t)throw new Error(`Unsupported dtype: ${r}`);let o;if(A instanceof ArrayBuffer){let g=e,i=I<0?(A.byteLength-g)/t.BYTES_PER_ELEMENT:I;o=new t(A,g,i)}else{let g=e,i=I<0?A.length:e+I,Q=Array.from(A.slice(g,i));o=new t(Q.length);for(let a=0;a<Q.length;a++)o[a]=Q[a]}let n=d.fromData(o,[o.length],r);return MQ(n)}function Ia(A,r,I=BA){let e=r.reduce((Q,a)=>Q*a,1),t=nA(I);if(!t)throw new Error(`Unsupported dtype: ${I}`);let o=new t(e),n=[],g=1;for(let Q=r.length-1;Q>=0;Q--)n.unshift(g),g*=r[Q];for(let Q=0;Q<e;Q++){let a=[],s=Q;for(let B=0;B<r.length;B++)a.push(Math.floor(s/n[B])),s=s%n[B];o[Q]=A(...a)}let i=d.fromData(o,r,I);return MQ(i)}function ea(A,r=BA,I=-1){let e=[],t=0;for(let o of A){if(I>=0&&t>=I)break;e.push(o),t++}return QA(e,r)}function ta(A,r=BA,I=-1,e){let t=e??/\s+/,n=A.split(t).filter(i=>i.trim()!=="").map(i=>parseFloat(i.trim())),g=I>=0?n.slice(0,I):n;return QA(g,r)}function oa(A,r=BA,I=-1,e=""){throw new Error("fromfile requires Node.js file system access")}function _r(A,r){let I=A.length,e=r.length,t=Math.max(I,e),o=new Array(t);for(let n=0;n<t;n++){let g=n<t-I?1:A[n-(t-I)],i=n<t-e?1:r[n-(t-e)];if(g===i)o[n]=g;else if(g===1)o[n]=i;else if(i===1)o[n]=g;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(A))} ${JSON.stringify(Array.from(r))}`)}return o}function S2(A,r,I){let e=A.length,t=I.length,o=new Array(t).fill(0);for(let n=0;n<e;n++){let g=t-e+n,i=A[n],Q=I[g];if(i===Q)o[g]=r[n];else if(i===1)o[g]=0;else throw new Error("Invalid broadcast")}return o}function Ag(A,r){let I=S2(A.shape,A.strides,r);return d.fromData(A.data,Array.from(r),A.dtype,I,A.offset)}function yA(A,r,I,e){let t=IA(A.dtype,r.dtype),o=A.shape,n=r.shape;if(o.length===n.length&&o.every((E,u)=>E===n[u])&&A.isCContiguous&&r.isCContiguous&&!L(A.dtype)&&!L(r.dtype)&&!L(t)){let E=A.size,u=d.zeros(Array.from(o),t),D=u.data,m=A.data,c=r.data,f=A.offset,y=r.offset;if(f===0&&y===0)for(let l=0;l<E;l++)D[l]=I(m[l],c[l]);else for(let l=0;l<E;l++)D[l]=I(m[f+l],c[y+l]);return u}let i=_r(A.shape,r.shape),Q=Ag(A,i),a=Ag(r,i),s=d.zeros(i,t),B=s.data,C=s.size;if(L(t)){let E=B;for(let u=0;u<C;u++){let D=Q.iget(u),m=a.iget(u),c=D instanceof T?D.re:D,f=m instanceof T?m.re:m,y=typeof c=="bigint"?c:BigInt(Math.round(c)),l=typeof f=="bigint"?f:BigInt(Math.round(f));e==="add"?E[u]=y+l:e==="subtract"?E[u]=y-l:e==="multiply"?E[u]=y*l:e==="divide"?E[u]=y/l:E[u]=BigInt(Math.round(I(Number(y),Number(l))))}}else{let E=L(A.dtype)||L(r.dtype);for(let u=0;u<C;u++){let D=Q.iget(u),m=a.iget(u),c=Number(D),f=Number(m);B[u]=I(c,f)}}return s}function tr(A,r,I){let e=_r(A.shape,r.shape),t=Ag(A,e),o=Ag(r,e),n=e.reduce((Q,a)=>Q*a,1),g=new Uint8Array(n),i=L(A.dtype)||L(r.dtype);for(let Q=0;Q<n;Q++){let a=t.iget(Q),s=o.iget(Q),B=Number(a),C=Number(s);g[Q]=I(B,C)?1:0}return d.fromData(g,e,"bool")}function mA(A,r,I=!0){let e=A.dtype,t=Array.from(A.shape),o=A.size,g=I?e:e!=="float32"&&e!=="float64"?"float64":e,i=d.zeros(t,g),Q=i.data,a=A.data,s=A.offset,B=A.isCContiguous;if(L(e))if(L(g)){let C=Q;if(B)for(let E=0;E<o;E++){let u=Number(a[s+E]);C[E]=BigInt(Math.round(r(u)))}else for(let E=0;E<o;E++)C[E]=BigInt(Math.round(r(Number(A.iget(E)))))}else if(B)for(let C=0;C<o;C++)Q[C]=r(Number(a[s+C]));else for(let C=0;C<o;C++)Q[C]=r(Number(A.iget(C)));else if(B)if(s===0)for(let C=0;C<o;C++)Q[C]=r(Number(a[C]));else for(let C=0;C<o;C++)Q[C]=r(Number(a[s+C]));else for(let C=0;C<o;C++)Q[C]=r(Number(A.iget(C)));return i}var G2="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",ue=null;function YA(){if(ue)return ue;let A=atob(G2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ue=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ue.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ue}function rm(A,r,I,e){YA().exports.add_f64(A,r,I,e)}function Im(A,r,I,e){YA().exports.add_scalar_f64(A,r,I,e)}function em(A,r,I,e){YA().exports.add_f32(A,r,I,e)}function tm(A,r,I,e){YA().exports.add_scalar_f32(A,r,I,e)}function om(A,r,I,e){YA().exports.add_c128(A,r,I,e)}function nm(A,r,I,e){YA().exports.add_scalar_c128(A,r,I,e)}function im(A,r,I,e){YA().exports.add_c64(A,r,I,e)}function gm(A,r,I,e){YA().exports.add_scalar_c64(A,r,I,e)}function na(A,r,I,e){YA().exports.add_i64(A,r,I,e)}function ia(A,r,I,e){YA().exports.add_scalar_i64(A,r,I,BigInt(Math.round(e)))}function ga(A,r,I,e){YA().exports.add_i32(A,r,I,e)}function Qa(A,r,I,e){YA().exports.add_scalar_i32(A,r,I,e)}function aa(A,r,I,e){YA().exports.add_i16(A,r,I,e)}function sa(A,r,I,e){YA().exports.add_scalar_i16(A,r,I,e)}function Ba(A,r,I,e){YA().exports.add_i8(A,r,I,e)}function Ca(A,r,I,e){YA().exports.add_scalar_i8(A,r,I,e)}var Qm=64,R2={float64:rm,float32:em,int64:na,uint64:na,int32:ga,uint32:ga,int16:aa,uint16:aa,int8:Ba,uint8:Ba,complex128:om,complex64:im},k2={float64:Im,float32:tm,int64:ia,uint64:ia,int32:Qa,uint32:Qa,int16:sa,uint16:sa,int8:Ca,uint8:Ca,complex128:nm,complex64:gm},am={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},sm={complex128:2,complex64:2};function Bm(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Qm*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=R2[e],o=am[e];if(!t||!o)return null;let n=sm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g,s=i*g;J(Q+a+s),U();let B=A.offset*n,C=r.offset*n,E=A.data.subarray(B,B+i),u=r.data.subarray(C,C+i),D=q(E),m=q(u),c=_(s);t(D,m,c,I);let f=v(c,i,o);return d.fromData(f,Array.from(A.shape),e)}function Cm(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Qm*Y.thresholdMultiplier)return null;let e=A.dtype,t=k2[e],o=am[e];if(!t||!o)return null;let n=sm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g;J(Q+a),U();let s=A.offset*n,B=A.data.subarray(s,s+i),C=q(B),E=_(a);t(C,E,I,r);let u=v(E,i,o);return d.fromData(u,Array.from(A.shape),e)}var q2="AGFzbQEAAAABHQRgBH9/f38AYAR/f398AGAEf39/fQBgBH9/f34AAg8BA2VudgZtZW1vcnkCABADERAAAQACAAEAAgADAAAAAAAABgkBfwFBgIDAAAsH2QEQB3N1Yl9mNjQAAA5zdWJfc2NhbGFyX2Y2NAABB3N1Yl9mMzIAAg5zdWJfc2NhbGFyX2YzMgADCHN1Yl9jMTI4AAQPc3ViX3NjYWxhcl9jMTI4AAUHc3ViX2M2NAAGDnN1Yl9zY2FsYXJfYzY0AAcHc3ViX2k2NAAIDnN1Yl9zY2FsYXJfaTY0AAkHc3ViX2kzMgAKDnN1Yl9zY2FsYXJfaTMyAAsHc3ViX2kxNgAMDnN1Yl9zY2FsYXJfaTE2AA0Gc3ViX2k4AA4Nc3ViX3NjYWxhcl9pOAAPCs4/EJEEAQd/AkACQCADQX5xIgQNAEEAIQUMAQsCQAJAIARBf2oiBkEBRw0AQQAhBQwBCyAGQQF2QQFqQX5xIgdBAXQhBSACIQQgASEIIAAhCQNAIAQgCf0AAwAgCP0AAwD98QH9CwMAIARBEGogCUEQav0AAwAgCEEQav0AAwD98QH9CwMAIARBIGohBCAIQSBqIQggCUEgaiEJIAdBfmoiBw0ACwsgBkECcQ0AIAIgBUEDdCIEaiAAIARq/QADACABIARq/QADAP3xAf0LAwAgBUECaiEFCwJAIAMgBU0NAAJAIAMgBWsiBkEGSQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgASAFQQN0IglqIQQgACAJaiEIIAIgCWohCSAFIAZBfnEiCmohBSAKIQcDQCAJIAj9AAMAIAT9AAMA/fEB/QsDACAEQRBqIQQgCEEQaiEIIAlBEGohCSAHQX5qIgcNAAsgBiAKRg0BCyAFQQFqIQQCQCADIAVrQQFxRQ0AIAIgBUEDdCIIaiAAIAhqKwMAIAEgCGorAwChOQMAIAQhBQsgAyAERg0AIAMgBWshByACIAVBA3QiCWohBCAAIAlqIQggASAJaiEJA0AgBCAIKwMAIAkrAwChOQMAIARBCGogCEEIaisDACAJQQhqKwMAoTkDACAEQRBqIQQgCEEQaiEIIAlBEGohCSAHQX5qIgcNAAsLC+oEAgF7Bn8gA/0UIQQCQAJAIAJBfnEiBQ0AQQAhBgwBCyAFQX9qQQF2QQFqIgdBA3EhCAJAAkAgBUEHTw0AQQAhBgwBCyAHQXxxIglBAXQhBkEAIQUDQCABIAVqIgcgACAFaiIK/QADACAE/fEB/QsDACAHQRBqIApBEGr9AAMAIAT98QH9CwMAIAdBIGogCkEgav0AAwAgBP3xAf0LAwAgB0EwaiAKQTBq/QADACAE/fEB/QsDACAFQcAAaiEFIAlBfGoiCQ0ACwsgCEUNACAGIAhBAXRqIQogACAGQQN0IgdqIQUgASAHaiEHA0AgByAF/QADACAE/fEB/QsDACAFQRBqIQUgB0EQaiEHIAhBf2oiCA0ACyAKIQYLAkAgAiAGTQ0AAkAgAiAGayIIQQRJDQAgASAAa0EQSQ0AIAAgBkEDdCIHaiEFIAEgB2ohByAGIAhBfnEiCWohBiAJIQoDQCAHIAX9AAMAIAT98QH9CwMAIAVBEGohBSAHQRBqIQcgCkF+aiIKDQALIAggCUYNAQsgBiEIAkAgAiAGa0EDcSIKRQ0AIAYgCmohCCABIAZBA3QiB2ohBSAAIAdqIQcDQCAFIAcrAwAgA6E5AwAgBUEIaiEFIAdBCGohByAKQX9qIgoNAAsLIAYgAmtBfEsNACAIQQN0IQogAiAIayEIA0AgASAKaiIFIAAgCmoiBysDACADoTkDACAFQQhqIAdBCGorAwAgA6E5AwAgBUEQaiAHQRBqKwMAIAOhOQMAIAVBGGogB0EYaisDACADoTkDACABQSBqIQEgAEEgaiEAIAhBfGoiCA0ACwsLlQQBB38CQAJAIANBfHEiBA0AQQAhBQwBCwJAAkAgBEF/aiIGQQNHDQBBACEFDAELIAZBAnZBAWpB/v///wdxIgdBAnQhBSACIQQgASEIIAAhCQNAIAQgCf0AAgAgCP0AAgD95QH9CwIAIARBEGogCUEQav0AAgAgCEEQav0AAgD95QH9CwIAIARBIGohBCAIQSBqIQggCUEgaiEJIAdBfmoiBw0ACwsgBkEEcQ0AIAIgBUECdCIEaiAAIARq/QACACABIARq/QACAP3lAf0LAgAgBUEEaiEFCwJAIAMgBU0NAAJAIAMgBWsiBkEISQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgASAFQQJ0IglqIQQgACAJaiEIIAIgCWohCSAFIAZBfHEiCmohBSAKIQcDQCAJIAj9AAIAIAT9AAIA/eUB/QsCACAEQRBqIQQgCEEQaiEIIAlBEGohCSAHQXxqIgcNAAsgBiAKRg0BCyAFQQFqIQQCQCADIAVrQQFxRQ0AIAIgBUECdCIIaiAAIAhqKgIAIAEgCGoqAgCTOAIAIAQhBQsgAyAERg0AIAMgBWshByACIAVBAnQiCWohBCAAIAlqIQggASAJaiEJA0AgBCAIKgIAIAkqAgCTOAIAIARBBGogCEEEaioCACAJQQRqKgIAkzgCACAEQQhqIQQgCEEIaiEIIAlBCGohCSAHQX5qIgcNAAsLC+4EAgF7Bn8gA/0TIQQCQAJAIAJBfHEiBQ0AQQAhBgwBCyAFQX9qQQJ2QQFqIgdBA3EhCAJAAkAgBUENTw0AQQAhBgwBCyAHQfz///8HcSIJQQJ0IQZBACEFA0AgASAFaiIHIAAgBWoiCv0AAgAgBP3lAf0LAgAgB0EQaiAKQRBq/QACACAE/eUB/QsCACAHQSBqIApBIGr9AAIAIAT95QH9CwIAIAdBMGogCkEwav0AAgAgBP3lAf0LAgAgBUHAAGohBSAJQXxqIgkNAAsLIAhFDQAgBiAIQQJ0aiEKIAAgBkECdCIHaiEFIAEgB2ohBwNAIAcgBf0AAgAgBP3lAf0LAgAgBUEQaiEFIAdBEGohByAIQX9qIggNAAsgCiEGCwJAIAIgBk0NAAJAIAIgBmsiCEEESQ0AIAEgAGtBEEkNACAAIAZBAnQiB2ohBSABIAdqIQcgBiAIQXxxIglqIQYgCSEKA0AgByAF/QACACAE/eUB/QsCACAFQRBqIQUgB0EQaiEHIApBfGoiCg0ACyAIIAlGDQELIAYhCAJAIAIgBmtBA3EiCkUNACAGIApqIQggASAGQQJ0IgdqIQUgACAHaiEHA0AgBSAHKgIAIAOTOAIAIAVBBGohBSAHQQRqIQcgCkF/aiIKDQALCyAGIAJrQXxLDQAgCEECdCEKIAIgCGshCANAIAEgCmoiBSAAIApqIgcqAgAgA5M4AgAgBUEEaiAHQQRqKgIAIAOTOAIAIAVBCGogB0EIaioCACADkzgCACAFQQxqIAdBDGoqAgAgA5M4AgAgAUEQaiEBIABBEGohACAIQXxqIggNAAsLC5YDAQd/IANBAXQhBEEAIQUCQCADRQ0AIAAhAyABIQYgAiEHA0AgByAD/QADACAG/QADAP3xAf0LAwAgA0EQaiEDIAZBEGohBiAHQRBqIQcgBUECaiIFIARJDQALCwJAIAQgBU0NAAJAIAQgBWsiCEEGSQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgASAFQQN0IgdqIQMgACAHaiEGIAIgB2ohByAFIAhBfnEiCWohBSAJIQoDQCAHIAb9AAMAIAP9AAMA/fEB/QsDACADQRBqIQMgBkEQaiEGIAdBEGohByAKQX5qIgoNAAsgCCAJRg0BCyAFQQFqIQMCQCAFQQFxRQ0AIAIgBUEDdCIGaiAAIAZqKwMAIAEgBmorAwChOQMAIAMhBQsgBCADRg0AIAUgBGshBCACIAVBA3QiB2ohAyAAIAdqIQYgASAHaiEHA0AgAyAGKwMAIAcrAwChOQMAIANBCGogBkEIaisDACAHQQhqKwMAoTkDACADQRBqIQMgBkEQaiEGIAdBEGohByAEQQJqIgQNAAsLC8ABAQV/AkAgAkUNACACQQFxIQRBACEFAkAgAkEBRg0AIAJBfnEiBkEBdCEFQQAhAgNAIAEgAmoiByAAIAJqIggrAwAgA6E5AwAgB0EIaiAIQQhqKwMAOQMAIAdBEGogCEEQaisDACADoTkDACAHQRhqIAhBGGorAwA5AwAgAkEgaiECIAZBfmoiBg0ACwsgBEUNACABIAVBA3QiAmogACACaisDACADoTkDACABIAJBCHIiAmogACACaisDADkDAAsLlwQBB38CQAJAIANBAXQiBEF8cSIDDQBBACEFDAELAkACQCADQX9qIgZBA0cNAEEAIQUMAQsgBkECdkEBakH+////B3EiB0ECdCEFIAIhAyABIQggACEJA0AgAyAJ/QACACAI/QACAP3lAf0LAgAgA0EQaiAJQRBq/QACACAIQRBq/QACAP3lAf0LAgAgA0EgaiEDIAhBIGohCCAJQSBqIQkgB0F+aiIHDQALCyAGQQRxDQAgAiAFQQJ0IgNqIAAgA2r9AAIAIAEgA2r9AAIA/eUB/QsCACAFQQRqIQULAkAgBCAFTQ0AAkAgBCAFayIGQQhJDQAgAiAAa0EQSQ0AIAIgAWtBEEkNACABIAVBAnQiCWohAyAAIAlqIQggAiAJaiEJIAUgBkF8cSIKaiEFIAohBwNAIAkgCP0AAgAgA/0AAgD95QH9CwIAIANBEGohAyAIQRBqIQggCUEQaiEJIAdBfGoiBw0ACyAGIApGDQELIAVBAWohAwJAIAVBAXFFDQAgAiAFQQJ0IghqIAAgCGoqAgAgASAIaioCAJM4AgAgAyEFCyAEIANGDQAgBSAEayEHIAIgBUECdCIJaiEDIAAgCWohCCABIAlqIQkDQCADIAgqAgAgCSoCAJM4AgAgA0EEaiAIQQRqKgIAIAlBBGoqAgCTOAIAIANBCGohAyAIQQhqIQggCUEIaiEJIAdBAmoiBw0ACwsLwAEBBX8CQCACRQ0AIAJBAXEhBEEAIQUCQCACQQFGDQAgAkF+cSIGQQF0IQVBACECA0AgASACaiIHIAAgAmoiCCoCACADkzgCACAHQQRqIAhBBGoqAgA4AgAgB0EIaiAIQQhqKgIAIAOTOAIAIAdBDGogCEEMaioCADgCACACQRBqIQIgBkF+aiIGDQALCyAERQ0AIAEgBUECdCICaiAAIAJqKgIAIAOTOAIAIAEgAkEEciICaiAAIAJqKgIAOAIACwuRBAEHfwJAAkAgA0F+cSIEDQBBACEFDAELAkACQCAEQX9qIgZBAUcNAEEAIQUMAQsgBkEBdkEBakF+cSIHQQF0IQUgAiEEIAEhCCAAIQkDQCAEIAn9AAMAIAj9AAMA/dEB/QsDACAEQRBqIAlBEGr9AAMAIAhBEGr9AAMA/dEB/QsDACAEQSBqIQQgCEEgaiEIIAlBIGohCSAHQX5qIgcNAAsLIAZBAnENACACIAVBA3QiBGogACAEav0AAwAgASAEav0AAwD90QH9CwMAIAVBAmohBQsCQCADIAVNDQACQCADIAVrIgZBCEkNACACIABrQRBJDQAgAiABa0EQSQ0AIAEgBUEDdCIJaiEEIAAgCWohCCACIAlqIQkgBSAGQX5xIgpqIQUgCiEHA0AgCSAI/QADACAE/QADAP3RAf0LAwAgBEEQaiEEIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALIAYgCkYNAQsgBUEBaiEEAkAgAyAFa0EBcUUNACACIAVBA3QiCGogACAIaikDACABIAhqKQMAfTcDACAEIQULIAMgBEYNACADIAVrIQcgAiAFQQN0IglqIQQgACAJaiEIIAEgCWohCQNAIAQgCCkDACAJKQMAfTcDACAEQQhqIAhBCGopAwAgCUEIaikDAH03AwAgBEEQaiEEIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALCwvqBAIBewZ/IAP9EiEEAkACQCACQX5xIgUNAEEAIQYMAQsgBUF/akEBdkEBaiIHQQNxIQgCQAJAIAVBB08NAEEAIQYMAQsgB0F8cSIJQQF0IQZBACEFA0AgASAFaiIHIAAgBWoiCv0AAwAgBP3RAf0LAwAgB0EQaiAKQRBq/QADACAE/dEB/QsDACAHQSBqIApBIGr9AAMAIAT90QH9CwMAIAdBMGogCkEwav0AAwAgBP3RAf0LAwAgBUHAAGohBSAJQXxqIgkNAAsLIAhFDQAgBiAIQQF0aiEKIAAgBkEDdCIHaiEFIAEgB2ohBwNAIAcgBf0AAwAgBP3RAf0LAwAgBUEQaiEFIAdBEGohByAIQX9qIggNAAsgCiEGCwJAIAIgBk0NAAJAIAIgBmsiCEEESQ0AIAEgAGtBEEkNACAAIAZBA3QiB2ohBSABIAdqIQcgBiAIQX5xIglqIQYgCSEKA0AgByAF/QADACAE/dEB/QsDACAFQRBqIQUgB0EQaiEHIApBfmoiCg0ACyAIIAlGDQELIAYhCAJAIAIgBmtBA3EiCkUNACAGIApqIQggASAGQQN0IgdqIQUgACAHaiEHA0AgBSAHKQMAIAN9NwMAIAVBCGohBSAHQQhqIQcgCkF/aiIKDQALCyAGIAJrQXxLDQAgCEEDdCEKIAIgCGshCANAIAEgCmoiBSAAIApqIgcpAwAgA303AwAgBUEIaiAHQQhqKQMAIAN9NwMAIAVBEGogB0EQaikDACADfTcDACAFQRhqIAdBGGopAwAgA303AwAgAUEgaiEBIABBIGohACAIQXxqIggNAAsLC5UEAQd/AkACQCADQXxxIgQNAEEAIQUMAQsCQAJAIARBf2oiBkEDRw0AQQAhBQwBCyAGQQJ2QQFqQf7///8HcSIHQQJ0IQUgAiEEIAEhCCAAIQkDQCAEIAn9AAIAIAj9AAIA/bEB/QsCACAEQRBqIAlBEGr9AAIAIAhBEGr9AAIA/bEB/QsCACAEQSBqIQQgCEEgaiEIIAlBIGohCSAHQX5qIgcNAAsLIAZBBHENACACIAVBAnQiBGogACAEav0AAgAgASAEav0AAgD9sQH9CwIAIAVBBGohBQsCQCADIAVNDQACQCADIAVrIgZBCEkNACACIABrQRBJDQAgAiABa0EQSQ0AIAEgBUECdCIJaiEEIAAgCWohCCACIAlqIQkgBSAGQXxxIgpqIQUgCiEHA0AgCSAI/QACACAE/QACAP2xAf0LAgAgBEEQaiEEIAhBEGohCCAJQRBqIQkgB0F8aiIHDQALIAYgCkYNAQsgBUEBaiEEAkAgAyAFa0EBcUUNACACIAVBAnQiCGogACAIaigCACABIAhqKAIAazYCACAEIQULIAMgBEYNACADIAVrIQcgAiAFQQJ0IglqIQQgACAJaiEIIAEgCWohCQNAIAQgCCgCACAJKAIAazYCACAEQQRqIAhBBGooAgAgCUEEaigCAGs2AgAgBEEIaiEEIAhBCGohCCAJQQhqIQkgB0F+aiIHDQALCwvuBAIBewZ/IAP9ESEEAkACQCACQXxxIgUNAEEAIQYMAQsgBUF/akECdkEBaiIHQQNxIQgCQAJAIAVBDU8NAEEAIQYMAQsgB0H8////B3EiCUECdCEGQQAhBQNAIAEgBWoiByAAIAVqIgr9AAIAIAT9sQH9CwIAIAdBEGogCkEQav0AAgAgBP2xAf0LAgAgB0EgaiAKQSBq/QACACAE/bEB/QsCACAHQTBqIApBMGr9AAIAIAT9sQH9CwIAIAVBwABqIQUgCUF8aiIJDQALCyAIRQ0AIAYgCEECdGohCiAAIAZBAnQiB2ohBSABIAdqIQcDQCAHIAX9AAIAIAT9sQH9CwIAIAVBEGohBSAHQRBqIQcgCEF/aiIIDQALIAohBgsCQCACIAZNDQACQCACIAZrIghBBEkNACABIABrQRBJDQAgACAGQQJ0IgdqIQUgASAHaiEHIAYgCEF8cSIJaiEGIAkhCgNAIAcgBf0AAgAgBP2xAf0LAgAgBUEQaiEFIAdBEGohByAKQXxqIgoNAAsgCCAJRg0BCyAGIQgCQCACIAZrQQNxIgpFDQAgBiAKaiEIIAEgBkECdCIHaiEFIAAgB2ohBwNAIAUgBygCACADazYCACAFQQRqIQUgB0EEaiEHIApBf2oiCg0ACwsgBiACa0F8Sw0AIAhBAnQhCiACIAhrIQgDQCABIApqIgUgACAKaiIHKAIAIANrNgIAIAVBBGogB0EEaigCACADazYCACAFQQhqIAdBCGooAgAgA2s2AgAgBUEMaiAHQQxqKAIAIANrNgIAIAFBEGohASAAQRBqIQAgCEF8aiIIDQALCwuVBAEHfwJAAkAgA0F4cSIEDQBBACEFDAELAkACQCAEQX9qIgZBB0cNAEEAIQUMAQsgBkEDdkEBakH+////A3EiB0EDdCEFIAIhBCABIQggACEJA0AgBCAJ/QABACAI/QABAP2RAf0LAQAgBEEQaiAJQRBq/QABACAIQRBq/QABAP2RAf0LAQAgBEEgaiEEIAhBIGohCCAJQSBqIQkgB0F+aiIHDQALCyAGQQhxDQAgAiAFQQF0IgRqIAAgBGr9AAEAIAEgBGr9AAEA/ZEB/QsBACAFQQhqIQULAkAgAyAFTQ0AAkAgAyAFayIGQQhJDQAgAiAAa0EQSQ0AIAIgAWtBEEkNACABIAVBAXQiCWohBCAAIAlqIQggAiAJaiEJIAUgBkF4cSIKaiEFIAohBwNAIAkgCP0AAQAgBP0AAQD9kQH9CwEAIARBEGohBCAIQRBqIQggCUEQaiEJIAdBeGoiBw0ACyAGIApGDQELIAVBAWohBAJAIAMgBWtBAXFFDQAgAiAFQQF0IghqIAAgCGovAQAgASAIai8BAGs7AQAgBCEFCyADIARGDQAgAyAFayEHIAIgBUEBdCIJaiEEIAAgCWohCCABIAlqIQkDQCAEIAgvAQAgCS8BAGs7AQAgBEECaiAIQQJqLwEAIAlBAmovAQBrOwEAIARBBGohBCAIQQRqIQggCUEEaiEJIAdBfmoiBw0ACwsL7gQCAXsGfyAD/RAhBAJAAkAgAkF4cSIFDQBBACEGDAELIAVBf2pBA3ZBAWoiB0EDcSEIAkACQCAFQRlPDQBBACEGDAELIAdB/P///wNxIglBA3QhBkEAIQUDQCABIAVqIgcgACAFaiIK/QABACAE/ZEB/QsBACAHQRBqIApBEGr9AAEAIAT9kQH9CwEAIAdBIGogCkEgav0AAQAgBP2RAf0LAQAgB0EwaiAKQTBq/QABACAE/ZEB/QsBACAFQcAAaiEFIAlBfGoiCQ0ACwsgCEUNACAGIAhBA3RqIQogACAGQQF0IgdqIQUgASAHaiEHA0AgByAF/QABACAE/ZEB/QsBACAFQRBqIQUgB0EQaiEHIAhBf2oiCA0ACyAKIQYLAkAgAiAGTQ0AAkAgAiAGayIIQQhJDQAgASAAa0EQSQ0AIAAgBkEBdCIHaiEFIAEgB2ohByAGIAhBeHEiCWohBiAJIQoDQCAHIAX9AAEAIAT9kQH9CwEAIAVBEGohBSAHQRBqIQcgCkF4aiIKDQALIAggCUYNAQsgBiEIAkAgAiAGa0EDcSIKRQ0AIAYgCmohCCABIAZBAXQiB2ohBSAAIAdqIQcDQCAFIAcvAQAgA2s7AQAgBUECaiEFIAdBAmohByAKQX9qIgoNAAsLIAYgAmtBfEsNACAIQQF0IQogAiAIayEIA0AgASAKaiIFIAAgCmoiBy8BACADazsBACAFQQJqIAdBAmovAQAgA2s7AQAgBUEEaiAHQQRqLwEAIANrOwEAIAVBBmogB0EGai8BACADazsBACABQQhqIQEgAEEIaiEAIAhBfGoiCA0ACwsL5wMBB38CQAJAIANBcHEiBA0AQQAhBAwBCwJAAkAgBEF/aiIFQQ9HDQBBACEEDAELIAVBBHZBAWpB/v///wFxIQZBACEEA0AgAiAEaiIHIAAgBGoiCP0AAAAgASAEaiIJ/QAAAP1x/QsAACAHQRBqIAhBEGr9AAAAIAlBEGr9AAAA/XH9CwAAIARBIGohBCAGQX5qIgYNAAsLIAVBEHENACACIARqIAAgBGr9AAAAIAEgBGr9AAAA/XH9CwAAIARBEGohBAsCQCADIARNDQACQCADIARrIgVBEEkNACACIABrQRBJDQAgAiABa0EQSQ0AIAEgBGohBiAAIARqIQcgAiAEaiEIIAQgBUFwcSIKaiEEIAohCQNAIAggB/0AAAAgBv0AAAD9cf0LAAAgBkEQaiEGIAdBEGohByAIQRBqIQggCUFwaiIJDQALIAUgCkYNAQsgBEEBaiEGAkAgAyAEa0EBcUUNACACIARqIAAgBGotAAAgASAEai0AAGs6AAAgBiEECyADIAZGDQADQCACIARqIgYgACAEaiIHLQAAIAEgBGoiCC0AAGs6AAAgBkEBaiAHQQFqLQAAIAhBAWotAABrOgAAIAJBAmohAiAAQQJqIQAgAUECaiEBIAQgA0F+aiIDRw0ACwsLmgQCAXsGfyAD/Q8hBAJAAkAgAkFwcSIFDQBBACEFDAELIAVBf2pBBHZBAWoiBkEDcSEHAkACQCAFQTFPDQBBACEFDAELIAZB/P///wFxIQhBACEFA0AgASAFaiIGIAAgBWoiCf0AAAAgBP1x/QsAACAGQRBqIAlBEGr9AAAAIAT9cf0LAAAgBkEgaiAJQSBq/QAAACAE/XH9CwAAIAZBMGogCUEwav0AAAAgBP1x/QsAACAFQcAAaiEFIAhBfGoiCA0ACwsgB0UNAANAIAEgBWogACAFav0AAAAgBP1x/QsAACAFQRBqIQUgB0F/aiIHDQALCwJAIAIgBU0NAAJAIAIgBWsiCEEQSQ0AIAEgAGtBEEkNACAAIAVqIQYgASAFaiEJIAUgCEFwcSIKaiEFIAohBwNAIAkgBv0AAAAgBP1x/QsAACAGQRBqIQYgCUEQaiEJIAdBcGoiBw0ACyAIIApGDQELIAUhBgJAIAIgBWtBA3EiCUUNACAFIQYDQCABIAZqIAAgBmotAAAgA2s6AAAgBkEBaiEGIAlBf2oiCQ0ACwsgBSACa0F8Sw0AA0AgASAGaiIFIAAgBmoiCS0AACADazoAACAFQQFqIAlBAWotAAAgA2s6AAAgBUECaiAJQQJqLQAAIANrOgAAIAVBA2ogCUEDai0AACADazoAACABQQRqIQEgAEEEaiEAIAYgAkF8aiICRw0ACwsL",ce=null;function vA(){if(ce)return ce;let A=atob(q2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ce=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ce.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ce}function Em(A,r,I,e){vA().exports.sub_f64(A,r,I,e)}function um(A,r,I,e){vA().exports.sub_scalar_f64(A,r,I,e)}function cm(A,r,I,e){vA().exports.sub_f32(A,r,I,e)}function fm(A,r,I,e){vA().exports.sub_scalar_f32(A,r,I,e)}function Dm(A,r,I,e){vA().exports.sub_c128(A,r,I,e)}function mm(A,r,I,e){vA().exports.sub_scalar_c128(A,r,I,e)}function ym(A,r,I,e){vA().exports.sub_c64(A,r,I,e)}function lm(A,r,I,e){vA().exports.sub_scalar_c64(A,r,I,e)}function Ea(A,r,I,e){vA().exports.sub_i64(A,r,I,e)}function ua(A,r,I,e){vA().exports.sub_scalar_i64(A,r,I,BigInt(Math.round(e)))}function ca(A,r,I,e){vA().exports.sub_i32(A,r,I,e)}function fa(A,r,I,e){vA().exports.sub_scalar_i32(A,r,I,e)}function Da(A,r,I,e){vA().exports.sub_i16(A,r,I,e)}function ma(A,r,I,e){vA().exports.sub_scalar_i16(A,r,I,e)}function ya(A,r,I,e){vA().exports.sub_i8(A,r,I,e)}function la(A,r,I,e){vA().exports.sub_scalar_i8(A,r,I,e)}var hm=64,M2={float64:Em,float32:cm,int64:Ea,uint64:Ea,int32:ca,uint32:ca,int16:Da,uint16:Da,int8:ya,uint8:ya,complex128:Dm,complex64:ym},x2={float64:um,float32:fm,int64:ua,uint64:ua,int32:fa,uint32:fa,int16:ma,uint16:ma,int8:la,uint8:la,complex128:mm,complex64:lm},dm={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},bm={complex128:2,complex64:2};function pm(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<hm*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=M2[e],o=dm[e];if(!t||!o)return null;let n=bm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g,s=i*g;J(Q+a+s),U();let B=A.offset*n,C=r.offset*n,E=A.data.subarray(B,B+i),u=r.data.subarray(C,C+i),D=q(E),m=q(u),c=_(s);t(D,m,c,I);let f=v(c,i,o);return d.fromData(f,Array.from(A.shape),e)}function wm(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<hm*Y.thresholdMultiplier)return null;let e=A.dtype,t=x2[e],o=dm[e];if(!t||!o)return null;let n=bm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g;J(Q+a),U();let s=A.offset*n,B=A.data.subarray(s,s+i),C=q(B),E=_(a);t(C,E,I,r);let u=v(E,i,o);return d.fromData(u,Array.from(A.shape),e)}var J2="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",fe=null;function XA(){if(fe)return fe;let A=atob(J2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);fe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=fe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),fe}function Nm(A,r,I,e){XA().exports.mul_f64(A,r,I,e)}function Fm(A,r,I,e){XA().exports.mul_scalar_f64(A,r,I,e)}function Sm(A,r,I,e){XA().exports.mul_f32(A,r,I,e)}function Gm(A,r,I,e){XA().exports.mul_scalar_f32(A,r,I,e)}function Rm(A,r,I,e){XA().exports.mul_c128(A,r,I,e)}function km(A,r,I,e){XA().exports.mul_scalar_c128(A,r,I,e)}function qm(A,r,I,e){XA().exports.mul_c64(A,r,I,e)}function Mm(A,r,I,e){XA().exports.mul_scalar_c64(A,r,I,e)}function ha(A,r,I,e){XA().exports.mul_i64(A,r,I,e)}function da(A,r,I,e){XA().exports.mul_scalar_i64(A,r,I,BigInt(Math.round(e)))}function ba(A,r,I,e){XA().exports.mul_i32(A,r,I,e)}function pa(A,r,I,e){XA().exports.mul_scalar_i32(A,r,I,e)}function wa(A,r,I,e){XA().exports.mul_i16(A,r,I,e)}function Na(A,r,I,e){XA().exports.mul_scalar_i16(A,r,I,e)}function Fa(A,r,I,e){XA().exports.mul_i8(A,r,I,e)}function Sa(A,r,I,e){XA().exports.mul_scalar_i8(A,r,I,e)}var xm=64,U2={float64:Nm,float32:Sm,int64:ha,uint64:ha,int32:ba,uint32:ba,int16:wa,uint16:wa,int8:Fa,uint8:Fa,complex128:Rm,complex64:qm},L2={float64:Fm,float32:Gm,int64:da,uint64:da,int32:pa,uint32:pa,int16:Na,uint16:Na,int8:Sa,uint8:Sa,complex128:km,complex64:Mm},Jm={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},Um={complex128:2,complex64:2};function Lm(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<xm*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=U2[e],o=Jm[e];if(!t||!o)return null;let n=Um[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g,s=i*g;J(Q+a+s),U();let B=A.offset*n,C=r.offset*n,E=A.data.subarray(B,B+i),u=r.data.subarray(C,C+i),D=q(E),m=q(u),c=_(s);t(D,m,c,I);let f=v(c,i,o);return d.fromData(f,Array.from(A.shape),e)}function Hm(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<xm*Y.thresholdMultiplier)return null;let e=A.dtype,t=L2[e],o=Jm[e];if(!t||!o)return null;let n=Um[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g;J(Q+a),U();let s=A.offset*n,B=A.data.subarray(s,s+i),C=q(B),E=_(a);t(C,E,I,r);let u=v(E,i,o);return d.fromData(u,Array.from(A.shape),e)}var H2="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",De=null;function bA(){if(De)return De;let A=atob(H2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);De=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=De.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),De}function _m(A,r,I,e){bA().exports.div_f64(A,r,I,e)}function Ym(A,r,I,e){bA().exports.div_f32(A,r,I,e)}function vm(A,r,I,e){bA().exports.div_i64_f64(A,r,I,e)}function Xm(A,r,I,e){bA().exports.div_u64_f64(A,r,I,e)}function Tm(A,r,I,e){bA().exports.div_i32_f64(A,r,I,e)}function Pm(A,r,I,e){bA().exports.div_u32_f64(A,r,I,e)}function Km(A,r,I,e){bA().exports.div_i16_f64(A,r,I,e)}function Vm(A,r,I,e){bA().exports.div_u16_f64(A,r,I,e)}function Wm(A,r,I,e){bA().exports.div_i8_f64(A,r,I,e)}function Om(A,r,I,e){bA().exports.div_u8_f64(A,r,I,e)}function Zm(A,r,I,e){bA().exports.div_c128(A,r,I,e)}function zm(A,r,I,e){bA().exports.div_c64(A,r,I,e)}function jm(A,r,I,e){bA().exports.div_scalar_f64(A,r,I,e)}function $m(A,r,I,e){bA().exports.div_scalar_f32(A,r,I,e)}function Ay(A,r,I,e){bA().exports.div_scalar_i64_f64(A,r,I,e)}function ry(A,r,I,e){bA().exports.div_scalar_u64_f64(A,r,I,e)}function Iy(A,r,I,e){bA().exports.div_scalar_i32_f64(A,r,I,e)}function ey(A,r,I,e){bA().exports.div_scalar_u32_f64(A,r,I,e)}function ty(A,r,I,e){bA().exports.div_scalar_i16_f64(A,r,I,e)}function oy(A,r,I,e){bA().exports.div_scalar_u16_f64(A,r,I,e)}function ny(A,r,I,e){bA().exports.div_scalar_i8_f64(A,r,I,e)}function iy(A,r,I,e){bA().exports.div_scalar_u8_f64(A,r,I,e)}var gy=64,_2={float64:_m,float32:Ym,complex128:Zm,complex64:zm},Y2={float64:jm,float32:$m},v2={int64:vm,uint64:Xm,int32:Tm,uint32:Pm,int16:Km,uint16:Vm,int8:Wm,uint8:Om},X2={int64:Ay,uint64:ry,int32:Iy,uint32:ey,int16:ty,uint16:oy,int8:ny,uint8:iy},rg={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 Ig(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<gy*Y.thresholdMultiplier||A.dtype!==r.dtype)return null;let e=A.dtype,t=_2[e];if(t){let B=rg[e],C=k(e)?2:1,E=B.BYTES_PER_ELEMENT,u=I*C;J(u*E*3),U();let D=q(A.data.subarray(A.offset*C,(A.offset+I)*C)),m=q(r.data.subarray(r.offset*C,(r.offset+I)*C)),c=_(u*E);t(D,m,c,I);let f=v(c,u,B);return d.fromData(f,Array.from(A.shape),e)}let o=v2[e],n=rg[e];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT;J(I*g*2+I*8),U();let i=q(A.data.subarray(A.offset,A.offset+I)),Q=q(r.data.subarray(r.offset,r.offset+I)),a=_(I*8);o(i,Q,a,I);let s=v(a,I,Float64Array);return d.fromData(s,Array.from(A.shape),"float64")}function Qy(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<gy*Y.thresholdMultiplier)return null;let e=A.dtype,t=Y2[e];if(t){let s=rg[e],B=s.BYTES_PER_ELEMENT;J(I*B*2),U();let C=q(A.data.subarray(A.offset,A.offset+I)),E=_(I*B);t(C,E,I,r);let u=v(E,I,s);return d.fromData(u,Array.from(A.shape),e)}let o=X2[e],n=rg[e];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT;J(I*g+I*8),U();let i=q(A.data.subarray(A.offset,A.offset+I)),Q=_(I*8);o(i,Q,I,r);let a=v(Q,I,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var T2="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",me=null;function Yr(){if(me)return me;let A=atob(T2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);me=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=me.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),me}function ay(A,r,I){Yr().exports.neg_f64(A,r,I)}function sy(A,r,I){Yr().exports.neg_f32(A,r,I)}function By(A,r,I){Yr().exports.neg_c128(A,r,I)}function Cy(A,r,I){Yr().exports.neg_c64(A,r,I)}function Ga(A,r,I){Yr().exports.neg_i64(A,r,I)}function Ra(A,r,I){Yr().exports.neg_i32(A,r,I)}function ka(A,r,I){Yr().exports.neg_i16(A,r,I)}function qa(A,r,I){Yr().exports.neg_i8(A,r,I)}var P2=64,K2={float64:ay,float32:sy,int64:Ga,uint64:Ga,int32:Ra,uint32:Ra,int16:ka,uint16:ka,int8:qa,uint8:qa,complex128:By,complex64:Cy},V2={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},W2={complex128:2,complex64:2};function Ey(A){if(!A.isCContiguous)return null;let r=A.size;if(r<P2*Y.thresholdMultiplier)return null;let I=A.dtype,e=K2[I],t=V2[I];if(!e||!t)return null;let o=W2[I]??1,n=t.BYTES_PER_ELEMENT,g=r*o,i=g*n,Q=g*n;J(i+Q),U();let a=A.offset*o,s=A.data.subarray(a,a+g),B=q(s),C=_(Q);e(B,C,r);let E=v(C,g,t);return d.fromData(E,Array.from(A.shape),I)}var O2="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",ye=null;function SI(){if(ye)return ye;let A=atob(O2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ye=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ye.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ye}function uy(A,r,I){SI().exports.abs_f64(A,r,I)}function cy(A,r,I){SI().exports.abs_f32(A,r,I)}function fy(A,r,I){SI().exports.abs_i64(A,r,I)}function Dy(A,r,I){SI().exports.abs_i32(A,r,I)}function my(A,r,I){SI().exports.abs_i16(A,r,I)}function yy(A,r,I){SI().exports.abs_i8(A,r,I)}var Z2=64,z2={float64:uy,float32:cy,int64:fy,int32:Dy,int16:my,int8:yy},ly={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function hy(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Z2*Y.thresholdMultiplier)return null;let I=A.dtype;if(I==="uint8"||I==="uint16"||I==="uint32"||I==="uint64"){let C=ly[I],E=A.offset,u=A.data.subarray(E,E+r),D=new C(u);return d.fromData(D,Array.from(A.shape),I)}let e=z2[I],t=ly[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),s=_(g);e(a,s,r);let B=v(s,r,t);return d.fromData(B,Array.from(A.shape),I)}var j2="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",le=null;function GI(){if(le)return le;let A=atob(j2),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);le=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=le.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),le}function dy(A,r,I){GI().exports.sign_f64(A,r,I)}function by(A,r,I){GI().exports.sign_f32(A,r,I)}function py(A,r,I){GI().exports.sign_i64(A,r,I)}function wy(A,r,I){GI().exports.sign_i32(A,r,I)}function Ny(A,r,I){GI().exports.sign_i16(A,r,I)}function Fy(A,r,I){GI().exports.sign_i8(A,r,I)}var $2=64,AL={float64:dy,float32:by,int64:py,int32:wy,int16:Ny,int8:Fy},rL={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Sy(A){if(!A.isCContiguous)return null;let r=A.size;if(r<$2*Y.thresholdMultiplier)return null;let I=A.dtype,e=AL[I],t=rL[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),s=_(g);e(a,s,r);let B=v(s,r,t);return d.fromData(B,Array.from(A.shape),I)}var IL="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",he=null;function NA(){if(he)return he;let A=atob(IL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);he=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=he.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),he}function Gy(A,r,I,e){NA().exports.min_f64(A,r,I,e)}function Ry(A,r,I,e){NA().exports.min_scalar_f64(A,r,I,e)}function ky(A,r,I,e){NA().exports.min_f32(A,r,I,e)}function qy(A,r,I,e){NA().exports.min_scalar_f32(A,r,I,e)}function My(A,r,I,e){NA().exports.min_i64(A,r,I,e)}function xy(A,r,I,e){NA().exports.min_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Jy(A,r,I,e){NA().exports.min_u64(A,r,I,e)}function Uy(A,r,I,e){NA().exports.min_scalar_u64(A,r,I,BigInt(Math.round(e)))}function Ly(A,r,I,e){NA().exports.min_i32(A,r,I,e)}function Hy(A,r,I,e){NA().exports.min_scalar_i32(A,r,I,e)}function _y(A,r,I,e){NA().exports.min_u32(A,r,I,e)}function Yy(A,r,I,e){NA().exports.min_scalar_u32(A,r,I,e)}function vy(A,r,I,e){NA().exports.min_i16(A,r,I,e)}function Xy(A,r,I,e){NA().exports.min_scalar_i16(A,r,I,e)}function Ty(A,r,I,e){NA().exports.min_u16(A,r,I,e)}function Py(A,r,I,e){NA().exports.min_scalar_u16(A,r,I,e)}function Ky(A,r,I,e){NA().exports.min_i8(A,r,I,e)}function Vy(A,r,I,e){NA().exports.min_scalar_i8(A,r,I,e)}function Wy(A,r,I,e){NA().exports.min_u8(A,r,I,e)}function Oy(A,r,I,e){NA().exports.min_scalar_u8(A,r,I,e)}var Zy=64,eL={float64:Gy,float32:ky,int64:My,uint64:Jy,int32:Ly,uint32:_y,int16:vy,uint16:Ty,int8:Ky,uint8:Wy},tL={float64:Ry,float32:qy,int64:xy,uint64:Uy,int32:Hy,uint32:Yy,int16:Xy,uint16:Py,int8:Vy,uint8:Oy},zy={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Ma(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Zy*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=eL[e],o=zy[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*3),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=q(r.data.subarray(r.offset,r.offset+I)),Q=_(I*n);t(g,i,Q,I);let a=v(Q,I,o);return d.fromData(a,Array.from(A.shape),e)}function de(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Zy*Y.thresholdMultiplier)return null;let e=A.dtype,t=tL[e],o=zy[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=_(I*n);t(g,i,I,r);let Q=v(i,I,o);return d.fromData(Q,Array.from(A.shape),e)}var oL="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",be=null;function FA(){if(be)return be;let A=atob(oL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);be=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=be.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),be}function jy(A,r,I,e){FA().exports.max_f64(A,r,I,e)}function $y(A,r,I,e){FA().exports.max_scalar_f64(A,r,I,e)}function Al(A,r,I,e){FA().exports.max_f32(A,r,I,e)}function rl(A,r,I,e){FA().exports.max_scalar_f32(A,r,I,e)}function Il(A,r,I,e){FA().exports.max_i64(A,r,I,e)}function el(A,r,I,e){FA().exports.max_scalar_i64(A,r,I,BigInt(Math.round(e)))}function tl(A,r,I,e){FA().exports.max_u64(A,r,I,e)}function ol(A,r,I,e){FA().exports.max_scalar_u64(A,r,I,BigInt(Math.round(e)))}function nl(A,r,I,e){FA().exports.max_i32(A,r,I,e)}function il(A,r,I,e){FA().exports.max_scalar_i32(A,r,I,e)}function gl(A,r,I,e){FA().exports.max_u32(A,r,I,e)}function Ql(A,r,I,e){FA().exports.max_scalar_u32(A,r,I,e)}function al(A,r,I,e){FA().exports.max_i16(A,r,I,e)}function sl(A,r,I,e){FA().exports.max_scalar_i16(A,r,I,e)}function Bl(A,r,I,e){FA().exports.max_u16(A,r,I,e)}function Cl(A,r,I,e){FA().exports.max_scalar_u16(A,r,I,e)}function El(A,r,I,e){FA().exports.max_i8(A,r,I,e)}function ul(A,r,I,e){FA().exports.max_scalar_i8(A,r,I,e)}function cl(A,r,I,e){FA().exports.max_u8(A,r,I,e)}function fl(A,r,I,e){FA().exports.max_scalar_u8(A,r,I,e)}var Dl=64,nL={float64:jy,float32:Al,int64:Il,uint64:tl,int32:nl,uint32:gl,int16:al,uint16:Bl,int8:El,uint8:cl},iL={float64:$y,float32:rl,int64:el,uint64:ol,int32:il,uint32:Ql,int16:sl,uint16:Cl,int8:ul,uint8:fl},ml={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function xa(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Dl*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=nL[e],o=ml[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*3),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=q(r.data.subarray(r.offset,r.offset+I)),Q=_(I*n);t(g,i,Q,I);let a=v(Q,I,o);return d.fromData(a,Array.from(A.shape),e)}function pe(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Dl*Y.thresholdMultiplier)return null;let e=A.dtype,t=iL[e],o=ml[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=_(I*n);t(g,i,I,r);let Q=v(i,I,o);return d.fromData(Q,Array.from(A.shape),e)}var gL="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",we=null;function br(){if(we)return we;let A=atob(gL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);we=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=we.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),we}function yl(A,r,I,e,t){br().exports.clip_f64(A,r,I,e,t)}function ll(A,r,I,e,t){br().exports.clip_f32(A,r,I,e,t)}function hl(A,r,I,e,t){br().exports.clip_i64(A,r,I,BigInt(Math.round(e)),BigInt(Math.round(t)))}function dl(A,r,I,e,t){br().exports.clip_u64(A,r,I,BigInt(Math.round(e)),BigInt(Math.round(t)))}function bl(A,r,I,e,t){br().exports.clip_i32(A,r,I,e,t)}function pl(A,r,I,e,t){br().exports.clip_u32(A,r,I,e,t)}function wl(A,r,I,e,t){br().exports.clip_i16(A,r,I,e,t)}function Nl(A,r,I,e,t){br().exports.clip_u16(A,r,I,e,t)}function Fl(A,r,I,e,t){br().exports.clip_i8(A,r,I,e,t)}function Sl(A,r,I,e,t){br().exports.clip_u8(A,r,I,e,t)}var QL=64,aL={float64:yl,float32:ll,int64:hl,uint64:dl,int32:bl,uint32:pl,int16:wl,uint16:Nl,int8:Fl,uint8:Sl},sL={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Gl(A,r,I){if(!A.isCContiguous)return null;let e=A.size;if(e<QL*Y.thresholdMultiplier)return null;let t=A.dtype,o=aL[t],n=sL[t];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT;J(e*g*2),U();let i=q(A.data.subarray(A.offset,A.offset+e)),Q=_(e*g);o(i,Q,e,r,I);let a=v(Q,e,n);return d.fromData(a,Array.from(A.shape),t)}var BL="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",Ne=null;function vr(){if(Ne)return Ne;let A=atob(BL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ne=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ne.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ne}function Rl(A,r,I){vr().exports.square_f64(A,r,I)}function kl(A,r,I){vr().exports.square_f32(A,r,I)}function ql(A,r,I){vr().exports.square_c128(A,r,I)}function Ml(A,r,I){vr().exports.square_c64(A,r,I)}function Ja(A,r,I){vr().exports.square_i64(A,r,I)}function Ua(A,r,I){vr().exports.square_i32(A,r,I)}function La(A,r,I){vr().exports.square_i16(A,r,I)}function Ha(A,r,I){vr().exports.square_i8(A,r,I)}var CL=64,EL={float64:Rl,float32:kl,complex128:ql,complex64:Ml,int64:Ja,uint64:Ja,int32:Ua,uint32:Ua,int16:La,uint16:La,int8:Ha,uint8:Ha},uL={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 xl(A){if(!A.isCContiguous)return null;let r=A.size;if(r<CL*Y.thresholdMultiplier)return null;let I=A.dtype,e=EL[I],t=uL[I];if(!e||!t)return null;let o=k(I)?2:1,n=t.BYTES_PER_ELEMENT,g=r*o;J(g*n*2),U();let i=q(A.data.subarray(A.offset*o,(A.offset+r)*o)),Q=_(g*n);e(i,Q,r);let a=v(Q,g,t);return d.fromData(a,Array.from(A.shape),I)}var cL="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",Fe=null;function RI(){if(Fe)return Fe;let A=atob(cL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Fe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Fe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Fe}function Jl(A,r,I){RI().exports.reciprocal_f64(A,r,I)}function Ul(A,r,I){RI().exports.reciprocal_f32(A,r,I)}function _a(A,r,I){RI().exports.reciprocal_i64_f64(A,r,I)}function Ya(A,r,I){RI().exports.reciprocal_i32_f64(A,r,I)}function va(A,r,I){RI().exports.reciprocal_i16_f64(A,r,I)}function Xa(A,r,I){RI().exports.reciprocal_i8_f64(A,r,I)}var fL=64,DL={float64:Jl,float32:Ul},mL={int64:_a,uint64:_a,int32:Ya,uint32:Ya,int16:va,uint16:va,int8:Xa,uint8:Xa},Ll={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Hl(A){if(!A.isCContiguous)return null;let r=A.size;if(r<fL*Y.thresholdMultiplier)return null;let I=A.dtype,e=DL[I];if(e){let a=Ll[I],s=a.BYTES_PER_ELEMENT;J(r*s*2),U();let B=q(A.data.subarray(A.offset,A.offset+r)),C=_(r*s);e(B,C,r);let E=v(C,r,a);return d.fromData(E,Array.from(A.shape),I)}let t=mL[I],o=Ll[I];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(r*n+r*8),U();let g=q(A.data.subarray(A.offset,A.offset+r)),i=_(r*8);t(g,i,r);let Q=v(i,r,Float64Array);return d.fromData(Q,Array.from(A.shape),"float64")}var yL="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",Se=null;function eg(){if(Se)return Se;let A=atob(yL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Se=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Se.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Se}function _l(A,r,I,e){eg().exports.heaviside_scalar_f64(A,r,I,e)}function Yl(A,r,I,e){eg().exports.heaviside_scalar_f32(A,r,I,e)}function vl(A,r,I,e){eg().exports.heaviside_f64(A,r,I,e)}function Xl(A,r,I,e){eg().exports.heaviside_f32(A,r,I,e)}var Tl=64,lL={float64:_l,float32:Yl},hL={float64:vl,float32:Xl},Pl={float64:Float64Array,float32:Float32Array};function Kl(A,r,I){if(!A.isCContiguous)return null;let e=A.size;if(e<Tl*Y.thresholdMultiplier)return null;let t=lL[I],o=Pl[I];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(e*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+e)),i=_(e*n);t(g,i,e,r);let Q=v(i,e,o);return d.fromData(Q,Array.from(A.shape),I)}function Vl(A,r,I){if(!A.isCContiguous||!r.isCContiguous)return null;let e=A.size;if(e<Tl*Y.thresholdMultiplier)return null;let t=hL[I],o=Pl[I];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(e*n*3),U();let g=q(A.data.subarray(A.offset,A.offset+e)),i=q(r.data.subarray(r.offset,r.offset+e)),Q=_(e*n);t(g,i,Q,e);let a=v(Q,e,o);return d.fromData(a,Array.from(A.shape),I)}var dL="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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==",Ge=null;function Wl(){if(Ge)return Ge;let A=atob(dL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ge=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ge.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ge}function Ol(A,r,I,e){Wl().exports.ldexp_scalar_f64(A,r,I,e)}function Zl(A,r,I,e){Wl().exports.ldexp_scalar_f32(A,r,I,e)}var bL=64,pL={float64:Ol,float32:Zl},wL={float64:Float64Array,float32:Float32Array};function zl(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<bL*Y.thresholdMultiplier)return null;let e=A.dtype,t=pL[e],o=wL[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=_(I*n);t(g,i,I,r);let Q=v(i,I,o);return d.fromData(Q,Array.from(A.shape),e)}var NL="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAgEABgkBfwFBgIDAAAsHDQEJZnJleHBfZjY0AAAKqgIBpwIDAXwBfgJ/AkAgA0UNAANAAkACQAJAIAArAwAiBEQAAAAAAAAAAGENACAEvSIFQv///////////wCDQoCAgICAgID4/wBUDQELIAEgBDkDAEEAIQYMAQtBACEGAkACQCAFQjSIp0H/D3EiB0H/D0YNACAHDQEgBUL/////////B4NQDQAgBUKAgICAgICAgIB/gyAFIAVCDIZ5pyIGQQFqrYZC/////////weDQgAgBkE/cUEzSRuEQoCAgICAgIDwP4QhBUGCeCAGayEGCyABIAU3AwAMAQsgB0GCeGohBiABIAVC/////////4eAf4NCgICAgICAgPA/hDcDAAsgAiAGNgIAIABBCGohACABQQhqIQEgAkEEaiECIANBf2oiAw0ACwsL",Re=null;function FL(){if(Re)return Re;let A=atob(NL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Re=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Re.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Re}function jl(A,r,I,e){FL().exports.frexp_f64(A,r,I,e)}var SL=64;function $l(A){if(!A.isCContiguous)return null;let r=A.size;if(r<SL*Y.thresholdMultiplier)return null;let I=A.dtype;if(I!=="float64"&&I!=="float32")return null;let e=8,t=4;J(r*e+r*e+r*t),U();let o;if(I==="float32"){let C=A.data.subarray(A.offset,A.offset+r),E=new Float64Array(r);for(let u=0;u<r;u++)E[u]=C[u];o=E}else o=A.data.subarray(A.offset,A.offset+r);let n=q(o),g=_(r*e),i=_(r*t);jl(n,g,i,r);let Q=v(g,r,Float64Array),a=v(i,r,Int32Array),s=d.fromData(Q,Array.from(A.shape),"float64"),B=d.fromData(a,Array.from(A.shape),"int32");return[s,B]}var GL="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAAYJAX8BQYCAwAALBxwCDmdjZF9zY2FsYXJfaTMyAAAHZ2NkX2kzMgABCvsDAvYCAQV/AkAgAkUNAAJAIANFDQAgAyADQR91IgRzIARrIQVBACEGA0AgACAGQQJ0IgdqKAIAIgMgA0EfdSIDcyADayEEIAUhAwNAIAQgAyIIcCEDIAghBCADDQALIAEgB2ogCDYCACAGQQFqIgYgAkcNAAwCCwtBACEGAkAgAkEESQ0AIAEgAGtBEEkNACACQXxxIgYhCCABIQMgACEEA0AgAyAE/QACAP2gAf0LAgAgA0EQaiEDIARBEGohBCAIQXxqIggNAAsgAiAGRg0BCyAGQQFyIQMCQCACQQFxRQ0AIAEgBkECdCIEaiAAIARqKAIAIgQgBEEfdSIEcyAEazYCACADIQYLIAIgA0YNACACIAZrIQggACAGQQJ0IgRqIQMgASAEaiEEA0AgBCADKAIAIgYgBkEfdSIGcyAGazYCACAEQQRqIANBBGooAgAiBiAGQR91IgZzIAZrNgIAIANBCGohAyAEQQhqIQQgCEF+aiIIDQALCwuAAQEFfwJAIANFDQBBACEEA0AgACAEQQJ0IgVqKAIAIgYgBkEfdSIGcyAGayEHAkACQCABIAVqKAIAIgYNACAHIQgMAQsgBiAGQR91IghzIAhrIQYDQCAHIAYiCHAhBiAIIQcgBg0ACwsgAiAFaiAINgIAIARBAWoiBCADRw0ACwsL",ke=null;function A0(){if(ke)return ke;let A=atob(GL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ke=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ke.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ke}function r0(A,r,I,e){A0().exports.gcd_scalar_i32(A,r,I,e)}function I0(A,r,I,e){A0().exports.gcd_i32(A,r,I,e)}var e0=64;function Ta(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<e0*Y.thresholdMultiplier)return null;let e=A.dtype;if(e!=="int32"&&e!=="int16"&&e!=="int8"&&e!=="uint16"&&e!=="uint8")return null;let t=4;J(I*t*2),U();let o=A.data.subarray(A.offset,A.offset+I),n=new Int32Array(I);for(let a=0;a<I;a++)n[a]=Number(o[a]);let g=q(n),i=_(I*t);r0(g,i,I,Math.abs(Math.trunc(r)));let Q=v(i,I,Int32Array);return d.fromData(Q,Array.from(A.shape),"int32")}function t0(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<e0*Y.thresholdMultiplier)return null;let e=A.dtype,t=r.dtype,o=["int32","int16","int8","uint16","uint8"];if(!o.includes(e)||!o.includes(t))return null;let n=4;J(I*n*3),U();let g=A.data.subarray(A.offset,A.offset+I),i=r.data.subarray(r.offset,r.offset+I),Q=new Int32Array(I),a=new Int32Array(I);for(let u=0;u<I;u++)Q[u]=Number(g[u]),a[u]=Number(i[u]);let s=q(Q),B=q(a),C=_(I*n);I0(s,B,C,I);let E=v(C,I,Int32Array);return d.fromData(E,Array.from(A.shape),"int32")}function Dr(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,e)=>I===r.shape[e])}function $A(A,r){return[A[r*2],A[r*2+1]]}function WA(A,r,I,e){A[r*2]=I,A[r*2+1]=e}function Q0(A,r){if(typeof r=="number")return o0(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return o0(A,I)}if(Dr(A,r)){let I=Bm(A,r);return I||RL(A,r)}return yA(A,r,(I,e)=>I+e,"add")}function RL(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=e.data,i=A.offset,Q=r.offset;if(k(I)){let a=g,s=k(A.dtype),B=k(r.dtype);for(let C=0;C<t;C++){let[E,u]=s?$A(o,i+C):[Number(o[i+C]),0],[D,m]=B?$A(n,Q+C):[Number(n[Q+C]),0];WA(a,C,E+D,u+m)}return e}if(L(I)){let a=g;if(!L(A.dtype)||!L(r.dtype))for(let B=0;B<t;B++){let C=typeof o[i+B]=="bigint"?o[i+B]:BigInt(Math.round(Number(o[i+B]))),E=typeof n[Q+B]=="bigint"?n[Q+B]:BigInt(Math.round(Number(n[Q+B])));a[B]=C+E}else{let B=o,C=n;for(let E=0;E<t;E++)a[E]=B[i+E]+C[Q+E]}}else if(L(A.dtype)||L(r.dtype))for(let s=0;s<t;s++){let B=typeof o[i+s]=="bigint"?Number(o[i+s]):o[i+s],C=typeof n[Q+s]=="bigint"?Number(n[Q+s]):n[Q+s];g[s]=B+C}else if(i===0&&Q===0)for(let s=0;s<t;s++)g[s]=o[s]+n[s];else for(let s=0;s<t;s++)g[s]=o[i+s]+n[Q+s];return e}function a0(A,r){if(typeof r=="number")return n0(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return n0(A,I)}if(Dr(A,r)){let I=pm(A,r);return I||kL(A,r)}return yA(A,r,(I,e)=>I-e,"subtract")}function kL(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=e.data,i=A.offset,Q=r.offset;if(k(I)){let a=g,s=k(A.dtype),B=k(r.dtype);for(let C=0;C<t;C++){let[E,u]=s?$A(o,i+C):[Number(o[i+C]),0],[D,m]=B?$A(n,Q+C):[Number(n[Q+C]),0];WA(a,C,E-D,u-m)}return e}if(L(I)){let a=g;if(!L(A.dtype)||!L(r.dtype))for(let B=0;B<t;B++){let C=typeof o[i+B]=="bigint"?o[i+B]:BigInt(Math.round(Number(o[i+B]))),E=typeof n[Q+B]=="bigint"?n[Q+B]:BigInt(Math.round(Number(n[Q+B])));a[B]=C-E}else{let B=o,C=n;for(let E=0;E<t;E++)a[E]=B[i+E]-C[Q+E]}}else if(L(A.dtype)||L(r.dtype))for(let s=0;s<t;s++){let B=typeof o[i+s]=="bigint"?Number(o[i+s]):o[i+s],C=typeof n[Q+s]=="bigint"?Number(n[Q+s]):n[Q+s];g[s]=B-C}else if(i===0&&Q===0)for(let s=0;s<t;s++)g[s]=o[s]-n[s];else for(let s=0;s<t;s++)g[s]=o[i+s]-n[Q+s];return e}function s0(A,r){if(typeof r=="number")return i0(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return i0(A,I)}if(Dr(A,r)){let I=Lm(A,r);return I||qL(A,r)}return yA(A,r,(I,e)=>I*e,"multiply")}function qL(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=e.data,i=A.offset,Q=r.offset;if(k(I)){let a=g,s=k(A.dtype),B=k(r.dtype);for(let C=0;C<t;C++){let[E,u]=s?$A(o,i+C):[Number(o[i+C]),0],[D,m]=B?$A(n,Q+C):[Number(n[Q+C]),0],c=E*D-u*m,f=E*m+u*D;WA(a,C,c,f)}return e}if(L(I)){let a=g;if(!L(A.dtype)||!L(r.dtype))for(let B=0;B<t;B++){let C=typeof o[i+B]=="bigint"?o[i+B]:BigInt(Math.round(Number(o[i+B]))),E=typeof n[Q+B]=="bigint"?n[Q+B]:BigInt(Math.round(Number(n[Q+B])));a[B]=C*E}else{let B=o,C=n;for(let E=0;E<t;E++)a[E]=B[i+E]*C[Q+E]}}else if(L(A.dtype)||L(r.dtype))for(let s=0;s<t;s++){let B=typeof o[i+s]=="bigint"?Number(o[i+s]):o[i+s],C=typeof n[Q+s]=="bigint"?Number(n[Q+s]):n[Q+s];g[s]=B*C}else if(i===0&&Q===0)for(let s=0;s<t;s++)g[s]=o[s]*n[s];else for(let s=0;s<t;s++)g[s]=o[i+s]*n[Q+s];return e}function B0(A,r){if(typeof r=="number")return g0(A,r);if(r.size===1&&!k(r.dtype)&&!k(A.dtype)){let s=Number(r.iget(0));return g0(A,s)}let I=k(A.dtype),e=k(r.dtype);if(I||e){let s=IA(A.dtype,r.dtype);if(I&&e&&A.dtype===r.dtype&&Dr(A,r)){let f=Ig(A,r);if(f)return f}let B=d.zeros(Array.from(A.shape),s),C=B.data,E=A.size,u=A.data,D=r.data,m=A.offset,c=r.offset;for(let f=0;f<E;f++){let[y,l]=I?$A(u,m+f):[Number(u[m+f]),0],[h,b]=e?$A(D,c+f):[Number(D[c+f]),0],p=h*h+b*b,w=(y*h+l*b)/p,N=(l*h-y*b)/p;WA(C,f,w,N)}return B}if(A.dtype===r.dtype&&Dr(A,r)){let s=Ig(A,r);if(s)return s}let t=A.dtype==="float64",o=r.dtype==="float64",n=A.dtype==="float32",g=r.dtype==="float32",i;n&&g||(n||g)&&!t&&!o?i="float32":i="float64";let Q=A.dtype===i?A:kI(A,i),a=r.dtype===i?r:kI(r,i);if(Dr(Q,a)){let s=Ig(Q,a);if(s)return s}return yA(Q,a,(s,B)=>s/B,"divide")}function kI(A,r){let I=d.zeros(Array.from(A.shape),r),e=A.size,t=I.data;if(A.isCContiguous){let o=A.data,n=A.offset;for(let g=0;g<e;g++)t[g]=Number(o[n+g])}else for(let o=0;o<e;o++)t[o]=Number(A.iget(o));return I}function o0(A,r){let I=Cm(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.data,n=A.size,g=A.offset,i=A.isCContiguous,Q=d.zeros(t,e),a=Q.data;if(k(e)){let s=o,B=a;if(i)for(let C=0;C<n;C++){let[E,u]=$A(s,g+C);WA(B,C,E+r,u)}else for(let C=0;C<n;C++){let E=A.iget(C),u=E.re??Number(E),D=E.im??0;WA(B,C,u+r,D)}}else if(L(e)){let s=a,B=BigInt(Math.round(r));if(i){let C=o;for(let E=0;E<n;E++)s[E]=C[g+E]+B}else for(let C=0;C<n;C++)s[C]=A.iget(C)+B}else if(i)if(g===0)for(let s=0;s<n;s++)a[s]=Number(o[s])+r;else for(let s=0;s<n;s++)a[s]=Number(o[g+s])+r;else for(let s=0;s<n;s++)a[s]=Number(A.iget(s))+r;return Q}function n0(A,r){let I=wm(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.data,n=A.size,g=A.offset,i=A.isCContiguous,Q=d.zeros(t,e),a=Q.data;if(k(e)){let s=o,B=a;if(i)for(let C=0;C<n;C++){let[E,u]=$A(s,g+C);WA(B,C,E-r,u)}else for(let C=0;C<n;C++){let E=A.iget(C),u=E.re??Number(E),D=E.im??0;WA(B,C,u-r,D)}}else if(L(e)){let s=a,B=BigInt(Math.round(r));if(i){let C=o;for(let E=0;E<n;E++)s[E]=C[g+E]-B}else for(let C=0;C<n;C++)s[C]=A.iget(C)-B}else if(i)for(let s=0;s<n;s++)a[s]=Number(o[g+s])-r;else for(let s=0;s<n;s++)a[s]=Number(A.iget(s))-r;return Q}function i0(A,r){let I=Hm(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.data,n=A.size,g=A.offset,i=A.isCContiguous,Q=d.zeros(t,e),a=Q.data;if(k(e)){let s=o,B=a;if(i)for(let C=0;C<n;C++){let[E,u]=$A(s,g+C);WA(B,C,E*r,u*r)}else for(let C=0;C<n;C++){let E=A.iget(C),u=E.re??Number(E),D=E.im??0;WA(B,C,u*r,D*r)}}else if(L(e)){let s=a,B=BigInt(Math.round(r));if(i){let C=o;for(let E=0;E<n;E++)s[E]=C[g+E]*B}else for(let C=0;C<n;C++)s[C]=A.iget(C)*B}else if(i)if(g===0)for(let s=0;s<n;s++)a[s]=Number(o[s])*r;else for(let s=0;s<n;s++)a[s]=Number(o[g+s])*r;else for(let s=0;s<n;s++)a[s]=Number(A.iget(s))*r;return Q}function g0(A,r){let I=A.dtype;if(k(I)){let B=Array.from(A.shape),C=A.data,E=A.size,u=A.offset,D=A.isCContiguous,m=d.zeros(B,I),c=m.data;if(D){let f=C;for(let y=0;y<E;y++){let[l,h]=$A(f,u+y);WA(c,y,l/r,h/r)}}else for(let f=0;f<E;f++){let y=A.iget(f),l=y.re??Number(y),h=y.im??0;WA(c,f,l/r,h/r)}return m}let e=Qy(A,r);if(e)return e;let o=I==="float32"||I==="float64"?A:kI(A,"float64"),n=Array.from(o.shape),g=o.size,i=d.zeros(n,o.dtype),Q=i.data,a=o.data,s=o.offset;if(o.isCContiguous)for(let B=0;B<g;B++)Q[B]=a[s+B]/r;else for(let B=0;B<g;B++)Q[B]=Number(o.iget(B))/r;return i}function C0(A){let r=hy(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous;if(k(I)){let a=ne(I),s=d.zeros(e,a),B=s.data;if(g){let C=t;for(let E=0;E<o;E++){let u=C[(n+E)*2],D=C[(n+E)*2+1];B[E]=Math.sqrt(u*u+D*D)}}else for(let C=0;C<o;C++){let E=A.iget(C),u=E.re??Number(E),D=E.im??0;B[C]=Math.sqrt(u*u+D*D)}return s}let i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q;if(g){let s=t;for(let B=0;B<o;B++){let C=s[n+B];a[B]=C<0n?-C:C}}else for(let s=0;s<o;s++){let B=A.iget(s);a[s]=B<0n?-B:B}}else if(g)if(n===0)for(let a=0;a<o;a++)Q[a]=Math.abs(Number(t[a]));else for(let a=0;a<o;a++)Q[a]=Math.abs(Number(t[n+a]));else for(let a=0;a<o;a++)Q[a]=Math.abs(Number(A.iget(a)));return i}function E0(A){let r=Ey(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(k(I)){let a=Q;if(g){let s=t;for(let B=0;B<o;B++){let[C,E]=$A(s,n+B);WA(a,B,-C,-E)}}else for(let s=0;s<o;s++){let B=A.iget(s),C=B.re??Number(B),E=B.im??0;WA(a,s,-C,-E)}}else if(L(I)){let a=Q;if(g){let s=t;for(let B=0;B<o;B++)a[B]=-s[n+B]}else for(let s=0;s<o;s++)a[s]=-A.iget(s)}else if(g)if(n===0)for(let a=0;a<o;a++)Q[a]=-Number(t[a]);else for(let a=0;a<o;a++)Q[a]=-Number(t[n+a]);else for(let a=0;a<o;a++)Q[a]=-Number(A.iget(a));return i}function u0(A){eA(A.dtype,"sign","Sign is not defined for complex numbers.");let r=Sy(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q;if(g){let s=t;for(let B=0;B<o;B++){let C=s[n+B];a[B]=C>0n?1n:C<0n?-1n:0n}}else for(let s=0;s<o;s++){let B=A.iget(s);a[s]=B>0n?1n:B<0n?-1n:0n}}else if(g)for(let a=0;a<o;a++){let s=Number(t[n+a]);Q[a]=s>0?1:s<0?-1:0}else for(let a=0;a<o;a++){let s=Number(A.iget(a));Q[a]=s>0?1:s<0?-1:0}return i}function tg(A,r){return eA(A.dtype,"mod","Modulo is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof r=="number"?ML(A,r):yA(A,r,(I,e)=>(I%e+e)%e,"mod")}function ML(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,s=BigInt(Math.round(r));if(g){let B=t;for(let C=0;C<o;C++){let E=B[n+C];a[C]=(E%s+s)%s}}else for(let B=0;B<o;B++){let C=A.iget(B);a[B]=(C%s+s)%s}}else if(g)for(let a=0;a<o;a++){let s=Number(t[n+a]);Q[a]=(s%r+r)%r}else for(let a=0;a<o;a++){let s=Number(A.iget(a));Q[a]=(s%r+r)%r}return i}function Pa(A,r){return eA(A.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof r=="number"?xL(A,r):yA(A,r,(I,e)=>Math.floor(I/e),"floor_divide")}function xL(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,s=BigInt(Math.round(r));if(g){let B=t;for(let C=0;C<o;C++)a[C]=B[n+C]/s}else for(let B=0;B<o;B++)a[B]=A.iget(B)/s}else if(g)for(let a=0;a<o;a++)Q[a]=Math.floor(Number(t[n+a])/r);else for(let a=0;a<o;a++)Q[a]=Math.floor(Number(A.iget(a))/r);return i}function c0(A){let r=A.dtype,I=Array.from(A.shape),e=A.data,t=A.size,o=A.offset,n=A.isCContiguous,g=d.zeros(I,r),i=g.data;if(k(r)){let Q=i;if(n){let a=e;Q.set(a.subarray(o*2,(o+t)*2))}else for(let a=0;a<t;a++){let s=A.iget(a);Q[a*2]=s.re??Number(s),Q[a*2+1]=s.im??0}}else if(n)i.set(e.subarray(o,o+t));else for(let Q=0;Q<t;Q++)i[Q]=A.iget(Q);return g}function f0(A){let r=Hl(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous;if(k(I)){let B=d.zeros(e,I),C=B.data;if(g){let E=t;for(let u=0;u<o;u++){let D=E[(n+u)*2],m=E[(n+u)*2+1],c=D*D+m*m;C[u*2]=D/c,C[u*2+1]=-m/c}}else for(let E=0;E<o;E++){let u=A.iget(E),D=u.re??Number(u),m=u.im??0,c=D*D+m*m;C[E*2]=D/c,C[E*2+1]=-m/c}return B}let Q=I!=="float32"&&I!=="float64"?"float64":I,a=d.zeros(e,Q),s=a.data;if(g)if(n===0)for(let B=0;B<o;B++)s[B]=1/Number(t[B]);else for(let B=0;B<o;B++)s[B]=1/Number(t[n+B]);else for(let B=0;B<o;B++)s[B]=1/Number(A.iget(B));return a}function D0(A){let r=A.dtype;eA(r,"cbrt","cbrt is not supported for complex numbers.");let I=Array.from(A.shape),e=A.data,t=A.size,o=A.offset,g=r!=="float32"&&r!=="float64"?"float64":r,i=d.zeros(I,g),Q=i.data;if(A.isCContiguous)for(let a=0;a<t;a++)Q[a]=Math.cbrt(Number(e[o+a]));else for(let a=0;a<t;a++)Q[a]=Math.cbrt(Number(A.iget(a)));return i}function m0(A){let r=A.dtype;eA(r,"fabs","fabs is only for real numbers. Use absolute() for complex.");let I=Array.from(A.shape),e=A.data,t=A.size,o=A.offset,n=r==="float32"?"float32":"float64",g=d.zeros(I,n),i=g.data;if(A.isCContiguous)if(o===0)for(let Q=0;Q<t;Q++)i[Q]=Math.abs(Number(e[Q]));else for(let Q=0;Q<t;Q++)i[Q]=Math.abs(Number(e[o+Q]));else for(let Q=0;Q<t;Q++)i[Q]=Math.abs(Number(A.iget(Q)));return g}function y0(A,r){let I=Pa(A,r),e=tg(A,r);return[I,e]}function l0(A){let r=xl(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=d.zeros(e,I),g=n.data;if(k(I)){let i=t,Q=g;for(let a=0;a<o;a++){let s=i[a*2],B=i[a*2+1];Q[a*2]=s*s-B*B,Q[a*2+1]=2*s*B}}else if(L(I)){let i=t,Q=g;for(let a=0;a<o;a++)Q[a]=i[a]*i[a]}else for(let i=0;i<o;i++){let Q=Number(t[i]);g[i]=Q*Q}return n}function h0(A,r){return tg(A,r)}function Ka(A,r){eA(A.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let I=A.dtype,e=Array.from(A.shape),t=A.size,o=I==="float32"?"float32":"float64",n=A.dtype===o?A:kI(A,o);if(typeof r!="number"&&r.size===1)return Ka(A,Number(r.iget(0)));if(typeof r=="number"){let g=Kl(n,r,o);if(g)return g;let i=d.zeros(e,o),Q=i.data;if(n.isCContiguous){let a=n.data,s=n.offset;for(let B=0;B<t;B++){let C=a[s+B];Q[B]=C<0?0:C===0?r:1}}else for(let a=0;a<t;a++){let s=Number(A.iget(a));Q[a]=s<0?0:s===0?r:1}return i}else{let g=r.shape,i=r.dtype===o?r:kI(r,o);if(e.every((Q,a)=>Q===g[a])){let Q=Vl(n,i,o);if(Q)return Q;let a=d.zeros(e,o),s=a.data;if(n.isCContiguous&&i.isCContiguous){let B=n.data,C=n.offset,E=i.data,u=i.offset;for(let D=0;D<t;D++){let m=B[C+D];s[D]=m<0?0:m===0?E[u+D]:1}}else for(let B=0;B<t;B++){let C=Number(A.iget(B));s[B]=C<0?0:C===0?Number(r.iget(B)):1}return a}else{let Q=d.zeros(e,o),a=Q.data;for(let s=0;s<t;s++){let B=Number(A.iget(s)),C=s%r.size;a[s]=B<0?0:B===0?Number(r.iget(C)):1}return Q}}}function d0(A,r){let I=A.dtype;if(k(I)){let e=A.size,t=d.zeros(Array.from(A.shape),I),o=t.data;if(typeof r=="number")if(A.isCContiguous){let n=A.data,g=A.offset;for(let i=0;i<e;i++){let Q=n[(g+i)*2],a=n[(g+i)*2+1],s=Math.hypot(Q,a),B=Math.atan2(a,Q),C=Math.pow(s,r),E=B*r;o[i*2]=C*Math.cos(E),o[i*2+1]=C*Math.sin(E)}}else for(let n=0;n<e;n++){let g=A.iget(n),i=Math.hypot(g.re,g.im),Q=Math.atan2(g.im,g.re),a=Math.pow(i,r),s=Q*r;o[n*2]=a*Math.cos(s),o[n*2+1]=a*Math.sin(s)}else{let n=k(r.dtype);if(A.isCContiguous&&r.isCContiguous){let g=A.data,i=A.offset,Q=r.data,a=r.offset;for(let s=0;s<e;s++){let B=g[(i+s)*2],C=g[(i+s)*2+1],E,u;if(n){let b=Q;E=b[(a+s)*2],u=b[(a+s)*2+1]}else E=Number(Q[a+s]),u=0;let D=Math.hypot(B,C),m=Math.atan2(C,B),c=Math.log(D),f=m,y=E*c-u*f,l=E*f+u*c,h=Math.exp(y);o[s*2]=h*Math.cos(l),o[s*2+1]=h*Math.sin(l)}}else for(let g=0;g<e;g++){let i=A.iget(g),Q,a;if(n){let c=r.iget(g);Q=c.re,a=c.im}else Q=Number(r.iget(g)),a=0;let s=Math.hypot(i.re,i.im),B=Math.atan2(i.im,i.re),C=Math.log(s),E=B,u=Q*C-a*E,D=Q*E+a*C,m=Math.exp(u);o[g*2]=m*Math.cos(D),o[g*2+1]=m*Math.sin(D)}}return t}if(typeof r=="number"){let e=d.zeros(Array.from(A.shape),"float64"),t=e.data,o=A.size;if(A.isCContiguous){let n=A.data,g=A.offset;for(let i=0;i<o;i++)t[i]=Math.pow(Number(n[g+i]),r)}else for(let n=0;n<o;n++)t[n]=Math.pow(Number(A.iget(n)),r);return e}return yA(A,r,(e,t)=>Math.pow(e,t),"float_power")}function b0(A,r){if(eA(A.dtype,"fmod","fmod is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof r=="number"){let I=A.copy(),e=I.data,t=A.size;for(let o=0;o<t;o++){let n=Number(e[o]);e[o]=n-Math.trunc(n/r)*r}return I}return yA(A,r,(I,e)=>I-Math.trunc(I/e)*e,"fmod")}function p0(A){eA(A.dtype,"frexp","frexp is not defined for complex numbers.");let r=$l(A);if(r)return r;let I=d.zeros(Array.from(A.shape),"float64"),e=d.zeros(Array.from(A.shape),"int32"),t=I.data,o=e.data,n=A.size;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<n;Q++){let a=Number(g[i+Q]);if(a===0||!isFinite(a))t[Q]=a,o[Q]=0;else{let s=Math.floor(Math.log2(Math.abs(a)))+1;t[Q]=a/Math.pow(2,s),o[Q]=s}}}else for(let g=0;g<n;g++){let i=Number(A.iget(g));if(i===0||!isFinite(i))t[g]=i,o[g]=0;else{let Q=Math.floor(Math.log2(Math.abs(i)))+1;t[g]=i/Math.pow(2,Q),o[g]=Q}}return[I,e]}function w0(A,r){eA(A.dtype,"gcd","GCD is only defined for integers."),typeof r!="number"&&eA(r.dtype,"gcd","GCD is only defined for integers.");let I=(g,i)=>{for(g=Math.abs(Math.trunc(g)),i=Math.abs(Math.trunc(i));i!==0;){let Q=i;i=g%i,g=Q}return g};if(typeof r=="number"){let g=Ta(A,r);if(g)return g;let i=d.zeros(Array.from(A.shape),"int32"),Q=i.data,a=A.size,s=Math.abs(Math.trunc(r));if(A.isCContiguous){let B=A.data,C=A.offset;for(let E=0;E<a;E++)Q[E]=I(Number(B[C+E]),s)}else for(let B=0;B<a;B++)Q[B]=I(Number(A.iget(B)),s);return i}if(typeof r!="number"&&r.size===1){let g=Number(r.iget(0)),i=Ta(A,g);if(i)return i}if(typeof r!="number"&&Dr(A,r)){let g=t0(A,r);if(g)return g}let e=yA(A,r,I,"gcd"),t=d.zeros(Array.from(e.shape),"int32"),o=t.data,n=e.size;if(e.isCContiguous){let g=e.data,i=e.offset;for(let Q=0;Q<n;Q++)o[Q]=Math.round(Number(g[i+Q]))}else for(let g=0;g<n;g++)o[g]=Math.round(Number(e.iget(g)));return t}function N0(A,r){eA(A.dtype,"lcm","LCM is only defined for integers."),typeof r!="number"&&eA(r.dtype,"lcm","LCM is only defined for integers.");let I=(i,Q)=>{for(i=Math.abs(Math.trunc(i)),Q=Math.abs(Math.trunc(Q));Q!==0;){let a=Q;Q=i%Q,i=a}return i},e=(i,Q)=>(i=Math.abs(Math.trunc(i)),Q=Math.abs(Math.trunc(Q)),i===0||Q===0?0:i*Q/I(i,Q));if(typeof r=="number"){let i=d.zeros(Array.from(A.shape),"int32"),Q=i.data,a=A.size,s=Math.abs(Math.trunc(r));if(A.isCContiguous){let B=A.data,C=A.offset;for(let E=0;E<a;E++)Q[E]=e(Number(B[C+E]),s)}else for(let B=0;B<a;B++)Q[B]=e(Number(A.iget(B)),s);return i}let t=yA(A,r,e,"lcm"),o=d.zeros(Array.from(t.shape),"int32"),n=o.data,g=t.size;if(t.isCContiguous){let i=t.data,Q=t.offset;for(let a=0;a<g;a++)n[a]=Math.round(Number(i[Q+a]))}else for(let i=0;i<g;i++)n[i]=Math.round(Number(t.iget(i)));return o}function Va(A,r){if(eA(A.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof r!="number"&&(eA(r.dtype,"ldexp","ldexp is not defined for complex numbers."),r.size===1))return Va(A,Number(r.iget(0)));if(typeof r=="number"){let I=A.dtype==="float32"?"float32":"float64",e=A.dtype===I?A:kI(A,I),t=zl(e,r);if(t)return t;let o=d.zeros(Array.from(A.shape),"float64"),n=o.data,g=A.size,i=Math.pow(2,r);if(A.isCContiguous){let Q=A.data,a=A.offset;for(let s=0;s<g;s++)n[s]=Number(Q[a+s])*i}else for(let Q=0;Q<g;Q++)n[Q]=Number(A.iget(Q))*i;return o}return yA(A,r,(I,e)=>I*Math.pow(2,e),"ldexp")}function F0(A){eA(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"),e=r.data,t=I.data,o=A.size;for(let n=0;n<o;n++){let g=Number(A.iget(n)),i=Math.trunc(g);t[n]=i,e[n]=g-i}return[r,I]}function S0(A,r,I){if(eA(A.dtype,"clip","clip is not supported for complex numbers."),(r===null||typeof r=="number")&&(I===null||typeof I=="number")){let w=Gl(A,r===null?-1/0:r,I===null?1/0:I);if(w)return w}let e=A.dtype,t=Array.from(A.shape),o=A.size,n=d.zeros(t,e),g=n.data,i=r===null||typeof r=="number",Q=I===null||typeof I=="number",a=r===null?-1/0:typeof r=="number"?r:null,s=I===null?1/0:typeof I=="number"?I:null,B=A.isCContiguous,C=A.data,E=A.offset,u=!i&&r.isCContiguous,D=i?null:r.data,m=i?0:r.offset,c=i?0:r.size,f=!Q&&I.isCContiguous,y=Q?null:I.data,l=Q?0:I.offset,h=Q?0:I.size;if(L(e)){let b=g;if(B&&(i||u)&&(Q||f)){let p=C,w=D,N=y;for(let F=0;F<o;F++){let G=p[E+F],x=i?a===-1/0?G:BigInt(Math.round(a)):w[m+F%c],H=Q?s===1/0?G:BigInt(Math.round(s)):N[l+F%h];G<x&&(G=x),G>H&&(G=H),b[F]=G}}else for(let p=0;p<o;p++){let w=A.iget(p),N=i?a===-1/0?w:BigInt(Math.round(a)):r.iget(p%r.size),F=Q?s===1/0?w:BigInt(Math.round(s)):I.iget(p%I.size);w<N&&(w=N),w>F&&(w=F),b[p]=w}}else if(B&&(i||u)&&(Q||f))for(let b=0;b<o;b++){let p=Number(C[E+b]),w=i?a:Number(D[m+b%c]),N=Q?s:Number(y[l+b%h]);p<w&&(p=w),p>N&&(p=N),g[b]=p}else for(let b=0;b<o;b++){let p=Number(A.iget(b)),w=i?a:Number(r.iget(b%r.size)),N=Q?s:Number(I.iget(b%I.size));p<w&&(p=w),p>N&&(p=N),g[b]=p}return n}function G0(A,r){if(eA(A.dtype,"maximum","maximum is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof r=="number"){let I=pe(A,r);if(I)return I}else if(r.size===1){let I=pe(A,Number(r.iget(0)));if(I)return I}else if(Dr(A,r)){let I=xa(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let s=0;s<t;s++)i[s]=Q[s]>a?Q[s]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);n[i]=isNaN(Q)||isNaN(r)?NaN:Math.max(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)||isNaN(e)?NaN:Math.max(I,e),"maximum")}function R0(A,r){if(eA(A.dtype,"minimum","minimum is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"minimum","minimum is not supported for complex numbers."),typeof r=="number"){let I=de(A,r);if(I)return I}else if(r.size===1){let I=de(A,Number(r.iget(0)));if(I)return I}else if(Dr(A,r)){let I=Ma(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let s=0;s<t;s++)i[s]=Q[s]<a?Q[s]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);n[i]=isNaN(Q)||isNaN(r)?NaN:Math.min(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)||isNaN(e)?NaN:Math.min(I,e),"minimum")}function k0(A,r){if(eA(A.dtype,"fmax","fmax is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"fmax","fmax is not supported for complex numbers."),typeof r=="number"){let I=pe(A,r);if(I)return I}else if(r.size===1){let I=pe(A,Number(r.iget(0)));if(I)return I}else if(Dr(A,r)){let I=xa(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let s=0;s<t;s++)i[s]=Q[s]>a?Q[s]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);isNaN(Q)?n[i]=r:isNaN(r)?n[i]=Q:n[i]=Math.max(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)?e:isNaN(e)?I:Math.max(I,e),"fmax")}function q0(A,r){if(eA(A.dtype,"fmin","fmin is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof r=="number"){let I=de(A,r);if(I)return I}else if(r.size===1){let I=de(A,Number(r.iget(0)));if(I)return I}else if(Dr(A,r)){let I=Ma(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let s=0;s<t;s++)i[s]=Q[s]<a?Q[s]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);isNaN(Q)?n[i]=r:isNaN(r)?n[i]=Q:n[i]=Math.min(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)?e:isNaN(e)?I:Math.min(I,e),"fmin")}function M0(A,r=0,I,e){eA(A.dtype,"nan_to_num","nan_to_num is not supported for complex numbers.");let t=A.dtype,o=Array.from(A.shape),n=A.size,g=I!==void 0?I:Number.MAX_VALUE,i=e!==void 0?e:-Number.MAX_VALUE,Q=d.zeros(o,t),a=Q.data,s=A.data;if(pA(t))a.set(s.subarray(A.offset,A.offset+n));else for(let B=0;B<n;B++){let C=Number(s[B]);isNaN(C)?a[B]=r:C===1/0?a[B]=g:C===-1/0?a[B]=i:a[B]=C}return Q}function x0(A,r,I,e,t){eA(A.dtype,"interp","interp is not supported for complex numbers."),eA(r.dtype,"interp","interp is not supported for complex numbers."),eA(I.dtype,"interp","interp is not supported for complex numbers.");let o=Array.from(A.shape),n=A.size,g=d.zeros(o,"float64"),i=g.data,Q=A.data,a=r.data,s=I.data,B=r.size,C=e!==void 0?e:Number(s[0]),E=t!==void 0?t:Number(s[B-1]);for(let u=0;u<n;u++){let D=Number(Q[u]);if(D<=Number(a[0])){i[u]=C;continue}if(D>=Number(a[B-1])){i[u]=E;continue}let m=0,c=B-1;for(;c-m>1;){let p=Math.floor((m+c)/2);Number(a[p])<=D?m=p:c=p}let f=Number(a[m]),y=Number(a[c]),l=Number(s[m]),h=Number(s[c]),b=(D-f)/(y-f);i[u]=l+b*(h-l)}return g}function J0(A,r=Math.PI,I=-1,e=2*Math.PI){eA(A.dtype,"unwrap","unwrap is not supported for complex numbers.");let t=Array.from(A.shape),o=t.length;if(I<0&&(I+=o),I<0||I>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);if(o===1){let Q=A.size,a=d.zeros(t,"float64"),s=a.data,B=A.data;if(Q===0)return a;s[0]=Number(B[0]);let C=0;for(let E=1;E<Q;E++){let u=Number(B[E-1]),D=Number(B[E]),m=D-u;m=(m+e/2)%e-e/2,m===-e/2&&D-u>0&&(m=e/2),Math.abs(m)>r&&(C-=Math.round((D-u-m)/e)*e),s[E]=D+C}return a}let n=d.zeros(t,"float64"),g=n.data,i=A.data;for(let Q=0;Q<A.size;Q++)g[Q]=Number(i[Q]);if(o===2){let[Q,a]=t;if(I===0)for(let s=0;s<a;s++){let B=0;for(let C=1;C<Q;C++){let E=(C-1)*a+s,u=C*a+s,D=g[E],m=g[u],c=m-D;c=(c+e/2)%e-e/2,c===-e/2&&m-D>0&&(c=e/2),Math.abs(c)>r&&(B-=Math.round((m-D-c)/e)*e),g[u]=m+B}}else for(let s=0;s<Q;s++){let B=0;for(let C=1;C<a;C++){let E=s*a+(C-1),u=s*a+C,D=g[E],m=g[u],c=m-D;c=(c+e/2)%e-e/2,c===-e/2&&m-D>0&&(c=e/2),Math.abs(c)>r&&(B-=Math.round((m-D-c)/e)*e),g[u]=m+B}}}return n}function U0(A){eA(A.dtype,"sinc","sinc is not supported for complex numbers.");let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"float64"),t=e.data,o=A.data;for(let n=0;n<I;n++){let g=Number(o[n]);if(g===0)t[n]=1;else{let i=Math.PI*g;t[n]=Math.sin(i)/i}}return e}function L0(A){eA(A.dtype,"i0","i0 is not supported for complex numbers.");let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"float64"),t=e.data,o=A.data;for(let n=0;n<I;n++){let g=Math.abs(Number(o[n]));t[n]=JL(g)}return e}function JL(A){let r=Math.abs(A);if(r<3.75){let I=A/3.75,e=I*I;return 1+e*(3.5156229+e*(3.0899424+e*(1.2067492+e*(.2659732+e*(.0360768+e*.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 LL="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",qe=null;function qI(){if(qe)return qe;let A=atob(LL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);qe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=qe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),qe}function H0(A,r,I){qI().exports.sqrt_f64(A,r,I)}function _0(A,r,I){qI().exports.sqrt_f32(A,r,I)}function Wa(A,r,I){qI().exports.sqrt_i64(A,r,I)}function Oa(A,r,I){qI().exports.sqrt_i32(A,r,I)}function Za(A,r,I){qI().exports.sqrt_i16(A,r,I)}function za(A,r,I){qI().exports.sqrt_i8(A,r,I)}var HL=64,_L={float64:H0,float32:_0},YL={int64:Wa,uint64:Wa,int32:Oa,uint32:Oa,int16:Za,uint16:Za,int8:za,uint8:za},Y0={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function v0(A){if(!A.isCContiguous)return null;let r=A.size;if(r<HL*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=_L[I];if(e){let o=Y0[I],n=o.BYTES_PER_ELEMENT;J(r*n*2),U();let g=A.data.subarray(A.offset,A.offset+r),i=q(g),Q=_(r*n);e(i,Q,r);let a=v(Q,r,o);return d.fromData(a,Array.from(A.shape),I)}let t=YL[I];if(t){let n=Y0[I].BYTES_PER_ELEMENT,g=8;J(r*n+r*g),U();let i=A.data.subarray(A.offset,A.offset+r),Q=q(i),a=_(r*g);t(Q,a,r);let s=v(a,r,Float64Array);return d.fromData(s,Array.from(A.shape),"float64")}return null}var vL="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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",Me=null;function or(){if(Me)return Me;let A=atob(vL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Me=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Me.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Me}function X0(A,r,I,e){or().exports.power_f64(A,r,I,e)}function ja(A,r,I,e){or().exports.power_scalar_f64(A,r,I,e)}function T0(A,r,I,e){or().exports.power_f32(A,r,I,e)}function P0(A,r,I,e){or().exports.power_scalar_f32(A,r,I,e)}function $a(A,r,I,e){or().exports.power_i64(A,r,I,e)}function As(A,r,I,e){or().exports.power_scalar_i64(A,r,I,BigInt(Math.round(e)))}function rs(A,r,I,e){or().exports.power_i32(A,r,I,e)}function Is(A,r,I,e){or().exports.power_scalar_i32(A,r,I,e)}function es(A,r,I,e){or().exports.power_i16(A,r,I,e)}function ts(A,r,I,e){or().exports.power_scalar_i16(A,r,I,e)}function os(A,r,I,e){or().exports.power_i8(A,r,I,e)}function ns(A,r,I,e){or().exports.power_scalar_i8(A,r,I,e)}var K0=64,XL={float64:X0,float32:T0,int64:$a,uint64:$a,int32:rs,uint32:rs,int16:es,uint16:es,int8:os,uint8:os},TL={float64:ja,float32:P0,int64:As,uint64:As,int32:Is,uint32:Is,int16:ts,uint16:ts,int8:ns,uint8:ns},V0={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function W0(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<K0*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=XL[e],o=V0[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,s=r.offset,B=A.data.subarray(a,a+I),C=r.data.subarray(s,s+I),E=q(B),u=q(C),D=_(Q);t(E,u,D,I);let m=v(D,I,o);return d.fromData(m,Array.from(A.shape),e)}function O0(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<K0*Y.thresholdMultiplier)return null;let e=A.dtype;if(e!=="float32"&&e!=="float64"&&(r<0||!Number.isInteger(r))){J(I*8*2),U();let D=A.offset,m=A.data,c=new Float64Array(I);if(L(e))for(let h=0;h<I;h++)c[h]=Number(m[D+h]);else for(let h=0;h<I;h++)c[h]=m[D+h];let f=q(c),y=_(I*8);ja(f,y,I,r);let l=v(y,I,Float64Array);return d.fromData(l,Array.from(A.shape),"float64")}let o=TL[e],n=V0[e];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT,i=I*g,Q=I*g;J(i+Q),U();let a=A.offset,s=A.data.subarray(a,a+I),B=q(s),C=_(Q);o(B,C,I,r);let E=v(C,I,n);return d.fromData(E,Array.from(A.shape),e)}var PL="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",xe=null;function og(){if(xe)return xe;let A=atob(PL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);xe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=xe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),xe}function is(A,r,I){og().exports.exp_f64(A,r,I)}function Z0(A,r,I){og().exports.exp_f32(A,r,I)}function z0(A,r,I){og().exports.exp_i64(A,r,I)}function j0(A,r,I){og().exports.exp_u64(A,r,I)}var KL=64,VL={float64:is,float32:Z0};function $0(A){if(!A.isCContiguous)return null;let r=A.size;if(r<KL*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=VL[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let s=A.offset,B=A.data.subarray(s,s+r),C=q(B),E=_(r*8);(I==="int64"?z0:j0)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);is(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var WL="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",Je=null;function ng(){if(Je)return Je;let A=atob(WL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Je=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Je.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Je}function gs(A,r,I){ng().exports.exp2_f64(A,r,I)}function Ah(A,r,I){ng().exports.exp2_f32(A,r,I)}function rh(A,r,I){ng().exports.exp2_i64(A,r,I)}function Ih(A,r,I){ng().exports.exp2_u64(A,r,I)}var OL=64,ZL={float64:gs,float32:Ah};function eh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<OL*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=ZL[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let s=A.offset,B=A.data.subarray(s,s+r),C=q(B),E=_(r*8);(I==="int64"?rh:Ih)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);gs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var zL="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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/",Ue=null;function SA(){if(Ue)return Ue;let A=atob(zL),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ue=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ue.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ue}function th(A,r,I,e){SA().exports.logaddexp_f64(A,r,I,e)}function oh(A,r,I,e){SA().exports.logaddexp_f32(A,r,I,e)}function nh(A,r,I,e){SA().exports.logaddexp_i64(A,r,I,e)}function ih(A,r,I,e){SA().exports.logaddexp_u64(A,r,I,e)}function gh(A,r,I,e){SA().exports.logaddexp_i32(A,r,I,e)}function Qh(A,r,I,e){SA().exports.logaddexp_u32(A,r,I,e)}function ah(A,r,I,e){SA().exports.logaddexp_i16(A,r,I,e)}function sh(A,r,I,e){SA().exports.logaddexp_u16(A,r,I,e)}function Bh(A,r,I,e){SA().exports.logaddexp_i8(A,r,I,e)}function Ch(A,r,I,e){SA().exports.logaddexp_u8(A,r,I,e)}function Eh(A,r,I,e){SA().exports.logaddexp_scalar_f64(A,r,I,e)}function uh(A,r,I,e){SA().exports.logaddexp_scalar_f32(A,r,I,e)}function ch(A,r,I,e){SA().exports.logaddexp_scalar_i64(A,r,I,BigInt(Math.round(e)))}function fh(A,r,I,e){SA().exports.logaddexp_scalar_u64(A,r,I,BigInt(Math.round(e)))}function Dh(A,r,I,e){SA().exports.logaddexp_scalar_i32(A,r,I,e)}function mh(A,r,I,e){SA().exports.logaddexp_scalar_u32(A,r,I,e)}function yh(A,r,I,e){SA().exports.logaddexp_scalar_i16(A,r,I,e)}function lh(A,r,I,e){SA().exports.logaddexp_scalar_u16(A,r,I,e)}function hh(A,r,I,e){SA().exports.logaddexp_scalar_i8(A,r,I,e)}function dh(A,r,I,e){SA().exports.logaddexp_scalar_u8(A,r,I,e)}var bh=64,jL={float64:th,float32:oh},$L={float64:Eh,float32:uh},AH={int64:nh,uint64:ih,int32:gh,uint32:Qh,int16:ah,uint16:sh,int8:Bh,uint8:Ch},rH={int64:ch,uint64:fh,int32:Dh,uint32:mh,int16:yh,uint16:lh,int8:hh,uint8:dh},ig={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function ph(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<bh*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=jL[e];if(t){let n=ig[e],g=n.BYTES_PER_ELEMENT;J(I*g*3),U();let i=A.data.subarray(A.offset,A.offset+I),Q=r.data.subarray(r.offset,r.offset+I),a=q(i),s=q(Q),B=_(I*g);t(a,s,B,I);let C=v(B,I,n);return d.fromData(C,Array.from(A.shape),e)}let o=AH[e];if(o){let g=ig[e].BYTES_PER_ELEMENT,i=8;J(I*g*2+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=r.data.subarray(r.offset,r.offset+I),s=q(Q),B=q(a),C=_(I*i);o(s,B,C,I);let E=v(C,I,Float64Array);return d.fromData(E,Array.from(A.shape),"float64")}return null}function wh(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<bh*Y.thresholdMultiplier)return null;let e=A.dtype,t=$L[e];if(t){let n=ig[e],g=n.BYTES_PER_ELEMENT;J(I*g*2),U();let i=A.data.subarray(A.offset,A.offset+I),Q=q(i),a=_(I*g);t(Q,a,I,r);let s=v(a,I,n);return d.fromData(s,Array.from(A.shape),e)}let o=rH[e];if(o){let g=ig[e].BYTES_PER_ELEMENT,i=8;J(I*g+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=q(Q),s=_(I*i);o(a,s,I,r);let B=v(s,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}return null}function Nh(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let s=i[(Q+a)*2],B=i[(Q+a)*2+1],C=Math.sqrt(s*s+B*B),E=Math.sqrt((C+s)/2),u=(B>=0?1:-1)*Math.sqrt((C-s)/2);g[a*2]=E,g[a*2+1]=u}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,s=Q.im,B=Math.sqrt(a*a+s*s),C=Math.sqrt((B+a)/2),E=(s>=0?1:-1)*Math.sqrt((B-a)/2);g[i*2]=C,g[i*2+1]=E}return n}let I=v0(A);return I||mA(A,Math.sqrt,!1)}function Fh(A,r){if(typeof r=="number")return eH(A,r);let I=k(A.dtype),e=k(r.dtype);if(I||e)return IH(A,r);let t=W0(A,r);return t||yA(A,r,Math.pow,"power")}function IH(A,r){let I=k(A.dtype),e=k(r.dtype),t=A.dtype==="complex128"||r.dtype==="complex128"||r.dtype==="float64"?"complex128":"complex64",o=Array.from(A.shape),n=A.size,g=d.zeros(o,t),i=g.data,Q=A.isCContiguous,a=r.isCContiguous,s=A.offset,B=r.offset;for(let C=0;C<n;C++){let E,u;if(I)if(Q){let p=A.data;E=p[(s+C)*2],u=p[(s+C)*2+1]}else{let p=A.iget(C);E=p.re,u=p.im}else E=Number(A.iget(C)),u=0;let D,m;if(e)if(a){let p=r.data;D=p[(B+C)*2],m=p[(B+C)*2+1]}else{let p=r.iget(C);D=p.re,m=p.im}else D=Number(r.iget(C)),m=0;let c=Math.sqrt(E*E+u*u),f=Math.atan2(u,E),y=Math.log(c),l=D*y-m*f,h=D*f+m*y,b=Math.exp(l);i[C*2]=b*Math.cos(h),i[C*2+1]=b*Math.sin(h)}return g}function eH(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous;if(!k(I)){let C=O0(A,r);if(C)return C}if(k(I)){let C=d.zeros(e,I),E=C.data;if(g){let u=t;for(let D=0;D<o;D++){let m=u[(n+D)*2],c=u[(n+D)*2+1],f=Math.sqrt(m*m+c*c),y=Math.atan2(c,m),l=Math.pow(f,r),h=y*r;E[D*2]=l*Math.cos(h),E[D*2+1]=l*Math.sin(h)}}else for(let u=0;u<o;u++){let D=A.iget(u),m=D.re,c=D.im,f=Math.sqrt(m*m+c*c),y=Math.atan2(c,m),l=Math.pow(f,r),h=y*r;E[u*2]=l*Math.cos(h),E[u*2+1]=l*Math.sin(h)}return C}let a=I!=="float32"&&I!=="float64"&&(r<0||!Number.isInteger(r))?"float64":I,s=d.zeros(e,a),B=s.data;if(L(I))if(L(a)&&Number.isInteger(r)&&r>=0)if(g){let C=t,E=B;for(let u=0;u<o;u++)E[u]=C[n+u]**BigInt(r)}else{let C=B;for(let E=0;E<o;E++)C[E]=A.iget(E)**BigInt(r)}else if(g)for(let C=0;C<o;C++)B[C]=Math.pow(Number(t[n+C]),r);else for(let C=0;C<o;C++)B[C]=Math.pow(Number(A.iget(C)),r);else if(g)for(let C=0;C<o;C++)B[C]=Math.pow(Number(t[n+C]),r);else for(let C=0;C<o;C++)B[C]=Math.pow(Number(A.iget(C)),r);return s}function Sh(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let s=i[(Q+a)*2],B=i[(Q+a)*2+1],C=Math.exp(s);g[a*2]=C*Math.cos(B),g[a*2+1]=C*Math.sin(B)}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,s=Q.im,B=Math.exp(a);g[i*2]=B*Math.cos(s),g[i*2+1]=B*Math.sin(s)}return n}let I=$0(A);return I||mA(A,Math.exp,!1)}function Gh(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=Math.LN2,g=d.zeros(e,r),i=g.data;if(o){let Q=A.data,a=A.offset;for(let s=0;s<t;s++){let B=Q[(a+s)*2],C=Q[(a+s)*2+1],E=Math.exp(B*n),u=C*n;i[s*2]=E*Math.cos(u),i[s*2+1]=E*Math.sin(u)}}else for(let Q=0;Q<t;Q++){let a=A.iget(Q),s=a.re,B=a.im,C=Math.exp(s*n),E=B*n;i[Q*2]=C*Math.cos(E),i[Q*2+1]=C*Math.sin(E)}return g}let I=eh(A);return I||mA(A,e=>Math.pow(2,e),!1)}function Rh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],s=g[(i+Q)*2+1],B=Math.exp(a);n[Q*2]=B*Math.cos(s)-1,n[Q*2+1]=B*Math.sin(s)}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im,s=Math.exp(Q);n[g*2]=s*Math.cos(a)-1,n[g*2+1]=s*Math.sin(a)}return o}return mA(A,Math.expm1,!1)}function kh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],s=g[(i+Q)*2+1],B=Math.sqrt(a*a+s*s),C=Math.atan2(s,a);n[Q*2]=Math.log(B),n[Q*2+1]=C}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im,s=Math.sqrt(Q*Q+a*a),B=Math.atan2(a,Q);n[g*2]=Math.log(s),n[g*2+1]=B}return o}return mA(A,Math.log,!1)}function qh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=1/Math.LN2,n=d.zeros(I,r),g=n.data;if(t){let i=A.data,Q=A.offset;for(let a=0;a<e;a++){let s=i[(Q+a)*2],B=i[(Q+a)*2+1],C=Math.sqrt(s*s+B*B),E=Math.atan2(B,s);g[a*2]=Math.log(C)*o,g[a*2+1]=E*o}}else for(let i=0;i<e;i++){let Q=A.iget(i),a=Q.re,s=Q.im,B=Math.sqrt(a*a+s*s),C=Math.atan2(s,a);g[i*2]=Math.log(B)*o,g[i*2+1]=C*o}return n}return mA(A,Math.log2,!1)}function Mh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=1/Math.LN10,n=d.zeros(I,r),g=n.data;if(t){let i=A.data,Q=A.offset;for(let a=0;a<e;a++){let s=i[(Q+a)*2],B=i[(Q+a)*2+1],C=Math.sqrt(s*s+B*B),E=Math.atan2(B,s);g[a*2]=Math.log(C)*o,g[a*2+1]=E*o}}else for(let i=0;i<e;i++){let Q=A.iget(i),a=Q.re,s=Q.im,B=Math.sqrt(a*a+s*s),C=Math.atan2(s,a);g[i*2]=Math.log(B)*o,g[i*2+1]=C*o}return n}return mA(A,Math.log10,!1)}function xh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],s=g[(i+Q)*2+1],B=1+a,C=Math.sqrt(B*B+s*s),E=Math.atan2(s,B);n[Q*2]=Math.log(C),n[Q*2+1]=E}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im,s=1+Q,B=Math.sqrt(s*s+a*a),C=Math.atan2(a,s);n[g*2]=Math.log(B),n[g*2+1]=C}return o}return mA(A,Math.log1p,!1)}function Jh(A,r){return eA(A.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof r=="number"?oH(A,r):tH(A,r)}function tH(A,r){let I=ph(A,r);if(I)return I;let e=_r(A.shape,r.shape),t=e.reduce((s,B)=>s*B,1),o=A.dtype,n=r.dtype,g=s=>s==="float32"||s==="int8"||s==="uint8"||s==="int16"||s==="uint16",i=g(o)&&g(n)?"float32":"float64",Q=d.zeros(e,i),a=Q.data;for(let s=0;s<t;s++){let B=(L(o),Number(A.iget(s))),C=(L(n),Number(r.iget(s))),E=Math.max(B,C),u=Math.min(B,C);a[s]=E+Math.log1p(Math.exp(u-E))}return Q}function oH(A,r){let I=wh(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.size,n=A.isCContiguous,g=e==="float32"||e==="int8"||e==="uint8"||e==="int16"||e==="uint16"?"float32":"float64",i=d.zeros(t,g),Q=i.data;if(n){let a=A.offset;for(let s=0;s<o;s++){let B=Number(A.data[a+s]),C=Math.max(B,r),E=Math.min(B,r);Q[s]=C+Math.log1p(Math.exp(E-C))}}else for(let a=0;a<o;a++){let s=Number(A.iget(a)),B=Math.max(s,r),C=Math.min(s,r);Q[a]=B+Math.log1p(Math.exp(C-B))}return i}function Uh(A,r){return eA(A.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof r=="number"?iH(A,r):nH(A,r)}function nH(A,r){let I=_r(A.shape,r.shape),e=I.reduce((a,s)=>a*s,1),t=A.dtype,o=r.dtype,n=t==="float32"&&o==="float32"?"float32":"float64",g=d.zeros(I,n),i=g.data,Q=Math.LOG2E;for(let a=0;a<e;a++){let s=(L(t),Number(A.iget(a))),B=(L(o),Number(r.iget(a))),C=Math.max(s,B),E=Math.min(s,B);i[a]=C+Math.log1p(Math.pow(2,E-C))*Q}return g}function iH(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=I==="float32"?"float32":"float64",g=d.zeros(e,n),i=g.data,Q=Math.LOG2E;if(o){let a=A.offset;for(let s=0;s<t;s++){let B=Number(A.data[a+s]),C=Math.max(B,r),E=Math.min(B,r);i[s]=C+Math.log1p(Math.pow(2,E-C))*Q}}else for(let a=0;a<t;a++){let s=Number(A.iget(a)),B=Math.max(s,r),C=Math.min(s,r);i[a]=B+Math.log1p(Math.pow(2,C-B))*Q}return g}function Le(A,r){let I=typeof r=="number"?r:S(r);return R(Q0(S(A),I))}function He(A,r){let I=typeof r=="number"?r:S(r);return R(a0(S(A),I))}function _e(A,r){let I=typeof r=="number"?r:S(r);return R(s0(S(A),I))}function Ye(A){return R(Nh(S(A)))}function ve(A,r){let I=typeof r=="number"?r:S(r);return R(Fh(S(A),I))}function Xe(A){return R(Sh(S(A)))}function Te(A){return R(Gh(S(A)))}function Pe(A){return R(Rh(S(A)))}function Ke(A){return R(kh(S(A)))}function Ve(A){return R(qh(S(A)))}function We(A){return R(Mh(S(A)))}function Oe(A){return R(xh(S(A)))}function Ze(A,r){let I=typeof r=="number"?r:S(r);return R(Jh(S(A),I))}function ze(A,r){let I=typeof r=="number"?r:S(r);return R(Uh(S(A),I))}function je(A){return R(C0(S(A)))}function $e(A){return R(E0(S(A)))}function At(A){return R(u0(S(A)))}function rt(A,r){let I=typeof r=="number"?r:S(r);return R(tg(S(A),I))}function MI(A,r){let I=typeof r=="number"?r:S(r);return R(B0(S(A),I))}var Qs=MI;function It(A,r){let I=typeof r=="number"?r:S(r);return R(Pa(S(A),I))}function et(A){return R(c0(S(A)))}function tt(A){return R(f0(S(A)))}function ot(A){return R(D0(S(A)))}function nt(A){return R(m0(S(A)))}function it(A,r){let I=typeof r=="number"?r:S(r);return Wi(y0(S(A),I))}function gt(A){return R(l0(S(A)))}function Qt(A,r){let I=typeof r=="number"?r:S(r);return R(h0(S(A),I))}function at(A,r){let I=typeof r=="number"?r:S(r);return R(Ka(S(A),I))}function as(A,r){let I=typeof r=="number"?r:S(r);return R(d0(S(A),I))}function ss(A,r){let I=typeof r=="number"?r:S(r);return R(b0(S(A),I))}function Bs(A){return Wi(p0(S(A)))}function Cs(A,r){let I=typeof r=="number"?r:S(r);return R(w0(S(A),I))}function Es(A,r){let I=typeof r=="number"?r:S(r);return R(N0(S(A),I))}function us(A,r){let I=typeof r=="number"?r:S(r);return R(Va(S(A),I))}function cs(A){return Wi(F0(S(A)))}function st(A,r,I){let e=r===null?null:typeof r=="number"?r:S(r),t=I===null?null:typeof I=="number"?I:S(I);return R(S0(S(A),e,t))}function fs(A,r){let I=typeof r=="number"?r:S(r);return R(G0(S(A),I))}function Ds(A,r){let I=typeof r=="number"?r:S(r);return R(R0(S(A),I))}function ms(A,r){let I=typeof r=="number"?r:S(r);return R(k0(S(A),I))}function ys(A,r){let I=typeof r=="number"?r:S(r);return R(q0(S(A),I))}function ls(A,r=0,I,e){return R(M0(S(A),r,I,e))}function hs(A,r,I,e,t){return R(x0(S(A),S(r),S(I),e,t))}function ds(A,r=Math.PI,I=-1,e=2*Math.PI){return R(J0(S(A),r,I,e))}function bs(A){return R(U0(S(A)))}function ps(A){return R(L0(S(A)))}var QH="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",Bt=null;function Lh(){if(Bt)return Bt;let A=atob(QH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Bt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Bt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Bt}function ws(A,r,I){Lh().exports.cos_f64(A,r,I)}function Hh(A,r,I){Lh().exports.cos_f32(A,r,I)}var aH=64,sH={float64:ws,float32:Hh};function _h(A){if(!A.isCContiguous)return null;let r=A.size;if(r<aH*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=sH[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);ws(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var BH="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BEEBaiEEIAZEAAAAAAAA8D+gIgZEMWNiGmG00D2iIQggACAGRAAAQFT7Ifm/oqAhBwwBCyAEQX9qIQQgBkQAAAAAAADwv6AiBkQxY2IaYbTQPaIhCCAAIAZEAABAVPsh+b+ioCEHCyABIAcgCKEiADkDAAJAIAC9QoCAgICAgID4/wCDQoCAgICAgICIP1oNACABIAcgBkQAAGAaYbTQPaIiAKEiCSAGRHNwAy6KGaM7oiAHIAmhIAChoSIIoSIAOQMAAkAgAL1CgICAgICAgID/AINC//////////88WA0AIAkhBwwBCyABIAkgBkQAAAAuihmjO6IiAKEiByAGRMFJICWag3s5oiAJIAehIAChoSIIoSIAOQMACyABIAcgAKEgCKE5AwgMAwsgASAHIAihIgA5AwACQCAAvUKAgICAgICA+P8Ag0KAgICAgICAiD9aDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAC9QoCAgICAgICA/wCDQv//////////PFgNACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMIDAILIAEgByAIoSIAOQMAAkAgBUEUdiIKIAC9QjSIp0H/D3FrQRBMDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAogAL1CNIinQf8PcWtBMk4NACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMIDAELIAEgByAIoSIAOQMAAkAgBUEUdiIKIAC9QjSIp0H/D3FrQRBMDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAogAL1CNIinQf8PcWtBMk4NACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMICyACQTBqJICAgIAAIAQL4AcIAX8CfgJ8AnsBfwF8An8BfCOAgICAAEEQ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",Ct=null;function Yh(){if(Ct)return Ct;let A=atob(BH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ct=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ct.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ct}function Ns(A,r,I){Yh().exports.tan_f64(A,r,I)}function vh(A,r,I){Yh().exports.tan_f32(A,r,I)}var CH=64,EH={float64:Ns,float32:vh};function Xh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<CH*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=EH[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);Ns(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var uH="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",Et=null;function gg(){if(Et)return Et;let A=atob(uH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Et=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Et.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Et}function Fs(A,r,I){gg().exports.arcsin_f64(A,r,I)}function Th(A,r,I){gg().exports.arcsin_f32(A,r,I)}function Ph(A,r,I){gg().exports.arcsin_i64(A,r,I)}function Kh(A,r,I){gg().exports.arcsin_u64(A,r,I)}var cH=64,fH={float64:Fs,float32:Th};function Vh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<cH*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=fH[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let s=A.offset,B=A.data.subarray(s,s+r),C=q(B),E=_(r*8);(I==="int64"?Ph:Kh)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);Fs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var DH="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",ut=null;function Qg(){if(ut)return ut;let A=atob(DH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ut=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ut.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ut}function Ss(A,r,I){Qg().exports.arccos_f64(A,r,I)}function Wh(A,r,I){Qg().exports.arccos_f32(A,r,I)}function Oh(A,r,I){Qg().exports.arccos_i64(A,r,I)}function Zh(A,r,I){Qg().exports.arccos_u64(A,r,I)}var mH=64,yH={float64:Ss,float32:Wh};function zh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<mH*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=yH[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let s=A.offset,B=A.data.subarray(s,s+r),C=q(B),E=_(r*8);(I==="int64"?Oh:Zh)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);Ss(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var lH="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",ct=null;function ag(){if(ct)return ct;let A=atob(lH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ct=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ct.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ct}function Gs(A,r,I){ag().exports.arctan_f64(A,r,I)}function jh(A,r,I){ag().exports.arctan_f32(A,r,I)}function $h(A,r,I){ag().exports.arctan_i64(A,r,I)}function Ad(A,r,I){ag().exports.arctan_u64(A,r,I)}var hH=64,dH={float64:Gs,float32:jh};function rd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<hH*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=dH[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let s=A.offset,B=A.data.subarray(s,s+r),C=q(B),E=_(r*8);(I==="int64"?$h:Ad)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);Gs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var bH="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",ft=null;function nr(){if(ft)return ft;let A=atob(bH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ft=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ft.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ft}function Id(A,r,I,e){nr().exports.hypot_f64(A,r,I,e)}function ed(A,r,I,e){nr().exports.hypot_scalar_f64(A,r,I,e)}function td(A,r,I,e){nr().exports.hypot_f32(A,r,I,e)}function od(A,r,I,e){nr().exports.hypot_scalar_f32(A,r,I,e)}function Rs(A,r,I,e){nr().exports.hypot_i64(A,r,I,e)}function ks(A,r,I,e){nr().exports.hypot_scalar_i64(A,r,I,BigInt(Math.round(e)))}function qs(A,r,I,e){nr().exports.hypot_i32(A,r,I,e)}function Ms(A,r,I,e){nr().exports.hypot_scalar_i32(A,r,I,e)}function xs(A,r,I,e){nr().exports.hypot_i16(A,r,I,e)}function Js(A,r,I,e){nr().exports.hypot_scalar_i16(A,r,I,e)}function Us(A,r,I,e){nr().exports.hypot_i8(A,r,I,e)}function Ls(A,r,I,e){nr().exports.hypot_scalar_i8(A,r,I,e)}var nd=64,pH={float64:Id,float32:td},wH={float64:ed,float32:od},NH={int64:Rs,uint64:Rs,int32:qs,uint32:qs,int16:xs,uint16:xs,int8:Us,uint8:Us},FH={int64:ks,uint64:ks,int32:Ms,uint32:Ms,int16:Js,uint16:Js,int8:Ls,uint8:Ls},sg={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function id(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<nd*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=pH[e];if(t){let n=sg[e],g=n.BYTES_PER_ELEMENT;J(I*g*3),U();let i=A.data.subarray(A.offset,A.offset+I),Q=r.data.subarray(r.offset,r.offset+I),a=q(i),s=q(Q),B=_(I*g);t(a,s,B,I);let C=v(B,I,n);return d.fromData(C,Array.from(A.shape),e)}let o=NH[e];if(o){let g=sg[e].BYTES_PER_ELEMENT,i=8;J(I*g*2+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=r.data.subarray(r.offset,r.offset+I),s=q(Q),B=q(a),C=_(I*i);o(s,B,C,I);let E=v(C,I,Float64Array);return d.fromData(E,Array.from(A.shape),"float64")}return null}function gd(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<nd*Y.thresholdMultiplier)return null;let e=A.dtype,t=wH[e];if(t){let n=sg[e],g=n.BYTES_PER_ELEMENT;J(I*g*2),U();let i=A.data.subarray(A.offset,A.offset+I),Q=q(i),a=_(I*g);t(Q,a,I,r);let s=v(a,I,n);return d.fromData(s,Array.from(A.shape),e)}let o=FH[e];if(o){let g=sg[e].BYTES_PER_ELEMENT,i=8;J(I*g+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=q(Q),s=_(I*i);o(a,s,I,r);let B=v(s,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}return null}function Bd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],s=g[(i+Q)*2+1];n[Q*2]=Math.sin(a)*Math.cosh(s),n[Q*2+1]=Math.cos(a)*Math.sinh(s)}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im;n[g*2]=Math.sin(Q)*Math.cosh(a),n[g*2+1]=Math.cos(Q)*Math.sinh(a)}return o}return mA(A,Math.sin,!1)}function Cd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let s=i[(Q+a)*2],B=i[(Q+a)*2+1];g[a*2]=Math.cos(s)*Math.cosh(B),g[a*2+1]=-Math.sin(s)*Math.sinh(B)}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,s=Q.im;g[i*2]=Math.cos(a)*Math.cosh(s),g[i*2+1]=-Math.sin(a)*Math.sinh(s)}return n}let I=_h(A);return I||mA(A,Math.cos,!1)}function Ed(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let s=i[(Q+a)*2],B=i[(Q+a)*2+1],C=Math.cos(2*s)+Math.cosh(2*B);g[a*2]=Math.sin(2*s)/C,g[a*2+1]=Math.sinh(2*B)/C}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,s=Q.im,B=Math.cos(2*a)+Math.cosh(2*s);g[i*2]=Math.sin(2*a)/B,g[i*2+1]=Math.sinh(2*s)/B}return n}let I=Xh(A);return I||mA(A,Math.tan,!1)}function ud(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let s=i[(Q+a)*2],B=i[(Q+a)*2+1],[C,E]=Qd(s,B);g[a*2]=C,g[a*2+1]=E}}else for(let i=0;i<t;i++){let Q=A.iget(i),[a,s]=Qd(Q.re,Q.im);g[i*2]=a,g[i*2+1]=s}return n}let I=Vh(A);return I||mA(A,Math.asin,!1)}function Qd(A,r){let I=-r,e=A,t=A*A-r*r,o=2*A*r,n=1-t,g=-o,i=Math.sqrt(n*n+g*g),Q=Math.sqrt((i+n)/2),a=(g>=0?1:-1)*Math.sqrt((i-n)/2),s=I+Q,B=e+a,C=Math.sqrt(s*s+B*B),E=Math.log(C),D=Math.atan2(B,s),m=-E;return Math.abs(r)<1e-15&&A>1&&(m=-m),[D,m]}function cd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let s=i[(Q+a)*2],B=i[(Q+a)*2+1],[C,E]=ad(s,B);g[a*2]=C,g[a*2+1]=E}}else for(let i=0;i<t;i++){let Q=A.iget(i),[a,s]=ad(Q.re,Q.im);g[i*2]=a,g[i*2+1]=s}return n}let I=zh(A);return I||mA(A,Math.acos,!1)}function ad(A,r){let I=A*A-r*r,e=2*A*r,t=1-I,o=-e,n=Math.sqrt(t*t+o*o),g=Math.sqrt((n+t)/2),Q=-((o>=0?1:-1)*Math.sqrt((n-t)/2)),a=g,s=A+Q,B=r+a,C=Math.sqrt(s*s+B*B),E=Math.log(C),D=Math.atan2(B,s),m=-E;return Math.abs(r)<1e-15&&A>1&&(m=-m),[D,m]}function fd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let s=i[(Q+a)*2],B=i[(Q+a)*2+1],[C,E]=sd(s,B);g[a*2]=C,g[a*2+1]=E}}else for(let i=0;i<t;i++){let Q=A.iget(i),[a,s]=sd(Q.re,Q.im);g[i*2]=a,g[i*2+1]=s}return n}let I=rd(A);return I||mA(A,Math.atan,!1)}function sd(A,r){let I=-r,e=A,t=1-I,o=-e,n=1+I,g=e,i=n*n+g*g,Q=(t*n+o*g)/i,a=(o*n-t*g)/i,s=Math.sqrt(Q*Q+a*a),B=Math.log(s);return[-Math.atan2(a,Q)/2,B/2]}function Dd(A,r){return eA(A.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r=="number"?GH(A,r):SH(A,r)}function SH(A,r){let I=Array.from(A.shape),e=A.size,t=A.dtype,o=r.dtype,n=t==="float32"&&o==="float32"?"float32":"float64",g=d.zeros(I,n),i=g.data,Q=A.isCContiguous,a=r.isCContiguous;if(Q&&a){let s=A.offset,B=r.offset;for(let C=0;C<e;C++){let E=Number(A.data[s+C]),u=Number(r.data[B+C]);i[C]=Math.atan2(E,u)}}else if(Q){let s=A.offset;for(let B=0;B<e;B++){let C=Number(A.data[s+B]),E=Number(r.iget(B));i[B]=Math.atan2(C,E)}}else if(a){let s=r.offset;for(let B=0;B<e;B++){let C=Number(A.iget(B)),E=Number(r.data[s+B]);i[B]=Math.atan2(C,E)}}else for(let s=0;s<e;s++){let B=Number(A.iget(s)),C=Number(r.iget(s));i[s]=Math.atan2(B,C)}return g}function GH(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=I==="float32"?"float32":"float64",n=d.zeros(e,o),g=n.data;if(A.isCContiguous){let Q=A.data,a=A.offset;if(L(I))for(let s=0;s<t;s++)g[s]=Math.atan2(Number(Q[a+s]),r);else for(let s=0;s<t;s++)g[s]=Math.atan2(Number(Q[a+s]),r)}else for(let Q=0;Q<t;Q++)g[Q]=Math.atan2(Number(A.iget(Q)),r);return n}function md(A,r){return eA(A.dtype,"hypot","hypot is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"hypot","hypot is only defined for real numbers."),typeof r=="number"?kH(A,r):RH(A,r)}function RH(A,r){let I=id(A,r);if(I)return I;let e=Array.from(A.shape),t=A.size,o=A.dtype,n=r.dtype,g=o==="float32"&&n==="float32"?"float32":"float64",i=d.zeros(e,g),Q=i.data,a=A.isCContiguous,s=r.isCContiguous;if(a&&s){let B=A.offset,C=r.offset;for(let E=0;E<t;E++){let u=Number(A.data[B+E]),D=Number(r.data[C+E]);Q[E]=Math.hypot(u,D)}}else if(a){let B=A.offset;for(let C=0;C<t;C++){let E=Number(A.data[B+C]),u=Number(r.iget(C));Q[C]=Math.hypot(E,u)}}else if(s){let B=r.offset;for(let C=0;C<t;C++){let E=Number(A.iget(C)),u=Number(r.data[B+C]);Q[C]=Math.hypot(E,u)}}else for(let B=0;B<t;B++){let C=Number(A.iget(B)),E=Number(r.iget(B));Q[B]=Math.hypot(C,E)}return i}function kH(A,r){let I=gd(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.size,n=e==="float32"?"float32":"float64",g=d.zeros(t,n),i=g.data;if(A.isCContiguous){let a=A.data,s=A.offset;if(L(e))for(let B=0;B<o;B++)i[B]=Math.hypot(Number(a[s+B]),r);else for(let B=0;B<o;B++)i[B]=Math.hypot(Number(a[s+B]),r)}else for(let a=0;a<o;a++)i[a]=Math.hypot(Number(A.iget(a)),r);return g}function Hs(A){eA(A.dtype,"degrees","degrees is only defined for real numbers.");let r=180/Math.PI;return mA(A,I=>I*r,!1)}function _s(A){eA(A.dtype,"radians","radians is only defined for real numbers.");let r=Math.PI/180;return mA(A,I=>I*r,!1)}function yd(A){return _s(A)}function ld(A){return Hs(A)}var MH="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",Dt=null;function Bg(){if(Dt)return Dt;let A=atob(MH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Dt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Dt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Dt}function Ys(A,r,I){Bg().exports.sinh_f64(A,r,I)}function hd(A,r,I){Bg().exports.sinh_f32(A,r,I)}function dd(A,r,I){Bg().exports.sinh_i64(A,r,I)}function bd(A,r,I){Bg().exports.sinh_u64(A,r,I)}var xH=64,JH={float64:Ys,float32:hd};function pd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<xH*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=JH[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let s=A.offset,B=A.data.subarray(s,s+r),C=q(B),E=_(r*8);(I==="int64"?dd:bd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);Ys(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var UH="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",mt=null;function Cg(){if(mt)return mt;let A=atob(UH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);mt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=mt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),mt}function vs(A,r,I){Cg().exports.cosh_f64(A,r,I)}function wd(A,r,I){Cg().exports.cosh_f32(A,r,I)}function Nd(A,r,I){Cg().exports.cosh_i64(A,r,I)}function Fd(A,r,I){Cg().exports.cosh_u64(A,r,I)}var LH=64,HH={float64:vs,float32:wd};function Sd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<LH*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=HH[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let s=A.offset,B=A.data.subarray(s,s+r),C=q(B),E=_(r*8);(I==="int64"?Nd:Fd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);vs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var _H="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",yt=null;function Eg(){if(yt)return yt;let A=atob(_H),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);yt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=yt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),yt}function Xs(A,r,I){Eg().exports.tanh_f64(A,r,I)}function Gd(A,r,I){Eg().exports.tanh_f32(A,r,I)}function Rd(A,r,I){Eg().exports.tanh_i64(A,r,I)}function kd(A,r,I){Eg().exports.tanh_u64(A,r,I)}var YH=64,vH={float64:Xs,float32:Gd};function qd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<YH*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=vH[I];if(e){let s=I==="float32",B=s?4:8,C=s?Float32Array:Float64Array;J(r*B*2),U();let E=A.offset,u=A.data.subarray(E,E+r),D=q(u),m=_(r*B);e(D,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let s=A.offset,B=A.data.subarray(s,s+r),C=q(B),E=_(r*8);(I==="int64"?Rd:kd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let s=0;s<r;s++)g[s]=Number(n[o+s]);else for(let s=0;s<r;s++)g[s]=n[o+s];let i=q(g),Q=_(r*t);Xs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}function Md(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.data,n=d.zeros(e,r),g=n.data;for(let i=0;i<t;i++){let Q=o[i*2],a=o[i*2+1];g[i*2]=Math.sinh(Q)*Math.cos(a),g[i*2+1]=Math.cosh(Q)*Math.sin(a)}return n}let I=pd(A);return I||mA(A,Math.sinh,!1)}function xd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.data,n=d.zeros(e,r),g=n.data;for(let i=0;i<t;i++){let Q=o[i*2],a=o[i*2+1];g[i*2]=Math.cosh(Q)*Math.cos(a),g[i*2+1]=Math.sinh(Q)*Math.sin(a)}return n}let I=Sd(A);return I||mA(A,Math.cosh,!1)}function Jd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.data,n=d.zeros(e,r),g=n.data;for(let i=0;i<t;i++){let Q=o[i*2],a=o[i*2+1],s=Math.cosh(2*Q)+Math.cos(2*a);g[i*2]=Math.sinh(2*Q)/s,g[i*2+1]=Math.sin(2*a)/s}return n}let I=qd(A);return I||mA(A,Math.tanh,!1)}function Ud(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.data,o=d.zeros(I,r),n=o.data;for(let g=0;g<e;g++){let i=t[g*2],Q=t[g*2+1],a=i*i-Q*Q,s=2*i*Q,B=a+1,C=s,E=Math.sqrt(B*B+C*C),u=Math.sqrt((E+B)/2),D=(C>=0?1:-1)*Math.sqrt((E-B)/2),m=i+u,c=Q+D,f=Math.sqrt(m*m+c*c);n[g*2]=Math.log(f),n[g*2+1]=Math.atan2(c,m)}return o}return mA(A,Math.asinh,!1)}function Ld(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.data,o=d.zeros(I,r),n=o.data;for(let g=0;g<e;g++){let i=t[g*2],Q=t[g*2+1],a=i*i-Q*Q,s=2*i*Q,B=a-1,C=s,E=Math.sqrt(B*B+C*C),u=Math.sqrt((E+B)/2),D=(C>=0?1:-1)*Math.sqrt((E-B)/2),m=i+u,c=Q+D,f=Math.sqrt(m*m+c*c),y=Math.log(f),l=Math.atan2(c,m);Math.abs(Q)<1e-15&&i<1&&(l=-l),n[g*2]=y,n[g*2+1]=l}return o}return mA(A,Math.acosh,!1)}function Hd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.data,o=d.zeros(I,r),n=o.data;for(let g=0;g<e;g++){let i=t[g*2],Q=t[g*2+1],a=1+i,s=Q,B=1-i,C=-Q,E=B*B+C*C,u=(a*B+s*C)/E,D=(s*B-a*C)/E,m=Math.sqrt(u*u+D*D),c=Math.log(m),f=Math.atan2(D,u);n[g*2]=c/2,n[g*2+1]=f/2}return o}return mA(A,Math.atanh,!1)}function lt(A){return R(Bd(S(A)))}function ht(A){return R(Cd(S(A)))}function dt(A){return R(Ed(S(A)))}function bt(A){return R(ud(S(A)))}function pt(A){return R(cd(S(A)))}function wt(A){return R(fd(S(A)))}function Nt(A,r){let I=typeof r=="number"?r:S(r);return R(Dd(S(A),I))}function Ft(A,r){let I=typeof r=="number"?r:S(r);return R(md(S(A),I))}function St(A){return R(Hs(S(A)))}function Gt(A){return R(_s(S(A)))}function Ts(A){return R(yd(S(A)))}function Ps(A){return R(ld(S(A)))}function Rt(A){return R(Md(S(A)))}function kt(A){return R(xd(S(A)))}function qt(A){return R(Jd(S(A)))}function Mt(A){return R(Ud(S(A)))}function xt(A){return R(Ld(S(A)))}function Jt(A){return R(Hd(S(A)))}var TH="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",Ut=null;function Xr(){if(Ut)return Ut;let A=atob(TH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ut=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ut.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ut}function _d(A,r,I,e,t,o){Xr().exports.matmul_f64(A,r,I,e,t,o)}function Yd(A,r,I,e,t,o){Xr().exports.matmul_f32(A,r,I,e,t,o)}function vd(A,r,I,e,t,o){Xr().exports.matmul_c128(A,r,I,e,t,o)}function Xd(A,r,I,e,t,o){Xr().exports.matmul_c64(A,r,I,e,t,o)}function Ks(A,r,I,e,t,o){Xr().exports.matmul_i64(A,r,I,e,t,o)}function Vs(A,r,I,e,t,o){Xr().exports.matmul_i32(A,r,I,e,t,o)}function Ws(A,r,I,e,t,o){Xr().exports.matmul_i16(A,r,I,e,t,o)}function Os(A,r,I,e,t,o){Xr().exports.matmul_i8(A,r,I,e,t,o)}var PH=256,KH={float64:_d,float32:Yd,complex128:vd,complex64:Xd,int64:Ks,uint64:Ks,int32:Vs,uint32:Vs,int16:Ws,uint16:Ws,int8:Os,uint8:Os},Vd={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},VH={complex128:2,complex64:2};function Td(A,r,I,e,t,o,n,g=1){let i=r.BYTES_PER_ELEMENT,Q=t*o*g*i,a=o*n*g*i,s=t*n*g*i;J(Q+a+s),U();let B=q(I),C=q(e),E=_(s);return A(B,C,E,t,n,o),v(E,t*n*g,r)}function Wd(A,r){if(A.ndim===0||r.ndim===0)return null;let I=IA(A.dtype,r.dtype);if(I==="bool")return null;let e=I,t=KH[e],o=Vd[e];if(!t||!o||!A.isCContiguous||!r.isCContiguous)return null;let n=VH[e]??1,g=A.ndim===1,i=r.ndim===1,Q=g?[1,A.shape[0]]:Array.from(A.shape),a=i?[r.shape[0],1]:Array.from(r.shape),s=Q.length,B=a.length,C=Q[s-2],E=Q[s-1],u=a[B-2],D=a[B-1];if(E!==u||C*E+E*D<PH*Y.thresholdMultiplier)return null;let c=Pd(A,e,n),f=Pd(r,e,n);if(s===2&&B===2){let H=Td(t,o,c,f,C,E,D,n),X;return g&&i?X=[]:g?X=[D]:i?X=[C]:X=[C,D],d.fromData(H,X,e)}let y=Q.slice(0,s-2),l=a.slice(0,B-2),h=WH(y,l),b=h.reduce((H,X)=>H*X,1),p=C*E*n,w=E*D*n,N=C*D*n,F=new o(b*N);for(let H=0;H<b;H++){let X=OH(H,h),P=Kd(X,y),Z=Kd(X,l),V=P*p,$=Z*w,O=c.subarray(V,V+p),z=f.subarray($,$+w),rA=Td(t,o,O,z,C,E,D,n);new Uint8Array(F.buffer,H*N*o.BYTES_PER_ELEMENT,rA.byteLength).set(new Uint8Array(rA.buffer,rA.byteOffset,rA.byteLength))}let G=[...h,C,D],x=d.fromData(F,G,e);return g&&i?Zs(x,[...h]):g?Zs(x,[...h,D]):i?Zs(x,[...h,C]):x}function Pd(A,r,I){let e=A.data,t=A.offset,o=A.size,n=o*I;if(A.dtype===r&&t===0)return e.subarray(0,n);if(A.dtype===r){let Q=t*I;return e.subarray(Q,Q+n)}let g=Vd[r];if(!g)throw new Error(`No TypedArray constructor for dtype ${r}`);let i=new g(n);for(let Q=0;Q<o;Q++)i[Q]=Number(A.iget(Q));return i}function Zs(A,r){return d.fromData(A.data,r,A.dtype)}function WH(A,r){let I=Math.max(A.length,r.length),e=[];for(let t=0;t<I;t++){let o=t<I-A.length?1:A[t-(I-A.length)],n=t<I-r.length?1:r[t-(I-r.length)];if(o!==n&&o!==1&&n!==1)throw new Error(`matmul: batch shapes not broadcastable: [${A}] vs [${r}]`);e.push(Math.max(o,n))}return e}function OH(A,r){let I=new Array(r.length),e=A;for(let t=r.length-1;t>=0;t--)I[t]=e%r[t],e=Math.floor(e/r[t]);return I}function Kd(A,r){let I=A.length-r.length,e=0,t=1;for(let o=r.length-1;o>=0;o--){let n=r[o],g=A[o+I];e+=(n===1?0:g)*t,t*=n}return e}var ZH="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",Lt=null;function Tr(){if(Lt)return Lt;let A=atob(ZH),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Lt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Lt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Lt}function Od(A,r,I,e,t,o){Tr().exports.inner_f64(A,r,I,e,t,o)}function Zd(A,r,I,e,t,o){Tr().exports.inner_f32(A,r,I,e,t,o)}function zd(A,r,I,e,t,o){Tr().exports.inner_c128(A,r,I,e,t,o)}function jd(A,r,I,e,t,o){Tr().exports.inner_c64(A,r,I,e,t,o)}function zs(A,r,I,e,t,o){Tr().exports.inner_i64(A,r,I,e,t,o)}function js(A,r,I,e,t,o){Tr().exports.inner_i32(A,r,I,e,t,o)}function $s(A,r,I,e,t,o){Tr().exports.inner_i16(A,r,I,e,t,o)}function AB(A,r,I,e,t,o){Tr().exports.inner_i8(A,r,I,e,t,o)}var zH=256,jH={float64:Od,float32:Zd,complex128:zd,complex64:jd,int64:zs,uint64:zs,int32:js,uint32:js,int16:$s,uint16:$s,int8:AB,uint8:AB},$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},A9={complex128:2,complex64:2};function $d(A,r){if(A.ndim===0||r.ndim===0||!A.isCContiguous||!r.isCContiguous)return null;let I=IA(A.dtype,r.dtype),e=jH[I],t=$H[I];if(!e||!t)return null;let o=A9[I]??1,n=A.shape[A.ndim-1],g=r.shape[r.ndim-1];if(n!==g)return null;let i=A.ndim===1?1:A.shape.slice(0,-1).reduce((h,b)=>h*b,1),Q=r.ndim===1?1:r.shape.slice(0,-1).reduce((h,b)=>h*b,1);if(i*n+Q*n<zH*Y.thresholdMultiplier)return null;let s=t.BYTES_PER_ELEMENT,B=i*n*o*s,C=Q*n*o*s,E=i*Q*o*s;J(B+C+E),U();let u=A.data.subarray(A.offset*o,A.offset*o+i*n*o),D=r.data.subarray(r.offset*o,r.offset*o+Q*n*o),m=q(u),c=q(D),f=_(E);e(m,c,f,i,Q,n);let y=v(f,i*Q*o,t);if(A.ndim===1&&r.ndim===1)return o===2?new T(Number(y[0]),Number(y[1])):y[0];let l=[...A.shape.slice(0,-1),...r.shape.slice(0,-1)];return d.fromData(y,l,I)}var r9="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",Ht=null;function Pr(){if(Ht)return Ht;let A=atob(r9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ht=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ht.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ht}function Ab(A,r,I,e){Pr().exports.dot_f64(A,r,I,e)}function rb(A,r,I,e){Pr().exports.dot_f32(A,r,I,e)}function Ib(A,r,I,e){Pr().exports.dot_c128(A,r,I,e)}function eb(A,r,I,e){Pr().exports.dot_c64(A,r,I,e)}function rB(A,r,I,e){Pr().exports.dot_i64(A,r,I,e)}function IB(A,r,I,e){Pr().exports.dot_i32(A,r,I,e)}function eB(A,r,I,e){Pr().exports.dot_i16(A,r,I,e)}function tB(A,r,I,e){Pr().exports.dot_i8(A,r,I,e)}var I9=128,e9={float64:Ab,float32:rb,complex128:Ib,complex64:eb,int64:rB,uint64:rB,int32:IB,uint32:IB,int16:eB,uint16:eB,int8:tB,uint8:tB},t9={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},o9={complex128:2,complex64:2};function ug(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<I9*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=e9[e],o=t9[e];if(!t||!o)return null;let n=o9[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n*g,Q=I*n*g,a=1*n*g;J(i+Q+a),U();let s=A.data.subarray(A.offset*n,A.offset*n+I*n),B=r.data.subarray(r.offset*n,r.offset*n+I*n),C=q(s),E=q(B),u=_(a);t(C,E,u,I);let D=v(u,1*n,o);return n===2?new T(Number(D[0]),Number(D[1])):Number(D[0])}var n9="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",_t=null;function Kr(){if(_t)return _t;let A=atob(n9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);_t=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=_t.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),_t}function tb(A,r,I,e,t){Kr().exports.matvec_f64(A,r,I,e,t)}function ob(A,r,I,e,t){Kr().exports.matvec_f32(A,r,I,e,t)}function nb(A,r,I,e,t){Kr().exports.matvec_c128(A,r,I,e,t)}function ib(A,r,I,e,t){Kr().exports.matvec_c64(A,r,I,e,t)}function oB(A,r,I,e,t){Kr().exports.matvec_i64(A,r,I,e,t)}function nB(A,r,I,e,t){Kr().exports.matvec_i32(A,r,I,e,t)}function iB(A,r,I,e,t){Kr().exports.matvec_i16(A,r,I,e,t)}function gB(A,r,I,e,t){Kr().exports.matvec_i8(A,r,I,e,t)}var i9=128,g9={float64:tb,float32:ob,complex128:nb,complex64:ib,int64:oB,uint64:oB,int32:nB,uint32:nB,int16:iB,uint16:iB,int8:gB,uint8:gB},Q9={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},a9={complex128:2,complex64:2};function QB(A,r){if(A.ndim!==2||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],e=A.shape[1];if(e!==r.shape[0]||I*e<i9*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=g9[t],n=Q9[t];if(!o||!n)return null;let g=a9[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*e*g*i,a=e*g*i,s=I*g*i;J(Q+a+s),U();let B=A.data.subarray(A.offset*g,A.offset*g+I*e*g),C=r.data.subarray(r.offset*g,r.offset*g+e*g),E=q(B),u=q(C),D=_(s);o(E,u,D,I,e);let m=v(D,I*g,n);return d.fromData(m,[I],t)}var s9="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",Yt=null;function Vr(){if(Yt)return Yt;let A=atob(s9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Yt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Yt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Yt}function gb(A,r,I,e,t){Vr().exports.vecmat_f64(A,r,I,e,t)}function Qb(A,r,I,e,t){Vr().exports.vecmat_f32(A,r,I,e,t)}function ab(A,r,I,e,t){Vr().exports.vecmat_c128(A,r,I,e,t)}function sb(A,r,I,e,t){Vr().exports.vecmat_c64(A,r,I,e,t)}function aB(A,r,I,e,t){Vr().exports.vecmat_i64(A,r,I,e,t)}function sB(A,r,I,e,t){Vr().exports.vecmat_i32(A,r,I,e,t)}function BB(A,r,I,e,t){Vr().exports.vecmat_i16(A,r,I,e,t)}function CB(A,r,I,e,t){Vr().exports.vecmat_i8(A,r,I,e,t)}var B9=128,C9={float64:gb,float32:Qb,complex128:ab,complex64:sb,int64:aB,uint64:aB,int32:sB,uint32:sB,int16:BB,uint16:BB,int8:CB,uint8:CB},E9={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},u9={complex128:2,complex64:2};function EB(A,r){if(A.ndim!==1||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=r.shape[0],e=r.shape[1];if(I!==A.shape[0]||I*e<B9*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=C9[t],n=E9[t];if(!o||!n)return null;let g=u9[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*g*i,a=I*e*g*i,s=e*g*i;J(Q+a+s),U();let B=A.data.subarray(A.offset*g,A.offset*g+I*g),C=r.data.subarray(r.offset*g,r.offset*g+I*e*g),E=q(B),u=q(C),D=_(s);o(E,u,D,I,e);let m=v(D,e*g,n);return d.fromData(m,[e],t)}var c9="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",vt=null;function Wr(){if(vt)return vt;let A=atob(c9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);vt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=vt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),vt}function Bb(A,r,I,e,t){Wr().exports.outer_f64(A,r,I,e,t)}function Cb(A,r,I,e,t){Wr().exports.outer_f32(A,r,I,e,t)}function Eb(A,r,I,e,t){Wr().exports.outer_c128(A,r,I,e,t)}function ub(A,r,I,e,t){Wr().exports.outer_c64(A,r,I,e,t)}function uB(A,r,I,e,t){Wr().exports.outer_i64(A,r,I,e,t)}function cB(A,r,I,e,t){Wr().exports.outer_i32(A,r,I,e,t)}function fB(A,r,I,e,t){Wr().exports.outer_i16(A,r,I,e,t)}function DB(A,r,I,e,t){Wr().exports.outer_i8(A,r,I,e,t)}var f9=128,D9={float64:Bb,float32:Cb,complex128:Eb,complex64:ub,int64:uB,uint64:uB,int32:cB,uint32:cB,int16:fB,uint16:fB,int8:DB,uint8:DB},m9={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},y9={complex128:2,complex64:2};function cb(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,e=r.size;if(I+e<f9*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=D9[t],n=m9[t];if(!o||!n)return null;let g=y9[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*g*i,a=e*g*i,s=I*e*g*i;J(Q+a+s),U();let B=A.data.subarray(A.offset*g,A.offset*g+I*g),C=r.data.subarray(r.offset*g,r.offset*g+e*g),E=q(B),u=q(C),D=_(s);o(E,u,D,I,e);let m=v(D,I*e*g,n);return d.fromData(m,[I,e],t)}var l9="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",Xt=null;function Or(){if(Xt)return Xt;let A=atob(l9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Xt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Xt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Xt}function fb(A,r,I,e,t){Or().exports.vecdot_f64(A,r,I,e,t)}function Db(A,r,I,e,t){Or().exports.vecdot_f32(A,r,I,e,t)}function mb(A,r,I,e,t){Or().exports.vecdot_c128(A,r,I,e,t)}function yb(A,r,I,e,t){Or().exports.vecdot_c64(A,r,I,e,t)}function mB(A,r,I,e,t){Or().exports.vecdot_i64(A,r,I,e,t)}function yB(A,r,I,e,t){Or().exports.vecdot_i32(A,r,I,e,t)}function lB(A,r,I,e,t){Or().exports.vecdot_i16(A,r,I,e,t)}function hB(A,r,I,e,t){Or().exports.vecdot_i8(A,r,I,e,t)}var h9=256,d9={float64:fb,float32:Db,complex128:mb,complex64:yb,int64:mB,uint64:mB,int32:yB,uint32:yB,int16:lB,uint16:lB,int8:hB,uint8:hB},b9={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},p9={complex128:2,complex64:2};function lb(A,r){if(A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],e=A.shape[1];if(I!==r.shape[0]||e!==r.shape[1]||I*e<h9*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=d9[t],n=b9[t];if(!o||!n)return null;let g=p9[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*e*g*i,a=I*e*g*i,s=I*g*i;J(Q+a+s),U();let B=A.data.subarray(A.offset*g,A.offset*g+I*e*g),C=r.data.subarray(r.offset*g,r.offset*g+I*e*g),E=q(B),u=q(C),D=_(s);o(E,u,D,I,e);let m=v(D,I*g,n);return d.fromData(m,[I],t)}var w9="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAAYJAX8BQYCAwAALBxgCCXZkb3RfYzEyOAAACHZkb3RfYzY0AAEKsQICngEBBnwCQAJAIAMNAEQAAAAAAAAAACEERAAAAAAAAAAAIQUMAQtEAAAAAAAAAAAhBUQAAAAAAAAAACEEA0AgBCAAKwMAIgYgAUEIaisDACIHoiAAQQhqKwMAIgggASsDACIJoqGgIQQgBSAGIAmiIAggB6KgoCEFIAFBEGohASAAQRBqIQAgA0F/aiIDDQALCyACIAQ5AwggAiAFOQMAC44BAQZ9AkACQCADDQBDAAAAACEEQwAAAAAhBQwBC0MAAAAAIQVDAAAAACEEA0AgBCAAKgIAIgYgAUEEaioCACIHlCAAQQRqKgIAIgggASoCACIJlJOSIQQgBSAGIAmUIAggB5SSkiEFIAFBCGohASAAQQhqIQAgA0F/aiIDDQALCyACIAQ4AgQgAiAFOAIACw==",Tt=null;function hb(){if(Tt)return Tt;let A=atob(w9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Tt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Tt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Tt}function db(A,r,I,e){hb().exports.vdot_c128(A,r,I,e)}function bb(A,r,I,e){hb().exports.vdot_c64(A,r,I,e)}var N9=64,F9={complex128:db,complex64:bb},S9={complex128:Float64Array,complex64:Float32Array};function pb(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<N9*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=F9[e],o=S9[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*2*n,i=I*2*n,Q=2*n;J(g+i+Q),U();let a=A.data.subarray(A.offset*2,A.offset*2+I*2),s=r.data.subarray(r.offset*2,r.offset*2+I*2),B=q(a),C=q(s),E=_(Q);t(B,C,E,I);let u=v(E,2,o);return new T(Number(u[0]),Number(u[1]))}var G9="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",Pt=null;function Zr(){if(Pt)return Pt;let A=atob(G9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Pt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Pt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Pt}function wb(A,r,I,e,t,o,n){Zr().exports.kron_f64(A,r,I,e,t,o,n)}function Nb(A,r,I,e,t,o,n){Zr().exports.kron_f32(A,r,I,e,t,o,n)}function Fb(A,r,I,e,t,o,n){Zr().exports.kron_c128(A,r,I,e,t,o,n)}function Sb(A,r,I,e,t,o,n){Zr().exports.kron_c64(A,r,I,e,t,o,n)}function dB(A,r,I,e,t,o,n){Zr().exports.kron_i64(A,r,I,e,t,o,n)}function bB(A,r,I,e,t,o,n){Zr().exports.kron_i32(A,r,I,e,t,o,n)}function pB(A,r,I,e,t,o,n){Zr().exports.kron_i16(A,r,I,e,t,o,n)}function wB(A,r,I,e,t,o,n){Zr().exports.kron_i8(A,r,I,e,t,o,n)}var R9=64,k9={float64:wb,float32:Nb,complex128:Fb,complex64:Sb,int64:dB,uint64:dB,int32:bB,uint32:bB,int16:pB,uint16:pB,int8:wB,uint8:wB},q9={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},M9={complex128:2,complex64:2};function Gb(A,r){if(A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],e=A.shape[1],t=r.shape[0],o=r.shape[1],n=I*t,g=e*o;if(n*g<R9*Y.thresholdMultiplier)return null;let i=IA(A.dtype,r.dtype),Q=k9[i],a=q9[i];if(!Q||!a)return null;let s=M9[i]??1,B=a.BYTES_PER_ELEMENT,C=I*e*s*B,E=t*o*s*B,u=n*g*s*B;J(C+E+u),U();let D=A.data.subarray(A.offset*s,A.offset*s+I*e*s),m=r.data.subarray(r.offset*s,r.offset*s+t*o*s),c=q(D),f=q(m),y=_(u);Q(c,f,y,I,e,t,o);let l=v(y,n*g*s,a);return d.fromData(l,[n,g],i)}var x9="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",Kt=null;function zr(){if(Kt)return Kt;let A=atob(x9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Kt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Kt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Kt}function Rb(A,r,I,e){zr().exports.cross_f64(A,r,I,e)}function kb(A,r,I,e){zr().exports.cross_f32(A,r,I,e)}function qb(A,r,I,e){zr().exports.cross_c128(A,r,I,e)}function Mb(A,r,I,e){zr().exports.cross_c64(A,r,I,e)}function NB(A,r,I,e){zr().exports.cross_i64(A,r,I,e)}function FB(A,r,I,e){zr().exports.cross_i32(A,r,I,e)}function SB(A,r,I,e){zr().exports.cross_i16(A,r,I,e)}function GB(A,r,I,e){zr().exports.cross_i8(A,r,I,e)}var J9=8,U9={float64:Rb,float32:kb,complex128:qb,complex64:Mb,int64:NB,uint64:NB,int32:FB,uint32:FB,int16:SB,uint16:SB,int8:GB,uint8:GB},L9={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},H9={complex128:2,complex64:2};function xb(A,r,I){if(I<J9*Y.thresholdMultiplier||!A.isCContiguous||!r.isCContiguous)return null;let e=IA(A.dtype,r.dtype),t=U9[e],o=L9[e];if(!t||!o)return null;let n=H9[e]??1,g=o.BYTES_PER_ELEMENT,i=I*3,Q=i*n*g,a=i*n*g,s=i*n*g;J(Q+a+s),U();let B=A.data.subarray(A.offset*n,A.offset*n+i*n),C=r.data.subarray(r.offset*n,r.offset*n+i*n),E=q(B),u=q(C),D=_(s);t(E,u,D,I);let m=v(D,i*n,o);return d.fromData(m,[...A.shape],e)}var _9="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",Vt=null;function Y9(){if(Vt)return Vt;let A=atob(_9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Vt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Vt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Vt}function Jb(A,r,I,e,t,o,n){Y9().exports.qr_f64(A,r,I,e,t,o,n)}var Ub=4;function Lb(A){if(A.ndim!==2)return null;let r=A.shape[0],I=A.shape[1];if(r<Ub*Y.thresholdMultiplier||I<Ub*Y.thresholdMultiplier)return null;let e=Math.min(r,I),t=r*I,o=r*e,n=e*I,g=e,i=e,a=(t+o+n+g+i)*8;J(a),U();let s=new Float64Array(t);for(let l=0;l<r;l++)for(let h=0;h<I;h++)s[l*I+h]=Number(A.get(l,h));let B=q(s),C=_(o*8),E=_(n*8),u=_(g*8),D=_(i*8);Jb(B,C,E,u,D,r,I);let m=v(C,o,Float64Array),c=v(E,n,Float64Array),f=d.fromData(m,[r,e],"float64"),y=d.fromData(c,[e,I],"float64");return{q:f,r:y}}var v9="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",Wt=null;function X9(){if(Wt)return Wt;let A=atob(v9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Wt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Wt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Wt}function Hb(A,r,I){return X9().exports.cholesky_f64(A,r,I)}var T9=4;function _b(A){if(A.ndim!==2)return null;let r=A.shape[0];if(r!==A.shape[1]||r<T9*Y.thresholdMultiplier)return null;let I=r*r,t=I*2*8;J(t),U();let o=new Float64Array(I);for(let a=0;a<r;a++)for(let s=0;s<r;s++)o[a*r+s]=Number(A.get(a,s));let n=q(o),g=_(I*8);if(Hb(n,g,r)!==0)throw new Error("cholesky: matrix is not positive definite");let Q=v(g,I,Float64Array);return d.fromData(Q,[r,r],"float64")}var P9="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",Ot=null;function K9(){if(Ot)return Ot;let A=atob(P9),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ot=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ot.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ot}function Yb(A,r,I,e,t,o,n){K9().exports.svd_f64(A,r,I,e,t,o,n)}var vb=4;function Xb(A){if(A.ndim!==2)return null;let r=A.shape[0],I=A.shape[1];if(r<vb*Y.thresholdMultiplier||I<vb*Y.thresholdMultiplier)return null;let e=Math.min(r,I),t=r*I,o=r*r,n=e,g=I*I,i=r*I+I*I,a=(t+o+n+g+i)*8;J(a),U();let s=new Float64Array(t);for(let b=0;b<r;b++)for(let p=0;p<I;p++)s[b*I+p]=Number(A.get(b,p));let B=q(s),C=_(o*8),E=_(n*8),u=_(g*8),D=_(i*8);Yb(B,C,E,u,D,r,I);let m=v(C,o,Float64Array),c=v(E,n,Float64Array),f=v(u,g,Float64Array),y=d.fromData(m,[r,r],"float64"),l=d.fromData(c,[e],"float64"),h=d.fromData(f,[I,I],"float64");return{u:y,s:l,vt:h}}var V9=new Int32Array(1),W9=new Uint32Array(1),O9=new Int16Array(1),Z9=new Uint16Array(1),z9=new Int8Array(1),j9=new Uint8Array(1),$9={int32:V9,uint32:W9,int16:O9,uint16:Z9,int8:z9,uint8:j9};function ir(A){return $9[A]??null}function mr(A,r){if(A instanceof T||r instanceof T){let I=A instanceof T?A:new T(Number(A),0),e=r instanceof T?r:new T(Number(r),0);return I.mul(e)}return typeof A=="bigint"&&typeof r=="bigint"?Number(A*r):Number(A)*Number(r)}function A_(A,r,I,e,t,o,n,g,i){for(let Q=0;Q<I;Q++)for(let a=0;a<o;a++)for(let s=0;s<n;s++){let B=0;for(let C=0;C<g;C++)B+=A[r+Q*g+C]*e[t+a*g*n+C*n+s];i[Q*o*n+a*n+s]=B}}function r_(A,r,I,e,t,o,n,g,i,Q){for(let a=0;a<I;a++)for(let s=0;s<n;s++){let B=0;for(let E=0;E<i;E++){let u=e===1?E:a*i+E,D=g===1?E:s*i+E;B+=A[r+u]*t[o+D]}let C=I===1?s:a*n+s;Q[C]=B}}function I_(A,r,I,e,t,o,n,g,i,Q,a,s){for(let E=0;E<I*e;E++)a[E]=0;let B=A==="transpose",C=r==="transpose";if(!B&&!C)for(let E=0;E<I;E++)for(let u=0;u<e;u++){let D=0;for(let m=0;m<t;m++)D+=(n[E*g+m]??0)*(i[m*Q+u]??0);a[E*s+u]=o*D}else if(B&&!C)for(let E=0;E<I;E++)for(let u=0;u<e;u++){let D=0;for(let m=0;m<t;m++)D+=(n[m*g+E]??0)*(i[m*Q+u]??0);a[E*s+u]=o*D}else if(!B&&C)for(let E=0;E<I;E++)for(let u=0;u<e;u++){let D=0;for(let m=0;m<t;m++)D+=(n[E*g+m]??0)*(i[u*Q+m]??0);a[E*s+u]=o*D}else for(let E=0;E<I;E++)for(let u=0;u<e;u++){let D=0;for(let m=0;m<t;m++)D+=(n[m*g+E]??0)*(i[u*Q+m]??0);a[E*s+u]=o*D}}function aI(A,r){let I=A.ndim,e=r.ndim,t=k(A.dtype)||k(r.dtype);if(I===0||e===0){let o=I===0?A.get():null,n=e===0?r.get():null;if(I===0&&e===0)return mr(o,n);if(I===0){let g=IA(A.dtype,r.dtype),i=d.zeros([...r.shape],g),Q=(a,s)=>{let B=new Array(s.length),C=a;for(let E=s.length-1;E>=0;E--)B[E]=C%s[E],C=Math.floor(C/s[E]);return B};for(let a=0;a<r.size;a++){let s=Q(a,r.shape),B=r.get(...s);i.set(s,mr(o,B))}return i}else{let g=IA(A.dtype,r.dtype),i=d.zeros([...A.shape],g),Q=(a,s)=>{let B=new Array(s.length),C=a;for(let E=s.length-1;E>=0;E--)B[E]=C%s[E],C=Math.floor(C/s[E]);return B};for(let a=0;a<A.size;a++){let s=Q(a,A.shape),B=A.get(...s);i.set(s,mr(B,n))}return i}}if(I===1&&e===1){if(A.shape[0]!==r.shape[0])throw new Error(`dot: incompatible shapes (${A.shape[0]},) and (${r.shape[0]},)`);let o=ug(A,r);if(o!==null)return o;let n=A.shape[0];if(t){let a=0,s=0;for(let B=0;B<n;B++){let C=A.get(B),E=r.get(B),u=mr(C,E);u instanceof T?(a+=u.re,s+=u.im):a+=u}return new T(a,s)}let g=IA(A.dtype,r.dtype),i=ir(g);if(i){i[0]=0;for(let a=0;a<n;a++)i[0]+=Number(A.get(a))*Number(r.get(a));return i[0]}let Q=0;for(let a=0;a<n;a++){let s=A.get(a),B=r.get(a);typeof s=="bigint"&&typeof B=="bigint"?Q=Number(Q)+Number(s*B):Q+=Number(s)*Number(B)}return Q}if(I===2&&e===2)return OA(A,r);if(I===2&&e===1){let[o,n]=A.shape,g=r.shape[0];if(n!==g)throw new Error(`dot: incompatible shapes (${o},${n}) and (${g},)`);let i=QB(A,r);if(i)return i;let Q=IA(A.dtype,r.dtype),a=d.zeros([o],Q);if(t)for(let s=0;s<o;s++){let B=0,C=0;for(let E=0;E<n;E++){let u=A.get(s,E),D=r.get(E),m=u instanceof T?u:new T(Number(u),0),c=D instanceof T?D:new T(Number(D),0);B+=m.re*c.re-m.im*c.im,C+=m.re*c.im+m.im*c.re}a.set([s],new T(B,C))}else{let s=ir(Q);for(let B=0;B<o;B++)if(s){s[0]=0;for(let C=0;C<n;C++)s[0]+=Number(A.get(B,C))*Number(r.get(C));a.set([B],s[0])}else{let C=0;for(let E=0;E<n;E++){let u=A.get(B,E),D=r.get(E);typeof u=="bigint"&&typeof D=="bigint"?C=Number(C)+Number(u*D):C+=Number(u)*Number(D)}a.set([B],C)}}return a}if(I===1&&e===2){let o=A.shape[0],[n,g]=r.shape;if(o!==n)throw new Error(`dot: incompatible shapes (${o},) and (${n},${g})`);let i=EB(A,r);if(i)return i;let Q=IA(A.dtype,r.dtype),a=d.zeros([g],Q);if(t)for(let s=0;s<g;s++){let B=0,C=0;for(let E=0;E<o;E++){let u=A.get(E),D=r.get(E,s),m=u instanceof T?u:new T(Number(u),0),c=D instanceof T?D:new T(Number(D),0);B+=m.re*c.re-m.im*c.im,C+=m.re*c.im+m.im*c.re}a.set([s],new T(B,C))}else{let s=ir(Q);for(let B=0;B<g;B++)if(s){s[0]=0;for(let C=0;C<o;C++)s[0]+=Number(A.get(C))*Number(r.get(C,B));a.set([B],s[0])}else{let C=0;for(let E=0;E<o;E++){let u=A.get(E),D=r.get(E,B);typeof u=="bigint"&&typeof D=="bigint"?C=Number(C)+Number(u*D):C+=Number(u)*Number(D)}a.set([B],C)}}return a}if(I>2&&e===1){let o=A.shape[I-1],n=r.shape[0];if(o!==n)throw new Error(`dot: incompatible shapes ${JSON.stringify(A.shape)} and (${n},)`);let g=[...A.shape.slice(0,-1)],i=IA(A.dtype,r.dtype),Q=d.zeros(g,i),a=g.reduce((s,B)=>s*B,1);if(t)for(let s=0;s<a;s++){let B=0,C=0,E=s,u=[];for(let D=g.length-1;D>=0;D--)u[D]=E%g[D],E=Math.floor(E/g[D]);for(let D=0;D<o;D++){let m=[...u,D],c=A.get(...m),f=r.get(D),y=c instanceof T?c:new T(Number(c),0),l=f instanceof T?f:new T(Number(f),0);B+=y.re*l.re-y.im*l.im,C+=y.re*l.im+y.im*l.re}Q.set(u,new T(B,C))}else{let s=ir(i);for(let B=0;B<a;B++){let C=B,E=[];for(let u=g.length-1;u>=0;u--)E[u]=C%g[u],C=Math.floor(C/g[u]);if(s){s[0]=0;for(let u=0;u<o;u++){let D=[...E,u];s[0]+=Number(A.get(...D))*Number(r.get(u))}Q.set(E,s[0])}else{let u=0;for(let D=0;D<o;D++){let m=[...E,D],c=A.get(...m),f=r.get(D);typeof c=="bigint"&&typeof f=="bigint"?u=Number(u)+Number(c*f):u+=Number(c)*Number(f)}Q.set(E,u)}}}return Q}if(I===1&&e>2){let o=A.shape[0],n=1,g=r.shape[n];if(o!==g)throw new Error(`dot: incompatible shapes (${o},) and ${JSON.stringify(r.shape)}`);let i=[...r.shape.slice(0,n),...r.shape.slice(n+1)],Q=IA(A.dtype,r.dtype),a=d.zeros(i,Q),s=i.reduce((B,C)=>B*C,1);if(t)for(let B=0;B<s;B++){let C=B,E=[];for(let f=i.length-1;f>=0;f--)E[f]=C%i[f],C=Math.floor(C/i[f]);let u=E.slice(0,n),D=E.slice(n),m=0,c=0;for(let f=0;f<o;f++){let y=A.get(f),l=[...u,f,...D],h=r.get(...l),b=y instanceof T?y:new T(Number(y),0),p=h instanceof T?h:new T(Number(h),0);m+=b.re*p.re-b.im*p.im,c+=b.re*p.im+b.im*p.re}a.set(E,new T(m,c))}else{let B=ir(Q);for(let C=0;C<s;C++){let E=C,u=[];for(let c=i.length-1;c>=0;c--)u[c]=E%i[c],E=Math.floor(E/i[c]);let D=u.slice(0,n),m=u.slice(n);if(B){B[0]=0;for(let c=0;c<o;c++){let f=[...D,c,...m];B[0]+=Number(A.get(c))*Number(r.get(...f))}a.set(u,B[0])}else{let c=0;for(let f=0;f<o;f++){let y=A.get(f),l=[...D,f,...m],h=r.get(...l);typeof y=="bigint"&&typeof h=="bigint"?c=Number(c)+Number(y*h):c+=Number(y)*Number(h)}a.set(u,c)}}}return a}if(I>=2&&e>=2&&!(I===2&&e===2)){let o=A.shape[I-1],n=r.shape[e-2];if(o!==n)throw new Error(`dot: incompatible shapes ${JSON.stringify(A.shape)} and ${JSON.stringify(r.shape)}`);let g=[...A.shape.slice(0,-1),...r.shape.slice(0,-2),r.shape[e-1]],i=IA(A.dtype,r.dtype),Q=d.zeros(g,i),a=A.shape.slice(0,-1).reduce((E,u)=>E*u,1),s=r.shape.slice(0,-2).reduce((E,u)=>E*u,1),B=r.shape[e-1],C=o;if(t)for(let E=0;E<a;E++)for(let u=0;u<s;u++)for(let D=0;D<B;D++){let m=0,c=0;for(let l=0;l<C;l++){let h=[],b=E;for(let H=A.shape.length-2;H>=0;H--)h.unshift(b%A.shape[H]),b=Math.floor(b/A.shape[H]);h.push(l);let p=A.get(...h),w=[],N=u;for(let H=r.shape.length-3;H>=0;H--)w.unshift(N%r.shape[H]),N=Math.floor(N/r.shape[H]);w.push(l,D);let F=r.get(...w),G=p instanceof T?p:new T(Number(p),0),x=F instanceof T?F:new T(Number(F),0);m+=G.re*x.re-G.im*x.im,c+=G.re*x.im+G.im*x.re}let f=E*s*B+u*B+D,y=Q.data;y[f*2]=m,y[f*2+1]=c}else if(A.isCContiguous&&r.isCContiguous&&!L(A.dtype)&&!L(r.dtype)&&!ir(i))A_(A.data,A.offset,a,r.data,r.offset,s,B,C,Q.data);else{let E=ir(i);for(let u=0;u<a;u++)for(let D=0;D<s;D++)for(let m=0;m<B;m++){let c=u*s*B+D*B+m;if(E){E[0]=0;for(let f=0;f<C;f++){let y=u*C+f,l=D*C*B+f*B+m;E[0]+=Number(A.iget(y))*Number(r.iget(l))}Q.data[c]=E[0]}else{let f=0;for(let y=0;y<C;y++){let l=u*C+y,h=D*C*B+y*B+m,b=A.iget(l),p=r.iget(h);typeof b=="bigint"&&typeof p=="bigint"?f=Number(f)+Number(b*p):f+=Number(b)*Number(p)}Q.data[c]=f}}}return Q}throw new Error(`dot: unexpected combination of dimensions ${I}D \xB7 ${e}D`)}function Tb(A,r){let[I=0,e=0]=A.shape,[t=0,o=0]=r.shape;if(e!==t)throw new Error(`matmul shape mismatch: (${I},${e}) @ (${t},${o})`);let n=IA(A.dtype,r.dtype);if(k(n)){let h=d.zeros([I,o],n),b=h.data;for(let p=0;p<I;p++)for(let w=0;w<o;w++){let N=0,F=0;for(let x=0;x<e;x++){let H=A.iget(p*e+x),X=r.iget(x*o+w);N+=H.re*X.re-H.im*X.im,F+=H.re*X.im+H.im*X.re}let G=p*o+w;b[G*2]=N,b[G*2+1]=F}return h}if(n.startsWith("int")||n.startsWith("uint")||n==="bool"){let h=d.zeros([I,o],n),b=h.data,p=A.offset,w=r.offset,[N=0,F=0]=A.strides,[G=0,x=0]=r.strides;if(L(n)){let H=A.data,X=r.data,P=b;for(let Z=0;Z<I;Z++)for(let V=0;V<o;V++){let $=0n;for(let O=0;O<e;O++)$+=H[p+Z*N+O*F]*X[w+O*G+V*x];P[Z*o+V]=$}}else{let H=A.data,X=r.data,P=b;for(let Z=0;Z<I;Z++)for(let V=0;V<o;V++){let $=0;for(let O=0;O<e;O++)$+=H[p+Z*N+O*F]*X[w+O*G+V*x];P[Z*o+V]=$}}return h}let g=n;if(g!=="float64"&&g!=="float32")throw new Error(`matmul currently only supports float64/float32, got ${g}`);let i=h=>h.dtype==="float64"?h.data:h.dtype==="float32"?Float64Array.from(h.data):Float64Array.from(Array.from(h.data).map(Number)),Q=i(A),a=i(r);A.offset>0&&(Q=Q.subarray(A.offset)),r.offset>0&&(a=a.subarray(r.offset));let[s=0,B=0]=A.strides,[C=0,E=0]=r.strides,u=B>s,D=E>C,m=u?"transpose":"no-transpose",c=D?"transpose":"no-transpose",f,y;u?f=B:f=s,D?y=E:y=C;let l=d.zeros([I,o],"float64");if(I_(m,c,I,o,e,1,Q,f,a,y,l.data,o),g==="float32"){let h=d.zeros([I,o],"float32"),b=l.data,p=h.data;for(let w=0;w<b.length;w++)p[w]=b[w];return h}return l}function e_(A,r){let I=Math.max(A.length,r.length),e=new Array(I);for(let t=0;t<I;t++){let o=A[A.length-I+t]??1,n=r[r.length-I+t]??1;if(o!==n&&o!==1&&n!==1)throw new Error(`matmul: cannot broadcast batch shapes ${JSON.stringify(A)} and ${JSON.stringify(r)}`);e[t]=Math.max(o,n)}return e}function cg(A,r){let I=new Array(r.length),e=A;for(let t=r.length-1;t>=0;t--)I[t]=e%r[t],e=Math.floor(e/r[t]);return I}function Pb(A,r){let I=r.length,e=0;for(let t=0;t<I;t++){let o=A.length-I+t,n=o>=0?A[o]:0,g=r[t]===1?0:n;e=e*r[t]+g}return e}function ZA(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 Kb(A,r,I,e){let t=A.ndim,o=I*e,n=k(A.dtype),g=L(A.dtype),i=n?2:1,Q=nA(A.dtype),a=new Q(o*i);if(A.isCContiguous){let s=(A.offset+r*o)*i;if(g){let B=A.data,C=a;for(let E=0;E<o*i;E++)C[E]=B[s+E]}else{let B=A.data,C=a;for(let E=0;E<o*i;E++)C[E]=B[s+E]}}else{let s=r*o;for(let B=0;B<o;B++){let E=s+B,u=A.offset;for(let D=t-1;D>=0;D--){let m=A.shape[D];u+=E%m*A.strides[D],E=Math.floor(E/m)}if(n){let D=A.data,m=a;m[B*2]=D[u*2],m[B*2+1]=D[u*2+1]}else a[B]=A.data[u]}}return d.fromData(a,[I,e],A.dtype)}function OA(A,r){if(A.ndim===1&&r.ndim===1){let G=ug(A,r);if(G!==null){let x=IA(A.dtype,r.dtype),H=d.zeros([],x);return G instanceof T?(H.data[0]=G.re,H.data[1]=G.im):H.data[0]=G,H}}else if(A.ndim>=2&&r.ndim===1){if(A.ndim===2){let G=QB(A,r);if(G)return G}}else if(A.ndim===1&&r.ndim>=2&&r.ndim===2){let G=EB(A,r);if(G)return G}let I=Wd(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 e=A.ndim===1,t=r.ndim===1,o=e?EA(A,[1,A.shape[0]]):A,n=t?EA(r,[r.shape[0],1]):r,g=o.ndim,i=n.ndim,Q=o.shape[g-2],a=o.shape[g-1],s=n.shape[i-2],B=n.shape[i-1];if(a!==s)throw new Error(`matmul: shape mismatch: (...,${Q},${a}) @ (...,${s},${B}): inner dimensions must match`);if(g===2&&i===2){let G=Tb(o,n);return e&&t?EA(G,[]):e?EA(G,[B]):t?EA(G,[Q]):G}let C=Array.from(o.shape).slice(0,g-2),E=Array.from(n.shape).slice(0,i-2),u=e_(C,E),D=u.reduce((G,x)=>G*x,1),m=IA(o.dtype,n.dtype),c=[];for(let G=0;G<D;G++){let x=cg(G,u),H=Pb(x,C),X=Pb(x,E),P=Kb(o,H,Q,a),Z=Kb(n,X,a,B);c.push(Tb(P,Z))}let f=Q*B,y=k(m),l=L(m),h=y?2:1,b=nA(m),p=D*f*h,w=new b(p);for(let G=0;G<D;G++){let H=c[G].data,X=G*f*h;if(l){let P=H,Z=w;for(let V=0;V<f;V++)Z[X+V]=P[V]}else{let P=H,Z=w;for(let V=0;V<f*h;V++)Z[X+V]=P[V]}}let N=[...u,Q,B],F=d.fromData(w,N,m);return e&&t?EA(F,[...u]):e?EA(F,[...u,B]):t?EA(F,[...u,Q]):F}function Wb(A,r=0,I=0,e=1){if(A.ndim<2)throw new Error(`trace requires at least 2D array, got ${A.ndim}D`);if(A.ndim===2){let C=I<0?A.ndim+I:I,E=e<0?A.ndim+e:e,u=A.shape[C],D=A.shape[E],m=Math.min(u,D)-Math.max(0,r);if(m<=0)return k(A.dtype)?new T(0,0):0;if(k(A.dtype)){let f=0,y=0;for(let l=0;l<m;l++){let h=r>=0?l:l-r,b=r>=0?l+r:l,p=[0,0];p[C]=h,p[E]=b;let w=A.get(...p);f+=w.re,y+=w.im}return new T(f,y)}let c=0;for(let f=0;f<m;f++){let y=r>=0?f:f-r,l=r>=0?f+r:f,h=[0,0];h[C]=y,h[E]=l;let b=A.get(...h);typeof b=="bigint"?c=(typeof c=="bigint"?c:BigInt(c))+b:c=(typeof c=="bigint"?Number(c):c)+b}return c}let t=A.ndim,o=(I%t+t)%t,n=(e%t+t)%t;if(o===n)throw new Error("trace: axis1 and axis2 must be different");let g=A.shape[o],i=A.shape[n],Q=Math.min(g,i)-Math.max(0,r),a=Array.from(A.shape).filter((C,E)=>E!==o&&E!==n),s=a.reduce((C,E)=>C*E,1),B=d.zeros(a.length>0?a:[1],A.dtype);if(Q<=0)return B.shape.length===0?0:B;for(let C=0;C<s;C++){let E=new Array(a.length),u=C;for(let y=a.length-1;y>=0;y--)E[y]=u%a[y],u=Math.floor(u/a[y]);let D=0,m=0,c=0,f=k(A.dtype);for(let y=0;y<Q;y++){let l=r>=0?y:y-r,h=r>=0?y+r:y,b=new Array(t),p=0;for(let N=0;N<t;N++)N===o?b[N]=l:N===n?b[N]=h:b[N]=E[p++];let w=A.get(...b);f?(m+=w.re,c+=w.im):typeof w=="bigint"?D=(typeof D=="bigint"?D:BigInt(D))+w:D=(typeof D=="bigint"?Number(D):D)+w}f?B.iset(C,new T(m,c)):B.iset(C,typeof D=="bigint"?Number(D):D)}return B}function $r(A,r){return GQ(A,r)}function Ob(A,r){let I=A.ndim,e=r.ndim,t=k(A.dtype)||k(r.dtype);if(I===0||e===0)return aI(A,r);let o=A.shape[I-1],n=r.shape[e-1];if(o!==n)throw new Error(`inner: incompatible shapes - last dimensions ${o} and ${n} don't match`);let g=$d(A,r);if(g!==null)return g;if(I===1&&e===1)return aI(A,r);let i=[...A.shape.slice(0,-1),...r.shape.slice(0,-1)],Q=IA(A.dtype,r.dtype),a=d.zeros(i,Q),s=I===1?1:A.shape.slice(0,-1).reduce((E,u)=>E*u,1),B=e===1?1:r.shape.slice(0,-1).reduce((E,u)=>E*u,1),C=o;if(t)for(let E=0;E<s;E++)for(let u=0;u<B;u++){let D=0,m=0;for(let y=0;y<C;y++){let l,h;if(I===1)l=A.get(y);else{let w=[],N=E,F=A.shape.slice(0,-1);for(let G=F.length-1;G>=0;G--)w.unshift(N%F[G]),N=Math.floor(N/F[G]);w.push(y),l=A.get(...w)}if(e===1)h=r.get(y);else{let w=[],N=u,F=r.shape.slice(0,-1);for(let G=F.length-1;G>=0;G--)w.unshift(N%F[G]),N=Math.floor(N/F[G]);w.push(y),h=r.get(...w)}let b=l instanceof T?l:new T(Number(l),0),p=h instanceof T?h:new T(Number(h),0);D+=b.re*p.re-b.im*p.im,m+=b.re*p.im+b.im*p.re}if(i.length===0)return new T(D,m);let c=s===1?u:E*B+u,f=a.data;f[c*2]=D,f[c*2+1]=m}else{let E=ir(Q);if(A.isCContiguous&&r.isCContiguous&&!L(A.dtype)&&!L(r.dtype)&&!E){if(i.length===0){let u=A.data,D=r.data,m=A.offset,c=r.offset,f=0;for(let y=0;y<C;y++)f+=u[m+y]*D[c+y];return f}r_(A.data,A.offset,s,I,r.data,r.offset,B,e,C,a.data)}else for(let u=0;u<s;u++)for(let D=0;D<B;D++)if(E){E[0]=0;for(let c=0;c<C;c++){let f=I===1?c:u*C+c,y=e===1?c:D*C+c;E[0]+=Number(A.iget(f))*Number(r.iget(y))}if(i.length===0)return E[0];let m=s===1?D:u*B+D;a.data[m]=E[0]}else{let m=0;for(let f=0;f<C;f++){let y=I===1?f:u*C+f,l=e===1?f:D*C+f,h=A.iget(y),b=r.iget(l);typeof h=="bigint"&&typeof b=="bigint"?m=Number(m)+Number(h*b):m+=Number(h)*Number(b)}if(i.length===0)return m;let c=s===1?D:u*B+D;a.data[c]=m}}return a}function qB(A,r){let I=A.ndim===1?A:wI(A),e=r.ndim===1?r:wI(r),t=cb(I,e);if(t)return t;let o=I.size,n=e.size,g=IA(A.dtype,r.dtype),i=d.zeros([o,n],g);for(let Q=0;Q<o;Q++)for(let a=0;a<n;a++){let s=I.get(Q),B=e.get(a),C=mr(s,B);i.set([Q,a],C)}return i}function Zb(A,r,I){let e,t;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");e=Array.from({length:E},(u,D)=>A.ndim-E+D),t=Array.from({length:E},(u,D)=>D)}else if([e,t]=I,e.length!==t.length)throw new Error("tensordot: axes lists must have same length");for(let E=0;E<e.length;E++){let u=e[E],D=t[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 o=[],n=[];for(let E=0;E<A.ndim;E++)e.includes(E)||o.push(E);for(let E=0;E<r.ndim;E++)t.includes(E)||n.push(E);let g=[...o.map(E=>A.shape[E]),...n.map(E=>r.shape[E])],i=IA(A.dtype,r.dtype),Q=k(i),a=E=>E instanceof T?{re:E.re,im:E.im}:{re:Number(E),im:0};if(g.length===0){let E=0,u=0,D=e.map(m=>A.shape[m]).reduce((m,c)=>m*c,1);for(let m=0;m<D;m++){let c=m,f=new Array(e.length);for(let p=e.length-1;p>=0;p--){let w=e[p];f[p]=c%A.shape[w],c=Math.floor(c/A.shape[w])}let y=new Array(A.ndim),l=new Array(r.ndim);for(let p=0;p<e.length;p++)y[e[p]]=f[p];for(let p=0;p<t.length;p++)l[t[p]]=f[p];let h=A.get(...y),b=r.get(...l);if(Q){let p=a(h),w=a(b);E+=p.re*w.re-p.im*w.im,u+=p.re*w.im+p.im*w.re}else typeof h=="bigint"&&typeof b=="bigint"?E+=Number(h*b):E+=Number(h)*Number(b)}return Q?new T(E,u):E}let s=d.zeros(g,i),B=g.reduce((E,u)=>E*u,1),C=e.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=g.length-1;l>=0;l--)D[l]=u%g[l],u=Math.floor(u/g[l]);let m=D.slice(0,o.length),c=D.slice(o.length),f=0,y=0;for(let l=0;l<C;l++){u=l;let h=[];for(let F=e.length-1;F>=0;F--){let G=e[F];h[F]=u%A.shape[G],u=Math.floor(u/A.shape[G])}let b=new Array(A.ndim),p=new Array(r.ndim);for(let F=0;F<o.length;F++)b[o[F]]=m[F];for(let F=0;F<n.length;F++)p[n[F]]=c[F];for(let F=0;F<e.length;F++)b[e[F]]=h[F],p[t[F]]=h[F];let w=A.get(...b),N=r.get(...p);if(Q){let F=a(w),G=a(N);f+=F.re*G.re-F.im*G.im,y+=F.re*G.im+F.im*G.re}else typeof w=="bigint"&&typeof N=="bigint"?f+=Number(w*N):f+=Number(w)*Number(N)}Q?s.set(D,new T(f,y)):s.set(D,f)}return s}function zb(A,r=0,I=0,e=1){let t=A.shape,o=t.length;if(o<2)throw new Error("diagonal requires an array of at least two dimensions");let n=I<0?o+I:I,g=e<0?o+e:e;if(n<0||n>=o||g<0||g>=o)throw new Error("axis out of bounds");if(n===g)throw new Error("axis1 and axis2 cannot be the same");let i=t[n],Q=t[g],a;r>=0?a=Math.max(0,Math.min(i,Q-r)):a=Math.max(0,Math.min(i+r,Q));let s=[];for(let u=0;u<o;u++)u!==n&&u!==g&&s.push(t[u]);s.push(a);let B=d.zeros(s,A.dtype),C=t.filter((u,D)=>D!==n&&D!==g),E=C.reduce((u,D)=>u*D,1);for(let u=0;u<E;u++){let D=u,m=[];for(let c=C.length-1;c>=0;c--)m.unshift(D%C[c]),D=Math.floor(D/C[c]);for(let c=0;c<a;c++){let f=new Array(o),y=0;for(let b=0;b<o;b++)b===n?f[b]=r>=0?c:c-r:b===g?f[b]=r>=0?c+r:c:f[b]=m[y++];let l=[...m,c],h=A.get(...f);B.set(l,h)}}return B}function jb(A,...r){let I=A.indexOf("->"),e,t;I===-1?(e=A,t=$b(e)):(e=A.slice(0,I),t=A.slice(I+2));let o=e.split(",").map(u=>u.trim());if(o.length!==r.length)throw new Error(`einsum: expected ${o.length} operands, got ${r.length}`);let n=new Map;for(let u=0;u<r.length;u++){let D=o[u],m=r[u];if(D.length!==m.ndim)throw new Error(`einsum: operand ${u} has ${m.ndim} dimensions but subscript '${D}' has ${D.length} indices`);for(let c=0;c<D.length;c++){let f=D[c],y=m.shape[c];if(n.has(f)){if(n.get(f)!==y)throw new Error(`einsum: size mismatch for index '${f}': ${n.get(f)} vs ${y}`)}else n.set(f,y)}}for(let u of t)if(!n.has(u))throw new Error(`einsum: output subscript contains unknown index '${u}'`);let g=new Set(t),i=new Set;for(let u of o)for(let D of u)i.add(D);let Q=[];for(let u of i)g.has(u)||Q.push(u);if(r.length===2&&o.length===2){let[u,D]=o,[m,c]=r;if(u.length===2&&D.length===2&&t.length===2&&m.ndim===2&&c.ndim===2){let[f,y]=[u[0],u[1]],[l,h]=[D[0],D[1]],[b,p]=[t[0],t[1]];if(f===b&&h===p&&y===l&&Q.length===1&&Q[0]===y||f===b&&h===p&&y===l&&Q.length===1&&Q[0]===y)return OA(m,c);if(y===b&&h===p&&f===l&&Q.length===1&&Q[0]===f){let w=$r(m);return OA(w,c)}if(f===b&&l===p&&y===h&&Q.length===1&&Q[0]===y){let w=$r(c);return OA(m,w)}}if(u.length===1&&D.length===1&&u===D&&t.length===0&&m.ndim===1&&c.ndim===1)return RB(r,o,Q,n);if(u&&D&&u.length===1&&D.length===1&&t.length===2&&t===u+D&&Q.length===0&&m.ndim===1&&c.ndim===1)return qB(m,c)}if(r.length===1&&o[0].length===2&&t.length===0){let u=o[0];if(u[0]===u[1]&&r[0].ndim===2)return RB(r,o,Q,n)}let a=Array.from(t).map(u=>n.get(u));if(a.length===0)return RB(r,o,Q,n);let s=r[0].dtype;for(let u=1;u<r.length;u++)s=IA(s,r[u].dtype);let B=d.zeros(a,s),C=a.reduce((u,D)=>u*D,1),E=1;for(let u of Q)E*=n.get(u);for(let u=0;u<C;u++){let D=t_(u,a),m=new Map;for(let f=0;f<t.length;f++)m.set(t[f],D[f]);let c=0;for(let f=0;f<E;f++){let y=f;for(let h=Q.length-1;h>=0;h--){let b=Q[h],p=n.get(b);m.set(b,y%p),y=Math.floor(y/p)}let l=1;for(let h=0;h<r.length;h++){let b=r[h],p=o[h],w=[];for(let F of p)w.push(m.get(F));let N=b.get(...w);l*=Number(N)}c+=l}B.set(D,c)}return B}function $b(A){let r=new Map,I=A.split(",");for(let t of I)for(let o of t.trim())r.set(o,(r.get(o)||0)+1);let e=[];for(let[t,o]of r)o===1&&e.push(t);return e.sort().join("")}function RB(A,r,I,e){let t=!1;for(let Q of A)if(k(Q.dtype)){t=!0;break}let o=Q=>Q instanceof T?{re:Q.re,im:Q.im}:{re:Number(Q),im:0},n=1;for(let Q of I)n*=e.get(Q);let g=0,i=0;for(let Q=0;Q<n;Q++){let a=new Map,s=Q;for(let E=I.length-1;E>=0;E--){let u=I[E],D=e.get(u);a.set(u,s%D),s=Math.floor(s/D)}let B=1,C=0;for(let E=0;E<A.length;E++){let u=A[E],D=r[E],m=[];for(let f of D)m.push(a.get(f));let c=u.get(...m);if(t){let f=o(c),y=B*f.re-C*f.im,l=B*f.im+C*f.re;B=y,C=l}else B*=Number(c)}g+=B,i+=C}return t?new T(g,i):g}function t_(A,r){let I=new Array(r.length),e=A;for(let t=r.length-1;t>=0;t--)I[t]=e%r[t],e=Math.floor(e/r[t]);return I}function Ap(A,r){let I=A.shape,e=r.shape,t=I.length,o=e.length,n=IA(A.dtype,r.dtype);if(t===2&&o===2){let E=Gb(A,r);if(E)return E}let g=Math.max(t,o),i=new Array(g),Q=new Array(g).fill(1),a=new Array(g).fill(1);for(let E=0;E<t;E++)Q[g-t+E]=I[E];for(let E=0;E<o;E++)a[g-o+E]=e[E];for(let E=0;E<g;E++)i[E]=Q[E]*a[E];let s=d.zeros(i,n),B=I.reduce((E,u)=>E*u,1),C=e.reduce((E,u)=>E*u,1);for(let E=0;E<B;E++){let u=E,D=new Array(t);for(let f=t-1;f>=0;f--)D[f]=u%I[f],u=Math.floor(u/I[f]);let m=new Array(g).fill(0);for(let f=0;f<t;f++)m[g-t+f]=D[f];let c=A.get(...D);for(let f=0;f<C;f++){let y=f,l=new Array(o);for(let N=o-1;N>=0;N--)l[N]=y%e[N],y=Math.floor(y/e[N]);let h=new Array(g).fill(0);for(let N=0;N<o;N++)h[g-o+N]=l[N];let b=r.get(...l),p=new Array(g);for(let N=0;N<g;N++)p[N]=m[N]*a[N]+h[N];let w=mr(c,b);s.set(p,w)}}return s}function rp(A,r,I=-1,e=-1,t=-1,o){o!==void 0&&(I=o,e=o,t=o);let n=(p,w)=>p<0?w+p:p,g=n(I,A.ndim),i=n(e,r.ndim),Q=IA(A.dtype,r.dtype),a=k(Q),s=(p,...w)=>{let N=p.get(...w);return N instanceof T||typeof N=="bigint"?N:Number(N)},B=(p,w)=>{if(p instanceof T||w instanceof T){let N=p instanceof T?p:new T(Number(p),0),F=w instanceof T?w:new T(Number(w),0);return N.mul(F)}return typeof p=="bigint"||typeof w=="bigint"?BigInt(p)*BigInt(w):p*w},C=(p,w)=>{if(p instanceof T||w instanceof T){let N=p instanceof T?p:new T(Number(p),0),F=w instanceof T?w:new T(Number(w),0);return N.sub(F)}return typeof p=="bigint"||typeof w=="bigint"?BigInt(p)-BigInt(w):p-w};if(A.ndim===1&&r.ndim===1){let p=A.shape[0],w=r.shape[0];if(p===3&&w===3){let N=s(A,0),F=s(A,1),G=s(A,2),x=s(r,0),H=s(r,1),X=s(r,2),P=d.zeros([3],Q);return P.set([0],C(B(F,X),B(G,H))),P.set([1],C(B(G,x),B(N,X))),P.set([2],C(B(N,H),B(F,x))),P}else if(p===2&&w===2){let N=s(A,0),F=s(A,1),G=s(r,0),x=s(r,1);return C(B(N,x),B(F,G))}else if(p===2&&w===3||p===3&&w===2){let N=s(A,0),F=s(A,1),G=p===3?s(A,2):a?new T(0,0):L(Q)?0n:0,x=s(r,0),H=s(r,1),X=w===3?s(r,2):a?new T(0,0):L(Q)?0n:0,P=d.zeros([3],Q);return P.set([0],C(B(F,X),B(G,H))),P.set([1],C(B(G,x),B(N,X))),P.set([2],C(B(N,H),B(F,x))),P}else throw new Error(`cross: incompatible dimensions for cross product: ${p} and ${w}`)}let E=A.shape[g],u=r.shape[i];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,m=[...A.shape.slice(0,g),...A.shape.slice(g+1)],c=[...r.shape.slice(0,i),...r.shape.slice(i+1)];if(m.length!==c.length)throw new Error("cross: incompatible shapes for cross product");for(let p=0;p<m.length;p++)if(m[p]!==c[p])throw new Error("cross: incompatible shapes for cross product");let f=m;if(E===3&&u===3&&g===A.ndim-1&&i===r.ndim-1){let p=f.reduce((N,F)=>N*F,1),w=xb(A,r,p);if(w)return w}let y=t<0?f.length+1+t:t,l;if(D===0?l=f:l=[...f.slice(0,y),D,...f.slice(y)],l.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=d.zeros(l,Q),b=f.reduce((p,w)=>p*w,1);for(let p=0;p<b;p++){let w=p,N=[];for(let z=f.length-1;z>=0;z--)N[z]=w%f[z],w=Math.floor(w/f[z]);let F=[...N.slice(0,g),0,...N.slice(g)],G=[...N.slice(0,i),0,...N.slice(i)],x=z=>(F[g]=z,s(A,...F)),H=z=>(G[i]=z,s(r,...G)),X=x(0),P=x(1),Z=E===3?x(2):a?new T(0,0):L(Q)?0n:0,V=H(0),$=H(1),O=u===3?H(2):a?new T(0,0):L(Q)?0n:0;if(D===0)h.set(N,C(B(X,$),B(P,V)));else{let z=C(B(P,O),B(Z,$)),rA=C(B(Z,V),B(X,O)),oA=C(B(X,$),B(P,V)),iA=(CA,dA)=>{let hr=[...N.slice(0,y),CA,...N.slice(y)];h.set(hr,dA)};iA(0,z),iA(1,rA),iA(2,oA)}}return h}function xI(A,r=2,I,e=!1){if(typeof r!="number")throw new Error("vector_norm: ord must be a number");if(I==null){let Q=A.ndim===1?A:wI(A),a=Q.size,s;if(r===1/0){s=0;for(let B=0;B<a;B++)s=Math.max(s,Math.abs(Number(Q.get(B))))}else if(r===-1/0){s=1/0;for(let B=0;B<a;B++)s=Math.min(s,Math.abs(Number(Q.get(B))))}else if(r===0){s=0;for(let B=0;B<a;B++)Number(Q.get(B))!==0&&s++}else if(r===1){s=0;for(let B=0;B<a;B++)s+=Math.abs(Number(Q.get(B)))}else if(r===2){s=0;for(let B=0;B<a;B++){let C=Number(Q.get(B));s+=C*C}s=Math.sqrt(s)}else{s=0;for(let B=0;B<a;B++)s+=Math.pow(Math.abs(Number(Q.get(B))),r);s=Math.pow(s,1/r)}if(e){let B=new Array(A.ndim).fill(1),C=d.zeros(B,"float64");return C.set(new Array(A.ndim).fill(0),s),C}return s}let t=I<0?A.ndim+I:I;if(t<0||t>=A.ndim)throw new Error(`vector_norm: axis ${I} out of bounds for array with ${A.ndim} dimensions`);let o=e?[...A.shape.slice(0,t),1,...A.shape.slice(t+1)]:[...A.shape.slice(0,t),...A.shape.slice(t+1)];if(o.length===0)return xI(A,r,null,!1);let n=d.zeros(o,"float64"),g=A.shape[t],i=o.reduce((Q,a)=>Q*a,1);for(let Q=0;Q<i;Q++){let a=Q,s=[];for(let E=o.length-1;E>=0;E--)s[E]=a%o[E],a=Math.floor(a/o[E]);let B=e?[...s.slice(0,t),0,...s.slice(t+1)]:[...s.slice(0,t),0,...s.slice(t)],C;if(r===1/0){C=0;for(let E=0;E<g;E++)B[t]=E,C=Math.max(C,Math.abs(Number(A.get(...B))))}else if(r===-1/0){C=1/0;for(let E=0;E<g;E++)B[t]=E,C=Math.min(C,Math.abs(Number(A.get(...B))))}else if(r===0){C=0;for(let E=0;E<g;E++)B[t]=E,Number(A.get(...B))!==0&&C++}else if(r===1){C=0;for(let E=0;E<g;E++)B[t]=E,C+=Math.abs(Number(A.get(...B)))}else if(r===2){C=0;for(let E=0;E<g;E++){B[t]=E;let u=Number(A.get(...B));C+=u*u}C=Math.sqrt(C)}else{C=0;for(let E=0;E<g;E++)B[t]=E,C+=Math.pow(Math.abs(Number(A.get(...B))),r);C=Math.pow(C,1/r)}n.set(s,C)}return n}function jr(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 n=Array.from(A.shape).slice(0,-2),g=A.shape[A.ndim-2],i=A.shape[A.ndim-1],Q=n.reduce((B,C)=>B*C,1),a=new Float64Array(Q),s=ZA(A);for(let B=0;B<Q;B++){let C=B*g*i,E=d.fromData(s.slice(C,C+g*i),[g,i],"float64");a[B]=jr(E,r,!1)}if(I){let B=[...n,1,1],C=d.fromData(a,n,"float64");return EA(C,B)}return d.fromData(a,n,"float64")}let[e,t]=A.shape,o;if(r==="fro"){o=0;for(let n=0;n<e;n++)for(let g=0;g<t;g++){let i=Number(A.get(n,g));o+=i*i}o=Math.sqrt(o)}else if(r==="nuc"){let{s:n}=Mr(A);o=0;for(let g=0;g<n.size;g++)o+=Number(n.get(g))}else if(r===1){o=0;for(let n=0;n<t;n++){let g=0;for(let i=0;i<e;i++)g+=Math.abs(Number(A.get(i,n)));o=Math.max(o,g)}}else if(r===-1){o=1/0;for(let n=0;n<t;n++){let g=0;for(let i=0;i<e;i++)g+=Math.abs(Number(A.get(i,n)));o=Math.min(o,g)}}else if(r===1/0){o=0;for(let n=0;n<e;n++){let g=0;for(let i=0;i<t;i++)g+=Math.abs(Number(A.get(n,i)));o=Math.max(o,g)}}else if(r===-1/0){o=1/0;for(let n=0;n<e;n++){let g=0;for(let i=0;i<t;i++)g+=Math.abs(Number(A.get(n,i)));o=Math.min(o,g)}}else if(r===2){let{s:n}=Mr(A);o=Number(n.get(0))}else if(r===-2){let{s:n}=Mr(A);o=Number(n.get(n.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${r}`);if(I){let n=d.zeros([1,1],"float64");return n.set([0,0],o),n}return o}function Ip(A,r=null,I=null,e=!1){if(r===null){if(I===null)return xI(A,2,null,e);if(typeof I=="number")return xI(A,2,I,e);r="fro"}if(Array.isArray(I)){if(I.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let t=I[0]<0?A.ndim+I[0]:I[0],o=I[1]<0?A.ndim+I[1]:I[1],n=r??"fro";if(A.ndim===2)return jr(A,n,e);let g=A.ndim,i=Array.from({length:g},(D,m)=>m).filter(D=>D!==t&&D!==o),Q=i.map(D=>A.shape[D]),a=Q.reduce((D,m)=>D*m,1)||1,s=A.shape[t],B=A.shape[o],C=[...i,t,o],E=$r(A,C),u=new Float64Array(a);for(let D=0;D<a;D++){let m=new Array(Q.length),c=D;for(let l=Q.length-1;l>=0;l--)m[l]=c%Q[l],c=Math.floor(c/Q[l]);let f=d.zeros([s,B],"float64");for(let l=0;l<s;l++)for(let h=0;h<B;h++)f.set([l,h],Number(E.get(...m,l,h)));let y=jr(f,n,!1);u[D]=typeof y=="number"?y:Number(y)}if(e){let D=Array.from(A.shape);return D[t]=1,D[o]=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 jr(A,r,e);if(typeof r!="number"&&r!==null)throw new Error(`norm: ord '${r}' not valid for vector norm`);return xI(A,r??2,I,e)}function fg(A,r="reduced"){if(A.ndim>2){let C=A.shape.slice(0,-2),[E,u]=[A.shape[A.ndim-2],A.shape[A.ndim-1]],D=Math.min(E,u),m=C.reduce((l,h)=>l*h,1),c=r==="complete"?E:D,f=d.zeros([...C,E,c],"float64"),y=d.zeros([...C,c,u],"float64");for(let l=0;l<m;l++){let h=cg(l,C),b=d.zeros([E,u],"float64");for(let w=0;w<E;w++)for(let N=0;N<u;N++)b.set([w,N],Number(A.get(...h,w,N)));let p=fg(b,r);for(let w=0;w<E;w++)for(let N=0;N<c;N++)f.set([...h,w,N],Number(p.q.get(w,N)));for(let w=0;w<c;w++)for(let N=0;N<u;N++)y.set([...h,w,N],Number(p.r.get(w,N)))}return{q:f,r:y}}if(A.ndim!==2)throw new Error(`qr: input must be 2D, got ${A.ndim}D`);if(r==="reduced"){let C=Lb(A);if(C)return C}let[I,e]=A.shape,t=Math.min(I,e),o=d.zeros([I,e],"float64");for(let C=0;C<I;C++)for(let E=0;E<e;E++)o.set([C,E],Number(A.get(C,E)));let n=[],g=[];for(let C=0;C<t;C++){let E=I-C,u=[];for(let l=C;l<I;l++)u.push(Number(o.get(l,C)));let D=0;for(let l=0;l<E;l++)D+=u[l]*u[l];if(D=Math.sqrt(D),D<1e-15){n.push(u),g.push(0);continue}let m=u[0]>=0?1:-1,c=u[0]+m*D,f=[1];for(let l=1;l<E;l++)f.push(u[l]/c);let y=m*c/D;g.push(y),n.push(f);for(let l=C;l<e;l++){let h=0;for(let b=0;b<E;b++)h+=f[b]*Number(o.get(C+b,l));for(let b=0;b<E;b++)o.set([C+b,l],Number(o.get(C+b,l))-y*f[b]*h)}}if(r==="raw"){let C=d.zeros([I,e],"float64");for(let u=0;u<I;u++)for(let D=0;D<e;D++)C.set([u,D],Number(o.get(u,D)));let E=d.zeros([t],"float64");for(let u=0;u<t;u++)E.set([u],g[u]);return{h:C,tau:E}}if(r==="r"){let C=d.zeros([t,e],"float64");for(let E=0;E<t;E++)for(let u=E;u<e;u++)C.set([E,u],Number(o.get(E,u)));return C}let i=r==="complete"?I:t,Q=d.zeros([I,i],"float64");for(let C=0;C<Math.min(I,i);C++)Q.set([C,C],1);for(let C=t-1;C>=0;C--){let E=n[C],u=g[C],D=I-C;for(let m=C;m<i;m++){let c=0;for(let f=0;f<D;f++)c+=E[f]*Number(Q.get(C+f,m));for(let f=0;f<D;f++)Q.set([C+f,m],Number(Q.get(C+f,m))-u*E[f]*c)}}let a=d.zeros([I,i],"float64");for(let C=0;C<I;C++)for(let E=0;E<i;E++)a.set([C,E],Number(Q.get(C,E)));let s=r==="complete"?I:t,B=d.zeros([s,e],"float64");for(let C=0;C<s;C++)for(let E=0;E<e;E++)E>=C&&B.set([C,E],Number(o.get(C,E)));return{q:a,r:B}}function MB(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 g=Array.from(A.shape).slice(0,-2),i=A.shape[A.ndim-1],Q=A.shape[A.ndim-2];if(Q!==i)throw new Error(`cholesky: last 2 dimensions must be square, got ${Q}x${i}`);let a=g.reduce((C,E)=>C*E,1),s=new Float64Array(a*i*i),B=ZA(A);for(let C=0;C<a;C++){let E=C*i*i,u=d.fromData(B.slice(E,E+i*i),[i,i],"float64"),D=MB(u,r);s.set(ZA(D),E)}return d.fromData(s,[...g,i,i],"float64")}let[I,e]=A.shape;if(I!==e)throw new Error(`cholesky: matrix must be square, got ${I}x${e}`);let t=_b(A);if(t){if(r){let g=I,i=d.zeros([g,g],"float64");for(let Q=0;Q<g;Q++)for(let a=Q;a<g;a++)i.set([Q,a],Number(t.get(a,Q)));return i}return t}let o=I,n=d.zeros([o,o],"float64");for(let g=0;g<o;g++)for(let i=0;i<=g;i++){let Q=0;if(g===i){for(let s=0;s<i;s++)Q+=Number(n.get(i,s))**2;let a=Number(A.get(i,i))-Q;if(a<0)throw new Error("cholesky: matrix is not positive definite");n.set([i,i],Math.sqrt(a))}else{for(let s=0;s<i;s++)Q+=Number(n.get(g,s))*Number(n.get(i,s));let a=Number(n.get(i,i));if(Math.abs(a)<1e-15)throw new Error("cholesky: matrix is not positive definite");n.set([g,i],(Number(A.get(g,i))-Q)/a)}}if(r){let g=d.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let Q=i;Q<o;Q++)g.set([i,Q],Number(n.get(Q,i)));return g}return n}function Mr(A){if(A.ndim!==2)throw new Error(`svd: input must be 2D, got ${A.ndim}D`);let r=Xb(A);if(r)return r;let[I,e]=A.shape,t=Math.min(I,e),o=d.zeros([e,e],"float64");for(let B=0;B<e;B++)for(let C=0;C<e;C++){let E=0;for(let u=0;u<I;u++)E+=Number(A.get(u,B))*Number(A.get(u,C));o.set([B,C],E)}let{values:n,vectors:g}=xB(o),i=Array.from({length:e},(B,C)=>C);i.sort((B,C)=>n[C]-n[B]);let Q=d.zeros([t],"float64");for(let B=0;B<t;B++){let C=n[i[B]];Q.set([B],Math.sqrt(Math.max(0,C)))}let a=d.zeros([e,e],"float64");for(let B=0;B<e;B++)for(let C=0;C<e;C++)a.set([B,C],g[C][i[B]]);let s=d.zeros([I,I],"float64");for(let B=0;B<I;B++)for(let C=0;C<t;C++){let E=Number(Q.get(C));if(E>1e-10){let u=0;for(let D=0;D<e;D++)u+=Number(A.get(B,D))*Number(a.get(C,D));s.set([B,C],u/E)}}if(I>t)for(let B=t;B<I;B++){let C=new Array(I).fill(0);C[B]=1;for(let u=0;u<B;u++){let D=0;for(let m=0;m<I;m++)D+=C[m]*Number(s.get(m,u));for(let m=0;m<I;m++)C[m]=C[m]-D*Number(s.get(m,u))}let E=0;for(let u=0;u<I;u++)E+=C[u]*C[u];if(E=Math.sqrt(E),E>1e-10)for(let u=0;u<I;u++)s.set([u,B],C[u]/E)}return{u:s,s:Q,vt:a}}function xB(A){let r=A.shape[0],I=100*r*r,e=1e-10,t=[];for(let g=0;g<r;g++){t.push([]);for(let i=0;i<r;i++)t[g].push(Number(A.get(g,i)))}let o=[];for(let g=0;g<r;g++){o.push([]);for(let i=0;i<r;i++)o[g].push(g===i?1:0)}for(let g=0;g<I;g++){let i=0,Q=0,a=1;for(let f=0;f<r;f++)for(let y=f+1;y<r;y++)Math.abs(t[f][y])>i&&(i=Math.abs(t[f][y]),Q=f,a=y);if(i<e)break;let s=t[Q][Q],B=t[a][a],C=t[Q][a],E;Math.abs(s-B)<1e-15?E=Math.PI/4:E=.5*Math.atan2(2*C,B-s);let u=Math.cos(E),D=Math.sin(E),m=u*u*s+D*D*B-2*D*u*C,c=D*D*s+u*u*B+2*D*u*C;t[Q][Q]=m,t[a][a]=c,t[Q][a]=0,t[a][Q]=0;for(let f=0;f<r;f++)if(f!==Q&&f!==a){let y=t[f][Q],l=t[f][a];t[f][Q]=u*y-D*l,t[Q][f]=t[f][Q],t[f][a]=D*y+u*l,t[a][f]=t[f][a]}for(let f=0;f<r;f++){let y=o[f][Q],l=o[f][a];o[f][Q]=u*y-D*l,o[f][a]=D*y+u*l}}let n=[];for(let g=0;g<r;g++)n.push(t[g][g]);return{values:n,vectors:o}}function Dg(A,r=!0,I=!0){if(A.ndim>2){let t=A.shape.slice(0,-2),[o,n]=[A.shape[A.ndim-2],A.shape[A.ndim-1]],g=Math.min(o,n),i=t.reduce((E,u)=>E*u,1);if(!I){let E=d.zeros([...t,g],"float64");for(let u=0;u<i;u++){let D=cg(u,t),m=d.zeros([o,n],"float64");for(let f=0;f<o;f++)for(let y=0;y<n;y++)m.set([f,y],Number(A.get(...D,f,y)));let{s:c}=Mr(m);for(let f=0;f<g;f++)E.set([...D,f],Number(c.get(f)))}return E}let Q=r?o:g,a=r?n:g,s=d.zeros([...t,o,Q],"float64"),B=d.zeros([...t,g],"float64"),C=d.zeros([...t,a,n],"float64");for(let E=0;E<i;E++){let u=cg(E,t),D=d.zeros([o,n],"float64");for(let c=0;c<o;c++)for(let f=0;f<n;f++)D.set([c,f],Number(A.get(...u,c,f)));let m=Dg(D,r,!0);for(let c=0;c<o;c++)for(let f=0;f<Q;f++)s.set([...u,c,f],Number(m.u.get(c,f)));for(let c=0;c<g;c++)B.set([...u,c],Number(m.s.get(c)));for(let c=0;c<a;c++)for(let f=0;f<n;f++)C.set([...u,c,f],Number(m.vt.get(c,f)))}return{u:s,s:B,vt:C}}let e=Mr(A);if(!I)return e.s;if(!r){let[t,o]=A.shape,n=Math.min(t,o),g=d.zeros([t,n],"float64");for(let Q=0;Q<t;Q++)for(let a=0;a<n;a++)g.set([Q,a],Number(e.u.get(Q,a)));let i=d.zeros([n,o],"float64");for(let Q=0;Q<n;Q++)for(let a=0;a<o;a++)i.set([Q,a],Number(e.vt.get(Q,a)));return{u:g,s:e.s,vt:i}}return e}function JB(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),a=A.shape[A.ndim-1],s=A.shape[A.ndim-2];if(s!==a)throw new Error(`det: last 2 dimensions must be square, got ${s}x${a}`);let B=Q.reduce((u,D)=>u*D,1),C=new Float64Array(B),E=ZA(A);for(let u=0;u<B;u++){let D=u*a*a,m=d.fromData(E.slice(D,D+a*a),[a,a],"float64");C[u]=JB(m)}return d.fromData(C,Q,"float64")}let[r,I]=A.shape;if(r!==I)throw new Error(`det: matrix must be square, got ${r}x${I}`);let e=r;if(e===0)return 1;let t=A.data;if(e===1)return Number(t[0]);if(e===2)return Number(t[0])*Number(t[3])-Number(t[1])*Number(t[2]);let{lu:o,sign:n}=mg(A),g=o.data,i=n;for(let Q=0;Q<e;Q++)i*=g[Q*e+Q];return i}function mg(A){let[r,I]=A.shape,e=r,t=I,o=d.zeros([e,t],"float64"),n=o.data,g=A.data;for(let a=0;a<e*t;a++)n[a]=Number(g[a]);let i=Array.from({length:e},(a,s)=>s),Q=1;for(let a=0;a<Math.min(e,t);a++){let s=Math.abs(n[a*t+a]),B=a;for(let E=a+1;E<e;E++){let u=Math.abs(n[E*t+a]);u>s&&(s=u,B=E)}if(B!==a){for(let u=0;u<t;u++){let D=n[a*t+u];n[a*t+u]=n[B*t+u],n[B*t+u]=D}let E=i[a];i[a]=i[B],i[B]=E,Q=-Q}let C=n[a*t+a];if(Math.abs(C)>1e-15)for(let E=a+1;E<e;E++){let u=n[E*t+a]/C;n[E*t+a]=u;for(let D=a+1;D<t;D++)n[E*t+D]=n[E*t+D]-u*n[a*t+D]}}return{lu:o,piv:i,sign:Q}}function JI(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),a=A.shape[A.ndim-1],s=A.shape[A.ndim-2];if(s!==a)throw new Error(`inv: last 2 dimensions must be square, got ${s}x${a}`);let B=Q.reduce((u,D)=>u*D,1),C=ZA(A),E=new Float64Array(B*a*a);for(let u=0;u<B;u++){let D=u*a*a,m=d.fromData(C.slice(D,D+a*a),[a,a],"float64"),f=JI(m).data;for(let y=0;y<a*a;y++)E[D+y]=f[y]}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 e=r,{lu:t,piv:o}=mg(A),n=t.data,g=d.zeros([e,e],"float64"),i=g.data;for(let Q=0;Q<e;Q++){let a=new Float64Array(e);for(let s=0;s<e;s++){let B=o[s]===Q?1:0;for(let C=0;C<s;C++)B-=n[s*e+C]*a[C];a[s]=B}for(let s=e-1;s>=0;s--){let B=a[s];for(let E=s+1;E<e;E++)B-=n[s*e+E]*i[E*e+Q];let C=n[s*e+s];if(Math.abs(C)<1e-15)throw new Error("inv: singular matrix");i[s*e+Q]=B/C}}return g}function Vb(A,r){let[I]=A.shape,e=I,{lu:t,piv:o}=mg(A),n=t.data,g=r.data,i=new Float64Array(e);for(let B=0;B<e;B++)i[B]=Number(g[o[B]]);let Q=new Float64Array(e);for(let B=0;B<e;B++){let C=i[B];for(let E=0;E<B;E++)C-=n[B*e+E]*Q[E];Q[B]=C}let a=d.zeros([e],"float64"),s=a.data;for(let B=e-1;B>=0;B--){let C=Q[B];for(let u=B+1;u<e;u++)C-=n[B*e+u]*s[u];let E=n[B*e+B];if(Math.abs(E)<1e-15)throw new Error("solve: singular matrix");s[B]=C/E}return a}function UB(A,r){if(A.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${A.ndim}D`);let[I,e]=A.shape;if(I!==e)throw new Error(`solve: coefficient matrix must be square, got ${I}x${e}`);let t=I;if(r.ndim===1){if(r.shape[0]!==t)throw new Error(`solve: incompatible shapes (${I},${e}) and (${r.shape[0]},)`);return Vb(A,r)}if(r.ndim===2){if(r.shape[0]!==t)throw new Error(`solve: incompatible shapes (${I},${e}) and (${r.shape[0]},${r.shape[1]})`);let o=r.shape[1],n=d.zeros([t,o],"float64");for(let g=0;g<o;g++){let i=d.zeros([t],"float64");for(let a=0;a<t;a++)i.set([a],Number(r.get(a,g)));let Q=Vb(A,i);for(let a=0;a<t;a++)n.set([a,g],Number(Q.get(a)))}return n}throw new Error(`solve: b must be 1D or 2D, got ${r.ndim}D`)}function ep(A,r,I=null){if(A.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${A.ndim}D`);let[e,t]=A.shape,{u:o,s:n,vt:g}=Mr(A),i=Math.min(e,t),Q=I??Math.max(e,t)*Number.EPSILON,s=Number(n.get(0))*Q,B=0;for(let c=0;c<i;c++)Number(n.get(c))>s&&B++;let C=r.ndim===1?EA(r,[r.size,1]):r,E=C.shape[1];if(C.shape[0]!==e)throw new Error(`lstsq: incompatible shapes (${e},${t}) and (${r.shape.join(",")})`);let u=d.zeros([t,E],"float64");for(let c=0;c<E;c++){let f=new Array(e).fill(0);for(let y=0;y<e;y++)for(let l=0;l<e;l++)f[y]+=Number(o.get(l,y))*Number(C.get(l,c));for(let y=0;y<t;y++){let l=0;for(let h=0;h<i;h++){let b=Number(n.get(h));b>s&&(l+=Number(g.get(h,y))*f[h]/b)}u.set([y,c],l)}}let D;if(e>t){D=d.zeros([E],"float64");for(let c=0;c<E;c++){let f=0;for(let y=0;y<e;y++){let l=0;for(let b=0;b<t;b++)l+=Number(A.get(y,b))*Number(u.get(b,c));let h=l-Number(C.get(y,c));f+=h*h}D.set([c],f)}}else D=d.zeros([0],"float64");return{x:r.ndim===1?EA(u,[t]):u,residuals:D,rank:B,s:n}}function tp(A,r=2){if(A.ndim!==2)throw new Error(`cond: input must be 2D, got ${A.ndim}D`);let[I,e]=A.shape;if(r===2||r===-2){let{s:g}=Mr(A),i=Math.min(I,e),Q=Number(g.get(0)),a=Number(g.get(i-1));return r===2?a>0?Q/a:1/0:Q>0?a/Q:0}if(I!==e)throw new Error(`cond: matrix must be square for p=${r}`);let t=jr(A,r),o=JI(A),n=jr(o,r);return t*n}function op(A,r){if(A.ndim===0)return Number(A.get())!==0?1:0;if(A.ndim===1){for(let n=0;n<A.size;n++)if(Number(A.get(n))!==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}=Mr(A),e=Number(I.get(0)),t=r??e*Math.max(A.shape[0],A.shape[1])*Number.EPSILON,o=0;for(let n=0;n<I.size;n++)Number(I.get(n))>t&&o++;return o}function np(A,r){if(A.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${A.ndim}D`);let[I,e]=A.shape;if(I!==e)throw new Error(`matrix_power: matrix must be square, got ${I}x${e}`);let t=I;if(!Number.isInteger(r))throw new Error("matrix_power: exponent must be an integer");if(r===0){let s=d.zeros([t,t],"float64");for(let B=0;B<t;B++)s.set([B,B],1);return s}let o=A,n=r;r<0&&(o=JI(A),n=-r);let g=o.dtype==="float32"?"float32":"float64",i=d.zeros([t,t],g),Q=i.data;for(let s=0;s<t;s++)Q[s*t+s]=1;let a;if(o.isCContiguous&&(o.dtype==="float64"||o.dtype==="float32"))a=o.copy();else{a=d.zeros([t,t],g);let s=a.data,B=o.data,C=o.offset,[E=0,u=0]=o.strides;for(let D=0;D<t;D++)for(let m=0;m<t;m++)s[D*t+m]=Number(B[C+D*E+m*u])}for(;n>0;)n&1&&(i=OA(i,a)),a=OA(a,a),n>>=1;return i}function LB(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 s=Array.from(A.shape).slice(0,-2),B=A.shape[A.ndim-2],C=A.shape[A.ndim-1],E=s.reduce((m,c)=>m*c,1),u=new Float64Array(E*C*B),D=ZA(A);for(let m=0;m<E;m++){let c=m*B*C,f=d.fromData(D.slice(c,c+B*C),[B,C],"float64"),y=LB(f,r);u.set(ZA(y),m*C*B)}return d.fromData(u,[...s,C,B],"float64")}let[I,e]=A.shape,{u:t,s:o,vt:n}=Mr(A),g=Math.min(I,e),Q=Number(o.get(0))*r,a=d.zeros([e,I],"float64");for(let s=0;s<e;s++)for(let B=0;B<I;B++){let C=0;for(let E=0;E<g;E++){let u=Number(o.get(E));u>Q&&(C+=Number(n.get(E,s))*Number(t.get(B,E))/u)}a.set([s,B],C)}return a}function yg(A){if(A.ndim<2)throw new Error(`eig: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let a=Array.from(A.shape).slice(0,-2),s=A.shape[A.ndim-1],B=A.shape[A.ndim-2];if(B!==s)throw new Error(`eig: last 2 dimensions must be square, got ${B}x${s}`);let C=a.reduce((m,c)=>m*c,1),E=new Float64Array(C*s),u=new Float64Array(C*s*s),D=ZA(A);for(let m=0;m<C;m++){let c=m*s*s,f=d.fromData(D.slice(c,c+s*s),[s,s],"float64"),{w:y,v:l}=yg(f);E.set(ZA(y),m*s),u.set(ZA(l),c)}return{w:d.fromData(E,[...a,s],"float64"),v:d.fromData(u,[...a,s,s],"float64")}}let[r,I]=A.shape;if(r!==I)throw new Error(`eig: matrix must be square, got ${r}x${I}`);let e=r,t=!0;A:for(let a=0;a<e;a++)for(let s=a+1;s<e;s++)if(Math.abs(Number(A.get(a,s))-Number(A.get(s,a)))>1e-10){t=!1;break A}if(t){let{values:a,vectors:s}=xB(A),B=d.zeros([e],"float64"),C=d.zeros([e,e],"float64");for(let E=0;E<e;E++){B.set([E],a[E]);for(let u=0;u<e;u++)C.set([u,E],s[u][E])}return{w:B,v:C}}let{values:o,vectors:n,hasComplexEigenvalues:g}=o_(A);g&&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 i=d.zeros([e],"float64"),Q=d.zeros([e,e],"float64");for(let a=0;a<e;a++){i.set([a],o[a]);for(let s=0;s<e;s++)Q.set([s,a],n[s][a])}return{w:i,v:Q}}function o_(A){let r=A.shape[0],I=1e3,e=1e-10,t=d.zeros([r,r],"float64");for(let Q=0;Q<r;Q++)for(let a=0;a<r;a++)t.set([Q,a],Number(A.get(Q,a)));let o=d.zeros([r,r],"float64");for(let Q=0;Q<r;Q++)o.set([Q,Q],1);for(let Q=0;Q<I;Q++){let a=0;for(let E=0;E<r;E++)for(let u=0;u<r;u++)E!==u&&(a+=Number(t.get(E,u))**2);if(Math.sqrt(a)<e*r)break;let s=fg(t,"reduced"),B=s.q,C=s.r;t=OA(C,B),o=OA(o,B)}let n=!1;for(let Q=0;Q<r-1;Q++){let a=Math.abs(Number(t.get(Q+1,Q))),s=Math.abs(Number(t.get(Q,Q))),B=Math.abs(Number(t.get(Q+1,Q+1))),C=Math.max(s,B,1e-10);if(a/C>1e-6){n=!0;break}}let g=[];for(let Q=0;Q<r;Q++)g.push(Number(t.get(Q,Q)));let i=[];for(let Q=0;Q<r;Q++){i.push([]);for(let a=0;a<r;a++)i[Q].push(Number(o.get(Q,a)))}return{values:g,vectors:i,hasComplexEigenvalues:n}}function lg(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 s=Array.from(A.shape).slice(0,-2),B=A.shape[A.ndim-1],C=A.shape[A.ndim-2];if(C!==B)throw new Error(`eigh: last 2 dimensions must be square, got ${C}x${B}`);let E=s.reduce((c,f)=>c*f,1),u=new Float64Array(E*B),D=new Float64Array(E*B*B),m=ZA(A);for(let c=0;c<E;c++){let f=c*B*B,y=d.fromData(m.slice(f,f+B*B),[B,B],"float64"),{w:l,v:h}=lg(y,r);u.set(ZA(l),c*B),D.set(ZA(h),f)}return{w:d.fromData(u,[...s,B],"float64"),v:d.fromData(D,[...s,B,B],"float64")}}let[I,e]=A.shape;if(I!==e)throw new Error(`eigh: matrix must be square, got ${I}x${e}`);let t=I,o=d.zeros([t,t],"float64");for(let s=0;s<t;s++)for(let B=0;B<t;B++)r==="L"?s>=B&&(o.set([s,B],Number(A.get(s,B))),o.set([B,s],Number(A.get(s,B)))):B>=s&&(o.set([s,B],Number(A.get(s,B))),o.set([B,s],Number(A.get(s,B))));let{values:n,vectors:g}=xB(o),i=Array.from({length:t},(s,B)=>B);i.sort((s,B)=>n[s]-n[B]);let Q=d.zeros([t],"float64"),a=d.zeros([t,t],"float64");for(let s=0;s<t;s++){Q.set([s],n[i[s]]);for(let B=0;B<t;B++)a.set([B,s],g[B][i[s]])}return{w:Q,v:a}}function ip(A){let{w:r}=yg(A);return r}function gp(A,r="L"){let{w:I}=lg(A,r);return I}function Qp(A,r){let I=gI(A),e=gI(r),t=I.shape[0],o=e.shape[0];if(t!==o)throw new Error(`vdot: arrays must have same number of elements, got ${t} and ${o}`);let n=k(A.dtype)||k(r.dtype);if(n){let a=pb(I,e);if(a!==null)return a}else{let a=ug(I,e);if(a!==null)return a}if(n){let a=0,s=0;for(let B=0;B<t;B++){let C=I.get(B),E=e.get(B),u=C instanceof T?C.re:Number(C),D=C instanceof T?C.im:0,m=E instanceof T?E.re:Number(E),c=E instanceof T?E.im:0;a+=u*m+D*c,s+=-D*m+u*c}return Math.abs(s)<1e-15?a:new T(a,s)}let g=IA(A.dtype,r.dtype),i=ir(g);if(i){i[0]=0;for(let a=0;a<t;a++)i[0]+=Number(I.get(a))*Number(e.get(a));return i[0]}let Q=0;for(let a=0;a<t;a++){let s=I.get(a),B=e.get(a);typeof s=="bigint"&&typeof B=="bigint"?Q=(typeof Q=="bigint"?Q:BigInt(Q))+s*B:Q=(typeof Q=="bigint"?Number(Q):Q)+Number(s)*Number(B)}return Q}function ap(A,r,I=-1){let e=A.ndim,t=r.ndim,o=I<0?e+I:I,n=I<0?t+I:I;if(o<0||o>=e)throw new Error(`vecdot: axis ${I} out of bounds for array with ${e} dimensions`);if(n<0||n>=t)throw new Error(`vecdot: axis ${I} out of bounds for array with ${t} dimensions`);let g=A.shape[o],i=r.shape[n];if(g!==i)throw new Error(`vecdot: axis dimensions must match, got ${g} and ${i}`);if(e===1&&t===1){if(!(k(A.dtype)||k(r.dtype)))return aI(A,r);let f=A.shape[0],y=0,l=0;for(let h=0;h<f;h++){let b=A.get(h),p=r.get(h),w=b instanceof T?new T(b.re,-b.im):b,N=mr(w,p);N instanceof T?(y+=N.re,l+=N.im):y+=Number(N)}return new T(y,l)}if(e===2&&t===2&&I===-1){let c=lb(A,r);if(c)return c}let Q=[...A.shape.slice(0,o),...A.shape.slice(o+1)],a=[...r.shape.slice(0,n),...r.shape.slice(n+1)],s=g,B=k(A.dtype)||k(r.dtype),C=IA(A.dtype,r.dtype),E=Q.length>a.length?Q:a,u=ir(C);if(E.length===0){if(u){u[0]=0;for(let f=0;f<s;f++)u[0]+=Number(A.get(f))*Number(r.get(f));return u[0]}let c=B?new T(0,0):L(C)?0n:0;for(let f=0;f<s;f++){let y=A.get(f),l=r.get(f),h=y instanceof T?new T(y.re,-y.im):y,b=mr(h,l);if(c instanceof T||b instanceof T){let p=c instanceof T?c:new T(Number(c),0),w=b instanceof T?b:new T(Number(b),0);c=p.add(w)}else typeof c=="bigint"||typeof b=="bigint"?c=BigInt(c)+BigInt(b):c=c+b}return c}let D=d.zeros(E,C),m=E.reduce((c,f)=>c*f,1);for(let c=0;c<m;c++){let f=[],y=c;for(let b=E.length-1;b>=0;b--)f.unshift(y%E[b]),y=Math.floor(y/E[b]);let l=[...f.slice(0,o),0,...f.slice(o)],h=[...f.slice(0,n),0,...f.slice(n)];if(u){u[0]=0;for(let b=0;b<s;b++)l[o]=b,h[n]=b,u[0]+=Number(A.get(...l))*Number(r.get(...h));D.set(f,u[0])}else{let b=B?new T(0,0):L(C)?0n:0;for(let p=0;p<s;p++){l[o]=p,h[n]=p;let w=A.get(...l),N=r.get(...h),F=w instanceof T?new T(w.re,-w.im):w,G=mr(F,N);if(b instanceof T||G instanceof T){let x=b instanceof T?b:new T(Number(b),0),H=G instanceof T?G:new T(Number(G),0);b=x.add(H)}else typeof b=="bigint"||typeof G=="bigint"?b=BigInt(b)+BigInt(G):b=b+G}D.set(f,b)}}return D}function sp(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},(e,t)=>t),I=r.length-1;return r[I]=I-1,r[I-1]=I,$r(A,r)}function Bp(A,r){return $r(A,r)}function Cp(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],e=A.shape[A.ndim-1],t=r.shape[r.ndim-1];if(e!==t)throw new Error(`matvec: last axis of x1 (${e}) must match last axis of x2 (${t})`);if(A.ndim===2&&r.ndim===1)return aI(A,r);let o=A.shape.slice(0,-2),n=r.shape.slice(0,-1),g=Math.max(o.length,n.length),i=[...Array(g-o.length).fill(1),...o],Q=[...Array(g-n.length).fill(1),...n],a=[];for(let D=0;D<g;D++){let m=i[D],c=Q[D];if(m!==1&&c!==1&&m!==c)throw new Error(`matvec: batch dimensions not broadcastable: ${o} vs ${n}`);a.push(Math.max(m,c))}let s=[...a,I],B=IA(A.dtype,r.dtype),C=d.zeros(s,B),E=k(B),u=a.reduce((D,m)=>D*m,1);for(let D=0;D<u;D++){let m=[],c=D;for(let h=a.length-1;h>=0;h--)m.unshift(c%a[h]),c=Math.floor(c/a[h]);let f=m.slice(-(o.length||1)).map((h,b)=>(o[b]??1)===1?0:h),y=m.slice(-(n.length||1)).map((h,b)=>(n[b]??1)===1?0:h),l=ir(B);for(let h=0;h<I;h++)if(l){l[0]=0;for(let b=0;b<e;b++){let p=[...f,h,b],w=[...y,b];l[0]+=Number(A.get(...p))*Number(r.get(...w))}C.set([...m,h],l[0])}else{let b=E?new T(0,0):L(B)?0n:0;for(let p=0;p<e;p++){let w=[...f,h,p],N=[...y,p],F=A.get(...w),G=r.get(...N),x=mr(F,G);if(b instanceof T||x instanceof T){let H=b instanceof T?b:new T(Number(b),0),X=x instanceof T?x:new T(Number(x),0);b=H.add(X)}else typeof b=="bigint"||typeof x=="bigint"?b=BigInt(b)+BigInt(x):b=b+x}C.set([...m,h],b)}}return C}function Ep(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],e=r.shape[r.ndim-2],t=r.shape[r.ndim-1];if(I!==e)throw new Error(`vecmat: last axis of x1 (${I}) must match second-to-last axis of x2 (${e})`);if(A.ndim===1&&r.ndim===2)return aI(A,r);let o=A.shape.slice(0,-1),n=r.shape.slice(0,-2),g=Math.max(o.length,n.length),i=[...Array(g-o.length).fill(1),...o],Q=[...Array(g-n.length).fill(1),...n],a=[];for(let D=0;D<g;D++){let m=i[D],c=Q[D];if(m!==1&&c!==1&&m!==c)throw new Error(`vecmat: batch dimensions not broadcastable: ${o} vs ${n}`);a.push(Math.max(m,c))}let s=[...a,t],B=IA(A.dtype,r.dtype),C=d.zeros(s,B),E=k(B),u=a.reduce((D,m)=>D*m,1);for(let D=0;D<u;D++){let m=[],c=D;for(let h=a.length-1;h>=0;h--)m.unshift(c%a[h]),c=Math.floor(c/a[h]);let f=m.slice(-(o.length||1)).map((h,b)=>(o[b]??1)===1?0:h),y=m.slice(-(n.length||1)).map((h,b)=>(n[b]??1)===1?0:h),l=ir(B);for(let h=0;h<t;h++)if(l){l[0]=0;for(let b=0;b<I;b++){let p=[...f,b],w=[...y,b,h];l[0]+=Number(A.get(...p))*Number(r.get(...w))}C.set([...m,h],l[0])}else{let b=E?new T(0,0):L(B)?0n:0;for(let p=0;p<I;p++){let w=[...f,p],N=[...y,p,h],F=A.get(...w),G=r.get(...N),x=mr(F,G);if(b instanceof T||x instanceof T){let H=b instanceof T?b:new T(Number(b),0),X=x instanceof T?x:new T(Number(x),0);b=H.add(X)}else typeof b=="bigint"||typeof x=="bigint"?b=BigInt(b)+BigInt(x):b=b+x}C.set([...m,h],b)}}return C}function HB(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),a=A.shape[A.ndim-1],s=A.shape[A.ndim-2];if(s!==a)throw new Error(`slogdet: last 2 dimensions must be square, got ${s}x${a}`);let B=Q.reduce((D,m)=>D*m,1),C=new Float64Array(B),E=new Float64Array(B),u=ZA(A);for(let D=0;D<B;D++){let m=D*a*a,c=d.fromData(u.slice(m,m+a*a),[a,a],"float64"),{sign:f,logabsdet:y}=HB(c);C[D]=f,E[D]=y}return{sign:d.fromData(C,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 e=r;if(e===0)return{sign:1,logabsdet:0};let{lu:t,sign:o}=mg(A),n=t.data,g=0,i=o;for(let Q=0;Q<e;Q++){let a=n[Q*e+Q];if(a===0)return{sign:0,logabsdet:-1/0};a<0&&(i=-i),g+=Math.log(Math.abs(a))}return{sign:i,logabsdet:g}}function up(A){return Dg(A,!0,!1)}function cp(A){if(A.length<2)throw new Error("multi_dot: need at least 2 arrays");if(A.length===2)return OA(A[0],A[1]);let r=A[0];for(let I=1;I<A.length;I++)r=OA(r,A[I]);return r}function fp(A,r=2){if(r<=0)throw new Error(`tensorinv: ind must be positive, got ${r}`);let I=A.shape,e=A.ndim;if(e<r)throw new Error(`tensorinv: array has ${e} dimensions, ind=${r} is too large`);let t=1;for(let Q=0;Q<r;Q++)t*=I[Q];let o=1;for(let Q=r;Q<e;Q++)o*=I[Q];if(t!==o)throw new Error(`tensorinv: product of first ${r} dimensions (${t}) must equal product of remaining dimensions (${o})`);let n=EA(A,[t,o]),g=JI(n),i=[...I.slice(r),...I.slice(0,r)];return EA(g,i)}function Dp(A,r,I){let e=A.shape,t=r.shape,o=A.ndim,n=r.ndim,g;I==null?g=Array.from({length:n},(f,y)=>o-n+y):g=I.map(f=>f<0?o+f:f);let i=[];for(let f=0;f<o;f++)g.includes(f)||i.push(f);let Q=[...i,...g],a=$r(A,Q),B=g.map(f=>e[f]).reduce((f,y)=>f*y,1),E=i.map(f=>e[f]).reduce((f,y)=>f*y,1),u=t.reduce((f,y)=>f*y,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=EA(a,[E,B]),m=EA(r,[B]),c=UB(D,m);return EA(c,[...t])}function mp(A,...r){let I=A.indexOf("->"),e,t;I===-1?(e=A,t=$b(e)):(e=A.slice(0,I),t=A.slice(I+2));let o=e.split(",").map(B=>B.trim());if(o.length!==r.length)throw new Error(`einsum_path: expected ${o.length} operands, got ${r.length}`);let n=r.map(B=>Array.isArray(B)?B:Array.from(B.shape)),g=new Map;for(let B=0;B<r.length;B++){let C=o[B],E=n[B];if(C.length!==E.length)throw new Error(`einsum_path: operand ${B} has ${E.length} dimensions but subscript '${C}' has ${C.length} indices`);for(let u=0;u<C.length;u++){let D=C[u],m=E[u];if(g.has(D)&&g.get(D)!==m)throw new Error(`einsum_path: size mismatch for index '${D}': ${g.get(D)} vs ${m}`);g.set(D,m)}}if(r.length===1){let B=[[0]];return[B,kB(A,n,B,g)]}if(r.length===2){let B=[[0,1]];return[B,kB(A,n,B,g)]}let i=[],Q=[...o],a=[...n],s=r.map((B,C)=>C);for(;Q.length>1;){let B=0,C=1,E=1/0;for(let m=0;m<Q.length;m++)for(let c=m+1;c<Q.length;c++){let f=n_(Q[m],Q[c],a[m],a[c],t,g);f<E&&(E=f,B=m,C=c)}i.push([s[B],s[C]]);let[u,D]=i_(Q[B],Q[C],a[B],a[C],t,g);Q.splice(C,1),Q.splice(B,1),a.splice(C,1),a.splice(B,1),s.splice(C,1),s.splice(B,1),Q.push(u),a.push(D),s.push(-1)}return[i,kB(A,n,i,g)]}function n_(A,r,I,e,t,o){let n=new Set(A),g=new Set(r),i=1;for(let Q of n)i*=o.get(Q)||1;for(let Q of g)n.has(Q)||(i*=o.get(Q)||1);return i}function i_(A,r,I,e,t,o){let n=new Set([...A,...r]),g=new Map;for(let s of A)g.set(s,(g.get(s)||0)+1);for(let s of r)g.set(s,(g.get(s)||0)+1);let i=new Set(t),Q=[];for(let s of n)(i.has(s)||g.get(s)===1)&&Q.push(s);Q.sort();let a=Q.map(s=>o.get(s));return[Q.join(""),a]}function kB(A,r,I,e){let t=[];t.push(" Complete contraction: "+A),t.push(" Operand shapes: "+r.map(n=>`(${n.join(", ")})`).join(", ")),t.push(" Contraction path: "+JSON.stringify(I));let o=0;for(let n of r)o+=n.reduce((g,i)=>g*i,1);return t.push(" Estimated FLOPS: ~"+o.toExponential(2)),t.join(`
5
- `)}function UI(A,r){let I=aI(S(A),S(r));return typeof I=="number"||typeof I=="bigint"||I instanceof T?I:R(I)}function LI(A,r=0,I=0,e=1){let t=Wb(S(A),r,I,e);return t instanceof d?R(t):t}function HI(A,r=0,I=0,e=1){return R(zb(S(A),r,I,e))}function _B(A,r){return R(Ap(S(A),S(r)))}function _I(A,r){return jA($r(S(A),r),A)}function YI(A,r){let I=Ob(S(A),S(r));return typeof I=="number"||typeof I=="bigint"||I instanceof T?I:R(I)}function vI(A,r){return R(qB(S(A),S(r)))}function XI(A,r,I=2){let e=Zb(S(A),S(r),I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function YB(A,...r){let I=r.map(t=>S(t)),e=jb(A,...I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function vB(A,...r){let I=r.map(e=>S(e));return mp(A,...I)}function XB(A,r){return Qp(S(A),S(r))}function hg(A,r,I=-1){let e=ap(S(A),S(r),I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function dg(A){return jA(sp(S(A)),A)}function bg(A,r){return jA(Bp(S(A),r),A)}function TB(A,r){return R(Cp(S(A),S(r)))}function PB(A,r){return R(Ep(S(A),S(r)))}function pg(A,r,I=-1,e=-1,t=-1,o){let n=rp(S(A),S(r),I,e,t,o);return typeof n=="number"||typeof n=="bigint"||n instanceof T?n:R(n)}function Zt(A,r){return R(OA(S(A),S(r)))}var KB={matmul:(A,r)=>R(OA(S(A),S(r))),dot:(A,r)=>UI(A,r),det:A=>{let r=JB(S(A));return typeof r=="number"?r:R(r)},inv:A=>R(JI(S(A))),solve:(A,r)=>R(UB(S(A),S(r))),lstsq:(A,r,I)=>{let e=ep(S(A),S(r),I);return{x:R(e.x),residuals:R(e.residuals),rank:e.rank,s:R(e.s)}},norm:(A,r,I,e)=>{let t=Ip(S(A),r,I,e);return typeof t=="number"?t:R(t)},cond:(A,r)=>tp(S(A),r),matrix_rank:(A,r)=>op(S(A),r),matrix_power:(A,r)=>R(np(S(A),r)),pinv:(A,r)=>R(LB(S(A),r)),qr:(A,r)=>{let I=fg(S(A),r);return"h"in I&&"tau"in I?{h:R(I.h),tau:R(I.tau)}:"q"in I&&"r"in I?{q:R(I.q),r:R(I.r)}:R(I)},cholesky:(A,r)=>R(MB(S(A),r)),svd:(A,r,I)=>{let e=Dg(S(A),r,I);return"u"in e&&"s"in e&&"vt"in e?{u:R(e.u),s:R(e.s),vt:R(e.vt)}:R(e)},eig:A=>{let r=yg(S(A));return{w:R(r.w),v:R(r.v)}},eigh:(A,r)=>{let I=lg(S(A),r);return{w:R(I.w),v:R(I.v)}},eigvals:A=>R(ip(S(A))),eigvalsh:(A,r)=>R(gp(S(A),r)),slogdet:A=>{let r=HB(S(A)),I=r.sign instanceof d?R(r.sign):r.sign,e=r.logabsdet instanceof d?R(r.logabsdet):r.logabsdet;return{sign:I,logabsdet:e}},svdvals:A=>R(up(S(A))),multi_dot:A=>R(cp(A.map(r=>S(r)))),tensorinv:(A,r)=>R(fp(S(A),r)),tensorsolve:(A,r,I)=>R(Dp(S(A),S(r),I)),vector_norm:(A,r,I,e)=>{let t=xI(S(A),r,I,e);return typeof t=="number"?t:R(t)},matrix_norm:(A,r,I)=>{let e=jr(S(A),r,I);return typeof e=="number"?e:R(e)},cross:(A,r,I,e,t,o)=>pg(A,r,I,e,t,o),matrix_transpose:A=>dg(A),permute_dims:(A,r)=>bg(A,r),trace:(A,r,I,e)=>LI(A,r,I,e),diagonal:(A,r,I,e)=>HI(A,r,I,e),outer:(A,r)=>vI(A,r),inner:(A,r)=>YI(A,r),tensordot:(A,r,I)=>XI(A,r,I),vecdot:(A,r,I)=>hg(A,r,I),transpose:(A,r)=>_I(A,r)};function zt(A,r){return R(EA(S(A),r))}function yr(A){return R(gI(S(A)))}function jt(A){return R(wI(S(A)))}function $t(A,r){return jA(mD(S(A),r),A)}function Ao(A,r){return jA(iI(S(A),r),A)}function ro(A,r,I){return jA(yD(S(A),r,I),A)}function Io(A,r,I){return jA(RQ(S(A),r,I),A)}function VB(A,r,I=0){return jA(qD(S(A),r,I),A)}function TI(A,r=0){return R(Hr(A.map(I=>S(I)),r))}function WB(A,r=0){return R(lD(A.map(I=>S(I)),r))}function wg(A){return R(hD(A.map(r=>S(r))))}function OB(A){return R(kQ(A.map(r=>S(r))))}function ZB(A){return R(dD(A.map(r=>S(r))))}function zB(A){return R(xD(A.map(r=>S(r))))}var jB=wg;function $B(A){return R(YD(A.map(r=>S(r))))}function AC(A,r,I=0){return FI(bD(S(A),r,I),A)}function rC(A,r,I=0){return FI(Be(S(A),r,I),A)}function IC(A,r){return FI(wD(S(A),r),A)}function eC(A,r){return FI(ND(S(A),r),A)}function tC(A,r){return FI(MD(S(A),r),A)}function oC(A,r=0){return dr(_D(S(A),r))}function nC(A,r){return R(FD(S(A),r))}function eo(A,r,I){return R(SD(S(A),r,I))}function to(A,r){return R(GD(S(A),r))}function iC(A){return to(A,1)}function gC(A){return to(A,0)}function QC(A,r=1,I=[0,1]){return R(RD(S(A),r,I))}function aC(A,r,I){return R(kD(S(A),r,I))}function oo(A,r){return R(JD(S(A),r))}function sC(...A){let r=UD(A.map(I=>S(I)));return r.length===1?R(r[0]):dr(r)}function BC(...A){let r=LD(A.map(I=>S(I)));return r.length===1?R(r[0]):dr(r)}function CC(...A){let r=HD(A.map(I=>S(I)));return r.length===1?R(r[0]):dr(r)}function pr(A){let r=new Array(A.length),I=1;for(let e=A.length-1;e>=0;e--)r[e]=I,I*=A[e];return r}function gA(A,r,I,e,t){let o=A.length,n=r[e],g=[],i=[];for(let s=0;s<o;s++)s!==e&&(g.push(A[s]),i.push(r[s]));let Q=new Int32Array(t),a=g.length;if(a===0)Q[0]=I;else if(a===1){let s=i[0];for(let B=0;B<t;B++)Q[B]=I+B*s}else{let s=new Int32Array(a);s[a-1]=1;for(let B=a-2;B>=0;B--)s[B]=s[B+1]*g[B+1];for(let B=0;B<t;B++){let C=I,E=B;for(let u=0;u<a;u++){let D=E/s[u]|0;E-=D*s[u],C+=D*i[u]}Q[B]=C}}return{baseOffsets:Q,axisStride:n}}var Q_="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",no=null;function zA(){if(no)return no;let A=atob(Q_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);no=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=no.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),no}function yp(A,r){return zA().exports.reduce_sum_f64(A,r)}function lp(A,r){return zA().exports.reduce_sum_f32(A,r)}function EC(A,r){return zA().exports.reduce_sum_i64(A,r)}function uC(A,r){return zA().exports.reduce_sum_i32(A,r)}function hp(A,r,I,e,t){zA().exports.reduce_sum_strided_f64(A,r,I,e,t)}function dp(A,r,I,e,t){zA().exports.reduce_sum_strided_f32(A,r,I,e,t)}function bp(A,r,I,e,t){zA().exports.reduce_sum_strided_i64(A,r,I,e,t)}function pp(A,r,I,e,t){zA().exports.reduce_sum_strided_u64(A,r,I,e,t)}function wp(A,r,I,e,t){zA().exports.reduce_sum_strided_i32(A,r,I,e,t)}function Np(A,r,I,e,t){zA().exports.reduce_sum_strided_u32(A,r,I,e,t)}function Fp(A,r,I,e,t){zA().exports.reduce_sum_strided_i16(A,r,I,e,t)}function Sp(A,r,I,e,t){zA().exports.reduce_sum_strided_u16(A,r,I,e,t)}function Gp(A,r,I,e,t){zA().exports.reduce_sum_strided_i8(A,r,I,e,t)}function Rp(A,r,I,e,t){zA().exports.reduce_sum_strided_u8(A,r,I,e,t)}var kp=64,a_={float64:yp,float32:lp,int64:EC,uint64:EC,int32:uC,uint32:uC},qp={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Mp(A){if(!A.isCContiguous)return null;let r=A.size;if(r<kp*Y.thresholdMultiplier)return null;let I=A.dtype,e=a_[I],t=qp[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var s_={float64:hp,float32:dp,int64:bp,uint64:pp,int32:wp,uint32:Np,int16:Fp,uint16:Sp,int8:Gp,uint8:Rp};function xp(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<kp*Y.thresholdMultiplier)return null;let o=A.dtype,n=s_[o],g=qp[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=r*e;J(t*i+Q*8),U();let a=A.offset,s=A.data.subarray(a,a+t),B=q(s),C=_(Q*8);n(B,C,r,I,e);let E=v(C,Q,Float64Array);return d.fromData(E,[Q],"float64")}var B_="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",io=null;function xA(){if(io)return io;let A=atob(B_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);io=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=io.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),io}function Jp(A,r){return xA().exports.reduce_max_f32(A,r)}function Up(A,r){return xA().exports.reduce_max_i64(A,r)}function Lp(A,r){return xA().exports.reduce_max_u64(A,r)}function Hp(A,r){return xA().exports.reduce_max_i32(A,r)}function _p(A,r){return xA().exports.reduce_max_u32(A,r)}function Yp(A,r){return xA().exports.reduce_max_i16(A,r)}function vp(A,r){return xA().exports.reduce_max_u16(A,r)}function Xp(A,r){return xA().exports.reduce_max_i8(A,r)}function Tp(A,r){return xA().exports.reduce_max_u8(A,r)}function Pp(A,r,I,e,t){xA().exports.reduce_max_strided_f32(A,r,I,e,t)}function Kp(A,r,I,e,t){xA().exports.reduce_max_strided_i64(A,r,I,e,t)}function Vp(A,r,I,e,t){xA().exports.reduce_max_strided_u64(A,r,I,e,t)}function Wp(A,r,I,e,t){xA().exports.reduce_max_strided_i32(A,r,I,e,t)}function Op(A,r,I,e,t){xA().exports.reduce_max_strided_u32(A,r,I,e,t)}function Zp(A,r,I,e,t){xA().exports.reduce_max_strided_i16(A,r,I,e,t)}function zp(A,r,I,e,t){xA().exports.reduce_max_strided_u16(A,r,I,e,t)}function jp(A,r,I,e,t){xA().exports.reduce_max_strided_i8(A,r,I,e,t)}function $p(A,r,I,e,t){xA().exports.reduce_max_strided_u8(A,r,I,e,t)}var Aw=64,C_={float32:Jp,int64:Up,uint64:Lp,int32:Hp,uint32:_p,int16:Yp,uint16:vp,int8:Xp,uint8:Tp},rw={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Iw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Aw*Y.thresholdMultiplier)return null;let I=A.dtype,e=C_[I],t=rw[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var E_={float32:Pp,int64:Kp,uint64:Vp,int32:Wp,uint32:Op,int16:Zp,uint16:zp,int8:jp,uint8:$p},u_={float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function ew(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<Aw*Y.thresholdMultiplier)return null;let o=A.dtype,n=E_[o],g=rw[o],i=u_[o];if(!n||!g||!i)return null;let Q=g.BYTES_PER_ELEMENT,a=Q,s=r*e;J(t*Q+s*a),U();let B=A.offset,C=A.data.subarray(B,B+t),E=q(C),u=_(s*a);n(E,u,r,I,e);let D=v(u,s,i);return d.fromData(D,[s],o)}var c_="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",go=null;function JA(){if(go)return go;let A=atob(c_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);go=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=go.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),go}function tw(A,r){return JA().exports.reduce_min_f32(A,r)}function ow(A,r){return JA().exports.reduce_min_i64(A,r)}function nw(A,r){return JA().exports.reduce_min_u64(A,r)}function iw(A,r){return JA().exports.reduce_min_i32(A,r)}function gw(A,r){return JA().exports.reduce_min_u32(A,r)}function Qw(A,r){return JA().exports.reduce_min_i16(A,r)}function aw(A,r){return JA().exports.reduce_min_u16(A,r)}function sw(A,r){return JA().exports.reduce_min_i8(A,r)}function Bw(A,r){return JA().exports.reduce_min_u8(A,r)}function Cw(A,r,I,e,t){JA().exports.reduce_min_strided_f32(A,r,I,e,t)}function Ew(A,r,I,e,t){JA().exports.reduce_min_strided_i64(A,r,I,e,t)}function uw(A,r,I,e,t){JA().exports.reduce_min_strided_u64(A,r,I,e,t)}function cw(A,r,I,e,t){JA().exports.reduce_min_strided_i32(A,r,I,e,t)}function fw(A,r,I,e,t){JA().exports.reduce_min_strided_u32(A,r,I,e,t)}function Dw(A,r,I,e,t){JA().exports.reduce_min_strided_i16(A,r,I,e,t)}function mw(A,r,I,e,t){JA().exports.reduce_min_strided_u16(A,r,I,e,t)}function yw(A,r,I,e,t){JA().exports.reduce_min_strided_i8(A,r,I,e,t)}function lw(A,r,I,e,t){JA().exports.reduce_min_strided_u8(A,r,I,e,t)}var hw=64,f_={float32:tw,int64:ow,uint64:nw,int32:iw,uint32:gw,int16:Qw,uint16:aw,int8:sw,uint8:Bw},dw={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function bw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<hw*Y.thresholdMultiplier)return null;let I=A.dtype,e=f_[I],t=dw[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var D_={float32:Cw,int64:Ew,uint64:uw,int32:cw,uint32:fw,int16:Dw,uint16:mw,int8:yw,uint8:lw},m_={float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function pw(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<hw*Y.thresholdMultiplier)return null;let o=A.dtype,n=D_[o],g=dw[o],i=m_[o];if(!n||!g||!i)return null;let Q=g.BYTES_PER_ELEMENT,a=Q,s=r*e;J(t*Q+s*a),U();let B=A.offset,C=A.data.subarray(B,B+t),E=q(C),u=_(s*a);n(E,u,r,I,e);let D=v(u,s,i);return d.fromData(D,[s],o)}var y_="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",Qo=null;function xr(){if(Qo)return Qo;let A=atob(y_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Qo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Qo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Qo}function ww(A,r){return xr().exports.reduce_argmax_f32(A,r)}function Nw(A,r){return xr().exports.reduce_argmax_i64(A,r)}function Fw(A,r){return xr().exports.reduce_argmax_u64(A,r)}function Sw(A,r){return xr().exports.reduce_argmax_i32(A,r)}function Gw(A,r){return xr().exports.reduce_argmax_u32(A,r)}function Rw(A,r){return xr().exports.reduce_argmax_i16(A,r)}function kw(A,r){return xr().exports.reduce_argmax_u16(A,r)}function qw(A,r){return xr().exports.reduce_argmax_i8(A,r)}function Mw(A,r){return xr().exports.reduce_argmax_u8(A,r)}var l_=64,h_={float32:ww,int64:Nw,uint64:Fw,int32:Sw,uint32:Gw,int16:Rw,uint16:kw,int8:qw,uint8:Mw},d_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function xw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<l_*Y.thresholdMultiplier)return null;let I=A.dtype,e=h_[I],t=d_[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var b_="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",ao=null;function Jr(){if(ao)return ao;let A=atob(b_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ao=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ao.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ao}function Jw(A,r){return Jr().exports.reduce_argmin_f32(A,r)}function Uw(A,r){return Jr().exports.reduce_argmin_i64(A,r)}function Lw(A,r){return Jr().exports.reduce_argmin_u64(A,r)}function Hw(A,r){return Jr().exports.reduce_argmin_i32(A,r)}function _w(A,r){return Jr().exports.reduce_argmin_u32(A,r)}function Yw(A,r){return Jr().exports.reduce_argmin_i16(A,r)}function vw(A,r){return Jr().exports.reduce_argmin_u16(A,r)}function Xw(A,r){return Jr().exports.reduce_argmin_i8(A,r)}function Tw(A,r){return Jr().exports.reduce_argmin_u8(A,r)}var p_=64,w_={float32:Jw,int64:Uw,uint64:Lw,int32:Hw,uint32:_w,int16:Yw,uint16:vw,int8:Xw,uint8:Tw},N_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Pw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<p_*Y.thresholdMultiplier)return null;let I=A.dtype,e=w_[I],t=N_[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var F_="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",so=null;function GA(){if(so)return so;let A=atob(F_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);so=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=so.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),so}function Kw(A,r){return GA().exports.reduce_mean_f64(A,r)}function Vw(A,r){return GA().exports.reduce_mean_f32(A,r)}function Ww(A,r){return GA().exports.reduce_mean_i64(A,r)}function Ow(A,r){return GA().exports.reduce_mean_u64(A,r)}function Zw(A,r){return GA().exports.reduce_mean_i32(A,r)}function zw(A,r){return GA().exports.reduce_mean_u32(A,r)}function jw(A,r){return GA().exports.reduce_mean_i16(A,r)}function $w(A,r){return GA().exports.reduce_mean_u16(A,r)}function AN(A,r){return GA().exports.reduce_mean_i8(A,r)}function rN(A,r){return GA().exports.reduce_mean_u8(A,r)}function IN(A,r,I,e,t){GA().exports.reduce_mean_strided_f64(A,r,I,e,t)}function eN(A,r,I,e,t){GA().exports.reduce_mean_strided_f32(A,r,I,e,t)}function tN(A,r,I,e,t){GA().exports.reduce_mean_strided_i64(A,r,I,e,t)}function oN(A,r,I,e,t){GA().exports.reduce_mean_strided_u64(A,r,I,e,t)}function nN(A,r,I,e,t){GA().exports.reduce_mean_strided_i32(A,r,I,e,t)}function iN(A,r,I,e,t){GA().exports.reduce_mean_strided_u32(A,r,I,e,t)}function gN(A,r,I,e,t){GA().exports.reduce_mean_strided_i16(A,r,I,e,t)}function QN(A,r,I,e,t){GA().exports.reduce_mean_strided_u16(A,r,I,e,t)}function aN(A,r,I,e,t){GA().exports.reduce_mean_strided_i8(A,r,I,e,t)}function sN(A,r,I,e,t){GA().exports.reduce_mean_strided_u8(A,r,I,e,t)}var BN=64,S_={float64:Kw,float32:Vw,int64:Ww,uint64:Ow,int32:Zw,uint32:zw,int16:jw,uint16:$w,int8:AN,uint8:rN},CN={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<BN*Y.thresholdMultiplier)return null;let I=A.dtype,e=S_[I],t=CN[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var G_={float64:IN,float32:eN,int64:tN,uint64:oN,int32:nN,uint32:iN,int16:gN,uint16:QN,int8:aN,uint8:sN};function uN(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<BN*Y.thresholdMultiplier)return null;let o=A.dtype,n=G_[o],g=CN[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=Float64Array.BYTES_PER_ELEMENT,a=r*e;J(t*i+a*Q),U();let s=A.offset,B=A.data.subarray(s,s+t),C=q(B),E=_(a*Q);n(C,E,r,I,e);let u=v(E,a,Float64Array);return d.fromData(u,[a],"float64")}var R_="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",Bo=null;function wr(){if(Bo)return Bo;let A=atob(R_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Bo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Bo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Bo}function cN(A,r){return wr().exports.reduce_var_f64(A,r)}function fN(A,r){return wr().exports.reduce_var_f32(A,r)}function DN(A,r){return wr().exports.reduce_var_i64(A,r)}function mN(A,r){return wr().exports.reduce_var_u64(A,r)}function yN(A,r){return wr().exports.reduce_var_i32(A,r)}function lN(A,r){return wr().exports.reduce_var_u32(A,r)}function hN(A,r){return wr().exports.reduce_var_i16(A,r)}function dN(A,r){return wr().exports.reduce_var_u16(A,r)}function bN(A,r){return wr().exports.reduce_var_i8(A,r)}function pN(A,r){return wr().exports.reduce_var_u8(A,r)}var k_=64,q_={float64:cN,float32:fN,int64:DN,uint64:mN,int32:yN,uint32:lN,int16:hN,uint16:dN,int8:bN,uint8:pN},M_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function wN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<k_*Y.thresholdMultiplier)return null;let I=A.dtype,e=q_[I],t=M_[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var x_="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbnN1bV9mNjQAABFyZWR1Y2VfbmFuc3VtX2YzMgABCvUDAv4BBAJ/AXwBfwF8AkAgAQ0ARAAAAAAAAAAADwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAAAAIQQMAQsgAUF8cSEFQQAhA0QAAAAAAAAAACEEIAAhAQNAIAQgASsDACIGoCAEIAYgBmEbIgYgAUEIaisDACIEoCAGIAQgBGEbIgYgAUEQaisDACIEoCAGIAQgBGEbIgYgAUEYaisDACIEoCAGIAQgBGEbIQQgAUEgaiEBIAUgA0EEaiIDRw0ACwsCQCACRQ0AIAAgA0EDdGohAQNAIAQgASsDACIGoCAEIAYgBmEbIQQgAUEIaiEBIAJBf2oiAg0ACwsgBAvyAQQCfwF9AX8BfQJAIAENAEMAAAAADwsgAUEDcSECAkACQCABQQRPDQBBACEDQwAAAAAhBAwBCyABQXxxIQVBACEDQwAAAAAhBCAAIQEDQCAEIAEqAgAiBpIgBCAGIAZbGyIGIAFBBGoqAgAiBJIgBiAEIARbGyIGIAFBCGoqAgAiBJIgBiAEIARbGyIGIAFBDGoqAgAiBJIgBiAEIARbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCAEIAEqAgAiBpIgBCAGIAZbGyEEIAFBBGohASACQX9qIgINAAsLIAQL",Co=null;function NN(){if(Co)return Co;let A=atob(x_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Co=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Co.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Co}function FN(A,r){return NN().exports.reduce_nansum_f64(A,r)}function SN(A,r){return NN().exports.reduce_nansum_f32(A,r)}var J_=64,U_={float64:FN,float32:SN},L_={float64:Float64Array,float32:Float32Array};function GN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<J_*Y.thresholdMultiplier)return null;let I=A.dtype,e=U_[I],t=L_[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var H_="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbm1pbl9mNjQAABFyZWR1Y2VfbmFubWluX2YzMgABCqcEApcCBAJ/AXwBfwR8AkAgAQ0ARAAAAAAAAPB/DwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAPB/IQQMAQsgAUF8cSEFQQAhA0QAAAAAAADwfyEEIAAhAQNAIAFBGGorAwAiBiABQRBqKwMAIgcgAUEIaisDACIIIAErAwAiCSAEIAkgBGMbIAQgCSAJYRsiBCAIIARjGyAEIAggCGEbIgQgByAEYxsgBCAHIAdhGyIEIAYgBGMbIAQgBiAGYRshBCABQSBqIQEgBSADQQRqIgNHDQALCwJAIAJFDQAgACADQQN0aiEBA0AgASsDACIGIAQgBiAEYxsgBCAGIAZhGyEEIAFBCGohASACQX9qIgINAAsLIAQLiwIEAn8BfQF/BH0CQCABDQBDAACAfw8LIAFBA3EhAgJAAkAgAUEETw0AQQAhA0MAAIB/IQQMAQsgAUF8cSEFQQAhA0MAAIB/IQQgACEBA0AgAUEMaioCACIGIAFBCGoqAgAiByABQQRqKgIAIgggASoCACIJIAQgCSAEXRsgBCAJIAlbGyIEIAggBF0bIAQgCCAIWxsiBCAHIARdGyAEIAcgB1sbIgQgBiAEXRsgBCAGIAZbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCABKgIAIgYgBCAGIARdGyAEIAYgBlsbIQQgAUEEaiEBIAJBf2oiAg0ACwsgBAs=",Eo=null;function RN(){if(Eo)return Eo;let A=atob(H_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Eo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Eo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Eo}function kN(A,r){return RN().exports.reduce_nanmin_f64(A,r)}function qN(A,r){return RN().exports.reduce_nanmin_f32(A,r)}var __=64,Y_={float64:kN,float32:qN},v_={float64:Float64Array,float32:Float32Array};function MN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<__*Y.thresholdMultiplier)return null;let I=A.dtype,e=Y_[I],t=v_[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var X_="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbm1heF9mNjQAABFyZWR1Y2VfbmFubWF4X2YzMgABCqcEApcCBAJ/AXwBfwR8AkAgAQ0ARAAAAAAAAPD/DwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAPD/IQQMAQsgAUF8cSEFQQAhA0QAAAAAAADw/yEEIAAhAQNAIAFBGGorAwAiBiABQRBqKwMAIgcgAUEIaisDACIIIAErAwAiCSAEIAkgBGQbIAQgCSAJYRsiBCAIIARkGyAEIAggCGEbIgQgByAEZBsgBCAHIAdhGyIEIAYgBGQbIAQgBiAGYRshBCABQSBqIQEgBSADQQRqIgNHDQALCwJAIAJFDQAgACADQQN0aiEBA0AgASsDACIGIAQgBiAEZBsgBCAGIAZhGyEEIAFBCGohASACQX9qIgINAAsLIAQLiwIEAn8BfQF/BH0CQCABDQBDAACA/w8LIAFBA3EhAgJAAkAgAUEETw0AQQAhA0MAAID/IQQMAQsgAUF8cSEFQQAhA0MAAID/IQQgACEBA0AgAUEMaioCACIGIAFBCGoqAgAiByABQQRqKgIAIgggASoCACIJIAQgCSAEXhsgBCAJIAlbGyIEIAggBF4bIAQgCCAIWxsiBCAHIAReGyAEIAcgB1sbIgQgBiAEXhsgBCAGIAZbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCABKgIAIgYgBCAGIAReGyAEIAYgBlsbIQQgAUEEaiEBIAJBf2oiAg0ACwsgBAs=",uo=null;function xN(){if(uo)return uo;let A=atob(X_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);uo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=uo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),uo}function JN(A,r){return xN().exports.reduce_nanmax_f64(A,r)}function UN(A,r){return xN().exports.reduce_nanmax_f32(A,r)}var T_=64,P_={float64:JN,float32:UN},K_={float64:Float64Array,float32:Float32Array};function LN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<T_*Y.thresholdMultiplier)return null;let I=A.dtype,e=P_[I],t=K_[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var V_="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IBIgBGtBfEsNACATQQN0IQogBCATayESA0AgESAKaiIDIAMrAwAgFyAKaiIWKwMAojkDACADQQhqIhMgEysDACAWQQhqKwMAojkDACADQRBqIhMgEysDACAWQRBqKwMAojkDACADQRhqIgMgAysDACAWQRhqKwMAojkDACAKQSBqIQogEkF8aiISDQALCyAXIAhqIRcgGEEBaiIYIAVHDQALIBAgC2ohECAAIAtqIQAgESAIaiERIAZBAWoiBiACRw0ADAILCyAERQ0AIARBA3QhEyAEQX5xIRIgBCADbCIKQQN0IRhBACERIARBBkkgASAAIAQgAyACQX9qbEEDdEEIamxqSSAAIAEgBCACbEEDdGpJcSAKIARyQYCAgIABcUEcdnJyQQFxIQcDQEEAIRYCQAJAIAcNACASIRYgACEDIAEhCgNAIAogA/0AAwD9CwMAIANBEGohAyAKQRBqIQogFkF+aiIWDQALIBIhFiAEIBJGDQELIBYhFwJAIAQgFmtBA3EiCkUNACAWIApqIRcgFkEDdCEDA0AgASADaiAAIANqKwMAOQMAIANBCGohAyAKQX9qIgoNAAsLIBYgBGtBfEsNACAXQQN0IQMgBCAXayEXA0AgASADaiIKIAAgA2oiFisDADkDACAKQQhqIBZBCGorAwA5AwAgCkEQaiAWQRBqKwMAOQMAIApBGGogFkEYaisDADkDACADQSBqIQMgF0F8aiIXDQALCyAAIBhqIQAgASATaiEBIBFBAWoiESACRw0ACwsLyQkBFH8CQCACRQ0AAkAgA0F/aiIFRQ0AIARFDQFBACEGIARBA3EhByAEQXxxIQggASAEQQJ0IglqIQogACAEIANsIgtBAnQiDGohDSAEQQhJIAEgACAEIAMgAkF/amxBAnRBBGpsakkgACABIAQgAmxBAnRqSXEgCUEASHIgC0GAgICAAnFBHXZyckEBcSEOIAAgCWoiDyEQIAEhEQNAIA0gDCAGbCIDaiESIA8gA2ohEyAKIAkgBmwiA2ohFCABIANqIRVBACEWAkACQCAODQAgCCEWIAAhAyARIQsDQCALIAP9AAIA/QsCACADQRBqIQMgC0EQaiELIBZBfGoiFg0ACyAIIRYgBCAIRg0BCyAWIRcCQCAHRQ0AIAcgFmohFyAWQQJ0IQMgByELA0AgESADaiAAIANqKgIA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",co=null;function UA(){if(co)return co;let A=atob(V_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);co=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=co.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),co}function HN(A,r){return UA().exports.reduce_prod_f64(A,r)}function _N(A,r){return UA().exports.reduce_prod_f32(A,r)}function cC(A,r){return UA().exports.reduce_prod_i64(A,r)}function fC(A,r){return UA().exports.reduce_prod_i32(A,r)}function YN(A,r){return UA().exports.reduce_prod_i16(A,r)}function vN(A,r){return UA().exports.reduce_prod_u16(A,r)}function XN(A,r){return UA().exports.reduce_prod_i8(A,r)}function TN(A,r){return UA().exports.reduce_prod_u8(A,r)}function PN(A,r,I,e,t){UA().exports.reduce_prod_strided_f64(A,r,I,e,t)}function KN(A,r,I,e,t){UA().exports.reduce_prod_strided_f32(A,r,I,e,t)}function VN(A,r,I,e,t){UA().exports.reduce_prod_strided_i64(A,r,I,e,t)}function WN(A,r,I,e,t){UA().exports.reduce_prod_strided_u64(A,r,I,e,t)}function ON(A,r,I,e,t){UA().exports.reduce_prod_strided_i32(A,r,I,e,t)}function ZN(A,r,I,e,t){UA().exports.reduce_prod_strided_u32(A,r,I,e,t)}function zN(A,r,I,e,t){UA().exports.reduce_prod_strided_i16(A,r,I,e,t)}function jN(A,r,I,e,t){UA().exports.reduce_prod_strided_u16(A,r,I,e,t)}function $N(A,r,I,e,t){UA().exports.reduce_prod_strided_i8(A,r,I,e,t)}function AF(A,r,I,e,t){UA().exports.reduce_prod_strided_u8(A,r,I,e,t)}var rF=64,W_={float64:HN,float32:_N,int64:cC,uint64:cC,int32:fC,uint32:fC,int16:YN,uint16:vN,int8:XN,uint8:TN},IF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function eF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<rF*Y.thresholdMultiplier)return null;let I=A.dtype,e=W_[I],t=IF[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var O_={float64:PN,float32:KN,int64:VN,uint64:WN,int32:ON,uint32:ZN,int16:zN,uint16:jN,int8:$N,uint8:AF},Z_={float64:"float64",float32:"float32",int64:"int64",uint64:"uint64",int32:"int32",uint32:"uint32",int16:"int64",uint16:"uint64",int8:"int64",uint8:"uint64"},z_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:BigInt64Array,uint16:BigUint64Array,int8:BigInt64Array,uint8:BigUint64Array},j_={float64:8,float32:4,int64:8,uint64:8,int32:4,uint32:4,int16:8,uint16:8,int8:8,uint8:8};function tF(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<rF*Y.thresholdMultiplier)return null;let o=A.dtype,n=O_[o],g=IF[o],i=z_[o],Q=Z_[o],a=j_[o];if(!n||!g||!i||!Q||!a)return null;let s=g.BYTES_PER_ELEMENT,B=r*e;J(t*s+B*a),U();let C=A.offset,E=A.data.subarray(C,C+t),u=q(E),D=_(B*a);n(u,D,r,I,e);let m=v(D,B,i);return d.fromData(m,[B],Q)}var $_="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",fo=null;function A4(){if(fo)return fo;let A=atob($_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);fo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=fo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),fo}function oF(A,r,I){return A4().exports.reduce_quantile_f64(A,r,I)}var r4=64;function nF(A,r){if(!A.isCContiguous||k(A.dtype))return null;let I=A.size;if(I<r4*Y.thresholdMultiplier)return null;let e=new Float64Array(I),t=A.offset,o=A.data;if(A.dtype==="float64")e.set(o.subarray(t,t+I));else if(L(A.dtype)){let g=o;for(let i=0;i<I;i++)e[i]=Number(g[t+i])}else for(let g=0;g<I;g++)e[g]=Number(o[t+g]);J(I*8),U();let n=q(e);return oF(n,I,r)}var I4="AGFzbQEAAAABBwFgAn9/AX8CDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB2YGDnJlZHVjZV9hbnlfZjY0AAAOcmVkdWNlX2FueV9mMzIAAQ5yZWR1Y2VfYW55X2k2NAACDnJlZHVjZV9hbnlfaTMyAAMOcmVkdWNlX2FueV9pMTYABA1yZWR1Y2VfYW55X2k4AAUK3QIGQAEBf0EAIQICQCABRQ0AAkADQCAAKwMARAAAAAAAAAAAYg0BIABBCGohACABQX9qIgFFDQIMAAsLQQEhAgsgAgs8AQF/QQAhAgJAIAFFDQACQANAIAAqAgBDAAAAAFwNASAAQQRqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAILOAEBf0EAIQICQCABRQ0AAkADQCAAKQMAUEUNASAAQQhqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAILNgEBf0EAIQICQCABRQ0AAkADQCAAKAIADQEgAEEEaiEAIAFBf2oiAUUNAgwACwtBASECCyACCzYBAX9BACECAkAgAUUNAAJAA0AgAC8BAA0BIABBAmohACABQX9qIgFFDQIMAAsLQQEhAgsgAgs2AQF/QQAhAgJAIAFFDQACQANAIAAtAAANASAAQQFqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAIL",Do=null;function PI(){if(Do)return Do;let A=atob(I4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Do=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Do.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Do}function iF(A,r){return PI().exports.reduce_any_f64(A,r)}function gF(A,r){return PI().exports.reduce_any_f32(A,r)}function DC(A,r){return PI().exports.reduce_any_i64(A,r)}function mC(A,r){return PI().exports.reduce_any_i32(A,r)}function yC(A,r){return PI().exports.reduce_any_i16(A,r)}function lC(A,r){return PI().exports.reduce_any_i8(A,r)}var e4=64,t4={float64:iF,float32:gF,int64:DC,uint64:DC,int32:mC,uint32:mC,int16:yC,uint16:yC,int8:lC,uint8:lC},o4={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function QF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<e4*Y.thresholdMultiplier)return null;let I=A.dtype,e=t4[I],t=o4[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return e(i,r)}var n4="AGFzbQEAAAABBwFgAn9/AX8CDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB2YGDnJlZHVjZV9hbGxfZjY0AAAOcmVkdWNlX2FsbF9mMzIAAQ5yZWR1Y2VfYWxsX2k2NAACDnJlZHVjZV9hbGxfaTMyAAMOcmVkdWNlX2FsbF9pMTYABA1yZWR1Y2VfYWxsX2k4AAUK5gIGQAEBf0EBIQICQCABRQ0AAkADQCAAKwMARAAAAAAAAAAAYQ0BIABBCGohACABQX9qIgFFDQIMAAsLQQAhAgsgAgs8AQF/QQEhAgJAIAFFDQACQANAIAAqAgBDAAAAAFsNASAAQQRqIQAgAUF/aiIBRQ0CDAALC0EAIQILIAILNwEBf0EBIQICQCABRQ0AAkADQCAAKQMAUA0BIABBCGohACABQX9qIgFFDQIMAAsLQQAhAgsgAgs3AQF/QQEhAgJAIAFFDQACQANAIAAoAgBFDQEgAEEEaiEAIAFBf2oiAUUNAgwACwtBACECCyACCzcBAX9BASECAkAgAUUNAAJAA0AgAC8BAEUNASAAQQJqIQAgAUF/aiIBRQ0CDAALC0EAIQILIAILPgEBfwJAAkAgAQ0AQQEhAgwBCwJAA0AgAC0AAEUNAUEBIQIgAEEBaiEAIAFBf2oiAUUNAgwACwtBAA8LIAIL",mo=null;function KI(){if(mo)return mo;let A=atob(n4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);mo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=mo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),mo}function aF(A,r){return KI().exports.reduce_all_f64(A,r)}function sF(A,r){return KI().exports.reduce_all_f32(A,r)}function hC(A,r){return KI().exports.reduce_all_i64(A,r)}function dC(A,r){return KI().exports.reduce_all_i32(A,r)}function bC(A,r){return KI().exports.reduce_all_i16(A,r)}function pC(A,r){return KI().exports.reduce_all_i8(A,r)}var i4=64,g4={float64:aF,float32:sF,int64:hC,uint64:hC,int32:dC,uint32:dC,int16:bC,uint16:bC,int8:pC,uint8:pC},Q4={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function BF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<i4*Y.thresholdMultiplier)return null;let I=A.dtype,e=g4[I],t=Q4[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return e(i,r)}var fA=new Float32Array(2);function CF(A){switch(A){case"int8":case"int16":case"int32":return"int64";case"uint8":case"uint16":case"uint32":return"uint64";default:return A}}function a4(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 LA(A,r,I){let e=d.zeros(Array(r).fill(1),I);return e.iset(0,A),e}function sI(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let y=Mp(A);if(y!==null)return y;if(k(e)){let l=0,h=0;if(a){let b=g;for(let p=0;p<n;p++)l+=b[(i+p)*2],h+=b[(i+p)*2+1]}else for(let b=0;b<n;b++){let p=A.iget(b);l+=p.re,h+=p.im}return new T(l,h)}else if(L(e)){let l=BigInt(0);if(a){let h=g;for(let b=0;b<n;b++)l+=h[i+b]}else for(let h=0;h<n;h++)l+=A.iget(h);return Number(l)}else if(e==="float32"){if(fA[0]=0,a)for(let l=0;l<n;l++)fA[0]+=Number(g[i+l]);else for(let l=0;l<n;l++)fA[0]+=Number(A.iget(l));return fA[0]}else{let l=0;if(a)if(i===0)for(let h=0;h<n;h++)l+=Number(g[h]);else for(let h=0;h<n;h++)l+=Number(g[i+h]);else for(let h=0;h<n;h++)l+=Number(A.iget(h));return l}}let s=r;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let B=CF(e),C=Array.from(t).filter((y,l)=>l!==s);if(C.length===0){let y=sI(A);if(!I)return y;let l=d.zeros(Array(o).fill(1),B);return l.iset(0,y),l}let E=d.zeros(C,B),u=E.data,D=t[s],m=C.reduce((y,l)=>y*l,1);if(a&&!k(e)){let y=t.slice(0,s).reduce((b,p)=>b*p,1),l=t.slice(s+1).reduce((b,p)=>b*p,1),h=xp(A,y,D,l);if(h){let b=I?t.map((w,N)=>N===s?1:w):C;if(B==="float64")return d.fromData(h.data,b,B);if(B==="float32"){let w=new Float32Array(h.data.length),N=h.data;for(let F=0;F<N.length;F++)w[F]=N[F];return d.fromData(w,b,B)}let p=h.data;for(let w=0;w<p.length;w++)u[w]=u instanceof BigInt64Array||u instanceof BigUint64Array?BigInt(Math.round(p[w])):p[w];return I?d.fromData(u,b,B):E}}let{baseOffsets:c,axisStride:f}=gA(t,Q,i,s,m);if(k(e)){let y=g,l=u;if(e==="complex64")for(let h=0;h<m;h++){fA[0]=0,fA[1]=0;let b=c[h];for(let p=0;p<D;p++)fA[0]+=y[b*2],fA[1]+=y[b*2+1],b+=f;l[h*2]=fA[0],l[h*2+1]=fA[1]}else for(let h=0;h<m;h++){let b=0,p=0,w=c[h];for(let N=0;N<D;N++)b+=y[w*2],p+=y[w*2+1],w+=f;l[h*2]=b,l[h*2+1]=p}}else if(L(e)){let y=g,l=u;for(let h=0;h<m;h++){let b=BigInt(0),p=c[h];for(let w=0;w<D;w++)b+=y[p],p+=f;l[h]=b}}else if(L(B)){let y=u;for(let l=0;l<m;l++){let h=0,b=c[l];for(let p=0;p<D;p++)h+=Number(g[b]),b+=f;y[l]=BigInt(Math.round(h))}}else if(e==="float32")for(let y=0;y<m;y++){fA[0]=0;let l=c[y];for(let h=0;h<D;h++)fA[0]+=Number(g[l]),l+=f;u[y]=fA[0]}else for(let y=0;y<m;y++){let l=0,h=c[y];for(let b=0;b<D;b++)l+=Number(g[h]),h+=f;u[y]=l}if(I){let y=[...t];return y[s]=1,d.fromData(u,y,B)}return E}function WI(A,r,I=!1){let e=A.dtype,t=A.shape;if(r===void 0){let C=EN(A);if(C!==null)return C;let E=sI(A);return E instanceof T?new T(E.re/A.size,E.im/A.size):E/A.size}let o=r;if(o<0&&(o=t.length+o),o<0||o>=t.length)throw new Error(`axis ${r} is out of bounds for array of dimension ${t.length}`);if(A.isCContiguous&&!k(e)){let C=t[o],E=I?t.map((c,f)=>f===o?1:c):Array.from(t).filter((c,f)=>f!==o),u=t.slice(0,o).reduce((c,f)=>c*f,1),D=t.slice(o+1).reduce((c,f)=>c*f,1),m=uN(A,u,C,D);if(m)return d.fromData(m.data,E,"float64")}let n=sI(A,r,I);if(typeof n=="number")return n/t[o];if(n instanceof T)return new T(n.re/t[o],n.im/t[o]);let g=t[o],i=a4(e),Q=d.zeros(Array.from(n.shape),i),a=Q.data,s=n.data,B=n.dtype;if(k(e)){let C=s,E=a,u=n.size;for(let D=0;D<u;D++)E[D*2]=C[D*2]/g,E[D*2+1]=C[D*2+1]/g}else if(L(B)){let C=s;for(let E=0;E<a.length;E++)a[E]=Number(C[E])/g}else for(let C=0;C<a.length;C++)a[C]=Number(s[C])/g;return Q}function AI(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides;if(k(e)){let c=g;if(r===void 0){if(n===0)throw new Error("max of empty array");let F=c[i*2],G=c[i*2+1];for(let x=1;x<n;x++){let H=c[(i+x)*2],X=c[(i+x)*2+1];if(isNaN(H)||isNaN(X))return new T(NaN,NaN);(H>F||H===F&&X>G)&&(F=H,G=X)}return isNaN(F)||isNaN(G)?new T(NaN,NaN):new T(F,G)}let f=r;if(f<0&&(f=o+f),f<0||f>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let y=Array.from(t).filter((F,G)=>G!==f);if(y.length===0){let F=AI(A);return I?LA(F,o,e):F}let l=d.zeros(y,e),h=l.data,b=t[f],p=y.reduce((F,G)=>F*G,1),{baseOffsets:w,axisStride:N}=gA(t,Q,i,f,p);for(let F=0;F<p;F++){let G=w[F],x=c[G*2],H=c[G*2+1];G+=N;for(let X=1;X<b;X++){let P=c[G*2],Z=c[G*2+1];if(G+=N,isNaN(P)||isNaN(Z)){x=NaN,H=NaN;break}(P>x||P===x&&Z>H)&&(x=P,H=Z)}h[F*2]=x,h[F*2+1]=H}if(I){let F=[...t];return F[f]=1,d.fromData(h,F,e)}return l}if(r===void 0){let c=Iw(A);if(c!==null)return c;if(n===0)throw new Error("max of empty array");if(A.isCContiguous){let f=g[i];if(i===0)for(let y=1;y<n;y++)g[y]>f&&(f=g[y]);else for(let y=1;y<n;y++)g[i+y]>f&&(f=g[i+y]);return Number(f)}else{let f=A.iget(0);for(let y=1;y<n;y++){let l=A.iget(y);l>f&&(f=l)}return Number(f)}}let a=r;if(a<0&&(a=o+a),a<0||a>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(t).filter((c,f)=>f!==a);if(s.length===0){let c=AI(A);return I?LA(c,o,e):c}let B=d.zeros(s,e),C=B.data,E=t[a],u=s.reduce((c,f)=>c*f,1);if(A.isCContiguous&&!k(e)){let c=t.slice(0,a).reduce((l,h)=>l*h,1),f=t.slice(a+1).reduce((l,h)=>l*h,1),y=ew(A,c,E,f);if(y){let l=I?t.map((h,b)=>b===a?1:h):s;return d.fromData(y.data,l,e)}}let{baseOffsets:D,axisStride:m}=gA(t,Q,i,a,u);if(L(e)){let c=g,f=C;for(let y=0;y<u;y++){let l=D[y],h=c[l];l+=m;for(let b=1;b<E;b++){let p=c[l];p>h&&(h=p),l+=m}f[y]=h}}else for(let c=0;c<u;c++){let f=-1/0,y=D[c];for(let l=0;l<E;l++){let h=Number(g[y]);h>f&&(f=h),y+=m}C[c]=f}if(I){let c=[...t];return c[a]=1,d.fromData(C,c,e)}return B}function ho(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let y=eF(A);if(y!==null)return y;if(k(e)){let l=1,h=0;if(a){let b=g;for(let p=0;p<n;p++){let w=b[(i+p)*2],N=b[(i+p)*2+1],F=l*w-h*N,G=l*N+h*w;l=F,h=G}}else for(let b=0;b<n;b++){let p=A.iget(b),w=p.re,N=p.im,F=l*w-h*N,G=l*N+h*w;l=F,h=G}return new T(l,h)}else if(L(e)){let l=BigInt(1);if(a){let h=g;for(let b=0;b<n;b++)l*=h[i+b]}else for(let h=0;h<n;h++)l*=A.iget(h);return Number(l)}else if(e==="float32"){if(fA[0]=1,a)for(let l=0;l<n;l++)fA[0]*=Number(g[i+l]);else for(let l=0;l<n;l++)fA[0]*=Number(A.iget(l));return fA[0]}else{let l=1;if(a)if(i===0)for(let h=0;h<n;h++)l*=Number(g[h]);else for(let h=0;h<n;h++)l*=Number(g[i+h]);else for(let h=0;h<n;h++)l*=Number(A.iget(h));return l}}let s=r;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let B=CF(e),C=Array.from(t).filter((y,l)=>l!==s);if(C.length===0){let y=ho(A);return I?LA(y,o,B):y}let E=d.zeros(C,B),u=E.data,D=t[s],m=C.reduce((y,l)=>y*l,1);if(a&&!k(e)){let y=t.slice(0,s).reduce((b,p)=>b*p,1),l=t.slice(s+1).reduce((b,p)=>b*p,1),h=tF(A,y,D,l);if(h){let b=I?t.map((p,w)=>w===s?1:p):C;return d.fromData(h.data,b,B)}}let{baseOffsets:c,axisStride:f}=gA(t,Q,i,s,m);if(k(e)){let y=g,l=u;if(e==="complex64")for(let h=0;h<m;h++){fA[0]=1,fA[1]=0;let b=c[h];for(let p=0;p<D;p++){let w=y[b*2],N=y[b*2+1],F=fA[0],G=fA[1];fA[0]=F*w-G*N,fA[1]=F*N+G*w,b+=f}l[h*2]=fA[0],l[h*2+1]=fA[1]}else for(let h=0;h<m;h++){let b=1,p=0,w=c[h];for(let N=0;N<D;N++){let F=y[w*2],G=y[w*2+1],x=b*F-p*G,H=b*G+p*F;b=x,p=H,w+=f}l[h*2]=b,l[h*2+1]=p}}else if(L(e)){let y=g,l=u;for(let h=0;h<m;h++){let b=BigInt(1),p=c[h];for(let w=0;w<D;w++)b*=y[p],p+=f;l[h]=b}}else if(L(B)){let y=u;for(let l=0;l<m;l++){let h=BigInt(1),b=c[l];for(let p=0;p<D;p++)h*=BigInt(Number(g[b])),b+=f;y[l]=h}}else if(e==="float32")for(let y=0;y<m;y++){fA[0]=1;let l=c[y];for(let h=0;h<D;h++)fA[0]*=Number(g[l]),l+=f;u[y]=fA[0]}else for(let y=0;y<m;y++){let l=1,h=c[y];for(let b=0;b<D;b++)l*=Number(g[h]),h+=f;u[y]=l}if(I){let y=[...t];return y[s]=1,d.fromData(u,y,B)}return E}function rI(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides;if(k(e)){let c=g;if(r===void 0){if(n===0)throw new Error("min of empty array");let F=c[i*2],G=c[i*2+1];for(let x=1;x<n;x++){let H=c[(i+x)*2],X=c[(i+x)*2+1];if(isNaN(H)||isNaN(X))return new T(NaN,NaN);(H<F||H===F&&X<G)&&(F=H,G=X)}return isNaN(F)||isNaN(G)?new T(NaN,NaN):new T(F,G)}let f=r;if(f<0&&(f=o+f),f<0||f>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let y=Array.from(t).filter((F,G)=>G!==f);if(y.length===0){let F=rI(A);return I?LA(F,o,e):F}let l=d.zeros(y,e),h=l.data,b=t[f],p=y.reduce((F,G)=>F*G,1),{baseOffsets:w,axisStride:N}=gA(t,Q,i,f,p);for(let F=0;F<p;F++){let G=w[F],x=c[G*2],H=c[G*2+1];G+=N;for(let X=1;X<b;X++){let P=c[G*2],Z=c[G*2+1];if(G+=N,isNaN(P)||isNaN(Z)){x=NaN,H=NaN;break}(P<x||P===x&&Z<H)&&(x=P,H=Z)}h[F*2]=x,h[F*2+1]=H}if(I){let F=[...t];return F[f]=1,d.fromData(h,F,e)}return l}if(r===void 0){let c=bw(A);if(c!==null)return c;if(n===0)throw new Error("min of empty array");if(A.isCContiguous){let f=g[i];if(i===0)for(let y=1;y<n;y++)g[y]<f&&(f=g[y]);else for(let y=1;y<n;y++)g[i+y]<f&&(f=g[i+y]);return Number(f)}else{let f=A.iget(0);for(let y=1;y<n;y++){let l=A.iget(y);l<f&&(f=l)}return Number(f)}}let a=r;if(a<0&&(a=o+a),a<0||a>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(t).filter((c,f)=>f!==a);if(s.length===0){let c=rI(A);return I?LA(c,o,e):c}let B=d.zeros(s,e),C=B.data,E=t[a],u=s.reduce((c,f)=>c*f,1);if(A.isCContiguous&&!k(e)){let c=t.slice(0,a).reduce((l,h)=>l*h,1),f=t.slice(a+1).reduce((l,h)=>l*h,1),y=pw(A,c,E,f);if(y){let l=I?t.map((h,b)=>b===a?1:h):s;return d.fromData(y.data,l,e)}}let{baseOffsets:D,axisStride:m}=gA(t,Q,i,a,u);if(L(e)){let c=g,f=C;for(let y=0;y<u;y++){let l=D[y],h=c[l];l+=m;for(let b=1;b<E;b++){let p=c[l];p<h&&(h=p),l+=m}f[y]=h}}else for(let c=0;c<u;c++){let f=1/0,y=D[c];for(let l=0;l<E;l++){let h=Number(g[y]);h<f&&(f=h),y+=m}C[c]=f}if(I){let c=[...t];return c[a]=1,d.fromData(C,c,e)}return B}function gr(A,r,I,e){return A<I?-1:A>I?1:r<e?-1:r>e?1:0}function Gg(A,r){let I=A.dtype,e=k(I),t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let f=Pw(A);if(f!==null)return f;if(n===0)throw new Error("argmin of empty array");if(e)if(a){let y=g,l=y[i*2],h=y[i*2+1],b=0;for(let p=1;p<n;p++){let w=y[(i+p)*2],N=y[(i+p)*2+1];gr(w,N,l,h)<0&&(l=w,h=N,b=p)}return b}else{let y=A.iget(0),l=y.re,h=y.im,b=0;for(let p=1;p<n;p++){let w=A.iget(p);gr(w.re,w.im,l,h)<0&&(l=w.re,h=w.im,b=p)}return b}if(a){let y=g[i],l=0;if(i===0)for(let h=1;h<n;h++)g[h]<y&&(y=g[h],l=h);else for(let h=1;h<n;h++)g[i+h]<y&&(y=g[i+h],l=h);return l}else{let y=A.iget(0),l=0;for(let h=1;h<n;h++){let b=A.iget(h);b<y&&(y=b,l=h)}return l}}let s=r;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let B=Array.from(t).filter((f,y)=>y!==s);if(B.length===0)return Gg(A);let C=d.zeros(B,"int32"),E=C.data,u=t[s],D=B.reduce((f,y)=>f*y,1),{baseOffsets:m,axisStride:c}=gA(t,Q,i,s,D);if(e){let f=g;for(let y=0;y<D;y++){let l=m[y],h=f[l*2],b=f[l*2+1],p=0;l+=c;for(let w=1;w<u;w++){let N=f[l*2],F=f[l*2+1];gr(N,F,h,b)<0&&(h=N,b=F,p=w),l+=c}E[y]=p}}else if(L(I)){let f=g;for(let y=0;y<D;y++){let l=m[y],h=f[l],b=0;l+=c;for(let p=1;p<u;p++){let w=f[l];w<h&&(h=w,b=p),l+=c}E[y]=b}}else for(let f=0;f<D;f++){let y=1/0,l=0,h=m[f];for(let b=0;b<u;b++){let p=Number(g[h]);p<y&&(y=p,l=b),h+=c}E[f]=l}return C}function Rg(A,r){let I=A.dtype,e=k(I),t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let f=xw(A);if(f!==null)return f;if(n===0)throw new Error("argmax of empty array");if(e)if(a){let y=g,l=y[i*2],h=y[i*2+1],b=0;for(let p=1;p<n;p++){let w=y[(i+p)*2],N=y[(i+p)*2+1];gr(w,N,l,h)>0&&(l=w,h=N,b=p)}return b}else{let y=A.iget(0),l=y.re,h=y.im,b=0;for(let p=1;p<n;p++){let w=A.iget(p);gr(w.re,w.im,l,h)>0&&(l=w.re,h=w.im,b=p)}return b}if(a){let y=g[i],l=0;for(let h=1;h<n;h++)g[i+h]>y&&(y=g[i+h],l=h);return l}else{let y=A.iget(0),l=0;for(let h=1;h<n;h++){let b=A.iget(h);b>y&&(y=b,l=h)}return l}}let s=r;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let B=Array.from(t).filter((f,y)=>y!==s);if(B.length===0)return Rg(A);let C=d.zeros(B,"int32"),E=C.data,u=t[s],D=B.reduce((f,y)=>f*y,1),{baseOffsets:m,axisStride:c}=gA(t,Q,i,s,D);if(e){let f=g;for(let y=0;y<D;y++){let l=m[y],h=f[l*2],b=f[l*2+1],p=0;l+=c;for(let w=1;w<u;w++){let N=f[l*2],F=f[l*2+1];gr(N,F,h,b)>0&&(h=N,b=F,p=w),l+=c}E[y]=p}}else if(L(I)){let f=g;for(let y=0;y<D;y++){let l=m[y],h=f[l],b=0;l+=c;for(let p=1;p<u;p++){let w=f[l];w>h&&(h=w,b=p),l+=c}E[y]=b}}else for(let f=0;f<D;f++){let y=-1/0,l=0,h=m[f];for(let b=0;b<u;b++){let p=Number(g[h]);p>y&&(y=p,l=b),h+=c}E[f]=l}return C}function bo(A,r,I=0,e=!1){let t=A.dtype,o=A.shape,n=o.length,g=A.size,i=A.data,Q=A.offset,a=A.strides,s=WI(A,r,e),B=A.isCContiguous;if(r===void 0){let b=wN(A);if(b!==null)return b;if(k(t)){let N=s,F=0;if(B){let G=i;for(let x=0;x<g;x++){let H=G[(Q+x)*2],X=G[(Q+x)*2+1],P=H-N.re,Z=X-N.im;F+=P*P+Z*Z}}else for(let G=0;G<g;G++){let x=A.iget(G),H=x.re-N.re,X=x.im-N.im;F+=H*H+X*X}return F/(g-I)}let p=s,w=0;if(B)for(let N=0;N<g;N++){let F=Number(i[Q+N])-p;w+=F*F}else for(let N=0;N<g;N++){let F=Number(A.iget(N))-p;w+=F*F}return w/(g-I)}let C=r;if(C<0&&(C=n+C),C<0||C>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let E=o[C],u=s,D=u.data,m=e?u.shape:Array.from(o).filter((b,p)=>p!==C),c=d.zeros(Array.from(m),"float64"),f=c.data,y=m.reduce((b,p)=>b*p,1),{baseOffsets:l,axisStride:h}=gA(o,a,Q,C,y);if(k(t)){let b=i,p=D;for(let w=0;w<y;w++){let N=0,F=p[w*2],G=p[w*2+1],x=l[w];for(let H=0;H<E;H++){let X=b[x*2],P=b[x*2+1],Z=X-F,V=P-G;N+=Z*Z+V*V,x+=h}f[w]=N/(E-I)}}else for(let b=0;b<y;b++){let p=0,w=Number(D[b]),N=l[b];for(let F=0;F<E;F++){let G=Number(i[N])-w;p+=G*G,N+=h}f[b]=p/(E-I)}return c}function wC(A,r,I=0,e=!1){let t=bo(A,r,I,e);if(typeof t=="number")return Math.sqrt(t);let o=d.zeros(Array.from(t.shape),"float64"),n=t.data,g=o.data;for(let i=0;i<n.length;i++)g[i]=Math.sqrt(Number(n[i]));return o}function kg(A,r,I=!1){let e=A.shape,t=e.length,o=A.size,n=A.data,g=A.offset,i=A.strides,Q=A.isCContiguous;if(r===void 0){let c=BF(A);if(c!==null)return c===1;if(Q){for(let f=0;f<o;f++)if(!n[g+f])return!1}else for(let f=0;f<o;f++)if(!A.iget(f))return!1;return!0}let a=r;if(a<0&&(a=t+a),a<0||a>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let s=Array.from(e).filter((c,f)=>f!==a);if(s.length===0){let c=kg(A);if(!I)return c;let f=d.zeros(Array(t).fill(1),"bool");return f.iset(0,c?1:0),f}let B=d.zeros(s,"bool"),C=B.data,E=e[a],u=s.reduce((c,f)=>c*f,1),{baseOffsets:D,axisStride:m}=gA(e,i,g,a,u);for(let c=0;c<u;c++){let f=!0,y=D[c];for(let l=0;l<E;l++){if(!n[y]){f=!1;break}y+=m}C[c]=f?1:0}if(I){let c=[...e];return c[a]=1,d.fromData(C,c,"bool")}return B}function qg(A,r,I=!1){let e=A.shape,t=e.length,o=A.size,n=A.data,g=A.offset,i=A.strides,Q=A.isCContiguous;if(r===void 0){let c=QF(A);if(c!==null)return c===1;if(Q){for(let f=0;f<o;f++)if(n[g+f])return!0}else for(let f=0;f<o;f++)if(A.iget(f))return!0;return!1}let a=r;if(a<0&&(a=t+a),a<0||a>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let s=Array.from(e).filter((c,f)=>f!==a);if(s.length===0){let c=qg(A);if(!I)return c;let f=d.zeros(Array(t).fill(1),"bool");return f.iset(0,c?1:0),f}let B=d.zeros(s,"bool"),C=B.data,E=e[a],u=s.reduce((c,f)=>c*f,1),{baseOffsets:D,axisStride:m}=gA(e,i,g,a,u);for(let c=0;c<u;c++){let f=!1,y=D[c];for(let l=0;l<E;l++){if(n[y]){f=!0;break}y+=m}C[c]=f?1:0}if(I){let c=[...e];return c[a]=1,d.fromData(C,c,"bool")}return B}function NC(A,r){let I=A.dtype,e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides,i=A.isCContiguous;if(k(I)){let f=o,y=A.size;if(r===void 0){let P=d.zeros([y],I),Z=P.data,V=0,$=0;if(i)for(let O=0;O<y;O++)V+=f[(n+O)*2],$+=f[(n+O)*2+1],Z[O*2]=V,Z[O*2+1]=$;else for(let O=0;O<y;O++){let z=A.iget(O);V+=z.re,$+=z.im,Z[O*2]=V,Z[O*2+1]=$}return P}let l=r;if(l<0&&(l=t+l),l<0||l>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let h=d.zeros([...e],I),b=h.data,p=e[l],w=Array.from(e).filter((P,Z)=>Z!==l),N=w.length===0?1:w.reduce((P,Z)=>P*Z,1),{baseOffsets:F,axisStride:G}=gA(e,g,n,l,N),x=pr(e),{baseOffsets:H,axisStride:X}=gA(e,x,0,l,N);for(let P=0;P<N;P++){let Z=F[P],V=H[P],$=0,O=0;for(let z=0;z<p;z++)$+=f[Z*2],O+=f[Z*2+1],b[V*2]=$,b[V*2+1]=O,Z+=G,V+=X}return h}if(r===void 0){let f=A.size,y=new Float64Array(f),l=0;if(i)for(let h=0;h<f;h++)l+=Number(o[n+h]),y[h]=l;else for(let h=0;h<f;h++)l+=Number(A.iget(h)),y[h]=l;return d.fromData(y,[f],"float64")}let Q=r;if(Q<0&&(Q=t+Q),Q<0||Q>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let a=new Float64Array(A.size),s=e[Q],B=Array.from(e).filter((f,y)=>y!==Q),C=B.length===0?1:B.reduce((f,y)=>f*y,1),{baseOffsets:E,axisStride:u}=gA(e,g,n,Q,C),D=pr(e),{baseOffsets:m,axisStride:c}=gA(e,D,0,Q,C);for(let f=0;f<C;f++){let y=E[f],l=m[f],h=0;for(let b=0;b<s;b++)h+=Number(o[y]),a[l]=h,y+=u,l+=c}return d.fromData(a,[...e],"float64")}function FC(A,r){let I=A.dtype,e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides,i=A.isCContiguous;if(k(I)){let f=o,y=A.size;if(r===void 0){let P=d.zeros([y],I),Z=P.data,V=1,$=0;if(i)for(let O=0;O<y;O++){let z=f[(n+O)*2],rA=f[(n+O)*2+1],oA=V*z-$*rA,iA=V*rA+$*z;V=oA,$=iA,Z[O*2]=V,Z[O*2+1]=$}else for(let O=0;O<y;O++){let z=A.iget(O),rA=z.re,oA=z.im,iA=V*rA-$*oA,CA=V*oA+$*rA;V=iA,$=CA,Z[O*2]=V,Z[O*2+1]=$}return P}let l=r;if(l<0&&(l=t+l),l<0||l>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let h=d.zeros([...e],I),b=h.data,p=e[l],w=Array.from(e).filter((P,Z)=>Z!==l),N=w.length===0?1:w.reduce((P,Z)=>P*Z,1),{baseOffsets:F,axisStride:G}=gA(e,g,n,l,N),x=pr(e),{baseOffsets:H,axisStride:X}=gA(e,x,0,l,N);for(let P=0;P<N;P++){let Z=F[P],V=H[P],$=1,O=0;for(let z=0;z<p;z++){let rA=f[Z*2],oA=f[Z*2+1],iA=$*rA-O*oA,CA=$*oA+O*rA;$=iA,O=CA,b[V*2]=$,b[V*2+1]=O,Z+=G,V+=X}}return h}if(r===void 0){let f=A.size,y=new Float64Array(f),l=1;if(i)for(let h=0;h<f;h++)l*=Number(o[n+h]),y[h]=l;else for(let h=0;h<f;h++)l*=Number(A.iget(h)),y[h]=l;return d.fromData(y,[f],"float64")}let Q=r;if(Q<0&&(Q=t+Q),Q<0||Q>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let a=new Float64Array(A.size),s=e[Q],B=Array.from(e).filter((f,y)=>y!==Q),C=B.length===0?1:B.reduce((f,y)=>f*y,1),{baseOffsets:E,axisStride:u}=gA(e,g,n,Q,C),D=pr(e),{baseOffsets:m,axisStride:c}=gA(e,D,0,Q,C);for(let f=0;f<C;f++){let y=E[f],l=m[f],h=1;for(let b=0;b<s;b++)h*=Number(o[y]),a[l]=h,y+=u,l+=c}return d.fromData(a,[...e],"float64")}function EF(A,r,I=!1){let e=A.dtype;if(k(e)){let B=AI(A,r,I),C=rI(A,r,I);if(B instanceof T&&C instanceof T)return new T(B.re-C.re,B.im-C.im);let E=B,u=C,D=E.data,m=u.data,c=new Float64Array(E.size*2);for(let f=0;f<E.size;f++)c[f*2]=D[f*2]-m[f*2],c[f*2+1]=D[f*2+1]-m[f*2+1];return d.fromData(c,[...E.shape],e)}let t=AI(A,r,I),o=rI(A,r,I);if(typeof t=="number"&&typeof o=="number"){let B=t-o;if(e==="int8"||e==="int16"||e==="int32"||e==="uint8"||e==="uint16"||e==="uint32"){let C=d.zeros([1],e);return C.iset(0,B),Number(C.iget(0))}return B}let n=t,g=o,i=n.data,Q=g.data,a=d.zeros([...n.shape],e),s=a.data;for(let B=0;B<n.size;B++)s[B]=Number(i[B])-Number(Q[B]);return a}function Mg(A,r,I=!1){return OI(A,.5,r,I)}function uF(A,r,I,e=!1){return OI(A,r/100,I,e)}function OI(A,r,I,e=!1){if(eA(A.dtype,"quantile","Complex numbers are not orderable."),r<0||r>1)throw new Error("Quantile must be between 0 and 1");let t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(I===void 0){let m=nF(A,r);if(m!==null)return m;let c=[];if(A.isCContiguous)for(let w=0;w<A.size;w++)c.push(Number(n[g+w]));else for(let w=0;w<A.size;w++)c.push(Number(A.iget(w)));c.sort((w,N)=>w-N);let y=c.length,l=r*(y-1),h=Math.floor(l),b=Math.ceil(l);if(h===b)return c[h];let p=l-h;return c[h]*(1-p)+c[b]*p}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 a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=OI(A,r);if(!e)return m;let c=d.zeros(Array(o).fill(1),"float64");return c.iset(0,m),c}let s=a.reduce((m,c)=>m*c,1),B=t[Q],C=new Float64Array(s),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,s);for(let m=0;m<s;m++){let c=[],f=E[m];for(let p=0;p<B;p++)c.push(Number(n[f])),f+=u;c.sort((p,w)=>p-w);let y=c.length,l=r*(y-1),h=Math.floor(l),b=Math.ceil(l);if(h===b)C[m]=c[h];else{let p=l-h;C[m]=c[h]*(1-p)+c[b]*p}}let D=d.fromData(C,a,"float64");if(e){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return D}function Ng(A,r,I,e=!1){let t=A.dtype,o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(I===void 0)return WI(A,r,e);if(k(t)){let y=g,l=I.data,h=I.offset;if(r===void 0){let X=0,P=0,Z=0;if(A.isCContiguous)for(let $=0;$<A.size;$++){let O=Number(l[h+$%I.size]),z=y[(i+$)*2],rA=y[(i+$)*2+1];X+=z*O,P+=rA*O,Z+=O}else for(let $=0;$<A.size;$++){let O=Number(l[h+$%I.size]),z=A.iget($);X+=z.re*O,P+=z.im*O,Z+=O}return Z===0?new T(NaN,NaN):new T(X/Z,P/Z)}let b=r;if(b<0&&(b=n+b),b<0||b>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let p=Array.from(o).filter((X,P)=>P!==b);if(p.length===0){let X=Ng(A,void 0,I);return e?LA(X,n,t):X}let w=p.reduce((X,P)=>X*P,1),N=o[b],F=d.zeros(p,t),G=F.data,{baseOffsets:x,axisStride:H}=gA(o,Q,i,b,w);for(let X=0;X<w;X++){let P=0,Z=0,V=0,$=x[X];for(let O=0;O<N;O++){let z=Number(l[h+O%I.size]),rA=y[$*2],oA=y[$*2+1];P+=rA*z,Z+=oA*z,V+=z,$+=H}V===0?(G[X*2]=NaN,G[X*2+1]=NaN):(G[X*2]=P/V,G[X*2+1]=Z/V)}if(e){let X=[...o];return X[b]=1,d.fromData(G,X,t)}return F}let a=I.offset;if(r===void 0){let y=0,l=0,h=I.data;if(A.isCContiguous)for(let p=0;p<A.size;p++){let w=Number(h[a+p%I.size]);y+=Number(g[i+p])*w,l+=w}else for(let p=0;p<A.size;p++){let w=Number(h[a+p%I.size]);y+=Number(A.iget(p))*w,l+=w}return l===0?NaN:y/l}let s=r;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let B=Array.from(o).filter((y,l)=>l!==s);if(B.length===0){let y=Ng(A,void 0,I);return e?LA(y,n,"float64"):y}let C=B.reduce((y,l)=>y*l,1),E=o[s],u=I.data,D=new Float64Array(C),{baseOffsets:m,axisStride:c}=gA(o,Q,i,s,C);for(let y=0;y<C;y++){let l=0,h=0,b=m[y];for(let p=0;p<E;p++){let w=Number(u[a+p%I.size]);l+=Number(g[b])*w,h+=w,b+=c}D[y]=h===0?NaN:l/h}let f=d.fromData(D,B,"float64");if(e){let y=[...o];return y[s]=1,d.fromData(D,y,"float64")}return f}function cA(A,r){return isNaN(A)||isNaN(r)}function xg(A,r,I=!1){let e=A.dtype,t=k(e),o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(!t&&!DA(e))return sI(A,r,I);if(r===void 0){let c=GN(A);if(c!==null)return c;if(t){let l=g,h=0,b=0;if(A.isCContiguous)for(let w=0;w<A.size;w++){let N=l[(i+w)*2],F=l[(i+w)*2+1];cA(N,F)||(h+=N,b+=F)}else for(let w=0;w<A.size;w++){let N=A.iget(w),F=N.re,G=N.im;cA(F,G)||(h+=F,b+=G)}return new T(h,b)}let f=0;if(A.isCContiguous)for(let l=0;l<A.size;l++){let h=Number(g[i+l]);isNaN(h)||(f+=h)}else for(let l=0;l<A.size;l++){let h=Number(A.iget(l));isNaN(h)||(f+=h)}return f}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let s=Array.from(o).filter((c,f)=>f!==a);if(s.length===0){let c=xg(A);return I?LA(c,n,e):c}let B=s.reduce((c,f)=>c*f,1),C=o[a],{baseOffsets:E,axisStride:u}=gA(o,Q,i,a,B);if(t){let c=g,f=new Float64Array(B*2);for(let y=0;y<B;y++){let l=0,h=0,b=E[y];for(let p=0;p<C;p++){let w=c[b*2],N=c[b*2+1];cA(w,N)||(l+=w,h+=N),b+=u}f[y*2]=l,f[y*2+1]=h}if(I){let y=[...o];return y[a]=1,d.fromData(f,y,e)}return d.fromData(f,s,e)}let D=new Float64Array(B);for(let c=0;c<B;c++){let f=0,y=E[c];for(let l=0;l<C;l++){let h=Number(g[y]);isNaN(h)||(f+=h),y+=u}D[c]=f}let m=d.fromData(D,s,"float64");if(I){let c=[...o];return c[a]=1,d.fromData(D,c,"float64")}return m}function Jg(A,r,I=!1){let e=A.dtype,t=k(e);if(!t&&!DA(e))return ho(A,r,I);let o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(r===void 0){if(t){let y=g,l=1,h=0;if(A.isCContiguous)for(let p=0;p<A.size;p++){let w=y[(i+p)*2],N=y[(i+p)*2+1];if(!cA(w,N)){let F=l*w-h*N,G=l*N+h*w;l=F,h=G}}else for(let p=0;p<A.size;p++){let w=A.iget(p),N=w.re,F=w.im;if(!cA(N,F)){let G=l*N-h*F,x=l*F+h*N;l=G,h=x}}return new T(l,h)}let c=1;if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(g[i+y]);isNaN(l)||(c*=l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));isNaN(l)||(c*=l)}return c}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let s=Array.from(o).filter((c,f)=>f!==a);if(s.length===0){let c=Jg(A);return I?LA(c,n,e):c}let B=s.reduce((c,f)=>c*f,1),C=o[a],{baseOffsets:E,axisStride:u}=gA(o,Q,i,a,B);if(t){let c=g,f=new Float64Array(B*2);for(let y=0;y<B;y++){let l=1,h=0,b=E[y];for(let p=0;p<C;p++){let w=c[b*2],N=c[b*2+1];if(!cA(w,N)){let F=l*w-h*N,G=l*N+h*w;l=F,h=G}b+=u}f[y*2]=l,f[y*2+1]=h}if(I){let y=[...o];return y[a]=1,d.fromData(f,y,e)}return d.fromData(f,s,e)}let D=new Float64Array(B);for(let c=0;c<B;c++){let f=1,y=E[c];for(let l=0;l<C;l++){let h=Number(g[y]);isNaN(h)||(f*=h),y+=u}D[c]=f}let m=d.fromData(D,s,"float64");if(I){let c=[...o];return c[a]=1,d.fromData(D,c,"float64")}return m}function Ug(A,r,I=!1){let e=A.dtype,t=k(e);if(!t&&!DA(e))return WI(A,r,I);let o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(r===void 0){if(t){let l=g,h=0,b=0,p=0;if(A.isCContiguous)for(let N=0;N<A.size;N++){let F=l[(i+N)*2],G=l[(i+N)*2+1];cA(F,G)||(h+=F,b+=G,p++)}else for(let N=0;N<A.size;N++){let F=A.iget(N),G=F.re,x=F.im;cA(G,x)||(h+=G,b+=x,p++)}return p===0?new T(NaN,NaN):new T(h/p,b/p)}let c=0,f=0;if(A.isCContiguous)for(let l=0;l<A.size;l++){let h=Number(g[i+l]);isNaN(h)||(c+=h,f++)}else for(let l=0;l<A.size;l++){let h=Number(A.iget(l));isNaN(h)||(c+=h,f++)}return f===0?NaN:c/f}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let s=Array.from(o).filter((c,f)=>f!==a);if(s.length===0){let c=Ug(A);return I?LA(c,n,e):c}let B=s.reduce((c,f)=>c*f,1),C=o[a],{baseOffsets:E,axisStride:u}=gA(o,Q,i,a,B);if(t){let c=g,f=new Float64Array(B*2);for(let y=0;y<B;y++){let l=0,h=0,b=0,p=E[y];for(let w=0;w<C;w++){let N=c[p*2],F=c[p*2+1];cA(N,F)||(l+=N,h+=F,b++),p+=u}b===0?(f[y*2]=NaN,f[y*2+1]=NaN):(f[y*2]=l/b,f[y*2+1]=h/b)}if(I){let y=[...o];return y[a]=1,d.fromData(f,y,e)}return d.fromData(f,s,e)}let D=new Float64Array(B);for(let c=0;c<B;c++){let f=0,y=0,l=E[c];for(let h=0;h<C;h++){let b=Number(g[l]);isNaN(b)||(f+=b,y++),l+=u}D[c]=y===0?NaN:f/y}let m=d.fromData(D,s,"float64");if(I){let c=[...o];return c[a]=1,d.fromData(D,c,"float64")}return m}function VI(A,r,I=0,e=!1){let t=A.dtype;if(!k(t)&&!DA(t))return bo(A,r,I,e);let o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(k(t)){let c=g;if(r===void 0){let F=0,G=0,x=0,H=A.isCContiguous;if(H)for(let V=0;V<A.size;V++){let $=c[(i+V)*2],O=c[(i+V)*2+1];cA($,O)||(F+=$,G+=O,x++)}else for(let V=0;V<A.size;V++){let $=A.iget(V),O=$.re,z=$.im;cA(O,z)||(F+=O,G+=z,x++)}if(x-I<=0)return NaN;let X=F/x,P=G/x,Z=0;if(H)for(let V=0;V<A.size;V++){let $=c[(i+V)*2],O=c[(i+V)*2+1];if(!cA($,O)){let z=$-X,rA=O-P;Z+=z*z+rA*rA}}else for(let V=0;V<A.size;V++){let $=A.iget(V),O=$.re,z=$.im;if(!cA(O,z)){let rA=O-X,oA=z-P;Z+=rA*rA+oA*oA}}return Z/(x-I)}let f=r;if(f<0&&(f=n+f),f<0||f>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let y=Array.from(o).filter((F,G)=>G!==f);if(y.length===0){let F=VI(A,void 0,I);return e?LA(F,n,"float64"):F}let l=y.reduce((F,G)=>F*G,1),h=o[f],b=new Float64Array(l),{baseOffsets:p,axisStride:w}=gA(o,Q,i,f,l);for(let F=0;F<l;F++){let G=0,x=0,H=0,X=p[F];for(let $=0;$<h;$++){let O=c[X*2],z=c[X*2+1];cA(O,z)||(G+=O,x+=z,H++),X+=w}if(H-I<=0){b[F]=NaN;continue}let P=G/H,Z=x/H,V=0;X=p[F];for(let $=0;$<h;$++){let O=c[X*2],z=c[X*2+1];if(!cA(O,z)){let rA=O-P,oA=z-Z;V+=rA*rA+oA*oA}X+=w}b[F]=V/(H-I)}let N=d.fromData(b,y,"float64");if(e){let F=[...o];return F[f]=1,d.fromData(b,F,"float64")}return N}if(r===void 0){let c=0,f=0,y=A.isCContiguous;if(y)for(let b=0;b<A.size;b++){let p=Number(g[i+b]);isNaN(p)||(c+=p,f++)}else for(let b=0;b<A.size;b++){let p=Number(A.iget(b));isNaN(p)||(c+=p,f++)}if(f-I<=0)return NaN;let l=c/f,h=0;if(y)for(let b=0;b<A.size;b++){let p=Number(g[i+b]);isNaN(p)||(h+=(p-l)**2)}else for(let b=0;b<A.size;b++){let p=Number(A.iget(b));isNaN(p)||(h+=(p-l)**2)}return h/(f-I)}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let s=Array.from(o).filter((c,f)=>f!==a);if(s.length===0){let c=VI(A,void 0,I);return e?LA(c,n,"float64"):c}let B=s.reduce((c,f)=>c*f,1),C=o[a],E=new Float64Array(B),{baseOffsets:u,axisStride:D}=gA(o,Q,i,a,B);for(let c=0;c<B;c++){let f=0,y=0,l=u[c];for(let p=0;p<C;p++){let w=Number(g[l]);isNaN(w)||(f+=w,y++),l+=D}if(y-I<=0){E[c]=NaN;continue}let h=f/y,b=0;l=u[c];for(let p=0;p<C;p++){let w=Number(g[l]);isNaN(w)||(b+=(w-h)**2),l+=D}E[c]=b/(y-I)}let m=d.fromData(E,s,"float64");if(e){let c=[...o];return c[a]=1,d.fromData(E,c,"float64")}return m}function SC(A,r,I=0,e=!1){let t=VI(A,r,I,e);if(typeof t=="number")return Math.sqrt(t);let o=t,n=new Float64Array(o.size);for(let g=0;g<o.size;g++)n[g]=Math.sqrt(Number(o.data[g]));return d.fromData(n,[...o.shape],"float64")}function yo(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(!k(e)&&!DA(e))return rI(A,r,I);if(k(e)){let m=n;if(r===void 0){let N=1/0,F=1/0,G=!1;if(A.isCContiguous)for(let H=0;H<A.size;H++){let X=m[(g+H)*2],P=m[(g+H)*2+1];isNaN(X)||isNaN(P)||(G?(X<N||X===N&&P<F)&&(N=X,F=P):(N=X,F=P,G=!0))}else for(let H=0;H<A.size;H++){let X=A.iget(H),P=X.re,Z=X.im;isNaN(P)||isNaN(Z)||(G?(P<N||P===N&&Z<F)&&(N=P,F=Z):(N=P,F=Z,G=!0))}return G?new T(N,F):new T(NaN,NaN)}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 f=Array.from(t).filter((N,F)=>F!==c);if(f.length===0){let N=yo(A);return I?LA(N,o,e):N}let y=f.reduce((N,F)=>N*F,1),l=t[c],h=new Float64Array(y*2),{baseOffsets:b,axisStride:p}=gA(t,i,g,c,y);for(let N=0;N<y;N++){let F=1/0,G=1/0,x=!1,H=b[N];for(let X=0;X<l;X++){let P=m[H*2],Z=m[H*2+1];H+=p,!(isNaN(P)||isNaN(Z))&&(x?(P<F||P===F&&Z<G)&&(F=P,G=Z):(F=P,G=Z,x=!0))}h[N*2]=x?F:NaN,h[N*2+1]=x?G:NaN}let w=d.fromData(h,f,e);if(I){let N=[...t];return N[c]=1,d.fromData(h,N,e)}return w}if(r===void 0){let m=MN(A);if(m!==null)return m;let c=1/0;if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(n[g+y]);!isNaN(l)&&l<c&&(c=l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));!isNaN(l)&&l<c&&(c=l)}return c===1/0?NaN:c}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 a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=yo(A);return I?LA(m,o,"float64"):m}let s=a.reduce((m,c)=>m*c,1),B=t[Q],C=new Float64Array(s),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,s);for(let m=0;m<s;m++){let c=1/0,f=E[m];for(let y=0;y<B;y++){let l=Number(n[f]);!isNaN(l)&&l<c&&(c=l),f+=u}C[m]=c===1/0?NaN:c}let D=d.fromData(C,a,"float64");if(I){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return D}function lo(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(!k(e)&&!DA(e))return AI(A,r,I);if(k(e)){let m=n;if(r===void 0){let N=-1/0,F=-1/0,G=!1;if(A.isCContiguous)for(let H=0;H<A.size;H++){let X=m[(g+H)*2],P=m[(g+H)*2+1];isNaN(X)||isNaN(P)||(G?(X>N||X===N&&P>F)&&(N=X,F=P):(N=X,F=P,G=!0))}else for(let H=0;H<A.size;H++){let X=A.iget(H),P=X.re,Z=X.im;isNaN(P)||isNaN(Z)||(G?(P>N||P===N&&Z>F)&&(N=P,F=Z):(N=P,F=Z,G=!0))}return G?new T(N,F):new T(NaN,NaN)}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 f=Array.from(t).filter((N,F)=>F!==c);if(f.length===0){let N=lo(A);return I?LA(N,o,e):N}let y=f.reduce((N,F)=>N*F,1),l=t[c],h=new Float64Array(y*2),{baseOffsets:b,axisStride:p}=gA(t,i,g,c,y);for(let N=0;N<y;N++){let F=-1/0,G=-1/0,x=!1,H=b[N];for(let X=0;X<l;X++){let P=m[H*2],Z=m[H*2+1];H+=p,!(isNaN(P)||isNaN(Z))&&(x?(P>F||P===F&&Z>G)&&(F=P,G=Z):(F=P,G=Z,x=!0))}h[N*2]=x?F:NaN,h[N*2+1]=x?G:NaN}let w=d.fromData(h,f,e);if(I){let N=[...t];return N[c]=1,d.fromData(h,N,e)}return w}if(r===void 0){let m=LN(A);if(m!==null)return m;let c=-1/0;if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(n[g+y]);!isNaN(l)&&l>c&&(c=l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));!isNaN(l)&&l>c&&(c=l)}return c===-1/0?NaN:c}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 a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=lo(A);return I?LA(m,o,"float64"):m}let s=a.reduce((m,c)=>m*c,1),B=t[Q],C=new Float64Array(s),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,s);for(let m=0;m<s;m++){let c=-1/0,f=E[m];for(let y=0;y<B;y++){let l=Number(n[f]);!isNaN(l)&&l>c&&(c=l),f+=u}C[m]=c===-1/0?NaN:c}let D=d.fromData(C,a,"float64");if(I){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return D}function Fg(A,r){let I=A.dtype;if(!k(I)&&!DA(I))return Gg(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides;if(k(I)){let u=o;if(r===void 0){let b=1/0,p=1/0,w=-1;if(A.isCContiguous)for(let F=0;F<A.size;F++){let G=u[(n+F)*2],x=u[(n+F)*2+1];!cA(G,x)&&gr(G,x,b,p)<0&&(b=G,p=x,w=F)}else for(let F=0;F<A.size;F++){let G=A.iget(F),x=G.re,H=G.im;!cA(x,H)&&gr(x,H,b,p)<0&&(b=x,p=H,w=F)}return w}let D=r;if(D<0&&(D=t+D),D<0||D>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let m=Array.from(e).filter((b,p)=>p!==D);if(m.length===0)return Fg(A);let c=m.reduce((b,p)=>b*p,1),f=e[D],y=new Int32Array(c),{baseOffsets:l,axisStride:h}=gA(e,g,n,D,c);for(let b=0;b<c;b++){let p=1/0,w=1/0,N=0,F=l[b];for(let G=0;G<f;G++){let x=u[F*2],H=u[F*2+1];!cA(x,H)&&gr(x,H,p,w)<0&&(p=x,w=H,N=G),F+=h}y[b]=N}return d.fromData(y,m,"int32")}if(r===void 0){let u=1/0,D=-1;if(A.isCContiguous)for(let c=0;c<A.size;c++){let f=Number(o[n+c]);!isNaN(f)&&f<u&&(u=f,D=c)}else for(let c=0;c<A.size;c++){let f=Number(A.iget(c));!isNaN(f)&&f<u&&(u=f,D=c)}return D}let i=r;if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=Array.from(e).filter((u,D)=>D!==i);if(Q.length===0)return Fg(A);let a=Q.reduce((u,D)=>u*D,1),s=e[i],B=new Int32Array(a),{baseOffsets:C,axisStride:E}=gA(e,g,n,i,a);for(let u=0;u<a;u++){let D=1/0,m=0,c=C[u];for(let f=0;f<s;f++){let y=Number(o[c]);!isNaN(y)&&y<D&&(D=y,m=f),c+=E}B[u]=m}return d.fromData(B,Q,"int32")}function Sg(A,r){let I=A.dtype;if(!k(I)&&!DA(I))return Rg(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides;if(k(I)){let u=o;if(r===void 0){let b=-1/0,p=-1/0,w=-1;if(A.isCContiguous)for(let F=0;F<A.size;F++){let G=u[(n+F)*2],x=u[(n+F)*2+1];!cA(G,x)&&gr(G,x,b,p)>0&&(b=G,p=x,w=F)}else for(let F=0;F<A.size;F++){let G=A.iget(F),x=G.re,H=G.im;!cA(x,H)&&gr(x,H,b,p)>0&&(b=x,p=H,w=F)}return w}let D=r;if(D<0&&(D=t+D),D<0||D>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let m=Array.from(e).filter((b,p)=>p!==D);if(m.length===0)return Sg(A);let c=m.reduce((b,p)=>b*p,1),f=e[D],y=new Int32Array(c),{baseOffsets:l,axisStride:h}=gA(e,g,n,D,c);for(let b=0;b<c;b++){let p=-1/0,w=-1/0,N=0,F=l[b];for(let G=0;G<f;G++){let x=u[F*2],H=u[F*2+1];!cA(x,H)&&gr(x,H,p,w)>0&&(p=x,w=H,N=G),F+=h}y[b]=N}return d.fromData(y,m,"int32")}if(r===void 0){let u=-1/0,D=-1;if(A.isCContiguous)for(let c=0;c<A.size;c++){let f=Number(o[n+c]);!isNaN(f)&&f>u&&(u=f,D=c)}else for(let c=0;c<A.size;c++){let f=Number(A.iget(c));!isNaN(f)&&f>u&&(u=f,D=c)}return D}let i=r;if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=Array.from(e).filter((u,D)=>D!==i);if(Q.length===0)return Sg(A);let a=Q.reduce((u,D)=>u*D,1),s=e[i],B=new Int32Array(a),{baseOffsets:C,axisStride:E}=gA(e,g,n,i,a);for(let u=0;u<a;u++){let D=-1/0,m=0,c=C[u];for(let f=0;f<s;f++){let y=Number(o[c]);!isNaN(y)&&y>D&&(D=y,m=f),c+=E}B[u]=m}return d.fromData(B,Q,"int32")}function cF(A,r){let I=A.dtype;if(!k(I)&&!DA(I))return NC(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset;if(k(I)){let u=o,D=A.size;if(r===void 0){let N=d.zeros([D],I),F=N.data,G=0,x=0;if(A.isCContiguous)for(let X=0;X<D;X++){let P=u[(n+X)*2],Z=u[(n+X)*2+1];cA(P,Z)||(G+=P,x+=Z),F[X*2]=G,F[X*2+1]=x}else for(let X=0;X<D;X++){let P=A.iget(X),Z=P.re,V=P.im;cA(Z,V)||(G+=Z,x+=V),F[X*2]=G,F[X*2+1]=x}return N}let m=r;if(m<0&&(m=t+m),m<0||m>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let c=d.zeros([...e],I),f=c.data,y=e[m],l=[],h=1;for(let N=t-1;N>=0;N--)l.unshift(h),h*=e[N];let b=A.size,p=l[m];if(A.isCContiguous)for(let N=0;N<b;N++){let F=u[(n+N)*2],G=u[(n+N)*2+1],x=Math.floor(N/p)%y,H=cA(F,G);x===0?(f[N*2]=H?0:F,f[N*2+1]=H?0:G):(f[N*2]=f[(N-p)*2]+(H?0:F),f[N*2+1]=f[(N-p)*2+1]+(H?0:G))}else for(let N=0;N<b;N++){let F=A.iget(N),G=F.re,x=F.im,H=Math.floor(N/p)%y,X=cA(G,x);H===0?(f[N*2]=X?0:G,f[N*2+1]=X?0:x):(f[N*2]=f[(N-p)*2]+(X?0:G),f[N*2+1]=f[(N-p)*2+1]+(X?0:x))}return c}if(r===void 0){let u=A.size,D=new Float64Array(u),m=0;if(A.isCContiguous)for(let f=0;f<u;f++){let y=Number(o[n+f]);isNaN(y)||(m+=y),D[f]=m}else for(let f=0;f<u;f++){let y=Number(A.iget(f));isNaN(y)||(m+=y),D[f]=m}return d.fromData(D,[u],"float64")}let g=r;if(g<0&&(g=t+g),g<0||g>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let i=new Float64Array(A.size),Q=e[g],a=[],s=1;for(let u=t-1;u>=0;u--)a.unshift(s),s*=e[u];let B=A.size,C=a[g];if(A.isCContiguous)for(let u=0;u<B;u++){let D=Number(o[n+u]);Math.floor(u/C)%Q===0?i[u]=isNaN(D)?0:D:i[u]=i[u-C]+(isNaN(D)?0:D)}else for(let u=0;u<B;u++){let D=Number(A.iget(u));Math.floor(u/C)%Q===0?i[u]=isNaN(D)?0:D:i[u]=i[u-C]+(isNaN(D)?0:D)}return d.fromData(i,[...e],"float64")}function fF(A,r){let I=A.dtype;if(!k(I)&&!DA(I))return FC(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset;if(k(I)){let u=o,D=A.size;if(r===void 0){let N=d.zeros([D],I),F=N.data,G=1,x=0;if(A.isCContiguous)for(let X=0;X<D;X++){let P=u[(n+X)*2],Z=u[(n+X)*2+1];if(!cA(P,Z)){let V=G*P-x*Z,$=G*Z+x*P;G=V,x=$}F[X*2]=G,F[X*2+1]=x}else for(let X=0;X<D;X++){let P=A.iget(X),Z=P.re,V=P.im;if(!cA(Z,V)){let $=G*Z-x*V,O=G*V+x*Z;G=$,x=O}F[X*2]=G,F[X*2+1]=x}return N}let m=r;if(m<0&&(m=t+m),m<0||m>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let c=d.zeros([...e],I),f=c.data,y=e[m],l=[],h=1;for(let N=t-1;N>=0;N--)l.unshift(h),h*=e[N];let b=A.size,p=l[m];if(A.isCContiguous)for(let N=0;N<b;N++){let F=u[(n+N)*2],G=u[(n+N)*2+1],x=Math.floor(N/p)%y,H=cA(F,G);if(x===0)f[N*2]=H?1:F,f[N*2+1]=H?0:G;else{let X=f[(N-p)*2],P=f[(N-p)*2+1];H?(f[N*2]=X,f[N*2+1]=P):(f[N*2]=X*F-P*G,f[N*2+1]=X*G+P*F)}}else for(let N=0;N<b;N++){let F=A.iget(N),G=F.re,x=F.im,H=Math.floor(N/p)%y,X=cA(G,x);if(H===0)f[N*2]=X?1:G,f[N*2+1]=X?0:x;else{let P=f[(N-p)*2],Z=f[(N-p)*2+1];X?(f[N*2]=P,f[N*2+1]=Z):(f[N*2]=P*G-Z*x,f[N*2+1]=P*x+Z*G)}}return c}if(r===void 0){let u=A.size,D=new Float64Array(u),m=1;if(A.isCContiguous)for(let f=0;f<u;f++){let y=Number(o[n+f]);isNaN(y)||(m*=y),D[f]=m}else for(let f=0;f<u;f++){let y=Number(A.iget(f));isNaN(y)||(m*=y),D[f]=m}return d.fromData(D,[u],"float64")}let g=r;if(g<0&&(g=t+g),g<0||g>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let i=new Float64Array(A.size),Q=e[g],a=[],s=1;for(let u=t-1;u>=0;u--)a.unshift(s),s*=e[u];let B=A.size,C=a[g];if(A.isCContiguous)for(let u=0;u<B;u++){let D=Number(o[n+u]);Math.floor(u/C)%Q===0?i[u]=isNaN(D)?1:D:i[u]=i[u-C]*(isNaN(D)?1:D)}else for(let u=0;u<B;u++){let D=Number(A.iget(u));Math.floor(u/C)%Q===0?i[u]=isNaN(D)?1:D:i[u]=i[u-C]*(isNaN(D)?1:D)}return d.fromData(i,[...e],"float64")}function GC(A,r,I=!1){if(eA(A.dtype,"nanmedian","Complex numbers are not orderable."),!DA(A.dtype))return Mg(A,r,I);let e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides;if(r===void 0){let D=[];if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(o[n+y]);isNaN(l)||D.push(l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));isNaN(l)||D.push(l)}if(D.length===0)return NaN;D.sort((y,l)=>y-l);let c=D.length,f=Math.floor(c/2);return c%2===0?(D[f-1]+D[f])/2:D[f]}let i=r;if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=Array.from(e).filter((D,m)=>m!==i);if(Q.length===0){let D=GC(A);return I?LA(D,t,"float64"):D}let a=Q.reduce((D,m)=>D*m,1),s=e[i],B=new Float64Array(a),{baseOffsets:C,axisStride:E}=gA(e,g,n,i,a);for(let D=0;D<a;D++){let m=[],c=C[D];for(let l=0;l<s;l++){let h=Number(o[c]);isNaN(h)||m.push(h),c+=E}if(m.length===0){B[D]=NaN;continue}m.sort((l,h)=>l-h);let f=m.length,y=Math.floor(f/2);f%2===0?B[D]=(m[y-1]+m[y])/2:B[D]=m[y]}let u=d.fromData(B,Q,"float64");if(I){let D=[...e];return D[i]=1,d.fromData(B,D,"float64")}return u}function Lg(A,r,I,e=!1){if(eA(A.dtype,"nanquantile","Complex numbers are not orderable."),!DA(A.dtype))return OI(A,r,I,e);if(r<0||r>1)throw new Error("Quantile must be between 0 and 1");let t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(I===void 0){let m=[];if(A.isCContiguous)for(let p=0;p<A.size;p++){let w=Number(n[g+p]);isNaN(w)||m.push(w)}else for(let p=0;p<A.size;p++){let w=Number(A.iget(p));isNaN(w)||m.push(w)}if(m.length===0)return NaN;m.sort((p,w)=>p-w);let f=m.length,y=r*(f-1),l=Math.floor(y),h=Math.ceil(y);if(l===h)return m[l];let b=y-l;return m[l]*(1-b)+m[h]*b}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 a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=Lg(A,r);return e?LA(m,o,"float64"):m}let s=a.reduce((m,c)=>m*c,1),B=t[Q],C=new Float64Array(s),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,s);for(let m=0;m<s;m++){let c=[],f=E[m];for(let p=0;p<B;p++){let w=Number(n[f]);isNaN(w)||c.push(w),f+=u}if(c.length===0){C[m]=NaN;continue}c.sort((p,w)=>p-w);let y=c.length,l=r*(y-1),h=Math.floor(l),b=Math.ceil(l);if(h===b)C[m]=c[h];else{let p=l-h;C[m]=c[h]*(1-p)+c[b]*p}}let D=d.fromData(C,a,"float64");if(e){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return D}function DF(A,r,I,e=!1){return Lg(A,r/100,I,e)}function _A(A,r,I,e){let t=S(A).ndim,o=r.map(Q=>Q<0?t+Q:Q),n=[...o].sort((Q,a)=>a-Q),g=[...o].sort((Q,a)=>Q-a),i=S(A);for(let Q of n){let a=e(i,Q,!1);if(!(a instanceof d)){if(I){let s=Array(t).fill(1),B=d.zeros(s,i.dtype);return B.iset(0,a),R(B)}return a}i=a}if(I)for(let Q of g)i=iI(i,Q);return R(i)}function po(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>sI(t,o,n));let e=sI(S(A),r,I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function wo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>WI(t,o,n));let e=WI(S(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function No(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>ho(t,o,n));let e=ho(S(A),r,I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function Fo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>AI(t,o,n));let e=AI(S(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}var Hg=Fo;function So(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>rI(t,o,n));let e=rI(S(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}var _g=So;function Go(A,r,I){let e=EF(S(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Ro(A,r){let I=Gg(S(A),r);return typeof I=="number"?I:R(I)}function ko(A,r){let I=Rg(S(A),r);return typeof I=="number"?I:R(I)}function BI(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>bo(o,n,I,g));let t=bo(S(A),r,I,e);return typeof t=="number"?t:R(t)}var RC=BI;function qo(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>wC(o,n,I,g));let t=wC(S(A),r,I,e);return typeof t=="number"?t:R(t)}function Mo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Mg(t,o,n));let e=Mg(S(A),r,I);return typeof e=="number"?e:R(e)}function xo(A,r,I,e){let t=uF(S(A),r,I,e);return typeof t=="number"?t:R(t)}function Jo(A,r,I,e){let t=OI(S(A),r,I,e);return typeof t=="number"?t:R(t)}function Uo(A,r,I,e){let t=I?S(I):void 0,o=Ng(S(A),r,t,e);return typeof o=="number"||o instanceof T?o:R(o)}function Lo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>kg(t,o,n));let e=kg(S(A),r,I);return typeof e=="boolean"?e:R(e)}function Ho(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>qg(t,o,n));let e=qg(S(A),r,I);return typeof e=="boolean"?e:R(e)}function _o(A,r){return R(NC(S(A),r))}function Yo(A,r){return R(FC(S(A),r))}function vo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>xg(t,o,n));let e=xg(S(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Xo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Jg(t,o,n));let e=Jg(S(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function To(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Ug(t,o,n));let e=Ug(S(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Po(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>VI(o,n,I,g));let t=VI(S(A),r,I,e);return typeof t=="number"?t:R(t)}function Ko(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>SC(o,n,I,g));let t=SC(S(A),r,I,e);return typeof t=="number"?t:R(t)}function Vo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>yo(t,o,n));let e=yo(S(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Wo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>lo(t,o,n));let e=lo(S(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Oo(A,r){let I=Fg(S(A),r);return typeof I=="number"?I:R(I)}function Zo(A,r){let I=Sg(S(A),r);return typeof I=="number"?I:R(I)}function zo(A,r){return R(cF(S(A),r))}function jo(A,r){return R(fF(S(A),r))}function $o(A,r,I){let e=GC(S(A),r,I);return typeof e=="number"?e:R(e)}function An(A,r,I,e){let t=Lg(S(A),r,I,e);return typeof t=="number"?t:R(t)}function rn(A,r,I,e){let t=DF(S(A),r,I,e);return typeof t=="number"?t:R(t)}var B4="AGFzbQEAAAABHQRgBH9/f38AYAR/f398AGAEf39/fQBgBH9/f34AAg8BA2VudgZtZW1vcnkCABADDQwAAQACAAMAAAAAAAAGCQF/AUGAgMAACweBAgwPbG9naWNhbF9hbmRfZjY0AAAWbG9naWNhbF9hbmRfc2NhbGFyX2Y2NAABD2xvZ2ljYWxfYW5kX2YzMgACFmxvZ2ljYWxfYW5kX3NjYWxhcl9mMzIAAw9sb2dpY2FsX2FuZF9pNjQABBZsb2dpY2FsX2FuZF9zY2FsYXJfaTY0AAUPbG9naWNhbF9hbmRfaTMyAAYWbG9naWNhbF9hbmRfc2NhbGFyX2kzMgAHD2xvZ2ljYWxfYW5kX2kxNgAIFmxvZ2ljYWxfYW5kX3NjYWxhcl9pMTYACQ5sb2dpY2FsX2FuZF9pOAAKFWxvZ2ljYWxfYW5kX3NjYWxhcl9pOAALCocjDJACAQZ/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBkEAIQUgASEHIAAhAwNAQQAhCAJAIAMrAwBEAAAAAAAAAABhDQAgBysDAEQAAAAAAAAAAGIhCAsgAiAFaiIJIAg6AAACQAJAIANBCGorAwBEAAAAAAAAAABiDQBBACEIDAELIAdBCGorAwBEAAAAAAAAAABiIQgLIAlBAWogCDoAACAHQRBqIQcgA0EQaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQMCQAJAIAAgBUEDdCIHaisDAEQAAAAAAAAAAGINAEEAIQcMAQsgASAHaisDAEQAAAAAAAAAAGIhBwsgAyAHOgAACwu9AwIEfwF7AkACQCADRAAAAAAAAAAAYQ0AIAJFDQFBACEEAkAgAkEISQ0AAkAgASAAIAJBA3RqTw0AIAAgASACakkNAQsgAkF+cSIEIQUgACEGIAEhBwNAIAcgBv0AAwD9DAAAAAAAAAAAAAAAAAAAAAD9SCAI/Q0ACAAAAAAAAAAAAAAAAAAA/QwBAQEBAQEBAQEBAQEBAQEB/U79WQAAACAGQRBqIQYgB0ECaiEHIAVBfmoiBQ0ACyACIARGDQILIAQhBwJAIAIgBGtBA3EiBUUNACAAIARBA3RqIQYgBCEHA0AgASAHaiAGKwMARAAAAAAAAAAAYjoAACAGQQhqIQYgB0EBaiEHIAVBf2oiBQ0ACwsgBCACa0F8Sw0BIAAgB0EDdGohBgNAIAEgB2oiBSAGKwMARAAAAAAAAAAAYjoAACAFQQFqIAZBCGorAwBEAAAAAAAAAABiOgAAIAVBAmogBkEQaisDAEQAAAAAAAAAAGI6AAAgBUEDaiAGQRhqKwMARAAAAAAAAAAAYjoAACABQQRqIQEgBkEgaiEGIAcgAkF8aiICRw0ADAILCyACRQ0AIAFBACAC/AsACwv4AQEGfwJAIANFDQAgA0EBcSEEQQAhBQJAIANBAUYNACADQX5xIQZBACEFIAEhByAAIQMDQEEAIQgCQCADKgIAQwAAAABbDQAgByoCAEMAAAAAXCEICyACIAVqIgkgCDoAAAJAAkAgA0EEaioCAEMAAAAAXA0AQQAhCAwBCyAHQQRqKgIAQwAAAABcIQgLIAlBAWogCDoAACAHQQhqIQcgA0EIaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQMCQAJAIAAgBUECdCIHaioCAEMAAAAAXA0AQQAhBwwBCyABIAdqKgIAQwAAAABcIQcLIAMgBzoAAAsLogMCBH8BewJAAkAgA0MAAAAAWw0AIAJFDQFBACEEAkAgAkEISQ0AAkAgASAAIAJBAnRqTw0AIAAgASACakkNAQsgAkF8cSIEIQUgACEGIAEhBwNAIAcgBv0AAgD9DAAAAAAAAAAAAAAAAAAAAAD9QiAI/Q0ABAgMAAAAAAAAAAAAAAAA/QwBAQEBAQEBAQEBAQEBAQEB/U79WgAAACAGQRBqIQYgB0EEaiEHIAVBfGoiBQ0ACyACIARGDQILIAQhBwJAIAJBA3EiBUUNACAAIARBAnRqIQYgBCEHA0AgASAHaiAGKgIAQwAAAABcOgAAIAZBBGohBiAHQQFqIQcgBUF/aiIFDQALCyAEIAJrQXxLDQEgACAHQQJ0aiEGA0AgASAHaiIFIAYqAgBDAAAAAFw6AAAgBUEBaiAGQQRqKgIAQwAAAABcOgAAIAVBAmogBkEIaioCAEMAAAAAXDoAACAFQQNqIAZBDGoqAgBDAAAAAFw6AAAgAUEEaiEBIAZBEGohBiAHIAJBfGoiAkcNAAwCCwsgAkUNACABQQAgAvwLAAsL4gEBBn8CQCADRQ0AIANBAXEhBEEAIQUCQCADQQFGDQAgA0F+cSEGQQAhBSABIQcgACEDA0BBACEIAkAgAykDAFANACAHKQMAQgBSIQgLIAIgBWoiCSAIOgAAAkACQCADQQhqKQMAUEUNAEEAIQgMAQsgB0EIaikDAEIAUiEICyAJQQFqIAg6AAAgB0EQaiEHIANBEGohAyAGIAVBAmoiBUcNAAsLIARFDQAgAiAFaiEDAkACQCAAIAVBA3QiB2opAwBQRQ0AQQAhBwwBCyABIAdqKQMAQgBSIQcLIAMgBzoAAAsLkgMCBH8BewJAAkAgA1ANACACRQ0BQQAhBAJAIAJBCEkNAAJAIAEgACACQQN0ak8NACAAIAEgAmpJDQELIAJBfnEiBCEFIAAhBiABIQcDQCAHIAb9AAMA/QwAAAAAAAAAAAAAAAAAAAAA/dcBIAj9DQAIAAAAAAAAAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1ZAAAAIAZBEGohBiAHQQJqIQcgBUF+aiIFDQALIAIgBEYNAgsgBCEHAkAgAiAEa0EDcSIFRQ0AIAAgBEEDdGohBiAEIQcDQCABIAdqIAYpAwBCAFI6AAAgBkEIaiEGIAdBAWohByAFQX9qIgUNAAsLIAQgAmtBfEsNASAAIAdBA3RqIQYDQCABIAdqIgUgBikDAEIAUjoAACAFQQFqIAZBCGopAwBCAFI6AAAgBUECaiAGQRBqKQMAQgBSOgAAIAVBA2ogBkEYaikDAEIAUjoAACABQQRqIQEgBkEgaiEGIAcgAkF8aiICRw0ADAILCyACRQ0AIAFBACAC/AsACwveAQEGfwJAIANFDQAgA0EBcSEEQQAhBQJAIANBAUYNACADQX5xIQYgASEHIAAhA0EAIQUDQEEAIQgCQCADKAIARQ0AIAcoAgBBAEchCAsgAiAFaiIJIAg6AAACQAJAIANBBGooAgANAEEAIQgMAQsgB0EEaigCAEEARyEICyAJQQFqIAg6AAAgB0EIaiEHIANBCGohAyAGIAVBAmoiBUcNAAsLIARFDQAgAiAFaiEDAkACQCAAIAVBAnQiB2ooAgANAEEAIQcMAQsgASAHaigCAEEARyEHCyADIAc6AAALC44DAgN/AXsCQAJAIANFDQAgAkUNAUEAIQQCQCACQQhJDQACQCABIAAgAkECdGpPDQAgACABIAJqSQ0BCyACQXxxIgQhBSAAIQMgASEGA0AgBiAD/QACAP0MAAAAAAAAAAAAAAAAAAAAAP04IAf9DQAECAwAAAAAAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1aAAAAIANBEGohAyAGQQRqIQYgBUF8aiIFDQALIAIgBEYNAgsgBCEGAkAgAkEDcSIFRQ0AIAAgBEECdGohAyAEIQYDQCABIAZqIAMoAgBBAEc6AAAgA0EEaiEDIAZBAWohBiAFQX9qIgUNAAsLIAQgAmtBfEsNASAAIAZBAnRqIQMDQCABIAZqIgUgAygCAEEARzoAACAFQQFqIANBBGooAgBBAEc6AAAgBUECaiADQQhqKAIAQQBHOgAAIAVBA2ogA0EMaigCAEEARzoAACABQQRqIQEgA0EQaiEDIAYgAkF8aiICRw0ADAILCyACRQ0AIAFBACAC/AsACwveAQEGfwJAIANFDQAgA0EBcSEEQQAhBQJAIANBAUYNACADQX5xIQYgASEHIAAhA0EAIQUDQEEAIQgCQCADLwEARQ0AIAcvAQBBAEchCAsgAiAFaiIJIAg6AAACQAJAIANBAmovAQANAEEAIQgMAQsgB0ECai8BAEEARyEICyAJQQFqIAg6AAAgB0EEaiEHIANBBGohAyAGIAVBAmoiBUcNAAsLIARFDQAgAiAFaiEDAkACQCAAIAVBAXQiB2ovAQANAEEAIQcMAQsgASAHai8BAEEARyEHCyADIAc6AAALC44DAgN/AXsCQAJAIANFDQAgAkUNAUEAIQQCQCACQQhJDQACQCABIAAgAkEBdGpPDQAgACABIAJqSQ0BCyACQXhxIgQhBSAAIQMgASEGA0AgBiAD/QABAP0MAAAAAAAAAAAAAAAAAAAAAP0uIAf9DQACBAYICgwOAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1bAAAAIANBEGohAyAGQQhqIQYgBUF4aiIFDQALIAIgBEYNAgsgBCEGAkAgAkEDcSIFRQ0AIAAgBEEBdGohAyAEIQYDQCABIAZqIAMvAQBBAEc6AAAgA0ECaiEDIAZBAWohBiAFQX9qIgUNAAsLIAQgAmtBfEsNASAAIAZBAXRqIQMDQCABIAZqIgUgAy8BAEEARzoAACAFQQFqIANBAmovAQBBAEc6AAAgBUECaiADQQRqLwEAQQBHOgAAIAVBA2ogA0EGai8BAEEARzoAACABQQRqIQEgA0EIaiEDIAYgAkF8aiICRw0ADAILCyACRQ0AIAFBACAC/AsACwuTBAQFfwF7AX8BewJAAkAgA0FwcSIEDQBBACEEDAELAkACQCAEQX9qIgVBD0cNAEEAIQQMAQsgBUEEdkEBakH+////AXEhBkEAIQQDQCACIARqIgcgACAEaiII/QAAAP0MAAAAAAAAAAAAAAAAAAAAACIJ/SQgASAEaiIK/QAAACAJ/ST9Tv0MAQEBAQEBAQEBAQEBAQEBASIL/U79CwAAIAdBEGogCEEQav0AAAAgCf0kIApBEGr9AAAAIAn9JP1OIAv9Tv0LAAAgBEEgaiEEIAZBfmoiBg0ACwsgBUEQcQ0AIAIgBGogACAEav0AAAD9DAAAAAAAAAAAAAAAAAAAAAAiCf0kIAEgBGr9AAAAIAn9JP1O/QwBAQEBAQEBAQEBAQEBAQEB/U79CwAAIARBEGohBAsCQCADIARNDQAgBEEBaiEGAkAgAyAEa0EBcUUNACACIARqIQcCQAJAIAAgBGotAAANAEEAIQgMAQsgASAEai0AAEEARyEICyAHIAg6AAAgBEEBaiEECyADIAZGDQADQEEAIQYCQCAAIARqIgctAABFDQAgASAEai0AAEEARyEGCyACIARqIgggBjoAAAJAAkAgB0EBai0AAA0AQQAhBgwBCyABIARqQQFqLQAAQQBHIQYLIAhBAWogBjoAACACQQJqIQIgAEECaiEAIAFBAmohASAEIANBfmoiA0cNAAsLC6gFAwR/AnsBfwJAAkAgAw0AIAJFDQEgAUEAIAL8CwAPCwJAAkAgAkFwcSIDDQBBACEDDAELIANBf2pBBHZBAWoiBEEDcSEFAkACQCADQTFPDQBBACEDDAELIARB/P///wFxIQZBACEDA0AgASADaiIEIAAgA2oiB/0AAAD9DAAAAAAAAAAAAAAAAAAAAAAiCP0k/QwBAQEBAQEBAQEBAQEBAQEBIgn9Tv0LAAAgBEEQaiAHQRBq/QAAACAI/SQgCf1O/QsAACAEQSBqIAdBIGr9AAAAIAj9JCAJ/U79CwAAIARBMGogB0Ewav0AAAAgCP0kIAn9Tv0LAAAgA0HAAGohAyAGQXxqIgYNAAsLIAVFDQADQCABIANqIAAgA2r9AAAA/QwAAAAAAAAAAAAAAAAAAAAA/ST9DAEBAQEBAQEBAQEBAQEBAQH9Tv0LAAAgA0EQaiEDIAVBf2oiBQ0ACwsgAiADTQ0AAkAgAiADayIGQRBJDQAgASAAa0EQSQ0AIAAgA2ohBCABIANqIQcgAyAGQXBxIgpqIQMgCiEFA0AgByAE/QAAAP0MAAAAAAAAAAAAAAAAAAAAAP0k/QwBAQEBAQEBAQEBAQEBAQEB/U79CwAAIARBEGohBCAHQRBqIQcgBUFwaiIFDQALIAYgCkYNAQsgAyEEAkAgAiADa0EDcSIHRQ0AIAMhBANAIAEgBGogACAEai0AAEEARzoAACAEQQFqIQQgB0F/aiIHDQALCyADIAJrQXxLDQADQCABIARqIgMgACAEaiIHLQAAQQBHOgAAIANBAWogB0EBai0AAEEARzoAACADQQJqIAdBAmotAABBAEc6AAAgA0EDaiAHQQNqLQAAQQBHOgAAIAFBBGohASAAQQRqIQAgBCACQXxqIgJHDQALCws=",In=null;function Qr(){if(In)return In;let A=atob(B4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);In=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=In.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),In}function mF(A,r,I,e){Qr().exports.logical_and_f64(A,r,I,e)}function yF(A,r,I,e){Qr().exports.logical_and_scalar_f64(A,r,I,e)}function lF(A,r,I,e){Qr().exports.logical_and_f32(A,r,I,e)}function hF(A,r,I,e){Qr().exports.logical_and_scalar_f32(A,r,I,e)}function kC(A,r,I,e){Qr().exports.logical_and_i64(A,r,I,e)}function qC(A,r,I,e){Qr().exports.logical_and_scalar_i64(A,r,I,BigInt(Math.round(e)))}function MC(A,r,I,e){Qr().exports.logical_and_i32(A,r,I,e)}function xC(A,r,I,e){Qr().exports.logical_and_scalar_i32(A,r,I,e)}function JC(A,r,I,e){Qr().exports.logical_and_i16(A,r,I,e)}function UC(A,r,I,e){Qr().exports.logical_and_scalar_i16(A,r,I,e)}function LC(A,r,I,e){Qr().exports.logical_and_i8(A,r,I,e)}function HC(A,r,I,e){Qr().exports.logical_and_scalar_i8(A,r,I,e)}var dF=64,C4={float64:mF,float32:lF,int64:kC,uint64:kC,int32:MC,uint32:MC,int16:JC,uint16:JC,int8:LC,uint8:LC},E4={float64:yF,float32:hF,int64:qC,uint64:qC,int32:xC,uint32:xC,int16:UC,uint16:UC,int8:HC,uint8:HC},bF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function pF(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<dF*Y.thresholdMultiplier)return null;let e=A.dtype,t=C4[e],o=bF[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I;J(g+i+Q),U();let a=q(A.data.subarray(A.offset,A.offset+I)),s=q(r.data.subarray(r.offset,r.offset+I)),B=_(Q);t(a,s,B,I);let C=v(B,I,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function _C(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<dF*Y.thresholdMultiplier)return null;let e=A.dtype,t=E4[e],o=bF[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let s=v(a,I,Uint8Array);return d.fromData(s,Array.from(A.shape),"bool")}var u4="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",en=null;function ar(){if(en)return en;let A=atob(u4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);en=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=en.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),en}function wF(A,r,I,e){ar().exports.logical_or_f64(A,r,I,e)}function NF(A,r,I,e){ar().exports.logical_or_scalar_f64(A,r,I,e)}function FF(A,r,I,e){ar().exports.logical_or_f32(A,r,I,e)}function SF(A,r,I,e){ar().exports.logical_or_scalar_f32(A,r,I,e)}function YC(A,r,I,e){ar().exports.logical_or_i64(A,r,I,e)}function vC(A,r,I,e){ar().exports.logical_or_scalar_i64(A,r,I,BigInt(Math.round(e)))}function XC(A,r,I,e){ar().exports.logical_or_i32(A,r,I,e)}function TC(A,r,I,e){ar().exports.logical_or_scalar_i32(A,r,I,e)}function PC(A,r,I,e){ar().exports.logical_or_i16(A,r,I,e)}function KC(A,r,I,e){ar().exports.logical_or_scalar_i16(A,r,I,e)}function VC(A,r,I,e){ar().exports.logical_or_i8(A,r,I,e)}function WC(A,r,I,e){ar().exports.logical_or_scalar_i8(A,r,I,e)}var GF=64,c4={float64:wF,float32:FF,int64:YC,uint64:YC,int32:XC,uint32:XC,int16:PC,uint16:PC,int8:VC,uint8:VC},f4={float64:NF,float32:SF,int64:vC,uint64:vC,int32:TC,uint32:TC,int16:KC,uint16:KC,int8:WC,uint8:WC},RF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function kF(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<GF*Y.thresholdMultiplier)return null;let e=A.dtype,t=c4[e],o=RF[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I;J(g+i+Q),U();let a=q(A.data.subarray(A.offset,A.offset+I)),s=q(r.data.subarray(r.offset,r.offset+I)),B=_(Q);t(a,s,B,I);let C=v(B,I,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function OC(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<GF*Y.thresholdMultiplier)return null;let e=A.dtype,t=f4[e],o=RF[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let s=v(a,I,Uint8Array);return d.fromData(s,Array.from(A.shape),"bool")}var D4="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",tn=null;function sr(){if(tn)return tn;let A=atob(D4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);tn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=tn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),tn}function qF(A,r,I,e){sr().exports.logical_xor_f64(A,r,I,e)}function MF(A,r,I,e){sr().exports.logical_xor_scalar_f64(A,r,I,e)}function xF(A,r,I,e){sr().exports.logical_xor_f32(A,r,I,e)}function JF(A,r,I,e){sr().exports.logical_xor_scalar_f32(A,r,I,e)}function ZC(A,r,I,e){sr().exports.logical_xor_i64(A,r,I,e)}function zC(A,r,I,e){sr().exports.logical_xor_scalar_i64(A,r,I,BigInt(Math.round(e)))}function jC(A,r,I,e){sr().exports.logical_xor_i32(A,r,I,e)}function $C(A,r,I,e){sr().exports.logical_xor_scalar_i32(A,r,I,e)}function AE(A,r,I,e){sr().exports.logical_xor_i16(A,r,I,e)}function rE(A,r,I,e){sr().exports.logical_xor_scalar_i16(A,r,I,e)}function IE(A,r,I,e){sr().exports.logical_xor_i8(A,r,I,e)}function eE(A,r,I,e){sr().exports.logical_xor_scalar_i8(A,r,I,e)}var UF=64,m4={float64:qF,float32:xF,int64:ZC,uint64:ZC,int32:jC,uint32:jC,int16:AE,uint16:AE,int8:IE,uint8:IE},y4={float64:MF,float32:JF,int64:zC,uint64:zC,int32:$C,uint32:$C,int16:rE,uint16:rE,int8:eE,uint8:eE},LF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function HF(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<UF*Y.thresholdMultiplier)return null;let e=A.dtype,t=m4[e],o=LF[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I;J(g+i+Q),U();let a=q(A.data.subarray(A.offset,A.offset+I)),s=q(r.data.subarray(r.offset,r.offset+I)),B=_(Q);t(a,s,B,I);let C=v(B,I,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function tE(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<UF*Y.thresholdMultiplier)return null;let e=A.dtype,t=y4[e],o=LF[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let s=v(a,I,Uint8Array);return d.fromData(s,Array.from(A.shape),"bool")}var l4="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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",on=null;function RA(){if(on)return on;let A=atob(l4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);on=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=on.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),on}function _F(A,r,I,e){RA().exports.copysign_f64(A,r,I,e)}function YF(A,r,I,e){RA().exports.copysign_f32(A,r,I,e)}function vF(A,r,I,e){RA().exports.copysign_i64(A,r,I,e)}function XF(A,r,I,e){RA().exports.copysign_u64(A,r,I,e)}function TF(A,r,I,e){RA().exports.copysign_i32(A,r,I,e)}function PF(A,r,I,e){RA().exports.copysign_u32(A,r,I,e)}function KF(A,r,I,e){RA().exports.copysign_i16(A,r,I,e)}function VF(A,r,I,e){RA().exports.copysign_u16(A,r,I,e)}function WF(A,r,I,e){RA().exports.copysign_i8(A,r,I,e)}function OF(A,r,I,e){RA().exports.copysign_u8(A,r,I,e)}function ZF(A,r,I,e){RA().exports.copysign_scalar_f64(A,r,I,e)}function zF(A,r,I,e){RA().exports.copysign_scalar_f32(A,r,I,e)}function jF(A,r,I,e){RA().exports.copysign_scalar_i64(A,r,I,BigInt(Math.round(e)))}function $F(A,r,I,e){RA().exports.copysign_scalar_u64(A,r,I,e)}function AS(A,r,I,e){RA().exports.copysign_scalar_i32(A,r,I,e)}function rS(A,r,I,e){RA().exports.copysign_scalar_u32(A,r,I,e)}function IS(A,r,I,e){RA().exports.copysign_scalar_i16(A,r,I,e)}function eS(A,r,I,e){RA().exports.copysign_scalar_u16(A,r,I,e)}function tS(A,r,I,e){RA().exports.copysign_scalar_i8(A,r,I,e)}function oS(A,r,I,e){RA().exports.copysign_scalar_u8(A,r,I,e)}var nS=64,h4={float64:_F,float32:YF,int64:vF,uint64:XF,int32:TF,uint32:PF,int16:KF,uint16:VF,int8:WF,uint8:OF},d4={float64:ZF,float32:zF,int64:jF,uint64:$F,int32:AS,uint32:rS,int16:IS,uint16:eS,int8:tS,uint8:oS},iS={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function gS(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<nS*Y.thresholdMultiplier)return null;let e=A.dtype,t=h4[e],o=iS[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*8;J(g*2+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=q(r.data.subarray(r.offset,r.offset+I)),s=_(i);t(Q,a,s,I);let B=v(s,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}function oE(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<nS*Y.thresholdMultiplier)return null;let e=A.dtype,t=d4[e],o=iS[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*8;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let s=v(a,I,Float64Array);return d.fromData(s,Array.from(A.shape),"float64")}var b4="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",nn=null;function ZI(){if(nn)return nn;let A=atob(b4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);nn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=nn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),nn}function QS(A,r,I){ZI().exports.logical_not_f64(A,r,I)}function aS(A,r,I){ZI().exports.logical_not_f32(A,r,I)}function nE(A,r,I){ZI().exports.logical_not_i64(A,r,I)}function iE(A,r,I){ZI().exports.logical_not_i32(A,r,I)}function gE(A,r,I){ZI().exports.logical_not_i16(A,r,I)}function QE(A,r,I){ZI().exports.logical_not_i8(A,r,I)}var p4=64,w4={float64:QS,float32:aS,int64:nE,uint64:nE,int32:iE,uint32:iE,int16:gE,uint16:gE,int8:QE,uint8:QE},N4={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function sS(A){if(!A.isCContiguous)return null;let r=A.size;if(r<p4*Y.thresholdMultiplier)return null;let I=A.dtype,e=w4[I],t=N4[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r;J(n+g),U();let i=q(A.data.subarray(A.offset,A.offset+r)),Q=_(g);e(i,Q,r);let a=v(Q,r,Uint8Array);return d.fromData(a,Array.from(A.shape),"bool")}function jI(A){return A!==0&&A!==0n}function Nr(A,r){let I=A[r*2],e=A[r*2+1];return I!==0||e!==0}function gn(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,e)=>I===r.shape[e])}function cS(A,r){if(typeof r=="number"){let I=_C(A,r);return I||BS(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),e=_C(A,I);return e||BS(A,I)}if(gn(A,r)){let I=pF(A,r);return I||F4(A,r)}return tr(A,r,(I,e)=>jI(I)&&jI(e))}function F4(A,r){let I=new Uint8Array(A.size),e=A.data,t=r.data,o=A.offset,n=r.offset,g=A.size,i=L(A.dtype),Q=L(r.dtype),a=k(A.dtype),s=k(r.dtype);if(a||s)for(let B=0;B<g;B++){let C=a?Nr(e,o+B):e[o+B]!==0,E=s?Nr(t,n+B):t[n+B]!==0;I[B]=C&&E?1:0}else if(i||Q)for(let B=0;B<g;B++){let C=i?e[o+B]!==0n:e[o+B]!==0,E=Q?t[n+B]!==0n:t[n+B]!==0;I[B]=C&&E?1:0}else for(let B=0;B<g;B++)I[B]=e[o+B]!==0&&t[n+B]!==0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function BS(A,r){let I=new Uint8Array(A.size),e=r!==0,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=Nr(g,n+i)&&e?1:0}else if(L(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=g[n+i]!==0n&&e?1:0}else if(n===0)for(let g=0;g<t;g++)I[g]=o[g]!==0&&e?1:0;else for(let g=0;g<t;g++)I[g]=o[n+g]!==0&&e?1:0}else if(k(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o);I[o]=(n.re!==0||n.im!==0)&&e?1:0}else if(L(A.dtype))for(let o=0;o<t;o++)I[o]=A.iget(o)!==0n&&e?1:0;else for(let o=0;o<t;o++)I[o]=Number(A.iget(o))!==0&&e?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function fS(A,r){if(typeof r=="number"){let I=OC(A,r);return I||CS(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),e=OC(A,I);return e||CS(A,I)}if(gn(A,r)){let I=kF(A,r);return I||S4(A,r)}return tr(A,r,(I,e)=>jI(I)||jI(e))}function S4(A,r){let I=new Uint8Array(A.size),e=A.data,t=r.data,o=A.offset,n=r.offset,g=A.size,i=L(A.dtype),Q=L(r.dtype),a=k(A.dtype),s=k(r.dtype);if(a||s)for(let B=0;B<g;B++){let C=a?Nr(e,o+B):e[o+B]!==0,E=s?Nr(t,n+B):t[n+B]!==0;I[B]=C||E?1:0}else if(i||Q)for(let B=0;B<g;B++){let C=i?e[o+B]!==0n:e[o+B]!==0,E=Q?t[n+B]!==0n:t[n+B]!==0;I[B]=C||E?1:0}else for(let B=0;B<g;B++)I[B]=e[o+B]!==0||t[n+B]!==0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function CS(A,r){let I=new Uint8Array(A.size),e=r!==0,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=Nr(g,n+i)||e?1:0}else if(L(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=g[n+i]!==0n||e?1:0}else if(n===0)for(let g=0;g<t;g++)I[g]=o[g]!==0||e?1:0;else for(let g=0;g<t;g++)I[g]=o[n+g]!==0||e?1:0}else if(k(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o);I[o]=n.re!==0||n.im!==0||e?1:0}else if(L(A.dtype))for(let o=0;o<t;o++)I[o]=A.iget(o)!==0n||e?1:0;else for(let o=0;o<t;o++)I[o]=Number(A.iget(o))!==0||e?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function DS(A){let r=sS(A);if(r)return r;let I=new Uint8Array(A.size),e=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(k(A.dtype)){let n=t;for(let g=0;g<e;g++)I[g]=Nr(n,o+g)?0:1}else if(L(A.dtype)){let n=t;for(let g=0;g<e;g++)I[g]=n[o+g]===0n?1:0}else if(o===0)for(let n=0;n<e;n++)I[n]=t[n]===0?1:0;else for(let n=0;n<e;n++)I[n]=t[o+n]===0?1:0}else if(k(A.dtype))for(let t=0;t<e;t++){let o=A.iget(t);I[t]=o.re===0&&o.im===0?1:0}else if(L(A.dtype))for(let t=0;t<e;t++)I[t]=A.iget(t)===0n?1:0;else for(let t=0;t<e;t++)I[t]=Number(A.iget(t))===0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function mS(A,r){if(typeof r=="number"){let I=tE(A,r);return I||ES(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),e=tE(A,I);return e||ES(A,I)}if(gn(A,r)){let I=HF(A,r);return I||G4(A,r)}return tr(A,r,(I,e)=>jI(I)!==jI(e))}function G4(A,r){let I=new Uint8Array(A.size),e=A.data,t=r.data,o=A.offset,n=r.offset,g=A.size,i=L(A.dtype),Q=L(r.dtype),a=k(A.dtype),s=k(r.dtype);if(a||s)for(let B=0;B<g;B++){let C=a?Nr(e,o+B):e[o+B]!==0,E=s?Nr(t,n+B):t[n+B]!==0;I[B]=C!==E?1:0}else if(i||Q)for(let B=0;B<g;B++){let C=i?e[o+B]!==0n:e[o+B]!==0,E=Q?t[n+B]!==0n:t[n+B]!==0;I[B]=C!==E?1:0}else for(let B=0;B<g;B++){let C=e[o+B]!==0,E=t[n+B]!==0;I[B]=C!==E?1:0}return d.fromData(I,Array.from(A.shape),"bool")}function ES(A,r){let I=new Uint8Array(A.size),e=r!==0,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++){let Q=Nr(g,n+i);I[i]=Q!==e?1:0}}else if(L(A.dtype)){let g=o;for(let i=0;i<t;i++){let Q=g[n+i]!==0n;I[i]=Q!==e?1:0}}else if(n===0)for(let g=0;g<t;g++){let i=o[g]!==0;I[g]=i!==e?1:0}else for(let g=0;g<t;g++){let i=o[n+g]!==0;I[g]=i!==e?1:0}}else if(k(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o),g=n.re!==0||n.im!==0;I[o]=g!==e?1:0}else if(L(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o)!==0n;I[o]=n!==e?1:0}else for(let o=0;o<t;o++){let n=Number(A.iget(o))!==0;I[o]=n!==e?1:0}return d.fromData(I,Array.from(A.shape),"bool")}function yS(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(k(A.dtype)){let o=e;for(let n=0;n<I;n++){let g=o[(t+n)*2],i=o[(t+n)*2+1];r[n]=Number.isFinite(g)&&Number.isFinite(i)?1:0}}else if(L(A.dtype)||pA(A.dtype))r.fill(1);else if(t===0)for(let o=0;o<I;o++)r[o]=Number.isFinite(e[o])?1:0;else for(let o=0;o<I;o++){let n=e[t+o];r[o]=Number.isFinite(n)?1:0}}else if(k(A.dtype))for(let e=0;e<I;e++){let t=A.iget(e);r[e]=Number.isFinite(t.re)&&Number.isFinite(t.im)?1:0}else if(L(A.dtype)||pA(A.dtype))r.fill(1);else for(let e=0;e<I;e++)r[e]=Number.isFinite(Number(A.iget(e)))?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function lS(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(k(A.dtype)){let o=e;for(let n=0;n<I;n++){let g=o[(t+n)*2],i=o[(t+n)*2+1],Q=!Number.isFinite(g)&&!Number.isNaN(g),a=!Number.isFinite(i)&&!Number.isNaN(i);r[n]=Q||a?1:0}}else if(!(L(A.dtype)||pA(A.dtype)))if(t===0)for(let o=0;o<I;o++){let n=e[o];r[o]=!Number.isFinite(n)&&!Number.isNaN(n)?1:0}else for(let o=0;o<I;o++){let n=e[t+o];r[o]=!Number.isFinite(n)&&!Number.isNaN(n)?1:0}}else if(k(A.dtype))for(let e=0;e<I;e++){let t=A.iget(e),o=!Number.isFinite(t.re)&&!Number.isNaN(t.re),n=!Number.isFinite(t.im)&&!Number.isNaN(t.im);r[e]=o||n?1:0}else if(!(L(A.dtype)||pA(A.dtype)))for(let e=0;e<I;e++){let t=Number(A.iget(e));r[e]=!Number.isFinite(t)&&!Number.isNaN(t)?1:0}return d.fromData(r,Array.from(A.shape),"bool")}function hS(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(k(A.dtype)){let o=e;for(let n=0;n<I;n++){let g=o[(t+n)*2],i=o[(t+n)*2+1];r[n]=Number.isNaN(g)||Number.isNaN(i)?1:0}}else if(!(L(A.dtype)||pA(A.dtype)))for(let o=0;o<I;o++)r[o]=Number.isNaN(e[t+o])?1:0}else if(k(A.dtype))for(let e=0;e<I;e++){let t=A.iget(e);r[e]=Number.isNaN(t.re)||Number.isNaN(t.im)?1:0}else if(!(L(A.dtype)||pA(A.dtype)))for(let e=0;e<I;e++)r[e]=Number.isNaN(Number(A.iget(e)))?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function dS(A){let r=new Uint8Array(A.size);return d.fromData(r,Array.from(A.shape),"bool")}function bS(A,r){if(eA(A.dtype,"copysign","copysign is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"copysign","copysign is only defined for real numbers."),typeof r=="number"){let i=oE(A,r);return i||uS(A,r)}if(r.size===1&&!k(r.dtype)){let i=Number(r.iget(0)),Q=oE(A,i);return Q||uS(A,i)}if(gn(A,r)){let i=gS(A,r);return i||R4(A,r)}let I=_r(A.shape,r.shape),e=I.reduce((i,Q)=>i*Q,1),t=d.zeros(I,"float64"),o=t.data,n=Yg(A,I),g=Yg(r,I);for(let i=0;i<e;i++){let Q=Number(n.iget(i)),a=Number(g.iget(i));o[i]=Math.sign(a)*Math.abs(Q)}return t}function R4(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=L(A.dtype),a=L(r.dtype);for(let s=0;s<t;s++){let B=Q?Number(o[g+s]):o[g+s],C=a?Number(n[i+s]):n[i+s];e[s]=Math.sign(C)*Math.abs(B)}return I}function uS(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size,o=Math.sign(r);if(!A.isCContiguous){for(let i=0;i<t;i++)e[i]=o*Math.abs(Number(A.iget(i)));return I}let n=A.data,g=A.offset;if(L(A.dtype)){let i=n;for(let Q=0;Q<t;Q++)e[Q]=o*Math.abs(Number(i[g+Q]))}else if(g===0)for(let i=0;i<t;i++)e[i]=o*Math.abs(n[i]);else for(let i=0;i<t;i++)e[i]=o*Math.abs(n[g+i]);return I}function pS(A){eA(A.dtype,"signbit","signbit is only defined for real numbers.");let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(L(A.dtype)){let o=e;for(let n=0;n<I;n++)r[n]=o[t+n]<0n?1:0}else for(let o=0;o<I;o++){let n=e[t+o];r[o]=n<0||Object.is(n,-0)?1:0}}else if(L(A.dtype))for(let e=0;e<I;e++)r[e]=A.iget(e)<0n?1:0;else for(let e=0;e<I;e++){let t=Number(A.iget(e));r[e]=t<0||Object.is(t,-0)?1:0}return d.fromData(r,Array.from(A.shape),"bool")}function wS(A,r){if(eA(A.dtype,"nextafter","nextafter is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof r=="number")return q4(A,r);if(gn(A,r))return k4(A,r);let I=_r(A.shape,r.shape),e=I.reduce((i,Q)=>i*Q,1),t=d.zeros(I,"float64"),o=t.data,n=Yg(A,I),g=Yg(r,I);for(let i=0;i<e;i++){let Q=Number(n.iget(i)),a=Number(g.iget(i));o[i]=zI(Q,a)}return t}function k4(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=L(A.dtype),a=L(r.dtype);for(let s=0;s<t;s++){let B=Q?Number(o[g+s]):o[g+s],C=a?Number(n[i+s]):n[i+s];e[s]=zI(B,C)}return I}function q4(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(L(A.dtype)){let g=o;for(let i=0;i<t;i++)e[i]=zI(Number(g[n+i]),r)}else for(let g=0;g<t;g++)e[g]=zI(o[n+g],r)}else for(let o=0;o<t;o++)e[o]=zI(Number(A.iget(o)),r);return I}function zI(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),e=new Float64Array(I),t=new BigInt64Array(I);e[0]=A;let o=t[0];return(A>0?r>A:r<A)?o=o+1n:o=o-1n,t[0]=o,e[0]}function NS(A){eA(A.dtype,"spacing","spacing is only defined for real numbers.");let r=d.zeros(Array.from(A.shape),"float64"),I=r.data,e=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(L(A.dtype)){let n=t;for(let g=0;g<e;g++)I[g]=aE(Number(n[o+g]))}else for(let n=0;n<e;n++)I[n]=aE(t[o+n])}else for(let t=0;t<e;t++)I[t]=aE(Number(A.iget(t)));return r}function aE(A){if(Number.isNaN(A))return NaN;if(!Number.isFinite(A))return NaN;if(Math.abs(A)===0)return Number.MIN_VALUE;let I=zI(A,1/0);return Math.abs(I-A)}function Yg(A,r){let I=A.shape.length,e=r.length,t=new Array(e).fill(0);for(let o=0;o<I;o++){let n=e-I+o,g=A.shape[o],i=r[n];if(g===i)t[n]=A.strides[o];else if(g===1)t[n]=0;else throw new Error("Invalid broadcast")}return d.fromData(A.data,Array.from(r),A.dtype,t,A.offset)}function FS(A){let r=A.dtype,I=A.size,e=new Uint8Array(I);if(k(r))if(A.isCContiguous){let t=A.offset,o=A.data;for(let n=0;n<I;n++)e[n]=o[(t+n)*2+1]!==0?1:0}else for(let t=0;t<I;t++){let o=A.iget(t);e[t]=o.im!==0?1:0}return d.fromData(e,Array.from(A.shape),"bool")}function SS(A){return k(A.dtype)}function GS(A){let r=A.dtype,I=A.size,e=new Uint8Array(I);if(k(r))if(A.isCContiguous){let t=A.offset,o=A.data;for(let n=0;n<I;n++)e[n]=o[(t+n)*2+1]===0?1:0}else for(let t=0;t<I;t++){let o=A.iget(t);e[t]=o.im===0?1:0}else e.fill(1);return d.fromData(e,Array.from(A.shape),"bool")}function RS(A){return!k(A.dtype)}function kS(A){eA(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(!(L(A.dtype)||pA(A.dtype)))if(A.isCContiguous){let e=A.data,t=A.offset;for(let o=0;o<I;o++){let n=e[t+o];r[o]=n===-1/0?1:0}}else for(let e=0;e<I;e++)r[e]=Number(A.iget(e))===-1/0?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function qS(A){eA(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(!(L(A.dtype)||pA(A.dtype)))if(A.isCContiguous){let e=A.data,t=A.offset;for(let o=0;o<I;o++){let n=e[t+o];r[o]=n===1/0?1:0}}else for(let e=0;e<I;e++)r[e]=Number(A.iget(e))===1/0?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function MS(A){return A.isFContiguous}function xS(A,r=100){let I=A.dtype;if(k(I)){let e=A.size,o=r*(I==="complex64"?11920929e-14:2220446049250313e-31);if(A.isCContiguous){let n=A.data,g=A.offset,i=!0;for(let Q=0;Q<e;Q++){let a=n[(g+Q)*2+1];if(Math.abs(a)>o){i=!1;break}}if(i){let Q=I==="complex64"?"float32":"float64",a=d.zeros(Array.from(A.shape),Q),s=a.data;for(let B=0;B<e;B++)s[B]=n[(g+B)*2];return a}}else{let n=!0;for(let g=0;g<e;g++){let i=A.iget(g);if(Math.abs(i.im)>o){n=!1;break}}if(n){let g=I==="complex64"?"float32":"float64",i=d.zeros(Array.from(A.shape),g),Q=i.data;for(let a=0;a<e;a++){let s=A.iget(a);Q[a]=s.re}return i}}return A.copy()}return A.copy()}function JS(A){return typeof A=="number"||typeof A=="bigint"||typeof A=="boolean"||typeof A=="string"}function US(A){return A==null?!1:typeof A[Symbol.iterator]=="function"}function LS(A,r){let e={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[r];return e?e.includes(A):!1}function HS(A,r){let I=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],e=I.indexOf(A),t=I.indexOf(r);return e<=t?A:r}function Fr(A){if(A.length===0)return[];if(A.length===1)return Array.from(A[0]);let r=Math.max(...A.map(e=>e.length)),I=new Array(r);for(let e=0;e<r;e++){let t=1;for(let o of A){let n=o.length-r+e,g=n<0?1:o[n];if(g!==1){if(t===1)t=g;else if(t!==g)return null}}I[e]=t}return I}function x4(A,r,I){let e=A.length,t=I.length,o=new Array(t).fill(0);for(let n=0;n<e;n++){let g=t-e+n,i=A[n],Q=I[g];if(i===Q)o[g]=r[n];else if(i===1)o[g]=0;else throw new Error("Invalid broadcast")}return o}function Br(A,r){let I=x4(A.shape,A.strides,r);return d.fromData(A.data,Array.from(r),A.dtype,I,A.offset)}function CI(A,r){return[A[r*2],A[r*2+1]]}function _S(A,r){if(k(A.dtype))return CI(A.data,r);let I=A.iget(r);return I instanceof T?[I.re,I.im]:[Number(I),0]}function $I(A,r,I){let e=Fr([Array.from(A.shape),Array.from(r.shape)]);if(!e)throw new Error("Cannot broadcast arrays together");let t=Br(A,e),o=Br(r,e),n=e.reduce((i,Q)=>i*Q,1),g=new Uint8Array(n);for(let i=0;i<n;i++){let[Q,a]=_S(t,i),[s,B]=_S(o,i);g[i]=I(Q,a,s,B)?1:0}return d.fromData(g,e,"bool")}function YS(A,r){return typeof r=="number"?J4(A,r):k(A.dtype)||k(r.dtype)?$I(A,r,(I,e,t,o)=>I!==t?I>t:e>o):tr(A,r,(I,e)=>I>e)}function vS(A,r){return typeof r=="number"?U4(A,r):k(A.dtype)||k(r.dtype)?$I(A,r,(I,e,t,o)=>I!==t?I>=t:e>=o):tr(A,r,(I,e)=>I>=e)}function XS(A,r){return typeof r=="number"?L4(A,r):k(A.dtype)||k(r.dtype)?$I(A,r,(I,e,t,o)=>I!==t?I<t:e<o):tr(A,r,(I,e)=>I<e)}function TS(A,r){return typeof r=="number"?H4(A,r):k(A.dtype)||k(r.dtype)?$I(A,r,(I,e,t,o)=>I!==t?I<=t:e<=o):tr(A,r,(I,e)=>I<=e)}function PS(A,r){return typeof r=="number"?_4(A,r):k(A.dtype)||k(r.dtype)?$I(A,r,(I,e,t,o)=>I===t&&e===o):tr(A,r,(I,e)=>I===e)}function KS(A,r){return typeof r=="number"?Y4(A,r):k(A.dtype)||k(r.dtype)?$I(A,r,(I,e,t,o)=>I!==t||e!==o):tr(A,r,(I,e)=>I!==e)}function sE(A,r,I=1e-5,e=1e-8){return typeof r=="number"?v4(A,r,I,e):tr(A,r,(t,o)=>{let n=Math.abs(t-o),g=e+I*Math.abs(o);return n<=g})}function VS(A,r,I=1e-5,e=1e-8){let t=sE(A,r,I,e),o=t.data;for(let n=0;n<t.size;n++)if(o[n]===0)return!1;return!0}function WS(A,r){let I=[Array.from(A.shape),Array.from(r.shape)],e=Fr(I);if(e===null)return!1;let t=Br(A,e),o=Br(r,e),n=e.length,g=e.reduce((a,s)=>a*s,1),i=L(t.dtype),Q=L(o.dtype);for(let a=0;a<g;a++){let s=a,B=new Array(n);for(let u=n-1;u>=0;u--)B[u]=s%e[u],s=Math.floor(s/e[u]);let C=t.get(...B),E=o.get(...B);if(i||Q){let u=typeof C=="bigint"?C:BigInt(Number(C)),D=typeof E=="bigint"?E:BigInt(Number(E));if(u!==D)return!1}else if(C!==E)return!1}return!0}function J4(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i>r:Q>0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re>r:n.im>0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]>r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))>r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function U4(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i>=r:Q>=0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re>=r:n.im>=0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]>=r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))>=r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function L4(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i<r:Q<0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re<r:n.im<0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]<r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))<r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function H4(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i<=r:Q<=0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re<=r:n.im<=0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]<=r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))<=r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function _4(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.dtype,o=A.isCContiguous;if(k(t))if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++){let[Q,a]=CI(n,g+i);I[i]=Q===r&&a===0?1:0}}else for(let n=0;n<e;n++){let g=A.iget(n);I[n]=g.re===r&&g.im===0?1:0}else if(L(t)){let n=BigInt(Math.round(r));if(o){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)I[Q]=g[i+Q]===n?1:0}else for(let g=0;g<e;g++)I[g]=A.iget(g)===n?1:0}else if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++)I[i]=n[g+i]===r?1:0}else for(let n=0;n<e;n++)I[n]=Number(A.iget(n))===r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function Y4(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.dtype,o=A.isCContiguous;if(k(t))if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++){let[Q,a]=CI(n,g+i);I[i]=Q!==r||a!==0?1:0}}else for(let n=0;n<e;n++){let g=A.iget(n);I[n]=g.re!==r||g.im!==0?1:0}else if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++)I[i]=n[g+i]!==r?1:0}else for(let n=0;n<e;n++)I[n]=Number(A.iget(n))!==r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function v4(A,r,I,e){let t=new Uint8Array(A.size),o=A.size,n=e+I*Math.abs(r);if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<o;Q++){let a=Math.abs(Number(g[i+Q])-r);t[Q]=a<=n?1:0}}else for(let g=0;g<o;g++){let i=Math.abs(Number(A.iget(g))-r);t[g]=i<=n?1:0}return d.fromData(t,Array.from(A.shape),"bool")}function Qn(A,r){let I=typeof r=="number"?r:S(r);return R(cS(S(A),I))}function an(A,r){let I=typeof r=="number"?r:S(r);return R(fS(S(A),I))}function sn(A){return R(DS(S(A)))}function Bn(A,r){let I=typeof r=="number"?r:S(r);return R(mS(S(A),I))}function Cn(A){return R(yS(S(A)))}function En(A){return R(lS(S(A)))}function un(A){return R(hS(S(A)))}function cn(A){return R(dS(S(A)))}function BE(A){return R(kS(S(A)))}function CE(A){return R(qS(S(A)))}function EE(A){return R(FS(S(A)))}function uE(A){return SS(S(A))}function cE(A){return R(GS(S(A)))}function fE(A){return RS(S(A))}function DE(A,r){return R(xS(S(A),r))}function mE(A){return MS(S(A))}function yE(A){return JS(A)}function lE(A){return US(A)}function hE(A,r){return LS(A,r)}function dE(A,r){return HS(A,r)}function fn(A,r){let I=typeof r=="number"?r:S(r);return R(bS(S(A),I))}function Dn(A){return R(pS(S(A)))}function mn(A,r){let I=typeof r=="number"?r:S(r);return R(wS(S(A),I))}function yn(A){return R(NS(S(A)))}function ln(A,r){return R(YS(S(A),typeof r=="number"?r:S(r)))}function hn(A,r){return R(vS(S(A),typeof r=="number"?r:S(r)))}function dn(A,r){return R(XS(S(A),typeof r=="number"?r:S(r)))}function bn(A,r){return R(TS(S(A),typeof r=="number"?r:S(r)))}function pn(A,r){return R(PS(S(A),typeof r=="number"?r:S(r)))}function wn(A,r){return R(KS(S(A),typeof r=="number"?r:S(r)))}function Nn(A,r,I=1e-5,e=1e-8){return R(sE(S(A),typeof r=="number"?r:S(r),I,e))}function Fn(A,r,I=1e-5,e=1e-8){return VS(S(A),typeof r=="number"?r:S(r),I,e)}var X4="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",Sn=null;function Ae(){if(Sn)return Sn;let A=atob(X4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Sn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Sn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Sn}function ZS(A,r){return Ae().exports.reduce_count_nz_f64(A,r)}function zS(A,r){return Ae().exports.reduce_count_nz_f32(A,r)}function bE(A,r){return Ae().exports.reduce_count_nz_i64(A,r)}function pE(A,r){return Ae().exports.reduce_count_nz_i32(A,r)}function wE(A,r){return Ae().exports.reduce_count_nz_i16(A,r)}function NE(A,r){return Ae().exports.reduce_count_nz_i8(A,r)}var T4=64,P4={float64:ZS,float32:zS,int64:bE,uint64:bE,int32:pE,uint32:pE,int16:wE,uint16:wE,int8:NE,uint8:NE},K4={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<T4*Y.thresholdMultiplier)return null;let I=A.dtype,e=P4[I],t=K4[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var V4="AGFzbQEAAAABDAJgAn9/AGADf39/AAIPAQNlbnYGbWVtb3J5AgAQAyUkAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAAEAAQEBBgkBfwFBgIDAAAsH2wIYCHNvcnRfZjY0AAAIc29ydF9mMzIAAghzb3J0X2k2NAAECHNvcnRfdTY0AAYIc29ydF9pMzIACAhzb3J0X3UzMgAKCHNvcnRfaTE2AAwIc29ydF91MTYADgdzb3J0X2k4ABAHc29ydF91OAASD3NvcnRfc2xpY2VzX2Y2NAAUD3NvcnRfc2xpY2VzX2YzMgAVD3NvcnRfc2xpY2VzX2k2NAAWD3NvcnRfc2xpY2VzX3U2NAAXD3NvcnRfc2xpY2VzX2kzMgAYD3NvcnRfc2xpY2VzX3UzMgAZD3NvcnRfc2xpY2VzX2kxNgAaD3NvcnRfc2xpY2VzX3UxNgAbDnNvcnRfc2xpY2VzX2k4ABwOc29ydF9zbGljZXNfdTgAHQlzb3J0X2MxMjgAHghzb3J0X2M2NAAgEHNvcnRfc2xpY2VzX2MxMjgAIg9zb3J0X3NsaWNlc19jNjQAIwrAmQEkDAAgACABEIGAgIAAC6kFAgZ/A3wCQCABQQFNDQAgAUF+aiICQQF2IQMCQCACQX5xIgQgAUF/aiIFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAAgB0EDdGorAwAiCCAIYg0AAkAgACAEQQN0aisDACIJIAlhDQAgBCEHDAELIAggCWNFDQAgBCEHCyAAIAZBA3RqIgQrAwAiCCAIYg0BAkAgACAHQQN0aiIGKwMAIgkgCWINACAIIAljRQ0CCyAEIAk5AwAgBiAIOQMAIAchBiAHQQF0IgQgBUkNAAsLAkAgAkECSQ0AA0ACQCADQX9qIgNBAXQiBCAFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAAgB0EDdGorAwAiCCAIYg0AAkAgACAEQQN0aisDACIJIAlhDQAgBCEHDAELIAggCWNFDQAgBCEHCyAAIAZBA3RqIgQrAwAiCCAIYg0BAkAgACAHQQN0aiIGKwMAIgkgCWINACAIIAljRQ0CCyAEIAk5AwAgBiAIOQMAIAchBiAHQQF0IgQgBUkNAAsLIAMNAAsLIAVFDQAgACsDACEJIAAgACAFQQN0aiIHKwMAIgg5AwAgByAJOQMAIAFBfmoiBUUNAANAQQAhBEEAIQYDQCAEQQFyIQcCQCAEQQJqIgQgBUsNACAAIAdBA3RqKwMAIgkgCWINAAJAIAAgBEEDdGorAwAiCiAKYQ0AIAQhBwwBCyAJIApjRQ0AIAQhBwsCQCAIIAhiDQACQCAAIAdBA3RqIgQrAwAiCSAJYg0AIAggCWNFDQELIAAgBkEDdGogCTkDACAEIAg5AwAgByEGIAdBAXQiBCAFSQ0BCwsgACsDACEJIAAgACAFQQN0aiIHKwMAIgg5AwAgByAJOQMAIAVBf2oiBQ0ACwsLDAAgACABEIOAgIAAC6kFAgZ/A30CQCABQQFNDQAgAUF+aiICQQF2IQMCQCACQX5xIgQgAUF/aiIFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAAgB0ECdGoqAgAiCCAIXA0AAkAgACAEQQJ0aioCACIJIAlbDQAgBCEHDAELIAggCV1FDQAgBCEHCyAAIAZBAnRqIgQqAgAiCCAIXA0BAkAgACAHQQJ0aiIGKgIAIgkgCVwNACAIIAldRQ0CCyAEIAk4AgAgBiAIOAIAIAchBiAHQQF0IgQgBUkNAAsLAkAgAkECSQ0AA0ACQCADQX9qIgNBAXQiBCAFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAAgB0ECdGoqAgAiCCAIXA0AAkAgACAEQQJ0aioCACIJIAlbDQAgBCEHDAELIAggCV1FDQAgBCEHCyAAIAZBAnRqIgQqAgAiCCAIXA0BAkAgACAHQQJ0aiIGKgIAIgkgCVwNACAIIAldRQ0CCyAEIAk4AgAgBiAIOAIAIAchBiAHQQF0IgQgBUkNAAsLIAMNAAsLIAVFDQAgACoCACEJIAAgACAFQQJ0aiIHKgIAIgg4AgAgByAJOAIAIAFBfmoiBUUNAANAQQAhBEEAIQYDQCAEQQFyIQcCQCAEQQJqIgQgBUsNACAAIAdBAnRqKgIAIgkgCVwNAAJAIAAgBEECdGoqAgAiCiAKWw0AIAQhBwwBCyAJIApdRQ0AIAQhBwsCQCAIIAhcDQACQCAAIAdBAnRqIgQqAgAiCSAJXA0AIAggCV1FDQELIAAgBkECdGogCTgCACAEIAg4AgAgByEGIAdBAXQiBCAFSQ0BCwsgACoCACEJIAAgACAFQQJ0aiIHKgIAIgg4AgAgByAJOAIAIAVBf2oiBQ0ACwsLDAAgACABEIWAgIAAC6IEAgZ/An4CQCABQQFNDQAgAUF+aiICQQF2IQMCQCACQX5xIgQgAUF/aiIFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdBA3RqKQMAIAAgBEEDdGopAwBTGyEHCyAAIAZBA3RqIgQpAwAiCCAAIAdBA3RqIgYpAwAiCVkNASAEIAk3AwAgBiAINwMAIAchBiAHQQF0IgQgBUkNAAsLAkAgAkECSQ0AA0ACQCADQX9qIgNBAXQiBCAFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdBA3RqKQMAIAAgBEEDdGopAwBTGyEHCyAAIAZBA3RqIgQpAwAiCCAAIAdBA3RqIgYpAwAiCVkNASAEIAk3AwAgBiAINwMAIAchBiAHQQF0IgQgBUkNAAsLIAMNAAsLIAVFDQAgACkDACEJIAAgACAFQQN0aiIHKQMAIgg3AwAgByAJNwMAIAFBfmoiBUUNAANAQQAhBEEAIQYDQCAEQQFyIQcCQCAEQQJqIgQgBUsNACAEIAcgACAHQQN0aikDACAAIARBA3RqKQMAUxshBwsCQCAIIAAgB0EDdGoiBCkDACIJWQ0AIAAgBkEDdGogCTcDACAEIAg3AwAgByEGIAdBAXQiBCAFSQ0BCwsgACkDACEJIAAgACAFQQN0aiIHKQMAIgg3AwAgByAJNwMAIAVBf2oiBQ0ACwsLDAAgACABEIeAgIAAC6IEAgZ/An4CQCABQQFNDQAgAUF+aiICQQF2IQMCQCACQX5xIgQgAUF/aiIFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdBA3RqKQMAIAAgBEEDdGopAwBUGyEHCyAAIAZBA3RqIgQpAwAiCCAAIAdBA3RqIgYpAwAiCVoNASAEIAk3AwAgBiAINwMAIAchBiAHQQF0IgQgBUkNAAsLAkAgAkECSQ0AA0ACQCADQX9qIgNBAXQiBCAFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdBA3RqKQMAIAAgBEEDdGopAwBUGyEHCyAAIAZBA3RqIgQpAwAiCCAAIAdBA3RqIgYpAwAiCVoNASAEIAk3AwAgBiAINwMAIAchBiAHQQF0IgQgBUkNAAsLIAMNAAsLIAVFDQAgACkDACEJIAAgACAFQQN0aiIHKQMAIgg3AwAgByAJNwMAIAFBfmoiBUUNAANAQQAhBEEAIQYDQCAEQQFyIQcCQCAEQQJqIgQgBUsNACAEIAcgACAHQQN0aikDACAAIARBA3RqKQMAVBshBwsCQCAIIAAgB0EDdGoiBCkDACIJWg0AIAAgBkEDdGogCTcDACAEIAg3AwAgByEGIAdBAXQiBCAFSQ0BCwsgACkDACEJIAAgACAFQQN0aiIHKQMAIgg3AwAgByAJNwMAIAVBf2oiBQ0ACwsLDAAgACABEImAgIAAC6AEAQh/AkAgAUEBTQ0AIAFBfmoiAkEBdiEDAkAgAkF+cSIEIAFBf2oiBU8NACADIQYDQCAEQQFyIQcCQCAEQQJqIgQgBUsNACAEIAcgACAHQQJ0aigCACAAIARBAnRqKAIASBshBwsgACAGQQJ0aiIEKAIAIgYgACAHQQJ0aiIIKAIAIglODQEgBCAJNgIAIAggBjYCACAHIQYgB0EBdCIEIAVJDQALCwJAIAJBAkkNAANAAkAgA0F/aiIDQQF0IgQgBU8NACADIQYDQCAEQQFyIQcCQCAEQQJqIgQgBUsNACAEIAcgACAHQQJ0aigCACAAIARBAnRqKAIASBshBwsgACAGQQJ0aiIEKAIAIgYgACAHQQJ0aiIIKAIAIglODQEgBCAJNgIAIAggBjYCACAHIQYgB0EBdCIEIAVJDQALCyADDQALCyAFRQ0AIAAoAgAhByAAIAAgBUECdGoiBCgCACIGNgIAIAQgBzYCACABQX5qIgVFDQADQEEAIQRBACEIA0AgBEEBciEHAkAgBEECaiIEIAVLDQAgBCAHIAAgB0ECdGooAgAgACAEQQJ0aigCAEgbIQcLAkAgBiAAIAdBAnRqIgQoAgAiCU4NACAAIAhBAnRqIAk2AgAgBCAGNgIAIAchCCAHQQF0IgQgBUkNAQsLIAAoAgAhByAAIAAgBUECdGoiBCgCACIGNgIAIAQgBzYCACAFQX9qIgUNAAsLCwwAIAAgARCLgICAAAugBAEIfwJAIAFBAU0NACABQX5qIgJBAXYhAwJAIAJBfnEiBCABQX9qIgVPDQAgAyEGA0AgBEEBciEHAkAgBEECaiIEIAVLDQAgBCAHIAAgB0ECdGooAgAgACAEQQJ0aigCAEkbIQcLIAAgBkECdGoiBCgCACIGIAAgB0ECdGoiCCgCACIJTw0BIAQgCTYCACAIIAY2AgAgByEGIAdBAXQiBCAFSQ0ACwsCQCACQQJJDQADQAJAIANBf2oiA0EBdCIEIAVPDQAgAyEGA0AgBEEBciEHAkAgBEECaiIEIAVLDQAgBCAHIAAgB0ECdGooAgAgACAEQQJ0aigCAEkbIQcLIAAgBkECdGoiBCgCACIGIAAgB0ECdGoiCCgCACIJTw0BIAQgCTYCACAIIAY2AgAgByEGIAdBAXQiBCAFSQ0ACwsgAw0ACwsgBUUNACAAKAIAIQcgACAAIAVBAnRqIgQoAgAiBjYCACAEIAc2AgAgAUF+aiIFRQ0AA0BBACEEQQAhCANAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdBAnRqKAIAIAAgBEECdGooAgBJGyEHCwJAIAYgACAHQQJ0aiIEKAIAIglPDQAgACAIQQJ0aiAJNgIAIAQgBjYCACAHIQggB0EBdCIEIAVJDQELCyAAKAIAIQcgACAAIAVBAnRqIgQoAgAiBjYCACAEIAc2AgAgBUF/aiIFDQALCwsMACAAIAEQjYCAgAALmAQBCX8CQCABQQFNDQAgAUF+aiICQQF2IQMCQCACQX5xIgQgAUF/aiIFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdBAXRqLgEAIAAgBEEBdGouAQBIGyEHCyAAIAZBAXRqIgYuAQAiCCAAIAdBAXQiBGoiCS4BACIKTg0BIAYgCjsBACAJIAg7AQAgByEGIAQgBUkNAAsLAkAgAkECSQ0AA0ACQCADQX9qIgNBAXQiBCAFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdBAXRqLgEAIAAgBEEBdGouAQBIGyEHCyAAIAZBAXRqIgYuAQAiCCAAIAdBAXQiBGoiCS4BACIKTg0BIAYgCjsBACAJIAg7AQAgByEGIAQgBUkNAAsLIAMNAAsLIAVFDQAgAC8BACEHIAAgACAFQQF0aiIELwEAIgY7AQAgBCAHOwEAIAFBfmoiBUUNAANAQQAhBEEAIQgDQCAEQQFyIQcCQCAEQQJqIgQgBUsNACAEIAcgACAHQQF0ai4BACAAIARBAXRqLgEASBshBwsCQCAGwSAAIAdBAXQiBGoiCS4BACIKTg0AIAAgCEEBdGogCjsBACAJIAY7AQAgByEIIAQgBUkNAQsLIAAvAQAhByAAIAAgBUEBdGoiBC8BACIGOwEAIAQgBzsBACAFQX9qIgUNAAsLCwwAIAAgARCPgICAAAugBAEJfwJAIAFBAU0NACABQX5qIgJBAXYhAwJAIAJBfnEiBCABQX9qIgVPDQAgAyEGA0AgBEEBciEHAkAgBEECaiIEIAVLDQAgBCAHIAAgB0EBdGovAQAgACAEQQF0ai8BAEkbIQcLIAAgBkEBdGoiBi8BACIIIAAgB0EBdCIEaiIJLwEAIgpPDQEgBiAKOwEAIAkgCDsBACAHIQYgBCAFSQ0ACwsCQCACQQJJDQADQAJAIANBf2oiA0EBdCIEIAVPDQAgAyEGA0AgBEEBciEHAkAgBEECaiIEIAVLDQAgBCAHIAAgB0EBdGovAQAgACAEQQF0ai8BAEkbIQcLIAAgBkEBdGoiBi8BACIIIAAgB0EBdCIEaiIJLwEAIgpPDQEgBiAKOwEAIAkgCDsBACAHIQYgBCAFSQ0ACwsgAw0ACwsgBUUNACAALwEAIQcgACAAIAVBAXRqIgQvAQAiCjsBACAEIAc7AQAgAUF+aiIFRQ0AA0BBACEEIApB//8DcSEDQQAhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdBAXRqLwEAIAAgBEEBdGovAQBJGyEHCwJAIAMgACAHQQF0IgRqIggvAQAiCU8NACAAIAZBAXRqIAk7AQAgCCAKOwEAIAchBiAEIAVJDQELCyAALwEAIQcgACAAIAVBAXRqIgQvAQAiCjsBACAEIAc7AQAgBUF/aiIFDQALCwsMACAAIAEQkYCAgAAL9wMBCH8CQCABQQFNDQAgAUF+aiICQQF2IQMCQCACQX5xIgQgAUF/aiIFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdqLAAAIAAgBGosAABIGyEHCyAAIAZqIgQsAAAiBiAAIAdqIggsAAAiCU4NASAEIAk6AAAgCCAGOgAAIAchBiAHQQF0IgQgBUkNAAsLAkAgAkECSQ0AA0ACQCADQX9qIgNBAXQiBCAFTw0AIAMhBgNAIARBAXIhBwJAIARBAmoiBCAFSw0AIAQgByAAIAdqLAAAIAAgBGosAABIGyEHCyAAIAZqIgQsAAAiBiAAIAdqIggsAAAiCU4NASAEIAk6AAAgCCAGOgAAIAchBiAHQQF0IgQgBUkNAAsLIAMNAAsLIAVFDQAgAC0AACEHIAAgACAFaiIELQAAIgY6AAAgBCAHOgAAIAFBfmoiBUUNAANAQQAhBEEAIQgDQCAEQQFyIQcCQCAEQQJqIgQgBUsNACAEIAcgACAHaiwAACAAIARqLAAASBshBwsCQCAGwCAAIAdqIgQsAAAiCU4NACAAIAhqIAk6AAAgBCAGOgAAIAchCCAHQQF0IgQgBUkNAQsLIAAtAAAhByAAIAAgBWoiBC0AACIGOgAAIAQgBzoAACAFQX9qIgUNAAsLCwwAIAAgARCTgICAAAv+AwEIfwJAIAFBAU0NACABQX5qIgJBAXYhAwJAIAJBfnEiBCABQX9qIgVPDQAgAyEGA0AgBEEBciEHAkAgBEECaiIEIAVLDQAgBCAHIAAgB2otAAAgACAEai0AAEkbIQcLIAAgBmoiBC0AACIGIAAgB2oiCC0AACIJTw0BIAQgCToAACAIIAY6AAAgByEGIAdBAXQiBCAFSQ0ACwsCQCACQQJJDQADQAJAIANBf2oiA0EBdCIEIAVPDQAgAyEGA0AgBEEBciEHAkAgBEECaiIEIAVLDQAgBCAHIAAgB2otAAAgACAEai0AAEkbIQcLIAAgBmoiBC0AACIGIAAgB2oiCC0AACIJTw0BIAQgCToAACAIIAY6AAAgByEGIAdBAXQiBCAFSQ0ACwsgAw0ACwsgBUUNACAALQAAIQcgACAAIAVqIgQtAAAiCToAACAEIAc6AAAgAUF+aiIFRQ0AA0BBACEEIAlB/wFxIQNBACEGA0AgBEEBciEHAkAgBEECaiIEIAVLDQAgBCAHIAAgB2otAAAgACAEai0AAEkbIQcLAkAgAyAAIAdqIgQtAAAiCE8NACAAIAZqIAg6AAAgBCAJOgAAIAchBiAHQQF0IgQgBUkNAQsLIAAtAAAhByAAIAAgBWoiBC0AACIJOgAAIAQgBzoAACAFQX9qIgUNAAsLCzABAX8CQCACRQ0AIAFBA3QhAwNAIAAgARCBgICAACAAIANqIQAgAkF/aiICDQALCwswAQF/AkAgAkUNACABQQJ0IQMDQCAAIAEQg4CAgAAgACADaiEAIAJBf2oiAg0ACwsLMAEBfwJAIAJFDQAgAUEDdCEDA0AgACABEIWAgIAAIAAgA2ohACACQX9qIgINAAsLCzABAX8CQCACRQ0AIAFBA3QhAwNAIAAgARCHgICAACAAIANqIQAgAkF/aiICDQALCwv5FgEVfyOAgICAAEGAiAFrIgMkgICAgAACQAJAIAFBcGpB8R9JDQAgAkUNASABQQJ0IQQDQCAAIAEQiYCAgAAgACAEaiEAIAJBf2oiAg0ADAILCyACRQ0AIAFBA3EhBSABQfw/cSEGIAFBAXEhByABQf4/cSEEIAFBf2ohCCABQQJ0IglB8P8BcSEKIAAhC0EAIQwDQAJAQYAIRSINDQAgA0GAgAFqQQBBgAj8CwALIAwgAWxBAnQhDkEAIQ8CQCAIRQ0AQQAhDyALIRADQCADQYCAAWogEC0AAEECdGoiESARKAIAQQFqNgIAIANBgIABaiAQQQRqLQAAQQJ0aiIRIBEoAgBBAWo2AgAgEEEIaiEQIAQgD0ECaiIPRw0ACwsgACAOaiESAkAgB0UNACADQYCAAWogEiAPQQJ0ai0AAEECdGoiECAQKAIAQQFqNgIACyAJIAxsIABqIRNBACEPAkADQCADIRQCQCADQYCAAWogD2oiECgCACABRw0AIBIhFQwCCwJAIBBBBGooAgAgAUcNACASIRUMAgsCQCAQQQhqKAIAIAFHDQAgEiEVDAILAkAgEEEMaigCACABRw0AIBIhFQwCCyAPQRBqIg9BgAhHDQALQQAhD0EAIREDQCADQYCAAWogD2oiECgCACEOIBAgETYCACAQQQRqIhQoAgAhFiAUIA4gEWoiETYCACAQQQhqIg4oAgAhFCAOIBYgEWoiETYCACAQQQxqIhAoAgAhDiAQIBQgEWoiETYCACAOIBFqIREgD0EQaiIPQYAIRw0AC0EAIQ8CQCAIRQ0AIAshEANAIANBgIABaiAQKAIAIhFB/wFxQQJ0aiIOIA4oAgAiDkEBajYCACADIA5BAnRqIBE2AgAgA0GAgAFqIBBBBGooAgAiEUH/AXFBAnRqIg4gDigCACIOQQFqNgIAIAMgDkECdGogETYCACAQQQhqIRAgBCAPQQJqIg9HDQALCyADIRUCQCAHRQ0AIANBgIABaiASIA9BAnRqKAIAIhBB/wFxQQJ0aiIPIA8oAgAiD0EBajYCACADIA9BAnRqIBA2AgALIBIhFAtBACEPAkAgDQ0AIANBgIABakEAQYAI/AsACwJAIAhFDQBBACEPIBUhEANAIANBgIABaiAQLQABQQJ0aiIRIBEoAgBBAWo2AgAgA0GAgAFqIBBBBWotAABBAnRqIhEgESgCAEEBajYCACAQQQhqIRAgBCAPQQJqIg9HDQALCwJAIAdFDQAgA0GAgAFqIBUgD0ECdGotAAFBAnRqIhAgECgCAEEBajYCAAtBACEPAkACQANAIANBgIABaiAPaiIQKAIAIAFGDQEgEEEEaigCACABRg0BIBBBCGooAgAgAUYNASAQQQxqKAIAIAFGDQEgD0EQaiIPQYAIRw0AC0EAIQ9BACERA0AgA0GAgAFqIA9qIhAoAgAhDiAQIBE2AgAgEEEEaiIWKAIAIRcgFiAOIBFqIhE2AgAgEEEIaiIOKAIAIRYgDiAXIBFqIhE2AgAgEEEMaiIQKAIAIQ4gECAWIBFqIhE2AgAgDiARaiERIA9BEGoiD0GACEcNAAtBACEPAkAgCEUNACAVIRADQCAUIANBgIABaiAQKAIAIhFBBnZB/AdxaiIOKAIAIhZBAnRqIBE2AgAgDiAWQQFqNgIAIANBgIABaiAQQQRqKAIAIhFBBnZB/AdxaiIOIA4oAgAiDkEBajYCACAUIA5BAnRqIBE2AgAgEEEIaiEQIAQgD0ECaiIPRw0ACwsCQCAHRQ0AIANBgIABaiAVIA9BAnRqKAIAIhBBBnZB/AdxaiIPIA8oAgAiD0EBajYCACAUIA9BAnRqIBA2AgALIBUhFgwBCyAUIRYgFSEUC0EAIQ8CQCANDQAgA0GAgAFqQQBBgAj8CwALAkAgCEUNAEEAIQ8gFCEQA0AgA0GAgAFqIBAtAAJBAnRqIhEgESgCAEEBajYCACADQYCAAWogEEEGai0AAEECdGoiESARKAIAQQFqNgIAIBBBCGohECAEIA9BAmoiD0cNAAsLAkAgB0UNACADQYCAAWogFCAPQQJ0ai0AAkECdGoiECAQKAIAQQFqNgIAC0EAIQ8CQAJAA0AgA0GAgAFqIA9qIhAoAgAgAUYNASAQQQRqKAIAIAFGDQEgEEEIaigCACABRg0BIBBBDGooAgAgAUYNASAPQRBqIg9BgAhHDQALQQAhD0EAIREDQCADQYCAAWogD2oiECgCACEOIBAgETYCACAQQQRqIhcoAgAhFSAXIA4gEWoiETYCACAQQQhqIg4oAgAhFyAOIBUgEWoiETYCACAQQQxqIhAoAgAhDiAQIBcgEWoiETYCACAOIBFqIREgD0EQaiIPQYAIRw0AC0EAIRECQCAIRQ0AIBQhEANAIBYgA0GAgAFqIBAoAgAiDkEOdkH8B3FqIg8oAgBBAnRqIA42AgAgDyAPKAIAQQFqNgIAIBYgA0GAgAFqIBBBBGooAgAiDkEOdkH8B3FqIg8oAgBBAnRqIA42AgAgDyAPKAIAQQFqNgIAIBBBCGohECAEIBFBAmoiEUcNAAsLAkAgB0UNACAWIANBgIABaiAUIBFBAnRqKAIAIg9BDnZB/AdxaiIQKAIAQQJ0aiAPNgIAIBAgECgCAEEBajYCAAsgFCEODAELIBYhDiAUIRYLQQAhDwJAIA0NACADQYCAAWpBAEGACPwLAAsCQCAIRQ0AQQAhDyAWIRADQCADQYCAAWogEC0AA0ECdEGABHNqIhEgESgCAEEBajYCACADQYCAAWogEEEHai0AAEECdEGABHNqIhEgESgCAEEBajYCACAQQQhqIRAgBCAPQQJqIg9HDQALCwJAIAdFDQAgA0GAgAFqIBYgD0ECdGotAANBAnRBgARzaiIQIBAoAgBBAWo2AgALQQAhDwJAA0ACQCADQYCAAWogD2oiECgCACABRw0AIBYhDgwCCwJAIBBBBGooAgAgAUcNACAWIQ4MAgsCQCAQQQhqKAIAIAFHDQAgFiEODAILAkAgEEEMaigCACABRw0AIBYhDgwCCyAPQRBqIg9BgAhHDQALQQAhD0EAIREDQCADQYCAAWogD2oiECgCACEUIBAgETYCACAQQQRqIhcoAgAhFSAXIBQgEWoiETYCACAQQQhqIhQoAgAhFyAUIBUgEWoiETYCACAQQQxqIhAoAgAhFCAQIBcgEWoiETYCACAUIBFqIREgD0EQaiIPQYAIRw0AC0EAIRECQCAIRQ0AIBYhEANAIA4gA0GAgAFqIBAoAgAiFEEWdkH8B3FBgARzaiIPKAIAQQJ0aiAUNgIAIA8gDygCAEEBajYCACAOIANBgIABaiAQQQRqKAIAIhRBFnZB/AdxQYAEc2oiDygCAEECdGogFDYCACAPIA8oAgBBAWo2AgAgEEEIaiEQIAQgEUECaiIRRw0ACwsgB0UNACAOIANBgIABaiAWIBFBAnRqKAIAIg9BFnZB/AdxQYAEc2oiECgCAEECdGogDzYCACAQIBAoAgBBAWo2AgALAkAgDiASRg0AQQAhEQJAIBMgDmtBEEkNAEEAIRADQCALIBBqIA4gEGr9AAIA/QsCACAKIBBBEGoiEEcNAAsgBiERIAEgBkYNAQsgESEUAkAgBUUNACAFIBFqIRQgEUECdCEQIAUhDwNAIAsgEGogDiAQaigCADYCACAQQQRqIRAgD0F/aiIPDQALCyARIAFrQXxLDQAgFEECdCEQIAEgFGshFANAIAsgEGoiDyAOIBBqIhEoAgA2AgAgD0EEaiARQQRqKAIANgIAIA9BCGogEUEIaigCADYCACAPQQxqIBFBDGooAgA2AgAgEEEQaiEQIBRBfGoiFA0ACwsgCyAJaiELIAxBAWoiDCACRw0ACwsgA0GAiAFqJICAgIAAC+EWARV/I4CAgIAAQYCIAWsiAySAgICAAAJAAkAgAUFwakHxH0kNACACRQ0BIAFBAnQhBANAIAAgARCLgICAACAAIARqIQAgAkF/aiICDQAMAgsLIAJFDQAgAUEDcSEFIAFB/D9xIQYgAUEBcSEHIAFB/j9xIQQgAUF/aiEIIAFBAnQiCUHw/wFxIQogACELQQAhDANAAkBBgAhFIg0NACADQYCAAWpBAEGACPwLAAsgDCABbEECdCEOQQAhDwJAIAhFDQBBACEPIAshEANAIANBgIABaiAQLQAAQQJ0aiIRIBEoAgBBAWo2AgAgA0GAgAFqIBBBBGotAABBAnRqIhEgESgCAEEBajYCACAQQQhqIRAgBCAPQQJqIg9HDQALCyAAIA5qIRICQCAHRQ0AIANBgIABaiASIA9BAnRqLQAAQQJ0aiIQIBAoAgBBAWo2AgALIAkgDGwgAGohE0EAIQ8CQANAIAMhFAJAIANBgIABaiAPaiIQKAIAIAFHDQAgEiEVDAILAkAgEEEEaigCACABRw0AIBIhFQwCCwJAIBBBCGooAgAgAUcNACASIRUMAgsCQCAQQQxqKAIAIAFHDQAgEiEVDAILIA9BEGoiD0GACEcNAAtBACEPQQAhEQNAIANBgIABaiAPaiIQKAIAIQ4gECARNgIAIBBBBGoiFCgCACEWIBQgDiARaiIRNgIAIBBBCGoiDigCACEUIA4gFiARaiIRNgIAIBBBDGoiECgCACEOIBAgFCARaiIRNgIAIA4gEWohESAPQRBqIg9BgAhHDQALQQAhDwJAIAhFDQAgCyEQA0AgA0GAgAFqIBAoAgAiEUH/AXFBAnRqIg4gDigCACIOQQFqNgIAIAMgDkECdGogETYCACADQYCAAWogEEEEaigCACIRQf8BcUECdGoiDiAOKAIAIg5BAWo2AgAgAyAOQQJ0aiARNgIAIBBBCGohECAEIA9BAmoiD0cNAAsLIAMhFQJAIAdFDQAgA0GAgAFqIBIgD0ECdGooAgAiEEH/AXFBAnRqIg8gDygCACIPQQFqNgIAIAMgD0ECdGogEDYCAAsgEiEUC0EAIQ8CQCANDQAgA0GAgAFqQQBBgAj8CwALAkAgCEUNAEEAIQ8gFSEQA0AgA0GAgAFqIBAtAAFBAnRqIhEgESgCAEEBajYCACADQYCAAWogEEEFai0AAEECdGoiESARKAIAQQFqNgIAIBBBCGohECAEIA9BAmoiD0cNAAsLAkAgB0UNACADQYCAAWogFSAPQQJ0ai0AAUECdGoiECAQKAIAQQFqNgIAC0EAIQ8CQAJAA0AgA0GAgAFqIA9qIhAoAgAgAUYNASAQQQRqKAIAIAFGDQEgEEEIaigCACABRg0BIBBBDGooAgAgAUYNASAPQRBqIg9BgAhHDQALQQAhD0EAIREDQCADQYCAAWogD2oiECgCACEOIBAgETYCACAQQQRqIhYoAgAhFyAWIA4gEWoiETYCACAQQQhqIg4oAgAhFiAOIBcgEWoiETYCACAQQQxqIhAoAgAhDiAQIBYgEWoiETYCACAOIBFqIREgD0EQaiIPQYAIRw0AC0EAIQ8CQCAIRQ0AIBUhEANAIBQgA0GAgAFqIBAoAgAiEUEGdkH8B3FqIg4oAgAiFkECdGogETYCACAOIBZBAWo2AgAgA0GAgAFqIBBBBGooAgAiEUEGdkH8B3FqIg4gDigCACIOQQFqNgIAIBQgDkECdGogETYCACAQQQhqIRAgBCAPQQJqIg9HDQALCwJAIAdFDQAgA0GAgAFqIBUgD0ECdGooAgAiEEEGdkH8B3FqIg8gDygCACIPQQFqNgIAIBQgD0ECdGogEDYCAAsgFSEWDAELIBQhFiAVIRQLQQAhDwJAIA0NACADQYCAAWpBAEGACPwLAAsCQCAIRQ0AQQAhDyAUIRADQCADQYCAAWogEC0AAkECdGoiESARKAIAQQFqNgIAIANBgIABaiAQQQZqLQAAQQJ0aiIRIBEoAgBBAWo2AgAgEEEIaiEQIAQgD0ECaiIPRw0ACwsCQCAHRQ0AIANBgIABaiAUIA9BAnRqLQACQQJ0aiIQIBAoAgBBAWo2AgALQQAhDwJAAkADQCADQYCAAWogD2oiECgCACABRg0BIBBBBGooAgAgAUYNASAQQQhqKAIAIAFGDQEgEEEMaigCACABRg0BIA9BEGoiD0GACEcNAAtBACEPQQAhEQNAIANBgIABaiAPaiIQKAIAIQ4gECARNgIAIBBBBGoiFygCACEVIBcgDiARaiIRNgIAIBBBCGoiDigCACEXIA4gFSARaiIRNgIAIBBBDGoiECgCACEOIBAgFyARaiIRNgIAIA4gEWohESAPQRBqIg9BgAhHDQALQQAhEQJAIAhFDQAgFCEQA0AgFiADQYCAAWogECgCACIOQQ52QfwHcWoiDygCAEECdGogDjYCACAPIA8oAgBBAWo2AgAgFiADQYCAAWogEEEEaigCACIOQQ52QfwHcWoiDygCAEECdGogDjYCACAPIA8oAgBBAWo2AgAgEEEIaiEQIAQgEUECaiIRRw0ACwsCQCAHRQ0AIBYgA0GAgAFqIBQgEUECdGooAgAiD0EOdkH8B3FqIhAoAgBBAnRqIA82AgAgECAQKAIAQQFqNgIACyAUIQ4MAQsgFiEOIBQhFgtBACEPAkAgDQ0AIANBgIABakEAQYAI/AsACwJAIAhFDQBBACEPIBYhEANAIANBgIABaiAQLQADQQJ0aiIRIBEoAgBBAWo2AgAgA0GAgAFqIBBBB2otAABBAnRqIhEgESgCAEEBajYCACAQQQhqIRAgBCAPQQJqIg9HDQALCwJAIAdFDQAgA0GAgAFqIBYgD0ECdGotAANBAnRqIhAgECgCAEEBajYCAAtBACEPAkADQAJAIANBgIABaiAPaiIQKAIAIAFHDQAgFiEODAILAkAgEEEEaigCACABRw0AIBYhDgwCCwJAIBBBCGooAgAgAUcNACAWIQ4MAgsCQCAQQQxqKAIAIAFHDQAgFiEODAILIA9BEGoiD0GACEcNAAtBACEPQQAhEQNAIANBgIABaiAPaiIQKAIAIRQgECARNgIAIBBBBGoiFygCACEVIBcgFCARaiIRNgIAIBBBCGoiFCgCACEXIBQgFSARaiIRNgIAIBBBDGoiECgCACEUIBAgFyARaiIRNgIAIBQgEWohESAPQRBqIg9BgAhHDQALQQAhEQJAIAhFDQAgFiEQA0AgDiADQYCAAWogECgCACIUQRZ2QfwHcWoiDygCAEECdGogFDYCACAPIA8oAgBBAWo2AgAgDiADQYCAAWogEEEEaigCACIUQRZ2QfwHcWoiDygCAEECdGogFDYCACAPIA8oAgBBAWo2AgAgEEEIaiEQIAQgEUECaiIRRw0ACwsgB0UNACAOIANBgIABaiAWIBFBAnRqKAIAIg9BFnZB/AdxaiIQKAIAQQJ0aiAPNgIAIBAgECgCAEEBajYCAAsCQCAOIBJGDQBBACERAkAgEyAOa0EQSQ0AQQAhEANAIAsgEGogDiAQav0AAgD9CwIAIAogEEEQaiIQRw0ACyAGIREgASAGRg0BCyARIRQCQCAFRQ0AIAUgEWohFCARQQJ0IRAgBSEPA0AgCyAQaiAOIBBqKAIANgIAIBBBBGohECAPQX9qIg8NAAsLIBEgAWtBfEsNACAUQQJ0IRAgASAUayEUA0AgCyAQaiIPIA4gEGoiESgCADYCACAPQQRqIBFBBGooAgA2AgAgD0EIaiARQQhqKAIANgIAIA9BDGogEUEMaigCADYCACAQQRBqIRAgFEF8aiIUDQALCyALIAlqIQsgDEEBaiIMIAJHDQALCyADQYCIAWokgICAgAALxQ0BFH8jgICAgABBgMgAayIDJICAgIAAAkACQCABQXBqQfEfSQ0AIAJFDQEgAUEBdCEEA0AgACABEI2AgIAAIAAgBGohACACQX9qIgINAAwCCwsgAkUNACABQQNxIQUgAUH4P3EhBiABQQFxIQcgAUH+P3EhCCABQX9qIQkgAUEBdCIKQfD/AHEhCyAAIQxBACENA0ACQEGACEUiDg0AIANBgMAAakEAQYAI/AsACyANIAFsQQF0IQ9BACEQAkAgCUUNAEEAIRAgDCEEA0AgA0GAwABqIAQtAABBAnRqIhEgESgCAEEBajYCACADQYDAAGogBEECai0AAEECdGoiESARKAIAQQFqNgIAIARBBGohBCAIIBBBAmoiEEcNAAsLIAAgD2ohEgJAIAdFDQAgA0GAwABqIBIgEEEBdGotAABBAnRqIgQgBCgCAEEBajYCAAsgCiANbCAAaiETQQAhEQJAA0AgAyEQAkAgA0GAwABqIBFqIgQoAgAgAUcNACASIRQMAgsCQCAEQQRqKAIAIAFHDQAgEiEUDAILAkAgBEEIaigCACABRw0AIBIhFAwCCwJAIARBDGooAgAgAUcNACASIRQMAgsgEUEQaiIRQYAIRw0AC0EAIRBBACERA0AgA0GAwABqIBBqIgQoAgAhDyAEIBE2AgAgBEEEaiIVKAIAIRYgFSAPIBFqIhE2AgAgBEEIaiIPKAIAIRUgDyAWIBFqIhE2AgAgBEEMaiIEKAIAIQ8gBCAVIBFqIhE2AgAgDyARaiERIBBBEGoiEEGACEcNAAtBACEQAkAgCUUNACAMIQQDQCADQYDAAGogBC8BACIRQf8BcUECdGoiDyAPKAIAIg9BAWo2AgAgAyAPQQF0aiAROwEAIANBgMAAaiAEQQJqLwEAIhFB/wFxQQJ0aiIPIA8oAgAiD0EBajYCACADIA9BAXRqIBE7AQAgBEEEaiEEIAggEEECaiIQRw0ACwsgAyEUAkAgB0UNACADQYDAAGogEiAQQQF0ai8BACIEQf8BcUECdGoiECAQKAIAIhBBAWo2AgAgAyAQQQF0aiAEOwEACyASIRALQQAhEQJAIA4NACADQYDAAGpBAEGACPwLAAsCQCAJRQ0AQQAhESAUIQQDQCADQYDAAGogBC0AAUGAAXNBAnRqIg8gDygCAEEBajYCACADQYDAAGogBEEDai0AAEGAAXNBAnRqIg8gDygCAEEBajYCACAEQQRqIQQgCCARQQJqIhFHDQALCwJAIAdFDQAgA0GAwABqIBQgEUEBdGotAAFBgAFzQQJ0aiIEIAQoAgBBAWo2AgALQQAhEQJAA0ACQCADQYDAAGogEWoiBCgCACABRw0AIBQhEAwCCwJAIARBBGooAgAgAUcNACAUIRAMAgsCQCAEQQhqKAIAIAFHDQAgFCEQDAILAkAgBEEMaigCACABRw0AIBQhEAwCCyARQRBqIhFBgAhHDQALQQAhEUEAIQ8DQCADQYDAAGogEWoiBCgCACEVIAQgDzYCACAEQQRqIhYoAgAhDiAWIBUgD2oiDzYCACAEQQhqIhUoAgAhFiAVIA4gD2oiDzYCACAEQQxqIgQoAgAhFSAEIBYgD2oiDzYCACAVIA9qIQ8gEUEQaiIRQYAIRw0AC0EAIRECQCAJRQ0AIBQhBANAIBAgA0GAwABqIAQvAQAiD0EGdkH8B3FBgARzaiIVKAIAIhZBAXRqIA87AQAgFSAWQQFqNgIAIANBgMAAaiAEQQJqLwEAIg9BBnZB/AdxQYAEc2oiFSAVKAIAIhVBAWo2AgAgECAVQQF0aiAPOwEAIARBBGohBCAIIBFBAmoiEUcNAAsLIAdFDQAgA0GAwABqIBQgEUEBdGovAQAiBEEGdkH8B3FBgARzaiIRIBEoAgAiEUEBajYCACAQIBFBAXRqIAQ7AQALAkAgECASRg0AQQAhDwJAIBMgEGtBEEkNAEEAIQQDQCAMIARqIBAgBGr9AAEA/QsBACALIARBEGoiBEcNAAsgBiEPIAEgBkYNAQsgDyEVAkAgBUUNACAFIA9qIRUgD0EBdCEEIAUhEQNAIAwgBGogECAEai8BADsBACAEQQJqIQQgEUF/aiIRDQALCyAPIAFrQXxLDQAgFUEBdCEEIAEgFWshFQNAIAwgBGoiESAQIARqIg8vAQA7AQAgEUECaiAPQQJqLwEAOwEAIBFBBGogD0EEai8BADsBACARQQZqIA9BBmovAQA7AQAgBEEIaiEEIBVBfGoiFQ0ACwsgDCAKaiEMIA1BAWoiDSACRw0ACwsgA0GAyABqJICAgIAAC60NARR/I4CAgIAAQYDIAGsiAySAgICAAAJAAkAgAUFwakHxH0kNACACRQ0BIAFBAXQhBANAIAAgARCPgICAACAAIARqIQAgAkF/aiICDQAMAgsLIAJFDQAgAUEDcSEFIAFB+D9xIQYgAUEBcSEHIAFB/j9xIQggAUF/aiEJIAFBAXQiCkHw/wBxIQsgACEMQQAhDQNAAkBBgAhFIg4NACADQYDAAGpBAEGACPwLAAsgDSABbEEBdCEPQQAhEAJAIAlFDQBBACEQIAwhBANAIANBgMAAaiAELQAAQQJ0aiIRIBEoAgBBAWo2AgAgA0GAwABqIARBAmotAABBAnRqIhEgESgCAEEBajYCACAEQQRqIQQgCCAQQQJqIhBHDQALCyAAIA9qIRICQCAHRQ0AIANBgMAAaiASIBBBAXRqLQAAQQJ0aiIEIAQoAgBBAWo2AgALIAogDWwgAGohE0EAIRECQANAIAMhEAJAIANBgMAAaiARaiIEKAIAIAFHDQAgEiEUDAILAkAgBEEEaigCACABRw0AIBIhFAwCCwJAIARBCGooAgAgAUcNACASIRQMAgsCQCAEQQxqKAIAIAFHDQAgEiEUDAILIBFBEGoiEUGACEcNAAtBACEQQQAhEQNAIANBgMAAaiAQaiIEKAIAIQ8gBCARNgIAIARBBGoiFSgCACEWIBUgDyARaiIRNgIAIARBCGoiDygCACEVIA8gFiARaiIRNgIAIARBDGoiBCgCACEPIAQgFSARaiIRNgIAIA8gEWohESAQQRBqIhBBgAhHDQALQQAhEAJAIAlFDQAgDCEEA0AgA0GAwABqIAQvAQAiEUH/AXFBAnRqIg8gDygCACIPQQFqNgIAIAMgD0EBdGogETsBACADQYDAAGogBEECai8BACIRQf8BcUECdGoiDyAPKAIAIg9BAWo2AgAgAyAPQQF0aiAROwEAIARBBGohBCAIIBBBAmoiEEcNAAsLIAMhFAJAIAdFDQAgA0GAwABqIBIgEEEBdGovAQAiBEH/AXFBAnRqIhAgECgCACIQQQFqNgIAIAMgEEEBdGogBDsBAAsgEiEQC0EAIRECQCAODQAgA0GAwABqQQBBgAj8CwALAkAgCUUNAEEAIREgFCEEA0AgA0GAwABqIAQtAAFBAnRqIg8gDygCAEEBajYCACADQYDAAGogBEEDai0AAEECdGoiDyAPKAIAQQFqNgIAIARBBGohBCAIIBFBAmoiEUcNAAsLAkAgB0UNACADQYDAAGogFCARQQF0ai0AAUECdGoiBCAEKAIAQQFqNgIAC0EAIRECQANAAkAgA0GAwABqIBFqIgQoAgAgAUcNACAUIRAMAgsCQCAEQQRqKAIAIAFHDQAgFCEQDAILAkAgBEEIaigCACABRw0AIBQhEAwCCwJAIARBDGooAgAgAUcNACAUIRAMAgsgEUEQaiIRQYAIRw0AC0EAIRFBACEPA0AgA0GAwABqIBFqIgQoAgAhFSAEIA82AgAgBEEEaiIWKAIAIQ4gFiAVIA9qIg82AgAgBEEIaiIVKAIAIRYgFSAOIA9qIg82AgAgBEEMaiIEKAIAIRUgBCAWIA9qIg82AgAgFSAPaiEPIBFBEGoiEUGACEcNAAtBACERAkAgCUUNACAUIQQDQCAQIANBgMAAaiAELwEAIg9BBnZB/AdxaiIVKAIAIhZBAXRqIA87AQAgFSAWQQFqNgIAIANBgMAAaiAEQQJqLwEAIg9BBnZB/AdxaiIVIBUoAgAiFUEBajYCACAQIBVBAXRqIA87AQAgBEEEaiEEIAggEUECaiIRRw0ACwsgB0UNACADQYDAAGogFCARQQF0ai8BACIEQQZ2QfwHcWoiESARKAIAIhFBAWo2AgAgECARQQF0aiAEOwEACwJAIBAgEkYNAEEAIQ8CQCATIBBrQRBJDQBBACEEA0AgDCAEaiAQIARq/QABAP0LAQAgCyAEQRBqIgRHDQALIAYhDyABIAZGDQELIA8hFQJAIAVFDQAgBSAPaiEVIA9BAXQhBCAFIREDQCAMIARqIBAgBGovAQA7AQAgBEECaiEEIBFBf2oiEQ0ACwsgDyABa0F8Sw0AIBVBAXQhBCABIBVrIRUDQCAMIARqIhEgECAEaiIPLwEAOwEAIBFBAmogD0ECai8BADsBACARQQRqIA9BBGovAQA7AQAgEUEGaiAPQQZqLwEAOwEAIARBCGohBCAVQXxqIhUNAAsLIAwgCmohDCANQQFqIg0gAkcNAAsLIANBgMgAaiSAgICAAAvlBQENfyOAgICAAEGAKGsiAySAgICAAAJAAkAgAUFwakHxH0kNACACRQ0BA0AgACABEJGAgIAAIAAgAWohACACQX9qIgINAAwCCwsgAkUNACABQQFxIQQgAUH+P3EhBSABQX9qIQYgACEHQQAhCANAAkBBgAhFDQAgA0GAIGpBAEGACPwLAAtBACEJAkAgBkUNAEEAIQkDQCADQYAgaiAHIAlqIgotAABBgAFzQQJ0aiILIAsoAgBBAWo2AgAgA0GAIGogCkEBai0AAEGAAXNBAnRqIgogCigCAEEBajYCACAFIAlBAmoiCUcNAAsLIAAgCCABbGohDAJAIARFDQAgA0GAIGogDCAJai0AAEGAAXNBAnRqIgkgCSgCAEEBajYCAAtBACEKAkADQCADQYAgaiAKaiIJKAIAIAFGDQEgCUEEaigCACABRg0BIAlBCGooAgAgAUYNASAJQQxqKAIAIAFGDQEgCkEQaiIKQYAIRw0AC0EAIQpBACELA0AgA0GAIGogCmoiCSgCACENIAkgCzYCACAJQQRqIg4oAgAhDyAOIA0gC2oiCzYCACAJQQhqIg0oAgAhDiANIA8gC2oiCzYCACAJQQxqIgkoAgAhDSAJIA4gC2oiCzYCACANIAtqIQsgCkEQaiIKQYAIRw0AC0EAIQkCQCAGRQ0AA0AgA0GAIGogByAJaiIKLQAAIgtBgAFzQf8BcUECdGoiDSANKAIAIg1BAWo2AgAgAyANaiALOgAAIANBgCBqIApBAWotAAAiCkGAAXNB/wFxQQJ0aiILIAsoAgAiC0EBajYCACADIAtqIAo6AAAgBSAJQQJqIglHDQALCwJAIARFDQAgAyADQYAgaiAMIAlqLQAAIglBgAFzQf8BcUECdGoiCigCACILaiAJOgAAIAogC0EBajYCAAsgAUUNACAMIAMgAfwKAAALIAcgAWohByAIQQFqIgggAkcNAAsLIANBgChqJICAgIAAC6sGAQ9/I4CAgIAAQYAoayIDJICAgIAAAkACQCABQXBqQfEfSQ0AIAJFDQEDQCAAIAEQk4CAgAAgACABaiEAIAJBf2oiAg0ADAILCyACRQ0AIAFB/j9xIQQgAUEBcSEFIAFB/D9xIQYgAUEDcSEHIAFBf2ohCCAAIQlBACEKA0ACQEGACEUNACADQYAgakEAQYAI/AsAC0EAIQsCQCAIQQNJDQBBACELA0AgA0GAIGogCSALaiIMLQAAQQJ0aiINIA0oAgBBAWo2AgAgA0GAIGogDEEBai0AAEECdGoiDSANKAIAQQFqNgIAIANBgCBqIAxBAmotAABBAnRqIg0gDSgCAEEBajYCACADQYAgaiAMQQNqLQAAQQJ0aiIMIAwoAgBBAWo2AgAgBiALQQRqIgtHDQALCwJAIAdFDQAgCSALaiEMIAchCwNAIANBgCBqIAwtAABBAnRqIg0gDSgCAEEBajYCACAMQQFqIQwgC0F/aiILDQALCyAAIAogAWxqIQ5BACELAkADQCADQYAgaiALaiIMKAIAIAFGDQEgDEEEaigCACABRg0BIAxBCGooAgAgAUYNASAMQQxqKAIAIAFGDQEgC0EQaiILQYAIRw0AC0EAIQtBACENA0AgA0GAIGogC2oiDCgCACEPIAwgDTYCACAMQQRqIhAoAgAhESAQIA8gDWoiDTYCACAMQQhqIg8oAgAhECAPIBEgDWoiDTYCACAMQQxqIgwoAgAhDyAMIBAgDWoiDTYCACAPIA1qIQ0gC0EQaiILQYAIRw0AC0EAIQwCQCAIRQ0AA0AgA0GAIGogCSAMaiILLQAAIg1BAnRqIg8gDygCACIPQQFqNgIAIAMgD2ogDToAACADQYAgaiALQQFqLQAAIgtBAnRqIg0gDSgCACINQQFqNgIAIAMgDWogCzoAACAEIAxBAmoiDEcNAAsLAkAgBUUNACADIANBgCBqIA4gDGotAAAiDEECdGoiCygCACINaiAMOgAAIAsgDUEBajYCAAsgAUUNACAOIAMgAfwKAAALIAkgAWohCSAKQQFqIgogAkcNAAsLIANBgChqJICAgIAAC6IBAgN/AXsCQCABQQJJDQAgACABQX5qIgJBAXYiAyABQX9qIgQQn4CAgAACQCACQQJJDQAgA0F/aiEDA0AgACADIAQQn4CAgAAgA0F/aiIDQX9HDQALCyABQQR0IABqQXBqIQMDQCAA/QADACEFIAAgA/0AAwD9CwMAIAMgBf0LAwAgAEEAIAIQn4CAgAAgA0FwaiEDIAJBf2oiAkF/Rw0ACwsLzQICBn8EfAJAIAFBAXQiASACTw0AA0AgASIDQQFyIgRBAXQhBQJAAkACQCADQQJqIgYgAk0NACAFQQFyIQcMAQsgBUEBciEIAkAgACAFQQN0aisDACIJIAliDQAgACAIQQN0aisDACIKIApiDQAgBkEBdCIBQQFyIQcgCSAAIAZBBHRqKwMAIgtjDQIgCyALYg0CIAAgB0EDdGorAwAiDCAMYg0CIAkgC2QNACAKIAxjDQILIAghBwsgBSEBCyAAIANBA3RqIgUrAwAiCSAJYg0BIAAgBEEDdGoiAysDACIMIAxiDQEgACAHQQN0aiIHKwMAIQsCQCAJIAAgAUEDdGoiBCsDACIKYw0AIAogCmINACALIAtiDQAgCSAKZA0CIAwgC2NFDQILIAUgCjkDACAEIAk5AwAgAyALOQMAIAcgDDkDACABIAJJDQALCwu7AQIDfwF9AkAgAUECSQ0AIAAgAUF+aiICQQF2IgMgAUF/aiIEEKGAgIAAAkAgAkECSQ0AIANBf2ohAwNAIAAgAyAEEKGAgIAAIANBf2oiA0F/Rw0ACwsgAUEDdCAAakF4aiEDA0AgACoCACEFIAAgAyoCADgCACADIAU4AgAgACoCBCEFIAAgA0EEaiIEKgIAOAIEIAQgBTgCACAAQQAgAhChgICAACADQXhqIQMgAkF/aiICQX9HDQALCwvNAgIGfwR9AkAgAUEBdCIBIAJPDQADQCABIgNBAXIiBEEBdCEFAkACQAJAIANBAmoiBiACTQ0AIAVBAXIhBwwBCyAFQQFyIQgCQCAAIAVBAnRqKgIAIgkgCVwNACAAIAhBAnRqKgIAIgogClwNACAGQQF0IgFBAXIhByAJIAAgBkEDdGoqAgAiC10NAiALIAtcDQIgACAHQQJ0aioCACIMIAxcDQIgCSALXg0AIAogDF0NAgsgCCEHCyAFIQELIAAgA0ECdGoiBSoCACIJIAlcDQEgACAEQQJ0aiIDKgIAIgwgDFwNASAAIAdBAnRqIgcqAgAhCwJAIAkgACABQQJ0aiIEKgIAIgpdDQAgCiAKXA0AIAsgC1wNACAJIApeDQIgDCALXUUNAgsgBSAKOAIAIAQgCTgCACADIAs4AgAgByAMOAIAIAEgAkkNAAsLC94GAw9/BHwBewJAIAJFDQAgAUECSQ0AIAFBBHQhAyABQX5qIgRBAXYhBSABQX9qIgZBBHQhB0EAIQggBEECSSEJA0AgACADIAhsaiIBIAUgBhCfgICAACAFIQoCQCAJDQADQAJAIApBf2oiCkEBdCILIAZPDQADQCALIgxBAXIiDUEBdCEOAkACQAJAIAxBAmoiDyAGTQ0AIA5BAXIhEAwBCyAOQQFyIRECQCABIA5BA3RqKwMAIhIgEmINACABIBFBA3RqKwMAIhMgE2INACAPQQF0IgtBAXIhECASIAEgD0EEdGorAwAiFGMNAiAUIBRiDQIgASAQQQN0aisDACIVIBViDQIgEiAUZA0AIBMgFWMNAgsgESEQCyAOIQsLIAEgDEEDdGoiDisDACISIBJiDQEgASANQQN0aiIMKwMAIhUgFWINASABIBBBA3RqIhArAwAhFAJAIBIgASALQQN0aiINKwMAIhNjDQAgEyATYg0AIBQgFGINACASIBNkDQIgFSAUY0UNAgsgDiATOQMAIA0gEjkDACAMIBQ5AwAgECAVOQMAIAsgBkkNAAsLIAoNAAsLIAH9AAMAIRYgASABIAdqIgv9AAMA/QsDACALIBb9CwMAIAQhDQJAIARFDQADQEEAIQsDQCALIgxBAXIiD0EBdCEOAkACQAJAIAxBAmoiESANTQ0AIA5BAXIhEAwBCyAOQQFyIQoCQCABIA5BA3RqKwMAIhIgEmINACABIApBA3RqKwMAIhMgE2INACARQQF0IgtBAXIhECASIAEgEUEEdGorAwAiFGMNAiAUIBRiDQIgASAQQQN0aisDACIVIBViDQIgEiAUZA0AIBMgFWMNAgsgCiEQCyAOIQsLAkAgASAMQQN0aiIOKwMAIhIgEmINACABIA9BA3RqIgwrAwAiFSAVYg0AIAEgEEEDdGoiECsDACEUAkAgEiABIAtBA3RqIg8rAwAiE2MNACATIBNiDQAgFCAUYg0AIBIgE2QNASAVIBRjRQ0BCyAOIBM5AwAgDyASOQMAIAwgFDkDACAQIBU5AwAgCyANSQ0BCwsgAf0AAwAhFiABIAEgDUEEdGoiC/0AAwD9CwMAIAsgFv0LAwAgDUF/aiINDQALCyAIQQFqIgggAkcNAAsLC5kHAhB/BH0CQCACRQ0AIAFBAkkNACABQQN0IQMgAUF+aiIEQQF2IQVBACEGIARBAkkhByABQX9qIghBAXQiCUEBckECdCEKA0AgACADIAZsaiIBIAUgCBChgICAACAFIQsCQCAHDQADQAJAIAtBf2oiC0EBdCIMIAhPDQADQCAMIg1BAXIiDkEBdCEPAkACQAJAIA1BAmoiECAITQ0AIA9BAXIhEQwBCyAPQQFyIRICQCABIA9BAnRqKgIAIhMgE1wNACABIBJBAnRqKgIAIhQgFFwNACAQQQF0IgxBAXIhESATIAEgEEEDdGoqAgAiFV0NAiAVIBVcDQIgASARQQJ0aioCACIWIBZcDQIgEyAVXg0AIBQgFl0NAgsgEiERCyAPIQwLIAEgDUECdGoiDyoCACITIBNcDQEgASAOQQJ0aiINKgIAIhYgFlwNASABIBFBAnRqIhEqAgAhFQJAIBMgASAMQQJ0aiIOKgIAIhRdDQAgFCAUXA0AIBUgFVwNACATIBReDQIgFiAVXUUNAgsgDyAUOAIAIA4gEzgCACANIBU4AgAgESAWOAIAIAwgCEkNAAsLIAsNAAsLIAEqAgAhEyABIAEgCUECdGoiDCoCADgCACABKgIEIRQgASABIApqIg8qAgA4AgQgDCATOAIAIA8gFDgCACAEIQ4CQCAERQ0AA0BBACEMA0AgDCINQQFyIhBBAXQhDwJAAkACQCANQQJqIhIgDk0NACAPQQFyIREMAQsgD0EBciELAkAgASAPQQJ0aioCACITIBNcDQAgASALQQJ0aioCACIUIBRcDQAgEkEBdCIMQQFyIREgEyABIBJBA3RqKgIAIhVdDQIgFSAVXA0CIAEgEUECdGoqAgAiFiAWXA0CIBMgFV4NACAUIBZdDQILIAshEQsgDyEMCwJAIAEgDUECdGoiDyoCACITIBNcDQAgASAQQQJ0aiINKgIAIhYgFlwNACABIBFBAnRqIhEqAgAhFQJAIBMgASAMQQJ0aiIQKgIAIhRdDQAgFCAUXA0AIBUgFVwNACATIBReDQEgFiAVXUUNAQsgDyAUOAIAIBAgEzgCACANIBU4AgAgESAWOAIAIAwgDkkNAQsLIAEqAgAhEyABIAEgDkEDdGoiDCoCADgCACABKgIEIRQgASAMQQRqIg8qAgA4AgQgDCATOAIAIA8gFDgCACAOQX9qIg4NAAsLIAZBAWoiBiACRw0ACwsL",Gn=null;function lA(){if(Gn)return Gn;let A=atob(V4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Gn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Gn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Gn}function $S(A,r){lA().exports.sort_f64(A,r)}function AG(A,r){lA().exports.sort_f32(A,r)}function rG(A,r){lA().exports.sort_i64(A,r)}function IG(A,r){lA().exports.sort_u64(A,r)}function eG(A,r){lA().exports.sort_i32(A,r)}function tG(A,r){lA().exports.sort_u32(A,r)}function oG(A,r){lA().exports.sort_i16(A,r)}function nG(A,r){lA().exports.sort_u16(A,r)}function iG(A,r){lA().exports.sort_i8(A,r)}function gG(A,r){lA().exports.sort_u8(A,r)}function QG(A,r,I){lA().exports.sort_slices_f64(A,r,I)}function aG(A,r,I){lA().exports.sort_slices_f32(A,r,I)}function sG(A,r,I){lA().exports.sort_slices_i64(A,r,I)}function BG(A,r,I){lA().exports.sort_slices_u64(A,r,I)}function CG(A,r,I){lA().exports.sort_slices_i32(A,r,I)}function EG(A,r,I){lA().exports.sort_slices_u32(A,r,I)}function uG(A,r,I){lA().exports.sort_slices_i16(A,r,I)}function cG(A,r,I){lA().exports.sort_slices_u16(A,r,I)}function fG(A,r,I){lA().exports.sort_slices_i8(A,r,I)}function DG(A,r,I){lA().exports.sort_slices_u8(A,r,I)}function mG(A,r){lA().exports.sort_c128(A,r)}function yG(A,r){lA().exports.sort_c64(A,r)}function lG(A,r,I){lA().exports.sort_slices_c128(A,r,I)}function hG(A,r,I){lA().exports.sort_slices_c64(A,r,I)}var W4=64,dG={float64:$S,float32:AG,int64:rG,uint64:IG,int32:eG,uint32:tG,int16:oG,uint16:nG,int8:iG,uint8:gG,complex128:mG,complex64:yG},O4={float64:QG,float32:aG,int64:sG,uint64:BG,int32:CG,uint32:EG,int16:uG,uint16:cG,int8:fG,uint8:DG,complex128:lG,complex64:hG},FE={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,complex128:Float64Array,complex64:Float32Array};function bG(A,r,I,e,t){if(I<2)return!0;let o=O4[t];if(o&&r[0]===0&&e>1&&r[1]===I){let E=FE[t];if(!E)return!1;let u=E.BYTES_PER_ELEMENT,D=A.length*u;J(D),U();let m=q(A);o(m,I,e);let c=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(c.buffer,m,A.byteLength)),!0}let n=dG[t],g=FE[t];if(!n||!g)return!1;let i=t==="complex128"||t==="complex64",Q=g.BYTES_PER_ELEMENT,a=i?Q*2:Q,s=A.length*Q;J(s),U();let B=q(A);for(let E=0;E<e;E++)n(B+r[E]*a,I);let C=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(C.buffer,B,A.byteLength)),!0}function pG(A){if(!A.isCContiguous)return null;let r=A.size;if(r<W4*Y.thresholdMultiplier)return null;let I=A.dtype,e=dG[I],t=FE[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o;J(n),U();let g=A.offset,Q=I==="complex128"||I==="complex64"?r*2:r,a=A.data.subarray(g,g+Q),s=q(a);e(s,r);let B=v(s,Q,t);return d.fromData(B,Array.from(A.shape),I)}var Z4="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",Rn=null;function hA(){if(Rn)return Rn;let A=atob(Z4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Rn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Rn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Rn}function wG(A,r,I){hA().exports.argsort_f64(A,r,I)}function NG(A,r,I){hA().exports.argsort_f32(A,r,I)}function FG(A,r,I){hA().exports.argsort_i64(A,r,I)}function SG(A,r,I){hA().exports.argsort_u64(A,r,I)}function GG(A,r,I){hA().exports.argsort_i32(A,r,I)}function RG(A,r,I){hA().exports.argsort_u32(A,r,I)}function kG(A,r,I){hA().exports.argsort_i16(A,r,I)}function qG(A,r,I){hA().exports.argsort_u16(A,r,I)}function MG(A,r,I){hA().exports.argsort_i8(A,r,I)}function xG(A,r,I){hA().exports.argsort_u8(A,r,I)}function JG(A,r,I,e){hA().exports.argsort_slices_f64(A,r,I,e)}function UG(A,r,I,e){hA().exports.argsort_slices_f32(A,r,I,e)}function LG(A,r,I,e){hA().exports.argsort_slices_i64(A,r,I,e)}function HG(A,r,I,e){hA().exports.argsort_slices_u64(A,r,I,e)}function _G(A,r,I,e){hA().exports.argsort_slices_i32(A,r,I,e)}function YG(A,r,I,e){hA().exports.argsort_slices_u32(A,r,I,e)}function vG(A,r,I,e){hA().exports.argsort_slices_i16(A,r,I,e)}function XG(A,r,I,e){hA().exports.argsort_slices_u16(A,r,I,e)}function TG(A,r,I,e){hA().exports.argsort_slices_i8(A,r,I,e)}function PG(A,r,I,e){hA().exports.argsort_slices_u8(A,r,I,e)}function KG(A,r,I){hA().exports.argsort_c128(A,r,I)}function VG(A,r,I){hA().exports.argsort_c64(A,r,I)}function WG(A,r,I,e){hA().exports.argsort_slices_c128(A,r,I,e)}function OG(A,r,I,e){hA().exports.argsort_slices_c64(A,r,I,e)}var z4=64,ZG={float64:wG,float32:NG,int64:FG,uint64:SG,int32:GG,uint32:RG,int16:kG,uint16:qG,int8:MG,uint8:xG,complex128:KG,complex64:VG},j4={float64:JG,float32:UG,int64:LG,uint64:HG,int32:_G,uint32:YG,int16:vG,uint16:XG,int8:TG,uint8:PG,complex128:WG,complex64:OG},SE={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,complex128:Float64Array,complex64:Float32Array};function zG(A,r,I,e,t,o,n){if(t<2)return!1;let g=n==="complex128"||n==="complex64",i=j4[n];if(i&&I[0]===0&&o>1&&I[1]===t&&e[0]===0&&e[1]===t){let c=SE[n];if(!c)return!1;let f=c.BYTES_PER_ELEMENT,y=A.length*f,l=r.length*4;J(y+l),U();let h=q(A),b=_(l);i(h,b,t,o);let p=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(p.buffer,b,r.byteLength)),!0}let Q=ZG[n],a=SE[n];if(!Q||!a)return!1;let s=a.BYTES_PER_ELEMENT,B=g?s*2:s,C=A.length*s,E=r.length*4;J(C+E),U();let u=q(A),D=_(E);for(let c=0;c<o;c++)Q(u+I[c]*B,D+e[c]*4,t);let m=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(m.buffer,D,r.byteLength)),!0}function jG(A){if(!A.isCContiguous)return null;let r=A.size;if(r<z4*Y.thresholdMultiplier)return null;let I=A.dtype,e=ZG[I],t=SE[I];if(!e||!t)return null;let o=I==="complex128"||I==="complex64",n=t.BYTES_PER_ELEMENT,g=o?r*2:r,i=g*n,Q=r*4;J(i+Q),U();let a=A.offset,s=A.data.subarray(a,a+g),B=q(s),C=_(Q);e(B,C,r);let E=v(C,r,Int32Array);return d.fromData(E,Array.from(A.shape),"int32")}var $4="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",kn=null;function kA(){if(kn)return kn;let A=atob($4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);kn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=kn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),kn}function $G(A,r,I){kA().exports.partition_f64(A,r,I)}function AR(A,r,I){kA().exports.partition_f32(A,r,I)}function rR(A,r,I){kA().exports.partition_i64(A,r,I)}function IR(A,r,I){kA().exports.partition_u64(A,r,I)}function eR(A,r,I){kA().exports.partition_i32(A,r,I)}function tR(A,r,I){kA().exports.partition_u32(A,r,I)}function oR(A,r,I){kA().exports.partition_i16(A,r,I)}function nR(A,r,I){kA().exports.partition_u16(A,r,I)}function iR(A,r,I){kA().exports.partition_i8(A,r,I)}function gR(A,r,I){kA().exports.partition_u8(A,r,I)}function QR(A,r,I,e){kA().exports.partition_slices_f64(A,r,I,e)}function aR(A,r,I,e){kA().exports.partition_slices_f32(A,r,I,e)}function sR(A,r,I,e){kA().exports.partition_slices_i64(A,r,I,e)}function BR(A,r,I,e){kA().exports.partition_slices_u64(A,r,I,e)}function CR(A,r,I,e){kA().exports.partition_slices_i32(A,r,I,e)}function ER(A,r,I,e){kA().exports.partition_slices_u32(A,r,I,e)}function uR(A,r,I,e){kA().exports.partition_slices_i16(A,r,I,e)}function cR(A,r,I,e){kA().exports.partition_slices_u16(A,r,I,e)}function fR(A,r,I,e){kA().exports.partition_slices_i8(A,r,I,e)}function DR(A,r,I,e){kA().exports.partition_slices_u8(A,r,I,e)}var AY=64,mR={float64:$G,float32:AR,int64:rR,uint64:IR,int32:eR,uint32:tR,int16:oR,uint16:nR,int8:iR,uint8:gR},rY={float64:QR,float32:aR,int64:sR,uint64:BR,int32:CR,uint32:ER,int16:uR,uint16:cR,int8:fR,uint8:DR},GE={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function yR(A,r,I,e,t,o){if(I<2)return!0;let n=rY[o];if(n&&r[0]===0&&e>1&&r[1]===I){let C=GE[o];if(!C)return!1;let E=C.BYTES_PER_ELEMENT,u=A.length*E;J(u),U();let D=q(A);n(D,I,e,t);let m=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(m.buffer,D,A.byteLength)),!0}let g=mR[o],i=GE[o];if(!g||!i)return!1;let Q=i.BYTES_PER_ELEMENT,a=A.length*Q;J(a),U();let s=q(A);for(let C=0;C<e;C++)g(s+r[C]*Q,I,t);let B=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(B.buffer,s,A.byteLength)),!0}function lR(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<AY*Y.thresholdMultiplier)return null;let e=A.dtype,t=mR[e],o=GE[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n;J(g),U();let i=A.offset,Q=A.data.subarray(i,i+I),a=q(Q);t(a,I,r);let s=v(a,I,o);return d.fromData(s,Array.from(A.shape),e)}var IY="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",qn=null;function qA(){if(qn)return qn;let A=atob(IY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);qn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=qn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),qn}function hR(A,r,I,e){qA().exports.argpartition_f64(A,r,I,e)}function dR(A,r,I,e){qA().exports.argpartition_f32(A,r,I,e)}function bR(A,r,I,e){qA().exports.argpartition_i64(A,r,I,e)}function pR(A,r,I,e){qA().exports.argpartition_u64(A,r,I,e)}function wR(A,r,I,e){qA().exports.argpartition_i32(A,r,I,e)}function NR(A,r,I,e){qA().exports.argpartition_u32(A,r,I,e)}function FR(A,r,I,e){qA().exports.argpartition_i16(A,r,I,e)}function SR(A,r,I,e){qA().exports.argpartition_u16(A,r,I,e)}function GR(A,r,I,e){qA().exports.argpartition_i8(A,r,I,e)}function RR(A,r,I,e){qA().exports.argpartition_u8(A,r,I,e)}function kR(A,r,I,e,t){qA().exports.argpartition_slices_f64(A,r,I,e,t)}function qR(A,r,I,e,t){qA().exports.argpartition_slices_f32(A,r,I,e,t)}function MR(A,r,I,e,t){qA().exports.argpartition_slices_i64(A,r,I,e,t)}function xR(A,r,I,e,t){qA().exports.argpartition_slices_u64(A,r,I,e,t)}function JR(A,r,I,e,t){qA().exports.argpartition_slices_i32(A,r,I,e,t)}function UR(A,r,I,e,t){qA().exports.argpartition_slices_u32(A,r,I,e,t)}function LR(A,r,I,e,t){qA().exports.argpartition_slices_i16(A,r,I,e,t)}function HR(A,r,I,e,t){qA().exports.argpartition_slices_u16(A,r,I,e,t)}function _R(A,r,I,e,t){qA().exports.argpartition_slices_i8(A,r,I,e,t)}function YR(A,r,I,e,t){qA().exports.argpartition_slices_u8(A,r,I,e,t)}var eY=64,vR={float64:hR,float32:dR,int64:bR,uint64:pR,int32:wR,uint32:NR,int16:FR,uint16:SR,int8:GR,uint8:RR},tY={float64:kR,float32:qR,int64:MR,uint64:xR,int32:JR,uint32:UR,int16:LR,uint16:HR,int8:_R,uint8:YR},RE={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function XR(A,r,I,e,t,o,n,g){if(t<2)return!1;let i=tY[g];if(i&&I[0]===0&&o>1&&I[1]===t&&e[0]===0&&e[1]===t){let m=RE[g];if(!m)return!1;let c=m.BYTES_PER_ELEMENT,f=A.length*c,y=r.length*4;J(f+y),U();let l=q(A),h=_(y);i(l,h,t,o,n);let b=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(b.buffer,h,r.byteLength)),!0}let Q=vR[g],a=RE[g];if(!Q||!a)return!1;let s=a.BYTES_PER_ELEMENT,B=A.length*s,C=r.length*4;J(B+C),U();let E=q(A),u=_(C);for(let m=0;m<o;m++)Q(E+I[m]*s,u+e[m]*4,t,n);let D=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(D.buffer,u,r.byteLength)),!0}function TR(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<eY*Y.thresholdMultiplier)return null;let e=A.dtype,t=vR[e],o=RE[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*4;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),s=q(a),B=_(i);t(s,B,I,r);let C=v(B,I,Int32Array);return d.fromData(C,Array.from(A.shape),"int32")}var oY="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",Mn=null;function MA(){if(Mn)return Mn;let A=atob(oY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Mn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Mn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Mn}function PR(A,r,I,e,t){MA().exports.searchsorted_left_f64(A,r,I,e,t)}function KR(A,r,I,e,t){MA().exports.searchsorted_left_f32(A,r,I,e,t)}function VR(A,r,I,e,t){MA().exports.searchsorted_left_i64(A,r,I,e,t)}function WR(A,r,I,e,t){MA().exports.searchsorted_left_u64(A,r,I,e,t)}function OR(A,r,I,e,t){MA().exports.searchsorted_left_i32(A,r,I,e,t)}function ZR(A,r,I,e,t){MA().exports.searchsorted_left_u32(A,r,I,e,t)}function zR(A,r,I,e,t){MA().exports.searchsorted_left_i16(A,r,I,e,t)}function jR(A,r,I,e,t){MA().exports.searchsorted_left_u16(A,r,I,e,t)}function $R(A,r,I,e,t){MA().exports.searchsorted_left_i8(A,r,I,e,t)}function Ak(A,r,I,e,t){MA().exports.searchsorted_left_u8(A,r,I,e,t)}function rk(A,r,I,e,t){MA().exports.searchsorted_right_f64(A,r,I,e,t)}function Ik(A,r,I,e,t){MA().exports.searchsorted_right_f32(A,r,I,e,t)}function ek(A,r,I,e,t){MA().exports.searchsorted_right_i64(A,r,I,e,t)}function tk(A,r,I,e,t){MA().exports.searchsorted_right_u64(A,r,I,e,t)}function ok(A,r,I,e,t){MA().exports.searchsorted_right_i32(A,r,I,e,t)}function nk(A,r,I,e,t){MA().exports.searchsorted_right_u32(A,r,I,e,t)}function ik(A,r,I,e,t){MA().exports.searchsorted_right_i16(A,r,I,e,t)}function gk(A,r,I,e,t){MA().exports.searchsorted_right_u16(A,r,I,e,t)}function Qk(A,r,I,e,t){MA().exports.searchsorted_right_i8(A,r,I,e,t)}function ak(A,r,I,e,t){MA().exports.searchsorted_right_u8(A,r,I,e,t)}var nY=64,iY={float64:PR,float32:KR,int64:VR,uint64:WR,int32:OR,uint32:ZR,int16:zR,uint16:jR,int8:$R,uint8:Ak},gY={float64:rk,float32:Ik,int64:ek,uint64:tk,int32:ok,uint32:nk,int16:ik,uint16:gk,int8:Qk,uint8:ak},QY={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function sk(A,r,I){if(!A.isCContiguous||!r.isCContiguous)return null;let e=A.size,t=r.size;if(t<nY*Y.thresholdMultiplier)return null;let o=A.dtype,g=(I==="left"?iY:gY)[o],i=QY[o];if(!g||!i||r.dtype!==o)return null;let Q=i.BYTES_PER_ELEMENT,a=e*Q,s=t*Q,B=t*4;J(a+s+B),U();let C=A.offset,E=A.data.subarray(C,C+e),u=q(E),D=r.offset,m=r.data.subarray(D,D+t),c=q(m),f=_(B);g(u,e,c,f,t);let y=v(f,t,Int32Array);return d.fromData(y,Array.from(r.shape),"int32")}var aY="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",xn=null;function Sr(){if(xn)return xn;let A=atob(aY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);xn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=xn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),xn}function Bk(A,r,I,e){Sr().exports.lexsort_f64(A,r,I,e)}function Ck(A,r,I,e){Sr().exports.lexsort_f32(A,r,I,e)}function Ek(A,r,I,e){Sr().exports.lexsort_i64(A,r,I,e)}function uk(A,r,I,e){Sr().exports.lexsort_u64(A,r,I,e)}function ck(A,r,I,e){Sr().exports.lexsort_i32(A,r,I,e)}function fk(A,r,I,e){Sr().exports.lexsort_u32(A,r,I,e)}function Dk(A,r,I,e){Sr().exports.lexsort_i16(A,r,I,e)}function mk(A,r,I,e){Sr().exports.lexsort_u16(A,r,I,e)}function yk(A,r,I,e){Sr().exports.lexsort_i8(A,r,I,e)}function lk(A,r,I,e){Sr().exports.lexsort_u8(A,r,I,e)}var sY=64,BY={float64:Bk,float32:Ck,int64:Ek,uint64:uk,int32:ck,uint32:fk,int16:Dk,uint16:mk,int8:yk,uint8:lk},CY={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function hk(A){if(A.length===0)return null;let r=A[0].size;if(r<sY*Y.thresholdMultiplier)return null;let I=A[0].dtype;for(let C of A)if(C.dtype!==I||!C.isCContiguous||C.ndim!==1||C.size!==r)return null;let e=BY[I],t=CY[I];if(!e||!t)return null;let o=A.length,n=t.BYTES_PER_ELEMENT,g=o*r*n,i=r*4;J(g+i),U();let Q=_(g),a=K();for(let C=0;C<o;C++){let E=A[C],u=E.offset,D=E.data.subarray(u,u+r),m=Q+C*r*n;new Uint8Array(a.buffer,m,r*n).set(new Uint8Array(D.buffer,D.byteOffset,D.byteLength))}let s=_(i);e(Q,o,r,s);let B=v(s,r,Int32Array);return d.fromData(B,[r],"int32")}var EY="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",Jn=null;function uA(){if(Jn)return Jn;let A=atob(EY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Jn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Jn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Jn}function dk(A,r,I,e){return uA().exports.extract_f64(A,r,I,e)}function bk(A,r,I,e){return uA().exports.extract_f32(A,r,I,e)}function pk(A,r,I,e){return uA().exports.extract_i64(A,r,I,e)}function wk(A,r,I,e){return uA().exports.extract_u64(A,r,I,e)}function Nk(A,r,I,e){return uA().exports.extract_i32(A,r,I,e)}function Fk(A,r,I,e){return uA().exports.extract_u32(A,r,I,e)}function Sk(A,r,I,e){return uA().exports.extract_i16(A,r,I,e)}function Gk(A,r,I,e){return uA().exports.extract_u16(A,r,I,e)}function Rk(A,r,I,e){return uA().exports.extract_i8(A,r,I,e)}function kk(A,r,I,e){return uA().exports.extract_u8(A,r,I,e)}function qk(A,r,I,e,t){uA().exports.take_axis0_2d_f64(A,r,I,e,t)}function Mk(A,r,I,e,t){uA().exports.take_axis0_2d_f32(A,r,I,e,t)}function xk(A,r,I,e,t){uA().exports.take_axis0_2d_i64(A,r,I,e,t)}function Jk(A,r,I,e,t){uA().exports.take_axis0_2d_u64(A,r,I,e,t)}function Uk(A,r,I,e,t){uA().exports.take_axis0_2d_i32(A,r,I,e,t)}function Lk(A,r,I,e,t){uA().exports.take_axis0_2d_u32(A,r,I,e,t)}function Hk(A,r,I,e,t){uA().exports.take_axis0_2d_i16(A,r,I,e,t)}function _k(A,r,I,e,t){uA().exports.take_axis0_2d_u16(A,r,I,e,t)}function Yk(A,r,I,e,t){uA().exports.take_axis0_2d_i8(A,r,I,e,t)}function vk(A,r,I,e,t){uA().exports.take_axis0_2d_u8(A,r,I,e,t)}function Xk(A,r,I,e,t){uA().exports.where_f64(A,r,I,e,t)}function Tk(A,r,I,e,t){uA().exports.where_f32(A,r,I,e,t)}function Pk(A,r,I,e,t){uA().exports.where_i64(A,r,I,e,t)}function Kk(A,r,I,e,t){uA().exports.where_u64(A,r,I,e,t)}function Vk(A,r,I,e,t){uA().exports.where_i32(A,r,I,e,t)}function Wk(A,r,I,e,t){uA().exports.where_u32(A,r,I,e,t)}function Ok(A,r,I,e,t){uA().exports.where_i16(A,r,I,e,t)}function Zk(A,r,I,e,t){uA().exports.where_u16(A,r,I,e,t)}function zk(A,r,I,e,t){uA().exports.where_i8(A,r,I,e,t)}function jk(A,r,I,e,t){uA().exports.where_u8(A,r,I,e,t)}var kE=64,uY={float64:dk,float32:bk,int64:pk,uint64:wk,int32:Nk,uint32:Fk,int16:Sk,uint16:Gk,int8:Rk,uint8:kk},cY={float64:qk,float32:Mk,int64:xk,uint64:Jk,int32:Uk,uint32:Lk,int16:Hk,uint16:_k,int8:Yk,uint8:vk},qE={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function $k(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=Math.min(A.size,r.size);if(I<kE*Y.thresholdMultiplier)return null;let e=r.dtype,t=uY[e],o=qE[e];if(!t||!o)return null;let n=A.dtype;if(n!=="int32"&&n!=="float64"&&n!=="int8"&&n!=="uint8"&&n!=="int16"&&n!=="uint16"&&n!=="float32"&&n!=="uint32")return null;let g=o.BYTES_PER_ELEMENT,i=A.offset,Q=A.data,a=new Int32Array(I);for(let l=0;l<I;l++)a[l]=Q[i+l]?1:0;let s=I*4,B=I*g,C=I*g;J(s+B+C),U();let E=q(a),u=r.offset,D=r.data.subarray(u,u+I),m=q(D),c=_(C),f=t(E,m,c,I),y=v(c,f,o);return d.fromData(y,[f],e)}function Aq(A,r,I){if(I!==0||A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let[e,t]=A.shape,o=e*t;if(o<kE*Y.thresholdMultiplier)return null;let n=A.dtype,g=cY[n],i=qE[n];if(!g||!i)return null;let Q=i.BYTES_PER_ELEMENT,a=o*Q,s=o*4,B=o*Q;J(a+s+B),U();let C=A.offset,E=A.data.subarray(C,C+o),u=q(E),D=r.offset,m=r.data,c=new Int32Array(o);for(let h=0;h<o;h++)c[h]=Number(m[D+h]);let f=q(c),y=_(B);g(u,f,y,e,t);let l=v(y,o,i);return d.fromData(l,Array.from(r.shape),n)}var fY={float64:Xk,float32:Tk,int64:Pk,uint64:Kk,int32:Vk,uint32:Wk,int16:Ok,uint16:Zk,int8:zk,uint8:jk};function rq(A,r,I){if(!A.isCContiguous||!r.isCContiguous||!I.isCContiguous)return null;let e=A.size;if(e!==r.size||e!==I.size||e<kE*Y.thresholdMultiplier)return null;let t=r.dtype;if(t!==I.dtype)return null;let o=fY[t],n=qE[t];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT,i=e*4,Q=e*g;J(i+Q*2+Q),U();let a=A.offset,s=A.data,B=new Int32Array(e);for(let h=0;h<e;h++)B[h]=s[a+h]?1:0;let C=q(B),E=r.offset,u=r.data.subarray(E,E+e),D=q(u),m=I.offset,c=I.data.subarray(m,m+e),f=q(c),y=_(Q);o(C,D,f,y,e);let l=v(y,e,n);return d.fromData(l,Array.from(r.shape),t)}function Cr(A,r,I){if(I){let e=A[r*2],t=A[r*2+1];return e!==0||t!==0}return!!A[r]}function EI(A,r,I,e){let t=isNaN(A)||isNaN(r),o=isNaN(I)||isNaN(e);return t&&o?0:t?1:o||A<I?-1:A>I?1:r<e?-1:r>e?1:0}function Iq(A,r=-1){let I=A.shape,e=I.length,t=A.dtype,o=A.data,n=A.offset,g=A.strides;if(e===0)return A.copy();let i=r;if(i<0&&(i=e+i),i<0||i>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let Q=A.copy(),a=Q.data,s=I[i],B=Array.from(I).filter((f,y)=>y!==i),C=B.length===0?1:B.reduce((f,y)=>f*y,1),{baseOffsets:E,axisStride:u}=gA(I,g,n,i,C),D=pr(I),{baseOffsets:m,axisStride:c}=gA(I,D,0,i,C);if(e===1&&Q.isCContiguous){let f=pG(Q);if(f)return f}if(c===1&&bG(a,m,s,C,t))return Q;if(k(t)){let f=o,y=a;for(let l=0;l<C;l++){let h=[],b=E[l];for(let w=0;w<s;w++)h.push({re:f[b*2],im:f[b*2+1],idx:w}),b+=u;h.sort((w,N)=>EI(w.re,w.im,N.re,N.im));let p=m[l];for(let w=0;w<s;w++)y[p*2]=h[w].re,y[p*2+1]=h[w].im,p+=c}}else if(L(t)){let f=o,y=a;for(let l=0;l<C;l++){let h=[],b=E[l];for(let w=0;w<s;w++)h.push({value:f[b],idx:w}),b+=u;h.sort((w,N)=>w.value<N.value?-1:w.value>N.value?1:0);let p=m[l];for(let w=0;w<s;w++)y[p]=h[w].value,p+=c}}else for(let f=0;f<C;f++){let y=[],l=E[f];for(let b=0;b<s;b++)y.push(Number(o[l])),l+=u;y.sort((b,p)=>isNaN(b)&&isNaN(p)?0:isNaN(b)?1:isNaN(p)?-1:b-p);let h=m[f];for(let b=0;b<s;b++)a[h]=y[b],h+=c}return Q}function eq(A,r=-1){let I=A.shape,e=I.length,t=A.dtype,o=A.data,n=A.offset,g=A.strides;if(e===0)return d.zeros([0],"int32");let i=r;if(i<0&&(i=e+i),i<0||i>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let Q=d.zeros(Array.from(I),"int32"),a=Q.data,s=I[i],B=Array.from(I).filter((f,y)=>y!==i),C=B.length===0?1:B.reduce((f,y)=>f*y,1),{baseOffsets:E,axisStride:u}=gA(I,g,n,i,C),D=pr(I),{baseOffsets:m,axisStride:c}=gA(I,D,0,i,C);if(e===1&&A.isCContiguous){let f=jG(A);if(f)return f}if(c===1&&u===1&&zG(o,a,E,m,s,C,t))return Q;if(k(t)){let f=o;for(let y=0;y<C;y++){let l=[],h=E[y];for(let p=0;p<s;p++)l.push({re:f[h*2],im:f[h*2+1],idx:p}),h+=u;l.sort((p,w)=>EI(p.re,p.im,w.re,w.im));let b=m[y];for(let p=0;p<s;p++)a[b]=l[p].idx,b+=c}}else if(L(t)){let f=o;for(let y=0;y<C;y++){let l=[],h=E[y];for(let p=0;p<s;p++)l.push({value:f[h],idx:p}),h+=u;l.sort((p,w)=>p.value<w.value?-1:p.value>w.value?1:0);let b=m[y];for(let p=0;p<s;p++)a[b]=l[p].idx,b+=c}}else for(let f=0;f<C;f++){let y=[],l=E[f];for(let b=0;b<s;b++)y.push({value:Number(o[l]),idx:b}),l+=u;y.sort((b,p)=>isNaN(b.value)&&isNaN(p.value)?0:isNaN(b.value)?1:isNaN(p.value)?-1:b.value-p.value);let h=m[f];for(let b=0;b<s;b++)a[h]=y[b].idx,h+=c}return Q}function tq(A){if(A.length===0)return d.zeros([0],"int32");let I=A[0].size;for(let s of A){if(s.ndim!==1)throw new Error("keys must be 1D arrays");if(s.size!==I)throw new Error("all keys must have the same length")}let e=hk(A);if(e)return e;let t=[];for(let s=0;s<I;s++)t.push(s);let o=A.map(s=>k(s.dtype)),n=A.map(s=>s.isCContiguous),g=A.map(s=>s.data),i=A.map(s=>s.offset);t.sort((s,B)=>{for(let C=A.length-1;C>=0;C--)if(o[C]){let E,u,D,m;if(n[C]){let c=g[C],f=i[C];E=c[(f+s)*2],u=c[(f+s)*2+1],D=c[(f+B)*2],m=c[(f+B)*2+1]}else{let c=A[C].iget(s),f=A[C].iget(B);E=c.re,u=c.im,D=f.re,m=f.im}if(E<D)return-1;if(E>D)return 1;if(u<m)return-1;if(u>m)return 1}else{let E,u;if(n[C]){let D=g[C],m=i[C];E=Number(D[m+s]),u=Number(D[m+B])}else E=Number(A[C].iget(s)),u=Number(A[C].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"),a=Q.data;for(let s=0;s<I;s++)a[s]=t[s];return Q}function DY(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I],n=A[t],g=A[e],i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i];[A[i],A[e]]=[A[e],A[i]];let a=I;for(let s=I;s<e;s++){let B=A[s],C=isNaN(B),E=isNaN(Q);!C&&(E||B<=Q)&&([A[a],A[s]]=[A[s],A[a]],a++)}if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function mY(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I],n=A[t],g=A[e],i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i];[A[i],A[e]]=[A[e],A[i]];let a=I;for(let s=I;s<e;s++)A[s]<=Q&&([A[a],A[s]]=[A[s],A[a]],a++);if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function yY(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I].value,n=A[t].value,g=A[e].value,i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i].value;[A[i],A[e]]=[A[e],A[i]];let a=I;for(let s=I;s<e;s++){let B=A[s].value,C=isNaN(B),E=isNaN(Q);!C&&(E||B<=Q)&&([A[a],A[s]]=[A[s],A[a]],a++)}if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function lY(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I].value,n=A[t].value,g=A[e].value,i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i].value;[A[i],A[e]]=[A[e],A[i]];let a=I;for(let s=I;s<e;s++)A[s].value<=Q&&([A[a],A[s]]=[A[s],A[a]],a++);if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function oq(A,r,I=-1){let e=A.shape,t=e.length,o=A.dtype;if(t===0)return A.copy();let n=I;if(n<0&&(n=t+n),n<0||n>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let g=e[n],i=r;if(i<0&&(i=g+i),i<0||i>=g)throw new Error(`kth(=${r}) out of bounds (${g})`);if(t===1&&A.isCContiguous&&!k(o)){let D=A.copy(),m=lR(D,i);if(m)return m}let Q=A.copy(),a=Q.data,s=Array.from(e).filter((D,m)=>m!==n),B=s.length===0?1:s.reduce((D,m)=>D*m,1),C=pr(e),{baseOffsets:E,axisStride:u}=gA(e,C,0,n,B);if(u===1&&!k(o)&&yR(a,E,g,B,i,o))return Q;if(L(o)){let D=a;for(let m=0;m<B;m++){let c=[],f=E[m];for(let y=0;y<g;y++)c.push(D[f]),f+=u;mY(c,i),f=E[m];for(let y=0;y<g;y++)D[f]=c[y],f+=u}}else for(let D=0;D<B;D++){let m=[],c=E[D];for(let f=0;f<g;f++)m.push(Number(a[c])),c+=u;DY(m,i),c=E[D];for(let f=0;f<g;f++)a[c]=m[f],c+=u}return Q}function nq(A,r,I=-1){let e=A.shape,t=e.length,o=A.dtype,n=A.data,g=A.offset,i=A.strides;if(t===0)return d.zeros([0],"int32");let Q=I;if(Q<0&&(Q=t+Q),Q<0||Q>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let a=e[Q],s=r;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`kth(=${r}) out of bounds (${a})`);if(t===1&&A.isCContiguous&&!k(o)){let l=TR(A,s);if(l)return l}let B=d.zeros(Array.from(e),"int32"),C=B.data,E=Array.from(e).filter((l,h)=>h!==Q),u=E.length===0?1:E.reduce((l,h)=>l*h,1),{baseOffsets:D,axisStride:m}=gA(e,i,g,Q,u),c=pr(e),{baseOffsets:f,axisStride:y}=gA(e,c,0,Q,u);if(y===1&&m===1&&!k(o)&&XR(n,C,D,f,a,u,s,o))return B;if(L(o)){let l=n;for(let h=0;h<u;h++){let b=[],p=D[h];for(let N=0;N<a;N++)b.push({value:l[p],idx:N}),p+=m;lY(b,s);let w=f[h];for(let N=0;N<a;N++)C[w]=b[N].idx,w+=y}}else for(let l=0;l<u;l++){let h=[],b=D[l];for(let w=0;w<a;w++)h.push({value:Number(n[b]),idx:w}),b+=m;yY(h,s);let p=f[l];for(let w=0;w<a;w++)C[p]=h[w].idx,p+=y}return B}function iq(A){let r=A.dtype,I=A.size,e=A.isCContiguous,t=A.data,o=A.offset;if(k(r)){let n=[];if(e){let Q=t;for(let a=0;a<I;a++)n.push({re:Q[(o+a)*2],im:Q[(o+a)*2+1]})}else for(let Q=0;Q<I;Q++){let a=A.iget(Q);n.push({re:a.re,im:a.im})}n.sort((Q,a)=>EI(Q.re,Q.im,a.re,a.im));let g=d.zeros([I],"complex128"),i=g.data;for(let Q=0;Q<I;Q++)i[Q*2]=n[Q].re,i[Q*2+1]=n[Q].im;return g}else{let n=[];if(e)for(let Q=0;Q<I;Q++)n.push(Number(t[o+Q]));else for(let Q=0;Q<I;Q++)n.push(Number(A.iget(Q)));n.sort((Q,a)=>isNaN(Q)&&isNaN(a)?0:isNaN(Q)?1:isNaN(a)?-1:Q-a);let g=d.zeros([I],"complex128"),i=g.data;for(let Q=0;Q<I;Q++)i[Q*2]=n[Q],i[Q*2+1]=0;return g}}function ME(A){let r=A.shape,I=r.length,e=A.size,t=k(A.dtype),o=A.isCContiguous,n=A.data,g=A.offset,i=[];for(let C=0;C<I;C++)i.push([]);let Q=[],a=1;for(let C=I-1;C>=0;C--)Q.unshift(a),a*=r[C];if(o&&!t&&I>=1){let C=[];for(let D=0;D<I;D++)C.push(new Int32Array(e));let E=0;for(let D=0;D<e;D++)if(n[g+D]){let m=D;for(let c=0;c<I;c++)C[c][E]=m/Q[c]|0,m-=C[c][E]*Q[c];E++}let u=[];for(let D=0;D<I;D++){let m=d.zeros([E],"int32");m.data.set(C[D].subarray(0,E)),u.push(m)}return u}if(o){for(let C=0;C<e;C++)if(Cr(n,g+C,t)){let E=C;for(let u=0;u<I;u++){let D=Math.floor(E/Q[u]);E=E%Q[u],i[u].push(D)}}}else for(let C=0;C<e;C++){let E=A.iget(C);if(t?E.re!==0||E.im!==0:!!E){let D=C;for(let m=0;m<I;m++){let c=Math.floor(D/Q[m]);D=D%Q[m],i[m].push(c)}}}let s=i[0]?.length??0,B=[];for(let C=0;C<I;C++){let E=d.zeros([s],"int32"),u=E.data;for(let D=0;D<s;D++)u[D]=i[C][D];B.push(E)}return B}function gq(A){let r=A.shape,I=r.length,e=A.size,t=k(A.dtype),o=A.isCContiguous,n=A.data,g=A.offset,i=[],Q=[],a=1;for(let u=I-1;u>=0;u--)Q.unshift(a),a*=r[u];if(o){for(let u=0;u<e;u++)if(Cr(n,g+u,t)){let D=[],m=u;for(let c=0;c<I;c++){let f=Math.floor(m/Q[c]);m=m%Q[c],D.push(f)}i.push(D)}}else for(let u=0;u<e;u++){let D=A.iget(u);if(t?D.re!==0||D.im!==0:!!D){let c=[],f=u;for(let y=0;y<I;y++){let l=Math.floor(f/Q[y]);f=f%Q[y],c.push(l)}i.push(c)}}let s=i.length,B=I===0?[s,1]:[s,I],C=d.zeros(B,"int32"),E=C.data;for(let u=0;u<s;u++){let D=i[u];for(let m=0;m<(I===0?1:I);m++)E[u*(I===0?1:I)+m]=D[m]??0}return C}function Qq(A){let r=A.size,I=k(A.dtype),e=A.isCContiguous,t=A.data,o=A.offset;if(e&&!I){let Q=new Int32Array(r),a=0;for(let B=0;B<r;B++)t[o+B]&&(Q[a++]=B);let s=d.zeros([a],"int32");return s.data.set(Q.subarray(0,a)),s}let n=[];if(e)for(let Q=0;Q<r;Q++)Cr(t,o+Q,I)&&n.push(Q);else for(let Q=0;Q<r;Q++){let a=A.iget(Q);(I?a.re!==0||a.im!==0:a)&&n.push(Q)}let g=d.zeros([n.length],"int32"),i=g.data;for(let Q=0;Q<n.length;Q++)i[Q]=n[Q];return g}function aq(A,r,I){if(r===void 0&&I===void 0)return ME(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((V,$)=>V===r.shape[$])&&r.shape.every((V,$)=>V===I.shape[$])){let V=rq(A,r,I);if(V)return V}let e=A.shape,t=r.shape,o=I.shape,n=Math.max(e.length,t.length,o.length),g=V=>{let $=Array(n).fill(1);for(let O=0;O<V.length;O++)$[n-V.length+O]=V[O];return $},i=g(e),Q=g(t),a=g(o),s=[];for(let V=0;V<n;V++){let $=[i[V],Q[V],a[V]],O=Math.max(...$);for(let z of $)if(z!==1&&z!==O)throw new Error("operands could not be broadcast together");s.push(O)}let B=r.dtype,C=d.zeros(s,B),E=C.data,u=(V,$)=>{let O=[],z=1;for(let rA=V.length-1;rA>=0;rA--)O.unshift(z),z*=V[rA];for(;O.length<$.length;)O.unshift(0);for(let rA=0;rA<$.length;rA++)$[rA]===1&&s[rA]!==1&&(O[rA]=0);return O},D=u(e,i),m=u(t,Q),c=u(o,a),f=[],y=1;for(let V=s.length-1;V>=0;V--)f.unshift(y),y*=s[V];let l=s.reduce((V,$)=>V*$,1),h=k(A.dtype),b=k(B),p=A.isCContiguous,w=A.data,N=A.offset,F=r.isCContiguous,G=r.data,x=r.offset,H=I.isCContiguous,X=I.data,P=I.offset;if(e.length===s.length&&t.length===s.length&&o.length===s.length&&e.every((V,$)=>V===s[$])&&t.every((V,$)=>V===s[$])&&o.every((V,$)=>V===s[$])&&p&&F&&H)if(b){let V=E,$=G,O=X;if(h)for(let z=0;z<l;z++)Cr(w,N+z,!0)?(V[z*2]=$[(x+z)*2],V[z*2+1]=$[(x+z)*2+1]):(V[z*2]=O[(P+z)*2],V[z*2+1]=O[(P+z)*2+1]);else for(let z=0;z<l;z++)w[N+z]?(V[z*2]=$[(x+z)*2],V[z*2+1]=$[(x+z)*2+1]):(V[z*2]=O[(P+z)*2],V[z*2+1]=O[(P+z)*2+1])}else if(L(B)){let V=E,$=G,O=X;for(let z=0;z<l;z++)w[N+z]?V[z]=$[x+z]:V[z]=O[P+z]}else for(let V=0;V<l;V++)w[N+V]?E[V]=G[x+V]:E[V]=X[P+V];else for(let V=0;V<l;V++){let $=V,O=0,z=0,rA=0;for(let iA=0;iA<n;iA++){let CA=Math.floor($/f[iA]);$=$%f[iA],O+=CA*D[iA],z+=CA*m[iA],rA+=CA*c[iA]}let oA;if(p)oA=Cr(w,N+O,h);else{let iA=A.iget(O);oA=h?iA.re!==0||iA.im!==0:!!iA}if(oA)if(b)if(F){let iA=G;E[V*2]=iA[(x+z)*2],E[V*2+1]=iA[(x+z)*2+1]}else{let iA=r.iget(z);E[V*2]=iA.re,E[V*2+1]=iA.im}else F?E[V]=G[x+z]:E[V]=r.iget(z);else if(b)if(H){let iA=X;E[V*2]=iA[(P+rA)*2],E[V*2+1]=iA[(P+rA)*2+1]}else{let iA=I.iget(rA);E[V*2]=iA.re,E[V*2+1]=iA.im}else H?E[V]=X[P+rA]:E[V]=I.iget(rA)}return C}function sq(A,r,I="left"){if(A.ndim!==1)throw new Error("storage must be 1D");let e=A.size,t=r.size,o=k(A.dtype),n=A.isCContiguous,g=A.data,i=A.offset,Q=r.isCContiguous,a=r.data,s=r.offset;if(!o){let E=sk(A,r,I);if(E)return E}let B=d.zeros([t],"int32"),C=B.data;if(o)if(n&&Q){let E=g,u=a;for(let D=0;D<t;D++){let m=u[(s+D)*2],c=u[(s+D)*2+1],f=0,y=e;if(I==="left")for(;f<y;){let l=Math.floor((f+y)/2),h=E[(i+l)*2],b=E[(i+l)*2+1];EI(h,b,m,c)<0?f=l+1:y=l}else for(;f<y;){let l=Math.floor((f+y)/2),h=E[(i+l)*2],b=E[(i+l)*2+1];EI(h,b,m,c)<=0?f=l+1:y=l}C[D]=f}}else for(let E=0;E<t;E++){let u=r.iget(E),D=u.re,m=u.im,c=0,f=e;if(I==="left")for(;c<f;){let y=Math.floor((c+f)/2),l=A.iget(y);EI(l.re,l.im,D,m)<0?c=y+1:f=y}else for(;c<f;){let y=Math.floor((c+f)/2),l=A.iget(y);EI(l.re,l.im,D,m)<=0?c=y+1:f=y}C[E]=c}else if(n&&Q)for(let E=0;E<t;E++){let u=Number(a[s+E]),D=0,m=e;if(I==="left")for(;D<m;){let c=Math.floor((D+m)/2);Number(g[i+c])<u?D=c+1:m=c}else for(;D<m;){let c=Math.floor((D+m)/2);Number(g[i+c])<=u?D=c+1:m=c}C[E]=D}else for(let E=0;E<t;E++){let u=Number(r.iget(E)),D=0,m=e;if(I==="left")for(;D<m;){let c=Math.floor((D+m)/2);Number(A.iget(c))<u?D=c+1:m=c}else for(;D<m;){let c=Math.floor((D+m)/2);Number(A.iget(c))<=u?D=c+1:m=c}C[E]=D}return B}function Bq(A,r){let I=$k(A,r);if(I)return I;let e=r.dtype,t=k(A.dtype),o=k(e),n=Math.min(A.size,r.size),g=A.isCContiguous,i=A.data,Q=A.offset,a=r.isCContiguous,s=r.data,B=r.offset,C=0;if(g)for(let m=0;m<n;m++)Cr(i,Q+m,t)&&C++;else for(let m=0;m<n;m++){let c=A.iget(m);(t?c.re!==0||c.im!==0:c)&&C++}let E=d.zeros([C],e),u=E.data,D=0;if(g&&a)if(L(e)){let m=u,c=s;for(let f=0;f<n;f++)Cr(i,Q+f,t)&&(m[D++]=c[B+f])}else if(o){let m=u,c=s;for(let f=0;f<n;f++)Cr(i,Q+f,t)&&(m[D*2]=c[(B+f)*2],m[D*2+1]=c[(B+f)*2+1],D++)}else for(let m=0;m<n;m++)Cr(i,Q+m,t)&&(u[D++]=s[B+m]);else{let m=g?c=>Cr(i,Q+c,t):c=>{let f=A.iget(c);if(t){let y=f;return y.re!==0||y.im!==0}return!!f};if(L(e)){let c=u;for(let f=0;f<n;f++)m(f)&&(c[D++]=r.iget(f))}else if(o){let c=u;for(let f=0;f<n;f++)if(m(f)){let y=r.iget(f);c[D*2]=y.re,c[D*2+1]=y.im,D++}}else for(let c=0;c<n;c++)m(c)&&(u[D++]=r.iget(c))}return E}function vg(A,r){let I=A.shape,e=I.length,t=A.data,o=A.size,n=A.offset,g=A.strides,i=k(A.dtype),Q=A.isCContiguous;if(r===void 0){let c=jS(A);if(c!==null)return c;let f=0;if(Q)for(let y=0;y<o;y++)Cr(t,n+y,i)&&f++;else for(let y=0;y<o;y++){let l=A.iget(y);if(i){let h=l;(h.re!==0||h.im!==0)&&f++}else l!==0&&l!==BigInt(0)&&f++}return f}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 s=Array.from(I).filter((c,f)=>f!==a);if(s.length===0)return vg(A);let B=d.zeros(s,"int32"),C=B.data,E=I[a],u=s.reduce((c,f)=>c*f,1),{baseOffsets:D,axisStride:m}=gA(I,g,n,a,u);for(let c=0;c<u;c++){let f=0,y=D[c];for(let l=0;l<E;l++)Cr(t,y,i)&&f++,y+=m;C[c]=f}return B}function Un(A,r=-1){return R(Iq(S(A),r))}function Ln(A,r=-1){return R(eq(S(A),r))}function xE(A){return R(tq(A.map(r=>S(r))))}function Hn(A,r,I=-1){return R(oq(S(A),r,I))}function _n(A,r,I=-1){return R(nq(S(A),r,I))}function JE(A){return R(iq(S(A)))}function Yn(A){return dr(ME(S(A)))}function vn(A){return R(gq(S(A)))}function UE(A){return R(Qq(S(A)))}function LE(A,r,I){let e=aq(S(A),r?S(r):void 0,I?S(I):void 0);return Array.isArray(e)?dr(e):R(e)}function Xn(A,r,I="left"){return R(sq(S(A),S(r),I))}function HE(A,r){return R(Bq(S(A),S(r)))}function _E(A,r){if(Array.isArray(r)){let e=S(A).ndim,o=[...r.map(g=>g<0?e+g:g)].sort((g,i)=>i-g),n=S(A);for(let g of o){let i=vg(n,g);if(typeof i=="number")return i;n=i}return R(n)}let I=vg(S(A),r);return typeof I=="number"?I:R(I)}var dY="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",Tn=null;function Xg(){if(Tn)return Tn;let A=atob(dY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Tn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Tn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Tn}function YE(A,r,I,e){Xg().exports.bitwise_and_i64(A,r,I,e)}function vE(A,r,I,e){Xg().exports.bitwise_and_i32(A,r,I,e)}function XE(A,r,I,e){Xg().exports.bitwise_and_i16(A,r,I,e)}function TE(A,r,I,e){Xg().exports.bitwise_and_i8(A,r,I,e)}var bY=64,pY={int64:YE,uint64:YE,int32:vE,uint32:vE,int16:XE,uint16:XE,int8:TE,uint8:TE},wY={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Cq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<bY*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=pY[e],o=wY[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,s=r.offset,B=A.data.subarray(a,a+I),C=r.data.subarray(s,s+I),E=q(B),u=q(C),D=_(Q);t(E,u,D,I);let m=v(D,I,o);return d.fromData(m,Array.from(A.shape),e)}var NY="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADBQQAAAAABgkBfwFBgIDAAAsHRAQOYml0d2lzZV9vcl9pNjQAAA5iaXR3aXNlX29yX2kzMgABDmJpdHdpc2Vfb3JfaTE2AAINYml0d2lzZV9vcl9pOAADCp8QBI0EAQd/AkACQCADQX5xIgQNAEEAIQUMAQsCQAJAIARBf2oiBkEBRw0AQQAhBQwBCyAGQQF2QQFqQX5xIgdBAXQhBSACIQQgASEIIAAhCQNAIAQgCP0AAwAgCf0AAwD9UP0LAwAgBEEQaiAIQRBq/QADACAJQRBq/QADAP1Q/QsDACAEQSBqIQQgCEEgaiEIIAlBIGohCSAHQX5qIgcNAAsLIAZBAnENACACIAVBA3QiBGogASAEav0AAwAgACAEav0AAwD9UP0LAwAgBUECaiEFCwJAIAMgBU0NAAJAIAMgBWsiBkEISQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgASAFQQN0IglqIQQgACAJaiEIIAIgCWohCSAFIAZBfnEiCmohBSAKIQcDQCAJIAT9AAMAIAj9AAMA/VD9CwMAIARBEGohBCAIQRBqIQggCUEQaiEJIAdBfmoiBw0ACyAGIApGDQELIAVBAWohBAJAIAMgBWtBAXFFDQAgAiAFQQN0IghqIAEgCGopAwAgACAIaikDAIQ3AwAgBCEFCyADIARGDQAgAyAFayEHIAIgBUEDdCIJaiEEIAAgCWohCCABIAlqIQkDQCAEIAkpAwAgCCkDAIQ3AwAgBEEIaiAJQQhqKQMAIAhBCGopAwCENwMAIARBEGohBCAIQRBqIQggCUEQaiEJIAdBfmoiBw0ACwsLkQQBB38CQAJAIANBfHEiBA0AQQAhBQwBCwJAAkAgBEF/aiIGQQNHDQBBACEFDAELIAZBAnZBAWpB/v///wdxIgdBAnQhBSACIQQgASEIIAAhCQNAIAQgCP0AAgAgCf0AAgD9UP0LAgAgBEEQaiAIQRBq/QACACAJQRBq/QACAP1Q/QsCACAEQSBqIQQgCEEgaiEIIAlBIGohCSAHQX5qIgcNAAsLIAZBBHENACACIAVBAnQiBGogASAEav0AAgAgACAEav0AAgD9UP0LAgAgBUEEaiEFCwJAIAMgBU0NAAJAIAMgBWsiBkEISQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgASAFQQJ0IglqIQQgACAJaiEIIAIgCWohCSAFIAZBfHEiCmohBSAKIQcDQCAJIAT9AAIAIAj9AAIA/VD9CwIAIARBEGohBCAIQRBqIQggCUEQaiEJIAdBfGoiBw0ACyAGIApGDQELIAVBAWohBAJAIAMgBWtBAXFFDQAgAiAFQQJ0IghqIAEgCGooAgAgACAIaigCAHI2AgAgBCEFCyADIARGDQAgAyAFayEHIAIgBUECdCIJaiEEIAAgCWohCCABIAlqIQkDQCAEIAkoAgAgCCgCAHI2AgAgBEEEaiAJQQRqKAIAIAhBBGooAgByNgIAIARBCGohBCAIQQhqIQggCUEIaiEJIAdBfmoiBw0ACwsLkQQBB38CQAJAIANBeHEiBA0AQQAhBQwBCwJAAkAgBEF/aiIGQQdHDQBBACEFDAELIAZBA3ZBAWpB/v///wNxIgdBA3QhBSACIQQgASEIIAAhCQNAIAQgCP0AAQAgCf0AAQD9UP0LAQAgBEEQaiAIQRBq/QABACAJQRBq/QABAP1Q/QsBACAEQSBqIQQgCEEgaiEIIAlBIGohCSAHQX5qIgcNAAsLIAZBCHENACACIAVBAXQiBGogASAEav0AAQAgACAEav0AAQD9UP0LAQAgBUEIaiEFCwJAIAMgBU0NAAJAIAMgBWsiBkEISQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgASAFQQF0IglqIQQgACAJaiEIIAIgCWohCSAFIAZBeHEiCmohBSAKIQcDQCAJIAT9AAEAIAj9AAEA/VD9CwEAIARBEGohBCAIQRBqIQggCUEQaiEJIAdBeGoiBw0ACyAGIApGDQELIAVBAWohBAJAIAMgBWtBAXFFDQAgAiAFQQF0IghqIAEgCGovAQAgACAIai8BAHI7AQAgBCEFCyADIARGDQAgAyAFayEHIAIgBUEBdCIJaiEEIAAgCWohCCABIAlqIQkDQCAEIAkvAQAgCC8BAHI7AQAgBEECaiAJQQJqLwEAIAhBAmovAQByOwEAIARBBGohBCAIQQRqIQggCUEEaiEJIAdBfmoiBw0ACwsL5wMBB38CQAJAIANBcHEiBA0AQQAhBAwBCwJAAkAgBEF/aiIFQQ9HDQBBACEEDAELIAVBBHZBAWpB/v///wFxIQZBACEEA0AgAiAEaiIHIAEgBGoiCP0AAAAgACAEaiIJ/QAAAP1Q/QsAACAHQRBqIAhBEGr9AAAAIAlBEGr9AAAA/VD9CwAAIARBIGohBCAGQX5qIgYNAAsLIAVBEHENACACIARqIAEgBGr9AAAAIAAgBGr9AAAA/VD9CwAAIARBEGohBAsCQCADIARNDQACQCADIARrIgVBEEkNACACIABrQRBJDQAgAiABa0EQSQ0AIAEgBGohBiAAIARqIQcgAiAEaiEIIAQgBUFwcSIKaiEEIAohCQNAIAggBv0AAAAgB/0AAAD9UP0LAAAgBkEQaiEGIAdBEGohByAIQRBqIQggCUFwaiIJDQALIAUgCkYNAQsgBEEBaiEGAkAgAyAEa0EBcUUNACACIARqIAEgBGotAAAgACAEai0AAHI6AAAgBiEECyADIAZGDQADQCACIARqIgYgASAEaiIHLQAAIAAgBGoiCC0AAHI6AAAgBkEBaiAHQQFqLQAAIAhBAWotAAByOgAAIAJBAmohAiAAQQJqIQAgAUECaiEBIAQgA0F+aiIDRw0ACwsL",Pn=null;function Tg(){if(Pn)return Pn;let A=atob(NY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Pn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Pn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Pn}function PE(A,r,I,e){Tg().exports.bitwise_or_i64(A,r,I,e)}function KE(A,r,I,e){Tg().exports.bitwise_or_i32(A,r,I,e)}function VE(A,r,I,e){Tg().exports.bitwise_or_i16(A,r,I,e)}function WE(A,r,I,e){Tg().exports.bitwise_or_i8(A,r,I,e)}var FY=64,SY={int64:PE,uint64:PE,int32:KE,uint32:KE,int16:VE,uint16:VE,int8:WE,uint8:WE},GY={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Eq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<FY*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=SY[e],o=GY[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,s=r.offset,B=A.data.subarray(a,a+I),C=r.data.subarray(s,s+I),E=q(B),u=q(C),D=_(Q);t(E,u,D,I);let m=v(D,I,o);return d.fromData(m,Array.from(A.shape),e)}var RY="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",Kn=null;function Pg(){if(Kn)return Kn;let A=atob(RY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Kn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Kn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Kn}function OE(A,r,I,e){Pg().exports.bitwise_xor_i64(A,r,I,e)}function ZE(A,r,I,e){Pg().exports.bitwise_xor_i32(A,r,I,e)}function zE(A,r,I,e){Pg().exports.bitwise_xor_i16(A,r,I,e)}function jE(A,r,I,e){Pg().exports.bitwise_xor_i8(A,r,I,e)}var kY=64,qY={int64:OE,uint64:OE,int32:ZE,uint32:ZE,int16:zE,uint16:zE,int8:jE,uint8:jE},MY={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function uq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<kY*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=qY[e],o=MY[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,s=r.offset,B=A.data.subarray(a,a+I),C=r.data.subarray(s,s+I),E=q(B),u=q(C),D=_(Q);t(E,u,D,I);let m=v(D,I,o);return d.fromData(m,Array.from(A.shape),e)}var xY="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",Vn=null;function Kg(){if(Vn)return Vn;let A=atob(xY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Vn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Vn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Vn}function $E(A,r,I){Kg().exports.bitwise_not_i64(A,r,I)}function Au(A,r,I){Kg().exports.bitwise_not_i32(A,r,I)}function ru(A,r,I){Kg().exports.bitwise_not_i16(A,r,I)}function Iu(A,r,I){Kg().exports.bitwise_not_i8(A,r,I)}var JY=64,UY={int64:$E,uint64:$E,int32:Au,uint32:Au,int16:ru,uint16:ru,int8:Iu,uint8:Iu},LY={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function cq(A){if(!A.isCContiguous)return null;let r=A.size;if(r<JY*Y.thresholdMultiplier)return null;let I=A.dtype,e=UY[I],t=LY[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),s=_(g);e(a,s,r);let B=v(s,r,t);return d.fromData(B,Array.from(A.shape),I)}var HY="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",Wn=null;function II(){if(Wn)return Wn;let A=atob(HY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Wn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Wn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Wn}function eu(A,r,I,e){II().exports.left_shift_i64(A,r,I,e)}function tu(A,r,I,e){II().exports.left_shift_scalar_i64(A,r,I,BigInt(Math.round(e)))}function ou(A,r,I,e){II().exports.left_shift_i32(A,r,I,e)}function nu(A,r,I,e){II().exports.left_shift_scalar_i32(A,r,I,e)}function iu(A,r,I,e){II().exports.left_shift_i16(A,r,I,e)}function gu(A,r,I,e){II().exports.left_shift_scalar_i16(A,r,I,e)}function Qu(A,r,I,e){II().exports.left_shift_i8(A,r,I,e)}function au(A,r,I,e){II().exports.left_shift_scalar_i8(A,r,I,e)}var fq=64,_Y={int64:eu,uint64:eu,int32:ou,uint32:ou,int16:iu,uint16:iu,int8:Qu,uint8:Qu},YY={int64:tu,uint64:tu,int32:nu,uint32:nu,int16:gu,uint16:gu,int8:au,uint8:au},Dq={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function mq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<fq*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=_Y[e],o=Dq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,s=r.offset,B=A.data.subarray(a,a+I),C=r.data.subarray(s,s+I),E=q(B),u=q(C),D=_(Q);t(E,u,D,I);let m=v(D,I,o);return d.fromData(m,Array.from(A.shape),e)}function yq(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<fq*Y.thresholdMultiplier)return null;let e=A.dtype,t=YY[e],o=Dq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),s=q(a),B=_(i);t(s,B,I,r);let C=v(B,I,o);return d.fromData(C,Array.from(A.shape),e)}var vY="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",On=null;function TA(){if(On)return On;let A=atob(vY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);On=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=On.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),On}function lq(A,r,I,e){TA().exports.right_shift_i64(A,r,I,e)}function hq(A,r,I,e){TA().exports.right_shift_scalar_i64(A,r,I,BigInt(Math.round(e)))}function dq(A,r,I,e){TA().exports.right_shift_i32(A,r,I,e)}function bq(A,r,I,e){TA().exports.right_shift_scalar_i32(A,r,I,e)}function pq(A,r,I,e){TA().exports.right_shift_i16(A,r,I,e)}function wq(A,r,I,e){TA().exports.right_shift_scalar_i16(A,r,I,e)}function Nq(A,r,I,e){TA().exports.right_shift_i8(A,r,I,e)}function Fq(A,r,I,e){TA().exports.right_shift_scalar_i8(A,r,I,e)}function Sq(A,r,I,e){TA().exports.right_shift_u64(A,r,I,e)}function Gq(A,r,I,e){TA().exports.right_shift_scalar_u64(A,r,I,BigInt(Math.round(e)))}function Rq(A,r,I,e){TA().exports.right_shift_u32(A,r,I,e)}function kq(A,r,I,e){TA().exports.right_shift_scalar_u32(A,r,I,e)}function qq(A,r,I,e){TA().exports.right_shift_u16(A,r,I,e)}function Mq(A,r,I,e){TA().exports.right_shift_scalar_u16(A,r,I,e)}function xq(A,r,I,e){TA().exports.right_shift_u8(A,r,I,e)}function Jq(A,r,I,e){TA().exports.right_shift_scalar_u8(A,r,I,e)}var Uq=64,XY={int64:lq,uint64:Sq,int32:dq,uint32:Rq,int16:pq,uint16:qq,int8:Nq,uint8:xq},TY={int64:hq,uint64:Gq,int32:bq,uint32:kq,int16:wq,uint16:Mq,int8:Fq,uint8:Jq},Lq={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Hq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Uq*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=XY[e],o=Lq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,s=r.offset,B=A.data.subarray(a,a+I),C=r.data.subarray(s,s+I),E=q(B),u=q(C),D=_(Q);t(E,u,D,I);let m=v(D,I,o);return d.fromData(m,Array.from(A.shape),e)}function _q(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Uq*Y.thresholdMultiplier)return null;let e=A.dtype,t=TY[e],o=Lq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),s=q(a),B=_(i);t(s,B,I,r);let C=v(B,I,o);return d.fromData(C,Array.from(A.shape),e)}var PY="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",Zn=null;function eI(){if(Zn)return Zn;let A=atob(PY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Zn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Zn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Zn}function Yq(A,r,I){eI().exports.bitwise_count_i64(A,r,I)}function vq(A,r,I){eI().exports.bitwise_count_u64(A,r,I)}function Xq(A,r,I){eI().exports.bitwise_count_i32(A,r,I)}function Tq(A,r,I){eI().exports.bitwise_count_u32(A,r,I)}function Pq(A,r,I){eI().exports.bitwise_count_i16(A,r,I)}function Kq(A,r,I){eI().exports.bitwise_count_u16(A,r,I)}function Vq(A,r,I){eI().exports.bitwise_count_i8(A,r,I)}function Wq(A,r,I){eI().exports.bitwise_count_u8(A,r,I)}var KY=64,VY={int64:Yq,uint64:vq,int32:Xq,uint32:Tq,int16:Pq,uint16:Kq,int8:Vq,uint8:Wq},WY={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Oq(A){if(!A.isCContiguous)return null;let r=A.size;if(r<KY*Y.thresholdMultiplier)return null;let I=A.dtype,e=VY[I],t=WY[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),s=_(g);e(a,s,r);let B=v(s,r,Uint8Array);return d.fromData(B,Array.from(A.shape),"uint8")}function Er(A,r){if(!pA(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 zn(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,e)=>I===r.shape[e])}function jq(A,r){if(Er(A.dtype,"bitwise_and"),typeof r=="number")return ZY(A,r);if(Er(r.dtype,"bitwise_and"),zn(A,r)){let I=Cq(A,r);return I||OY(A,r)}return yA(A,r,(I,e)=>I&e,"bitwise_and")}function OY(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;if(!L(A.dtype)||!L(r.dtype))for(let B=0;B<t;B++){let C=typeof o[g+B]=="bigint"?o[g+B]:BigInt(Math.round(Number(o[g+B]))),E=typeof n[i+B]=="bigint"?n[i+B]:BigInt(Math.round(Number(n[i+B])));a[B]=C&E}else{let B=o,C=n;for(let E=0;E<t;E++)a[E]=B[g+E]&C[i+E]}}else for(let a=0;a<t;a++)Q[a]=o[g+a]&n[i+a];return e}function ZY(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,s=BigInt(Math.round(r));if(g){let B=t;if(o===0)for(let C=0;C<n;C++)a[C]=B[C]&s;else for(let C=0;C<n;C++)a[C]=B[o+C]&s}else for(let B=0;B<n;B++)a[B]=A.iget(B)&s}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]&r;else for(let a=0;a<n;a++)Q[a]=t[o+a]&r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))&r;return i}function $q(A,r){if(Er(A.dtype,"bitwise_or"),typeof r=="number")return jY(A,r);if(Er(r.dtype,"bitwise_or"),zn(A,r)){let I=Eq(A,r);return I||zY(A,r)}return yA(A,r,(I,e)=>I|e,"bitwise_or")}function zY(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;if(!L(A.dtype)||!L(r.dtype))for(let B=0;B<t;B++){let C=typeof o[g+B]=="bigint"?o[g+B]:BigInt(Math.round(Number(o[g+B]))),E=typeof n[i+B]=="bigint"?n[i+B]:BigInt(Math.round(Number(n[i+B])));a[B]=C|E}else{let B=o,C=n;for(let E=0;E<t;E++)a[E]=B[g+E]|C[i+E]}}else for(let a=0;a<t;a++)Q[a]=o[g+a]|n[i+a];return e}function jY(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,s=BigInt(Math.round(r));if(g){let B=t;if(o===0)for(let C=0;C<n;C++)a[C]=B[C]|s;else for(let C=0;C<n;C++)a[C]=B[o+C]|s}else for(let B=0;B<n;B++)a[B]=A.iget(B)|s}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]|r;else for(let a=0;a<n;a++)Q[a]=t[o+a]|r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))|r;return i}function AM(A,r){if(Er(A.dtype,"bitwise_xor"),typeof r=="number")return A6(A,r);if(Er(r.dtype,"bitwise_xor"),zn(A,r)){let I=uq(A,r);return I||$Y(A,r)}return yA(A,r,(I,e)=>I^e,"bitwise_xor")}function $Y(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;if(!L(A.dtype)||!L(r.dtype))for(let B=0;B<t;B++){let C=typeof o[g+B]=="bigint"?o[g+B]:BigInt(Math.round(Number(o[g+B]))),E=typeof n[i+B]=="bigint"?n[i+B]:BigInt(Math.round(Number(n[i+B])));a[B]=C^E}else{let B=o,C=n;for(let E=0;E<t;E++)a[E]=B[g+E]^C[i+E]}}else for(let a=0;a<t;a++)Q[a]=o[g+a]^n[i+a];return e}function A6(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,s=BigInt(Math.round(r));if(g){let B=t;if(o===0)for(let C=0;C<n;C++)a[C]=B[C]^s;else for(let C=0;C<n;C++)a[C]=B[o+C]^s}else for(let B=0;B<n;B++)a[B]=A.iget(B)^s}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]^r;else for(let a=0;a<n;a++)Q[a]=t[o+a]^r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))^r;return i}function Bu(A){Er(A.dtype,"bitwise_not");let r=cq(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q;if(g){let s=t;if(o===0)for(let B=0;B<n;B++)a[B]=~s[B];else for(let B=0;B<n;B++)a[B]=~s[o+B]}else for(let s=0;s<n;s++)a[s]=~A.iget(s)}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=~t[a];else for(let a=0;a<n;a++)Q[a]=~t[o+a];else for(let a=0;a<n;a++)Q[a]=~Number(A.iget(a));return i}function rM(A){return Bu(A)}function IM(A,r){if(Er(A.dtype,"left_shift"),typeof r=="number")return Zq(A,r);if(Er(r.dtype,"left_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let I=Number(r.iget(0)),e=yq(A,I);return e||Zq(A,I)}if(zn(A,r)){let I=mq(A,r);return I||r6(A,r)}return yA(A,r,(I,e)=>I<<e,"left_shift")}function r6(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;for(let s=0;s<t;s++){let B=typeof o[g+s]=="bigint"?o[g+s]:BigInt(Math.round(Number(o[g+s]))),C=typeof n[i+s]=="bigint"?n[i+s]:BigInt(Math.round(Number(n[i+s])));a[s]=B<<C}}else for(let a=0;a<t;a++)Q[a]=o[g+a]<<n[i+a];return e}function Zq(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,s=BigInt(Math.round(r));if(g){let B=t;if(o===0)for(let C=0;C<n;C++)a[C]=B[C]<<s;else for(let C=0;C<n;C++)a[C]=B[o+C]<<s}else for(let B=0;B<n;B++)a[B]=A.iget(B)<<s}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]<<r;else for(let a=0;a<n;a++)Q[a]=t[o+a]<<r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))<<r;return i}function eM(A,r){if(Er(A.dtype,"right_shift"),typeof r=="number")return zq(A,r);if(Er(r.dtype,"right_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let I=Number(r.iget(0)),e=_q(A,I);return e||zq(A,I)}if(zn(A,r)){let I=Hq(A,r);return I||I6(A,r)}return yA(A,r,(I,e)=>I>>e,"right_shift")}function I6(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;for(let s=0;s<t;s++){let B=typeof o[g+s]=="bigint"?o[g+s]:BigInt(Math.round(Number(o[g+s]))),C=typeof n[i+s]=="bigint"?n[i+s]:BigInt(Math.round(Number(n[i+s])));a[s]=B>>C}}else for(let a=0;a<t;a++)Q[a]=o[g+a]>>n[i+a];return e}function zq(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,s=BigInt(Math.round(r));if(g){let B=t;if(o===0)for(let C=0;C<n;C++)a[C]=B[C]>>s;else for(let C=0;C<n;C++)a[C]=B[o+C]>>s}else for(let B=0;B<n;B++)a[B]=A.iget(B)>>s}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]>>r;else for(let a=0;a<n;a++)Q[a]=t[o+a]>>r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))>>r;return i}function tM(A,r=-1,I="big"){let e=Array.from(A.shape),t=e.length;if(r<0&&(r=t+r),r<0||r>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let o=e[r],n=Math.ceil(o/8),g=[...e];g[r]=n;let i=d.zeros(g,"uint8"),Q=i.data,a=A.offset,s=A.isCContiguous;if(t===1){for(let c=0;c<n;c++){let f=0;for(let y=0;y<8;y++){let l=c*8+y;if(l<o){let h=s?Number(A.data[a+l])!==0?1:0:Number(A.iget(l))!==0?1:0;I==="big"?f|=h<<7-y:f|=h<<y}}Q[c]=f}return i}let B=e.slice(0,r),C=e.slice(r+1),E=B.reduce((c,f)=>c*f,1),u=C.reduce((c,f)=>c*f,1),D=Vg(e),m=Vg(g);for(let c=0;c<E;c++)for(let f=0;f<u;f++)for(let y=0;y<n;y++){let l=0;for(let w=0;w<8;w++){let N=y*8+w;if(N<o){let F=0,G=c;for(let X=0;X<r;X++){let P=X<r-1?B.slice(X+1).reduce((V,$)=>V*$,1):1,Z=Math.floor(G/P);G%=P,F+=Z*D[X]}F+=N*D[r];let x=f;for(let X=r+1;X<t;X++){let P=X<t-1?C.slice(X-r).reduce((V,$)=>V*$,1):1,Z=Math.floor(x/P);x%=P,F+=Z*D[X]}let H=s?Number(A.data[a+F])!==0?1:0:Number(A.iget(F))!==0?1:0;I==="big"?l|=H<<7-w:l|=H<<w}}let h=0,b=c;for(let w=0;w<r;w++){let N=w<r-1?B.slice(w+1).reduce((G,x)=>G*x,1):1,F=Math.floor(b/N);b%=N,h+=F*m[w]}h+=y*m[r];let p=f;for(let w=r+1;w<t;w++){let N=w<t-1?C.slice(w-r).reduce((G,x)=>G*x,1):1,F=Math.floor(p/N);p%=N,h+=F*m[w]}Q[h]=l}return i}function oM(A,r=-1,I=-1,e="big"){if(A.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");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 n=t[r],g=n*8;I>=0&&(g=I);let i=[...t];i[r]=g;let Q=d.zeros(i,"uint8"),a=Q.data,s=A.offset,B=A.isCContiguous;if(o===1){for(let f=0;f<n;f++){let y=Number(B?A.data[s+f]:A.iget(f));for(let l=0;l<8;l++){let h=f*8+l;if(h>=g)break;e==="big"?a[h]=y>>7-l&1:a[h]=y>>l&1}}return Q}let C=t.slice(0,r),E=t.slice(r+1),u=C.reduce((f,y)=>f*y,1),D=E.reduce((f,y)=>f*y,1),m=Vg(t),c=Vg(i);for(let f=0;f<u;f++)for(let y=0;y<D;y++)for(let l=0;l<n;l++){let h=0,b=f;for(let N=0;N<r;N++){let F=N<r-1?C.slice(N+1).reduce((x,H)=>x*H,1):1,G=Math.floor(b/F);b%=F,h+=G*m[N]}h+=l*m[r];let p=y;for(let N=r+1;N<o;N++){let F=N<o-1?E.slice(N-r).reduce((x,H)=>x*H,1):1,G=Math.floor(p/F);p%=F,h+=G*m[N]}let w=Number(B?A.data[s+h]:A.iget(h));for(let N=0;N<8;N++){let F=l*8+N;if(F>=g)break;let G=0;b=f;for(let x=0;x<r;x++){let H=x<r-1?C.slice(x+1).reduce((P,Z)=>P*Z,1):1,X=Math.floor(b/H);b%=H,G+=X*c[x]}G+=F*c[r],p=y;for(let x=r+1;x<o;x++){let H=x<o-1?E.slice(x-r).reduce((P,Z)=>P*Z,1):1,X=Math.floor(p/H);p%=H,G+=X*c[x]}e==="big"?a[G]=w>>7-N&1:a[G]=w>>N&1}}return Q}function Vg(A){let r=A.length,I=new Array(r),e=1;for(let t=r-1;t>=0;t--)I[t]=e,e*=A[t];return I}function nM(A){let r=A.dtype;Er(r,"bitwise_count");let I=Oq(A);if(I)return I;let e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,"uint8"),Q=i.data,a=r==="int8"||r==="int16"||r==="int32"||r==="int64";if(L(r))if(g){let s=t;if(o===0)for(let B=0;B<n;B++){let C=s[B];Q[B]=su(a&&C<0n?-C:C)}else for(let B=0;B<n;B++){let C=s[o+B];Q[B]=su(a&&C<0n?-C:C)}}else for(let s=0;s<n;s++){let B=A.iget(s);Q[s]=su(a&&B<0n?-B:B)}else if(a)if(g)if(o===0)for(let s=0;s<n;s++)Q[s]=re(Math.abs(t[s]));else for(let s=0;s<n;s++)Q[s]=re(Math.abs(t[o+s]));else for(let s=0;s<n;s++)Q[s]=re(Math.abs(Number(A.iget(s))));else{let s=r==="uint8"?255:r==="uint16"?65535:4294967295;if(g)if(o===0)for(let B=0;B<n;B++)Q[B]=re(t[B]&s);else for(let B=0;B<n;B++)Q[B]=re(t[o+B]&s);else for(let B=0;B<n;B++)Q[B]=re(Number(A.iget(B))&s)}return i}function re(A){A=A>>>0;let r=0;for(;A!==0;)A=A&A-1,r++;return r}function su(A){A<0n&&(A=BigInt.asUintN(64,A));let r=0;for(;A!==0n;)A=A&A-1n,r++;return r}function jn(A,r){let I=typeof r=="number"?r:S(r);return R(jq(S(A),I))}function $n(A,r){let I=typeof r=="number"?r:S(r);return R($q(S(A),I))}function Ai(A,r){let I=typeof r=="number"?r:S(r);return R(AM(S(A),I))}function ri(A){return R(Bu(S(A)))}function Ii(A){return R(rM(S(A)))}function ei(A,r){let I=typeof r=="number"?r:S(r);return R(IM(S(A),I))}function ti(A,r){let I=typeof r=="number"?r:S(r);return R(eM(S(A),I))}function Cu(A,r,I){return R(tM(S(A),r,I))}function Eu(A,r,I,e){return R(oM(S(A),r,I,e))}function uu(A){return R(nM(S(A)))}function Wg(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 iM(A,r=0){eA(A.dtype,"around","Rounding is not defined for complex numbers.");let I=A.dtype,e=Array.from(A.shape),t=A.size,o=I==="float32"?"float32":"float64",n=d.zeros(e,o),g=n.data,i=Math.pow(10,r);if(A.isCContiguous){let Q=A.data,a=A.offset;for(let s=0;s<t;s++){let B=Number(Q[a+s]);g[s]=Wg(B*i)/i}}else for(let Q=0;Q<t;Q++){let a=Number(A.iget(Q));g[Q]=Wg(a*i)/i}return n}function gM(A){eA(A.dtype,"ceil","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.ceil(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.ceil(Number(A.iget(g)));return o}function QM(A){eA(A.dtype,"fix","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.trunc(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.trunc(Number(A.iget(g)));return o}function aM(A){eA(A.dtype,"floor","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.floor(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.floor(Number(A.iget(g)));return o}function sM(A){eA(A.dtype,"rint","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Wg(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Wg(Number(A.iget(g)));return o}function BM(A){eA(A.dtype,"trunc","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.trunc(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.trunc(Number(A.iget(g)));return o}function Ie(A,r=0){return R(iM(S(A),r))}var cu=Ie;function oi(A){return R(gM(S(A)))}function ni(A){return R(QM(S(A)))}function ii(A){return R(aM(S(A)))}function gi(A){return R(sM(S(A)))}function Qi(A){return R(BM(S(A)))}function fu(A,r,I,e){let t=isNaN(A)||isNaN(r),o=isNaN(I)||isNaN(e);return t&&o?0:t?1:o||A<I?-1:A>I?1:r<e?-1:r>e?1:0}function o6(A,r,I,e){let t=isNaN(A)||isNaN(r),o=isNaN(I)||isNaN(e);return t&&o?!0:t||o?!1:A===I&&r===e}function Ar(A,r=!1,I=!1,e=!1,t){if(t!==void 0){let h=Array.from(A.shape),b=h.length,p=t<0?b+t:t;if(p<0||p>=b)throw new Error(`unique: axis ${t} out of bounds for array of dimension ${b}`);let w=h[p],N=[];for(let P=0;P<w;P++){let Z=[],V=h.filter((O,z)=>z!==p),$=V.reduce((O,z)=>O*z,1);for(let O=0;O<$;O++){let z=O,rA=new Array(V.length);for(let CA=V.length-1;CA>=0;CA--)rA[CA]=z%V[CA],z=Math.floor(z/V[CA]);let oA=[],iA=0;for(let CA=0;CA<b;CA++)oA.push(CA===p?P:rA[iA++]);Z.push(Number(A.get(...oA)))}N.push(Z.join(","))}let F=N.map((P,Z)=>({key:P,i:Z}));F.sort((P,Z)=>P.key<Z.key?-1:P.key>Z.key?1:0);let G=[],x;for(let{key:P,i:Z}of F)P!==x&&(G.push(Z),x=P);let H=h.map((P,Z)=>Z===p?G.length:P),X=d.zeros(H,A.dtype);for(let P=0;P<G.length;P++){let Z=G[P],V=h.filter((O,z)=>z!==p),$=V.reduce((O,z)=>O*z,1);for(let O=0;O<$;O++){let z=O,rA=new Array(V.length);for(let dA=V.length-1;dA>=0;dA--)rA[dA]=z%V[dA],z=Math.floor(z/V[dA]);let oA=[],iA=[],CA=0;for(let dA=0;dA<b;dA++)oA.push(dA===p?Z:rA[CA]),iA.push(dA===p?P:rA[CA]),dA!==p&&CA++;X.set(iA,Number(A.get(...oA)))}}return X}let o=A.dtype,n=A.size,g=A.data,i=A.offset;if(k(o)){let h=g,b=[];for(let O=0;O<n;O++)b.push({re:h[(i+O)*2],im:h[(i+O)*2+1],index:O});b.sort((O,z)=>fu(O.re,O.im,z.re,z.im));let p=[],w=[],N=new Array(n),F=[],G,x,H=0;for(let O=0;O<b.length;O++){let{re:z,im:rA,index:oA}=b[O];G===void 0||!o6(z,rA,G,x)?(G!==void 0&&F.push(H),p.push({re:z,im:rA}),w.push(oA),H=1,G=z,x=rA):H++}H>0&&F.push(H);let X=new Map,P=-1;for(let O=0;O<p.length;O++){let{re:z,im:rA}=p[O];isNaN(z)||isNaN(rA)?P=O:X.set(`${z},${rA}`,O)}for(let O=0;O<n;O++){let z=h[(i+O)*2],rA=h[(i+O)*2+1];isNaN(z)||isNaN(rA)?N[O]=P:N[O]=X.get(`${z},${rA}`)}let Z=d.zeros([p.length],o),V=Z.data;for(let O=0;O<p.length;O++)V[O*2]=p[O].re,V[O*2+1]=p[O].im;if(!r&&!I&&!e)return Z;let $={values:Z};if(r){let O=d.zeros([w.length],"int32"),z=O.data;for(let rA=0;rA<w.length;rA++)z[rA]=w[rA];$.indices=O}if(I){let O=d.zeros([N.length],"int32"),z=O.data;for(let rA=0;rA<N.length;rA++)z[rA]=N[rA];$.inverse=O}if(e){let O=d.zeros([F.length],"int32"),z=O.data;for(let rA=0;rA<F.length;rA++)z[rA]=F[rA];$.counts=O}return $}let Q=[];for(let h=0;h<n;h++)Q.push({value:Number(g[i+h]),index:h});Q.sort((h,b)=>isNaN(h.value)&&isNaN(b.value)?0:isNaN(h.value)?1:isNaN(b.value)?-1:h.value-b.value);let a=[],s=[],B=new Array(n),C=[],E,u=0;for(let h=0;h<Q.length;h++){let{value:b,index:p}=Q[h];E===void 0||isNaN(b)&&!isNaN(E)||!isNaN(b)&&isNaN(E)||!isNaN(b)&&!isNaN(E)&&b!==E?(E!==void 0&&C.push(u),a.push(b),s.push(p),u=1,E=b):u++}u>0&&C.push(u);let D=new Map,m=-1;for(let h=0;h<a.length;h++){let b=a[h];isNaN(b)?m=h:D.set(b,h)}for(let h=0;h<n;h++){let b=Number(g[i+h]);isNaN(b)?B[h]=m:B[h]=D.get(b)}let c=d.zeros([a.length],o),f=c.data,y=f instanceof BigInt64Array||f instanceof BigUint64Array;for(let h=0;h<a.length;h++)f[h]=y?BigInt(a[h]):a[h];if(!r&&!I&&!e)return c;let l={values:c};if(r){let h=d.zeros([s.length],"int32"),b=h.data;for(let p=0;p<s.length;p++)b[p]=s[p];l.indices=h}if(I){let h=d.zeros([B.length],"int32"),b=h.data;for(let p=0;p<B.length;p++)b[p]=B[p];l.inverse=h}if(e){let h=d.zeros([C.length],"int32"),b=h.data;for(let p=0;p<C.length;p++)b[p]=C[p];l.counts=h}return l}function Gr(A,r,I,e=0){if(I){let t=Number(A[(e+r)*2]),o=Number(A[(e+r)*2+1]);return`${t},${o}`}return String(Number(A[e+r]))}function CM(A,r){return Du(A,r)}function EM(A,r){let I=A.dtype,e=k(I),t=Ar(A),o=Ar(r),n=new Set;for(let a=0;a<o.size;a++)n.add(Gr(o.data,a,e));let g=[];for(let a=0;a<t.size;a++){let s=Gr(t.data,a,e);n.has(s)&&g.push(a)}if(e){let a=d.zeros([g.length],I),s=a.data,B=t.data;for(let C=0;C<g.length;C++){let E=g[C];s[C*2]=B[E*2],s[C*2+1]=B[E*2+1]}return a}let i=d.zeros([g.length],I),Q=i.data;for(let a=0;a<g.length;a++)Q[a]=t.data[g[a]];return i}function Du(A,r){let I=Array.from(A.shape),e=A.size,t=k(A.dtype),o=new Set;for(let i=0;i<r.size;i++)o.add(Gr(r.data,i,t,r.offset));let n=d.zeros(I,"bool"),g=n.data;for(let i=0;i<e;i++){let Q=Gr(A.data,i,t,A.offset);g[i]=o.has(Q)?1:0}return n}function uM(A,r){let I=A.dtype,e=k(I),t=Ar(A),o=new Set;for(let Q=0;Q<r.size;Q++)o.add(Gr(r.data,Q,e,r.offset));let n=[];for(let Q=0;Q<t.size;Q++){let a=Gr(t.data,Q,e);o.has(a)||n.push(Q)}if(e){let Q=d.zeros([n.length],I),a=Q.data,s=t.data;for(let B=0;B<n.length;B++){let C=n[B];a[B*2]=s[C*2],a[B*2+1]=s[C*2+1]}return Q}let g=d.zeros([n.length],I),i=g.data;for(let Q=0;Q<n.length;Q++)i[Q]=t.data[n[Q]];return g}function cM(A,r){let I=A.dtype,e=k(I),t=Ar(A),o=Ar(r),n=new Set,g=new Set;for(let C=0;C<t.size;C++)n.add(Gr(t.data,C,e));for(let C=0;C<o.size;C++)g.add(Gr(o.data,C,e));let i=[],Q=[];for(let C=0;C<t.size;C++){let E=Gr(t.data,C,e);g.has(E)||i.push(C)}for(let C=0;C<o.size;C++){let E=Gr(o.data,C,e);n.has(E)||Q.push(C)}if(e){let C=[],E=t.data,u=o.data;for(let c of i)C.push({re:E[c*2],im:E[c*2+1]});for(let c of Q)C.push({re:u[c*2],im:u[c*2+1]});C.sort((c,f)=>fu(c.re,c.im,f.re,f.im));let D=d.zeros([C.length],I),m=D.data;for(let c=0;c<C.length;c++)m[c*2]=C[c].re,m[c*2+1]=C[c].im;return D}let a=[];for(let C of i)a.push(Number(t.data[C]));for(let C of Q)a.push(Number(o.data[C]));a.sort((C,E)=>isNaN(C)&&isNaN(E)?0:isNaN(C)?1:isNaN(E)?-1:C-E);let s=d.zeros([a.length],I),B=s.data;for(let C=0;C<a.length;C++)B[C]=a[C];return s}function fM(A,r){let I=A.dtype,e=k(I),t=Ar(A),o=Ar(r),n=new Set,g=[];if(e){let s=t.data,B=o.data;for(let u=0;u<t.size;u++){let D=s[u*2],m=s[u*2+1],c=`${D},${m}`;n.has(c)||(n.add(c),g.push({re:D,im:m}))}for(let u=0;u<o.size;u++){let D=B[u*2],m=B[u*2+1],c=`${D},${m}`;n.has(c)||(n.add(c),g.push({re:D,im:m}))}g.sort((u,D)=>fu(u.re,u.im,D.re,D.im));let C=d.zeros([g.length],I),E=C.data;for(let u=0;u<g.length;u++)E[u*2]=g[u].re,E[u*2+1]=g[u].im;return C}let i=[];for(let s=0;s<t.size;s++){let B=Number(t.data[s]),C=String(B);n.has(C)||(n.add(C),i.push(B))}for(let s=0;s<o.size;s++){let B=Number(o.data[s]),C=String(B);n.has(C)||(n.add(C),i.push(B))}i.sort((s,B)=>isNaN(s)&&isNaN(B)?0:isNaN(s)?1:isNaN(B)?-1:s-B);let Q=d.zeros([i.length],I),a=Q.data;for(let s=0;s<i.length;s++)a[s]=i[s];return Q}function DM(A,r="fb"){let I=A.dtype,e=A.data,t=A.size,o=A.offset,n=k(I);if(t===0)return d.zeros([0],I);let g=C=>{if(n){let E=e[(o+C)*2],u=e[(o+C)*2+1];return E===0&&u===0}return Number(e[o+C])===0},i=0;if(r==="f"||r==="fb")for(;i<t&&g(i);)i++;let Q=t-1;if(r==="b"||r==="fb")for(;Q>=i&&g(Q);)Q--;if(i>Q)return d.zeros([0],I);let a=Q-i+1;if(n){let C=d.zeros([a],I),E=C.data;for(let u=0;u<a;u++)E[u*2]=e[(o+i+u)*2],E[u*2+1]=e[(o+i+u)*2+1];return C}let s=d.zeros([a],I),B=s.data;for(let C=0;C<a;C++)B[C]=e[o+i+C];return s}function mM(A){let I=Ar(A,!0,!0,!0);return{values:I.values,indices:I.indices,inverse_indices:I.inverse,counts:I.counts}}function yM(A){let I=Ar(A,!1,!1,!0);return{values:I.values,counts:I.counts}}function lM(A){let I=Ar(A,!1,!0,!1);return{values:I.values,inverse_indices:I.inverse}}function hM(A){return Ar(A)}function mu(A,r=!1,I=!1,e=!1,t){let o=Ar(S(A),r,I,e,t);return"values"in o?{values:R(o.values),indices:o.indices?R(o.indices):void 0,inverse:o.inverse?R(o.inverse):void 0,counts:o.counts?R(o.counts):void 0}:R(o)}function yu(A,r){return R(CM(S(A),S(r)))}function lu(A,r){return R(EM(S(A),S(r)))}function hu(A,r){return R(Du(S(A),S(r)))}function du(A,r){return R(uM(S(A),S(r)))}function bu(A,r){return R(cM(S(A),S(r)))}function pu(A,r){return R(fM(S(A),S(r)))}function wu(A,r){return R(DM(S(A),r))}function Nu(A){let r=mM(S(A));return{values:R(r.values),indices:R(r.indices),inverse_indices:R(r.inverse_indices),counts:R(r.counts)}}function Fu(A){let r=yM(S(A));return{values:R(r.values),counts:R(r.counts)}}function Su(A){let r=lM(S(A));return{values:R(r.values),inverse_indices:R(r.inverse_indices)}}function Gu(A){return R(hM(S(A)))}var i6="AGFzbQEAAAABCgFgBn9/f39/fwACDwEDZW52Bm1lbW9yeQIAEAMDAgAABgkBfwFBgIDAAAsHIQINY29ycmVsYXRlX2Y2NAAADWNvcnJlbGF0ZV9mMzIAAQqtCgKOBQQIfwJ7A38BfAJAIANBf2oiBiABaiIHRQ0AIANBA3QgAmoiA0F4aiEIIANBCGohCSAAIQpBACELA0ACQAJAQQAgCyIMIAZrIgMgAyAMSxsiA0EEaiAMQQFqIgsgASAMIAFJGyINTQ0A/QwAAAAAAAAAAAAAAAAAAAAAIg4hDwwBCyAMIAwgBiAMIAZJGyIDayEQIAkgA0EDdCIDayECIAogA2shEf0MAAAAAAAAAAAAAAAAAAAAACIPIQ4DQCAOIBFBEGr9AAMAIAL9AAMA/fIB/fABIQ4gDyAR/QADACACQXBq/QADAP3yAf3wASEPIBBBCGohEiACQSBqIQIgEUEgaiERIBBBBGoiAyEQIBIgDU0NAAsLAkACQCADQQJqIA1NDQAgAyESDAELIAggA0EDdCIRaiECIAAgEWohEQNAIA8gEf0AAwAgAv0AAwD98gH98AEhDyADQQRqIRAgAkEQaiECIBFBEGohESADQQJqIhIhAyAQIA1NDQALCyAOIA/98AEiD/0hACAP/SEBoCETAkAgEiANTw0AAkACQCANIBJrQQNxIhENACASIQIMAQsgEkEDdCEDIBIhAgNAIBMgACADaisDACAIIANqKwMAoqAhEyADQQhqIQMgAkEBaiECIBFBf2oiEQ0ACwsgEiANa0F8Sw0AIAJBA3QhAyANIAJrIRADQCATIAAgA2oiAisDACAIIANqIhErAwCioCACQQhqKwMAIBFBCGorAwCioCACQRBqKwMAIBFBEGorAwCioCACQRhqKwMAIBFBGGorAwCioCETIANBIGohAyAQQXxqIhANAAsLIAQgDEEDdGogEzkDACAIQXhqIQggCkEIaiEKIAsgB0cNAAsLC5oFBAh/AnsDfwF9AkAgA0F/aiIGIAFqIgdFDQAgA0ECdCACaiIDQXxqIQggA0EMaiEJIAAhCkEAIQsDQAJAAkBBACALIgwgBmsiAyADIAxLGyIDQQhqIAxBAWoiCyABIAwgAUkbIg1NDQD9DAAAAAAAAAAAAAAAAAAAAAAiDiEPDAELIAwgDCAGIAwgBkkbIgNrIRAgCSADQQJ0IgNrIQIgCiADayER/QwAAAAAAAAAAAAAAAAAAAAAIg8hDgNAIA4gEUEQav0AAgAgAv0AAgD95gH95AEhDiAPIBH9AAIAIAJBcGr9AAIA/eYB/eQBIQ8gEEEQaiESIAJBIGohAiARQSBqIREgEEEIaiIDIRAgEiANTQ0ACwsCQAJAIANBBGogDU0NACADIRIMAQsgCCADQQJ0IhFqIQIgACARaiERA0AgDyAR/QACACAC/QACAP3mAf3kASEPIANBCGohECACQRBqIQIgEUEQaiERIANBBGoiEiEDIBAgDU0NAAsLIA4gD/3kASIP/R8DIA/9HwIgD/0fACAP/R8BkpKSIRMCQCASIA1PDQACQAJAIA0gEmtBA3EiEQ0AIBIhAgwBCyASQQJ0IQMgEiECA0AgEyAAIANqKgIAIAggA2oqAgCUkiETIANBBGohAyACQQFqIQIgEUF/aiIRDQALCyASIA1rQXxLDQAgAkECdCEDIA0gAmshEANAIBMgACADaiICKgIAIAggA2oiESoCAJSSIAJBBGoqAgAgEUEEaioCAJSSIAJBCGoqAgAgEUEIaioCAJSSIAJBDGoqAgAgEUEMaioCAJSSIRMgA0EQaiEDIBBBfGoiEA0ACwsgBCAMQQJ0aiATOAIAIAhBfGohCCAKQQRqIQogCyAHRw0ACwsL",ai=null;function dM(){if(ai)return ai;let A=atob(i6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ai=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ai.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ai}function bM(A,r,I,e,t,o){dM().exports.correlate_f64(A,r,I,e,t,o)}function pM(A,r,I,e,t,o){dM().exports.correlate_f32(A,r,I,e,t,o)}var g6=32,Q6={float64:bM,float32:pM},a6={float64:Float64Array,float32:Float32Array};function wM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,e=r.size,t=I+e-1;if(t<g6*Y.thresholdMultiplier)return null;let o=A.dtype==="float32"&&r.dtype==="float32"?"float32":"float64",n=Q6[o],g=a6[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=I*i,a=e*i,s=t*i;J(Q+a+s),U();let B=A.offset,C=r.offset,E,u;if(A.dtype===o)E=A.data.subarray(B,B+I);else{let y=new g(I),l=A.data;for(let h=0;h<I;h++)y[h]=Number(l[B+h]);E=y}if(r.dtype===o)u=r.data.subarray(C,C+e);else{let y=new g(e),l=r.data;for(let h=0;h<e;h++)y[h]=Number(l[C+h]);u=y}let D=q(E),m=q(u),c=_(s);n(D,I,m,e,c,t);let f=v(c,t,g);return d.fromData(f,[t],o)}var s6="AGFzbQEAAAABCgFgBn9/f39/fwACDwEDZW52Bm1lbW9yeQIAEAMDAgAABgkBfwFBgIDAAAsHHwIMY29udm9sdmVfZjY0AAAMY29udm9sdmVfZjMyAAEKiQMCxgEDA38BfAR/AkAgA0F/aiIGIAFqIgdFDQBBACEIA0BEAAAAAAAAAAAhCQJAQQAgCCAGayIDIAMgCEsbIgogCEEBaiILIAEgCCABSRsiDE8NACAAIAggBiAIIAZJG0EDdCINayEDIAIgDWohDUQAAAAAAAAAACEJA0AgCSADKwMAIA0rAwCioCEJIANBCGohAyANQXhqIQ0gCkEBaiIKIAxJDQALCyAEIAhBA3RqIAk5AwAgAEEIaiEAIAshCCALIAdHDQALCwu+AQMDfwF9BH8CQCADQX9qIgYgAWoiB0UNAEEAIQgDQEMAAAAAIQkCQEEAIAggBmsiAyADIAhLGyIKIAhBAWoiCyABIAggAUkbIgxPDQAgACAIIAYgCCAGSRtBAnQiDWshAyACIA1qIQ1DAAAAACEJA0AgCSADKgIAIA0qAgCUkiEJIANBBGohAyANQXxqIQ0gCkEBaiIKIAxJDQALCyAEIAhBAnRqIAk4AgAgAEEEaiEAIAshCCALIAdHDQALCws=",si=null;function NM(){if(si)return si;let A=atob(s6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);si=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=si.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),si}function FM(A,r,I,e,t,o){NM().exports.convolve_f64(A,r,I,e,t,o)}function SM(A,r,I,e,t,o){NM().exports.convolve_f32(A,r,I,e,t,o)}var B6=32,C6={float64:FM,float32:SM},E6={float64:Float64Array,float32:Float32Array};function GM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,e=r.size,t=I+e-1;if(t<B6*Y.thresholdMultiplier)return null;let o=A.dtype==="float32"&&r.dtype==="float32"?"float32":"float64",n=C6[o],g=E6[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=I*i,a=e*i,s=t*i;J(Q+a+s),U();let B=A.offset,C=r.offset,E,u;if(A.dtype===o)E=A.data.subarray(B,B+I);else{let y=new g(I),l=A.data;for(let h=0;h<I;h++)y[h]=Number(l[B+h]);E=y}if(r.dtype===o)u=r.data.subarray(C,C+e);else{let y=new g(e),l=r.data;for(let h=0;h<e;h++)y[h]=Number(l[C+h]);u=y}let D=q(E),m=q(u),c=_(s);n(D,I,m,e,c,t);let f=v(c,t,g);return d.fromData(f,[t],o)}function RM(A,r,I=0){eA(A.dtype,"bincount","bincount requires integer input.");let e=A.data,t=A.size,o=0;for(let g=0;g<t;g++){let i=Number(e[g]);if(i<0||!Number.isInteger(i))throw new Error("'x' argument must contain non-negative integers");i>o&&(o=i)}let n=Math.max(o+1,I);if(r!==void 0){if(r.size!==t)throw new Error("weights array must have same length as x");let g=r.data,i=new Float64Array(n);for(let Q=0;Q<t;Q++){let a=Number(e[Q]);i[a]+=Number(g[Q])}return d.fromData(i,[n],"float64")}else{let g=new Float64Array(n);for(let i=0;i<t;i++){let Q=Number(e[i]);g[Q]++}return d.fromData(g,[n],"float64")}}function kM(A,r,I=!1){eA(A.dtype,"digitize","digitize requires real numbers."),eA(r.dtype,"digitize","digitize requires real numbers.");let e=A.data,t=r.data,o=A.size,n=r.size,g=new Float64Array(o),i=!0;n>1&&(i=Number(t[1])>=Number(t[0]));for(let Q=0;Q<o;Q++){let a=Number(e[Q]),s;if(i)I?s=u6(t,n,a):s=Bi(t,n,a);else if(I)for(s=0;s<n&&Number(t[s])>=a;)s++;else for(s=0;s<n&&Number(t[s])>a;)s++;g[Q]=s}return d.fromData(g,[...A.shape],"float64")}function u6(A,r,I){let e=0,t=r;for(;e<t;){let o=e+t>>>1;Number(A[o])<I?e=o+1:t=o}return e}function Bi(A,r,I){let e=0,t=r;for(;e<t;){let o=e+t>>>1;Number(A[o])<=I?e=o+1:t=o}return e}function qM(A,r=10,I,e=!1,t){eA(A.dtype,"histogram","histogram requires real numbers."),typeof r!="number"&&eA(r.dtype,"histogram","histogram requires real numbers.");let o=A.data,n=A.size,g;if(typeof r=="number"){let s,B;if(I)[s,B]=I;else{s=1/0,B=-1/0;for(let E=0;E<n;E++){let u=Number(o[E]);u<s&&(s=u),u>B&&(B=u)}s===B&&(s=s-.5,B=B+.5)}g=[];let C=(B-s)/r;for(let E=0;E<=r;E++)g.push(s+E*C)}else{let s=r.data;g=[];for(let B=0;B<r.size;B++)g.push(Number(s[B]))}let i=g.length-1,Q=new Float64Array(i),a=t?.data;for(let s=0;s<n;s++){let B=Number(o[s]),C=a?Number(a[s]):1,E=Bi(g,g.length,B)-1;if(!(E<0)){if(E>=i)if(B===g[i])E=i-1;else continue;Q[E]+=C}}if(e){let s=0;for(let B=0;B<i;B++)s+=Q[B];for(let B=0;B<i;B++){let C=g[B+1]-g[B];Q[B]=Q[B]/(s*C)}}return{hist:d.fromData(Q,[i],"float64"),bin_edges:d.fromData(new Float64Array(g),[g.length],"float64")}}function MM(A,r,I=10,e,t=!1,o){eA(A.dtype,"histogram2d","histogram2d requires real numbers."),eA(r.dtype,"histogram2d","histogram2d requires real numbers.");let n=A.data,g=r.data,i=A.size;if(r.size!==i)throw new Error("x and y must have the same length");let Q,a,s,B;if(typeof I=="number"?(s=I,B=I):Array.isArray(I)&&I.length===2?(I[0],s=I[0],B=I[1]):(s=10,B=10),typeof s=="number"){let m,c;if(e)[m,c]=e[0];else{m=1/0,c=-1/0;for(let y=0;y<i;y++){let l=Number(n[y]);l<m&&(m=l),l>c&&(c=l)}m===c&&(m-=.5,c+=.5)}Q=[];let f=(c-m)/s;for(let y=0;y<=s;y++)Q.push(m+y*f)}else{let m=s.data;Q=[];for(let c=0;c<s.size;c++)Q.push(Number(m[c]))}if(typeof B=="number"){let m,c;if(e)[m,c]=e[1];else{m=1/0,c=-1/0;for(let y=0;y<i;y++){let l=Number(g[y]);l<m&&(m=l),l>c&&(c=l)}m===c&&(m-=.5,c+=.5)}a=[];let f=(c-m)/B;for(let y=0;y<=B;y++)a.push(m+y*f)}else{let m=B.data;a=[];for(let c=0;c<B.size;c++)a.push(Number(m[c]))}let C=Q.length-1,E=a.length-1,u=new Float64Array(C*E),D=o?.data;for(let m=0;m<i;m++){let c=Number(n[m]),f=Number(g[m]),y=D?Number(D[m]):1,l=Bi(Q,Q.length,c)-1,h=Bi(a,a.length,f)-1;if(l<0||l>=C)if(c===Q[C]&&l===C)l=C-1;else continue;if(h<0||h>=E)if(f===a[E]&&h===E)h=E-1;else continue;u[l*E+h]+=y}if(t){let m=0;for(let c=0;c<u.length;c++)m+=u[c];for(let c=0;c<C;c++)for(let f=0;f<E;f++){let y=Q[c+1]-Q[c],l=a[f+1]-a[f],h=y*l;u[c*E+f]=u[c*E+f]/(m*h)}}return{hist:d.fromData(u,[C,E],"float64"),x_edges:d.fromData(new Float64Array(Q),[Q.length],"float64"),y_edges:d.fromData(new Float64Array(a),[a.length],"float64")}}function xM(A,r=10,I,e=!1,t){eA(A.dtype,"histogramdd","histogramdd requires real numbers.");let o=A.shape,n=A.data,g,i;if(o.length===1)g=o[0],i=1;else if(o.length===2)g=o[0],i=o[1];else throw new Error("sample must be 1D or 2D array");let Q;if(typeof r=="number")Q=new Array(i).fill(r);else if(Q=r,Q.length!==i)throw new Error("bins array length must match number of dimensions");let a=[];for(let m=0;m<i;m++){let c,f;if(I&&I[m])[c,f]=I[m];else{c=1/0,f=-1/0;for(let b=0;b<g;b++){let p=Number(i===1?n[b]:n[b*i+m]);p<c&&(c=p),p>f&&(f=p)}c===f&&(c-=.5,f+=.5)}let y=Q[m],l=[],h=(f-c)/y;for(let b=0;b<=y;b++)l.push(c+b*h);a.push(l)}let s=Q.slice(),B=s.reduce((m,c)=>m*c,1),C=new Float64Array(B),E=new Array(i);E[i-1]=1;for(let m=i-2;m>=0;m--)E[m]=E[m+1]*Q[m+1];let u=t?.data;for(let m=0;m<g;m++){let c=u?Number(u[m]):1,f=0,y=!1;for(let l=0;l<i;l++){let h=Number(i===1?n[m]:n[m*i+l]),b=a[l],p=Q[l],w=Bi(b,b.length,h)-1;if(w<0||w>=p)if(h===b[p]&&w===p)w=p-1;else{y=!0;break}f+=w*E[l]}y||(C[f]+=c)}if(e){let m=0;for(let f=0;f<B;f++)m+=C[f];let c=new Float64Array(B);for(let f=0;f<B;f++){let y=1,l=f;for(let h=0;h<i;h++){let b=Math.floor(l/E[h])%Q[h],p=a[h];y*=p[b+1]-p[b]}c[f]=y}for(let f=0;f<B;f++)C[f]=C[f]/(m*c[f])}let D=a.map(m=>d.fromData(new Float64Array(m),[m.length],"float64"));return{hist:d.fromData(C,s,"float64"),edges:D}}function ku(A,r,I="full"){let e=A.data,t=r.data,o=A.size,n=r.size,g=k(A.dtype)||k(r.dtype),i=o+n-1;if(g){let s=new Float64Array(i),B=new Float64Array(i),C=k(A.dtype),E=k(r.dtype);for(let D=0;D<i;D++){let m=0,c=0,f=D-n+1;for(let y=0;y<o;y++){let l=y-f;if(l>=0&&l<n){let h,b,p,w;C?(h=e[y*2],b=e[y*2+1]):(h=Number(e[y]),b=0),E?(p=t[l*2],w=t[l*2+1]):(p=Number(t[l]),w=0),m+=h*p+b*w,c+=b*p-h*w}}s[D]=m,B[D]=c}let u=(D,m,c,f=0)=>{let y=new Float64Array(c*2);for(let l=0;l<c;l++)y[l*2]=D[f+l],y[l*2+1]=m[f+l];return d.fromData(y,[c],"complex128")};if(I==="full")return u(s,B,i);if(I==="same"){let D=Math.floor((i-o)/2);return u(s,B,o,D)}else{let D=Math.max(o,n)-Math.min(o,n)+1,m=Math.min(o,n)-1;return u(s,B,D,m)}}let Q=wM(A,r);if(Q){if(I==="full")return Q;let s=Q.data;if(I==="same"){let B=Math.floor((i-o)/2),C=new Float64Array(o);for(let E=0;E<o;E++)C[E]=s[B+E];return d.fromData(C,[o],Q.dtype)}else{let B=Math.max(o,n)-Math.min(o,n)+1,C=Math.min(o,n)-1,E=new Float64Array(B);for(let u=0;u<B;u++)E[u]=s[C+u];return d.fromData(E,[B],Q.dtype)}}let a=new Float64Array(i);for(let s=0;s<i;s++){let B=0,C=s-n+1;for(let E=0;E<o;E++){let u=E-C;u>=0&&u<n&&(B+=Number(e[E])*Number(t[u]))}a[s]=B}if(I==="full")return d.fromData(a,[i],"float64");if(I==="same"){let s=Math.floor((i-o)/2),B=new Float64Array(o);for(let C=0;C<o;C++)B[C]=a[s+C];return d.fromData(B,[o],"float64")}else{let s=Math.max(o,n)-Math.min(o,n)+1,B=Math.min(o,n)-1,C=new Float64Array(s);for(let E=0;E<s;E++)C[E]=a[B+E];return d.fromData(C,[s],"float64")}}function JM(A,r,I="full"){let e=r.size,t=A.size,o=k(r.dtype);if(!o&&!k(A.dtype)){let i=GM(A,r);if(i){let Q=t+e-1;if(I==="full")return i;let a=i.data;if(I==="same"){let s=Math.floor((Q-t)/2),B=new Float64Array(t);for(let C=0;C<t;C++)B[C]=a[s+C];return d.fromData(B,[t],i.dtype)}else{let s=Math.max(t,e)-Math.min(t,e)+1,B=Math.min(t,e)-1,C=new Float64Array(s);for(let E=0;E<s;E++)C[E]=a[B+E];return d.fromData(C,[s],i.dtype)}}}let n=r.data,g;if(o){let i=new Float64Array(e*2);for(let Q=0;Q<e;Q++){let a=e-1-Q;i[Q*2]=n[a*2],i[Q*2+1]=n[a*2+1]}g=d.fromData(i,[e],r.dtype)}else{let i=new Float64Array(e);for(let Q=0;Q<e;Q++)i[Q]=Number(n[e-1-Q]);g=d.fromData(i,[e],"float64")}if(o){let i=g.data;for(let Q=0;Q<e;Q++)i[Q*2+1]=-i[Q*2+1]}return ku(A,g,I)}function qu(A,r,I=!0,e=!1,t){let o=A.shape,n=A.data,g=k(A.dtype)||r!==void 0&&k(r.dtype),i;if(t!==void 0?i=t:i=e?0:1,o.length===1)if(r!==void 0){let u=r.data,D=A.size,m=k(A.dtype),c=k(r.dtype);if(r.size!==D)throw new Error("m and y must have same length");if(g){let w=0,N=0,F=0,G=0;for(let oA=0;oA<D;oA++)m?(w+=n[oA*2],N+=n[oA*2+1]):w+=Number(n[oA]),c?(F+=u[oA*2],G+=u[oA*2+1]):F+=Number(u[oA]);w/=D,N/=D,F/=D,G/=D;let x=0,H=0,X=0,P=0,Z=0,V=0,$=0,O=0;for(let oA=0;oA<D;oA++){let iA,CA,dA,hr;m?(iA=n[oA*2]-w,CA=n[oA*2+1]-N):(iA=Number(n[oA])-w,CA=0),c?(dA=u[oA*2]-F,hr=u[oA*2+1]-G):(dA=Number(u[oA])-F,hr=0),x+=iA*iA+CA*CA,X+=dA*dA+hr*hr,Z+=iA*dA+CA*hr,V+=CA*dA-iA*hr,$+=dA*iA+hr*CA,O+=hr*iA-dA*CA}let z=D-i;if(z<=0){let oA=new Float64Array(8);return oA.fill(NaN),d.fromData(oA,[2,2],"complex128")}x/=z,X/=z,Z/=z,V/=z,$/=z,O/=z;let rA=new Float64Array(8);return rA[0]=x,rA[1]=H,rA[2]=Z,rA[3]=V,rA[4]=$,rA[5]=O,rA[6]=X,rA[7]=P,d.fromData(rA,[2,2],"complex128")}let f=0,y=0;for(let w=0;w<D;w++)f+=Number(n[w]),y+=Number(u[w]);f/=D,y/=D;let l=0,h=0,b=0;for(let w=0;w<D;w++){let N=Number(n[w])-f,F=Number(u[w])-y;l+=N*N,h+=F*F,b+=N*F}let p=D-i;return p<=0?d.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(l/=p,h/=p,b/=p,d.fromData(new Float64Array([l,b,b,h]),[2,2],"float64"))}else{let u=A.size;if(g){let f=0,y=0;for(let b=0;b<u;b++)f+=n[b*2],y+=n[b*2+1];f/=u,y/=u;let l=0;for(let b=0;b<u;b++){let p=n[b*2]-f,w=n[b*2+1]-y;l+=p*p+w*w}let h=u-i;return h<=0?d.fromData(new Float64Array([NaN,0]),[],"complex128"):(l/=h,d.fromData(new Float64Array([l,0]),[],"complex128"))}let D=0;for(let f=0;f<u;f++)D+=Number(n[f]);D/=u;let m=0;for(let f=0;f<u;f++){let y=Number(n[f])-D;m+=y*y}let c=u-i;return c<=0?d.fromData(new Float64Array([NaN]),[],"float64"):(m/=c,d.fromData(new Float64Array([m]),[],"float64"))}let Q,a;I?(Q=o[0],a=o[1]):(Q=o[1],a=o[0]);let s=a-i;if(g){let u=new Float64Array(Q),D=new Float64Array(Q);for(let c=0;c<Q;c++){let f=0,y=0;for(let l=0;l<a;l++){let h=I?c*a+l:l*Q+c;f+=n[h*2],y+=n[h*2+1]}u[c]=f/a,D[c]=y/a}let m=new Float64Array(Q*Q*2);if(s<=0)return m.fill(NaN),d.fromData(m,[Q,Q],"complex128");for(let c=0;c<Q;c++)for(let f=0;f<Q;f++){let y=0,l=0;for(let b=0;b<a;b++){let p=I?c*a+b:b*Q+c,w=I?f*a+b:b*Q+f,N=n[p*2]-u[c],F=n[p*2+1]-D[c],G=n[w*2]-u[f],x=n[w*2+1]-D[f];y+=N*G+F*x,l+=F*G-N*x}let h=(c*Q+f)*2;m[h]=y/s,m[h+1]=l/s}return d.fromData(m,[Q,Q],"complex128")}let B=new Float64Array(Q*a);for(let u=0;u<Q;u++){let D=0;for(let f=0;f<a;f++){let y=I?u*a+f:f*Q+u;D+=Number(n[y])}let m=D/a,c=u*a;for(let f=0;f<a;f++){let y=I?u*a+f:f*Q+u;B[c+f]=Number(n[y])-m}}let C=new Float64Array(Q*Q);if(s<=0)return C.fill(NaN),d.fromData(C,[Q,Q],"float64");let E=1/s;for(let u=0;u<Q;u++){let D=u*a;for(let m=u;m<Q;m++){let c=m*a,f=0;for(let l=0;l<a;l++)f+=B[D+l]*B[c+l];let y=f*E;C[u*Q+m]=y,C[m*Q+u]=y}}return d.fromData(C,[Q,Q],"float64")}function UM(A,r,I=!0){let e=k(A.dtype)||r!==void 0&&k(r.dtype);if(A.shape.length===1&&r===void 0)return e?d.fromData(new Float64Array([1,0]),[],"complex128"):d.fromData(new Float64Array([1]),[],"float64");let t=qu(A,r,I,!1),o=t.data,g=t.shape[0];if(e){let s=new Float64Array(g*g*2);for(let B=0;B<g;B++)for(let C=0;C<g;C++){let E=o[(B*g+C)*2],u=o[(B*g+C)*2+1],D=o[(B*g+B)*2],m=o[(C*g+C)*2],c=(B*g+C)*2;if(D<=0||m<=0)s[c]=NaN,s[c+1]=NaN;else{let f=Math.sqrt(D*m);s[c]=E/f,s[c+1]=u/f}}return d.fromData(s,[g,g],"complex128")}let i=new Float64Array(g*g),Q=o,a=new Float64Array(g);for(let s=0;s<g;s++){let B=Q[s*g+s];a[s]=B>0?1/Math.sqrt(B):NaN}for(let s=0;s<g;s++)for(let B=s;B<g;B++){let C=Q[s*g+B]*a[s]*a[B];i[s*g+B]=C,i[B*g+s]=C}return d.fromData(i,[g,g],"float64")}function LM(A,r=10,I,e){eA(A.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");let t=A.data,o=A.size,n,g;if(I)[n,g]=I;else{n=1/0,g=-1/0;for(let s=0;s<o;s++){let B=Number(t[s]);isNaN(B)||(B<n&&(n=B),B>g&&(g=B))}!isFinite(n)||!isFinite(g)?(n=0,g=1):n===g&&(n=n-.5,g=g+.5)}let i;typeof r=="number"?i=r:i=Ru(t,o,n,g,r),i=Math.max(1,Math.round(i));let Q=new Float64Array(i+1),a=(g-n)/i;for(let s=0;s<=i;s++)Q[s]=n+s*a;return d.fromData(Q,[i+1],"float64")}function Ru(A,r,I,e,t){if(r===0)return 1;let o=e-I;if(o===0)return 1;let n=[],g=0;for(let u=0;u<r;u++){let D=Number(A[u]);isNaN(D)||(n.push(D),g+=D)}let i=n.length;if(i===0)return 1;let Q=g/i,a=0;for(let u=0;u<i;u++){let D=n[u]-Q;a+=D*D}let s=Math.sqrt(a/i);n.sort((u,D)=>u-D);let B=n[Math.floor(i*.25)]??0,E=(n[Math.floor(i*.75)]??0)-B;switch(t){case"sqrt":return Math.ceil(Math.sqrt(i));case"sturges":return Math.ceil(Math.log2(i)+1);case"rice":return Math.ceil(2*Math.pow(i,1/3));case"scott":{if(s===0)return 1;let u=3.5*s/Math.pow(i,1/3);return Math.ceil(o/u)}case"fd":{if(E===0)return Ru(A,r,I,e,"sturges");let u=2*E/Math.pow(i,1/3);return Math.ceil(o/u)}case"doane":{let u=c6(n,Q,s),D=Math.sqrt(6*(i-2)/((i+1)*(i+3)));return Math.ceil(1+Math.log2(i)+Math.log2(1+Math.abs(u)/D))}case"stone":return Ru(A,r,I,e,"sturges");default:{let u=Math.ceil(Math.log2(i)+1),D=E===0?u:Math.ceil(o/(2*E/Math.pow(i,1/3)));return Math.max(u,D)}}}function c6(A,r,I){if(I===0)return 0;let e=A.length,t=0;for(let o=0;o<e;o++)t+=Math.pow((A[o]-r)/I,3);return t/e}function HM(A,r,I=1,e=-1){eA(A.dtype,"trapezoid","trapezoid requires real numbers."),r!==void 0&&eA(r.dtype,"trapezoid","trapezoid requires real numbers.");let t=Array.from(A.shape),o=t.length;if(e<0&&(e=o+e),e<0||e>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let n=t[e];if(n<2)throw new Error("trapezoid requires at least 2 samples along axis");let g;if(r!==void 0){if(r.size!==n)throw new Error(`x array size (${r.size}) must match y axis size (${n})`);let u=r.data;g=new Float64Array(n);for(let D=0;D<n;D++)g[D]=Number(u[D])}else{g=new Float64Array(n);for(let u=0;u<n;u++)g[u]=u*I}let i=[...t];if(i.splice(e,1),o===1){let u=A.data,D=0;for(let m=0;m<n-1;m++){let c=Number(u[m]),f=Number(u[m+1]),y=g[m+1]-g[m];D+=.5*(c+f)*y}return D}let Q=i.reduce((u,D)=>u*D,1),a=new Float64Array(Q),s=new Array(o),B=1;for(let u=o-1;u>=0;u--)s[u]=B,B*=t[u];let C=new Array(i.length);B=1;for(let u=i.length-1;u>=0;u--)C[u]=B,B*=i[u];let E=A.data;for(let u=0;u<Q;u++){let D=[],m=u;for(let l=0;l<i.length;l++){let h=Math.floor(m/C[l]);m%=C[l],D.push(h)}let c=[],f=0;for(let l=0;l<o;l++)l===e?c.push(0):(c.push(D[f]),f++);let y=0;for(let l=0;l<n-1;l++){c[e]=l;let h=0;for(let F=0;F<o;F++)h+=c[F]*s[F];c[e]=l+1;let b=0;for(let F=0;F<o;F++)b+=c[F]*s[F];let p=Number(E[h]),w=Number(E[b]),N=g[l+1]-g[l];y+=.5*(p+w)*N}a[u]=y}return i.length===0?a[0]:d.fromData(a,i,"float64")}function Mu(A,r,I){let e=r?S(r):void 0;return R(RM(S(A),e,I))}function xu(A,r,I){return R(kM(S(A),S(r),I))}function Ju(A,r,I,e,t){let o=r instanceof AA?S(r):r,n=t?S(t):void 0,g=qM(S(A),o,I,e,n);return[R(g.hist),R(g.bin_edges)]}function Uu(A,r,I,e,t,o){let n;if(Array.isArray(I)&&I.length===2){let Q=I[0]instanceof AA?S(I[0]):I[0],a=I[1]instanceof AA?S(I[1]):I[1];n=[Q,a]}else n=I;let g=o?S(o):void 0,i=MM(S(A),S(r),n,e,t,g);return[R(i.hist),R(i.x_edges),R(i.y_edges)]}function Lu(A,r,I,e,t){let o=t?S(t):void 0,n=xM(S(A),r,I,e,o);return[R(n.hist),n.edges.map(g=>R(g))]}function Hu(A,r,I){return R(ku(S(A),S(r),I))}function _u(A,r,I){return R(JM(S(A),S(r),I))}function Yu(A,r,I,e,t){return R(qu(S(A),r?S(r):void 0,I,e,t))}function vu(A,r,I){return R(UM(S(A),r?S(r):void 0,I))}function Xu(A,r,I,e){return R(LM(S(A),r,I,e?S(e):void 0))}function Tu(A,r,I,e){let t=HM(S(A),r?S(r):void 0,I,e);return typeof t=="number"?t:R(t)}var D6="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",Ci=null;function ur(){if(Ci)return Ci;let A=atob(D6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ci=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ci.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ci}function _M(A,r,I){ur().exports.diff_f64(A,r,I)}function YM(A,r,I){ur().exports.diff_f32(A,r,I)}function Pu(A,r,I){ur().exports.diff_i64(A,r,I)}function Ku(A,r,I){ur().exports.diff_i32(A,r,I)}function Vu(A,r,I){ur().exports.diff_i16(A,r,I)}function Wu(A,r,I){ur().exports.diff_i8(A,r,I)}function vM(A,r,I,e){ur().exports.diff_2d_f64(A,r,I,e)}function XM(A,r,I,e){ur().exports.diff_2d_f32(A,r,I,e)}function Ou(A,r,I,e){ur().exports.diff_2d_i64(A,r,I,e)}function Zu(A,r,I,e){ur().exports.diff_2d_i32(A,r,I,e)}function zu(A,r,I,e){ur().exports.diff_2d_i16(A,r,I,e)}function ju(A,r,I,e){ur().exports.diff_2d_i8(A,r,I,e)}var m6=64,y6={float64:_M,float32:YM,int64:Pu,uint64:Pu,int32:Ku,uint32:Ku,int16:Vu,uint16:Vu,int8:Wu,uint8:Wu},l6={float64:vM,float32:XM,int64:Ou,uint64:Ou,int32:Zu,uint32:Zu,int16:zu,uint16:zu,int8:ju,uint8:ju},h6={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function TM(A,r){if(!A.isCContiguous)return null;let I=A.shape,e=I.length,t=r<0?e+r:r;if(t!==e-1)return null;let o=A.size;if(o<m6*Y.thresholdMultiplier)return null;let n=A.dtype,g=h6[n];if(!g)return null;let i=I[t],Q=i-1;if(Q<=0)return null;let a=g.BYTES_PER_ELEMENT,s=o/i,B=s*Q,C=o*a,E=B*a;J(C+E),U();let u=A.offset,D=A.data.subarray(u,u+o),m=q(D),c=_(E),f=Array.from(I);if(f[t]=Q,e===1){let l=y6[n];if(!l)return null;l(m,c,Q)}else{let l=l6[n];if(!l)return null;l(m,c,s,i)}let y=v(c,B,g);return d.fromData(y,f,n)}var d6="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",Ei=null;function Rr(){if(Ei)return Ei;let A=atob(d6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ei=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ei.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ei}function PM(A,r,I,e){Rr().exports.gradient_f64(A,r,I,e)}function KM(A,r,I,e){Rr().exports.gradient_f32(A,r,I,e)}function VM(A,r,I,e){Rr().exports.gradient_i64(A,r,I,e)}function WM(A,r,I,e){Rr().exports.gradient_u64(A,r,I,e)}function OM(A,r,I,e){Rr().exports.gradient_i32(A,r,I,e)}function ZM(A,r,I,e){Rr().exports.gradient_u32(A,r,I,e)}function zM(A,r,I,e){Rr().exports.gradient_i16(A,r,I,e)}function jM(A,r,I,e){Rr().exports.gradient_u16(A,r,I,e)}function $M(A,r,I,e){Rr().exports.gradient_i8(A,r,I,e)}function Ax(A,r,I,e){Rr().exports.gradient_u8(A,r,I,e)}var b6=64,p6={float64:PM,float32:KM,int64:VM,uint64:WM,int32:OM,uint32:ZM,int16:zM,uint16:jM,int8:$M,uint8:Ax},w6={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},N6={float64:Float64Array,float32:Float32Array,int64:Float64Array,uint64:Float64Array,int32:Float64Array,uint32:Float64Array,int16:Float64Array,uint16:Float64Array,int8:Float64Array,uint8:Float64Array},F6={float64:"float64",float32:"float32",int64:"float64",uint64:"float64",int32:"float64",uint32:"float64",int16:"float64",uint16:"float64",int8:"float64",uint8:"float64"};function rx(A,r){if(!A.isCContiguous||A.shape.length!==1)return null;let I=A.size;if(I<b6*Y.thresholdMultiplier||I<2)return null;let e=A.dtype,t=p6[e],o=w6[e],n=N6[e],g=F6[e];if(!t||!o||!n||!g)return null;let i=o.BYTES_PER_ELEMENT,Q=n.BYTES_PER_ELEMENT,a=I*i,s=I*Q;J(a+s),U();let B=A.offset,C=A.data.subarray(B,B+I),E=q(C),u=_(s);t(E,u,I,r);let D=v(u,I,n);return d.fromData(D,[I],g)}function Ix(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 e=Array.from(A.shape),t=e.length,o=I<0?t+I:I;if(o<0||o>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);if(e[o]<r+1)throw new Error(`diff requires at least ${r+1} elements along axis ${I}, but got ${e[o]}`);if(r===1&&!k(A.dtype)){let g=TM(A,o);if(g)return g}let n=A;for(let g=0;g<r;g++)n=S6(n,o);return n}function S6(A,r){let I=Array.from(A.shape),e=I.length,t=I[r],o=[...I];o[r]=t-1;let n=A.dtype,g=k(n),i=L(n)?"float64":n,Q=d.zeros(o,i),a=Q.data,s=A.strides,B=Q.size,C=A.offset;for(let E=0;E<B;E++){let u=E,D=new Array(e);for(let l=e-1;l>=0;l--)D[l]=u%o[l],u=Math.floor(u/o[l]);let m=[...D],c=[...D];c[r]=m[r]+1;let f=0,y=0;for(let l=0;l<e;l++)f+=m[l]*s[l],y+=c[l]*s[l];if(g){let l=A.data,h=l[(C+f)*2],b=l[(C+f)*2+1],p=l[(C+y)*2],w=l[(C+y)*2+1];a[E*2]=p-h,a[E*2+1]=w-b}else{let l=(L(n),Number(A.data[C+f])),h=(L(n),Number(A.data[C+y]));a[E]=h-l}}return Q}function ex(A,r=null,I=null){let e=A.size,t=A.dtype,o=k(t),n=L(t)?"float64":t,g=Math.max(0,e-1),i=I?I.length:0,Q=r?r.length:0,a=i+g+Q,s=d.zeros([a],n),B=s.data,C=0;if(I)if(o)for(let E of I)B[C*2]=E,B[C*2+1]=0,C++;else for(let E of I)B[C++]=E;if(o)for(let E=0;E<g;E++){let u=A.iget(E),D=A.iget(E+1);B[C*2]=D.re-u.re,B[C*2+1]=D.im-u.im,C++}else for(let E=0;E<g;E++){let u=(L(t),Number(A.iget(E))),D=(L(t),Number(A.iget(E+1)));B[C++]=D-u}if(r)if(o)for(let E of r)B[C*2]=E,B[C*2+1]=0,C++;else for(let E of r)B[C++]=E;return s}function tx(A,r=1,I=null){let t=Array.from(A.shape).length,o;if(I===null)o=Array.from({length:t},(i,Q)=>Q);else if(typeof I=="number"){let i=I<0?t+I:I;if(i<0||i>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);o=[i]}else o=I.map(i=>{let Q=i<0?t+i:i;if(Q<0||Q>=t)throw new Error(`axis ${i} is out of bounds for array of dimension ${t}`);return Q});let n;if(typeof r=="number")n=o.map(()=>r);else{if(r.length!==o.length)throw new Error("Number of spacings must match number of axes");n=r}if(o.length===1&&A.shape.length===1&&!k(A.dtype)&&typeof r=="number"){let i=rx(A,n[0]);if(i)return i}let g=[];for(let i=0;i<o.length;i++)g.push(G6(A,o[i],n[i]));return g.length===1?g[0]:g}function G6(A,r,I){let e=Array.from(A.shape),t=e.length,o=e[r];if(o<2)throw new Error(`Shape of array along axis ${r} must be at least 2, but got ${o}`);let n=A.dtype,g=k(n),i=L(n)?"float64":n==="float32"?"float32":g?n:"float64",Q=d.zeros(e,i),a=Q.data,s=A.strides,B=I,C=2*B,E=A.size,u=A.offset;for(let D=0;D<E;D++){let m=D,c=new Array(t);for(let l=t-1;l>=0;l--)c[l]=m%e[l],m=Math.floor(m/e[l]);let f=u;for(let l=0;l<t;l++)f+=c[l]*s[l];let y=c[r];if(g){let l=A.data,h=a,b,p;if(y===0){let w=[...c];w[r]=1;let N=0;for(let X=0;X<t;X++)N+=w[X]*s[X];let F=l[f*2],G=l[f*2+1],x=l[(u+N)*2],H=l[(u+N)*2+1];b=(x-F)/B,p=(H-G)/B}else if(y===o-1){let w=[...c];w[r]=o-2;let N=0;for(let X=0;X<t;X++)N+=w[X]*s[X];let F=l[f*2],G=l[f*2+1],x=l[(u+N)*2],H=l[(u+N)*2+1];b=(F-x)/B,p=(G-H)/B}else{let w=[...c],N=[...c];w[r]=y+1,N[r]=y-1;let F=0,G=0;for(let Z=0;Z<t;Z++)F+=w[Z]*s[Z],G+=N[Z]*s[Z];let x=l[(u+F)*2],H=l[(u+F)*2+1],X=l[(u+G)*2],P=l[(u+G)*2+1];b=(x-X)/C,p=(H-P)/C}h[D*2]=b,h[D*2+1]=p}else{let l;if(y===0){let h=[...c];h[r]=1;let b=0;for(let N=0;N<t;N++)b+=h[N]*s[N];let p=(L(n),Number(A.data[f]));l=((L(n),Number(A.data[u+b]))-p)/B}else if(y===o-1){let h=[...c];h[r]=o-2;let b=0;for(let N=0;N<t;N++)b+=h[N]*s[N];let p=(L(n),Number(A.data[f])),w=(L(n),Number(A.data[u+b]));l=(p-w)/B}else{let h=[...c],b=[...c];h[r]=y+1,b[r]=y-1;let p=0,w=0;for(let G=0;G<t;G++)p+=h[G]*s[G],w+=b[G]*s[G];let N=(L(n),Number(A.data[u+p])),F=(L(n),Number(A.data[u+w]));l=(N-F)/C}a[D]=l}}return Q}function ui(A,r,I){return R(Ix(S(A),r,I))}function $u(A,r,I){return R(ex(S(A),r??null,I??null))}function Ac(A,r,I){let e=tx(S(A),r,I);return Array.isArray(e)?dr(e):R(e)}function ox(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(k(r)){let t=ne(r),o=d.zeros(I,t),n=o.data,g=A.data;for(let i=0;i<e;i++)n[i]=g[i*2];return o}return A.copy()}function nx(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(k(r)){let o=ne(r),n=d.zeros(I,o),g=n.data,i=A.data;for(let Q=0;Q<e;Q++)g[Q]=i[Q*2+1];return n}let t=r==="float32"?"float32":"float64";return d.zeros(I,t)}function ix(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(k(r)){let t=nA(r),o=e*2,n=new t(o),g=A.data;for(let i=0;i<e;i++)n[i*2]=g[i*2],n[i*2+1]=-g[i*2+1];return d.fromData(n,I,r)}return A.copy()}function gx(A,r=!1){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,"float64"),n=o.data;if(k(I)){let g=A.data;for(let i=0;i<t;i++){let Q=g[i*2],a=g[i*2+1],s=Math.atan2(a,Q);r&&(s=s*180/Math.PI),n[i]=s}}else for(let g=0;g<t;g++){let i=A.iget(g),a=(i instanceof T?i.re:Number(i))>=0?0:Math.PI;r&&(a=a*180/Math.PI),n[g]=a}return o}function rc(A){return R(ox(S(A)))}function Ic(A){return R(nx(S(A)))}function ci(A){return R(ix(S(A)))}function ec(A,r){return R(gx(S(A),r))}var q6="AGFzbQEAAAABDgJgA39/fwBgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAQYJAX8BQYCAwAALBxsCCmluZGljZXNfMmQAAAppbmRpY2VzXzNkAAEKsQQCwwMDAX8CewN/AkAgAiABbCIDRQ0AQQAhAQJAAkAgA0EESQ0AIAL9ESEE/QwAAAAAAQAAAAIAAAADAAAAIQUgA0F8cSIBIQYgACEHA0AgByAF/RsAIAT9GwBu/REgBf0bASAE/RsBbv0cASAF/RsCIAT9GwJu/RwCIAX9GwMgBP0bA279HAP9CwIAIAdBEGohByAF/QwEAAAABAAAAAQAAAAEAAAA/a4BIQUgBkF8aiIGDQALIAMgAUYNAQsgACABQQJ0aiEHA0AgByABIAJuNgIAIAdBBGohByADIAFBAWoiAUcNAAsLIANBAnQhCEEAIQECQCADQQRJDQAgACAIaiEHIAL9ESEE/QwAAAAAAQAAAAIAAAADAAAAIQUgA0F8cSIBIQYDQCAHIAX9GwAgBP0bAHD9ESAF/RsBIAT9GwFw/RwBIAX9GwIgBP0bAnD9HAIgBf0bAyAE/RsDcP0cA/0LAgAgB0EQaiEHIAX9DAQAAAAEAAAABAAAAAQAAAD9rgEhBSAGQXxqIgYNAAsgAyABRg0BCyAAIAggAUECdGpqIQcDQCAHIAEgAnA2AgAgB0EEaiEHIAMgAUEBaiIBRw0ACwsLagEFfwJAIAMgAmwiBCABbCIFRQ0AIAVBA3QhBiAFQQJ0IQdBACEBA0AgACABIARuNgIAIAAgB2ogASADbiIIIAJwNgIAIAAgBmogASAIIANsazYCACAAQQRqIQAgBSABQQFqIgFHDQALCws=",fi=null;function Qx(){if(fi)return fi;let A=atob(q6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);fi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=fi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),fi}function ax(A,r,I){Qx().exports.indices_2d(A,r,I)}function sx(A,r,I,e){Qx().exports.indices_3d(A,r,I,e)}var M6=64;function Bx(A,r){if(r!=="int32")return null;let I=A.length;if(I<2||I>3)return null;let e=A.reduce((i,Q)=>i*Q,1);if(e<M6*Y.thresholdMultiplier)return null;let t=I*e,o=t*4;J(o),U();let n=_(o);I===2?ax(n,A[0],A[1]):sx(n,A[0],A[1],A[2]);let g=v(n,t,Int32Array);return d.fromData(g,[I,...A],"int32")}function tc(A,r){let I=A.shape,e=I.length,t=r.length;if(t<e)throw new Error("input operand has more dimensions than allowed by the axis remapping");let o=Fr([Array.from(I),r]);if(o===null)throw new Error(`operands could not be broadcast together with shape (${I.join(",")}) (${r.join(",")})`);for(let n=0;n<t;n++)if(o[n]!==r[n])throw new Error(`operands could not be broadcast together with shape (${I.join(",")}) (${r.join(",")})`);return Br(A,r)}function Cx(A){if(A.length===0)return[];if(A.length===1)return[A[0]];let r=A.map(e=>Array.from(e.shape)),I=Fr(r);if(I===null)throw new Error(`operands could not be broadcast together with shapes ${r.map(e=>`(${e.join(",")})`).join(" ")}`);return A.map(e=>Br(e,I))}function Ex(A,r,I){let e=A.shape,t=e.length,o=A.dtype;if(I===void 0){let E=A.size;for(let c of r){let f=c<0?E+c:c;if(f<0||f>=E)throw new Error(`index ${c} is out of bounds for axis 0 with size ${E}`)}let u=r.length,D=nA(o);if(!D)throw new Error(`Cannot take from array with dtype ${o}`);let m=new D(u);for(let c=0;c<u;c++){let f=r[c];f<0&&(f=E+f);let y=A.iget(f);L(o),m[c]=y}return d.fromData(m,[u],o)}let n=I<0?t+I:I;if(n<0||n>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let g=e[n];for(let E of r){let u=E<0?g+E:E;if(u<0||u>=g)throw new Error(`index ${E} is out of bounds for axis ${n} with size ${g}`)}let i=Array.from(e);i[n]=r.length;let Q=i.reduce((E,u)=>E*u,1),a=nA(o);if(!a)throw new Error(`Cannot take from array with dtype ${o}`);let s=new a(Q),B=HA(i),C=new Array(t).fill(0);for(let E=0;E<Q;E++){let u=[...C],D=C[n],m=r[D];m<0&&(m=g+m),u[n]=m;let c=A.get(...u),f=0;for(let y=0;y<t;y++)f+=C[y]*B[y];L(o),s[f]=c;for(let y=t-1;y>=0&&(C[y]++,!(C[y]<i[y]));y--)C[y]=0}return d.fromData(s,i,o)}function ux(A,r,I){let e=A.size,t=A.dtype,o;if(typeof I=="number"||typeof I=="bigint")o=new Array(r.length).fill(I);else{o=[];for(let n=0;n<I.size;n++){let g=I.iget(n);o.push(g instanceof T?g.re:g)}if(o.length===1)o=new Array(r.length).fill(o[0]);else if(o.length!==r.length){let n=[...o];o=[];for(let g=0;g<r.length;g++)o.push(n[g%n.length])}}for(let n=0;n<r.length;n++){let g=r[n];if(g<0&&(g=e+g),g<0||g>=e)throw new Error(`index ${r[n]} is out of bounds for axis 0 with size ${e}`);let i=o[n];L(t)?typeof i!="bigint"&&(i=BigInt(Math.round(Number(i)))):typeof i=="bigint"&&(i=Number(i)),A.iset(g,i)}}function cx(A,r){if(r.length===0)throw new Error("choices cannot be empty");let I=A.shape,e=r.length,t=r[0].dtype,o=r.map(B=>Array.from(B.shape));o.unshift(Array.from(I));let n=Fr(o);if(n===null)throw new Error("operands could not be broadcast together");let g=Br(A,n),i=r.map(B=>Br(B,n)),Q=n.reduce((B,C)=>B*C,1),a=nA(t);if(!a)throw new Error(`Cannot choose with dtype ${t}`);let s=new a(Q);for(let B=0;B<Q;B++){let C=Number(g.iget(B));if(C<0||C>=e)throw new Error(`index ${C} is out of bounds for axis 0 with size ${e}`);let E=i[C].iget(B);L(t),s[B]=E}return d.fromData(s,n,t)}function fx(A,r,I=!1){if(A.ndim!==r.ndim)return!1;for(let t=0;t<A.ndim;t++)if(A.shape[t]!==r.shape[t])return!1;let e=A.size;for(let t=0;t<e;t++){let o=A.iget(t),n=r.iget(t);if(I){let g=typeof o=="number"&&Number.isNaN(o),i=typeof n=="number"&&Number.isNaN(n);if(g&&i)continue}if(o!==n)return!1}return!0}function Dx(A,r,I){let e=Aq(A,r,I);if(e)return e;let t=A.shape,o=t.length,n=A.dtype,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=r.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 w=0;w<o;w++)if(w!==g&&i[w]!==t[w]&&i[w]!==1&&t[w]!==1)throw new Error(`index ${i[w]} is out of bounds for size ${t[w]} in dimension ${w}`);let Q=Array.from(i),a=Q.reduce((w,N)=>w*N,1),s=nA(n);if(!s)throw new Error(`Cannot take_along_axis with dtype ${n}`);let B=new s(a),C=HA(t),E=HA(i),u=t[g],D=HA(Q),m=new Array(o),c=L(n),f=A.isCContiguous,y=r.isCContiguous,l=A.data,h=A.offset,b=r.data,p=r.offset;for(let w=0;w<a;w++){let N=w;for(let H=0;H<o;H++)m[H]=N/D[H]|0,N-=m[H]*D[H];let F=0;for(let H=0;H<o;H++){let X=i[H]===1?0:m[H];F+=X*E[H]}let G=Number(y?b[p+F]:r.iget(F));G<0&&(G=u+G);let x=0;for(let H=0;H<o;H++){let X=H===g?G:t[H]===1?0:m[H];x+=X*C[H]}if(f)B[w]=l[h+x];else{let H=A.iget(x);B[w]=H}}return d.fromData(B,Q,n)}function mx(A,r,I,e){let t=A.shape,o=t.length,n=A.dtype,g=e<0?o+e:e;if(g<0||g>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=r.shape,Q=I.shape;if(i.length!==o||Q.length!==o)throw new Error("indices, arr, and values must have same ndim");let a=t[g],s=HA(t),B=HA(i),C=HA(Q),E=i.reduce((u,D)=>u*D,1);for(let u=0;u<E;u++){let D=new Array(o),m=u;for(let p=o-1;p>=0;p--)D[p]=m%i[p],m=Math.floor(m/i[p]);let c=0;for(let p=0;p<o;p++)c+=D[p]*B[p];let f=Number(r.iget(c));if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`index ${f} is out of bounds for axis ${g} with size ${a}`);let y=0;for(let p=0;p<o;p++){let w=Q[p]===1?0:D[p];y+=w*C[p]}let l=I.iget(y),h=[...D];h[g]=f;let b=0;for(let p=0;p<o;p++)b+=h[p]*s[p];L(n)?typeof l!="bigint"&&(l=BigInt(Math.round(Number(l)))):typeof l=="bigint"&&(l=Number(l)),A.iset(b,l)}}function yx(A,r,I){let e=A.size,t=A.dtype,o;if(typeof I=="number"||typeof I=="bigint")o=[I];else{o=[];for(let g=0;g<I.size;g++){let i=I.iget(g);o.push(i instanceof T?i.re:i)}}let n=0;for(let g=0;g<e;g++)if(r.iget(g)){let Q=o[n%o.length];L(t)?typeof Q!="bigint"&&(Q=BigInt(Math.round(Number(Q)))):typeof Q=="bigint"&&(Q=Number(Q)),A.iset(g,Q),n++}}function lx(A,r,I){let e=r.shape,t=e.length,o=r.dtype,n=L(o);if(I===void 0){let b=Math.min(A.size,r.size),p=A.isCContiguous,w=A.data,N=A.offset,F=0;if(p)for(let P=0;P<b;P++)w[N+P]&&F++;else for(let P=0;P<b;P++)A.iget(P)&&F++;let G=nA(o);if(!G)throw new Error(`Cannot compress with dtype ${o}`);let x=new G(F),H=0,X=r.isCContiguous;if(p&&X){let P=r.data,Z=r.offset;if(n){let V=x,$=P;for(let O=0;O<b;O++)w[N+O]&&(V[H++]=$[Z+O])}else{let V=x,$=P;for(let O=0;O<b;O++)w[N+O]&&(V[H++]=$[Z+O])}}else for(let P=0;P<b;P++)(p?w[N+P]:A.iget(P))&&(x[H]=r.iget(P),H++);return d.fromData(x,[F],o)}let g=I<0?t+I:I;if(g<0||g>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let i=e[g],Q=Math.min(A.size,i),a=[],s=A.isCContiguous,B=A.data,C=A.offset;for(let b=0;b<Q;b++)(s?B[C+b]:A.iget(b))&&a.push(b);let E=a.length,u=[...e];u[g]=E;let D=u.reduce((b,p)=>b*p,1),m=nA(o);if(!m)throw new Error(`Cannot compress with dtype ${o}`);let c=new m(D),f=e.slice(g+1).reduce((b,p)=>b*p,1),y=e.slice(0,g).reduce((b,p)=>b*p,1),l=0;if(r.isCContiguous){let b=r.data,p=r.offset;for(let w=0;w<y;w++){let N=p+w*i*f;for(let F=0;F<E;F++){let G=N+a[F]*f;c.set(b.subarray(G,G+f),l),l+=f}}}else for(let b=0;b<y;b++)for(let p=0;p<E;p++){let w=a[p];for(let N=0;N<f;N++){let F=b*i*f+w*f+N;c[l++]=r.iget(F)}}return d.fromData(c,u,o)}function hx(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 e=[...A.map(B=>Array.from(B.shape)),...r.map(B=>Array.from(B.shape))],t=Fr(e);if(t===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let o=r[0].dtype,n=t.reduce((B,C)=>B*C,1),g=nA(o);if(!g)throw new Error(`Cannot select with dtype ${o}`);let i=I;L(o)?i=typeof I=="bigint"?I:BigInt(I):i=typeof I=="bigint"?Number(I):I;let Q=new g(n);for(let B=0;B<n;B++)L(o),Q[B]=i;let a=A.map(B=>Br(B,t)),s=r.map(B=>Br(B,t));for(let B=0;B<n;B++)for(let C=0;C<A.length;C++)if(a[C].iget(B)){let E=s[C].iget(B);L(o),Q[B]=E;break}return d.fromData(Q,t,o)}function dx(A,r,I){let e=A.size,t=A.dtype,o=[];for(let g=0;g<I.size;g++){let i=I.iget(g);o.push(i instanceof T?i.re:i)}if(o.length===0)return;let n=0;for(let g=0;g<e;g++)if(r.iget(g)){let Q=o[n%o.length];L(t)?typeof Q!="bigint"&&(Q=BigInt(Math.round(Number(Q)))):typeof Q=="bigint"&&(Q=Number(Q)),A.iset(g,Q),n++}}function oc(A,r=2){if(r<1)throw new Error("ndim must be at least 1");let I=new Int32Array(A);for(let t=0;t<A;t++)I[t]=t;let e=[];for(let t=0;t<r;t++)e.push(d.fromData(new Int32Array(I),[A],"int32"));return e}function bx(A){let r=A.shape,I=r.length;if(I<2)throw new Error("array must be at least 2-D");let e=r[0];for(let t=1;t<I;t++)if(r[t]!==e)throw new Error("All dimensions of input must be equal");return oc(e,I)}function nc(A,r=0,I){let e=I??A,t=[],o=[];for(let n=0;n<A;n++)for(let g=0;g<=Math.min(n+r,e-1);g++)g>=0&&(t.push(n),o.push(g));return[d.fromData(new Int32Array(t),[t.length],"int32"),d.fromData(new Int32Array(o),[o.length],"int32")]}function px(A,r=0){let I=A.shape;if(I.length!==2)throw new Error("array must be 2-D");return nc(I[0],r,I[1])}function ic(A,r=0,I){let e=I??A,t=[],o=[];for(let n=0;n<A;n++)for(let g=Math.max(n+r,0);g<e;g++)t.push(n),o.push(g);return[d.fromData(new Int32Array(t),[t.length],"int32"),d.fromData(new Int32Array(o),[o.length],"int32")]}function wx(A,r=0){let I=A.shape;if(I.length!==2)throw new Error("array must be 2-D");return ic(I[0],r,I[1])}function Nx(A,r,I=0){let e=r(A,I),t=e.shape;if(t.length!==2||t[0]!==A||t[1]!==A)throw new Error("mask_func must return n x n array");let o=[],n=[];for(let g=0;g<A;g++)for(let i=0;i<A;i++)e.get(g,i)&&(o.push(g),n.push(i));return[d.fromData(new Int32Array(o),[o.length],"int32"),d.fromData(new Int32Array(n),[n.length],"int32")]}function Fx(A,r="int32"){let I=Bx(A,r);if(I)return I;let e=A.length,t=[e,...A],o=t.reduce((a,s)=>a*s,1),n=nA(r);if(!n)throw new Error(`Cannot create indices with dtype ${r}`);let g=new n(o),i=A.reduce((a,s)=>a*s,1),Q=new Array(e);Q[e-1]=1;for(let a=e-2;a>=0;a--)Q[a]=Q[a+1]*A[a+1];for(let a=0;a<e;a++){let s=a*i,B=A[a],C=Q[a];if(r==="int64"){let E=g;for(let u=0;u<i;u++)E[s+u]=BigInt(Math.floor(u/C)%B)}else{let E=g;for(let u=0;u<i;u++)E[s+u]=Math.floor(u/C)%B}}return d.fromData(g,t,r)}function Sx(...A){let r=A.length,I=[];for(let e=0;e<r;e++){let t=A[e],o=t.size,n=t.dtype,g=new Array(r).fill(1);g[e]=o;let i=nA(n);if(!i)throw new Error(`Cannot create ix_ with dtype ${n}`);let Q=new i(o);for(let a=0;a<o;a++){let s=t.iget(a);L(n),Q[a]=s}I.push(d.fromData(Q,g,n))}return I}function Gx(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 e=A[0].size,t=r.length,o=new Int32Array(e),n=new Array(t),g=1;for(let i=t-1;i>=0;i--)n[i]=g,g*=r[i];for(let i=0;i<e;i++){let Q=0;for(let a=0;a<t;a++){let s=Number(A[a].iget(i)),B=r[a];if(I==="wrap")s=(s%B+B)%B;else if(I==="clip")s=Math.max(0,Math.min(s,B-1));else if(s<0||s>=B)throw new Error(`index ${s} is out of bounds for axis ${a} with size ${B}`);Q+=s*n[a]}o[i]=Q}return d.fromData(o,[e],"int32")}function Rx(A,r,I="C"){let e=r.length,t,o;if(typeof A=="number")t=[A],o=[];else{t=[];for(let a=0;a<A.size;a++)t.push(Number(A.iget(a)));o=Array.from(A.shape)}let n=t.length,g=r.reduce((a,s)=>a*s,1),i=new Array(e);if(I==="C"){let a=1;for(let s=e-1;s>=0;s--)i[s]=a,a*=r[s]}else{let a=1;for(let s=0;s<e;s++)i[s]=a,a*=r[s]}let Q=[];for(let a=0;a<e;a++){let s=new Int32Array(n);Q.push(d.fromData(s,o.length?o:[1],"int32"))}for(let a=0;a<n;a++){let s=t[a];if(s<0||s>=g)throw new Error(`index ${s} is out of bounds for array with size ${g}`);if(I==="C")for(let B=0;B<e;B++){let C=Math.floor(s/i[B]);s=s%i[B],Q[B].data[a]=C%r[B]}else for(let B=e-1;B>=0;B--){let C=Math.floor(s/i[B]);s=s%i[B],Q[B].data[a]=C%r[B]}}return typeof A=="number"?Q.map(a=>{let s=a.iget(0);return d.fromData(new Int32Array([Number(s)]),[],"int32")}):Q}function kx(A,r,I=!1){let e=A.shape,t=e.length;if(t<2)throw new Error("array must be at least 2-d");let o;if(t===2)o=e[1]+1;else{o=1;for(let Q=1;Q<t;Q++){let a=1;for(let s=Q;s<t;s++)a*=e[s];o+=a}}let n=A.size,g=Math.min(...e);I&&t===2&&(g=Math.max(e[0],e[1]));let i=A.isCContiguous;if(typeof r=="number")if(i){let Q=A.data,a=A.offset;if(L(A.dtype)){let s=Q,B=BigInt(Math.round(r));for(let C=0;C<g;C++){let E=C*o;if(E>=n)break;s[a+E]=B}}else for(let s=0;s<g;s++){let B=s*o;if(B>=n)break;Q[a+B]=r}}else for(let Q=0;Q<g&&Q*o<n;Q++)A.iset(Q*o,r);else{let Q=r.size;if(i&&r.isCContiguous){let a=A.data,s=A.offset,B=r.data,C=r.offset;if(L(A.dtype)){let E=a,u=B;for(let D=0;D<g;D++){let m=D*o;if(m>=n)break;E[s+m]=u[C+D%Q]}}else{let E=a,u=B;for(let D=0;D<g;D++){let m=D*o;if(m>=n)break;E[s+m]=u[C+D%Q]}}}else for(let a=0;a<g&&a*o<n;a++)A.iset(a*o,r.iget(a%Q))}}function qx(A,r,I){let e=Array.from(A.shape),t=e.length;if(r<0&&(r+=t),r<0||r>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let o=[];for(let B=0;B<t;B++)B!==r&&o.push(e[B]);if(o.length===0){let B=I(A);if(typeof B=="number"){let C=d.zeros([1],A.dtype);return C.data[0]=B,C}return B}if(t===2){let[B,C]=e;if(r===0){let E=[];for(let D=0;D<C;D++){let m=new Float64Array(B);for(let f=0;f<B;f++)m[f]=Number(A.get(f,D));let c=d.fromData(m,[B],"float64");E.push(I(c))}let u=E[0];if(u===void 0)return d.zeros([0],"float64");if(typeof u=="number"){let D=d.zeros([C],"float64");for(let m=0;m<C;m++)D.data[m]=E[m];return D}else{let D=[u.size,C],m=d.zeros(D,"float64");for(let c=0;c<C;c++){let f=E[c];for(let y=0;y<f.size;y++)m.data[y*C+c]=Number(f.iget(y))}return m}}else{let E=[];for(let D=0;D<B;D++){let m=new Float64Array(C);for(let f=0;f<C;f++)m[f]=Number(A.get(D,f));let c=d.fromData(m,[C],"float64");E.push(I(c))}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 m=0;m<B;m++)D.data[m]=E[m];return D}else{let D=[B,u.size],m=d.zeros(D,"float64");for(let c=0;c<B;c++){let f=E[c];for(let y=0;y<f.size;y++)m.data[c*f.size+y]=Number(f.iget(y))}return m}}}if(t===1){let B=I(A);if(typeof B=="number"){let C=d.zeros([1],"float64");return C.data[0]=B,C}return B}let n=e[r],g=o.reduce((B,C)=>B*C,1);function i(B){let C=new Array(o.length),E=B;for(let u=o.length-1;u>=0;u--)C[u]=E%o[u],E=Math.floor(E/o[u]);return C}function Q(B,C){let E=[],u=0;for(let D=0;D<t;D++)E.push(D===r?C:B[u++]);return Number(A.get(...E))}let a=[];for(let B=0;B<g;B++){let C=i(B),E=new Float64Array(n);for(let D=0;D<n;D++)E[D]=Q(C,D);let u=d.fromData(E,[n],"float64");a.push(I(u))}let s=a[0];if(s===void 0)return d.zeros([0],"float64");if(typeof s=="number"){let B=d.zeros(o,"float64");for(let C=0;C<g;C++)B.data[C]=a[C];return B}else{let B=[...o,...Array.from(s.shape)],C=d.zeros(B,"float64"),E=s.size;for(let u=0;u<g;u++){let D=a[u];for(let m=0;m<E;m++)C.data[u*E+m]=Number(D.iget(m))}return C}}function Mx(A,r,I){let e=A,t=A.shape.length;for(let o of I){let n=o<0?o+t:o;if(n<0||n>=t)throw new Error(`axis ${o} is out of bounds for array of dimension ${t}`);if(e=r(e,n),e.shape.length<t){let g=Array.from(e.shape);g.splice(n,0,1);let i=HA(g);e=new d(e.data,g,i,0,e.dtype)}}return e}function gc(A,r){return A.data.buffer===r.data.buffer}function xx(A,r){return gc(A,r)}var Ur={divide:"warn",over:"warn",under:"ignore",invalid:"warn"};function Qc(){return{...Ur}}function Jx(A,r,I,e,t){let o=Qc();return A!==void 0&&(Ur.divide=A,Ur.over=A,Ur.under=A,Ur.invalid=A),r!==void 0&&(Ur.divide=r),I!==void 0&&(Ur.over=I),e!==void 0&&(Ur.under=e),t!==void 0&&(Ur.invalid=t),o}function Di(A,r){return jA(tc(S(A),r),A)}function ac(...A){let r=A.map(S);return Cx(r).map(I=>R(I))}function sc(...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 e=A[I],t=Math.max(r.length,e.length),o=[];for(let n=0;n<t;n++){let g=n<r.length?r[r.length-1-n]:1,i=n<e.length?e[e.length-1-n]:1;if(g===i)o.unshift(g);else if(g===1)o.unshift(i);else if(i===1)o.unshift(g);else throw new Error(`Cannot broadcast shapes: dimensions ${g} and ${i} are incompatible`)}r=o}return r}function ee(A,r,I){return R(Ex(S(A),r,I))}function mi(A,r,I){let e=Array.isArray(I)?S(QA(I)):S(I);ux(S(A),r,e)}function Bc(A,r,I){return R(Dx(S(A),S(r),I))}function Cc(A,r,I,e){mx(S(A),S(r),S(I),e)}function yi(A,r){let I=r.map(S);return R(cx(S(A),I))}function uI(A,r,I){return R(lx(S(A),S(r),I))}function Ec(A,r,I=0){let e;return r instanceof AA?e=Array.from(r.data):Array.isArray(r[0])?e=r.flat():e=r,ee(A,e,I)}function uc(A,r,I){return uI(r,A,I)}function cc(A,r,I=0){let e=A.map(S),t=r.map(S);return R(hx(e,t,I))}function fc(A,r,I){dx(S(A),S(r),S(I))}function Dc(A,r,I){yx(S(A),S(r),S(I))}function mc(A,r){let I=S(A),e=A.shape,t=A.size,o=A.dtype;if(typeof r=="number"||typeof r=="bigint"){A.fill(r);return}let n=S(r),g=r.shape,i=Fr([g,e]);if(!i)throw new Error(`could not broadcast input array from shape (${g.join(",")}) into shape (${e.join(",")})`);if(i.length!==e.length||!i.every((a,s)=>a===e[s]))throw new Error(`could not broadcast input array from shape (${g.join(",")}) into shape (${e.join(",")})`);let Q=tc(n,e);if(L(o))for(let a=0;a<t;a++){let s=Q.iget(a),B=typeof s=="bigint"?s:BigInt(Math.round(Number(s)));I.iset(a,B)}else if(o==="bool")for(let a=0;a<t;a++){let s=Q.iget(a);I.iset(a,s?1:0)}else for(let a=0;a<t;a++){let s=Q.iget(a);I.iset(a,Number(s))}}function yc(A,r="int32"){return R(Fx(A,r))}function lc(...A){let r=A.map(S);return Sx(...r).map(I=>R(I))}function hc(A,r,I="raise"){let e=A.map(S);return R(Gx(e,r,I))}function dc(A,r){let I=typeof A=="number"?S(QA([A])):S(A);return Rx(I,r).map(e=>R(e))}function bc(A,r=2){return oc(A,r).map(I=>R(I))}function pc(A){return bx(S(A)).map(r=>R(r))}function wc(A,r,I=!1){kx(S(A),r,I)}function Nc(A,r=0,I){return nc(A,r,I).map(e=>R(e))}function Fc(A,r=0){return px(S(A),r).map(I=>R(I))}function Sc(A,r=0,I){return ic(A,r,I).map(e=>R(e))}function Gc(A,r=0){return wx(S(A),r).map(I=>R(I))}function Rc(A,r,I=0){return Nx(A,(t,o)=>S(r(t,o)),I).map(t=>R(t))}function kc(A,r,I=!1){return fx(S(A),S(r),I)}function qc(A,r){return WS(S(A),S(r))}function Mc(A,r,I){let e=t=>{let o=A(R(t));return typeof o=="number"?o:S(o)};return R(qx(S(I),r,e))}function xc(A,r,I){let e=(t,o)=>S(A(R(t),o));return R(Mx(S(r),e,I))}function Jc(A,r){return gc(S(A),S(r))}function Uc(A,r){return xx(S(A),S(r))}var Lc=Qc,Hc=Jx;var _c=TD,Yc=PD,vc=KD,Xc=Ee,Tc=Ce,Pc=VD,Kc=WD;function Vc(A,r){return Ki(S(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 Wc(A,r,I,e){return OD(S(A),r,I,e)}function li(A,r,I){return Vi(S(A),r,I)}function Oc(A){if(A instanceof AA)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 Og(A){if(A instanceof AA)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 Zc(A){return A instanceof AA?A.size:typeof A=="number"||typeof A=="bigint"||typeof A=="boolean"?1:Array.isArray(A)?Og(A).reduce((I,e)=>I*e,1):1}function zc(A,...r){let I=A.storage,e=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!==e.length)throw new Error("incorrect number of indices for array");return I.get(...r)}function jc(A){let r=A.shape,I=A.storage,e=r.length;if(e===0)return I.iget(0);if(I.isCContiguous){let a=function(s,B){let C=r[B],E=i[B];if(B===e-1){let D=new Array(C);for(let m=0;m<C;m++)D[m]=n[g+s+m];return D}let u=new Array(C);for(let D=0;D<C;D++)u[D]=a(s+D*E,B+1);return u};var o=a;let n=I.data,g=I.offset;if(e===1){let s=r[0],B=new Array(s);for(let C=0;C<s;C++)B[C]=n[g+C];return B}let i=new Array(e),Q=1;for(let s=e-1;s>=0;s--)i[s]=Q,Q*=r[s];return a(0,0)}if(e===1){let n=[];for(let g=0;g<r[0];g++)n.push(I.iget(g));return n}function t(n,g){if(g===e)return I.get(...n);let i=[];for(let Q=0;Q<r[g];Q++)n[g]=Q,i.push(t(n,g+1));return i}return t(new Array(e),0)}function $c(A,r="C"){let I=A.storage;r==="F"&&console.warn('tobytes with order="F" not fully implemented, returning C-order');let e=I.data,t=e.BYTES_PER_ELEMENT;if(I.isCContiguous){let g=e.byteOffset+I.offset*t,i=A.size*t;return new Uint8Array(e.buffer,g,i)}let n=A.copy().data;return new Uint8Array(n.buffer,n.byteOffset,A.size*t)}function Af(A,r=!1){let e=A.data.BYTES_PER_ELEMENT;if(e===1)return r?A:A.copy();let t=r?A:A.copy(),o=t.data,n=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);for(let g=0;g<o.length;g++){let i=g*e;for(let Q=0;Q<e/2;Q++){let a=n[i+Q];n[i+Q]=n[i+e-1-Q],n[i+e-1-Q]=a}}return t}function rf(A,r){if(!r||r===A.dtype)return A.copy();throw new Error("view with different dtype not fully implemented")}function If(A,r,I="",e=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function ef(A,r){let I=A.storage,e=A.dtype,t=A.size;if(r instanceof T){if(!(e==="complex64"||e==="complex128"))throw new Error("Cannot fill non-complex array with complex value");if(I.isCContiguous){let n=I.data,g=I.offset;for(let i=0;i<t;i++)n[(g+i)*2]=r.re,n[(g+i)*2+1]=r.im}else for(let n=0;n<t;n++)I.iset(n,r)}else if(typeof r=="bigint")if(I.isCContiguous)I.data.fill(r,I.offset,I.offset+t);else for(let o=0;o<t;o++)I.iset(o,r);else{let o=typeof r=="boolean"?r?1:0:r;if(I.isCContiguous)I.data.fill(o,I.offset,I.offset+t);else for(let n=0;n<t;n++)I.iset(n,o)}}var J6="AGFzbQEAAAABCQFgBX9/f39/AAIPAQNlbnYGbWVtb3J5AgAQAwcGAAAAAAAABgkBfwFBgIDAAAsHTgYKcGFkXzJkX2Y2NAAACnBhZF8yZF9mMzIAAQpwYWRfMmRfaTY0AAIKcGFkXzJkX2kzMgADCnBhZF8yZF9pMTYABAlwYWRfMmRfaTgABQrjJwa8BwERfwJAAkAgBEEBdCIFIAJqIAUgA2psIgZBfnEiBQ0AQQAhBQwBCwJAIAVBf2oiBUEDdEFwcUEQaiIHRQ0AIAFBACAH/AsACyAFQX5xQQJqIQULAkAgBiAFTQ0AIAYgBWtBA3QiBkUNACABIAVBA3RqQQAgBvwLAAsCQCACRQ0AAkAgA0F+cSIFRQ0AIAMgBUF/aiIHQX5xIgZBA2oiCCADIAhLGyIIIAZrQX5qIgkgCEEBcSIKayELIAQgBEEEdCIMIANBA3QiDWoiDkEIamwgAWoiBiAAayEPIAdBAXZBAWoiBEEDcSIQQQF0IREgBEF8cSISQQF0IRNBACEUIAVBB0khFSAJQQJJIQkDQCAGIQUgEiEBIAAhBEEAIQgCQCAVDQADQCAFIAT9AAMA/QsDACAFQRBqIARBEGr9AAMA/QsDACAFQSBqIARBIGr9AAMA/QsDACAFQTBqIARBMGr9AAMA/QsDACAFQcAAaiEFIARBwABqIQQgAUF8aiIBDQALIBMhByATIQgLAkAgEEUNACARIAhqIQcgCEEDdCEFIBAhBANAIAYgBWogACAFav0AAwD9CwMAIAVBEGohBSAEQX9qIgQNAAsLAkAgByADTw0AAkAgCQ0AIA8gDCAUbGpBEEkNACAHQQN0IQUgByALaiEHIAshBANAIAYgBWogACAFav0AAwD9CwMAIAVBEGohBSAEQX5qIgQNAAsgCkUNAQsgB0EDdCEFA0AgBiAFaiAAIAVqKwMAOQMAIAVBCGohBSAHQQFqIgcgA0kNAAsLIAYgDmohBiAAIA1qIQAgFEEBaiIUIAJHDQAMAgsLIANFDQAgASAEIARBBHQiBiADQQN0IhRqIg1BCGpsaiEFIANBBkkgASAEIAYgFHIiB0EIamxqIgQgACADIAJsQQN0akkgACAEIAcgAkF/amxqIBRqSXEgBkEASHJyQQFxIRBBACEIA0ACQCAQDQADQCAFIAD9AAMA/QsDACAAQRBqIQAgBUEQaiEFDAALC0EAIQQCQCADQQRJDQBBACEEQQAhBwNAIAUgBGoiBiAAIARqIgErAwA5AwAgBkEIaiABQQhqKwMAOQMAIAZBEGogAUEQaisDADkDACAGQRhqIAFBGGorAwA5AwAgBEEgaiEEIAdBfGoiBw0AC0EAIAdrIQQLIARBA3QhBCADIQYDQCAFIARqIAAgBGorAwA5AwAgBEEIaiEEIAZBf2oiBg0ACyAAIBRqIQAgBSANaiEFIAhBAWoiCCACRw0ACwsLqAcBEX8CQAJAIARBAXQiBSACaiAFIANqbCIGQXxxIgUNAEEAIQUMAQsCQCAFQX9qIgVBAnRBcHFBEGoiB0UNACABQQAgB/wLAAsgBUF8cUEEaiEFCwJAIAYgBU0NACAGIAVrQQJ0IgZFDQAgASAFQQJ0akEAIAb8CwALAkAgAkUNAAJAIANBfHEiBUUNACADIAVBf2oiB0F8cSIGQQVqIgggAyAISxsiCCAGa0F8aiIJIAhBA3EiCmshCyAEIARBA3QiDCADQQJ0Ig1qIg5BBGpsIAFqIgYgAGshDyAHQQJ2QQFqIgRBA3EiEEECdCERIARB/P///wdxIhJBAnQhE0EAIRQgBUENSSEVA0AgBiEEIBIhASAAIQVBACEIAkAgFQ0AA0AgBCAF/QACAP0LAgAgBEEQaiAFQRBq/QACAP0LAgAgBEEgaiAFQSBq/QACAP0LAgAgBEEwaiAFQTBq/QACAP0LAgAgBEHAAGohBCAFQcAAaiEFIAFBfGoiAQ0ACyATIQcgEyEICwJAIBBFDQAgESAIaiEHIAhBAnQhBCAQIQUDQCAGIARqIAAgBGr9AAIA/QsCACAEQRBqIQQgBUF/aiIFDQALCwJAIAcgA08NAAJAIAlBBEkNACAPIAwgFGxqQRBJDQAgB0ECdCEEIAcgC2ohByALIQUDQCAGIARqIAAgBGr9AAIA/QsCACAEQRBqIQQgBUF8aiIFDQALIApFDQELIAdBAnQhBANAIAYgBGogACAEaioCADgCACAEQQRqIQQgB0EBaiIHIANJDQALCyAGIA5qIQYgACANaiEAIBRBAWoiFCACRw0ADAILCyADRQ0AIANBCEkgASAEIARBA3QgA0ECdCIQaiIUQQRqbGoiBCAAIAMgAmxBAnRqSSAAIAQgFCACQX9qbGogEGpJcSAUQQBIcnJBAXEhDUEAIQgDQAJAIA0NAANAIAQgAP0AAgD9CwIAIABBEGohACAEQRBqIQQMAAsLQQAhBQJAIANBBEkNAEEAIQVBACEHA0AgBCAFaiIGIAAgBWoiASoCADgCACAGQQRqIAFBBGoqAgA4AgAgBkEIaiABQQhqKgIAOAIAIAZBDGogAUEMaioCADgCACAFQRBqIQUgB0F8aiIHDQALQQAgB2shBQsgBUECdCEFIAMhBgNAIAQgBWogACAFaioCADgCACAFQQRqIQUgBkF/aiIGDQALIAAgEGohACAEIBRqIQQgCEEBaiIIIAJHDQALCwuvAwEIfwJAIARBAXQiBSACaiAFIANqbCIFRQ0AIAVBA3QiBUUNACABQQAgBfwLAAsCQCACRQ0AIANFDQBBACEGIANBfnEhByADQQZJIAEgBCAEQQR0IANBA3QiCGoiCUEIamxqIgogACADIAJsQQN0akkgACAKIAkgAkF/amxqIAhqSXEgCCAJckEASHJyQQFxIQsDQEEAIQECQAJAIAsNACAHIQEgACEEIAohBQNAIAUgBP0AAwD9CwMAIARBEGohBCAFQRBqIQUgAUF+aiIBDQALIAchASADIAdGDQELIAEhDAJAIAMgAWtBA3EiBUUNACABIAVqIQwgAUEDdCEEA0AgCiAEaiAAIARqKQMANwMAIARBCGohBCAFQX9qIgUNAAsLIAEgA2tBfEsNACAMQQN0IQQgAyAMayEMA0AgCiAEaiIFIAAgBGoiASkDADcDACAFQQhqIAFBCGopAwA3AwAgBUEQaiABQRBqKQMANwMAIAVBGGogAUEYaikDADcDACAEQSBqIQQgDEF8aiIMDQALCyAAIAhqIQAgCiAJaiEKIAZBAWoiBiACRw0ACwsLqAcBEX8CQAJAIARBAXQiBSACaiAFIANqbCIGQXxxIgUNAEEAIQUMAQsCQCAFQX9qIgVBAnRBcHFBEGoiB0UNACABQQAgB/wLAAsgBUF8cUEEaiEFCwJAIAYgBU0NACAGIAVrQQJ0IgZFDQAgASAFQQJ0akEAIAb8CwALAkAgAkUNAAJAIANBfHEiBUUNACADIAVBf2oiB0F8cSIGQQVqIgggAyAISxsiCCAGa0F8aiIJIAhBA3EiCmshCyAEIARBA3QiDCADQQJ0Ig1qIg5BBGpsIAFqIgYgAGshDyAHQQJ2QQFqIgRBA3EiEEECdCERIARB/P///wdxIhJBAnQhE0EAIRQgBUENSSEVA0AgBiEEIBIhASAAIQVBACEIAkAgFQ0AA0AgBCAF/QACAP0LAgAgBEEQaiAFQRBq/QACAP0LAgAgBEEgaiAFQSBq/QACAP0LAgAgBEEwaiAFQTBq/QACAP0LAgAgBEHAAGohBCAFQcAAaiEFIAFBfGoiAQ0ACyATIQcgEyEICwJAIBBFDQAgESAIaiEHIAhBAnQhBCAQIQUDQCAGIARqIAAgBGr9AAIA/QsCACAEQRBqIQQgBUF/aiIFDQALCwJAIAcgA08NAAJAIAlBBEkNACAPIAwgFGxqQRBJDQAgB0ECdCEEIAcgC2ohByALIQUDQCAGIARqIAAgBGr9AAIA/QsCACAEQRBqIQQgBUF8aiIFDQALIApFDQELIAdBAnQhBANAIAYgBGogACAEaigCADYCACAEQQRqIQQgB0EBaiIHIANJDQALCyAGIA5qIQYgACANaiEAIBRBAWoiFCACRw0ADAILCyADRQ0AIANBCEkgASAEIARBA3QgA0ECdCIQaiIUQQRqbGoiBCAAIAMgAmxBAnRqSSAAIAQgFCACQX9qbGogEGpJcSAUQQBIcnJBAXEhDUEAIQgDQAJAIA0NAANAIAQgAP0AAgD9CwIAIABBEGohACAEQRBqIQQMAAsLQQAhBQJAIANBBEkNAEEAIQVBACEHA0AgBCAFaiIGIAAgBWoiASgCADYCACAGQQRqIAFBBGooAgA2AgAgBkEIaiABQQhqKAIANgIAIAZBDGogAUEMaigCADYCACAFQRBqIQUgB0F8aiIHDQALQQAgB2shBQsgBUECdCEFIAMhBgNAIAQgBWogACAFaigCADYCACAFQQRqIQUgBkF/aiIGDQALIAAgEGohACAEIBRqIQQgCEEBaiIIIAJHDQALCwvIBwERfwJAAkAgBEEBdCIFIAJqIAUgA2psIgZBeHEiBQ0AQQAhBQwBCwJAIAVBf2oiBUEBdEFwcUEQaiIHRQ0AIAFBACAH/AsACyAFQXhxQQhqIQULAkAgBiAFTQ0AIAYgBWtBAXQiBkUNACABIAVBAXRqQQAgBvwLAAsCQCACRQ0AAkAgA0F4cSIFRQ0AIAMgBUF/aiIHQXhxIgZBCWoiCCADIAhLGyIIIAZrQXhqIgkgCEEHcSIKayELIAQgBEECdCIMIANBAXQiDWoiDkECamwgAWoiBiAAayEPIAdBA3ZBAWoiBEEDcSIQQQN0IREgBEH8////A3EiEkEDdCETQQAhFCAFQRlJIRUgCUEISSEJA0AgBiEEIBIhASAAIQVBACEIAkAgFQ0AA0AgBCAF/QABAP0LAQAgBEEQaiAFQRBq/QABAP0LAQAgBEEgaiAFQSBq/QABAP0LAQAgBEEwaiAFQTBq/QABAP0LAQAgBEHAAGohBCAFQcAAaiEFIAFBfGoiAQ0ACyATIQcgEyEICwJAIBBFDQAgESAIaiEHIAhBAXQhBCAQIQUDQCAGIARqIAAgBGr9AAEA/QsBACAEQRBqIQQgBUF/aiIFDQALCwJAIAcgA08NAAJAIAkNACAPIAwgFGxqQRBJDQAgB0EBdCEEIAcgC2ohByALIQUDQCAGIARqIAAgBGr9AAEA/QsBACAEQRBqIQQgBUF4aiIFDQALIApFDQELIAdBAXQhBANAIAYgBGogACAEai8BADsBACAEQQJqIQQgB0EBaiIHIANJDQALCyAGIA5qIQYgACANaiEAIBRBAWoiFCACRw0ADAILCyADRQ0AIANBA3EhEEEAIANBBHFrIQggA0EISSABIAQgBEECdCADQQF0Ig5qIg1BAmpsaiIEIAAgAyACbEEBdGpJIAAgBCANIAJBf2psaiAOaklxIA1BAEhyckEBcSESQQAhFANAAkAgEg0AA0AgBCAA/QABAP0LAQAgAEEQaiEAIARBEGohBAwACwtBACEFAkAgA0EESQ0AQQAhBUEAIQcDQCAEIAVqIgYgACAFaiIBLwEAOwEAIAZBAmogAUECai8BADsBACAGQQRqIAFBBGovAQA7AQAgBkEGaiABQQZqLwEAOwEAIAVBCGohBSAIIAdBfGoiB0cNAAtBACAHayEFCwJAIBBFDQAgBUEBdCEFIBAhBgNAIAQgBWogACAFai8BADsBACAFQQJqIQUgBkF/aiIGDQALCyAAIA5qIQAgBCANaiEEIBRBAWoiFCACRw0ACwsL0wYBDX8CQAJAIARBAXQiBSACaiAFIANqIgZsIgdBcHEiBQ0AQQAhBQwBCyAFQX9qQXBxQRBqIgVFDQAgAUEAIAX8CwALAkAgByAFTQ0AIAcgBWsiB0UNACABIAVqQQAgB/wLAAsCQCACRQ0AAkAgA0FwcSIFRQ0AIAMgBUF/aiIHQXBxIghBEWoiCSADIAlLGyIJIAhrQXBqIgggCUEPcSIKayELIARBAXQhDCAHQQR2QQFqIgdB/P///wFxIQ0gB0EDcSEOIAQgBkEBamwgAWoiASAAayEPQQAhCSAFQTFJIRAgCEEQSSERA0BBACEFAkAgEA0AQQAhBSANIQgDQCABIAVqIgQgACAFaiIH/QAAAP0LAAAgBEEQaiAHQRBq/QAAAP0LAAAgBEEgaiAHQSBq/QAAAP0LAAAgBEEwaiAHQTBq/QAAAP0LAAAgBUHAAGohBSAIQXxqIggNAAsLAkAgDkUNACAOIQQDQCABIAVqIAAgBWr9AAAA/QsAACAFQRBqIQUgBEF/aiIEDQALCwJAIAUgA08NAAJAAkAgEQ0AIA8gDCAJbGpBEEkNACAFIAtqIQQgCyEHA0AgASAFaiAAIAVq/QAAAP0LAAAgBUEQaiEFIAdBcGoiBw0ACyAKDQEMAgsgBSEECwNAIAEgBGogACAEai0AADoAACAEQQFqIgQgA0kNAAsLIAEgBmohASAAIANqIQAgCUEBaiIJIAJHDQAMAgsLIANFDQBBACEJIANBDHEhCCADQQNxIQ4gA0EQSSABIAQgBkEBamxqIgUgACADIAJsakkgACAFIANqIAYgAkF/amxqSXEgBkEASHJyQQFxIRAgA0EESSELA0ACQCAQDQADQCAFIAD9AAAA/QsAACAAQRBqIQAgBUEQaiEFDAALC0EAIQQCQCALDQBBACEEA0AgBSAEaiIHIAAgBGoiAS0AADoAACAHQQFqIAFBAWotAAA6AAAgB0ECaiABQQJqLQAAOgAAIAdBA2ogAUEDai0AADoAACAIIARBBGoiBEcNAAsLAkAgDkUNACAOIQcDQCAFIARqIAAgBGotAAA6AAAgBEEBaiEEIAdBf2oiBw0ACwsgACADaiEAIAUgBmohBSAJQQFqIgkgAkcNAAsLCw==",hi=null;function te(){if(hi)return hi;let A=atob(J6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);hi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=hi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),hi}function Ux(A,r,I,e,t){te().exports.pad_2d_f64(A,r,I,e,t)}function Lx(A,r,I,e,t){te().exports.pad_2d_f32(A,r,I,e,t)}function tf(A,r,I,e,t){te().exports.pad_2d_i64(A,r,I,e,t)}function of(A,r,I,e,t){te().exports.pad_2d_i32(A,r,I,e,t)}function nf(A,r,I,e,t){te().exports.pad_2d_i16(A,r,I,e,t)}function gf(A,r,I,e,t){te().exports.pad_2d_i8(A,r,I,e,t)}var U6=64,L6={float64:Ux,float32:Lx,int64:tf,uint64:tf,int32:of,uint32:of,int16:nf,uint16:nf,int8:gf,uint8:gf},H6={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Hx(A,r){if(!A.isCContiguous||A.shape.length!==2)return null;let I=A.size;if(I<U6*Y.thresholdMultiplier)return null;let e=A.dtype,t=L6[e],o=H6[e];if(!t||!o)return null;let n=A.shape[0],g=A.shape[1],i=n+2*r,Q=g+2*r,a=i*Q,s=o.BYTES_PER_ELEMENT,B=I*s,C=a*s;J(B+C),U();let E=A.offset,u=A.data.subarray(E,E+I),D=q(u),m=_(C);t(D,m,n,g,r);let c=v(m,a,o);return d.fromData(c,[i,Q],e)}function Qf(A,r,I){let e=r instanceof AA?r:QA(Array.isArray(r)?r:[r]);if(I===void 0){let t=yr(A),o=yr(e);return TI([t,o],0)}return TI([A,e],I)}function Zg(A,r,I){let e=Array.isArray(r)?r:[r],t=[...A.shape],o=A.storage;if(I===void 0){let m=yr(A),c=m.storage,f=[],y=new Set(e.map(l=>l<0?m.size+l:l));for(let l=0;l<m.size;l++)y.has(l)||f.push(c.iget(l));return QA(f,A.dtype)}let n=I<0?t.length+I:I,g=t[n],i=new Set(e.map(m=>m<0?g+m:m)),Q=g-i.size,a=[...t];a[n]=Q;let s=er(a,A.dtype),B=s.storage,C=[],E=1;for(let m=t.length-1;m>=0;m--)C.unshift(E),E*=t[m];let u=[];E=1;for(let m=a.length-1;m>=0;m--)u.unshift(E),E*=a[m];let D=t.reduce((m,c)=>m*c,1);for(let m=0;m<D;m++){let c=[],f=m;for(let b=0;b<t.length;b++)c.push(Math.floor(f/C[b])),f=f%C[b];if(i.has(c[n]))continue;let y=0;for(let b of i)b<c[n]&&y++;let l=[...c];l[n]-=y;let h=0;for(let b=0;b<a.length;b++)h+=l[b]*u[b];B.iset(h,o.iget(m))}return s}function af(A,r,I,e){let t=Array.isArray(r)?r:[r],o=I instanceof AA?I:QA(Array.isArray(I)?I:[I]);if(e===void 0){let n=yr(A),g=yr(o),i=n.data,Q=g.data,a=Array.from(i);if(t.length===1){let s=t[0],B=s<0?n.size+s:s,C=Array.from(Q);a.splice(B,0,...C)}else{let s=t.map((B,C)=>({idx:B<0?n.size+B:B,valIdx:C})).sort((B,C)=>B.idx-C.idx);for(let B=0;B<s.length;B++){let{idx:C,valIdx:E}=s[B],u=Q[E%Q.length];a.splice(C+B,0,u)}}return QA(a,A.dtype)}throw new Error("insert along axis not fully implemented in standalone")}function sf(A,r,I="constant",e=0){let t=[...A.shape],o=t.length,n;typeof r=="number"?n=Array(o).fill([r,r]):Array.isArray(r)&&typeof r[0]=="number"?n=Array(o).fill(r):n=r;let g=t.map((u,D)=>u+n[D][0]+n[D][1]);if(I==="constant"&&e===0&&o===2&&typeof r=="number"){let u=Hx(A.storage,r);if(u)return new AA(u)}if(I!=="constant")throw new Error(`pad mode '${I}' not fully implemented in standalone`);let i=er(g,A.dtype),Q=i.storage;if(e!==0)for(let u=0;u<i.size;u++)Q.iset(u,e);let a=A.storage,s=[],B=1;for(let u=t.length-1;u>=0;u--)s.unshift(B),B*=t[u];let C=[];B=1;for(let u=g.length-1;u>=0;u--)C.unshift(B),B*=g[u];let E=t.reduce((u,D)=>u*D,1);for(let u=0;u<E;u++){let D=[],m=u;for(let f=0;f<t.length;f++)D.push(Math.floor(m/s[f])),m=m%s[f];let c=0;for(let f=0;f<g.length;f++)c+=(D[f]+n[f][0])*C[f];Q.iset(c,a.iget(u))}return i}var Ef=["int8","int16","int32","int64"],uf=["uint8","uint16","uint32","uint64"],Yx=[...Ef,...uf],Bf=["float32","float64"],Cf=["complex64","complex128"],_6=[...Yx,...Bf,...Cf],_x={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 zg(A,r,I="safe"){let e=A instanceof AA?A.dtype:A;if(I==="no"||I==="equiv")return e===r;if(I==="unsafe")return!0;let t=_x[e]??-1,o=_x[r]??-1;if(I==="safe"){if(pA(e)&&DA(r)){let n={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},g={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},i=n[e]??64,Q=g[r]??0;return i<=Q}return!!(pA(e)&&k(r)||DA(e)&&k(r)||t<=o)}return I==="same_kind"?!!(pA(e)&&pA(r)||DA(e)&&DA(r)||k(e)&&k(r)||e==="bool"&&pA(r)||e==="bool"&&r==="bool"||DA(e)&&k(r)):!1}function cf(...A){if(A.length===0)return"float64";let r=!1,I=!1;for(let e of A){let t=e.dtype;k(t)?(r=!0,t==="complex128"&&(I=!0)):DA(t)?t==="float64"&&(I=!0):pA(t)&&(t==="int64"||t==="uint64"||t==="int32"||t==="uint32")&&(I=!0)}return r?I?"complex128":"complex64":I?"float64":"float32"}function ff(...A){if(A.length===0)return"float64";let r=A.map(o=>o instanceof AA?o.dtype:o),I=r.some(k),e=r.some(DA),t=r.some(pA);if(I){let o=r.some(i=>i==="float64"),n=r.some(i=>i==="complex128"),g=r.some(i=>i==="int64"||i==="uint64"||i==="int32"||i==="uint32");return n||o||g?"complex128":"complex64"}if(e){let o=r.some(n=>n==="float64");return t&&(r.some(g=>g==="int32"||g==="uint32"||g==="int64"||g==="uint64")||o)||o?"float64":"float32"}if(t){let o=r.some(Q=>Ef.includes(Q)),n=r.some(Q=>uf.includes(Q)),g={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},i=Math.max(...r.map(Q=>g[Q]??0));return o&&n?i>=32?"int64":i>=16?"int32":"int16":o?i>=64?"int64":i>=32?"int32":i>=16?"int16":"int8":i>=64?"uint64":i>=32?"uint32":i>=16?"uint16":"uint8"}return"bool"}function Df(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 mf(A,r){let I=A instanceof AA?A.dtype:A;if(typeof r=="string")switch(r){case"number":case"numeric":return _6.includes(I);case"integer":case"int":return Yx.includes(I);case"signedinteger":return Ef.includes(I);case"unsignedinteger":return uf.includes(I);case"floating":case"float":return Bf.includes(I);case"complexfloating":case"complex":return Cf.includes(I);case"inexact":return Bf.includes(I)||Cf.includes(I);default:return I===r}return I===r}function yf(A){return A}function lf(A,r="GDFgdf",I="d"){let e={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"},t={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 o=[];for(let i of A){let Q=e[i];Q&&o.push(Q)}if(o.length===0)return I;let n=I,g=1/0;for(let i of r){let Q=e[i];if(!Q)continue;let a=t[i]??1/0,s=!0;for(let B of o)if(!zg(B,Q,"safe")){s=!1;break}s&&a<g&&(g=a,n=i)}return n}function rr(A){return A instanceof AA?A:QA(A)}function hf(A){let r=rr(A),I=r.data,e=r.size;if(e===0)return QA([1]);let t=[1];for(let o=0;o<e;o++){let n=I[o],g=new Array(t.length+1).fill(0);for(let i=0;i<t.length;i++)g[i]+=t[i],g[i+1]-=t[i]*n;t=g}return QA(t)}function df(A,r){let I=rr(A),e=rr(r),t=I.data,o=e.data,n=Math.max(I.size,e.size),g=new Array(n).fill(0);for(let Q=0;Q<I.size;Q++)g[n-I.size+Q]+=t[Q];for(let Q=0;Q<e.size;Q++)g[n-e.size+Q]+=o[Q];let i=0;for(;i<g.length-1&&g[i]===0;)i++;return QA(g.slice(i))}function bf(A,r=1){let I=rr(A);for(let e=0;e<r;e++){let t=I.data,o=I.size;if(o<=1)return QA([0]);let n=[];for(let g=0;g<o-1;g++){let i=o-1-g;n.push(t[g]*i)}I=QA(n)}return I}function pf(A,r){let I=[...rr(A).data],e=[...rr(r).data];if(e.length===0||e.length===1&&e[0]===0)throw new Error("Division by zero polynomial");for(;I.length>1&&I[0]===0;)I.shift();for(;e.length>1&&e[0]===0;)e.shift();if(I.length<e.length)return[QA([0]),QA(I)];let t=[],o=[...I];for(;o.length>=e.length;){let n=o[0]/e[0];t.push(n);for(let g=0;g<e.length;g++)o[g]-=n*e[g];o.shift()}for(;o.length>1&&Math.abs(o[0])<1e-15;)o.shift();return[QA(t.length>0?t:[0]),QA(o.length>0?o:[0])]}function wf(A,r,I){let e=A.data,t=r.data,o=A.size;if(I>=o)throw new Error("polyfit: degree must be less than number of points");let n=[];for(let B=0;B<o;B++){let C=[];for(let E=I;E>=0;E--)C.push(Math.pow(e[B],E));n.push(C)}let g=[],i=[];for(let B=0;B<=I;B++){g.push([]);for(let E=0;E<=I;E++){let u=0;for(let D=0;D<o;D++)u+=n[D][B]*n[D][E];g[B].push(u)}let C=0;for(let E=0;E<o;E++)C+=n[E][B]*t[E];i.push(C)}let Q=I+1,a=g.map((B,C)=>[...B,i[C]]);for(let B=0;B<Q;B++){let C=B;for(let E=B+1;E<Q;E++)Math.abs(a[E][B])>Math.abs(a[C][B])&&(C=E);[a[B],a[C]]=[a[C],a[B]];for(let E=B+1;E<Q;E++){let u=a[E][B]/a[B][B];for(let D=B;D<=Q;D++)a[E][D]-=u*a[B][D]}}let s=new Array(Q).fill(0);for(let B=Q-1;B>=0;B--){let C=a[B][Q];for(let E=B+1;E<Q;E++)C-=a[B][E]*s[E];s[B]=C/a[B][B]}return QA(s)}function Nf(A,r=1,I=0){let e=rr(A),t=Array.isArray(I)?I:[I];for(let o=0;o<r;o++){let n=e.data,g=e.size,i=[];for(let a=0;a<g;a++){let s=g-a;i.push(n[a]/s)}let Q=o<t.length?t[o]:0;i.push(Q),e=QA(i)}return e}function Ff(A,r){let I=rr(A),e=rr(r),t=I.data,o=e.data,n=I.size+e.size-1,g=new Array(n).fill(0);for(let i=0;i<I.size;i++)for(let Q=0;Q<e.size;Q++)g[i+Q]+=t[i]*o[Q];return QA(g)}function Sf(A,r){let I=rr(A),e=rr(r),t=I.data,o=e.data,n=Math.max(I.size,e.size),g=new Array(n).fill(0);for(let Q=0;Q<I.size;Q++)g[n-I.size+Q]+=t[Q];for(let Q=0;Q<e.size;Q++)g[n-e.size+Q]-=o[Q];let i=0;for(;i<g.length-1&&g[i]===0;)i++;return QA(g.slice(i))}function Gf(A,r){let I=rr(A),e=I.data;if(typeof r=="number"){let Q=e[0];for(let a=1;a<I.size;a++)Q=Q*r+e[a];return Q}let t=r instanceof AA?r:QA(r),o=t.data,n=t.size,g=I.size,i=new Float64Array(n);for(let Q=0;Q<n;Q++){let a=Number(o[Q]),s=Number(e[0]);for(let B=1;B<g;B++)s=s*a+Number(e[B]);i[Q]=s}return new AA(d.fromData(i,Array.from(t.shape),"float64"))}function Rf(A){let I=[...rr(A).data];for(;I.length>1&&I[0]===0;)I.shift();let e=0;for(;I.length>1&&I[I.length-1]===0;)I.pop(),e++;let t=I.length-1;if(t+e===0)return vx([],[]);let n=[],g=[];if(t===1)n.push(-I[1]/I[0]),g.push(0);else if(t===2){let s=I[0],B=I[1],C=I[2],E=B*B-4*s*C;if(E>=0){let u=Math.sqrt(E);n.push((-B+u)/(2*s),(-B-u)/(2*s)),g.push(0,0)}else{let u=Math.sqrt(-E);n.push(-B/(2*s),-B/(2*s)),g.push(u/(2*s),-u/(2*s))}}else if(t>=3){let s=Y6(I,t);for(let B of s)n.push(B.re),g.push(B.im)}for(let s=0;s<e;s++)n.push(0),g.push(0);let i=n.map((s,B)=>B);i.sort((s,B)=>{let C=Math.sqrt(n[s]**2+g[s]**2),E=Math.sqrt(n[B]**2+g[B]**2);return Math.abs(C-E)>1e-10?E-C:Math.abs(n[s]-n[B])>1e-10?n[B]-n[s]:g[B]-g[s]});let Q=i.map(s=>n[s]),a=i.map(s=>g[s]);return vx(Q,a)}function vx(A,r){let I=A.length,e=new Float64Array(2*I);for(let o=0;o<I;o++)e[2*o]=A[o],e[2*o+1]=r[o];let t=d.fromData(e,[I],"complex128");return new AA(t)}function Y6(A,r){let I=Array.from({length:r},()=>new Array(r).fill(0)),e=A[0];for(let t=0;t<r;t++)I[0][t]=-A[t+1]/e;for(let t=1;t<r;t++)I[t][t-1]=1;return v6(I,r)}function v6(A,r){let I=[],t=r,o=0,n=100*r,g=r,i=0;for(;t>0&&o<n;){if(o++,t===g?i++:(i=0,g=t),t===1){I.push({re:A[0][0],im:0}),t=0;break}if(t===2){I.push(...Xx(A[0][0],A[0][1],A[1][0],A[1][1])),t=0;break}let Q=t-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 a=t-Q;if(a===1){I.push({re:A[t-1][t-1],im:0}),t--;continue}if(a===2){I.push(...Xx(A[t-2][t-2],A[t-2][t-1],A[t-1][t-2],A[t-1][t-1])),t-=2;continue}let s;if(i>0&&i%10===0)s=Math.abs(A[t-1][t-2])+Math.abs(A[t-2][t-3]);else{let E=A[t-2][t-2],u=A[t-2][t-1],D=A[t-1][t-2],m=A[t-1][t-1],c=E+m,f=E*m-u*D,y=c*c-4*f;if(y>=0){let l=Math.sqrt(y),h=(c+l)/2,b=(c-l)/2;s=Math.abs(h-m)<Math.abs(b-m)?h:b}else s=m}for(let E=Q;E<t;E++)A[E][E]=A[E][E]-s;let B=[],C=[];for(let E=Q;E<t-1;E++){let u=Math.hypot(A[E][E],A[E+1][E]),D=u===0?1:A[E][E]/u,m=u===0?0:A[E+1][E]/u;B.push(D),C.push(m);for(let c=E;c<t;c++){let f=A[E][c],y=A[E+1][c];A[E][c]=D*f+m*y,A[E+1][c]=-m*f+D*y}}for(let E=0;E<B.length;E++){let u=Q+E,D=B[E],m=C[E],c=Math.min(u+2,t-1);for(let f=Q;f<=c;f++){let y=A[f][u],l=A[f][u+1];A[f][u]=D*y+m*l,A[f][u+1]=-m*y+D*l}}for(let E=Q;E<t;E++)A[E][E]=A[E][E]+s}if(t>0)for(let Q=0;Q<t;Q++)I.push({re:A[Q][Q],im:0});return I}function Xx(A,r,I,e){let t=A+e,o=A*e-r*I,n=t*t-4*o;if(n>=0){let g=Math.sqrt(n);return[{re:(t+g)/2,im:0},{re:(t-g)/2,im:0}]}else{let g=Math.sqrt(-n);return[{re:t/2,im:g/2},{re:t/2,im:-g/2}]}}var di=new Uint8Array([147,78,85,77,80,89]),Px=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function kf(){let A=new ArrayBuffer(2);return new DataView(A).setInt16(0,256,!0),new Int16Array(A)[0]===256}var X6={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"},qf={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"},Tx={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function Kx(A){if(A.startsWith("[")||A.startsWith("("))throw new tI(`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 e=I[0];if(e&&e in Tx)throw new tI(`Unsupported dtype: ${Tx[e]} (${A}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let t=X6[I];if(!t)throw new tI(`Unknown or unsupported dtype descriptor: ${A}. Supported types: ${Px.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=kf(),n=r==="<"||r==="|"||r==="="&&o,g=r===">"||r==="="&&!o,i=parseInt(I.slice(1),10),Q=i>1&&(g&&o||n&&!o);return{dtype:t,needsByteSwap:Q,itemsize:i}}var tI=class extends Error{constructor(r){super(r),this.name="UnsupportedDTypeError"}},Ir=class extends Error{constructor(r){super(r),this.name="InvalidNpyError"}};function cI(A){let r=A instanceof ArrayBuffer?new Uint8Array(A):A,I=Mf(r);return xf(r,I)}function Mf(A){if(A.length<10)throw new Ir("File too small to be a valid NPY file");for(let Q=0;Q<di.length;Q++)if(A[Q]!==di[Q])throw new Ir("Invalid NPY magic number");let r=A[6],I=A[7];if(r!==1&&r!==2&&r!==3)throw new Ir(`Unsupported NPY version: ${r}.${I}`);let e,t;r===1?(e=A[8]|A[9]<<8,t=10):(e=A[8]|A[9]<<8|A[10]<<16|A[11]<<24,t=12);let o=t+e;if(A.length<o)throw new Ir("File truncated: header extends beyond file");let n=A.slice(t,o),g=new TextDecoder("utf-8").decode(n).trim(),i=T6(g);return{version:{major:r,minor:I},header:i,dataOffset:o}}function xf(A,r){let{header:I,dataOffset:e}=r,{dtype:t,needsByteSwap:o,itemsize:n}=Kx(I.descr),g=I.shape.reduce((u,D)=>u*D,1),i=g*n,Q=A.length-e;if(Q<i)throw new Ir(`File truncated: expected ${i} bytes of data, got ${Q}`);let a=new ArrayBuffer(i);new Uint8Array(a).set(A.subarray(e,e+i));let B=P6(a,t,g,o,n),C=I.shape,E;if(I.fortran_order&&C.length>1){let u=[...C].reverse(),D=d.fromData(B,u,t);E=K6(D,u),C=I.shape}else E=d.fromData(B,[...C],t);return new AA(E)}function T6(A){let r=A.match(/'descr'\s*:\s*'([^']+)'/),I=A.match(/'fortran_order'\s*:\s*(True|False)/),e=A.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!r||!I||!e)throw new Ir(`Failed to parse NPY header: ${A}`);let t=r[1],o=I[1]==="True",n=e[1].trim(),g;return n===""?g=[]:g=n.split(",").map(i=>i.trim()).filter(i=>i!=="").map(i=>{let Q=parseInt(i,10);if(isNaN(Q))throw new Ir(`Invalid shape value: ${i}`);return Q}),{descr:t,fortran_order:o,shape:g}}function P6(A,r,I,e,t){let o=nA(r);if(!o)throw new Ir(`Cannot create array for dtype: ${r}`);let n=k(r),g=n?I*2:I;if(!e)return new o(A,0,g);let i=new Uint8Array(A),Q=new Uint8Array(A.byteLength);if(n){let a=t/2;for(let s=0;s<I*2;s++){let B=s*a;for(let C=0;C<a;C++)Q[B+C]=i[B+a-1-C]}}else for(let a=0;a<I;a++){let s=a*t;for(let B=0;B<t;B++)Q[s+B]=i[s+t-1-B]}return new o(Q.buffer,0,g)}function K6(A,r){let I=r.length,e=A.size,t=A.dtype,o=nA(t);if(!o)throw new Ir(`Cannot create array for dtype: ${t}`);let n=new o(e),g=[...r].reverse(),i=Vx(r),Q=Vx(g),a=new Array(I).fill(0);for(let s=0;s<e;s++){let B=s;for(let E=0;E<I;E++){let u=i[E];a[E]=Math.floor(B/u),B=B%u}let C=0;for(let E=0;E<I;E++)C+=a[I-1-E]*Q[E];L(t),n[C]=A.iget(s)}return d.fromData(n,g,t)}function Vx(A){let r=new Array(A.length),I=1;for(let e=A.length-1;e>=0;e--)r[e]=I,I*=A[e];return r}function fI(A){let r=A.shape,I=A.dtype,e=qf[I],t=r.length===0?"()":r.length===1?`(${r[0]},)`:`(${r.join(", ")})`,o=`{'descr': '${e}', 'fortran_order': False, 'shape': ${t}, }`,n=12,i=(64-(n+o.length+1)%64)%64;o=o+" ".repeat(i)+`
6
- `;let Q=new TextEncoder().encode(o),a=Q.length,s=A.size,B=Lr(I),C=s*B,E=n+a+C,u=new Uint8Array(E);u.set(di,0),u[6]=3,u[7]=0,u[8]=a&255,u[9]=a>>8&255,u[10]=a>>16&255,u[11]=a>>24&255,u.set(Q,n);let D=n+a;return V6(A,u.subarray(D),B),u}function V6(A,r,I){let e=A.dtype,t=A.size,o=kf(),n=L(e),g=k(e),i=A.storage;if(i.isCContiguous&&i.offset===0&&o){let a=i.data,s=new Uint8Array(a.buffer,a.byteOffset,t*I);r.set(s)}else{let a=new DataView(r.buffer,r.byteOffset,r.byteLength);for(let s=0;s<t;s++){let B=i.iget(s),C=s*I;n?W6(a,C,B,e==="uint64"):g?O6(a,C,B,e):Z6(a,C,B,e)}}}function W6(A,r,I,e){e?A.setBigUint64(r,I,!0):A.setBigInt64(r,I,!0)}function O6(A,r,I,e){e==="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 Z6(A,r,I,e){switch(e){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;default:throw new Error(`Unsupported dtype for serialization: ${e}`)}}var oI=(()=>{let A=[],r=new Uint32Array(256);for(let I=0;I<256;I++){let e=I;for(let t=0;t<8;t++)e=e&1?3988292384^e>>>1:e>>>1;r[I]=e}A.push(r);for(let I=1;I<8;I++){let e=new Uint32Array(256);for(let t=0;t<256;t++)e[t]=A[I-1][t]>>>8^r[A[I-1][t]&255];A.push(e)}return A})();function Jf(A){let r=oI[0],I=oI[1],e=oI[2],t=oI[3],o=oI[4],n=oI[5],g=oI[6],i=oI[7],Q=A.length,a=4294967295,s=0,B=Q-7;for(;s<B;){let C=(a^(A[s]|A[s+1]<<8|A[s+2]<<16|A[s+3]<<24))>>>0,E=A[s+4]|A[s+5]<<8|A[s+6]<<16|A[s+7]<<24;a=i[C&255]^g[C>>>8&255]^n[C>>>16&255]^o[C>>>24&255]^t[E&255]^e[E>>>8&255]^I[E>>>16&255]^r[E>>>24&255],s+=8}for(;s<Q;)a=r[(a^A[s])&255]^a>>>8,s++;return(a^4294967295)>>>0}async function Zx(A){let r=jx(A),I=new Map;for(let e of r){let t=await z6(e);I.set(e.name,t)}return I}function zx(A){let r=jx(A),I=new Map;for(let e of r){if(e.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${e.name}. Use readZip() (async) for DEFLATE-compressed files.`);I.set(e.name,e.compressedData)}return I}function jx(A){let r=A instanceof ArrayBuffer?new Uint8Array(A):A,I=new DataView(r.buffer,r.byteOffset,r.byteLength),e=[],t=-1;for(let Q=r.length-22;Q>=0;Q--)if(I.getUint32(Q,!0)===101010256){t=Q;break}if(t===-1)throw new Error("Invalid ZIP file: end of central directory not found");let o=I.getUint32(t+16,!0),n=I.getUint16(t+10,!0),g=[],i=o;for(let Q=0;Q<n&&I.getUint32(i,!0)===33639248;Q++){let s=I.getUint16(i+10,!0),B=I.getUint32(i+16,!0),C=I.getUint32(i+20,!0),E=I.getUint32(i+24,!0),u=I.getUint16(i+28,!0),D=I.getUint16(i+30,!0),m=I.getUint16(i+32,!0),c=I.getUint32(i+42,!0),f=r.slice(i+46,i+46+u),y=new TextDecoder("utf-8").decode(f);g.push({name:y,compressionMethod:s,crc32:B,compressedSize:C,uncompressedSize:E,localHeaderOffset:c}),i=i+46+u+D+m}for(let Q of g){let a=Q.localHeaderOffset;if(I.getUint32(a,!0)!==67324752)throw new Error(`Invalid local file header at offset ${a}`);let B=I.getUint16(a+26,!0),C=I.getUint16(a+28,!0),E=a+30+B+C,u=r.slice(E,E+Q.compressedSize);e.push({name:Q.name,compressedData:u,compressionMethod:Q.compressionMethod,crc32:Q.crc32,compressedSize:Q.compressedSize,uncompressedSize:Q.uncompressedSize})}return e}async function z6(A){if(A.compressionMethod===0)return A.compressedData;if(A.compressionMethod===8)return await j6(A.compressedData);throw new Error(`Unsupported compression method: ${A.compressionMethod}`)}async function j6(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 e=r.writable.getWriter();e.write(I),e.close();let t=r.readable.getReader(),o=[];for(;;){let{done:Q,value:a}=await t.read();if(Q)break;o.push(a)}let n=o.reduce((Q,a)=>Q+a.length,0),g=new Uint8Array(n),i=0;for(let Q of o)g.set(Q,i),i+=Q.length;return g}async function pi(A,r={}){let I=r.force??!1,e=await Zx(A);return $x(e,I)}function wi(A,r={}){let I=r.force??!1,e=zx(A);return $x(e,I)}function $x(A,r){let I=new Map,e=[],t=new Map;for(let[o,n]of A){if(!o.endsWith(".npy"))continue;let g=o.slice(0,-4);try{let i=cI(n);I.set(g,i)}catch(i){if(i instanceof tI&&r)e.push(g),t.set(g,i.message);else throw i}}return{arrays:I,skipped:e,errors:t}}async function AJ(A,r={}){let I=await pi(A,r);return Object.fromEntries(I.arrays)}function rJ(A,r={}){let I=wi(A,r);return Object.fromEntries(I.arrays)}async function IJ(A,r={}){let I=r.compress??!1,e=[],t=new TextEncoder;for(let[E,u]of A){let D=Jf(u),m,c;I?(m=await A1(u),m.length<u.length?c=8:(m=u,c=0)):(m=u,c=0),e.push({name:E,data:u,compressedData:m,crc:D,compressionMethod:c,offset:0})}let o=new Map;for(let E of e)o.set(E.name,t.encode(E.name));let n=0;for(let E of e)n+=30+o.get(E.name).length+E.compressedData.length;let g=0;for(let E of e)g+=46+o.get(E.name).length;let Q=n+g+22,a=new Uint8Array(Q),s=new DataView(a.buffer),B=0;for(let E of e)E.offset=B,B=tJ(a,s,B,E,o.get(E.name));let C=B;for(let E of e)B=oJ(a,s,B,E,o.get(E.name));return nJ(s,B,e.length,g,C),a}function eJ(A){let r=[],I=new TextEncoder;for(let[B,C]of A){let E=Jf(C);r.push({name:B,data:C,compressedData:C,crc:E,compressionMethod:0,offset:0})}let e=new Map;for(let B of r)e.set(B.name,I.encode(B.name));let t=0;for(let B of r)t+=30+e.get(B.name).length+B.compressedData.length;let o=0;for(let B of r)o+=46+e.get(B.name).length;let g=t+o+22,i=new Uint8Array(g),Q=new DataView(i.buffer),a=0;for(let B of r)B.offset=a,a=tJ(i,Q,a,B,e.get(B.name));let s=a;for(let B of r)a=oJ(i,Q,a,B,e.get(B.name));return nJ(Q,a,r.length,o,s),i}function tJ(A,r,I,e,t){return r.setUint32(I,67324752,!0),I+=4,r.setUint16(I,e.compressionMethod===8?20:10,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,e.compressionMethod,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,33,!0),I+=2,r.setUint32(I,e.crc,!0),I+=4,r.setUint32(I,e.compressedData.length,!0),I+=4,r.setUint32(I,e.data.length,!0),I+=4,r.setUint16(I,t.length,!0),I+=2,r.setUint16(I,0,!0),I+=2,A.set(t,I),I+=t.length,A.set(e.compressedData,I),I+=e.compressedData.length,I}function oJ(A,r,I,e,t){return r.setUint32(I,33639248,!0),I+=4,r.setUint16(I,20,!0),I+=2,r.setUint16(I,e.compressionMethod===8?20:10,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,e.compressionMethod,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,33,!0),I+=2,r.setUint32(I,e.crc,!0),I+=4,r.setUint32(I,e.compressedData.length,!0),I+=4,r.setUint32(I,e.data.length,!0),I+=4,r.setUint16(I,t.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,e.offset,!0),I+=4,A.set(t,I),I+=t.length,I}function nJ(A,r,I,e,t){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,e,!0),r+=4,A.setUint32(r,t,!0),r+=4,A.setUint16(r,0,!0)}async function A1(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 e=r.writable.getWriter();e.write(I),e.close();let t=r.readable.getReader(),o=[];for(;;){let{done:Q,value:a}=await t.read();if(Q)break;o.push(a)}let n=o.reduce((Q,a)=>Q+a.length,0),g=new Uint8Array(n),i=0;for(let Q of o)g.set(Q,i),i+=Q.length;return g}async function Uf(A,r={}){let I=iJ(A);return IJ(I,{compress:r.compress??!1})}function Lf(A){let r=iJ(A);return eJ(r)}function iJ(A){let r=new Map;if(Array.isArray(A)){for(let e=0;e<A.length;e++){let t=A[e],o=fI(t);r.set(`arr_${e}.npy`,o)}return r}let I=A instanceof Map?A.entries():Object.entries(A);for(let[e,t]of I){if(typeof e!="string"||e.length===0)throw new Error("Array names must be non-empty strings");let o=fI(t),n=e.endsWith(".npy")?e:`${e}.npy`;r.set(n,o)}return r}function DI(A,r={}){let{delimiter:I,comments:e="#",skiprows:t=0,usecols:o,max_rows:n,dtype:g="float64",missing_values:i,filling_values:Q}=r,a=A.split(/\r?\n/);if(t>0&&(a=a.slice(t)),a=a.filter(u=>{let D=u.trim();return!(D===""||e&&D.startsWith(e))}),n!==void 0&&n>0&&(a=a.slice(0,n)),a.length===0)return QA([],g);let s=[],B=new Set(i?Array.isArray(i)?i:[i]:[]),C=Q!==void 0?Q:g.includes("int")||g==="bool"?0:NaN;for(let u of a){let D;I===void 0?D=u.trim().split(/\s+/):D=u.split(I),o!==void 0&&(D=(Array.isArray(o)?o:[o]).map(f=>(f<0&&(f=D.length+f),D[f]??"")));let m=D.map(c=>{let f=c.trim();if(B.has(f)||f==="")return C;let y=parseFloat(f);return isNaN(y)?C:y});s.push(m)}let E=s[0]?.length??0;for(let u=1;u<s.length;u++)if(s[u].length!==E)throw new Error(`Inconsistent number of columns: row 0 has ${E} columns, row ${u} has ${s[u].length} columns`);return E===1?QA(s.map(u=>u[0]),g):QA(s,g)}function Ni(A,r={}){let I={...r,missing_values:r.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:r.filling_values??NaN};return DI(A,I)}function Fi(A,r,I="float64"){let e=typeof r=="string"?new RegExp(r,"gm"):new RegExp(r.source,"gm"),t=[],o;for(;(o=e.exec(A))!==null;)if(o.length>1){let n=o.slice(1).map(g=>{let i=parseFloat(g);return isNaN(i)?0:i});t.push(n)}return t.length===0?QA([],I):t[0].length===1?QA(t.map(n=>n[0]),I):QA(t,I)}function gJ(A,r){let I=typeof A=="bigint"?Number(A):A,e=r.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!e)return String(I);let[,t,o,n,g]=e,i=n!==void 0?parseInt(n,10):void 0,Q;switch(g){case"d":Q=Math.round(I).toString();break;case"f":Q=I.toFixed(i??6);break;case"e":Q=I.toExponential(i??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":Q=I.toExponential(i??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let a=i??6,s=Math.floor(Math.log10(Math.abs(I)));s>=-4&&s<a?(Q=I.toPrecision(a),Q.includes(".")&&(Q=Q.replace(/\.?0+$/,""))):Q=I.toExponential(a-1),g==="G"&&(Q=Q.toUpperCase());break}case"s":Q=String(I);break;default:Q=String(I)}if(o){let a=parseInt(o,10);if(Q.length<a){let s=" ".repeat(a-Q.length);t==="-"?Q=Q+s:Q=s+Q}}return t==="+"&&I>=0&&!Q.startsWith("-")&&(Q="+"+Q),Q}function Si(A,r={}){let{fmt:I="%.18e",delimiter:e=" ",newline:t=`
7
- `,header:o,footer:n,comments:g="# "}=r;if(A.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let i=[];if(o!==void 0){let a=o.split(/\r?\n/);for(let s of a)s.startsWith(g.trimEnd())?i.push(s):i.push(g+s)}let Q=A.toArray();if(A.ndim===1)for(let a of Q)i.push(gJ(a,I));else for(let a of Q){let s=a.map(B=>gJ(B,I));i.push(s.join(e))}if(n!==void 0){let a=n.split(/\r?\n/);for(let s of a)s.startsWith(g.trimEnd())?i.push(s):i.push(g+s)}return i.join(t)+t}var j=A=>{if(A instanceof sA)return A;let r=A.base?j(A.base):void 0;return sA.fromStorage(A.storage,r)},sA=class A extends AA{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 Lr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(r){let I=this._storage.dtype,e=this.size;if(L(I)){let t=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));for(let o=0;o<e;o++)this._storage.iset(o,t)}else if(I==="bool"){let t=r?1:0;for(let o=0;o<e;o++)this._storage.iset(o,t)}else{let t=Number(r);for(let o=0;o<e;o++)this._storage.iset(o,t)}}*[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((e,t)=>{let o=e;if(o<0&&(o=this.shape[t]+o),o<0||o>=this.shape[t])throw new Error(`Index ${e} is out of bounds for axis ${t} with size ${this.shape[t]}`);return o});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 e=r.map((o,n)=>{let g=o;if(g<0&&(g=this.shape[n]+g),g<0||g>=this.shape[n])throw new Error(`Index ${o} is out of bounds for axis ${n} with size ${this.shape[n]}`);return g}),t=this.dtype;if(k(t))this._storage.set(e,I);else if(L(t)){let o=I instanceof T?I.re:Number(I),n=typeof I=="bigint"?I:BigInt(Math.round(o));this._storage.set(e,n)}else if(t==="bool"){let n=(I instanceof T?I.re:Number(I))?1:0;this._storage.set(e,n)}else{let o=I instanceof T?I.re:Number(I);this._storage.set(e,o)}}copy(){return new A(this._storage.copy())}astype(r,I=!0){let e=super.astype(r,I);return e instanceof A?e:new A(e._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,e=zt(this,I).storage,o=e.data===this.data?this._base??this:void 0;return A.fromStorage(e,o)}ravel(){let r=jt(this).storage,e=r.data===this.data?this._base??this:void 0;return A.fromStorage(r,e)}put(r,I){let e=I instanceof A?I._storage:I;mi(this,r,e)}compress(r,I){let e=r instanceof A?r:A.fromStorage(d.fromData(new Uint8Array(r.map(t=>t?1:0)),[r.length],"bool"));return j(uI(e,this,I))}choose(r){return j(yi(this,r))}clip(r,I){return j(st(this,r,I))}iindex(r,I=0){let e;if(r instanceof A){e=[];for(let t=0;t<r.size;t++){let o=r.storage.iget(t),n=typeof o=="bigint"?Number(o):o instanceof T?o.re:o;e.push(n)}}else Array.isArray(r)&&r.length>0&&Array.isArray(r[0])?e=r.flat():e=r;return this.take(e,I)}bindex(r,I){return j(uI(r,this,I))}toString(){return li(this)}toArray(){if(this.ndim===0)return this._storage.iget(0);let r=this.shape,I=r.length,e=(t,o)=>{if(o===I)return this._storage.get(...t);let n=[];for(let g=0;g<r[o];g++)t[o]=g,n.push(e(t,o+1));return n};return e(new Array(I),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let e=this._storage.data,t=e.BYTES_PER_ELEMENT,o=this._storage.offset*t,n=this.size*t;return e.buffer.slice(o,o+n)}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(),e=I._storage.data,t=e.BYTES_PER_ELEMENT;if(t===1)return I;let o=e.buffer,n=new DataView(o);for(let g=0;g<e.length;g++){let i=g*t;if(t===2){let Q=n.getUint8(i),a=n.getUint8(i+1);n.setUint8(i,a),n.setUint8(i+1,Q)}else if(t===4){let Q=n.getUint8(i),a=n.getUint8(i+1),s=n.getUint8(i+2),B=n.getUint8(i+3);n.setUint8(i,B),n.setUint8(i+1,s),n.setUint8(i+2,a),n.setUint8(i+3,Q)}else if(t===8){let Q=n.getUint8(i),a=n.getUint8(i+1),s=n.getUint8(i+2),B=n.getUint8(i+3),C=n.getUint8(i+4),E=n.getUint8(i+5),u=n.getUint8(i+6),D=n.getUint8(i+7);n.setUint8(i,D),n.setUint8(i+1,u),n.setUint8(i+2,E),n.setUint8(i+3,C),n.setUint8(i+4,B),n.setUint8(i+5,s),n.setUint8(i+6,a),n.setUint8(i+7,Q)}}return I}view(r){if(!r||r===this.dtype)return A.fromStorage(this._storage,this._base??this);let I=Lr(this.dtype),e=Lr(r);if(I!==e)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 t=nA(r);if(!t)throw new Error(`Unsupported dtype: ${r}`);let o=this._storage.data,n=o.byteOffset+this._storage.offset*I,g=new t(o.buffer,n,this.size),i=d.fromData(g,[...this.shape],r,[...this._storage.strides],0);return A.fromStorage(i,this._base??this)}tofile(r,I="",e=""){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 j(Ie(this,r))}allclose(r,I=1e-5,e=1e-8){return Fn(this,r,I,e)}isclose(r,I=1e-5,e=1e-8){return j(Nn(this,r,I,e))}average(r,I){let e=Uo(this,I,r);return e instanceof AA?j(e):e}dot(r){let I=UI(this,r);return I instanceof AA?j(I):I}trace(){let r=LI(this);return r instanceof AA?j(r):r}inner(r){let I=YI(this,r);return I instanceof AA?j(I):I}tensordot(r,I=2){let e=XI(this,r,I);return e instanceof AA?j(e):e}divmod(r){let I=it(this,r);return[j(I[0]),j(I[1])]}searchsorted(r,I="left"){return j(Xn(this,r,I))}sqrt(){return j(Ye(this))}exp(){return j(Xe(this))}exp2(){return j(Te(this))}expm1(){return j(Pe(this))}log(){return j(Ke(this))}log2(){return j(Ve(this))}log10(){return j(We(this))}log1p(){return j(Oe(this))}absolute(){return j(je(this))}negative(){return j($e(this))}sign(){return j(At(this))}positive(){return j(et(this))}reciprocal(){return j(tt(this))}ceil(){return j(oi(this))}fix(){return j(ni(this))}floor(){return j(ii(this))}rint(){return j(gi(this))}trunc(){return j(Qi(this))}sin(){return j(lt(this))}cos(){return j(ht(this))}tan(){return j(dt(this))}arcsin(){return j(bt(this))}arccos(){return j(pt(this))}arctan(){return j(wt(this))}degrees(){return j(St(this))}radians(){return j(Gt(this))}sinh(){return j(Rt(this))}cosh(){return j(kt(this))}tanh(){return j(qt(this))}arcsinh(){return j(Mt(this))}arccosh(){return j(xt(this))}arctanh(){return j(Jt(this))}bitwise_not(){return j(ri(this))}invert(){return j(Ii(this))}logical_not(){return j(sn(this))}isfinite(){return j(Cn(this))}isinf(){return j(En(this))}isnan(){return j(un(this))}isnat(){return j(cn(this))}signbit(){return j(Dn(this))}spacing(){return j(yn(this))}cbrt(){return j(ot(this))}fabs(){return j(nt(this))}square(){return j(gt(this))}conj(){return j(ci(this))}flatten(){return j(yr(this))}argwhere(){return j(vn(this))}add(r){return j(Le(this,r))}subtract(r){return j(He(this,r))}multiply(r){return j(_e(this,r))}divide(r){return j(MI(this,r))}mod(r){return j(rt(this,r))}floor_divide(r){return j(It(this,r))}power(r){return j(ve(this,r))}logaddexp(r){return j(Ze(this,r))}logaddexp2(r){return j(ze(this,r))}arctan2(r){return j(Nt(this,r))}hypot(r){return j(Ft(this,r))}greater(r){return j(ln(this,r))}greater_equal(r){return j(hn(this,r))}less(r){return j(dn(this,r))}less_equal(r){return j(bn(this,r))}equal(r){return j(pn(this,r))}not_equal(r){return j(wn(this,r))}bitwise_and(r){return j(jn(this,r))}bitwise_or(r){return j($n(this,r))}bitwise_xor(r){return j(Ai(this,r))}left_shift(r){return j(ei(this,r))}right_shift(r){return j(ti(this,r))}logical_and(r){return j(Qn(this,r))}logical_or(r){return j(an(this,r))}logical_xor(r){return j(Bn(this,r))}copysign(r){return j(fn(this,r))}nextafter(r){return j(mn(this,r))}remainder(r){return j(Qt(this,r))}heaviside(r){return j(at(this,r))}matmul(r){return j(Zt(this,r))}outer(r){return j(vI(this,r))}sum(r,I=!1){let e=po(this,r,I);return e instanceof AA?j(e):e}mean(r,I=!1){let e=wo(this,r,I);return e instanceof AA?j(e):e}prod(r,I=!1){let e=No(this,r,I);return e instanceof AA?j(e):e}max(r,I=!1){let e=Fo(this,r,I);return e instanceof AA?j(e):e}min(r,I=!1){let e=So(this,r,I);return e instanceof AA?j(e):e}ptp(r,I=!1){let e=Go(this,r,I);return e instanceof AA?j(e):e}nansum(r,I=!1){let e=vo(this,r,I);return e instanceof AA?j(e):e}nanprod(r,I=!1){let e=Xo(this,r,I);return e instanceof AA?j(e):e}nanmean(r,I=!1){let e=To(this,r,I);return e instanceof AA?j(e):e}nanmin(r,I=!1){let e=Vo(this,r,I);return e instanceof AA?j(e):e}nanmax(r,I=!1){let e=Wo(this,r,I);return e instanceof AA?j(e):e}argmin(r){let I=Ro(this,r);return I instanceof AA?j(I):I}argmax(r){let I=ko(this,r);return I instanceof AA?j(I):I}nanargmin(r){let I=Oo(this,r);return I instanceof AA?j(I):I}nanargmax(r){let I=Zo(this,r);return I instanceof AA?j(I):I}var(r,I=0,e=!1){let t=BI(this,r,I,e);return t instanceof AA?j(t):t}std(r,I=0,e=!1){let t=qo(this,r,I,e);return t instanceof AA?j(t):t}nanvar(r,I=0,e=!1){let t=Po(this,r,I,e);return t instanceof AA?j(t):t}nanstd(r,I=0,e=!1){let t=Ko(this,r,I,e);return t instanceof AA?j(t):t}all(r,I=!1){let e=Lo(this,r,I);return e instanceof AA?j(e):e}any(r,I=!1){let e=Ho(this,r,I);return e instanceof AA?j(e):e}median(r,I=!1){let e=Mo(this,r,I);return e instanceof AA?j(e):e}nanmedian(r,I=!1){let e=$o(this,r,I);return e instanceof AA?j(e):e}percentile(r,I,e=!1){let t=xo(this,r,I,e);return t instanceof AA?j(t):t}quantile(r,I,e=!1){let t=Jo(this,r,I,e);return t instanceof AA?j(t):t}nanquantile(r,I,e=!1){let t=An(this,r,I,e);return t instanceof AA?j(t):t}nanpercentile(r,I,e=!1){let t=rn(this,r,I,e);return t instanceof AA?j(t):t}cumsum(r){return j(_o(this,r))}cumprod(r){return j(Yo(this,r))}nancumsum(r){return j(zo(this,r))}nancumprod(r){return j(jo(this,r))}sort(r=-1){return j(Un(this,r))}argsort(r=-1){return j(Ln(this,r))}partition(r,I=-1){return j(Hn(this,r,I))}argpartition(r,I=-1){return j(_n(this,r,I))}diagonal(r=0,I=0,e=1){return j(HI(this,r,I,e))}resize(r){return j(oo(this,r))}diff(r=1,I=-1){return j(ui(this,r,I))}take(r,I){return j(ee(this,r,I))}repeat(r,I){return j(eo(this,r,I))}transpose(r){return j(_I(this,r))}squeeze(r){return j($t(this,r))}expand_dims(r){return j(Ao(this,r))}swapaxes(r,I){return j(ro(this,r,I))}moveaxis(r,I){return j(Io(this,r,I))}nonzero(){return Yn(this).map(j)}};function QJ(...A){let r=[],I="xy";for(let g of A)g instanceof sA?r.push(g):typeof g=="object"&&"indexing"in g&&(I=g.indexing||"xy");if(r.length===0)return[];if(r.length===1)return[r[0].copy()];let e=r.map(g=>g.size);I==="xy"&&r.length>=2&&(r=[r[1],r[0],...r.slice(2)],[e[0],e[1]]=[e[1],e[0]]);let t=e,o=t.length,n=[];for(let g=0;g<r.length;g++){let i=r[g],Q=i.size,a=new Array(o).fill(1);a[g]=Q;let s=i.reshape(...a),B=Di(s,t),C=sA.fromStorage(B.storage.copy());n.push(C)}return I==="xy"&&n.length>=2&&([n[0],n[1]]=[n[1],n[0]]),n}var M=A=>{if(A instanceof sA)return A;let r=A.base?M(A.base):void 0;return sA.fromStorage(A.storage,r)};function m1(A,r){return M(Di(A,r))}function y1(A,r,I){return M(ee(A,r,I))}function l1(A,r,I){return M(Bc(A,r,I))}function h1(A,r){return M(yi(A,r))}function d1(A,r,I){return M(uI(A,r,I))}function b1(A,r,I=0){return M(Ec(A,r,I))}function p1(A,r,I){return M(uc(A,r,I))}function w1(A,r,I=0){return M(cc(A,r,I))}function N1(A,r="int32"){return M(yc(A,r))}function F1(A,r,I="raise"){return M(hc(A,r,I))}function S1(A,r){return dc(A,r).map(M)}function G1(A,r=2){return bc(A,r).map(M)}function R1(A){return pc(A).map(M)}function k1(A,r=0,I){return Nc(A,r,I).map(M)}function q1(A,r=0){return Fc(A,r).map(M)}function M1(A,r=0,I){return Sc(A,r,I).map(M)}function x1(A,r=0){return Gc(A,r).map(M)}function J1(A,r,I=0){return Rc(A,r,I).map(M)}function U1(A,r,I){return M(Mc(t=>A(M(t)),r,I))}function L1(A,r,I){return M(xc((t,o)=>A(M(t),o),r,I))}function H1(A,r){return M(Le(A,r))}function _1(A,r){return M(He(A,r))}function Y1(A,r){return M(_e(A,r))}function v1(A){return M(Ye(A))}function aJ(A,r){return M(ve(A,r))}function X1(A){return M(Xe(A))}function T1(A){return M(Te(A))}function P1(A){return M(Pe(A))}function K1(A){return M(Ke(A))}function V1(A){return M(Ve(A))}function W1(A){return M(We(A))}function O1(A){return M(Oe(A))}function Z1(A,r){return M(Ze(A,r))}function z1(A,r){return M(ze(A,r))}function sJ(A){return M(je(A))}function j1(A){return M($e(A))}function $1(A){return M(At(A))}function Av(A,r){return M(rt(A,r))}function rv(A,r){return M(MI(A,r))}function Iv(A,r){return M(It(A,r))}function ev(A){return M(et(A))}function tv(A){return M(tt(A))}function ov(A){return M(ot(A))}function nv(A){return M(nt(A))}function iv(A,r){let I=it(A,r);return[M(I[0]),M(I[1])]}function gv(A){return M(gt(A))}function Qv(A,r){return M(Qt(A,r))}function av(A,r){return M(at(A,r))}function sv(A,r){return M(as(A,r))}function Bv(A,r){return M(ss(A,r))}function Cv(A){let r=Bs(A);return[M(r[0]),M(r[1])]}function Ev(A,r){return M(Cs(A,r))}function uv(A,r){return M(Es(A,r))}function cv(A,r){return M(us(A,r))}function fv(A){let r=cs(A);return[M(r[0]),M(r[1])]}function Dv(A,r,I){return M(st(A,r,I))}function mv(A,r){return M(fs(A,r))}function yv(A,r){return M(Ds(A,r))}function lv(A,r){return M(ms(A,r))}function hv(A,r){return M(ys(A,r))}function dv(A,r=0,I,e){return M(ls(A,r,I,e))}function bv(A,r,I,e,t){return M(hs(A,r,I,e,t))}function pv(A,r=Math.PI,I=-1,e=2*Math.PI){return M(ds(A,r,I,e))}function wv(A){return M(bs(A))}function Nv(A){return M(ps(A))}function Fv(A,r){return M(jn(A,r))}function Sv(A,r){return M($n(A,r))}function Gv(A,r){return M(Ai(A,r))}function BJ(A){return M(ri(A))}function Rv(A){return M(Ii(A))}function CJ(A,r){return M(ei(A,r))}function EJ(A,r){return M(ti(A,r))}function kv(A,r,I){return M(Cu(A,r,I))}function qv(A,r,I,e){return M(Eu(A,r,I,e))}function Mv(A){return M(uu(A))}function xv(A){return M(rc(A))}function Jv(A){return M(Ic(A))}function uJ(A){return M(ci(A))}function Uv(A,r){return M(ec(A,r))}function Lv(A,r=BA){return M(er(A,r))}function Hv(A,r=BA){return M(Oi(A,r))}function _v(A,r=BA){return M(Zi(A,r))}function Yv(A,r,I){return M(zi(A,r,I))}function vv(A,r){return M(QA(A,r))}function Xv(A,r,I=1,e=BA){return M(xQ(A,r,I,e))}function Tv(A,r,I=50,e=BA){return M(JQ(A,r,I,e))}function Pv(A,r,I=50,e=10,t=BA){return M(UQ(A,r,I,e,t))}function Kv(A,r,I=50,e=BA){return M(LQ(A,r,I,e))}function Vv(A,r,I=0,e=BA){return M(ji(A,r,I,e))}function Wv(A,r=BA){return M(HQ(A,r))}function Ov(A,r){return M(QI(A,r))}function Zv(A,r){return M(_Q(A,r))}function zv(A,r){return M(YQ(A,r))}function jv(A,r){return M(vQ(A,r))}function $v(A,r,I){return M(XQ(A,r,I))}function A3(A){return M(TQ(A))}function r3(A,r){return M(PQ(A,r))}function I3(A,r){return M(KQ(A,r))}function e3(A,r){return M(VQ(A,r))}function t3(A,r){return M(WQ(A,r))}function o3(A,r,I){return M(OQ(A,r,I))}function n3(A,r=0){return M($i(A,r))}function i3(A,r=0){return M(ZQ(A,r))}function g3(A,r,I=0,e=BA){return M(zQ(A,r,I,e))}function Q3(A,r=0){return M(jQ(A,r))}function a3(A,r=0){return M($Q(A,r))}function s3(A,r,I=!1){return M(Aa(A,r,I))}function B3(A,r=BA,I=-1,e=0){return M(ra(A,r,I,e))}function C3(A,r,I=BA){return M(Ia(A,r,I))}function E3(A,r=BA,I=-1){return M(ea(A,r,I))}function u3(A,r=BA,I=-1,e){return M(ta(A,r,I,e))}function c3(A,r=BA,I=-1,e=""){return M(oa(A,r,I,e))}function f3(A,r,I){return M(ui(A,r,I))}function D3(A,r,I){return M($u(A,r,I))}function m3(A,r){let I=UI(A,r);return I instanceof AA?M(I):I}function y3(A,r=0,I=0,e=1){let t=LI(A,r,I,e);return t instanceof AA?M(t):t}function l3(A,r=0,I=0,e=1){return M(HI(A,r,I,e))}function h3(A,r){return M(_B(A,r))}function d3(A,r){return M(_I(A,r))}function b3(A,r){let I=YI(A,r);return I instanceof AA?M(I):I}function p3(A,r){return M(vI(A,r))}function w3(A,r,I=2){let e=XI(A,r,I);return e instanceof AA?M(e):e}function N3(A,r,I=-1){let e=hg(A,r,I);return e instanceof AA?M(e):e}function F3(A){return M(dg(A))}function S3(A,r){return M(bg(A,r))}function G3(A,r){return M(TB(A,r))}function R3(A,r){return M(PB(A,r))}function k3(A,r,I=-1,e=-1,t=-1,o){let n=pg(A,r,I,e,t,o),g=IA(A.dtype,r.dtype);if(n instanceof T){let Q=nA(g==="complex64"?"float32":"float64"),a=new Q(2);return a[0]=n.re,a[1]=n.im,sA.fromStorage(d.fromData(a,[],g))}if(typeof n=="number"||typeof n=="bigint"){if(k(g)){let s=nA(g==="complex64"?"float32":"float64"),B=new s(2);return B[0]=Number(n),B[1]=0,sA.fromStorage(d.fromData(B,[],g))}let i=nA(g),Q=new i(1);return Q[0]=n,sA.fromStorage(d.fromData(Q,[],g))}return M(n)}function q3(A,r){return M(Zt(A,r))}function M3(A,r){return M(Qn(A,r))}function x3(A,r){return M(an(A,r))}function J3(A){return M(sn(A))}function U3(A,r){return M(Bn(A,r))}function L3(A){return M(Cn(A))}function H3(A){return M(En(A))}function _3(A){return M(un(A))}function Y3(A){return M(cn(A))}function v3(A){return M(BE(A))}function X3(A){return M(CE(A))}function T3(A){return M(EE(A))}function P3(A){return M(cE(A))}function K3(A,r){return M(DE(A,r))}function V3(A,r){return M(fn(A,r))}function W3(A){return M(Dn(A))}function O3(A,r){return M(mn(A,r))}function Z3(A){return M(yn(A))}function z3(A,r){return M(ln(A,r))}function j3(A,r){return M(hn(A,r))}function $3(A,r){return M(dn(A,r))}function A8(A,r){return M(bn(A,r))}function r8(A,r){return M(pn(A,r))}function I8(A,r){return M(wn(A,r))}function e8(A,r,I=1e-5,e=1e-8){return M(Nn(A,r,I,e))}function t8(A){return M(hf(A))}function o8(A,r){return M(df(A,r))}function n8(A,r=1){return M(bf(A,r))}function i8(A,r){let I=pf(A,r);return[M(I[0]),M(I[1])]}function g8(A,r,I){return M(wf(A,r,I))}function Q8(A,r=1,I=0){return M(Nf(A,r,I))}function a8(A,r){return M(Ff(A,r))}function s8(A,r){return M(Sf(A,r))}function B8(A,r){let I=Gf(A,r);return I instanceof AA?M(I):I}function C8(A){return M(Rf(A))}function E8(A,r,I){let e=po(A,r,I);return e instanceof AA?M(e):e}function u8(A,r,I){let e=wo(A,r,I);return e instanceof AA?M(e):e}function c8(A,r,I){let e=No(A,r,I);return e instanceof AA?M(e):e}function f8(A,r,I){let e=Go(A,r,I);return e instanceof AA?M(e):e}function D8(A,r){let I=Ro(A,r);return I instanceof AA?M(I):I}function m8(A,r){let I=ko(A,r);return I instanceof AA?M(I):I}function y8(A,r,I,e){let t=BI(A,r,I,e);return t instanceof AA?M(t):t}function l8(A,r,I,e){let t=qo(A,r,I,e);return t instanceof AA?M(t):t}function h8(A,r,I){let e=Mo(A,r,I);return e instanceof AA?M(e):e}function d8(A,r,I,e){let t=xo(A,r,I,e);return t instanceof AA?M(t):t}function b8(A,r,I,e){let t=Jo(A,r,I,e);return t instanceof AA?M(t):t}function p8(A,r,I,e){let t=Uo(A,r,I,e);return t instanceof AA?M(t):t}function w8(A,r,I){let e=Lo(A,r,I);return e instanceof AA?M(e):e}function N8(A,r,I){let e=Ho(A,r,I);return e instanceof AA?M(e):e}function cJ(A,r){return M(_o(A,r))}function fJ(A,r){return M(Yo(A,r))}function F8(A,r,I){let e=vo(A,r,I);return e instanceof AA?M(e):e}function S8(A,r,I){let e=Xo(A,r,I);return e instanceof AA?M(e):e}function G8(A,r,I){let e=To(A,r,I);return e instanceof AA?M(e):e}function R8(A,r,I,e){let t=Po(A,r,I,e);return t instanceof AA?M(t):t}function k8(A,r,I,e){let t=Ko(A,r,I,e);return t instanceof AA?M(t):t}function q8(A,r,I){let e=Vo(A,r,I);return e instanceof AA?M(e):e}function M8(A,r,I){let e=Wo(A,r,I);return e instanceof AA?M(e):e}function x8(A,r){let I=Oo(A,r);return I instanceof AA?M(I):I}function J8(A,r){let I=Zo(A,r);return I instanceof AA?M(I):I}function U8(A,r){return M(zo(A,r))}function L8(A,r){return M(jo(A,r))}function H8(A,r,I){let e=$o(A,r,I);return e instanceof AA?M(e):e}function _8(A,r,I,e){let t=An(A,r,I,e);return t instanceof AA?M(t):t}function Y8(A,r,I,e){let t=rn(A,r,I,e);return t instanceof AA?M(t):t}function DJ(A,r=0){return M(Ie(A,r))}function v8(A){return M(oi(A))}function X8(A){return M(ni(A))}function T8(A){return M(ii(A))}function P8(A){return M(gi(A))}function K8(A){return M(Qi(A))}function V8(A,r){return M(yu(A,r))}function W8(A,r){return M(lu(A,r))}function O8(A,r){return M(hu(A,r))}function Z8(A,r){return M(du(A,r))}function z8(A,r){return M(bu(A,r))}function j8(A,r){return M(pu(A,r))}function $8(A,r){return M(wu(A,r))}function AX(A){return M(Gu(A))}function rX(A,r,I){return M(Qf(A,r,I))}function mJ(A,r,I){return M(Zg(A,r,I))}function IX(A,r,I,e){return M(af(A,r,I,e))}function eX(A,r,I="constant",e=0){return M(sf(A,r,I,e))}function tX(A,r){return M(zt(A,r))}function oX(A){return M(yr(A))}function nX(A){return M(jt(A))}function iX(A,r){return M($t(A,r))}function gX(A,r){return M(Ao(A,r))}function QX(A,r,I){return M(ro(A,r,I))}function aX(A,r,I){return M(Io(A,r,I))}function sX(A,r,I=0){return M(VB(A,r,I))}function yJ(A,r=0){return M(TI(A,r))}function BX(A,r=0){return M(WB(A,r))}function CX(A){return M(wg(A))}function EX(A){return M(OB(A))}function uX(A){return M(ZB(A))}function cX(A){return M(zB(A))}function fX(A){return M($B(A))}function DX(A,r=0){return oC(A,r).map(M)}function mX(A,r){return M(nC(A,r))}function yX(A,r,I){return M(eo(A,r,I))}function lX(A,r){return M(to(A,r))}function hX(A){return M(iC(A))}function dX(A){return M(gC(A))}function bX(A,r=1,I=[0,1]){return M(QC(A,r,I))}function pX(A,r,I){return M(aC(A,r,I))}function wX(A,r){return M(oo(A,r))}function NX(A,r=-1){return M(Un(A,r))}function FX(A,r=-1){return M(Ln(A,r))}function SX(A){return M(xE(A))}function GX(A,r,I=-1){return M(Hn(A,r,I))}function RX(A,r,I=-1){return M(_n(A,r,I))}function kX(A){return M(JE(A))}function qX(A){return Yn(A).map(M)}function MX(A){return M(vn(A))}function xX(A){return M(UE(A))}function JX(A,r){return M(HE(A,r))}function UX(A,r,I){return M(Mu(A,r,I))}function LX(A,r,I){return M(xu(A,r,I))}function HX(A,r,I){return M(Hu(A,r,I))}function _X(A,r,I){return M(_u(A,r,I))}function YX(A,r,I,e,t){return M(Yu(A,r,I,e,t))}function vX(A,r,I){return M(vu(A,r,I))}function XX(A,r,I,e){let t=Tu(A,r,I,e);return t instanceof AA?M(t):t}function TX(A){return M(lt(A))}function PX(A){return M(ht(A))}function KX(A){return M(dt(A))}function lJ(A){return M(bt(A))}function hJ(A){return M(pt(A))}function dJ(A){return M(wt(A))}function bJ(A,r){return M(Nt(A,r))}function VX(A,r){return M(Ft(A,r))}function WX(A){return M(St(A))}function OX(A){return M(Gt(A))}function ZX(A){return M(Ts(A))}function zX(A){return M(Ps(A))}function jX(A){return M(Rt(A))}function $X(A){return M(kt(A))}function AT(A){return M(qt(A))}function pJ(A){return M(Mt(A))}function wJ(A){return M(xt(A))}function NJ(A){return M(Jt(A))}var lr=624,$g=397,rT=2567483615,Hf=2147483648,_f=2147483647,cr={mt:new Uint32Array(lr),mti:lr+1};function SJ(A){let r=cr.mt;r[0]=A>>>0;for(let I=1;I<lr;I++){let e=r[I-1]^r[I-1]>>>30;r[I]=Math.imul(1812433253,e)+I>>>0}cr.mti=lr}function Xf(){let A=cr.mt,r,I=[0,rT];if(cr.mti>=lr){let e;for(cr.mti===lr+1&&SJ(5489),e=0;e<lr-$g;e++)r=A[e]&Hf|A[e+1]&_f,A[e]=A[e+$g]^r>>>1^I[r&1];for(;e<lr-1;e++)r=A[e]&Hf|A[e+1]&_f,A[e]=A[e+($g-lr)]^r>>>1^I[r&1];r=A[lr-1]&Hf|A[0]&_f,A[lr-1]=A[$g-1]^r>>>1^I[r&1],cr.mti=0}return r=A[cr.mti++],r^=r>>>11,r^=r<<7&2636928640,r^=r<<15&4022730752,r^=r>>>18,r>>>0}function tA(){let A=Xf()>>>5,r=Xf()>>>6;return(A*67108864+r)/9007199254740992}var IT=2468251765,eT=1492356589,tT=1135663077,oT=2337405405,nT=3389127133,iT=1232336661,Kf=16,AQ=4;function KA(A){return A>>>0}function Yf(A,r){return A=KA(KA(A)^r.val),r.val=KA(Math.imul(r.val,IT)),A=KA(Math.imul(A,r.val)),A=KA(A^A>>>Kf),A}function gT(A,r){let I=KA(KA(Math.imul(nT,KA(A)))-KA(Math.imul(iT,KA(r))));return I=KA(I^I>>>Kf),I}function QT(A){let r=[0,0,0,0],I=[A>>>0],e={val:tT};for(let t=0;t<AQ;t++)t<I.length?r[t]=Yf(I[t],e):r[t]=Yf(0,e);for(let t=0;t<AQ;t++)for(let o=0;o<AQ;o++)if(t!==o){let n=Yf(r[t],e);r[o]=gT(r[o],n)}return r}function aT(A,r){let I=[],e=oT;for(let t=0;t<r;t++){let o=A[t%AQ],n=KA(o^e);e=KA(Math.imul(e,eT)),n=KA(Math.imul(n,e)),n=KA(n^n>>>Kf),I.push(n)}return I}var sT=BigInt("4865540595714422341"),BT=BigInt("2549297995355413924"),CT=BT<<BigInt(64)|sT,vf=BigInt("0xffffffffffffffff"),Tf=(BigInt(1)<<BigInt(128))-BigInt(1);function ET(A){let r=A>>BigInt(64),I=A&vf,e=(r^I)&vf,t=Number(A>>BigInt(122));return(e>>BigInt(t)|e<<BigInt(64-t))&vf}function Pf(A,r){return A*CT+r&Tf}function FJ(A){let r=QT(A),I=aT(r,8),e=BigInt(I[0])|BigInt(I[1])<<BigInt(32),t=BigInt(I[2])|BigInt(I[3])<<BigInt(32),o=BigInt(I[4])|BigInt(I[5])<<BigInt(32),n=BigInt(I[6])|BigInt(I[7])<<BigInt(32),g=e<<BigInt(64)|t,i=(o<<BigInt(64)|n)<<BigInt(1);i=(i|BigInt(1))&Tf;let Q=BigInt(0);return Q=Pf(Q,i),Q=Q+g&Tf,Q=Pf(Q,i),{state:Q,inc:i}}function uT(A){return A.state=Pf(A.state,A.inc),ET(A.state)}function cT(A){let I=uT(A)>>BigInt(11);return Number(I)/9007199254740992}var Gi=class{constructor(r){if(r!==void 0)this._pcgState=FJ(r);else{let I=Math.floor(Math.random()*4294967296);this._pcgState=FJ(I)}}_randomFloat(){return cT(this._pcgState)}random(r){if(r===void 0)return this._randomFloat();let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"float64"),o=t.data;for(let n=0;n<e;n++)o[n]=this._randomFloat();return t}integers(r,I,e){if(I===void 0&&(I=r,r=0),e===void 0)return Math.floor(this._randomFloat()*(I-r))+r;let t=Array.isArray(e)?e:[e],o=t.reduce((Q,a)=>Q*a,1),n=d.zeros(t,"int64"),g=n.data,i=I-r;for(let Q=0;Q<o;Q++)g[Q]=BigInt(Math.floor(this._randomFloat()*i)+r);return n}standard_normal(r){if(r===void 0)return fr(this._randomFloat.bind(this));let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"float64"),o=t.data;for(let n=0;n<e;n+=2){let[g,i]=Ri(this._randomFloat.bind(this));o[n]=g,n+1<e&&(o[n+1]=i)}return t}normal(r=0,I=1,e){if(e===void 0)return fr(this._randomFloat.bind(this))*I+r;let t=Array.isArray(e)?e:[e],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i+=2){let[Q,a]=Ri(this._randomFloat.bind(this));g[i]=Q*I+r,i+1<o&&(g[i+1]=a*I+r)}return n}uniform(r=0,I=1,e){if(e===void 0)return this._randomFloat()*(I-r)+r;let t=Array.isArray(e)?e:[e],o=t.reduce((Q,a)=>Q*a,1),n=d.zeros(t,"float64"),g=n.data,i=I-r;for(let Q=0;Q<o;Q++)g[Q]=this._randomFloat()*i+r;return n}choice(r,I,e=!0,t){return YJ(r,I,e,t,this._randomFloat.bind(this))}permutation(r){return XJ(r,this._randomFloat.bind(this))}shuffle(r){PJ(r,this._randomFloat.bind(this))}exponential(r=1,I){if(I===void 0)return-Math.log(1-this._randomFloat())*r;let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=-Math.log(1-this._randomFloat())*r;return o}poisson(r=1,I){if(I===void 0)return mI(r,this._randomFloat.bind(this));let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"int64"),n=o.data;for(let g=0;g<t;g++)n[g]=BigInt(mI(r,this._randomFloat.bind(this)));return o}binomial(r,I,e){if(e===void 0)return ki(r,I,this._randomFloat.bind(this));let t=Array.isArray(e)?e:[e],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"int64"),g=n.data;for(let i=0;i<o;i++)g[i]=BigInt(ki(r,I,this._randomFloat.bind(this)));return n}};function GJ(A){return new Gi(A)}function RJ(A){A==null&&(A=Math.floor(Date.now()^Math.random()*4294967296)),SJ(A>>>0)}function kJ(){return{mt:Array.from(cr.mt),mti:cr.mti}}function qJ(A){cr.mt=new Uint32Array(A.mt),cr.mti=A.mti}function fr(A){let r,I;do r=A(),I=A();while(r===0);return Math.sqrt(-2*Math.log(r))*Math.cos(2*Math.PI*I)}function Ri(A){let r,I;do r=A(),I=A();while(r===0);let e=Math.sqrt(-2*Math.log(r)),t=2*Math.PI*I;return[e*Math.cos(t),e*Math.sin(t)]}function mI(A,r){if(A<30){let I=Math.exp(-A),e=0,t=1;do e++,t*=r();while(t>I);return e-1}else{let I=fr(r);return Math.max(0,Math.round(A+Math.sqrt(A)*I))}}function ki(A,r,I){if(A*r<10&&A*(1-r)<10){let e=0;for(let t=0;t<A;t++)I()<r&&e++;return e}else{let e=A*r,t=Math.sqrt(A*r*(1-r)),o=fr(I);return Math.max(0,Math.min(A,Math.round(e+t*o)))}}function qi(A){if(A===void 0)return tA();let r=Array.isArray(A)?A:[A],I=r.reduce((o,n)=>o*n,1),e=d.zeros(r,"float64"),t=e.data;for(let o=0;o<I;o++)t[o]=tA();return e}function MJ(...A){if(A.length===0)return tA();let r=A.reduce((t,o)=>t*o,1),I=d.zeros(A,"float64"),e=I.data;for(let t=0;t<r;t++)e[t]=tA();return I}function xJ(...A){if(A.length===0)return fr(tA);let r=A.reduce((t,o)=>t*o,1),I=d.zeros(A,"float64"),e=I.data;for(let t=0;t<r;t+=2){let[o,n]=Ri(tA);e[t]=o,t+1<r&&(e[t+1]=n)}return I}function Vf(A,r,I,e="int64"){r==null&&(r=A,A=0);let t=r-A;if(I===void 0)return Math.floor(tA()*t)+A;let o=Array.isArray(I)?I:[I],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,e),i=g.data;if(L(e)){let Q=i;for(let a=0;a<n;a++)Q[a]=BigInt(Math.floor(tA()*t)+A)}else{let Q=i;for(let a=0;a<n;a++)Q[a]=Math.floor(tA()*t)+A}return g}function JJ(A=0,r=1,I){if(I===void 0)return tA()*(r-A)+A;let e=Array.isArray(I)?I:[I],t=e.reduce((i,Q)=>i*Q,1),o=d.zeros(e,"float64"),n=o.data,g=r-A;for(let i=0;i<t;i++)n[i]=tA()*g+A;return o}function UJ(A=0,r=1,I){if(I===void 0)return fr(tA)*r+A;let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g+=2){let[i,Q]=Ri(tA);n[g]=i*r+A,g+1<t&&(n[g+1]=Q*r+A)}return o}function LJ(A){if(A===void 0)return fr(tA);let r=Array.isArray(A)?A:[A],I=r.reduce((o,n)=>o*n,1),e=d.zeros(r,"float64"),t=e.data;for(let o=0;o<I;o+=2){let[n,g]=Ri(tA);t[o]=n,o+1<I&&(t[o+1]=g)}return e}function Wf(A=1,r){if(r===void 0)return-Math.log(1-tA())*A;let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"float64"),o=t.data;for(let n=0;n<e;n++)o[n]=-Math.log(1-tA())*A;return t}function HJ(A=1,r){if(r===void 0)return mI(A,tA);let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"int64"),o=t.data;for(let n=0;n<e;n++)o[n]=BigInt(mI(A,tA));return t}function _J(A,r,I){if(I===void 0)return ki(A,r,tA);let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"int64"),n=o.data;for(let g=0;g<t;g++)n[g]=BigInt(ki(A,r,tA));return o}function YJ(A,r,I=!0,e,t=tA){let o;if(typeof A=="number")o=Array.from({length:A},(B,C)=>C);else{let B=A.size;o=[];for(let C=0;C<B;C++)o.push(Number(A.iget(C)))}let n=o.length;if(n===0)throw new Error("cannot take a sample from an empty sequence");let g;if(e!==void 0){if(Array.isArray(e))g=e;else{let C=e.size;g=[];for(let E=0;E<C;E++)g.push(Number(e.iget(E)))}if(g.length!==n)throw new Error("p and a must have the same size");let B=g.reduce((C,E)=>C+E,0);Math.abs(B-1)>1e-10&&(g=g.map(C=>C/B))}if(r===void 0){if(g){let B=t(),C=0;for(let E=0;E<n;E++)if(C+=g[E],B<C)return o[E];return o[n-1]}return o[Math.floor(t()*n)]}let i=Array.isArray(r)?r:[r],Q=i.reduce((B,C)=>B*C,1);if(!I&&Q>n)throw new Error("cannot take a larger sample than population when replace=false");let a=d.zeros(i,"float64"),s=a.data;if(I)if(g){let B=new Array(n);B[0]=g[0];for(let C=1;C<n;C++)B[C]=B[C-1]+g[C];for(let C=0;C<Q;C++){let E=t(),u=0;for(;u<n-1&&E>=B[u];)u++;s[C]=o[u]}}else for(let B=0;B<Q;B++)s[B]=o[Math.floor(t()*n)];else{let B=[...o],C=g?[...g]:void 0;for(let E=0;E<Q;E++){let u;if(C){let D=C.reduce((f,y)=>f+y,0),m=t()*D,c=0;u=0;for(let f=0;f<B.length;f++)if(c+=C[f],m<c){u=f;break}u===0&&m>=c&&(u=B.length-1)}else u=Math.floor(t()*B.length);s[E]=B[u],B.splice(u,1),C&&C.splice(u,1)}}return a}function vJ(A,r,I=!0,e){return YJ(A,r,I,e,tA)}function XJ(A,r=tA){let I;if(typeof A=="number"){let t=new Float64Array(A);for(let o=0;o<A;o++)t[o]=o;I=d.fromData(t,[A],"float64")}else I=A.copy();let e=I.size;for(let t=e-1;t>0;t--){let o=Math.floor(r()*(t+1)),n=I.iget(t);I.iset(t,I.iget(o)),I.iset(o,n)}return I}function TJ(A){return XJ(A,tA)}function PJ(A,r=tA){let I=A.size;for(let e=I-1;e>0;e--){let t=Math.floor(r()*(e+1)),o=A.iget(e);A.iset(e,A.iget(t)),A.iset(t,o)}}function KJ(A){PJ(A,tA)}function VJ(A){return qi(A)}function WJ(A){return qi(A)}function OJ(A){return qi(A)}function ZJ(A,r,I){return r===void 0&&(r=A,A=1),Vf(A,r+1,I)}function zJ(A){let r=new Uint8Array(A);for(let I=0;I<A;I++)r[I]=Xf()&255;return r}var jJ={name:"MT19937",state:cr};function $J(){return jJ}function AU(A){jJ=A}function rU(A){return Wf(1,A)}function IU(A,r){if(A<=0)throw new Error("shape must be positive");return rQ(A,1,r)}function eU(A){if(A===void 0)return Math.tan(Math.PI*(tA()-.5));let r=Array.isArray(A)?A:[A],I=r.reduce((o,n)=>o*n,1),e=d.zeros(r,"float64"),t=e.data;for(let o=0;o<I;o++)t[o]=Math.tan(Math.PI*(tA()-.5));return e}function tU(A,r){if(A<=0)throw new Error("df must be positive");let I=g=>{let i=fr(g),Q=VA(A/2,2,g);return i/Math.sqrt(Q/A)};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function VA(A,r,I){if(A<1){let o=I();return VA(1+A,r,I)*Math.pow(o,1/A)}let e=A-1/3,t=1/Math.sqrt(9*e);for(;;){let o,n;do o=fr(I),n=1+t*o;while(n<=0);n=n*n*n;let g=I(),i=o*o;if(g<1-.0331*i*i||Math.log(g)<.5*i+e*(1-n+Math.log(n)))return e*n*r}}function rQ(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 VA(A,r,tA);let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=VA(A,r,tA);return o}function oU(A,r,I){if(A<=0||r<=0)throw new Error("a and b must be positive");let e=i=>{let Q=VA(A,1,i),a=VA(r,1,i);return Q/(Q+a)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function nU(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=i()-.5;return A-r*Math.sign(Q)*Math.log(1-2*Math.abs(Q))};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function iU(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=i();return A+r*Math.log(Q/(1-Q))};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function gU(A=0,r=1,I){if(r<=0)throw new Error("sigma must be positive");let e=i=>Math.exp(A+r*fr(i));if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function QU(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=i();return A-r*Math.log(-Math.log(Q))};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function aU(A,r){if(A<=0)throw new Error("a must be positive");let I=g=>{let i=g();return Math.pow(1-i,-1/A)-1};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function sU(A,r){if(A<=0)throw new Error("a must be positive");let I=g=>{let i=g();return Math.pow(i,1/A)};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function BU(A=1,r){if(A<=0)throw new Error("scale must be positive");let I=g=>{let i=g();return A*Math.sqrt(-2*Math.log(i))};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function CU(A,r,I,e){if(A>r||r>I||A===I)throw new Error("must have left <= mode <= right and left < right");let t=Q=>{let a=Q(),s=(r-A)/(I-A);return a<s?A+Math.sqrt(a*(I-A)*(r-A)):I-Math.sqrt((1-a)*(I-A)*(I-r))};if(e===void 0)return t(tA);let o=Array.isArray(e)?e:[e],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"float64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=t(tA);return g}function EU(A,r,I){if(A<=0)throw new Error("mean must be positive");if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=fr(i),a=Q*Q,s=A/(2*r),B=A+s*(A*a-Math.sqrt(4*A*r*a+A*A*a*a));return i()<=A/(A+B)?B:A*A/B};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function uU(A,r){if(A<=0)throw new Error("a must be positive");let I=g=>{let i=g();return Math.pow(-Math.log(1-i),1/A)};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function cU(A,r){if(A<=0)throw new Error("df must be positive");return rQ(A/2,2,r)}function fU(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 e=i=>{if(r===0)return VA(A/2,2,i);let Q=mI(r/2,i);return VA(A/2+Q,2,i)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function DU(A,r,I){if(A<=0)throw new Error("dfnum must be positive");if(r<=0)throw new Error("dfden must be positive");let e=i=>{let Q=VA(A/2,2,i),a=VA(r/2,2,i);return Q/A/(a/r)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function mU(A,r,I,e){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 t=Q=>{let a=VA(I===0?A/2:A/2+mI(I/2,Q),2,Q),s=VA(r/2,2,Q);return a/A/(s/r)};if(e===void 0)return t(tA);let o=Array.isArray(e)?e:[e],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"float64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=t(tA);return g}function yU(A,r){if(A<=0||A>1)throw new Error("p must be in (0, 1]");let I=g=>{if(A===1)return 1;let i=g();return Math.floor(Math.log(i)/Math.log(1-A))+1};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"int64"),n=o.data;for(let g=0;g<t;g++)n[g]=BigInt(I(tA));return o}function lU(A,r,I,e){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 t=Q=>{let a=A,s=r,B=0,C=I;for(;C>0;){let E=a+s;if(E===0)break;Q()<a/E?(B++,a--):s--,C--}return B};if(e===void 0)return t(tA);let o=Array.isArray(e)?e:[e],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"int64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=BigInt(t(tA));return g}function hU(A,r){if(A<=0||A>=1)throw new Error("p must be in (0, 1)");let I=Math.log(1-A),e=i=>{let Q=i(),a=i(),s=1-Math.exp(I*Q);if(a>=s||a===0)return 1;let B=Math.log(a),C=Math.log(s);return B>=C?1:B>=2*C?2:Math.floor(1+B/C)};if(r===void 0)return e(tA);let t=Array.isArray(r)?r:[r],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"int64"),g=n.data;for(let i=0;i<o;i++)g[i]=BigInt(e(tA));return n}function dU(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 e=i=>{if(r===1)return 0;let Q=VA(A,(1-r)/r,i);return mI(Q,i)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"int64"),g=n.data;for(let i=0;i<o;i++)g[i]=BigInt(e(tA));return n}function bU(A,r){if(A<=1)throw new Error("a must be > 1");let I=A-1,e=Math.pow(2,I),t=Q=>{for(;;){let a=1-Q(),s=Q(),B=Math.floor(Math.pow(a,-1/I)),C=Math.pow(1+1/B,I);if(s*B*(C-1)/(e-1)<=C/e)return B}};if(r===void 0)return t(tA);let o=Array.isArray(r)?r:[r],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"int64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=BigInt(t(tA));return g}function pU(A,r,I){let e=Array.isArray(r)?r:Array.from({length:r.size},(C,E)=>Number(r.iget(E))),t=e.length;if(t===0)throw new Error("pvals must have at least one element");let o=e.reduce((C,E)=>C+E,0),n=e.map(C=>C/o),g=C=>{let E=new Array(t).fill(0),u=A,D=1;for(let m=0;m<t-1&&u>0;m++){let c=n[m]/D,f=ki(u,Math.min(1,Math.max(0,c)),C);E[m]=f,u-=f,D-=n[m]}return E[t-1]=u,E};if(I===void 0){let C=g(tA),E=d.zeros([t],"int64"),u=E.data;for(let D=0;D<t;D++)u[D]=BigInt(C[D]);return E}let i=Array.isArray(I)?I:[I],Q=i.reduce((C,E)=>C*E,1),a=[...i,t],s=d.zeros(a,"int64"),B=s.data;for(let C=0;C<Q;C++){let E=g(tA);for(let u=0;u<t;u++)B[C*t+u]=BigInt(E[u])}return s}function wU(A,r,I,e="warn",t=1e-8){let o=Array.isArray(A)?A:Array.from({length:A.size},(u,D)=>Number(A.iget(D))),n=o.length,g;if(Array.isArray(r))g=r;else{g=[];for(let u=0;u<n;u++){g.push([]);for(let D=0;D<n;D++)g[u].push(Number(r.iget(u*n+D)))}}let i=Array(n).fill(0).map(()=>Array(n).fill(0));for(let u=0;u<n;u++)for(let D=0;D<=u;D++){let m=g[u][D];for(let c=0;c<D;c++)m-=i[u][c]*i[D][c];if(u===D){if(m<-t){if(e==="raise")throw new Error("covariance matrix is not positive semi-definite");e==="warn"&&console.warn("covariance matrix is not positive semi-definite"),m=0}i[u][D]=Math.sqrt(Math.max(0,m))}else i[u][D]=i[D][D]!==0?m/i[D][D]:0}let Q=u=>{let D=[];for(let c=0;c<n;c++)D.push(fr(u));let m=[];for(let c=0;c<n;c++){let f=o[c];for(let y=0;y<=c;y++)f+=i[c][y]*D[y];m.push(f)}return m};if(I===void 0){let u=Q(tA),D=d.zeros([n],"float64"),m=D.data;for(let c=0;c<n;c++)m[c]=u[c];return D}let a=Array.isArray(I)?I:[I],s=a.reduce((u,D)=>u*D,1),B=[...a,n],C=d.zeros(B,"float64"),E=C.data;for(let u=0;u<s;u++){let D=Q(tA);for(let m=0;m<n;m++)E[u*n+m]=D[m]}return C}function NU(A,r){let I=Array.isArray(A)?A:Array.from({length:A.size},(a,s)=>Number(A.iget(s))),e=I.length;if(e<2)throw new Error("alpha must have at least 2 elements");for(let a of I)if(a<=0)throw new Error("all alpha values must be positive");let t=a=>{let s=[],B=0;for(let C=0;C<e;C++){let E=VA(I[C],1,a);s.push(E),B+=E}return s.map(C=>C/B)};if(r===void 0){let a=t(tA),s=d.zeros([e],"float64"),B=s.data;for(let C=0;C<e;C++)B[C]=a[C];return s}let o=Array.isArray(r)?r:[r],n=o.reduce((a,s)=>a*s,1),g=[...o,e],i=d.zeros(g,"float64"),Q=i.data;for(let a=0;a<n;a++){let s=t(tA);for(let B=0;B<e;B++)Q[a*e+B]=s[B]}return i}function FU(A,r,I){if(r<0)throw new Error("kappa must be non-negative");let e=i=>{if(r===0)return 2*Math.PI*i()-Math.PI;let Q=1+Math.sqrt(1+4*r*r),a=(Q-Math.sqrt(2*Q))/(2*r),s=(1+a*a)/(2*a);for(;;){let B=i(),C=Math.cos(Math.PI*B),E=(1+s*C)/(s+C),u=r*(s-E),D=i();if(u*(2-u)>D||Math.log(u/D)+1-u>=0)return((i()>.5?Math.acos(E):-Math.acos(E))+A+Math.PI)%(2*Math.PI)-Math.PI}};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}var DT="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",Mi=null;function kr(){if(Mi)return Mi;let A=atob(DT),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Mi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Mi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Mi}function Of(A){return kr().exports.fft_scratch_size(A)}function Zf(A,r,I,e,t){kr().exports.fft_batch_c128(A,r,I,e,t)}function zf(A,r,I,e,t){kr().exports.ifft_batch_c128(A,r,I,e,t)}function SU(A,r,I,e,t){kr().exports.fft2_c128(A,r,I,e,t)}function GU(A,r,I,e,t){kr().exports.ifft2_c128(A,r,I,e,t)}function RU(A,r){return kr().exports.fft2_scratch_size(A,r)}function kU(A,r,I,e,t){kr().exports.rfft2_f64(A,r,I,e,t)}function qU(A,r){return kr().exports.rfft2_scratch_size(A,r)}function MU(A,r,I,e,t,o){kr().exports.irfft2_f64(A,r,I,e,t,o)}function xU(A,r){return kr().exports.irfft2_scratch_size(A,r)}function mT(A,r,I){let e=A.length;e!==0&&e!==1&&((e&e-1)===0?IQ(A,r,I):lT(A,r,I))}var xi=new Map;function yT(A,r){let I=`${A}_${r}`,e=xi.get(I);if(e)return e;let t=new Float64Array(A/2),o=new Float64Array(A/2),n=r?1:-1;for(let g=0;g<A/2;g++){let i=n*2*Math.PI*g/A;t[g]=Math.cos(i),o[g]=Math.sin(i)}if(e={cos:t,sin:o},xi.set(I,e),xi.size>100){let g=xi.keys().next().value;xi.delete(g)}return e}function IQ(A,r,I){let e=A.length,t=0;for(let g=0;g<e-1;g++){if(g<t){let Q=A[g];A[g]=A[t],A[t]=Q,Q=r[g],r[g]=r[t],r[t]=Q}let i=e>>1;for(;i<=t;)t-=i,i>>=1;t+=i}let{cos:o,sin:n}=yT(e,I);for(let g=2;g<=e;g*=2){let i=g>>1,Q=e/g;for(let a=0;a<e;a+=g)for(let s=0,B=0;s<i;s++,B+=Q){let C=o[B],E=n[B],u=a+s,D=a+s+i,m=A[u],c=r[u],f=A[D],y=r[D],l=C*f-E*y,h=C*y+E*f;A[u]=m+l,r[u]=c+h,A[D]=m-l,r[D]=c-h}}if(I){let g=1/e;for(let i=0;i<e;i++)A[i]=A[i]*g,r[i]=r[i]*g}}function lT(A,r,I){let e=A.length,t=1;for(;t<2*e-1;)t*=2;let o=I?1:-1,n=new Float64Array(e),g=new Float64Array(e);for(let B=0;B<e;B++){let C=o*Math.PI*B*B/e;n[B]=Math.cos(C),g[B]=Math.sin(C)}let i=new Float64Array(t),Q=new Float64Array(t);for(let B=0;B<e;B++){let C=n[B],E=g[B];i[B]=A[B]*C-r[B]*E,Q[B]=r[B]*C+A[B]*E}let a=new Float64Array(t),s=new Float64Array(t);a[0]=n[0],s[0]=-g[0];for(let B=1;B<e;B++)a[B]=n[B],s[B]=-g[B],a[t-B]=n[B],s[t-B]=-g[B];IQ(i,Q,!1),IQ(a,s,!1);for(let B=0;B<t;B++){let C=i[B],E=Q[B],u=a[B],D=s[B];i[B]=C*u-E*D,Q[B]=C*D+E*u}IQ(i,Q,!0);for(let B=0;B<e;B++){let C=i[B],E=Q[B],u=n[B],D=g[B];A[B]=C*u-E*D,r[B]=E*u+C*D}if(I)for(let B=0;B<e;B++)A[B]=A[B]/e,r[B]=r[B]/e}function tQ(A,r,I=-1,e="backward"){return oe(A,r!==void 0?[r]:void 0,[I],e,!1)}function Ji(A,r,I=-1,e="backward"){return oe(A,r!==void 0?[r]:void 0,[I],e,!0)}function jf(A,r,I=[-2,-1],e="backward"){return oe(A,r,I,e,!1)}function JU(A,r,I=[-2,-1],e="backward"){return oe(A,r,I,e,!0)}function UU(A,r,I,e="backward"){return oe(A,r,I,e,!1)}function LU(A,r,I,e="backward"){return oe(A,r,I,e,!0)}function oe(A,r,I,e="backward",t=!1){let o=Array.from(A.shape),n=o.length;if(A.size===0)return d.zeros(o,"complex128");if(n===0){let a=d.zeros([1],"complex128"),s=A.iget(0),B=s instanceof T?s.re:Number(s),C=s instanceof T?s.im:0,E=a.data;return E[0]=B,E[1]=C,d.fromData(a.data,[],"complex128")}let g;if(I===void 0)if(r===void 0)g=Array.from({length:n},(a,s)=>s);else{g=[];for(let a=0;a<r.length;a++)g.push(n-r.length+a)}else g=I.map(a=>a<0?n+a:a);let i=[...o];if(r!==void 0)for(let a=0;a<r.length;a++){let s=g[a];i[s]=r[a]}let Q=Ui(A);if(r!==void 0&&(Q=hT(Q,i,g)),g.length===2&&Q.ndim===2&&e==="backward"&&Q.isCContiguous){let a=Q.shape[g[0]],s=Q.shape[g[1]];if(g[0]===0&&g[1]===1&&a>=nI*Y.thresholdMultiplier&&s>=nI*Y.thresholdMultiplier){let C=a*s*2,E=RU(a,s),u=C*8,D=E*8;J(u*2+D),U();let m=Q.data,c=q(m.subarray(0,C)),f=_(u),y=_(D);(t?GU:SU)(c,f,y,a,s);let h=v(f,C,Float64Array);return d.fromData(h,[a,s],"complex128")}}for(let a of g)Q=bT(Q,a,t,e);return Q}function Ui(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(r==="complex128"||r==="complex64"){let g=d.zeros(I,"complex128"),i=g.data,Q=A.data;for(let a=0;a<e*2;a++)i[a]=Q[a];return g}let t=d.zeros(I,"complex128"),o=t.data,n=A.data;if(r==="float64"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="float32"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int32"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int16"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int8"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="uint32"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="uint16"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="uint8"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int64"||r==="uint64"){let g=n;for(let i=0;i<e;i++)o[i*2]=Number(g[i])}else for(let g=0;g<e;g++)o[g*2]=Number(n[g]);return t}function hT(A,r,I){let e=Array.from(A.shape),t=A;for(let o of I){let n=e[o],g=r[o];n!==g&&(g>n?t=dT(t,o,g):t=$f(t,o,g),e[o]=g)}return t}function dT(A,r,I){let e=Array.from(A.shape),t=e[r];e[r]=I;let o=d.zeros(e,"complex128"),n=o.data,g=A.data,i=e.slice(0,r).reduce((a,s)=>a*s,1),Q=e.slice(r+1).reduce((a,s)=>a*s,1);for(let a=0;a<i;a++)for(let s=0;s<t;s++)for(let B=0;B<Q;B++){let C=(a*t+s)*Q+B,E=(a*I+s)*Q+B;n[E*2]=g[C*2],n[E*2+1]=g[C*2+1]}return o}function $f(A,r,I){let e=Array.from(A.shape),t=e[r];e[r]=I;let o=d.zeros(e,"complex128"),n=o.data,g=A.data,i=e.slice(0,r).reduce((a,s)=>a*s,1),Q=e.slice(r+1).reduce((a,s)=>a*s,1);for(let a=0;a<i;a++)for(let s=0;s<I;s++)for(let B=0;B<Q;B++){let C=(a*t+s)*Q+B,E=(a*I+s)*Q+B;n[E*2]=g[C*2],n[E*2+1]=g[C*2+1]}return o}var nI=32;function bT(A,r,I,e){let t=Array.from(A.shape),o=t[r];if(o===0)return A;let n=d.zeros(t,"complex128"),g=n.data,i=A.data,Q=t.slice(0,r).reduce((C,E)=>C*E,1),a=t.slice(r+1).reduce((C,E)=>C*E,1);if(a===1&&o>=nI*Y.thresholdMultiplier){let C=Q*o*2,E=Of(o),u=C*8,D=E*8;J(u*2+D),U();let m=i.subarray(0,C),c=q(m),f=_(u),y=_(D);(I?zf:Zf)(c,f,y,o,Q);let h=v(f,C,Float64Array);if(g.set(h),e==="ortho"){let b=I?Math.sqrt(o):1/Math.sqrt(o);for(let p=0;p<C;p++)g[p]=g[p]*b}else if(e==="forward"&&!I){let b=1/o;for(let p=0;p<C;p++)g[p]=g[p]*b}else if(e==="forward"&&I)for(let b=0;b<C;b++)g[b]=g[b]*o;return n}if(a>1&&o>=nI*Y.thresholdMultiplier){let C=Q*a,E=C*o*2,u=Of(o),D=E*8,m=u*8;J(D*2+m),U();let c=new Float64Array(E),f=0;for(let N=0;N<Q;N++)for(let F=0;F<a;F++){let G=f*o*2;for(let x=0;x<o;x++){let H=((N*o+x)*a+F)*2;c[G+x*2]=i[H],c[G+x*2+1]=i[H+1]}f++}let y=q(c),l=_(D),h=_(m);(I?zf:Zf)(y,l,h,o,C);let p=v(l,E,Float64Array);f=0;for(let N=0;N<Q;N++)for(let F=0;F<a;F++){let G=f*o*2;for(let x=0;x<o;x++){let H=((N*o+x)*a+F)*2;g[H]=p[G+x*2],g[H+1]=p[G+x*2+1]}f++}let w=Q*o*a*2;if(e==="ortho"){let N=I?Math.sqrt(o):1/Math.sqrt(o);for(let F=0;F<w;F++)g[F]=g[F]*N}else if(e==="forward"&&!I){let N=1/o;for(let F=0;F<w;F++)g[F]=g[F]*N}else if(e==="forward"&&I)for(let N=0;N<w;N++)g[N]=g[N]*o;return n}let s=new Float64Array(o),B=new Float64Array(o);for(let C=0;C<Q;C++)for(let E=0;E<a;E++){for(let u=0;u<o;u++){let D=(C*o+u)*a+E;s[u]=i[D*2],B[u]=i[D*2+1]}if(mT(s,B,I),e==="ortho"){let u=1/Math.sqrt(o);if(I){let D=Math.sqrt(o);for(let m=0;m<o;m++)s[m]=s[m]*D,B[m]=B[m]*D}else for(let D=0;D<o;D++)s[D]=s[D]*u,B[D]=B[D]*u}else if(e==="forward"&&!I){let u=1/o;for(let D=0;D<o;D++)s[D]=s[D]*u,B[D]=B[D]*u}else if(!(e==="backward"&&I)){if(e==="forward"&&I)for(let u=0;u<o;u++)s[u]=s[u]*o,B[u]=B[u]*o}for(let u=0;u<o;u++){let D=(C*o+u)*a+E;g[D*2]=s[u],g[D*2+1]=B[u]}}return n}function oQ(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=r??t[n],i=tQ(A,g,I,e),Q=Math.floor(g/2)+1;return $f(i,n,Q)}function Li(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=t[n],i=r??(g-1)*2,Q=[...t];Q[n]=i;let a=d.zeros(Q,"complex128"),s=a.data,B=Ui(A).data,C=t.slice(0,n).reduce((D,m)=>D*m,1),E=t.slice(n+1).reduce((D,m)=>D*m,1);for(let D=0;D<C;D++)for(let m=0;m<E;m++){for(let c=0;c<g;c++){let f=(D*g+c)*E+m,y=(D*i+c)*E+m;s[y*2]=B[f*2],s[y*2+1]=B[f*2+1]}for(let c=g;c<i;c++){let f=i-c,y=(D*g+f)*E+m,l=(D*i+c)*E+m;s[l*2]=B[y*2],s[l*2+1]=-B[y*2+1]}}let u=Ji(a,i,I,e);return eQ(u)}function HU(A,r,I=[-2,-1],e="backward"){let t=Array.from(A.shape),o=t.length,n=I[0]<0?o+I[0]:I[0],g=I[1]<0?o+I[1]:I[1];if(o===2&&n===0&&g===1&&e==="backward"&&!r&&A.isCContiguous&&!k(A.dtype)){let s=t[0],B=t[1];if(s>=nI*Y.thresholdMultiplier&&B>=nI*Y.thresholdMultiplier){let C=Math.floor(B/2)+1,E=qU(s,B),u=s*B*8,D=s*C*2*8,m=E*8;J(u+D+m),U();let c=A.dtype==="float64"?A.data.subarray(A.offset,A.offset+s*B):Float64Array.from(A.data.subarray(A.offset,A.offset+s*B)),f=q(c),y=_(D),l=_(m);kU(f,y,l,s,B);let h=v(y,s*C*2,Float64Array);return d.fromData(h,[s,C],"complex128")}}let i=jf(A,r,I,e),Q=r?r[1]:t[g],a=Math.floor(Q/2)+1;return $f(i,g,a)}function _U(A,r,I=[-2,-1],e="backward"){let t=Array.from(A.shape),o=t.length,n=I[0]<0?o+I[0]:I[0],g=I[1]<0?o+I[1]:I[1],i=t[g],Q=r?r[1]:(i-1)*2,a=r?r[0]:t[n];if(o===2&&n===0&&g===1&&e==="backward"&&!r&&A.isCContiguous&&k(A.dtype)){let B=t[0],C=t[1];if(B>=nI*Y.thresholdMultiplier&&Q>=nI*Y.thresholdMultiplier){let E=xU(B,Q),u=B*C*2*8,D=B*Q*8,m=E*8;J(u+D+m),U();let c=A.data.subarray(A.offset,A.offset+B*C*2),f=q(c),y=_(D),l=_(m);MU(f,y,l,B,C,Q);let h=v(y,B*Q,Float64Array);return d.fromData(h,[B,Q],"float64")}}let s=Li(A,Q,g,e);return s=Ji(s,a,n,e),eQ(s)}function YU(A,r,I,e="backward"){let o=Array.from(A.shape).length,n;if(I===void 0?n=Array.from({length:o},(a,s)=>s):n=I.map(a=>a<0?o+a:a),n.length===0)return Ui(A);let g=A;for(let a=0;a<n.length-1;a++){let s=n[a],B=r?r[a]:void 0;g=tQ(g,B,s,e)}let i=n[n.length-1],Q=r?r[n.length-1]:void 0;return oQ(g,Q,i,e)}function vU(A,r,I,e="backward"){let t=Array.from(A.shape),o=t.length,n;if(I===void 0?n=Array.from({length:o},(s,B)=>B):n=I.map(s=>s<0?o+s:s),n.length===0)return eQ(Ui(A));let g=n[n.length-1],i=t[g],Q=r?[...r]:n.map((s,B)=>B===n.length-1?(i-1)*2:t[s]),a=Li(A,Q[n.length-1],g,e);for(let s=n.length-2;s>=0;s--){let B=n[s];a=Ji(a,Q[s],B,e)}return eQ(a)}function XU(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=t[n],i=r??(g-1)*2,Q=PU(Ui(A)),a=Li(Q,i,I,e),s=a.data;for(let B=0;B<a.size;B++)s[B]=s[B]*i;return a}function TU(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=r??t[n],i=oQ(A,g,I,e),Q=PU(i),a=Q.data;for(let s=0;s<Q.size*2;s++)a[s]=a[s]/g;return Q}function PU(A){let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"complex128"),t=e.data,o=A.data;for(let n=0;n<I;n++)t[n*2]=o[n*2],t[n*2+1]=-o[n*2+1];return e}function eQ(A){let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"float64"),t=e.data,o=A.data;for(let n=0;n<I;n++)t[n]=o[n*2];return e}function KU(A,r=1){let I=d.zeros([A],"float64"),e=I.data,t=Math.floor((A-1)/2)+1;for(let o=0;o<t;o++)e[o]=o/(A*r);for(let o=t;o<A;o++)e[o]=(o-A)/(A*r);return I}function VU(A,r=1){let I=Math.floor(A/2)+1,e=d.zeros([I],"float64"),t=e.data;for(let o=0;o<I;o++)t[o]=o/(A*r);return e}function WU(A,r){let I=Array.from(A.shape),e=I.length,t;r===void 0?t=Array.from({length:e},(n,g)=>g):typeof r=="number"?t=[r<0?e+r:r]:t=r.map(n=>n<0?e+n:n);let o=I.map((n,g)=>t.includes(g)?Math.floor(I[g]/2):0);return ZU(A,o)}function OU(A,r){let I=Array.from(A.shape),e=I.length,t;r===void 0?t=Array.from({length:e},(n,g)=>g):typeof r=="number"?t=[r<0?e+r:r]:t=r.map(n=>n<0?e+n:n);let o=I.map((n,g)=>t.includes(g)?-Math.floor(I[g]/2):0);return ZU(A,o)}function ZU(A,r){let I=Array.from(A.shape),e=A.dtype,t=A.size,o=d.zeros(I,e),n=e==="complex128"||e==="complex64",g=new Array(I.length);g[I.length-1]=1;for(let i=I.length-2;i>=0;i--)g[i]=g[i+1]*I[i+1];for(let i=0;i<t;i++){let Q=new Array(I.length),a=i;for(let C=0;C<I.length;C++)Q[C]=Math.floor(a/g[C]),a=a%g[C];let s=Q.map((C,E)=>{let u=C+r[E],D=I[E];return u=(u%D+D)%D,u}),B=0;for(let C=0;C<I.length;C++)B+=s[C]*g[C];if(n){let C=A.data,E=o.data;E[B*2]=C[i*2],E[B*2+1]=C[i*2+1]}else{let C=A.iget(i);o.iset(B,C)}}return o}function yI(A){return sA.fromStorage(A.storage)}function hnA(A){return yI(cI(A))}var dnA=Mf;function bnA(A,r){return yI(xf(A,r))}async function pnA(A,r={}){let I=await pi(A,r),e=new Map;for(let[t,o]of I.arrays)e.set(t,yI(o));return{arrays:e,skipped:I.skipped,errors:I.errors}}function wnA(A,r={}){let I=wi(A,r),e=new Map;for(let[t,o]of I.arrays)e.set(t,yI(o));return{arrays:e,skipped:I.skipped,errors:I.errors}}async function NnA(A,r={}){let I=await AJ(A,r),e={};for(let[t,o]of Object.entries(I))e[t]=yI(o);return e}function FnA(A,r={}){let I=rJ(A,r),e={};for(let[t,o]of Object.entries(I))e[t]=yI(o);return e}function SnA(A,r={}){return yI(DI(A,r))}function aA(A){return A&&typeof A=="object"&&"_data"in A&&"_shape"in A?sA.fromStorage(A):A}var RnA={seed:RJ,get_state:kJ,set_state:qJ,get_bit_generator:$J,set_bit_generator:AU,default_rng:GJ,Generator:Gi,random:A=>aA(qi(A)),rand:(...A)=>aA(MJ(...A)),randn:(...A)=>aA(xJ(...A)),randint:(A,r,I,e)=>aA(Vf(A,r,I,e)),random_sample:A=>aA(VJ(A)),ranf:A=>aA(WJ(A)),sample:A=>aA(OJ(A)),random_integers:(A,r,I)=>aA(ZJ(A,r,I)),bytes:zJ,uniform:(A,r,I)=>aA(JJ(A,r,I)),normal:(A,r,I)=>aA(UJ(A,r,I)),standard_normal:A=>aA(LJ(A)),exponential:(A,r)=>aA(Wf(A,r)),standard_exponential:A=>aA(rU(A)),gamma:(A,r,I)=>aA(rQ(A,r,I)),standard_gamma:(A,r)=>aA(IU(A,r)),beta:(A,r,I)=>aA(oU(A,r,I)),chisquare:(A,r)=>aA(cU(A,r)),noncentral_chisquare:(A,r,I)=>aA(fU(A,r,I)),f:(A,r,I)=>aA(DU(A,r,I)),noncentral_f:(A,r,I,e)=>aA(mU(A,r,I,e)),standard_cauchy:A=>aA(eU(A)),standard_t:(A,r)=>aA(tU(A,r)),laplace:(A,r,I)=>aA(nU(A,r,I)),logistic:(A,r,I)=>aA(iU(A,r,I)),lognormal:(A,r,I)=>aA(gU(A,r,I)),gumbel:(A,r,I)=>aA(QU(A,r,I)),pareto:(A,r)=>aA(aU(A,r)),power:(A,r)=>aA(sU(A,r)),rayleigh:(A,r)=>aA(BU(A,r)),triangular:(A,r,I,e)=>aA(CU(A,r,I,e)),wald:(A,r,I)=>aA(EU(A,r,I)),weibull:(A,r)=>aA(uU(A,r)),poisson:(A,r)=>aA(HJ(A,r)),binomial:(A,r,I)=>aA(_J(A,r,I)),geometric:(A,r)=>aA(yU(A,r)),hypergeometric:(A,r,I,e)=>aA(lU(A,r,I,e)),logseries:(A,r)=>aA(hU(A,r)),negative_binomial:(A,r,I)=>aA(dU(A,r,I)),zipf:(A,r)=>aA(bU(A,r)),multinomial:(A,r,I)=>aA(pU(A,r,I)),multivariate_normal:(A,r,I,e,t)=>aA(wU(A,r,I,e,t)),dirichlet:(A,r)=>aA(NU(A,r)),vonmises:(A,r,I)=>aA(FU(A,r,I)),choice:(A,r,I,e)=>aA(vJ(A,r,I,e)),permutation:A=>aA(TJ(A)),shuffle:KJ};function PA(A){return A instanceof sA||A instanceof AA?A.storage:A}var qnA={fft:(A,r,I,e)=>sA.fromStorage(tQ(PA(A),r,I,e)),ifft:(A,r,I,e)=>sA.fromStorage(Ji(PA(A),r,I,e)),fft2:(A,r,I,e)=>sA.fromStorage(jf(PA(A),r,I,e)),ifft2:(A,r,I,e)=>sA.fromStorage(JU(PA(A),r,I,e)),fftn:(A,r,I,e)=>sA.fromStorage(UU(PA(A),r,I,e)),ifftn:(A,r,I,e)=>sA.fromStorage(LU(PA(A),r,I,e)),rfft:(A,r,I,e)=>sA.fromStorage(oQ(PA(A),r,I,e)),irfft:(A,r,I,e)=>sA.fromStorage(Li(PA(A),r,I,e)),rfft2:(A,r,I,e)=>sA.fromStorage(HU(PA(A),r,I,e)),irfft2:(A,r,I,e)=>sA.fromStorage(_U(PA(A),r,I,e)),rfftn:(A,r,I,e)=>sA.fromStorage(YU(PA(A),r,I,e)),irfftn:(A,r,I,e)=>sA.fromStorage(vU(PA(A),r,I,e)),hfft:(A,r,I,e)=>sA.fromStorage(XU(PA(A),r,I,e)),ihfft:(A,r,I,e)=>sA.fromStorage(TU(PA(A),r,I,e)),fftfreq:(A,r)=>sA.fromStorage(KU(A,r)),rfftfreq:(A,r)=>sA.fromStorage(VU(A,r)),fftshift:(A,r)=>sA.fromStorage(WU(PA(A),r)),ifftshift:(A,r)=>sA.fromStorage(OU(PA(A),r))},MnA="1.1.0";function qr(A){return sA.fromStorage(A.storage)}async function wT(A){let r=await _i(A);return qr(cI(r))}function NT(A){let r=Hi(A);return qr(cI(r))}async function FT(A,r){let I=fI(r);await rD(A,I)}function ST(A,r){let I=fI(r);AD(A,I)}async function GT(A,r={}){let I=await _i(A),e=await pi(I,r),t=new Map;for(let[o,n]of e.arrays)t.set(o,qr(n));return{arrays:t,skipped:e.skipped,errors:e.errors}}function RT(A,r={}){let I=Hi(A),e=wi(I,r),t=new Map;for(let[o,n]of e.arrays)t.set(o,qr(n));return{arrays:t,skipped:e.skipped,errors:e.errors}}async function zU(A,r,I={}){let e=await Uf(r,I);await rD(A,e)}function piA(A,r){let I=Lf(r);AD(A,I)}async function wiA(A,r={}){if(A.endsWith(".npy")){if(r.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return wT(A)}else{if(A.endsWith(".npz"))return GT(A,r);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${A}`)}}function NiA(A,r={}){if(A.endsWith(".npy")){if(r.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return NT(A)}else{if(A.endsWith(".npz"))return RT(A,r);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${A}`)}}async function FiA(A,r){if(!A.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${A}`);return FT(A,r)}function SiA(A,r){if(!A.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${A}`);return ST(A,r)}async function GiA(A,r){return A.endsWith(".npz")||(A=A+".npz"),zU(A,r,{compress:!1})}async function RiA(A,r){return A.endsWith(".npz")||(A=A+".npz"),zU(A,r,{compress:!0})}async function kiA(A,r={}){let I=await _i(A,{encoding:r.encoding??"utf-8"});return qr(DI(I,r))}function qiA(A,r={}){let I=Hi(A,{encoding:r.encoding??"utf-8"});return qr(DI(I,r))}async function MiA(A,r,I={}){let e=Si(r,I);await rD(A,e,"utf-8")}function xiA(A,r,I={}){let e=Si(r,I);AD(A,e,"utf-8")}async function JiA(A,r={}){let I=await _i(A,{encoding:r.encoding??"utf-8"});return qr(Ni(I,r))}function UiA(A,r={}){let I=Hi(A,{encoding:r.encoding??"utf-8"});return qr(Ni(I,r))}async function LiA(A,r,I="float64"){let e=await _i(A,{encoding:"utf-8"});return qr(Fi(e,r,I))}function HiA(A,r,I="float64"){let e=Hi(A,{encoding:"utf-8"});return qr(Fi(e,r,I))}export{T as Complex,qf as DTYPE_TO_DESCR,Ir as InvalidNpyError,sA as NDArray,AA as NDArrayCore,Px as SUPPORTED_DTYPES,tI as UnsupportedDTypeError,MnA as __version__,sJ as abs,sJ as absolute,hJ as acos,wJ as acosh,H1 as add,w8 as all,Fn as allclose,Hg as amax,_g as amin,Uv as angle,N8 as any,rX as append,U1 as apply_along_axis,L1 as apply_over_axes,Xv as arange,hJ as arccos,wJ as arccosh,lJ as arcsin,pJ as arcsinh,dJ as arctan,bJ as arctan2,NJ as arctanh,m8 as argmax,D8 as argmin,RX as argpartition,FX as argsort,MX as argwhere,DJ as around,vv as array,Vc as array2string,kc as array_equal,qc as array_equiv,Wc as array_repr,rC as array_split,li as array_str,r3 as asanyarray,Ov as asarray,t3 as asarray_chkfinite,I3 as ascontiguousarray,e3 as asfortranarray,lJ as asin,pJ as asinh,dJ as atan,bJ as atan2,NJ as atanh,sC as atleast_1d,BC as atleast_2d,CC as atleast_3d,p8 as average,Pc as base_repr,Kc as binary_repr,UX as bincount,p1 as bindex,Fv as bitwise_and,Mv as bitwise_count,BJ as bitwise_invert,CJ as bitwise_left_shift,BJ as bitwise_not,Sv as bitwise_or,EJ as bitwise_right_shift,Gv as bitwise_xor,fX as block,ac as broadcast_arrays,sc as broadcast_shapes,m1 as broadcast_to,Af as byteswap,zg as can_cast,ov as cbrt,v8 as ceil,h1 as choose,Dv as clip,cX as column_stack,cf as common_type,d1 as compress,yJ as concat,yJ as concatenate,uJ as conj,uJ as conjugate,_X as convolve,A3 as copy,V3 as copysign,mc as copyto,vX as corrcoef,HX as correlate,PX as cos,$X as cosh,_E as count_nonzero,YX as cov,k3 as cross,fJ as cumprod,cJ as cumsum,fJ as cumulative_prod,cJ as cumulative_sum,ZX as deg2rad,WX as degrees,mJ as delete,mJ as delete_,n3 as diag,G1 as diag_indices,R1 as diag_indices_from,i3 as diagflat,l3 as diagonal,f3 as diff,LX as digitize,rv as divide,iv as divmod,m3 as dot,tC as dsplit,uX as dstack,D3 as ediff1d,YB as einsum,vB as einsum_path,_v as empty,jv as empty_like,r8 as equal,X1 as exp,T1 as exp2,gX as expand_dims,P1 as expm1,JX as extract,Vv as eye,nv as fabs,qnA as fft,ef as fill,wc as fill_diagonal,X8 as fix,xX as flatnonzero,oX as flatten,lX as flip,hX as fliplr,dX as flipud,sv as float_power,T8 as floor,Iv as floor_divide,lv as fmax,hv as fmin,Bv as fmod,Xc as format_float_positional,Tc as format_float_scientific,Cv as frexp,B3 as frombuffer,c3 as fromfile,C3 as fromfunction,E3 as fromiter,LiA as fromregex,HiA as fromregexSync,u3 as fromstring,Yv as full,$v as full_like,Ev as gcd,JiA as genfromtxt,UiA as genfromtxtSync,Kv as geomspace,Yc as get_printoptions,Lc as geterr,Ac as gradient,z3 as greater,j3 as greater_equal,av as heaviside,Ju as histogram,Uu as histogram2d,Xu as histogram_bin_edges,Lu as histogramdd,eC as hsplit,EX as hstack,VX as hypot,Nv as i0,Wv as identity,b1 as iindex,Jv as imag,V8 as in1d,N1 as indices,b3 as inner,IX as insert,bv as interp,W8 as intersect1d,Rv as invert,e8 as isclose,T3 as iscomplex,uE as iscomplexobj,hE as isdtype,L3 as isfinite,mE as isfortran,O8 as isin,H3 as isinf,_3 as isnan,Y3 as isnat,v3 as isneginf,X3 as isposinf,P3 as isreal,fE as isrealobj,yE as isscalar,mf as issubdtype,zc as item,lE as iterable,lc as ix_,h3 as kron,uv as lcm,cv as ldexp,CJ as left_shift,$3 as less,A8 as less_equal,SX as lexsort,KB as linalg,Tv as linspace,wiA as load,wT as loadNpy,NT as loadNpySync,NnA as loadNpz,GT as loadNpzFile,RT as loadNpzFileSync,FnA as loadNpzSync,NiA as loadSync,kiA as loadtxt,qiA as loadtxtSync,K1 as log,W1 as log10,O1 as log1p,V1 as log2,Z1 as logaddexp,z1 as logaddexp2,M3 as logical_and,J3 as logical_not,x3 as logical_or,U3 as logical_xor,Pv as logspace,J1 as mask_indices,q3 as matmul,F3 as matrix_transpose,G3 as matvec,Hg as max,mv as maximum,Jc as may_share_memory,u8 as mean,h8 as median,QJ as meshgrid,_g as min,Df as min_scalar_type,yv as minimum,lf as mintypecode,Av as mod,fv as modf,aX as moveaxis,Y1 as multiply,dv as nan_to_num,J8 as nanargmax,x8 as nanargmin,L8 as nancumprod,U8 as nancumsum,M8 as nanmax,G8 as nanmean,H8 as nanmedian,q8 as nanmin,Y8 as nanpercentile,S8 as nanprod,_8 as nanquantile,k8 as nanstd,F8 as nansum,R8 as nanvar,Oc as ndim,j1 as negative,O3 as nextafter,qX as nonzero,I8 as not_equal,Hv as ones,zv as ones_like,p3 as outer,kv as packbits,eX as pad,hnA as parseNpy,bnA as parseNpyData,dnA as parseNpyHeader,pnA as parseNpz,wnA as parseNpzSync,SnA as parseTxt,GX as partition,d8 as percentile,S3 as permute_dims,fc as place,t8 as poly,o8 as polyadd,n8 as polyder,i8 as polydiv,g8 as polyfit,Q8 as polyint,a8 as polymul,s8 as polysub,B8 as polyval,ev as positive,aJ as pow,aJ as power,vc as printoptions,c8 as prod,dE as promote_types,f8 as ptp,mi as put,Cc as put_along_axis,Dc as putmask,b8 as quantile,zX as rad2deg,OX as radians,RnA as random,nX as ravel,F1 as ravel_multi_index,xv as real,K3 as real_if_close,tv as reciprocal,Qv as remainder,yX as repeat,o3 as require,tX as reshape,wX as resize,ff as result_type,EJ as right_shift,P8 as rint,pX as roll,sX as rollaxis,C8 as roots,bX as rot90,DJ as round,cu as round_,jB as row_stack,FiA as save,FT as saveNpy,ST as saveNpySync,zU as saveNpz,piA as saveNpzSync,SiA as saveSync,MiA as savetxt,xiA as savetxtSync,GiA as savez,RiA as savez_compressed,Xn as searchsorted,w1 as select,fI as serializeNpy,Uf as serializeNpz,Lf as serializeNpzSync,Si as serializeTxt,_c as set_printoptions,Z8 as setdiff1d,Hc as seterr,z8 as setxor1d,Og as shape,Uc as shares_memory,$1 as sign,W3 as signbit,TX as sin,wv as sinc,jX as sinh,Zc as size,NX as sort,kX as sort_complex,Z3 as spacing,AC as split,v1 as sqrt,gv as square,iX as squeeze,BX as stack,l8 as std,_1 as subtract,E8 as sum,QX as swapaxes,y1 as take,l1 as take_along_axis,KX as tan,AT as tanh,w3 as tensordot,mX as tile,$c as tobytes,If as tofile,jc as tolist,y3 as trace,d3 as transpose,XX as trapezoid,g3 as tri,Q3 as tril,k1 as tril_indices,q1 as tril_indices_from,$8 as trim_zeros,a3 as triu,M1 as triu_indices,x1 as triu_indices_from,Qs as true_divide,K8 as trunc,yf as typename,j8 as union1d,mu as unique,Nu as unique_all,Fu as unique_counts,Su as unique_inverse,AX as unique_values,qv as unpackbits,S1 as unravel_index,DX as unstack,pv as unwrap,s3 as vander,RC as var,y8 as variance,XB as vdot,N3 as vecdot,R3 as vecmat,rf as view,IC as vsplit,CX as vstack,Y as wasmConfig,LE as where,Lv as zeros,Zv as zeros_like};
8
- //# sourceMappingURL=numpy-ts.node-io.mjs.map