meteor-node-stubs 1.2.14 → 1.2.16

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 (1069) hide show
  1. package/package.json +29 -4
  2. package/node_modules/@meteorjs/crypto-browserify/.eslintrc +0 -24
  3. package/node_modules/@meteorjs/crypto-browserify/.github/FUNDING.yml +0 -12
  4. package/node_modules/@meteorjs/crypto-browserify/.github/workflows/node-aught.yml +0 -12
  5. package/node_modules/@meteorjs/crypto-browserify/.github/workflows/node-pretest.yml +0 -9
  6. package/node_modules/@meteorjs/crypto-browserify/.github/workflows/node-tens.yml +0 -11
  7. package/node_modules/@meteorjs/crypto-browserify/.github/workflows/rebase.yml +0 -9
  8. package/node_modules/@meteorjs/crypto-browserify/.github/workflows/require-allow-edits.yml +0 -12
  9. package/node_modules/@meteorjs/crypto-browserify/.travis.yml +0 -18
  10. package/node_modules/@meteorjs/crypto-browserify/LICENSE +0 -24
  11. package/node_modules/@meteorjs/crypto-browserify/README.md +0 -69
  12. package/node_modules/@meteorjs/crypto-browserify/example/bundle.js +0 -605
  13. package/node_modules/@meteorjs/crypto-browserify/example/index.html +0 -12
  14. package/node_modules/@meteorjs/crypto-browserify/example/test.js +0 -6
  15. package/node_modules/@meteorjs/crypto-browserify/index.js +0 -103
  16. package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/LICENSE +0 -21
  17. package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/README.md +0 -48
  18. package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/index.js +0 -95
  19. package/node_modules/@meteorjs/crypto-browserify/node_modules/hash-base/package.json +0 -41
  20. package/node_modules/@meteorjs/crypto-browserify/package.json +0 -62
  21. package/node_modules/@meteorjs/crypto-browserify/test/aes.js +0 -53
  22. package/node_modules/@meteorjs/crypto-browserify/test/create-hash.js +0 -51
  23. package/node_modules/@meteorjs/crypto-browserify/test/create-hmac.js +0 -54
  24. package/node_modules/@meteorjs/crypto-browserify/test/dh.js +0 -60
  25. package/node_modules/@meteorjs/crypto-browserify/test/ecdh.js +0 -62
  26. package/node_modules/@meteorjs/crypto-browserify/test/index.js +0 -22
  27. package/node_modules/@meteorjs/crypto-browserify/test/node/dh.js +0 -69
  28. package/node_modules/@meteorjs/crypto-browserify/test/pbkdf2.js +0 -23
  29. package/node_modules/@meteorjs/crypto-browserify/test/public-encrypt.js +0 -39
  30. package/node_modules/@meteorjs/crypto-browserify/test/random-bytes.js +0 -65
  31. package/node_modules/@meteorjs/crypto-browserify/test/random-fill.js +0 -55
  32. package/node_modules/@meteorjs/crypto-browserify/test/sign.js +0 -61
  33. package/node_modules/asn1.js/README.md +0 -100
  34. package/node_modules/asn1.js/lib/asn1/api.js +0 -61
  35. package/node_modules/asn1.js/lib/asn1/base/buffer.js +0 -116
  36. package/node_modules/asn1.js/lib/asn1/base/index.js +0 -6
  37. package/node_modules/asn1.js/lib/asn1/base/node.js +0 -634
  38. package/node_modules/asn1.js/lib/asn1/base/reporter.js +0 -121
  39. package/node_modules/asn1.js/lib/asn1/constants/der.js +0 -42
  40. package/node_modules/asn1.js/lib/asn1/constants/index.js +0 -19
  41. package/node_modules/asn1.js/lib/asn1/decoders/der.js +0 -324
  42. package/node_modules/asn1.js/lib/asn1/decoders/index.js +0 -4
  43. package/node_modules/asn1.js/lib/asn1/decoders/pem.js +0 -49
  44. package/node_modules/asn1.js/lib/asn1/encoders/der.js +0 -295
  45. package/node_modules/asn1.js/lib/asn1/encoders/index.js +0 -4
  46. package/node_modules/asn1.js/lib/asn1/encoders/pem.js +0 -21
  47. package/node_modules/asn1.js/lib/asn1.js +0 -9
  48. package/node_modules/asn1.js/node_modules/bn.js/LICENSE +0 -19
  49. package/node_modules/asn1.js/node_modules/bn.js/README.md +0 -200
  50. package/node_modules/asn1.js/node_modules/bn.js/lib/bn.js +0 -3446
  51. package/node_modules/asn1.js/node_modules/bn.js/package.json +0 -36
  52. package/node_modules/asn1.js/package.json +0 -31
  53. package/node_modules/assert/LICENSE +0 -18
  54. package/node_modules/assert/README.md +0 -75
  55. package/node_modules/assert/build/assert.js +0 -590
  56. package/node_modules/assert/build/internal/assert/assertion_error.js +0 -445
  57. package/node_modules/assert/build/internal/errors.js +0 -171
  58. package/node_modules/assert/build/internal/util/comparisons.js +0 -575
  59. package/node_modules/assert/package.json +0 -46
  60. package/node_modules/available-typed-arrays/.eslintignore +0 -1
  61. package/node_modules/available-typed-arrays/.eslintrc +0 -9
  62. package/node_modules/available-typed-arrays/.github/FUNDING.yml +0 -12
  63. package/node_modules/available-typed-arrays/.nycrc +0 -9
  64. package/node_modules/available-typed-arrays/CHANGELOG.md +0 -79
  65. package/node_modules/available-typed-arrays/LICENSE +0 -21
  66. package/node_modules/available-typed-arrays/README.md +0 -52
  67. package/node_modules/available-typed-arrays/index.js +0 -27
  68. package/node_modules/available-typed-arrays/package.json +0 -82
  69. package/node_modules/available-typed-arrays/test/index.js +0 -18
  70. package/node_modules/base64-js/LICENSE +0 -21
  71. package/node_modules/base64-js/README.md +0 -34
  72. package/node_modules/base64-js/base64js.min.js +0 -1
  73. package/node_modules/base64-js/index.d.ts +0 -3
  74. package/node_modules/base64-js/index.js +0 -150
  75. package/node_modules/base64-js/package.json +0 -47
  76. package/node_modules/bn.js/CHANGELOG.md +0 -51
  77. package/node_modules/bn.js/LICENSE +0 -19
  78. package/node_modules/bn.js/README.md +0 -208
  79. package/node_modules/bn.js/lib/bn.js +0 -3547
  80. package/node_modules/bn.js/package.json +0 -39
  81. package/node_modules/brorand/.npmignore +0 -2
  82. package/node_modules/brorand/README.md +0 -26
  83. package/node_modules/brorand/index.js +0 -65
  84. package/node_modules/brorand/package.json +0 -31
  85. package/node_modules/brorand/test/api-test.js +0 -8
  86. package/node_modules/browserify-aes/.travis.yml +0 -15
  87. package/node_modules/browserify-aes/LICENSE +0 -21
  88. package/node_modules/browserify-aes/README.md +0 -19
  89. package/node_modules/browserify-aes/aes.js +0 -228
  90. package/node_modules/browserify-aes/authCipher.js +0 -117
  91. package/node_modules/browserify-aes/browser.js +0 -13
  92. package/node_modules/browserify-aes/decrypter.js +0 -124
  93. package/node_modules/browserify-aes/encrypter.js +0 -114
  94. package/node_modules/browserify-aes/ghash.js +0 -89
  95. package/node_modules/browserify-aes/incr32.js +0 -15
  96. package/node_modules/browserify-aes/index.js +0 -7
  97. package/node_modules/browserify-aes/modes/cbc.js +0 -17
  98. package/node_modules/browserify-aes/modes/cfb.js +0 -33
  99. package/node_modules/browserify-aes/modes/cfb1.js +0 -42
  100. package/node_modules/browserify-aes/modes/cfb8.js +0 -25
  101. package/node_modules/browserify-aes/modes/ctr.js +0 -30
  102. package/node_modules/browserify-aes/modes/ecb.js +0 -7
  103. package/node_modules/browserify-aes/modes/index.js +0 -18
  104. package/node_modules/browserify-aes/modes/list.json +0 -191
  105. package/node_modules/browserify-aes/modes/ofb.js +0 -16
  106. package/node_modules/browserify-aes/package.json +0 -43
  107. package/node_modules/browserify-aes/streamCipher.js +0 -27
  108. package/node_modules/browserify-cipher/.travis.yml +0 -14
  109. package/node_modules/browserify-cipher/LICENSE +0 -21
  110. package/node_modules/browserify-cipher/README.md +0 -7
  111. package/node_modules/browserify-cipher/browser.js +0 -67
  112. package/node_modules/browserify-cipher/index.js +0 -7
  113. package/node_modules/browserify-cipher/package.json +0 -26
  114. package/node_modules/browserify-cipher/test.js +0 -55
  115. package/node_modules/browserify-des/.travis.yml +0 -8
  116. package/node_modules/browserify-des/index.js +0 -50
  117. package/node_modules/browserify-des/license +0 -21
  118. package/node_modules/browserify-des/modes.js +0 -24
  119. package/node_modules/browserify-des/package.json +0 -30
  120. package/node_modules/browserify-des/readme.md +0 -6
  121. package/node_modules/browserify-des/test.js +0 -81
  122. package/node_modules/browserify-rsa/LICENSE +0 -21
  123. package/node_modules/browserify-rsa/README.md +0 -17
  124. package/node_modules/browserify-rsa/index.js +0 -35
  125. package/node_modules/browserify-rsa/package.json +0 -31
  126. package/node_modules/browserify-sign/LICENSE +0 -13
  127. package/node_modules/browserify-sign/README.md +0 -13
  128. package/node_modules/browserify-sign/algos.js +0 -3
  129. package/node_modules/browserify-sign/browser/algorithms.json +0 -152
  130. package/node_modules/browserify-sign/browser/curves.json +0 -8
  131. package/node_modules/browserify-sign/browser/index.js +0 -92
  132. package/node_modules/browserify-sign/browser/sign.js +0 -150
  133. package/node_modules/browserify-sign/browser/verify.js +0 -86
  134. package/node_modules/browserify-sign/index.js +0 -9
  135. package/node_modules/browserify-sign/node_modules/bn.js/LICENSE +0 -19
  136. package/node_modules/browserify-sign/node_modules/bn.js/README.md +0 -214
  137. package/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js +0 -3547
  138. package/node_modules/browserify-sign/node_modules/bn.js/package.json +0 -39
  139. package/node_modules/browserify-sign/node_modules/hash-base/LICENSE +0 -21
  140. package/node_modules/browserify-sign/node_modules/hash-base/README.md +0 -48
  141. package/node_modules/browserify-sign/node_modules/hash-base/index.js +0 -138
  142. package/node_modules/browserify-sign/node_modules/hash-base/package.json +0 -42
  143. package/node_modules/browserify-sign/node_modules/readable-stream/.travis.yml +0 -34
  144. package/node_modules/browserify-sign/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  145. package/node_modules/browserify-sign/node_modules/readable-stream/GOVERNANCE.md +0 -136
  146. package/node_modules/browserify-sign/node_modules/readable-stream/LICENSE +0 -47
  147. package/node_modules/browserify-sign/node_modules/readable-stream/README.md +0 -58
  148. package/node_modules/browserify-sign/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  149. package/node_modules/browserify-sign/node_modules/readable-stream/duplex-browser.js +0 -1
  150. package/node_modules/browserify-sign/node_modules/readable-stream/duplex.js +0 -1
  151. package/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  152. package/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  153. package/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  154. package/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  155. package/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  156. package/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  157. package/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  158. package/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  159. package/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  160. package/node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/LICENSE +0 -21
  161. package/node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/README.md +0 -584
  162. package/node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.d.ts +0 -187
  163. package/node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js +0 -62
  164. package/node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/package.json +0 -37
  165. package/node_modules/browserify-sign/node_modules/readable-stream/package.json +0 -52
  166. package/node_modules/browserify-sign/node_modules/readable-stream/passthrough.js +0 -1
  167. package/node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js +0 -7
  168. package/node_modules/browserify-sign/node_modules/readable-stream/readable.js +0 -19
  169. package/node_modules/browserify-sign/node_modules/readable-stream/transform.js +0 -1
  170. package/node_modules/browserify-sign/node_modules/readable-stream/writable-browser.js +0 -1
  171. package/node_modules/browserify-sign/node_modules/readable-stream/writable.js +0 -8
  172. package/node_modules/browserify-sign/node_modules/string_decoder/.travis.yml +0 -50
  173. package/node_modules/browserify-sign/node_modules/string_decoder/LICENSE +0 -48
  174. package/node_modules/browserify-sign/node_modules/string_decoder/README.md +0 -47
  175. package/node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js +0 -296
  176. package/node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/LICENSE +0 -21
  177. package/node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/README.md +0 -584
  178. package/node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts +0 -187
  179. package/node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js +0 -62
  180. package/node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/package.json +0 -37
  181. package/node_modules/browserify-sign/node_modules/string_decoder/package.json +0 -31
  182. package/node_modules/browserify-sign/package.json +0 -72
  183. package/node_modules/browserify-zlib/.npmignore +0 -7
  184. package/node_modules/browserify-zlib/.travis.yml +0 -16
  185. package/node_modules/browserify-zlib/LICENSE +0 -70
  186. package/node_modules/browserify-zlib/README.md +0 -24
  187. package/node_modules/browserify-zlib/karma.conf.js +0 -11
  188. package/node_modules/browserify-zlib/lib/binding.js +0 -409
  189. package/node_modules/browserify-zlib/lib/index.js +0 -609
  190. package/node_modules/browserify-zlib/package.json +0 -64
  191. package/node_modules/browserify-zlib/src/binding.js +0 -432
  192. package/node_modules/browserify-zlib/src/index.js +0 -650
  193. package/node_modules/buffer/AUTHORS.md +0 -70
  194. package/node_modules/buffer/LICENSE +0 -21
  195. package/node_modules/buffer/README.md +0 -410
  196. package/node_modules/buffer/index.d.ts +0 -186
  197. package/node_modules/buffer/index.js +0 -1817
  198. package/node_modules/buffer/package.json +0 -96
  199. package/node_modules/buffer-xor/.npmignore +0 -1
  200. package/node_modules/buffer-xor/.travis.yml +0 -9
  201. package/node_modules/buffer-xor/LICENSE +0 -21
  202. package/node_modules/buffer-xor/README.md +0 -41
  203. package/node_modules/buffer-xor/index.js +0 -10
  204. package/node_modules/buffer-xor/inline.js +0 -1
  205. package/node_modules/buffer-xor/inplace.js +0 -9
  206. package/node_modules/buffer-xor/package.json +0 -37
  207. package/node_modules/buffer-xor/test/fixtures.json +0 -23
  208. package/node_modules/buffer-xor/test/index.js +0 -38
  209. package/node_modules/builtin-status-codes/browser.js +0 -64
  210. package/node_modules/builtin-status-codes/build.js +0 -8
  211. package/node_modules/builtin-status-codes/index.js +0 -3
  212. package/node_modules/builtin-status-codes/license +0 -21
  213. package/node_modules/builtin-status-codes/package.json +0 -39
  214. package/node_modules/builtin-status-codes/readme.md +0 -31
  215. package/node_modules/call-bind/.eslintignore +0 -1
  216. package/node_modules/call-bind/.eslintrc +0 -16
  217. package/node_modules/call-bind/.github/FUNDING.yml +0 -12
  218. package/node_modules/call-bind/.nycrc +0 -9
  219. package/node_modules/call-bind/CHANGELOG.md +0 -93
  220. package/node_modules/call-bind/LICENSE +0 -21
  221. package/node_modules/call-bind/README.md +0 -64
  222. package/node_modules/call-bind/callBound.js +0 -15
  223. package/node_modules/call-bind/index.js +0 -35
  224. package/node_modules/call-bind/package.json +0 -95
  225. package/node_modules/call-bind/test/callBound.js +0 -54
  226. package/node_modules/call-bind/test/index.js +0 -80
  227. package/node_modules/cipher-base/.eslintrc +0 -3
  228. package/node_modules/cipher-base/.npmignore +0 -1
  229. package/node_modules/cipher-base/.travis.yml +0 -6
  230. package/node_modules/cipher-base/LICENSE +0 -21
  231. package/node_modules/cipher-base/README.md +0 -17
  232. package/node_modules/cipher-base/index.js +0 -99
  233. package/node_modules/cipher-base/package.json +0 -32
  234. package/node_modules/cipher-base/test.js +0 -111
  235. package/node_modules/console-browserify/.testem.json +0 -14
  236. package/node_modules/console-browserify/.travis.yml +0 -11
  237. package/node_modules/console-browserify/CHANGELOG.md +0 -10
  238. package/node_modules/console-browserify/LICENCE +0 -19
  239. package/node_modules/console-browserify/README.md +0 -42
  240. package/node_modules/console-browserify/index.js +0 -87
  241. package/node_modules/console-browserify/package.json +0 -59
  242. package/node_modules/console-browserify/test/index.js +0 -67
  243. package/node_modules/console-browserify/test/static/index.html +0 -12
  244. package/node_modules/console-browserify/test/static/test-adapter.js +0 -53
  245. package/node_modules/constants-browserify/README.md +0 -54
  246. package/node_modules/constants-browserify/build.sh +0 -1
  247. package/node_modules/constants-browserify/constants.json +0 -209
  248. package/node_modules/constants-browserify/package.json +0 -34
  249. package/node_modules/constants-browserify/test.js +0 -18
  250. package/node_modules/core-util-is/LICENSE +0 -19
  251. package/node_modules/core-util-is/README.md +0 -3
  252. package/node_modules/core-util-is/lib/util.js +0 -107
  253. package/node_modules/core-util-is/package.json +0 -38
  254. package/node_modules/create-ecdh/.travis.yml +0 -7
  255. package/node_modules/create-ecdh/LICENSE +0 -21
  256. package/node_modules/create-ecdh/browser.js +0 -124
  257. package/node_modules/create-ecdh/index.js +0 -3
  258. package/node_modules/create-ecdh/node_modules/bn.js/LICENSE +0 -19
  259. package/node_modules/create-ecdh/node_modules/bn.js/README.md +0 -200
  260. package/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js +0 -3446
  261. package/node_modules/create-ecdh/node_modules/bn.js/package.json +0 -36
  262. package/node_modules/create-ecdh/node_modules/bn.js/util/genCombMulTo.js +0 -65
  263. package/node_modules/create-ecdh/node_modules/bn.js/util/genCombMulTo10.js +0 -65
  264. package/node_modules/create-ecdh/package.json +0 -35
  265. package/node_modules/create-ecdh/readme.md +0 -4
  266. package/node_modules/create-hash/.travis.yml +0 -17
  267. package/node_modules/create-hash/LICENSE +0 -21
  268. package/node_modules/create-hash/README.md +0 -19
  269. package/node_modules/create-hash/browser.js +0 -30
  270. package/node_modules/create-hash/index.js +0 -1
  271. package/node_modules/create-hash/md5.js +0 -5
  272. package/node_modules/create-hash/package.json +0 -39
  273. package/node_modules/create-hash/test.js +0 -41
  274. package/node_modules/create-hmac/LICENSE +0 -21
  275. package/node_modules/create-hmac/README.md +0 -20
  276. package/node_modules/create-hmac/browser.js +0 -62
  277. package/node_modules/create-hmac/index.js +0 -1
  278. package/node_modules/create-hmac/legacy.js +0 -46
  279. package/node_modules/create-hmac/package.json +0 -45
  280. package/node_modules/define-data-property/.eslintrc +0 -24
  281. package/node_modules/define-data-property/.github/FUNDING.yml +0 -12
  282. package/node_modules/define-data-property/.nycrc +0 -13
  283. package/node_modules/define-data-property/CHANGELOG.md +0 -70
  284. package/node_modules/define-data-property/LICENSE +0 -21
  285. package/node_modules/define-data-property/README.md +0 -67
  286. package/node_modules/define-data-property/index.d.ts +0 -12
  287. package/node_modules/define-data-property/index.js +0 -56
  288. package/node_modules/define-data-property/package.json +0 -106
  289. package/node_modules/define-data-property/test/index.js +0 -392
  290. package/node_modules/define-data-property/tsconfig.json +0 -59
  291. package/node_modules/define-properties/.editorconfig +0 -13
  292. package/node_modules/define-properties/.eslintrc +0 -19
  293. package/node_modules/define-properties/.github/FUNDING.yml +0 -12
  294. package/node_modules/define-properties/.nycrc +0 -9
  295. package/node_modules/define-properties/CHANGELOG.md +0 -91
  296. package/node_modules/define-properties/LICENSE +0 -21
  297. package/node_modules/define-properties/README.md +0 -84
  298. package/node_modules/define-properties/index.js +0 -47
  299. package/node_modules/define-properties/package.json +0 -88
  300. package/node_modules/des.js/.jscsrc +0 -46
  301. package/node_modules/des.js/.jshintrc +0 -89
  302. package/node_modules/des.js/README.md +0 -26
  303. package/node_modules/des.js/lib/des/cbc.js +0 -65
  304. package/node_modules/des.js/lib/des/cipher.js +0 -141
  305. package/node_modules/des.js/lib/des/des.js +0 -142
  306. package/node_modules/des.js/lib/des/ede.js +0 -54
  307. package/node_modules/des.js/lib/des/utils.js +0 -256
  308. package/node_modules/des.js/lib/des.js +0 -7
  309. package/node_modules/des.js/package.json +0 -34
  310. package/node_modules/des.js/test/cbc-test.js +0 -73
  311. package/node_modules/des.js/test/des-test.js +0 -139
  312. package/node_modules/des.js/test/ede-test.js +0 -73
  313. package/node_modules/des.js/test/fixtures.js +0 -5
  314. package/node_modules/des.js/test/utils-test.js +0 -169
  315. package/node_modules/diffie-hellman/.travis.yml +0 -10
  316. package/node_modules/diffie-hellman/LICENSE +0 -19
  317. package/node_modules/diffie-hellman/browser.js +0 -42
  318. package/node_modules/diffie-hellman/index.js +0 -10
  319. package/node_modules/diffie-hellman/lib/dh.js +0 -164
  320. package/node_modules/diffie-hellman/lib/generatePrime.js +0 -105
  321. package/node_modules/diffie-hellman/lib/primes.json +0 -34
  322. package/node_modules/diffie-hellman/node_modules/bn.js/LICENSE +0 -19
  323. package/node_modules/diffie-hellman/node_modules/bn.js/README.md +0 -200
  324. package/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js +0 -3446
  325. package/node_modules/diffie-hellman/node_modules/bn.js/package.json +0 -36
  326. package/node_modules/diffie-hellman/package.json +0 -35
  327. package/node_modules/diffie-hellman/readme.md +0 -4
  328. package/node_modules/domain-browser/.prettierignore +0 -57
  329. package/node_modules/domain-browser/LICENSE.md +0 -101
  330. package/node_modules/domain-browser/README.md +0 -126
  331. package/node_modules/domain-browser/package.json +0 -135
  332. package/node_modules/domain-browser/source/index.js +0 -66
  333. package/node_modules/elliptic/README.md +0 -238
  334. package/node_modules/elliptic/lib/elliptic/curve/base.js +0 -381
  335. package/node_modules/elliptic/lib/elliptic/curve/edwards.js +0 -435
  336. package/node_modules/elliptic/lib/elliptic/curve/index.js +0 -8
  337. package/node_modules/elliptic/lib/elliptic/curve/mont.js +0 -178
  338. package/node_modules/elliptic/lib/elliptic/curve/short.js +0 -938
  339. package/node_modules/elliptic/lib/elliptic/curves.js +0 -206
  340. package/node_modules/elliptic/lib/elliptic/ec/index.js +0 -278
  341. package/node_modules/elliptic/lib/elliptic/ec/key.js +0 -121
  342. package/node_modules/elliptic/lib/elliptic/ec/signature.js +0 -176
  343. package/node_modules/elliptic/lib/elliptic/eddsa/index.js +0 -121
  344. package/node_modules/elliptic/lib/elliptic/eddsa/key.js +0 -95
  345. package/node_modules/elliptic/lib/elliptic/eddsa/signature.js +0 -66
  346. package/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js +0 -780
  347. package/node_modules/elliptic/lib/elliptic/utils.js +0 -122
  348. package/node_modules/elliptic/lib/elliptic.js +0 -13
  349. package/node_modules/elliptic/node_modules/bn.js/LICENSE +0 -19
  350. package/node_modules/elliptic/node_modules/bn.js/README.md +0 -200
  351. package/node_modules/elliptic/node_modules/bn.js/lib/bn.js +0 -3446
  352. package/node_modules/elliptic/node_modules/bn.js/package.json +0 -36
  353. package/node_modules/elliptic/package.json +0 -56
  354. package/node_modules/es-define-property/.eslintrc +0 -13
  355. package/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  356. package/node_modules/es-define-property/.nycrc +0 -9
  357. package/node_modules/es-define-property/CHANGELOG.md +0 -15
  358. package/node_modules/es-define-property/LICENSE +0 -21
  359. package/node_modules/es-define-property/README.md +0 -49
  360. package/node_modules/es-define-property/index.d.ts +0 -3
  361. package/node_modules/es-define-property/index.js +0 -16
  362. package/node_modules/es-define-property/package.json +0 -81
  363. package/node_modules/es-define-property/test/index.js +0 -55
  364. package/node_modules/es-define-property/tsconfig.json +0 -50
  365. package/node_modules/es-errors/.eslintrc +0 -5
  366. package/node_modules/es-errors/.github/FUNDING.yml +0 -12
  367. package/node_modules/es-errors/CHANGELOG.md +0 -40
  368. package/node_modules/es-errors/LICENSE +0 -21
  369. package/node_modules/es-errors/README.md +0 -55
  370. package/node_modules/es-errors/eval.d.ts +0 -3
  371. package/node_modules/es-errors/eval.js +0 -4
  372. package/node_modules/es-errors/index.d.ts +0 -3
  373. package/node_modules/es-errors/index.js +0 -4
  374. package/node_modules/es-errors/package.json +0 -80
  375. package/node_modules/es-errors/range.d.ts +0 -3
  376. package/node_modules/es-errors/range.js +0 -4
  377. package/node_modules/es-errors/ref.d.ts +0 -3
  378. package/node_modules/es-errors/ref.js +0 -4
  379. package/node_modules/es-errors/syntax.d.ts +0 -3
  380. package/node_modules/es-errors/syntax.js +0 -4
  381. package/node_modules/es-errors/test/index.js +0 -19
  382. package/node_modules/es-errors/tsconfig.json +0 -49
  383. package/node_modules/es-errors/type.d.ts +0 -3
  384. package/node_modules/es-errors/type.js +0 -4
  385. package/node_modules/es-errors/uri.d.ts +0 -3
  386. package/node_modules/es-errors/uri.js +0 -4
  387. package/node_modules/events/.airtap.yml +0 -15
  388. package/node_modules/events/.github/FUNDING.yml +0 -12
  389. package/node_modules/events/.travis.yml +0 -18
  390. package/node_modules/events/History.md +0 -118
  391. package/node_modules/events/LICENSE +0 -22
  392. package/node_modules/events/Readme.md +0 -50
  393. package/node_modules/events/events.js +0 -497
  394. package/node_modules/events/package.json +0 -37
  395. package/node_modules/events/security.md +0 -10
  396. package/node_modules/events/tests/add-listeners.js +0 -111
  397. package/node_modules/events/tests/check-listener-leaks.js +0 -101
  398. package/node_modules/events/tests/common.js +0 -104
  399. package/node_modules/events/tests/errors.js +0 -13
  400. package/node_modules/events/tests/events-list.js +0 -28
  401. package/node_modules/events/tests/events-once.js +0 -234
  402. package/node_modules/events/tests/index.js +0 -64
  403. package/node_modules/events/tests/legacy-compat.js +0 -16
  404. package/node_modules/events/tests/listener-count.js +0 -37
  405. package/node_modules/events/tests/listeners-side-effects.js +0 -56
  406. package/node_modules/events/tests/listeners.js +0 -168
  407. package/node_modules/events/tests/max-listeners.js +0 -47
  408. package/node_modules/events/tests/method-names.js +0 -35
  409. package/node_modules/events/tests/modify-in-emit.js +0 -90
  410. package/node_modules/events/tests/num-args.js +0 -60
  411. package/node_modules/events/tests/once.js +0 -83
  412. package/node_modules/events/tests/prepend.js +0 -31
  413. package/node_modules/events/tests/remove-all-listeners.js +0 -133
  414. package/node_modules/events/tests/remove-listeners.js +0 -212
  415. package/node_modules/events/tests/set-max-listeners-side-effects.js +0 -31
  416. package/node_modules/events/tests/special-event-names.js +0 -45
  417. package/node_modules/events/tests/subclass.js +0 -66
  418. package/node_modules/events/tests/symbols.js +0 -25
  419. package/node_modules/evp_bytestokey/LICENSE +0 -21
  420. package/node_modules/evp_bytestokey/README.md +0 -51
  421. package/node_modules/evp_bytestokey/index.js +0 -45
  422. package/node_modules/evp_bytestokey/package.json +0 -45
  423. package/node_modules/for-each/.editorconfig +0 -20
  424. package/node_modules/for-each/.eslintrc +0 -16
  425. package/node_modules/for-each/.travis.yml +0 -45
  426. package/node_modules/for-each/LICENSE +0 -22
  427. package/node_modules/for-each/README.md +0 -43
  428. package/node_modules/for-each/index.js +0 -62
  429. package/node_modules/for-each/package.json +0 -65
  430. package/node_modules/for-each/test/.eslintrc +0 -8
  431. package/node_modules/for-each/test/test.js +0 -182
  432. package/node_modules/function-bind/.eslintrc +0 -21
  433. package/node_modules/function-bind/.github/FUNDING.yml +0 -12
  434. package/node_modules/function-bind/.github/SECURITY.md +0 -3
  435. package/node_modules/function-bind/.nycrc +0 -13
  436. package/node_modules/function-bind/CHANGELOG.md +0 -136
  437. package/node_modules/function-bind/LICENSE +0 -20
  438. package/node_modules/function-bind/README.md +0 -46
  439. package/node_modules/function-bind/implementation.js +0 -84
  440. package/node_modules/function-bind/index.js +0 -5
  441. package/node_modules/function-bind/package.json +0 -87
  442. package/node_modules/function-bind/test/.eslintrc +0 -9
  443. package/node_modules/function-bind/test/index.js +0 -252
  444. package/node_modules/get-intrinsic/.eslintrc +0 -38
  445. package/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  446. package/node_modules/get-intrinsic/.nycrc +0 -9
  447. package/node_modules/get-intrinsic/CHANGELOG.md +0 -143
  448. package/node_modules/get-intrinsic/LICENSE +0 -21
  449. package/node_modules/get-intrinsic/README.md +0 -71
  450. package/node_modules/get-intrinsic/index.js +0 -359
  451. package/node_modules/get-intrinsic/package.json +0 -93
  452. package/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  453. package/node_modules/gopd/.eslintrc +0 -16
  454. package/node_modules/gopd/.github/FUNDING.yml +0 -12
  455. package/node_modules/gopd/CHANGELOG.md +0 -25
  456. package/node_modules/gopd/LICENSE +0 -21
  457. package/node_modules/gopd/README.md +0 -40
  458. package/node_modules/gopd/index.js +0 -16
  459. package/node_modules/gopd/package.json +0 -71
  460. package/node_modules/gopd/test/index.js +0 -35
  461. package/node_modules/has-property-descriptors/.eslintrc +0 -13
  462. package/node_modules/has-property-descriptors/.github/FUNDING.yml +0 -12
  463. package/node_modules/has-property-descriptors/.nycrc +0 -9
  464. package/node_modules/has-property-descriptors/CHANGELOG.md +0 -35
  465. package/node_modules/has-property-descriptors/LICENSE +0 -21
  466. package/node_modules/has-property-descriptors/README.md +0 -43
  467. package/node_modules/has-property-descriptors/index.js +0 -22
  468. package/node_modules/has-property-descriptors/package.json +0 -77
  469. package/node_modules/has-property-descriptors/test/index.js +0 -57
  470. package/node_modules/has-proto/.eslintrc +0 -5
  471. package/node_modules/has-proto/.github/FUNDING.yml +0 -12
  472. package/node_modules/has-proto/CHANGELOG.md +0 -23
  473. package/node_modules/has-proto/LICENSE +0 -21
  474. package/node_modules/has-proto/README.md +0 -38
  475. package/node_modules/has-proto/index.js +0 -11
  476. package/node_modules/has-proto/package.json +0 -74
  477. package/node_modules/has-proto/test/index.js +0 -19
  478. package/node_modules/has-symbols/.eslintrc +0 -11
  479. package/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  480. package/node_modules/has-symbols/.nycrc +0 -9
  481. package/node_modules/has-symbols/CHANGELOG.md +0 -75
  482. package/node_modules/has-symbols/LICENSE +0 -21
  483. package/node_modules/has-symbols/README.md +0 -46
  484. package/node_modules/has-symbols/index.js +0 -13
  485. package/node_modules/has-symbols/package.json +0 -101
  486. package/node_modules/has-symbols/shams.js +0 -42
  487. package/node_modules/has-symbols/test/index.js +0 -22
  488. package/node_modules/has-symbols/test/shams/core-js.js +0 -28
  489. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -28
  490. package/node_modules/has-symbols/test/tests.js +0 -56
  491. package/node_modules/has-tostringtag/.eslintrc +0 -11
  492. package/node_modules/has-tostringtag/.github/FUNDING.yml +0 -12
  493. package/node_modules/has-tostringtag/CHANGELOG.md +0 -20
  494. package/node_modules/has-tostringtag/LICENSE +0 -21
  495. package/node_modules/has-tostringtag/README.md +0 -46
  496. package/node_modules/has-tostringtag/index.js +0 -7
  497. package/node_modules/has-tostringtag/package.json +0 -84
  498. package/node_modules/has-tostringtag/shams.js +0 -7
  499. package/node_modules/has-tostringtag/test/index.js +0 -21
  500. package/node_modules/has-tostringtag/test/shams/core-js.js +0 -28
  501. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +0 -28
  502. package/node_modules/has-tostringtag/test/tests.js +0 -14
  503. package/node_modules/hash-base/LICENSE +0 -21
  504. package/node_modules/hash-base/README.md +0 -48
  505. package/node_modules/hash-base/index.js +0 -95
  506. package/node_modules/hash-base/package.json +0 -42
  507. package/node_modules/hash.js/.eslintrc.js +0 -41
  508. package/node_modules/hash.js/.travis.yml +0 -10
  509. package/node_modules/hash.js/README.md +0 -48
  510. package/node_modules/hash.js/lib/hash/common.js +0 -92
  511. package/node_modules/hash.js/lib/hash/hmac.js +0 -47
  512. package/node_modules/hash.js/lib/hash/ripemd.js +0 -146
  513. package/node_modules/hash.js/lib/hash/sha/1.js +0 -74
  514. package/node_modules/hash.js/lib/hash/sha/224.js +0 -30
  515. package/node_modules/hash.js/lib/hash/sha/256.js +0 -105
  516. package/node_modules/hash.js/lib/hash/sha/384.js +0 -35
  517. package/node_modules/hash.js/lib/hash/sha/512.js +0 -330
  518. package/node_modules/hash.js/lib/hash/sha/common.js +0 -49
  519. package/node_modules/hash.js/lib/hash/sha.js +0 -7
  520. package/node_modules/hash.js/lib/hash/utils.js +0 -278
  521. package/node_modules/hash.js/lib/hash.d.ts +0 -106
  522. package/node_modules/hash.js/lib/hash.js +0 -15
  523. package/node_modules/hash.js/package.json +0 -35
  524. package/node_modules/hash.js/test/hash-test.js +0 -140
  525. package/node_modules/hash.js/test/hmac-test.js +0 -62
  526. package/node_modules/hasown/.eslintrc +0 -5
  527. package/node_modules/hasown/.github/FUNDING.yml +0 -12
  528. package/node_modules/hasown/.nycrc +0 -13
  529. package/node_modules/hasown/CHANGELOG.md +0 -20
  530. package/node_modules/hasown/LICENSE +0 -21
  531. package/node_modules/hasown/README.md +0 -40
  532. package/node_modules/hasown/index.d.ts +0 -3
  533. package/node_modules/hasown/index.d.ts.map +0 -1
  534. package/node_modules/hasown/index.js +0 -8
  535. package/node_modules/hasown/package.json +0 -91
  536. package/node_modules/hasown/tsconfig.json +0 -49
  537. package/node_modules/hmac-drbg/.npmignore +0 -2
  538. package/node_modules/hmac-drbg/.travis.yml +0 -11
  539. package/node_modules/hmac-drbg/README.md +0 -48
  540. package/node_modules/hmac-drbg/lib/hmac-drbg.js +0 -113
  541. package/node_modules/hmac-drbg/package.json +0 -32
  542. package/node_modules/hmac-drbg/test/drbg-test.js +0 -91
  543. package/node_modules/hmac-drbg/test/fixtures/hmac-drbg-nist.json +0 -332
  544. package/node_modules/https-browserify/LICENSE +0 -20
  545. package/node_modules/https-browserify/index.js +0 -31
  546. package/node_modules/https-browserify/package.json +0 -28
  547. package/node_modules/https-browserify/readme.markdown +0 -22
  548. package/node_modules/ieee754/LICENSE +0 -11
  549. package/node_modules/ieee754/README.md +0 -51
  550. package/node_modules/ieee754/index.d.ts +0 -10
  551. package/node_modules/ieee754/index.js +0 -85
  552. package/node_modules/ieee754/package.json +0 -52
  553. package/node_modules/inherits/LICENSE +0 -16
  554. package/node_modules/inherits/README.md +0 -42
  555. package/node_modules/inherits/inherits.js +0 -9
  556. package/node_modules/inherits/inherits_browser.js +0 -27
  557. package/node_modules/inherits/package.json +0 -29
  558. package/node_modules/is-arguments/.editorconfig +0 -20
  559. package/node_modules/is-arguments/.eslintignore +0 -1
  560. package/node_modules/is-arguments/.eslintrc +0 -10
  561. package/node_modules/is-arguments/.github/FUNDING.yml +0 -12
  562. package/node_modules/is-arguments/.nycrc +0 -9
  563. package/node_modules/is-arguments/CHANGELOG.md +0 -179
  564. package/node_modules/is-arguments/LICENSE +0 -20
  565. package/node_modules/is-arguments/README.md +0 -47
  566. package/node_modules/is-arguments/index.js +0 -33
  567. package/node_modules/is-arguments/package.json +0 -91
  568. package/node_modules/is-arguments/test/index.js +0 -44
  569. package/node_modules/is-callable/.editorconfig +0 -31
  570. package/node_modules/is-callable/.eslintrc +0 -10
  571. package/node_modules/is-callable/.github/FUNDING.yml +0 -12
  572. package/node_modules/is-callable/.nycrc +0 -9
  573. package/node_modules/is-callable/CHANGELOG.md +0 -158
  574. package/node_modules/is-callable/LICENSE +0 -22
  575. package/node_modules/is-callable/README.md +0 -83
  576. package/node_modules/is-callable/index.js +0 -101
  577. package/node_modules/is-callable/package.json +0 -106
  578. package/node_modules/is-callable/test/index.js +0 -244
  579. package/node_modules/is-generator-function/.eslintignore +0 -1
  580. package/node_modules/is-generator-function/.eslintrc +0 -9
  581. package/node_modules/is-generator-function/.nvmrc +0 -1
  582. package/node_modules/is-generator-function/.nycrc +0 -9
  583. package/node_modules/is-generator-function/CHANGELOG.md +0 -216
  584. package/node_modules/is-generator-function/LICENSE +0 -20
  585. package/node_modules/is-generator-function/README.md +0 -40
  586. package/node_modules/is-generator-function/index.js +0 -38
  587. package/node_modules/is-generator-function/package.json +0 -87
  588. package/node_modules/is-generator-function/test/corejs.js +0 -5
  589. package/node_modules/is-generator-function/test/index.js +0 -83
  590. package/node_modules/is-generator-function/test/uglified.js +0 -8
  591. package/node_modules/is-nan/.eslintignore +0 -1
  592. package/node_modules/is-nan/.eslintrc +0 -5
  593. package/node_modules/is-nan/.github/FUNDING.yml +0 -12
  594. package/node_modules/is-nan/.nycrc +0 -13
  595. package/node_modules/is-nan/CHANGELOG.md +0 -56
  596. package/node_modules/is-nan/LICENSE +0 -20
  597. package/node_modules/is-nan/README.md +0 -49
  598. package/node_modules/is-nan/auto.js +0 -3
  599. package/node_modules/is-nan/implementation.js +0 -7
  600. package/node_modules/is-nan/index.js +0 -20
  601. package/node_modules/is-nan/package.json +0 -77
  602. package/node_modules/is-nan/polyfill.js +0 -10
  603. package/node_modules/is-nan/shim.js +0 -16
  604. package/node_modules/is-nan/test/index.js +0 -11
  605. package/node_modules/is-nan/test/shimmed.js +0 -30
  606. package/node_modules/is-nan/test/tests.js +0 -40
  607. package/node_modules/is-typed-array/.editorconfig +0 -20
  608. package/node_modules/is-typed-array/.eslintrc +0 -13
  609. package/node_modules/is-typed-array/.github/FUNDING.yml +0 -12
  610. package/node_modules/is-typed-array/.nycrc +0 -9
  611. package/node_modules/is-typed-array/CHANGELOG.md +0 -134
  612. package/node_modules/is-typed-array/LICENSE +0 -22
  613. package/node_modules/is-typed-array/README.md +0 -70
  614. package/node_modules/is-typed-array/index.js +0 -7
  615. package/node_modules/is-typed-array/package.json +0 -116
  616. package/node_modules/is-typed-array/test/index.js +0 -103
  617. package/node_modules/isarray/.npmignore +0 -1
  618. package/node_modules/isarray/.travis.yml +0 -4
  619. package/node_modules/isarray/Makefile +0 -6
  620. package/node_modules/isarray/README.md +0 -60
  621. package/node_modules/isarray/component.json +0 -19
  622. package/node_modules/isarray/index.js +0 -5
  623. package/node_modules/isarray/package.json +0 -45
  624. package/node_modules/isarray/test.js +0 -20
  625. package/node_modules/md5.js/LICENSE +0 -21
  626. package/node_modules/md5.js/README.md +0 -29
  627. package/node_modules/md5.js/index.js +0 -146
  628. package/node_modules/md5.js/package.json +0 -38
  629. package/node_modules/miller-rabin/.npmignore +0 -2
  630. package/node_modules/miller-rabin/1.js +0 -7
  631. package/node_modules/miller-rabin/README.md +0 -26
  632. package/node_modules/miller-rabin/bin/miller-rabin +0 -29
  633. package/node_modules/miller-rabin/lib/mr.js +0 -115
  634. package/node_modules/miller-rabin/node_modules/bn.js/LICENSE +0 -19
  635. package/node_modules/miller-rabin/node_modules/bn.js/README.md +0 -200
  636. package/node_modules/miller-rabin/node_modules/bn.js/lib/bn.js +0 -3446
  637. package/node_modules/miller-rabin/node_modules/bn.js/package.json +0 -36
  638. package/node_modules/miller-rabin/package.json +0 -32
  639. package/node_modules/miller-rabin/test/api-test.js +0 -18
  640. package/node_modules/miller-rabin/test.js +0 -25
  641. package/node_modules/minimalistic-assert/LICENSE +0 -13
  642. package/node_modules/minimalistic-assert/index.js +0 -11
  643. package/node_modules/minimalistic-assert/package.json +0 -19
  644. package/node_modules/minimalistic-assert/readme.md +0 -4
  645. package/node_modules/minimalistic-crypto-utils/.npmignore +0 -2
  646. package/node_modules/minimalistic-crypto-utils/.travis.yml +0 -11
  647. package/node_modules/minimalistic-crypto-utils/README.md +0 -47
  648. package/node_modules/minimalistic-crypto-utils/lib/utils.js +0 -58
  649. package/node_modules/minimalistic-crypto-utils/package.json +0 -27
  650. package/node_modules/minimalistic-crypto-utils/test/utils-test.js +0 -28
  651. package/node_modules/object-inspect/.eslintrc +0 -53
  652. package/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  653. package/node_modules/object-inspect/.nycrc +0 -13
  654. package/node_modules/object-inspect/CHANGELOG.md +0 -404
  655. package/node_modules/object-inspect/LICENSE +0 -21
  656. package/node_modules/object-inspect/example/all.js +0 -23
  657. package/node_modules/object-inspect/example/circular.js +0 -6
  658. package/node_modules/object-inspect/example/fn.js +0 -5
  659. package/node_modules/object-inspect/example/inspect.js +0 -10
  660. package/node_modules/object-inspect/index.js +0 -527
  661. package/node_modules/object-inspect/package-support.json +0 -20
  662. package/node_modules/object-inspect/package.json +0 -104
  663. package/node_modules/object-inspect/readme.markdown +0 -84
  664. package/node_modules/object-inspect/test/bigint.js +0 -58
  665. package/node_modules/object-inspect/test/browser/dom.js +0 -15
  666. package/node_modules/object-inspect/test/circular.js +0 -16
  667. package/node_modules/object-inspect/test/deep.js +0 -12
  668. package/node_modules/object-inspect/test/element.js +0 -53
  669. package/node_modules/object-inspect/test/err.js +0 -48
  670. package/node_modules/object-inspect/test/fakes.js +0 -29
  671. package/node_modules/object-inspect/test/fn.js +0 -76
  672. package/node_modules/object-inspect/test/global.js +0 -17
  673. package/node_modules/object-inspect/test/has.js +0 -15
  674. package/node_modules/object-inspect/test/holes.js +0 -15
  675. package/node_modules/object-inspect/test/indent-option.js +0 -271
  676. package/node_modules/object-inspect/test/inspect.js +0 -139
  677. package/node_modules/object-inspect/test/lowbyte.js +0 -12
  678. package/node_modules/object-inspect/test/number.js +0 -58
  679. package/node_modules/object-inspect/test/quoteStyle.js +0 -17
  680. package/node_modules/object-inspect/test/toStringTag.js +0 -40
  681. package/node_modules/object-inspect/test/undef.js +0 -12
  682. package/node_modules/object-inspect/test/values.js +0 -211
  683. package/node_modules/object-inspect/test-core-js.js +0 -26
  684. package/node_modules/object-inspect/util.inspect.js +0 -1
  685. package/node_modules/object-is/.eslintignore +0 -1
  686. package/node_modules/object-is/.eslintrc +0 -5
  687. package/node_modules/object-is/.nycrc +0 -13
  688. package/node_modules/object-is/CHANGELOG.md +0 -150
  689. package/node_modules/object-is/LICENSE +0 -20
  690. package/node_modules/object-is/README.md +0 -60
  691. package/node_modules/object-is/auto.js +0 -3
  692. package/node_modules/object-is/implementation.js +0 -19
  693. package/node_modules/object-is/index.js +0 -18
  694. package/node_modules/object-is/package.json +0 -87
  695. package/node_modules/object-is/polyfill.js +0 -7
  696. package/node_modules/object-is/shim.js +0 -14
  697. package/node_modules/object-is/test/implementation.js +0 -12
  698. package/node_modules/object-is/test/index.js +0 -12
  699. package/node_modules/object-is/test/shimmed.js +0 -28
  700. package/node_modules/object-is/test/tests.js +0 -57
  701. package/node_modules/object-keys/.editorconfig +0 -13
  702. package/node_modules/object-keys/.eslintrc +0 -17
  703. package/node_modules/object-keys/.travis.yml +0 -277
  704. package/node_modules/object-keys/CHANGELOG.md +0 -232
  705. package/node_modules/object-keys/LICENSE +0 -21
  706. package/node_modules/object-keys/README.md +0 -76
  707. package/node_modules/object-keys/implementation.js +0 -122
  708. package/node_modules/object-keys/index.js +0 -32
  709. package/node_modules/object-keys/isArguments.js +0 -17
  710. package/node_modules/object-keys/package.json +0 -88
  711. package/node_modules/object-keys/test/index.js +0 -5
  712. package/node_modules/object.assign/.editorconfig +0 -20
  713. package/node_modules/object.assign/.eslintrc +0 -28
  714. package/node_modules/object.assign/.github/FUNDING.yml +0 -12
  715. package/node_modules/object.assign/.nycrc +0 -9
  716. package/node_modules/object.assign/CHANGELOG.md +0 -225
  717. package/node_modules/object.assign/LICENSE +0 -21
  718. package/node_modules/object.assign/README.md +0 -136
  719. package/node_modules/object.assign/auto.js +0 -3
  720. package/node_modules/object.assign/dist/browser.js +0 -944
  721. package/node_modules/object.assign/hasSymbols.js +0 -43
  722. package/node_modules/object.assign/implementation.js +0 -46
  723. package/node_modules/object.assign/index.js +0 -22
  724. package/node_modules/object.assign/package.json +0 -96
  725. package/node_modules/object.assign/polyfill.js +0 -55
  726. package/node_modules/object.assign/shim.js +0 -14
  727. package/node_modules/object.assign/test/implementation.js +0 -19
  728. package/node_modules/object.assign/test/index.js +0 -17
  729. package/node_modules/object.assign/test/native.js +0 -49
  730. package/node_modules/object.assign/test/ses-compat.js +0 -12
  731. package/node_modules/object.assign/test/shimmed.js +0 -52
  732. package/node_modules/object.assign/test/tests.js +0 -232
  733. package/node_modules/object.assign/test.html +0 -18458
  734. package/node_modules/os-browserify/.npmignore +0 -14
  735. package/node_modules/os-browserify/LICENSE +0 -21
  736. package/node_modules/os-browserify/README.md +0 -5
  737. package/node_modules/os-browserify/browser.js +0 -49
  738. package/node_modules/os-browserify/main.js +0 -1
  739. package/node_modules/os-browserify/package.json +0 -20
  740. package/node_modules/pako/CHANGELOG.md +0 -164
  741. package/node_modules/pako/LICENSE +0 -21
  742. package/node_modules/pako/README.md +0 -191
  743. package/node_modules/pako/dist/pako.js +0 -6818
  744. package/node_modules/pako/dist/pako.min.js +0 -1
  745. package/node_modules/pako/dist/pako_deflate.js +0 -3997
  746. package/node_modules/pako/dist/pako_deflate.min.js +0 -1
  747. package/node_modules/pako/dist/pako_inflate.js +0 -3300
  748. package/node_modules/pako/dist/pako_inflate.min.js +0 -1
  749. package/node_modules/pako/index.js +0 -14
  750. package/node_modules/pako/lib/deflate.js +0 -400
  751. package/node_modules/pako/lib/inflate.js +0 -423
  752. package/node_modules/pako/lib/utils/common.js +0 -105
  753. package/node_modules/pako/lib/utils/strings.js +0 -187
  754. package/node_modules/pako/lib/zlib/README +0 -59
  755. package/node_modules/pako/lib/zlib/adler32.js +0 -51
  756. package/node_modules/pako/lib/zlib/constants.js +0 -68
  757. package/node_modules/pako/lib/zlib/crc32.js +0 -59
  758. package/node_modules/pako/lib/zlib/deflate.js +0 -1874
  759. package/node_modules/pako/lib/zlib/gzheader.js +0 -58
  760. package/node_modules/pako/lib/zlib/inffast.js +0 -345
  761. package/node_modules/pako/lib/zlib/inflate.js +0 -1556
  762. package/node_modules/pako/lib/zlib/inftrees.js +0 -343
  763. package/node_modules/pako/lib/zlib/messages.js +0 -32
  764. package/node_modules/pako/lib/zlib/trees.js +0 -1222
  765. package/node_modules/pako/lib/zlib/zstream.js +0 -47
  766. package/node_modules/pako/package.json +0 -44
  767. package/node_modules/parse-asn1/.eslintrc +0 -34
  768. package/node_modules/parse-asn1/.github/FUNDING.yml +0 -12
  769. package/node_modules/parse-asn1/CHANGELOG.md +0 -188
  770. package/node_modules/parse-asn1/LICENSE +0 -13
  771. package/node_modules/parse-asn1/README.md +0 -8
  772. package/node_modules/parse-asn1/aesid.json +0 -13
  773. package/node_modules/parse-asn1/asn1.js +0 -123
  774. package/node_modules/parse-asn1/certificate.js +0 -89
  775. package/node_modules/parse-asn1/fixProc.js +0 -33
  776. package/node_modules/parse-asn1/index.js +0 -111
  777. package/node_modules/parse-asn1/node_modules/hash-base/LICENSE +0 -21
  778. package/node_modules/parse-asn1/node_modules/hash-base/README.md +0 -48
  779. package/node_modules/parse-asn1/node_modules/hash-base/index.js +0 -95
  780. package/node_modules/parse-asn1/node_modules/hash-base/package.json +0 -41
  781. package/node_modules/parse-asn1/package.json +0 -59
  782. package/node_modules/path-browserify/.github/FUNDING.yml +0 -12
  783. package/node_modules/path-browserify/.travis.yml +0 -16
  784. package/node_modules/path-browserify/CHANGELOG.md +0 -20
  785. package/node_modules/path-browserify/LICENSE +0 -20
  786. package/node_modules/path-browserify/README.md +0 -45
  787. package/node_modules/path-browserify/index.js +0 -529
  788. package/node_modules/path-browserify/package.json +0 -30
  789. package/node_modules/path-browserify/security.md +0 -10
  790. package/node_modules/path-browserify/test/index.js +0 -9
  791. package/node_modules/path-browserify/test/test-path-basename.js +0 -79
  792. package/node_modules/path-browserify/test/test-path-dirname.js +0 -58
  793. package/node_modules/path-browserify/test/test-path-extname.js +0 -96
  794. package/node_modules/path-browserify/test/test-path-isabsolute.js +0 -33
  795. package/node_modules/path-browserify/test/test-path-join.js +0 -126
  796. package/node_modules/path-browserify/test/test-path-parse-format.js +0 -235
  797. package/node_modules/path-browserify/test/test-path-relative.js +0 -66
  798. package/node_modules/path-browserify/test/test-path-resolve.js +0 -45
  799. package/node_modules/path-browserify/test/test-path-zero-length-strings.js +0 -53
  800. package/node_modules/path-browserify/test/test-path.js +0 -107
  801. package/node_modules/pbkdf2/LICENSE +0 -21
  802. package/node_modules/pbkdf2/README.md +0 -30
  803. package/node_modules/pbkdf2/browser.js +0 -2
  804. package/node_modules/pbkdf2/index.js +0 -38
  805. package/node_modules/pbkdf2/lib/async.js +0 -118
  806. package/node_modules/pbkdf2/lib/default-encoding.js +0 -12
  807. package/node_modules/pbkdf2/lib/precondition.js +0 -19
  808. package/node_modules/pbkdf2/lib/sync-browser.js +0 -105
  809. package/node_modules/pbkdf2/lib/sync.js +0 -52
  810. package/node_modules/pbkdf2/lib/to-buffer.js +0 -13
  811. package/node_modules/pbkdf2/package.json +0 -70
  812. package/node_modules/process/.eslintrc +0 -21
  813. package/node_modules/process/LICENSE +0 -22
  814. package/node_modules/process/README.md +0 -26
  815. package/node_modules/process/browser.js +0 -184
  816. package/node_modules/process/index.js +0 -2
  817. package/node_modules/process/package.json +0 -27
  818. package/node_modules/process/test.js +0 -199
  819. package/node_modules/process-nextick-args/index.js +0 -45
  820. package/node_modules/process-nextick-args/license.md +0 -19
  821. package/node_modules/process-nextick-args/package.json +0 -25
  822. package/node_modules/process-nextick-args/readme.md +0 -18
  823. package/node_modules/public-encrypt/.travis.yml +0 -6
  824. package/node_modules/public-encrypt/LICENSE +0 -19
  825. package/node_modules/public-encrypt/browser.js +0 -10
  826. package/node_modules/public-encrypt/index.js +0 -18
  827. package/node_modules/public-encrypt/mgf.js +0 -19
  828. package/node_modules/public-encrypt/node_modules/bn.js/LICENSE +0 -19
  829. package/node_modules/public-encrypt/node_modules/bn.js/README.md +0 -200
  830. package/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js +0 -3446
  831. package/node_modules/public-encrypt/node_modules/bn.js/package.json +0 -36
  832. package/node_modules/public-encrypt/package.json +0 -37
  833. package/node_modules/public-encrypt/privateDecrypt.js +0 -105
  834. package/node_modules/public-encrypt/publicEncrypt.js +0 -88
  835. package/node_modules/public-encrypt/readme.md +0 -8
  836. package/node_modules/public-encrypt/test/1024.priv +0 -16
  837. package/node_modules/public-encrypt/test/1024.pub +0 -6
  838. package/node_modules/public-encrypt/test/ec.pass.priv +0 -7
  839. package/node_modules/public-encrypt/test/ec.priv +0 -5
  840. package/node_modules/public-encrypt/test/ec.pub +0 -4
  841. package/node_modules/public-encrypt/test/index.js +0 -113
  842. package/node_modules/public-encrypt/test/nodeTests.js +0 -51
  843. package/node_modules/public-encrypt/test/pass.1024.priv +0 -18
  844. package/node_modules/public-encrypt/test/pass.1024.pub +0 -6
  845. package/node_modules/public-encrypt/test/rsa.1024.priv +0 -15
  846. package/node_modules/public-encrypt/test/rsa.1024.pub +0 -5
  847. package/node_modules/public-encrypt/test/rsa.2028.priv +0 -27
  848. package/node_modules/public-encrypt/test/rsa.2028.pub +0 -8
  849. package/node_modules/public-encrypt/test/rsa.pass.priv +0 -30
  850. package/node_modules/public-encrypt/test/rsa.pass.pub +0 -9
  851. package/node_modules/public-encrypt/test/test_cert.pem +0 -20
  852. package/node_modules/public-encrypt/test/test_key.pem +0 -15
  853. package/node_modules/public-encrypt/test/test_rsa_privkey.pem +0 -15
  854. package/node_modules/public-encrypt/test/test_rsa_privkey_encrypted.pem +0 -18
  855. package/node_modules/public-encrypt/test/test_rsa_pubkey.pem +0 -6
  856. package/node_modules/public-encrypt/withPublic.js +0 -12
  857. package/node_modules/public-encrypt/xor.js +0 -8
  858. package/node_modules/punycode/LICENSE-MIT.txt +0 -20
  859. package/node_modules/punycode/README.md +0 -176
  860. package/node_modules/punycode/package.json +0 -60
  861. package/node_modules/punycode/punycode.js +0 -533
  862. package/node_modules/qs/.editorconfig +0 -46
  863. package/node_modules/qs/.eslintrc +0 -38
  864. package/node_modules/qs/.github/FUNDING.yml +0 -12
  865. package/node_modules/qs/.nycrc +0 -13
  866. package/node_modules/qs/CHANGELOG.md +0 -600
  867. package/node_modules/qs/LICENSE.md +0 -29
  868. package/node_modules/qs/README.md +0 -709
  869. package/node_modules/qs/dist/qs.js +0 -90
  870. package/node_modules/qs/lib/formats.js +0 -23
  871. package/node_modules/qs/lib/index.js +0 -11
  872. package/node_modules/qs/lib/parse.js +0 -296
  873. package/node_modules/qs/lib/stringify.js +0 -351
  874. package/node_modules/qs/lib/utils.js +0 -265
  875. package/node_modules/qs/package.json +0 -91
  876. package/node_modules/qs/test/empty-keys-cases.js +0 -267
  877. package/node_modules/qs/test/parse.js +0 -1170
  878. package/node_modules/qs/test/stringify.js +0 -1298
  879. package/node_modules/qs/test/utils.js +0 -136
  880. package/node_modules/querystring-es3/.travis.yml +0 -4
  881. package/node_modules/querystring-es3/History.md +0 -20
  882. package/node_modules/querystring-es3/License.md +0 -19
  883. package/node_modules/querystring-es3/Readme.md +0 -15
  884. package/node_modules/querystring-es3/decode.js +0 -84
  885. package/node_modules/querystring-es3/encode.js +0 -85
  886. package/node_modules/querystring-es3/index.js +0 -4
  887. package/node_modules/querystring-es3/package.json +0 -65
  888. package/node_modules/querystring-es3/test/common-index.js +0 -3
  889. package/node_modules/querystring-es3/test/index.js +0 -210
  890. package/node_modules/querystring-es3/test/tap-index.js +0 -3
  891. package/node_modules/randombytes/.travis.yml +0 -15
  892. package/node_modules/randombytes/.zuul.yml +0 -1
  893. package/node_modules/randombytes/LICENSE +0 -21
  894. package/node_modules/randombytes/README.md +0 -14
  895. package/node_modules/randombytes/browser.js +0 -50
  896. package/node_modules/randombytes/index.js +0 -1
  897. package/node_modules/randombytes/package.json +0 -36
  898. package/node_modules/randombytes/test.js +0 -81
  899. package/node_modules/randomfill/.travis.yml +0 -15
  900. package/node_modules/randomfill/.zuul.yml +0 -1
  901. package/node_modules/randomfill/LICENSE +0 -21
  902. package/node_modules/randomfill/README.md +0 -15
  903. package/node_modules/randomfill/browser.js +0 -108
  904. package/node_modules/randomfill/index.js +0 -7
  905. package/node_modules/randomfill/package.json +0 -37
  906. package/node_modules/randomfill/test.js +0 -28
  907. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  908. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  909. package/node_modules/readable-stream/LICENSE +0 -47
  910. package/node_modules/readable-stream/README.md +0 -106
  911. package/node_modules/readable-stream/errors-browser.js +0 -127
  912. package/node_modules/readable-stream/errors.js +0 -116
  913. package/node_modules/readable-stream/experimentalWarning.js +0 -17
  914. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  915. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  916. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  917. package/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  918. package/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  919. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  920. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  921. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  922. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  923. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  924. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  925. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  926. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  927. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  928. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  929. package/node_modules/readable-stream/package.json +0 -68
  930. package/node_modules/readable-stream/readable-browser.js +0 -9
  931. package/node_modules/readable-stream/readable.js +0 -16
  932. package/node_modules/ripemd160/CHANGELOG.md +0 -72
  933. package/node_modules/ripemd160/LICENSE +0 -21
  934. package/node_modules/ripemd160/README.md +0 -27
  935. package/node_modules/ripemd160/index.js +0 -163
  936. package/node_modules/ripemd160/package.json +0 -37
  937. package/node_modules/safe-buffer/LICENSE +0 -21
  938. package/node_modules/safe-buffer/README.md +0 -584
  939. package/node_modules/safe-buffer/index.d.ts +0 -187
  940. package/node_modules/safe-buffer/index.js +0 -65
  941. package/node_modules/safe-buffer/package.json +0 -51
  942. package/node_modules/set-function-length/.eslintrc +0 -27
  943. package/node_modules/set-function-length/.github/FUNDING.yml +0 -12
  944. package/node_modules/set-function-length/.nycrc +0 -13
  945. package/node_modules/set-function-length/CHANGELOG.md +0 -70
  946. package/node_modules/set-function-length/LICENSE +0 -21
  947. package/node_modules/set-function-length/README.md +0 -56
  948. package/node_modules/set-function-length/env.d.ts +0 -9
  949. package/node_modules/set-function-length/env.js +0 -25
  950. package/node_modules/set-function-length/index.d.ts +0 -7
  951. package/node_modules/set-function-length/index.js +0 -42
  952. package/node_modules/set-function-length/package.json +0 -102
  953. package/node_modules/set-function-length/tsconfig.json +0 -9
  954. package/node_modules/setimmediate/LICENSE.txt +0 -20
  955. package/node_modules/setimmediate/package.json +0 -30
  956. package/node_modules/setimmediate/setImmediate.js +0 -186
  957. package/node_modules/sha.js/.travis.yml +0 -17
  958. package/node_modules/sha.js/LICENSE +0 -49
  959. package/node_modules/sha.js/README.md +0 -44
  960. package/node_modules/sha.js/bin.js +0 -41
  961. package/node_modules/sha.js/hash.js +0 -81
  962. package/node_modules/sha.js/index.js +0 -15
  963. package/node_modules/sha.js/package.json +0 -30
  964. package/node_modules/sha.js/sha.js +0 -94
  965. package/node_modules/sha.js/sha1.js +0 -99
  966. package/node_modules/sha.js/sha224.js +0 -53
  967. package/node_modules/sha.js/sha256.js +0 -135
  968. package/node_modules/sha.js/sha384.js +0 -57
  969. package/node_modules/sha.js/sha512.js +0 -260
  970. package/node_modules/sha.js/test/hash.js +0 -75
  971. package/node_modules/sha.js/test/test.js +0 -100
  972. package/node_modules/sha.js/test/vectors.js +0 -72
  973. package/node_modules/side-channel/.editorconfig +0 -9
  974. package/node_modules/side-channel/.eslintrc +0 -11
  975. package/node_modules/side-channel/.github/FUNDING.yml +0 -12
  976. package/node_modules/side-channel/.nycrc +0 -13
  977. package/node_modules/side-channel/CHANGELOG.md +0 -95
  978. package/node_modules/side-channel/LICENSE +0 -21
  979. package/node_modules/side-channel/README.md +0 -2
  980. package/node_modules/side-channel/index.d.ts +0 -27
  981. package/node_modules/side-channel/index.js +0 -129
  982. package/node_modules/side-channel/package.json +0 -84
  983. package/node_modules/side-channel/test/index.js +0 -83
  984. package/node_modules/side-channel/tsconfig.json +0 -50
  985. package/node_modules/stream-browserify/.airtap.yml +0 -20
  986. package/node_modules/stream-browserify/.github/FUNDING.yml +0 -12
  987. package/node_modules/stream-browserify/.travis.yml +0 -24
  988. package/node_modules/stream-browserify/CHANGELOG.md +0 -8
  989. package/node_modules/stream-browserify/LICENSE +0 -20
  990. package/node_modules/stream-browserify/index.js +0 -129
  991. package/node_modules/stream-browserify/package.json +0 -54
  992. package/node_modules/stream-browserify/readme.markdown +0 -32
  993. package/node_modules/stream-browserify/security.md +0 -10
  994. package/node_modules/stream-browserify/test/buf.js +0 -33
  995. package/node_modules/stream-browserify/test/index.js +0 -2
  996. package/node_modules/stream-browserify/test/pipeline.js +0 -38
  997. package/node_modules/stream-browserify/test/use-stream.js +0 -4
  998. package/node_modules/stream-http/LICENSE +0 -24
  999. package/node_modules/stream-http/README.md +0 -134
  1000. package/node_modules/stream-http/index.js +0 -85
  1001. package/node_modules/stream-http/lib/capability.js +0 -59
  1002. package/node_modules/stream-http/lib/request.js +0 -352
  1003. package/node_modules/stream-http/lib/response.js +0 -211
  1004. package/node_modules/stream-http/package.json +0 -47
  1005. package/node_modules/string_decoder/LICENSE +0 -48
  1006. package/node_modules/string_decoder/README.md +0 -47
  1007. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  1008. package/node_modules/string_decoder/package.json +0 -34
  1009. package/node_modules/timers-browserify/CHANGELOG.md +0 -153
  1010. package/node_modules/timers-browserify/LICENSE.md +0 -46
  1011. package/node_modules/timers-browserify/README.md +0 -40
  1012. package/node_modules/timers-browserify/main.js +0 -63
  1013. package/node_modules/timers-browserify/package.json +0 -53
  1014. package/node_modules/tty-browserify/LICENSE +0 -18
  1015. package/node_modules/tty-browserify/index.js +0 -11
  1016. package/node_modules/tty-browserify/package.json +0 -29
  1017. package/node_modules/tty-browserify/readme.markdown +0 -1
  1018. package/node_modules/url/.eslintignore +0 -1
  1019. package/node_modules/url/.eslintrc +0 -38
  1020. package/node_modules/url/.nycrc +0 -9
  1021. package/node_modules/url/LICENSE +0 -21
  1022. package/node_modules/url/README.md +0 -108
  1023. package/node_modules/url/package.json +0 -42
  1024. package/node_modules/url/test/index.js +0 -2080
  1025. package/node_modules/url/test/mocha.opts +0 -2
  1026. package/node_modules/url/url.js +0 -776
  1027. package/node_modules/util/LICENSE +0 -18
  1028. package/node_modules/util/README.md +0 -48
  1029. package/node_modules/util/package.json +0 -50
  1030. package/node_modules/util/support/isBuffer.js +0 -3
  1031. package/node_modules/util/support/isBufferBrowser.js +0 -6
  1032. package/node_modules/util/support/types.js +0 -334
  1033. package/node_modules/util/util.js +0 -715
  1034. package/node_modules/util-deprecate/History.md +0 -16
  1035. package/node_modules/util-deprecate/LICENSE +0 -24
  1036. package/node_modules/util-deprecate/README.md +0 -53
  1037. package/node_modules/util-deprecate/browser.js +0 -67
  1038. package/node_modules/util-deprecate/node.js +0 -6
  1039. package/node_modules/util-deprecate/package.json +0 -27
  1040. package/node_modules/vm-browserify/.github/FUNDING.yml +0 -12
  1041. package/node_modules/vm-browserify/.travis.yml +0 -8
  1042. package/node_modules/vm-browserify/CHANGELOG.md +0 -23
  1043. package/node_modules/vm-browserify/LICENSE +0 -18
  1044. package/node_modules/vm-browserify/example/run/bundle.js +0 -160
  1045. package/node_modules/vm-browserify/example/run/entry.js +0 -6
  1046. package/node_modules/vm-browserify/example/run/index.html +0 -8
  1047. package/node_modules/vm-browserify/example/run/server.js +0 -6
  1048. package/node_modules/vm-browserify/index.js +0 -149
  1049. package/node_modules/vm-browserify/package.json +0 -30
  1050. package/node_modules/vm-browserify/readme.markdown +0 -66
  1051. package/node_modules/vm-browserify/security.md +0 -10
  1052. package/node_modules/vm-browserify/test/vm.js +0 -35
  1053. package/node_modules/which-typed-array/.editorconfig +0 -20
  1054. package/node_modules/which-typed-array/.eslintrc +0 -9
  1055. package/node_modules/which-typed-array/.github/FUNDING.yml +0 -12
  1056. package/node_modules/which-typed-array/.nycrc +0 -13
  1057. package/node_modules/which-typed-array/CHANGELOG.md +0 -204
  1058. package/node_modules/which-typed-array/LICENSE +0 -22
  1059. package/node_modules/which-typed-array/README.md +0 -70
  1060. package/node_modules/which-typed-array/index.js +0 -92
  1061. package/node_modules/which-typed-array/package.json +0 -115
  1062. package/node_modules/which-typed-array/test/index.js +0 -99
  1063. package/node_modules/xtend/.jshintrc +0 -30
  1064. package/node_modules/xtend/LICENSE +0 -20
  1065. package/node_modules/xtend/README.md +0 -32
  1066. package/node_modules/xtend/immutable.js +0 -19
  1067. package/node_modules/xtend/mutable.js +0 -17
  1068. package/node_modules/xtend/package.json +0 -55
  1069. package/node_modules/xtend/test.js +0 -103
@@ -1,3547 +0,0 @@
1
- (function (module, exports) {
2
- 'use strict';
3
-
4
- // Utils
5
- function assert (val, msg) {
6
- if (!val) throw new Error(msg || 'Assertion failed');
7
- }
8
-
9
- // Could use `inherits` module, but don't want to move from single file
10
- // architecture yet.
11
- function inherits (ctor, superCtor) {
12
- ctor.super_ = superCtor;
13
- var TempCtor = function () {};
14
- TempCtor.prototype = superCtor.prototype;
15
- ctor.prototype = new TempCtor();
16
- ctor.prototype.constructor = ctor;
17
- }
18
-
19
- // BN
20
-
21
- function BN (number, base, endian) {
22
- if (BN.isBN(number)) {
23
- return number;
24
- }
25
-
26
- this.negative = 0;
27
- this.words = null;
28
- this.length = 0;
29
-
30
- // Reduction context
31
- this.red = null;
32
-
33
- if (number !== null) {
34
- if (base === 'le' || base === 'be') {
35
- endian = base;
36
- base = 10;
37
- }
38
-
39
- this._init(number || 0, base || 10, endian || 'be');
40
- }
41
- }
42
- if (typeof module === 'object') {
43
- module.exports = BN;
44
- } else {
45
- exports.BN = BN;
46
- }
47
-
48
- BN.BN = BN;
49
- BN.wordSize = 26;
50
-
51
- var Buffer;
52
- try {
53
- if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {
54
- Buffer = window.Buffer;
55
- } else {
56
- Buffer = require('buffer').Buffer;
57
- }
58
- } catch (e) {
59
- }
60
-
61
- BN.isBN = function isBN (num) {
62
- if (num instanceof BN) {
63
- return true;
64
- }
65
-
66
- return num !== null && typeof num === 'object' &&
67
- num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
68
- };
69
-
70
- BN.max = function max (left, right) {
71
- if (left.cmp(right) > 0) return left;
72
- return right;
73
- };
74
-
75
- BN.min = function min (left, right) {
76
- if (left.cmp(right) < 0) return left;
77
- return right;
78
- };
79
-
80
- BN.prototype._init = function init (number, base, endian) {
81
- if (typeof number === 'number') {
82
- return this._initNumber(number, base, endian);
83
- }
84
-
85
- if (typeof number === 'object') {
86
- return this._initArray(number, base, endian);
87
- }
88
-
89
- if (base === 'hex') {
90
- base = 16;
91
- }
92
- assert(base === (base | 0) && base >= 2 && base <= 36);
93
-
94
- number = number.toString().replace(/\s+/g, '');
95
- var start = 0;
96
- if (number[0] === '-') {
97
- start++;
98
- this.negative = 1;
99
- }
100
-
101
- if (start < number.length) {
102
- if (base === 16) {
103
- this._parseHex(number, start, endian);
104
- } else {
105
- this._parseBase(number, base, start);
106
- if (endian === 'le') {
107
- this._initArray(this.toArray(), base, endian);
108
- }
109
- }
110
- }
111
- };
112
-
113
- BN.prototype._initNumber = function _initNumber (number, base, endian) {
114
- if (number < 0) {
115
- this.negative = 1;
116
- number = -number;
117
- }
118
- if (number < 0x4000000) {
119
- this.words = [number & 0x3ffffff];
120
- this.length = 1;
121
- } else if (number < 0x10000000000000) {
122
- this.words = [
123
- number & 0x3ffffff,
124
- (number / 0x4000000) & 0x3ffffff
125
- ];
126
- this.length = 2;
127
- } else {
128
- assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)
129
- this.words = [
130
- number & 0x3ffffff,
131
- (number / 0x4000000) & 0x3ffffff,
132
- 1
133
- ];
134
- this.length = 3;
135
- }
136
-
137
- if (endian !== 'le') return;
138
-
139
- // Reverse the bytes
140
- this._initArray(this.toArray(), base, endian);
141
- };
142
-
143
- BN.prototype._initArray = function _initArray (number, base, endian) {
144
- // Perhaps a Uint8Array
145
- assert(typeof number.length === 'number');
146
- if (number.length <= 0) {
147
- this.words = [0];
148
- this.length = 1;
149
- return this;
150
- }
151
-
152
- this.length = Math.ceil(number.length / 3);
153
- this.words = new Array(this.length);
154
- for (var i = 0; i < this.length; i++) {
155
- this.words[i] = 0;
156
- }
157
-
158
- var j, w;
159
- var off = 0;
160
- if (endian === 'be') {
161
- for (i = number.length - 1, j = 0; i >= 0; i -= 3) {
162
- w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);
163
- this.words[j] |= (w << off) & 0x3ffffff;
164
- this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
165
- off += 24;
166
- if (off >= 26) {
167
- off -= 26;
168
- j++;
169
- }
170
- }
171
- } else if (endian === 'le') {
172
- for (i = 0, j = 0; i < number.length; i += 3) {
173
- w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);
174
- this.words[j] |= (w << off) & 0x3ffffff;
175
- this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;
176
- off += 24;
177
- if (off >= 26) {
178
- off -= 26;
179
- j++;
180
- }
181
- }
182
- }
183
- return this._strip();
184
- };
185
-
186
- function parseHex4Bits (string, index) {
187
- var c = string.charCodeAt(index);
188
- // '0' - '9'
189
- if (c >= 48 && c <= 57) {
190
- return c - 48;
191
- // 'A' - 'F'
192
- } else if (c >= 65 && c <= 70) {
193
- return c - 55;
194
- // 'a' - 'f'
195
- } else if (c >= 97 && c <= 102) {
196
- return c - 87;
197
- } else {
198
- assert(false, 'Invalid character in ' + string);
199
- }
200
- }
201
-
202
- function parseHexByte (string, lowerBound, index) {
203
- var r = parseHex4Bits(string, index);
204
- if (index - 1 >= lowerBound) {
205
- r |= parseHex4Bits(string, index - 1) << 4;
206
- }
207
- return r;
208
- }
209
-
210
- BN.prototype._parseHex = function _parseHex (number, start, endian) {
211
- // Create possibly bigger array to ensure that it fits the number
212
- this.length = Math.ceil((number.length - start) / 6);
213
- this.words = new Array(this.length);
214
- for (var i = 0; i < this.length; i++) {
215
- this.words[i] = 0;
216
- }
217
-
218
- // 24-bits chunks
219
- var off = 0;
220
- var j = 0;
221
-
222
- var w;
223
- if (endian === 'be') {
224
- for (i = number.length - 1; i >= start; i -= 2) {
225
- w = parseHexByte(number, start, i) << off;
226
- this.words[j] |= w & 0x3ffffff;
227
- if (off >= 18) {
228
- off -= 18;
229
- j += 1;
230
- this.words[j] |= w >>> 26;
231
- } else {
232
- off += 8;
233
- }
234
- }
235
- } else {
236
- var parseLength = number.length - start;
237
- for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {
238
- w = parseHexByte(number, start, i) << off;
239
- this.words[j] |= w & 0x3ffffff;
240
- if (off >= 18) {
241
- off -= 18;
242
- j += 1;
243
- this.words[j] |= w >>> 26;
244
- } else {
245
- off += 8;
246
- }
247
- }
248
- }
249
-
250
- this._strip();
251
- };
252
-
253
- function parseBase (str, start, end, mul) {
254
- var r = 0;
255
- var b = 0;
256
- var len = Math.min(str.length, end);
257
- for (var i = start; i < len; i++) {
258
- var c = str.charCodeAt(i) - 48;
259
-
260
- r *= mul;
261
-
262
- // 'a'
263
- if (c >= 49) {
264
- b = c - 49 + 0xa;
265
-
266
- // 'A'
267
- } else if (c >= 17) {
268
- b = c - 17 + 0xa;
269
-
270
- // '0' - '9'
271
- } else {
272
- b = c;
273
- }
274
- assert(c >= 0 && b < mul, 'Invalid character');
275
- r += b;
276
- }
277
- return r;
278
- }
279
-
280
- BN.prototype._parseBase = function _parseBase (number, base, start) {
281
- // Initialize as zero
282
- this.words = [0];
283
- this.length = 1;
284
-
285
- // Find length of limb in base
286
- for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {
287
- limbLen++;
288
- }
289
- limbLen--;
290
- limbPow = (limbPow / base) | 0;
291
-
292
- var total = number.length - start;
293
- var mod = total % limbLen;
294
- var end = Math.min(total, total - mod) + start;
295
-
296
- var word = 0;
297
- for (var i = start; i < end; i += limbLen) {
298
- word = parseBase(number, i, i + limbLen, base);
299
-
300
- this.imuln(limbPow);
301
- if (this.words[0] + word < 0x4000000) {
302
- this.words[0] += word;
303
- } else {
304
- this._iaddn(word);
305
- }
306
- }
307
-
308
- if (mod !== 0) {
309
- var pow = 1;
310
- word = parseBase(number, i, number.length, base);
311
-
312
- for (i = 0; i < mod; i++) {
313
- pow *= base;
314
- }
315
-
316
- this.imuln(pow);
317
- if (this.words[0] + word < 0x4000000) {
318
- this.words[0] += word;
319
- } else {
320
- this._iaddn(word);
321
- }
322
- }
323
-
324
- this._strip();
325
- };
326
-
327
- BN.prototype.copy = function copy (dest) {
328
- dest.words = new Array(this.length);
329
- for (var i = 0; i < this.length; i++) {
330
- dest.words[i] = this.words[i];
331
- }
332
- dest.length = this.length;
333
- dest.negative = this.negative;
334
- dest.red = this.red;
335
- };
336
-
337
- function move (dest, src) {
338
- dest.words = src.words;
339
- dest.length = src.length;
340
- dest.negative = src.negative;
341
- dest.red = src.red;
342
- }
343
-
344
- BN.prototype._move = function _move (dest) {
345
- move(dest, this);
346
- };
347
-
348
- BN.prototype.clone = function clone () {
349
- var r = new BN(null);
350
- this.copy(r);
351
- return r;
352
- };
353
-
354
- BN.prototype._expand = function _expand (size) {
355
- while (this.length < size) {
356
- this.words[this.length++] = 0;
357
- }
358
- return this;
359
- };
360
-
361
- // Remove leading `0` from `this`
362
- BN.prototype._strip = function strip () {
363
- while (this.length > 1 && this.words[this.length - 1] === 0) {
364
- this.length--;
365
- }
366
- return this._normSign();
367
- };
368
-
369
- BN.prototype._normSign = function _normSign () {
370
- // -0 = 0
371
- if (this.length === 1 && this.words[0] === 0) {
372
- this.negative = 0;
373
- }
374
- return this;
375
- };
376
-
377
- // Check Symbol.for because not everywhere where Symbol defined
378
- // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility
379
- if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {
380
- try {
381
- BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;
382
- } catch (e) {
383
- BN.prototype.inspect = inspect;
384
- }
385
- } else {
386
- BN.prototype.inspect = inspect;
387
- }
388
-
389
- function inspect () {
390
- return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';
391
- }
392
-
393
- /*
394
-
395
- var zeros = [];
396
- var groupSizes = [];
397
- var groupBases = [];
398
-
399
- var s = '';
400
- var i = -1;
401
- while (++i < BN.wordSize) {
402
- zeros[i] = s;
403
- s += '0';
404
- }
405
- groupSizes[0] = 0;
406
- groupSizes[1] = 0;
407
- groupBases[0] = 0;
408
- groupBases[1] = 0;
409
- var base = 2 - 1;
410
- while (++base < 36 + 1) {
411
- var groupSize = 0;
412
- var groupBase = 1;
413
- while (groupBase < (1 << BN.wordSize) / base) {
414
- groupBase *= base;
415
- groupSize += 1;
416
- }
417
- groupSizes[base] = groupSize;
418
- groupBases[base] = groupBase;
419
- }
420
-
421
- */
422
-
423
- var zeros = [
424
- '',
425
- '0',
426
- '00',
427
- '000',
428
- '0000',
429
- '00000',
430
- '000000',
431
- '0000000',
432
- '00000000',
433
- '000000000',
434
- '0000000000',
435
- '00000000000',
436
- '000000000000',
437
- '0000000000000',
438
- '00000000000000',
439
- '000000000000000',
440
- '0000000000000000',
441
- '00000000000000000',
442
- '000000000000000000',
443
- '0000000000000000000',
444
- '00000000000000000000',
445
- '000000000000000000000',
446
- '0000000000000000000000',
447
- '00000000000000000000000',
448
- '000000000000000000000000',
449
- '0000000000000000000000000'
450
- ];
451
-
452
- var groupSizes = [
453
- 0, 0,
454
- 25, 16, 12, 11, 10, 9, 8,
455
- 8, 7, 7, 7, 7, 6, 6,
456
- 6, 6, 6, 6, 6, 5, 5,
457
- 5, 5, 5, 5, 5, 5, 5,
458
- 5, 5, 5, 5, 5, 5, 5
459
- ];
460
-
461
- var groupBases = [
462
- 0, 0,
463
- 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
464
- 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,
465
- 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,
466
- 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,
467
- 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176
468
- ];
469
-
470
- BN.prototype.toString = function toString (base, padding) {
471
- base = base || 10;
472
- padding = padding | 0 || 1;
473
-
474
- var out;
475
- if (base === 16 || base === 'hex') {
476
- out = '';
477
- var off = 0;
478
- var carry = 0;
479
- for (var i = 0; i < this.length; i++) {
480
- var w = this.words[i];
481
- var word = (((w << off) | carry) & 0xffffff).toString(16);
482
- carry = (w >>> (24 - off)) & 0xffffff;
483
- if (carry !== 0 || i !== this.length - 1) {
484
- out = zeros[6 - word.length] + word + out;
485
- } else {
486
- out = word + out;
487
- }
488
- off += 2;
489
- if (off >= 26) {
490
- off -= 26;
491
- i--;
492
- }
493
- }
494
- if (carry !== 0) {
495
- out = carry.toString(16) + out;
496
- }
497
- while (out.length % padding !== 0) {
498
- out = '0' + out;
499
- }
500
- if (this.negative !== 0) {
501
- out = '-' + out;
502
- }
503
- return out;
504
- }
505
-
506
- if (base === (base | 0) && base >= 2 && base <= 36) {
507
- // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
508
- var groupSize = groupSizes[base];
509
- // var groupBase = Math.pow(base, groupSize);
510
- var groupBase = groupBases[base];
511
- out = '';
512
- var c = this.clone();
513
- c.negative = 0;
514
- while (!c.isZero()) {
515
- var r = c.modrn(groupBase).toString(base);
516
- c = c.idivn(groupBase);
517
-
518
- if (!c.isZero()) {
519
- out = zeros[groupSize - r.length] + r + out;
520
- } else {
521
- out = r + out;
522
- }
523
- }
524
- if (this.isZero()) {
525
- out = '0' + out;
526
- }
527
- while (out.length % padding !== 0) {
528
- out = '0' + out;
529
- }
530
- if (this.negative !== 0) {
531
- out = '-' + out;
532
- }
533
- return out;
534
- }
535
-
536
- assert(false, 'Base should be between 2 and 36');
537
- };
538
-
539
- BN.prototype.toNumber = function toNumber () {
540
- var ret = this.words[0];
541
- if (this.length === 2) {
542
- ret += this.words[1] * 0x4000000;
543
- } else if (this.length === 3 && this.words[2] === 0x01) {
544
- // NOTE: at this stage it is known that the top bit is set
545
- ret += 0x10000000000000 + (this.words[1] * 0x4000000);
546
- } else if (this.length > 2) {
547
- assert(false, 'Number can only safely store up to 53 bits');
548
- }
549
- return (this.negative !== 0) ? -ret : ret;
550
- };
551
-
552
- BN.prototype.toJSON = function toJSON () {
553
- return this.toString(16, 2);
554
- };
555
-
556
- if (Buffer) {
557
- BN.prototype.toBuffer = function toBuffer (endian, length) {
558
- return this.toArrayLike(Buffer, endian, length);
559
- };
560
- }
561
-
562
- BN.prototype.toArray = function toArray (endian, length) {
563
- return this.toArrayLike(Array, endian, length);
564
- };
565
-
566
- var allocate = function allocate (ArrayType, size) {
567
- if (ArrayType.allocUnsafe) {
568
- return ArrayType.allocUnsafe(size);
569
- }
570
- return new ArrayType(size);
571
- };
572
-
573
- BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
574
- this._strip();
575
-
576
- var byteLength = this.byteLength();
577
- var reqLength = length || Math.max(1, byteLength);
578
- assert(byteLength <= reqLength, 'byte array longer than desired length');
579
- assert(reqLength > 0, 'Requested array length <= 0');
580
-
581
- var res = allocate(ArrayType, reqLength);
582
- var postfix = endian === 'le' ? 'LE' : 'BE';
583
- this['_toArrayLike' + postfix](res, byteLength);
584
- return res;
585
- };
586
-
587
- BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {
588
- var position = 0;
589
- var carry = 0;
590
-
591
- for (var i = 0, shift = 0; i < this.length; i++) {
592
- var word = (this.words[i] << shift) | carry;
593
-
594
- res[position++] = word & 0xff;
595
- if (position < res.length) {
596
- res[position++] = (word >> 8) & 0xff;
597
- }
598
- if (position < res.length) {
599
- res[position++] = (word >> 16) & 0xff;
600
- }
601
-
602
- if (shift === 6) {
603
- if (position < res.length) {
604
- res[position++] = (word >> 24) & 0xff;
605
- }
606
- carry = 0;
607
- shift = 0;
608
- } else {
609
- carry = word >>> 24;
610
- shift += 2;
611
- }
612
- }
613
-
614
- if (position < res.length) {
615
- res[position++] = carry;
616
-
617
- while (position < res.length) {
618
- res[position++] = 0;
619
- }
620
- }
621
- };
622
-
623
- BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {
624
- var position = res.length - 1;
625
- var carry = 0;
626
-
627
- for (var i = 0, shift = 0; i < this.length; i++) {
628
- var word = (this.words[i] << shift) | carry;
629
-
630
- res[position--] = word & 0xff;
631
- if (position >= 0) {
632
- res[position--] = (word >> 8) & 0xff;
633
- }
634
- if (position >= 0) {
635
- res[position--] = (word >> 16) & 0xff;
636
- }
637
-
638
- if (shift === 6) {
639
- if (position >= 0) {
640
- res[position--] = (word >> 24) & 0xff;
641
- }
642
- carry = 0;
643
- shift = 0;
644
- } else {
645
- carry = word >>> 24;
646
- shift += 2;
647
- }
648
- }
649
-
650
- if (position >= 0) {
651
- res[position--] = carry;
652
-
653
- while (position >= 0) {
654
- res[position--] = 0;
655
- }
656
- }
657
- };
658
-
659
- if (Math.clz32) {
660
- BN.prototype._countBits = function _countBits (w) {
661
- return 32 - Math.clz32(w);
662
- };
663
- } else {
664
- BN.prototype._countBits = function _countBits (w) {
665
- var t = w;
666
- var r = 0;
667
- if (t >= 0x1000) {
668
- r += 13;
669
- t >>>= 13;
670
- }
671
- if (t >= 0x40) {
672
- r += 7;
673
- t >>>= 7;
674
- }
675
- if (t >= 0x8) {
676
- r += 4;
677
- t >>>= 4;
678
- }
679
- if (t >= 0x02) {
680
- r += 2;
681
- t >>>= 2;
682
- }
683
- return r + t;
684
- };
685
- }
686
-
687
- BN.prototype._zeroBits = function _zeroBits (w) {
688
- // Short-cut
689
- if (w === 0) return 26;
690
-
691
- var t = w;
692
- var r = 0;
693
- if ((t & 0x1fff) === 0) {
694
- r += 13;
695
- t >>>= 13;
696
- }
697
- if ((t & 0x7f) === 0) {
698
- r += 7;
699
- t >>>= 7;
700
- }
701
- if ((t & 0xf) === 0) {
702
- r += 4;
703
- t >>>= 4;
704
- }
705
- if ((t & 0x3) === 0) {
706
- r += 2;
707
- t >>>= 2;
708
- }
709
- if ((t & 0x1) === 0) {
710
- r++;
711
- }
712
- return r;
713
- };
714
-
715
- // Return number of used bits in a BN
716
- BN.prototype.bitLength = function bitLength () {
717
- var w = this.words[this.length - 1];
718
- var hi = this._countBits(w);
719
- return (this.length - 1) * 26 + hi;
720
- };
721
-
722
- function toBitArray (num) {
723
- var w = new Array(num.bitLength());
724
-
725
- for (var bit = 0; bit < w.length; bit++) {
726
- var off = (bit / 26) | 0;
727
- var wbit = bit % 26;
728
-
729
- w[bit] = (num.words[off] >>> wbit) & 0x01;
730
- }
731
-
732
- return w;
733
- }
734
-
735
- // Number of trailing zero bits
736
- BN.prototype.zeroBits = function zeroBits () {
737
- if (this.isZero()) return 0;
738
-
739
- var r = 0;
740
- for (var i = 0; i < this.length; i++) {
741
- var b = this._zeroBits(this.words[i]);
742
- r += b;
743
- if (b !== 26) break;
744
- }
745
- return r;
746
- };
747
-
748
- BN.prototype.byteLength = function byteLength () {
749
- return Math.ceil(this.bitLength() / 8);
750
- };
751
-
752
- BN.prototype.toTwos = function toTwos (width) {
753
- if (this.negative !== 0) {
754
- return this.abs().inotn(width).iaddn(1);
755
- }
756
- return this.clone();
757
- };
758
-
759
- BN.prototype.fromTwos = function fromTwos (width) {
760
- if (this.testn(width - 1)) {
761
- return this.notn(width).iaddn(1).ineg();
762
- }
763
- return this.clone();
764
- };
765
-
766
- BN.prototype.isNeg = function isNeg () {
767
- return this.negative !== 0;
768
- };
769
-
770
- // Return negative clone of `this`
771
- BN.prototype.neg = function neg () {
772
- return this.clone().ineg();
773
- };
774
-
775
- BN.prototype.ineg = function ineg () {
776
- if (!this.isZero()) {
777
- this.negative ^= 1;
778
- }
779
-
780
- return this;
781
- };
782
-
783
- // Or `num` with `this` in-place
784
- BN.prototype.iuor = function iuor (num) {
785
- while (this.length < num.length) {
786
- this.words[this.length++] = 0;
787
- }
788
-
789
- for (var i = 0; i < num.length; i++) {
790
- this.words[i] = this.words[i] | num.words[i];
791
- }
792
-
793
- return this._strip();
794
- };
795
-
796
- BN.prototype.ior = function ior (num) {
797
- assert((this.negative | num.negative) === 0);
798
- return this.iuor(num);
799
- };
800
-
801
- // Or `num` with `this`
802
- BN.prototype.or = function or (num) {
803
- if (this.length > num.length) return this.clone().ior(num);
804
- return num.clone().ior(this);
805
- };
806
-
807
- BN.prototype.uor = function uor (num) {
808
- if (this.length > num.length) return this.clone().iuor(num);
809
- return num.clone().iuor(this);
810
- };
811
-
812
- // And `num` with `this` in-place
813
- BN.prototype.iuand = function iuand (num) {
814
- // b = min-length(num, this)
815
- var b;
816
- if (this.length > num.length) {
817
- b = num;
818
- } else {
819
- b = this;
820
- }
821
-
822
- for (var i = 0; i < b.length; i++) {
823
- this.words[i] = this.words[i] & num.words[i];
824
- }
825
-
826
- this.length = b.length;
827
-
828
- return this._strip();
829
- };
830
-
831
- BN.prototype.iand = function iand (num) {
832
- assert((this.negative | num.negative) === 0);
833
- return this.iuand(num);
834
- };
835
-
836
- // And `num` with `this`
837
- BN.prototype.and = function and (num) {
838
- if (this.length > num.length) return this.clone().iand(num);
839
- return num.clone().iand(this);
840
- };
841
-
842
- BN.prototype.uand = function uand (num) {
843
- if (this.length > num.length) return this.clone().iuand(num);
844
- return num.clone().iuand(this);
845
- };
846
-
847
- // Xor `num` with `this` in-place
848
- BN.prototype.iuxor = function iuxor (num) {
849
- // a.length > b.length
850
- var a;
851
- var b;
852
- if (this.length > num.length) {
853
- a = this;
854
- b = num;
855
- } else {
856
- a = num;
857
- b = this;
858
- }
859
-
860
- for (var i = 0; i < b.length; i++) {
861
- this.words[i] = a.words[i] ^ b.words[i];
862
- }
863
-
864
- if (this !== a) {
865
- for (; i < a.length; i++) {
866
- this.words[i] = a.words[i];
867
- }
868
- }
869
-
870
- this.length = a.length;
871
-
872
- return this._strip();
873
- };
874
-
875
- BN.prototype.ixor = function ixor (num) {
876
- assert((this.negative | num.negative) === 0);
877
- return this.iuxor(num);
878
- };
879
-
880
- // Xor `num` with `this`
881
- BN.prototype.xor = function xor (num) {
882
- if (this.length > num.length) return this.clone().ixor(num);
883
- return num.clone().ixor(this);
884
- };
885
-
886
- BN.prototype.uxor = function uxor (num) {
887
- if (this.length > num.length) return this.clone().iuxor(num);
888
- return num.clone().iuxor(this);
889
- };
890
-
891
- // Not ``this`` with ``width`` bitwidth
892
- BN.prototype.inotn = function inotn (width) {
893
- assert(typeof width === 'number' && width >= 0);
894
-
895
- var bytesNeeded = Math.ceil(width / 26) | 0;
896
- var bitsLeft = width % 26;
897
-
898
- // Extend the buffer with leading zeroes
899
- this._expand(bytesNeeded);
900
-
901
- if (bitsLeft > 0) {
902
- bytesNeeded--;
903
- }
904
-
905
- // Handle complete words
906
- for (var i = 0; i < bytesNeeded; i++) {
907
- this.words[i] = ~this.words[i] & 0x3ffffff;
908
- }
909
-
910
- // Handle the residue
911
- if (bitsLeft > 0) {
912
- this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));
913
- }
914
-
915
- // And remove leading zeroes
916
- return this._strip();
917
- };
918
-
919
- BN.prototype.notn = function notn (width) {
920
- return this.clone().inotn(width);
921
- };
922
-
923
- // Set `bit` of `this`
924
- BN.prototype.setn = function setn (bit, val) {
925
- assert(typeof bit === 'number' && bit >= 0);
926
-
927
- var off = (bit / 26) | 0;
928
- var wbit = bit % 26;
929
-
930
- this._expand(off + 1);
931
-
932
- if (val) {
933
- this.words[off] = this.words[off] | (1 << wbit);
934
- } else {
935
- this.words[off] = this.words[off] & ~(1 << wbit);
936
- }
937
-
938
- return this._strip();
939
- };
940
-
941
- // Add `num` to `this` in-place
942
- BN.prototype.iadd = function iadd (num) {
943
- var r;
944
-
945
- // negative + positive
946
- if (this.negative !== 0 && num.negative === 0) {
947
- this.negative = 0;
948
- r = this.isub(num);
949
- this.negative ^= 1;
950
- return this._normSign();
951
-
952
- // positive + negative
953
- } else if (this.negative === 0 && num.negative !== 0) {
954
- num.negative = 0;
955
- r = this.isub(num);
956
- num.negative = 1;
957
- return r._normSign();
958
- }
959
-
960
- // a.length > b.length
961
- var a, b;
962
- if (this.length > num.length) {
963
- a = this;
964
- b = num;
965
- } else {
966
- a = num;
967
- b = this;
968
- }
969
-
970
- var carry = 0;
971
- for (var i = 0; i < b.length; i++) {
972
- r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
973
- this.words[i] = r & 0x3ffffff;
974
- carry = r >>> 26;
975
- }
976
- for (; carry !== 0 && i < a.length; i++) {
977
- r = (a.words[i] | 0) + carry;
978
- this.words[i] = r & 0x3ffffff;
979
- carry = r >>> 26;
980
- }
981
-
982
- this.length = a.length;
983
- if (carry !== 0) {
984
- this.words[this.length] = carry;
985
- this.length++;
986
- // Copy the rest of the words
987
- } else if (a !== this) {
988
- for (; i < a.length; i++) {
989
- this.words[i] = a.words[i];
990
- }
991
- }
992
-
993
- return this;
994
- };
995
-
996
- // Add `num` to `this`
997
- BN.prototype.add = function add (num) {
998
- var res;
999
- if (num.negative !== 0 && this.negative === 0) {
1000
- num.negative = 0;
1001
- res = this.sub(num);
1002
- num.negative ^= 1;
1003
- return res;
1004
- } else if (num.negative === 0 && this.negative !== 0) {
1005
- this.negative = 0;
1006
- res = num.sub(this);
1007
- this.negative = 1;
1008
- return res;
1009
- }
1010
-
1011
- if (this.length > num.length) return this.clone().iadd(num);
1012
-
1013
- return num.clone().iadd(this);
1014
- };
1015
-
1016
- // Subtract `num` from `this` in-place
1017
- BN.prototype.isub = function isub (num) {
1018
- // this - (-num) = this + num
1019
- if (num.negative !== 0) {
1020
- num.negative = 0;
1021
- var r = this.iadd(num);
1022
- num.negative = 1;
1023
- return r._normSign();
1024
-
1025
- // -this - num = -(this + num)
1026
- } else if (this.negative !== 0) {
1027
- this.negative = 0;
1028
- this.iadd(num);
1029
- this.negative = 1;
1030
- return this._normSign();
1031
- }
1032
-
1033
- // At this point both numbers are positive
1034
- var cmp = this.cmp(num);
1035
-
1036
- // Optimization - zeroify
1037
- if (cmp === 0) {
1038
- this.negative = 0;
1039
- this.length = 1;
1040
- this.words[0] = 0;
1041
- return this;
1042
- }
1043
-
1044
- // a > b
1045
- var a, b;
1046
- if (cmp > 0) {
1047
- a = this;
1048
- b = num;
1049
- } else {
1050
- a = num;
1051
- b = this;
1052
- }
1053
-
1054
- var carry = 0;
1055
- for (var i = 0; i < b.length; i++) {
1056
- r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
1057
- carry = r >> 26;
1058
- this.words[i] = r & 0x3ffffff;
1059
- }
1060
- for (; carry !== 0 && i < a.length; i++) {
1061
- r = (a.words[i] | 0) + carry;
1062
- carry = r >> 26;
1063
- this.words[i] = r & 0x3ffffff;
1064
- }
1065
-
1066
- // Copy rest of the words
1067
- if (carry === 0 && i < a.length && a !== this) {
1068
- for (; i < a.length; i++) {
1069
- this.words[i] = a.words[i];
1070
- }
1071
- }
1072
-
1073
- this.length = Math.max(this.length, i);
1074
-
1075
- if (a !== this) {
1076
- this.negative = 1;
1077
- }
1078
-
1079
- return this._strip();
1080
- };
1081
-
1082
- // Subtract `num` from `this`
1083
- BN.prototype.sub = function sub (num) {
1084
- return this.clone().isub(num);
1085
- };
1086
-
1087
- function smallMulTo (self, num, out) {
1088
- out.negative = num.negative ^ self.negative;
1089
- var len = (self.length + num.length) | 0;
1090
- out.length = len;
1091
- len = (len - 1) | 0;
1092
-
1093
- // Peel one iteration (compiler can't do it, because of code complexity)
1094
- var a = self.words[0] | 0;
1095
- var b = num.words[0] | 0;
1096
- var r = a * b;
1097
-
1098
- var lo = r & 0x3ffffff;
1099
- var carry = (r / 0x4000000) | 0;
1100
- out.words[0] = lo;
1101
-
1102
- for (var k = 1; k < len; k++) {
1103
- // Sum all words with the same `i + j = k` and accumulate `ncarry`,
1104
- // note that ncarry could be >= 0x3ffffff
1105
- var ncarry = carry >>> 26;
1106
- var rword = carry & 0x3ffffff;
1107
- var maxJ = Math.min(k, num.length - 1);
1108
- for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
1109
- var i = (k - j) | 0;
1110
- a = self.words[i] | 0;
1111
- b = num.words[j] | 0;
1112
- r = a * b + rword;
1113
- ncarry += (r / 0x4000000) | 0;
1114
- rword = r & 0x3ffffff;
1115
- }
1116
- out.words[k] = rword | 0;
1117
- carry = ncarry | 0;
1118
- }
1119
- if (carry !== 0) {
1120
- out.words[k] = carry | 0;
1121
- } else {
1122
- out.length--;
1123
- }
1124
-
1125
- return out._strip();
1126
- }
1127
-
1128
- // TODO(indutny): it may be reasonable to omit it for users who don't need
1129
- // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit
1130
- // multiplication (like elliptic secp256k1).
1131
- var comb10MulTo = function comb10MulTo (self, num, out) {
1132
- var a = self.words;
1133
- var b = num.words;
1134
- var o = out.words;
1135
- var c = 0;
1136
- var lo;
1137
- var mid;
1138
- var hi;
1139
- var a0 = a[0] | 0;
1140
- var al0 = a0 & 0x1fff;
1141
- var ah0 = a0 >>> 13;
1142
- var a1 = a[1] | 0;
1143
- var al1 = a1 & 0x1fff;
1144
- var ah1 = a1 >>> 13;
1145
- var a2 = a[2] | 0;
1146
- var al2 = a2 & 0x1fff;
1147
- var ah2 = a2 >>> 13;
1148
- var a3 = a[3] | 0;
1149
- var al3 = a3 & 0x1fff;
1150
- var ah3 = a3 >>> 13;
1151
- var a4 = a[4] | 0;
1152
- var al4 = a4 & 0x1fff;
1153
- var ah4 = a4 >>> 13;
1154
- var a5 = a[5] | 0;
1155
- var al5 = a5 & 0x1fff;
1156
- var ah5 = a5 >>> 13;
1157
- var a6 = a[6] | 0;
1158
- var al6 = a6 & 0x1fff;
1159
- var ah6 = a6 >>> 13;
1160
- var a7 = a[7] | 0;
1161
- var al7 = a7 & 0x1fff;
1162
- var ah7 = a7 >>> 13;
1163
- var a8 = a[8] | 0;
1164
- var al8 = a8 & 0x1fff;
1165
- var ah8 = a8 >>> 13;
1166
- var a9 = a[9] | 0;
1167
- var al9 = a9 & 0x1fff;
1168
- var ah9 = a9 >>> 13;
1169
- var b0 = b[0] | 0;
1170
- var bl0 = b0 & 0x1fff;
1171
- var bh0 = b0 >>> 13;
1172
- var b1 = b[1] | 0;
1173
- var bl1 = b1 & 0x1fff;
1174
- var bh1 = b1 >>> 13;
1175
- var b2 = b[2] | 0;
1176
- var bl2 = b2 & 0x1fff;
1177
- var bh2 = b2 >>> 13;
1178
- var b3 = b[3] | 0;
1179
- var bl3 = b3 & 0x1fff;
1180
- var bh3 = b3 >>> 13;
1181
- var b4 = b[4] | 0;
1182
- var bl4 = b4 & 0x1fff;
1183
- var bh4 = b4 >>> 13;
1184
- var b5 = b[5] | 0;
1185
- var bl5 = b5 & 0x1fff;
1186
- var bh5 = b5 >>> 13;
1187
- var b6 = b[6] | 0;
1188
- var bl6 = b6 & 0x1fff;
1189
- var bh6 = b6 >>> 13;
1190
- var b7 = b[7] | 0;
1191
- var bl7 = b7 & 0x1fff;
1192
- var bh7 = b7 >>> 13;
1193
- var b8 = b[8] | 0;
1194
- var bl8 = b8 & 0x1fff;
1195
- var bh8 = b8 >>> 13;
1196
- var b9 = b[9] | 0;
1197
- var bl9 = b9 & 0x1fff;
1198
- var bh9 = b9 >>> 13;
1199
-
1200
- out.negative = self.negative ^ num.negative;
1201
- out.length = 19;
1202
- /* k = 0 */
1203
- lo = Math.imul(al0, bl0);
1204
- mid = Math.imul(al0, bh0);
1205
- mid = (mid + Math.imul(ah0, bl0)) | 0;
1206
- hi = Math.imul(ah0, bh0);
1207
- var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1208
- c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;
1209
- w0 &= 0x3ffffff;
1210
- /* k = 1 */
1211
- lo = Math.imul(al1, bl0);
1212
- mid = Math.imul(al1, bh0);
1213
- mid = (mid + Math.imul(ah1, bl0)) | 0;
1214
- hi = Math.imul(ah1, bh0);
1215
- lo = (lo + Math.imul(al0, bl1)) | 0;
1216
- mid = (mid + Math.imul(al0, bh1)) | 0;
1217
- mid = (mid + Math.imul(ah0, bl1)) | 0;
1218
- hi = (hi + Math.imul(ah0, bh1)) | 0;
1219
- var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1220
- c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;
1221
- w1 &= 0x3ffffff;
1222
- /* k = 2 */
1223
- lo = Math.imul(al2, bl0);
1224
- mid = Math.imul(al2, bh0);
1225
- mid = (mid + Math.imul(ah2, bl0)) | 0;
1226
- hi = Math.imul(ah2, bh0);
1227
- lo = (lo + Math.imul(al1, bl1)) | 0;
1228
- mid = (mid + Math.imul(al1, bh1)) | 0;
1229
- mid = (mid + Math.imul(ah1, bl1)) | 0;
1230
- hi = (hi + Math.imul(ah1, bh1)) | 0;
1231
- lo = (lo + Math.imul(al0, bl2)) | 0;
1232
- mid = (mid + Math.imul(al0, bh2)) | 0;
1233
- mid = (mid + Math.imul(ah0, bl2)) | 0;
1234
- hi = (hi + Math.imul(ah0, bh2)) | 0;
1235
- var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1236
- c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;
1237
- w2 &= 0x3ffffff;
1238
- /* k = 3 */
1239
- lo = Math.imul(al3, bl0);
1240
- mid = Math.imul(al3, bh0);
1241
- mid = (mid + Math.imul(ah3, bl0)) | 0;
1242
- hi = Math.imul(ah3, bh0);
1243
- lo = (lo + Math.imul(al2, bl1)) | 0;
1244
- mid = (mid + Math.imul(al2, bh1)) | 0;
1245
- mid = (mid + Math.imul(ah2, bl1)) | 0;
1246
- hi = (hi + Math.imul(ah2, bh1)) | 0;
1247
- lo = (lo + Math.imul(al1, bl2)) | 0;
1248
- mid = (mid + Math.imul(al1, bh2)) | 0;
1249
- mid = (mid + Math.imul(ah1, bl2)) | 0;
1250
- hi = (hi + Math.imul(ah1, bh2)) | 0;
1251
- lo = (lo + Math.imul(al0, bl3)) | 0;
1252
- mid = (mid + Math.imul(al0, bh3)) | 0;
1253
- mid = (mid + Math.imul(ah0, bl3)) | 0;
1254
- hi = (hi + Math.imul(ah0, bh3)) | 0;
1255
- var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1256
- c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;
1257
- w3 &= 0x3ffffff;
1258
- /* k = 4 */
1259
- lo = Math.imul(al4, bl0);
1260
- mid = Math.imul(al4, bh0);
1261
- mid = (mid + Math.imul(ah4, bl0)) | 0;
1262
- hi = Math.imul(ah4, bh0);
1263
- lo = (lo + Math.imul(al3, bl1)) | 0;
1264
- mid = (mid + Math.imul(al3, bh1)) | 0;
1265
- mid = (mid + Math.imul(ah3, bl1)) | 0;
1266
- hi = (hi + Math.imul(ah3, bh1)) | 0;
1267
- lo = (lo + Math.imul(al2, bl2)) | 0;
1268
- mid = (mid + Math.imul(al2, bh2)) | 0;
1269
- mid = (mid + Math.imul(ah2, bl2)) | 0;
1270
- hi = (hi + Math.imul(ah2, bh2)) | 0;
1271
- lo = (lo + Math.imul(al1, bl3)) | 0;
1272
- mid = (mid + Math.imul(al1, bh3)) | 0;
1273
- mid = (mid + Math.imul(ah1, bl3)) | 0;
1274
- hi = (hi + Math.imul(ah1, bh3)) | 0;
1275
- lo = (lo + Math.imul(al0, bl4)) | 0;
1276
- mid = (mid + Math.imul(al0, bh4)) | 0;
1277
- mid = (mid + Math.imul(ah0, bl4)) | 0;
1278
- hi = (hi + Math.imul(ah0, bh4)) | 0;
1279
- var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1280
- c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;
1281
- w4 &= 0x3ffffff;
1282
- /* k = 5 */
1283
- lo = Math.imul(al5, bl0);
1284
- mid = Math.imul(al5, bh0);
1285
- mid = (mid + Math.imul(ah5, bl0)) | 0;
1286
- hi = Math.imul(ah5, bh0);
1287
- lo = (lo + Math.imul(al4, bl1)) | 0;
1288
- mid = (mid + Math.imul(al4, bh1)) | 0;
1289
- mid = (mid + Math.imul(ah4, bl1)) | 0;
1290
- hi = (hi + Math.imul(ah4, bh1)) | 0;
1291
- lo = (lo + Math.imul(al3, bl2)) | 0;
1292
- mid = (mid + Math.imul(al3, bh2)) | 0;
1293
- mid = (mid + Math.imul(ah3, bl2)) | 0;
1294
- hi = (hi + Math.imul(ah3, bh2)) | 0;
1295
- lo = (lo + Math.imul(al2, bl3)) | 0;
1296
- mid = (mid + Math.imul(al2, bh3)) | 0;
1297
- mid = (mid + Math.imul(ah2, bl3)) | 0;
1298
- hi = (hi + Math.imul(ah2, bh3)) | 0;
1299
- lo = (lo + Math.imul(al1, bl4)) | 0;
1300
- mid = (mid + Math.imul(al1, bh4)) | 0;
1301
- mid = (mid + Math.imul(ah1, bl4)) | 0;
1302
- hi = (hi + Math.imul(ah1, bh4)) | 0;
1303
- lo = (lo + Math.imul(al0, bl5)) | 0;
1304
- mid = (mid + Math.imul(al0, bh5)) | 0;
1305
- mid = (mid + Math.imul(ah0, bl5)) | 0;
1306
- hi = (hi + Math.imul(ah0, bh5)) | 0;
1307
- var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1308
- c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;
1309
- w5 &= 0x3ffffff;
1310
- /* k = 6 */
1311
- lo = Math.imul(al6, bl0);
1312
- mid = Math.imul(al6, bh0);
1313
- mid = (mid + Math.imul(ah6, bl0)) | 0;
1314
- hi = Math.imul(ah6, bh0);
1315
- lo = (lo + Math.imul(al5, bl1)) | 0;
1316
- mid = (mid + Math.imul(al5, bh1)) | 0;
1317
- mid = (mid + Math.imul(ah5, bl1)) | 0;
1318
- hi = (hi + Math.imul(ah5, bh1)) | 0;
1319
- lo = (lo + Math.imul(al4, bl2)) | 0;
1320
- mid = (mid + Math.imul(al4, bh2)) | 0;
1321
- mid = (mid + Math.imul(ah4, bl2)) | 0;
1322
- hi = (hi + Math.imul(ah4, bh2)) | 0;
1323
- lo = (lo + Math.imul(al3, bl3)) | 0;
1324
- mid = (mid + Math.imul(al3, bh3)) | 0;
1325
- mid = (mid + Math.imul(ah3, bl3)) | 0;
1326
- hi = (hi + Math.imul(ah3, bh3)) | 0;
1327
- lo = (lo + Math.imul(al2, bl4)) | 0;
1328
- mid = (mid + Math.imul(al2, bh4)) | 0;
1329
- mid = (mid + Math.imul(ah2, bl4)) | 0;
1330
- hi = (hi + Math.imul(ah2, bh4)) | 0;
1331
- lo = (lo + Math.imul(al1, bl5)) | 0;
1332
- mid = (mid + Math.imul(al1, bh5)) | 0;
1333
- mid = (mid + Math.imul(ah1, bl5)) | 0;
1334
- hi = (hi + Math.imul(ah1, bh5)) | 0;
1335
- lo = (lo + Math.imul(al0, bl6)) | 0;
1336
- mid = (mid + Math.imul(al0, bh6)) | 0;
1337
- mid = (mid + Math.imul(ah0, bl6)) | 0;
1338
- hi = (hi + Math.imul(ah0, bh6)) | 0;
1339
- var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1340
- c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;
1341
- w6 &= 0x3ffffff;
1342
- /* k = 7 */
1343
- lo = Math.imul(al7, bl0);
1344
- mid = Math.imul(al7, bh0);
1345
- mid = (mid + Math.imul(ah7, bl0)) | 0;
1346
- hi = Math.imul(ah7, bh0);
1347
- lo = (lo + Math.imul(al6, bl1)) | 0;
1348
- mid = (mid + Math.imul(al6, bh1)) | 0;
1349
- mid = (mid + Math.imul(ah6, bl1)) | 0;
1350
- hi = (hi + Math.imul(ah6, bh1)) | 0;
1351
- lo = (lo + Math.imul(al5, bl2)) | 0;
1352
- mid = (mid + Math.imul(al5, bh2)) | 0;
1353
- mid = (mid + Math.imul(ah5, bl2)) | 0;
1354
- hi = (hi + Math.imul(ah5, bh2)) | 0;
1355
- lo = (lo + Math.imul(al4, bl3)) | 0;
1356
- mid = (mid + Math.imul(al4, bh3)) | 0;
1357
- mid = (mid + Math.imul(ah4, bl3)) | 0;
1358
- hi = (hi + Math.imul(ah4, bh3)) | 0;
1359
- lo = (lo + Math.imul(al3, bl4)) | 0;
1360
- mid = (mid + Math.imul(al3, bh4)) | 0;
1361
- mid = (mid + Math.imul(ah3, bl4)) | 0;
1362
- hi = (hi + Math.imul(ah3, bh4)) | 0;
1363
- lo = (lo + Math.imul(al2, bl5)) | 0;
1364
- mid = (mid + Math.imul(al2, bh5)) | 0;
1365
- mid = (mid + Math.imul(ah2, bl5)) | 0;
1366
- hi = (hi + Math.imul(ah2, bh5)) | 0;
1367
- lo = (lo + Math.imul(al1, bl6)) | 0;
1368
- mid = (mid + Math.imul(al1, bh6)) | 0;
1369
- mid = (mid + Math.imul(ah1, bl6)) | 0;
1370
- hi = (hi + Math.imul(ah1, bh6)) | 0;
1371
- lo = (lo + Math.imul(al0, bl7)) | 0;
1372
- mid = (mid + Math.imul(al0, bh7)) | 0;
1373
- mid = (mid + Math.imul(ah0, bl7)) | 0;
1374
- hi = (hi + Math.imul(ah0, bh7)) | 0;
1375
- var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1376
- c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;
1377
- w7 &= 0x3ffffff;
1378
- /* k = 8 */
1379
- lo = Math.imul(al8, bl0);
1380
- mid = Math.imul(al8, bh0);
1381
- mid = (mid + Math.imul(ah8, bl0)) | 0;
1382
- hi = Math.imul(ah8, bh0);
1383
- lo = (lo + Math.imul(al7, bl1)) | 0;
1384
- mid = (mid + Math.imul(al7, bh1)) | 0;
1385
- mid = (mid + Math.imul(ah7, bl1)) | 0;
1386
- hi = (hi + Math.imul(ah7, bh1)) | 0;
1387
- lo = (lo + Math.imul(al6, bl2)) | 0;
1388
- mid = (mid + Math.imul(al6, bh2)) | 0;
1389
- mid = (mid + Math.imul(ah6, bl2)) | 0;
1390
- hi = (hi + Math.imul(ah6, bh2)) | 0;
1391
- lo = (lo + Math.imul(al5, bl3)) | 0;
1392
- mid = (mid + Math.imul(al5, bh3)) | 0;
1393
- mid = (mid + Math.imul(ah5, bl3)) | 0;
1394
- hi = (hi + Math.imul(ah5, bh3)) | 0;
1395
- lo = (lo + Math.imul(al4, bl4)) | 0;
1396
- mid = (mid + Math.imul(al4, bh4)) | 0;
1397
- mid = (mid + Math.imul(ah4, bl4)) | 0;
1398
- hi = (hi + Math.imul(ah4, bh4)) | 0;
1399
- lo = (lo + Math.imul(al3, bl5)) | 0;
1400
- mid = (mid + Math.imul(al3, bh5)) | 0;
1401
- mid = (mid + Math.imul(ah3, bl5)) | 0;
1402
- hi = (hi + Math.imul(ah3, bh5)) | 0;
1403
- lo = (lo + Math.imul(al2, bl6)) | 0;
1404
- mid = (mid + Math.imul(al2, bh6)) | 0;
1405
- mid = (mid + Math.imul(ah2, bl6)) | 0;
1406
- hi = (hi + Math.imul(ah2, bh6)) | 0;
1407
- lo = (lo + Math.imul(al1, bl7)) | 0;
1408
- mid = (mid + Math.imul(al1, bh7)) | 0;
1409
- mid = (mid + Math.imul(ah1, bl7)) | 0;
1410
- hi = (hi + Math.imul(ah1, bh7)) | 0;
1411
- lo = (lo + Math.imul(al0, bl8)) | 0;
1412
- mid = (mid + Math.imul(al0, bh8)) | 0;
1413
- mid = (mid + Math.imul(ah0, bl8)) | 0;
1414
- hi = (hi + Math.imul(ah0, bh8)) | 0;
1415
- var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1416
- c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;
1417
- w8 &= 0x3ffffff;
1418
- /* k = 9 */
1419
- lo = Math.imul(al9, bl0);
1420
- mid = Math.imul(al9, bh0);
1421
- mid = (mid + Math.imul(ah9, bl0)) | 0;
1422
- hi = Math.imul(ah9, bh0);
1423
- lo = (lo + Math.imul(al8, bl1)) | 0;
1424
- mid = (mid + Math.imul(al8, bh1)) | 0;
1425
- mid = (mid + Math.imul(ah8, bl1)) | 0;
1426
- hi = (hi + Math.imul(ah8, bh1)) | 0;
1427
- lo = (lo + Math.imul(al7, bl2)) | 0;
1428
- mid = (mid + Math.imul(al7, bh2)) | 0;
1429
- mid = (mid + Math.imul(ah7, bl2)) | 0;
1430
- hi = (hi + Math.imul(ah7, bh2)) | 0;
1431
- lo = (lo + Math.imul(al6, bl3)) | 0;
1432
- mid = (mid + Math.imul(al6, bh3)) | 0;
1433
- mid = (mid + Math.imul(ah6, bl3)) | 0;
1434
- hi = (hi + Math.imul(ah6, bh3)) | 0;
1435
- lo = (lo + Math.imul(al5, bl4)) | 0;
1436
- mid = (mid + Math.imul(al5, bh4)) | 0;
1437
- mid = (mid + Math.imul(ah5, bl4)) | 0;
1438
- hi = (hi + Math.imul(ah5, bh4)) | 0;
1439
- lo = (lo + Math.imul(al4, bl5)) | 0;
1440
- mid = (mid + Math.imul(al4, bh5)) | 0;
1441
- mid = (mid + Math.imul(ah4, bl5)) | 0;
1442
- hi = (hi + Math.imul(ah4, bh5)) | 0;
1443
- lo = (lo + Math.imul(al3, bl6)) | 0;
1444
- mid = (mid + Math.imul(al3, bh6)) | 0;
1445
- mid = (mid + Math.imul(ah3, bl6)) | 0;
1446
- hi = (hi + Math.imul(ah3, bh6)) | 0;
1447
- lo = (lo + Math.imul(al2, bl7)) | 0;
1448
- mid = (mid + Math.imul(al2, bh7)) | 0;
1449
- mid = (mid + Math.imul(ah2, bl7)) | 0;
1450
- hi = (hi + Math.imul(ah2, bh7)) | 0;
1451
- lo = (lo + Math.imul(al1, bl8)) | 0;
1452
- mid = (mid + Math.imul(al1, bh8)) | 0;
1453
- mid = (mid + Math.imul(ah1, bl8)) | 0;
1454
- hi = (hi + Math.imul(ah1, bh8)) | 0;
1455
- lo = (lo + Math.imul(al0, bl9)) | 0;
1456
- mid = (mid + Math.imul(al0, bh9)) | 0;
1457
- mid = (mid + Math.imul(ah0, bl9)) | 0;
1458
- hi = (hi + Math.imul(ah0, bh9)) | 0;
1459
- var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1460
- c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;
1461
- w9 &= 0x3ffffff;
1462
- /* k = 10 */
1463
- lo = Math.imul(al9, bl1);
1464
- mid = Math.imul(al9, bh1);
1465
- mid = (mid + Math.imul(ah9, bl1)) | 0;
1466
- hi = Math.imul(ah9, bh1);
1467
- lo = (lo + Math.imul(al8, bl2)) | 0;
1468
- mid = (mid + Math.imul(al8, bh2)) | 0;
1469
- mid = (mid + Math.imul(ah8, bl2)) | 0;
1470
- hi = (hi + Math.imul(ah8, bh2)) | 0;
1471
- lo = (lo + Math.imul(al7, bl3)) | 0;
1472
- mid = (mid + Math.imul(al7, bh3)) | 0;
1473
- mid = (mid + Math.imul(ah7, bl3)) | 0;
1474
- hi = (hi + Math.imul(ah7, bh3)) | 0;
1475
- lo = (lo + Math.imul(al6, bl4)) | 0;
1476
- mid = (mid + Math.imul(al6, bh4)) | 0;
1477
- mid = (mid + Math.imul(ah6, bl4)) | 0;
1478
- hi = (hi + Math.imul(ah6, bh4)) | 0;
1479
- lo = (lo + Math.imul(al5, bl5)) | 0;
1480
- mid = (mid + Math.imul(al5, bh5)) | 0;
1481
- mid = (mid + Math.imul(ah5, bl5)) | 0;
1482
- hi = (hi + Math.imul(ah5, bh5)) | 0;
1483
- lo = (lo + Math.imul(al4, bl6)) | 0;
1484
- mid = (mid + Math.imul(al4, bh6)) | 0;
1485
- mid = (mid + Math.imul(ah4, bl6)) | 0;
1486
- hi = (hi + Math.imul(ah4, bh6)) | 0;
1487
- lo = (lo + Math.imul(al3, bl7)) | 0;
1488
- mid = (mid + Math.imul(al3, bh7)) | 0;
1489
- mid = (mid + Math.imul(ah3, bl7)) | 0;
1490
- hi = (hi + Math.imul(ah3, bh7)) | 0;
1491
- lo = (lo + Math.imul(al2, bl8)) | 0;
1492
- mid = (mid + Math.imul(al2, bh8)) | 0;
1493
- mid = (mid + Math.imul(ah2, bl8)) | 0;
1494
- hi = (hi + Math.imul(ah2, bh8)) | 0;
1495
- lo = (lo + Math.imul(al1, bl9)) | 0;
1496
- mid = (mid + Math.imul(al1, bh9)) | 0;
1497
- mid = (mid + Math.imul(ah1, bl9)) | 0;
1498
- hi = (hi + Math.imul(ah1, bh9)) | 0;
1499
- var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1500
- c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;
1501
- w10 &= 0x3ffffff;
1502
- /* k = 11 */
1503
- lo = Math.imul(al9, bl2);
1504
- mid = Math.imul(al9, bh2);
1505
- mid = (mid + Math.imul(ah9, bl2)) | 0;
1506
- hi = Math.imul(ah9, bh2);
1507
- lo = (lo + Math.imul(al8, bl3)) | 0;
1508
- mid = (mid + Math.imul(al8, bh3)) | 0;
1509
- mid = (mid + Math.imul(ah8, bl3)) | 0;
1510
- hi = (hi + Math.imul(ah8, bh3)) | 0;
1511
- lo = (lo + Math.imul(al7, bl4)) | 0;
1512
- mid = (mid + Math.imul(al7, bh4)) | 0;
1513
- mid = (mid + Math.imul(ah7, bl4)) | 0;
1514
- hi = (hi + Math.imul(ah7, bh4)) | 0;
1515
- lo = (lo + Math.imul(al6, bl5)) | 0;
1516
- mid = (mid + Math.imul(al6, bh5)) | 0;
1517
- mid = (mid + Math.imul(ah6, bl5)) | 0;
1518
- hi = (hi + Math.imul(ah6, bh5)) | 0;
1519
- lo = (lo + Math.imul(al5, bl6)) | 0;
1520
- mid = (mid + Math.imul(al5, bh6)) | 0;
1521
- mid = (mid + Math.imul(ah5, bl6)) | 0;
1522
- hi = (hi + Math.imul(ah5, bh6)) | 0;
1523
- lo = (lo + Math.imul(al4, bl7)) | 0;
1524
- mid = (mid + Math.imul(al4, bh7)) | 0;
1525
- mid = (mid + Math.imul(ah4, bl7)) | 0;
1526
- hi = (hi + Math.imul(ah4, bh7)) | 0;
1527
- lo = (lo + Math.imul(al3, bl8)) | 0;
1528
- mid = (mid + Math.imul(al3, bh8)) | 0;
1529
- mid = (mid + Math.imul(ah3, bl8)) | 0;
1530
- hi = (hi + Math.imul(ah3, bh8)) | 0;
1531
- lo = (lo + Math.imul(al2, bl9)) | 0;
1532
- mid = (mid + Math.imul(al2, bh9)) | 0;
1533
- mid = (mid + Math.imul(ah2, bl9)) | 0;
1534
- hi = (hi + Math.imul(ah2, bh9)) | 0;
1535
- var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1536
- c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;
1537
- w11 &= 0x3ffffff;
1538
- /* k = 12 */
1539
- lo = Math.imul(al9, bl3);
1540
- mid = Math.imul(al9, bh3);
1541
- mid = (mid + Math.imul(ah9, bl3)) | 0;
1542
- hi = Math.imul(ah9, bh3);
1543
- lo = (lo + Math.imul(al8, bl4)) | 0;
1544
- mid = (mid + Math.imul(al8, bh4)) | 0;
1545
- mid = (mid + Math.imul(ah8, bl4)) | 0;
1546
- hi = (hi + Math.imul(ah8, bh4)) | 0;
1547
- lo = (lo + Math.imul(al7, bl5)) | 0;
1548
- mid = (mid + Math.imul(al7, bh5)) | 0;
1549
- mid = (mid + Math.imul(ah7, bl5)) | 0;
1550
- hi = (hi + Math.imul(ah7, bh5)) | 0;
1551
- lo = (lo + Math.imul(al6, bl6)) | 0;
1552
- mid = (mid + Math.imul(al6, bh6)) | 0;
1553
- mid = (mid + Math.imul(ah6, bl6)) | 0;
1554
- hi = (hi + Math.imul(ah6, bh6)) | 0;
1555
- lo = (lo + Math.imul(al5, bl7)) | 0;
1556
- mid = (mid + Math.imul(al5, bh7)) | 0;
1557
- mid = (mid + Math.imul(ah5, bl7)) | 0;
1558
- hi = (hi + Math.imul(ah5, bh7)) | 0;
1559
- lo = (lo + Math.imul(al4, bl8)) | 0;
1560
- mid = (mid + Math.imul(al4, bh8)) | 0;
1561
- mid = (mid + Math.imul(ah4, bl8)) | 0;
1562
- hi = (hi + Math.imul(ah4, bh8)) | 0;
1563
- lo = (lo + Math.imul(al3, bl9)) | 0;
1564
- mid = (mid + Math.imul(al3, bh9)) | 0;
1565
- mid = (mid + Math.imul(ah3, bl9)) | 0;
1566
- hi = (hi + Math.imul(ah3, bh9)) | 0;
1567
- var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1568
- c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;
1569
- w12 &= 0x3ffffff;
1570
- /* k = 13 */
1571
- lo = Math.imul(al9, bl4);
1572
- mid = Math.imul(al9, bh4);
1573
- mid = (mid + Math.imul(ah9, bl4)) | 0;
1574
- hi = Math.imul(ah9, bh4);
1575
- lo = (lo + Math.imul(al8, bl5)) | 0;
1576
- mid = (mid + Math.imul(al8, bh5)) | 0;
1577
- mid = (mid + Math.imul(ah8, bl5)) | 0;
1578
- hi = (hi + Math.imul(ah8, bh5)) | 0;
1579
- lo = (lo + Math.imul(al7, bl6)) | 0;
1580
- mid = (mid + Math.imul(al7, bh6)) | 0;
1581
- mid = (mid + Math.imul(ah7, bl6)) | 0;
1582
- hi = (hi + Math.imul(ah7, bh6)) | 0;
1583
- lo = (lo + Math.imul(al6, bl7)) | 0;
1584
- mid = (mid + Math.imul(al6, bh7)) | 0;
1585
- mid = (mid + Math.imul(ah6, bl7)) | 0;
1586
- hi = (hi + Math.imul(ah6, bh7)) | 0;
1587
- lo = (lo + Math.imul(al5, bl8)) | 0;
1588
- mid = (mid + Math.imul(al5, bh8)) | 0;
1589
- mid = (mid + Math.imul(ah5, bl8)) | 0;
1590
- hi = (hi + Math.imul(ah5, bh8)) | 0;
1591
- lo = (lo + Math.imul(al4, bl9)) | 0;
1592
- mid = (mid + Math.imul(al4, bh9)) | 0;
1593
- mid = (mid + Math.imul(ah4, bl9)) | 0;
1594
- hi = (hi + Math.imul(ah4, bh9)) | 0;
1595
- var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1596
- c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;
1597
- w13 &= 0x3ffffff;
1598
- /* k = 14 */
1599
- lo = Math.imul(al9, bl5);
1600
- mid = Math.imul(al9, bh5);
1601
- mid = (mid + Math.imul(ah9, bl5)) | 0;
1602
- hi = Math.imul(ah9, bh5);
1603
- lo = (lo + Math.imul(al8, bl6)) | 0;
1604
- mid = (mid + Math.imul(al8, bh6)) | 0;
1605
- mid = (mid + Math.imul(ah8, bl6)) | 0;
1606
- hi = (hi + Math.imul(ah8, bh6)) | 0;
1607
- lo = (lo + Math.imul(al7, bl7)) | 0;
1608
- mid = (mid + Math.imul(al7, bh7)) | 0;
1609
- mid = (mid + Math.imul(ah7, bl7)) | 0;
1610
- hi = (hi + Math.imul(ah7, bh7)) | 0;
1611
- lo = (lo + Math.imul(al6, bl8)) | 0;
1612
- mid = (mid + Math.imul(al6, bh8)) | 0;
1613
- mid = (mid + Math.imul(ah6, bl8)) | 0;
1614
- hi = (hi + Math.imul(ah6, bh8)) | 0;
1615
- lo = (lo + Math.imul(al5, bl9)) | 0;
1616
- mid = (mid + Math.imul(al5, bh9)) | 0;
1617
- mid = (mid + Math.imul(ah5, bl9)) | 0;
1618
- hi = (hi + Math.imul(ah5, bh9)) | 0;
1619
- var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1620
- c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;
1621
- w14 &= 0x3ffffff;
1622
- /* k = 15 */
1623
- lo = Math.imul(al9, bl6);
1624
- mid = Math.imul(al9, bh6);
1625
- mid = (mid + Math.imul(ah9, bl6)) | 0;
1626
- hi = Math.imul(ah9, bh6);
1627
- lo = (lo + Math.imul(al8, bl7)) | 0;
1628
- mid = (mid + Math.imul(al8, bh7)) | 0;
1629
- mid = (mid + Math.imul(ah8, bl7)) | 0;
1630
- hi = (hi + Math.imul(ah8, bh7)) | 0;
1631
- lo = (lo + Math.imul(al7, bl8)) | 0;
1632
- mid = (mid + Math.imul(al7, bh8)) | 0;
1633
- mid = (mid + Math.imul(ah7, bl8)) | 0;
1634
- hi = (hi + Math.imul(ah7, bh8)) | 0;
1635
- lo = (lo + Math.imul(al6, bl9)) | 0;
1636
- mid = (mid + Math.imul(al6, bh9)) | 0;
1637
- mid = (mid + Math.imul(ah6, bl9)) | 0;
1638
- hi = (hi + Math.imul(ah6, bh9)) | 0;
1639
- var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1640
- c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;
1641
- w15 &= 0x3ffffff;
1642
- /* k = 16 */
1643
- lo = Math.imul(al9, bl7);
1644
- mid = Math.imul(al9, bh7);
1645
- mid = (mid + Math.imul(ah9, bl7)) | 0;
1646
- hi = Math.imul(ah9, bh7);
1647
- lo = (lo + Math.imul(al8, bl8)) | 0;
1648
- mid = (mid + Math.imul(al8, bh8)) | 0;
1649
- mid = (mid + Math.imul(ah8, bl8)) | 0;
1650
- hi = (hi + Math.imul(ah8, bh8)) | 0;
1651
- lo = (lo + Math.imul(al7, bl9)) | 0;
1652
- mid = (mid + Math.imul(al7, bh9)) | 0;
1653
- mid = (mid + Math.imul(ah7, bl9)) | 0;
1654
- hi = (hi + Math.imul(ah7, bh9)) | 0;
1655
- var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1656
- c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;
1657
- w16 &= 0x3ffffff;
1658
- /* k = 17 */
1659
- lo = Math.imul(al9, bl8);
1660
- mid = Math.imul(al9, bh8);
1661
- mid = (mid + Math.imul(ah9, bl8)) | 0;
1662
- hi = Math.imul(ah9, bh8);
1663
- lo = (lo + Math.imul(al8, bl9)) | 0;
1664
- mid = (mid + Math.imul(al8, bh9)) | 0;
1665
- mid = (mid + Math.imul(ah8, bl9)) | 0;
1666
- hi = (hi + Math.imul(ah8, bh9)) | 0;
1667
- var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1668
- c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;
1669
- w17 &= 0x3ffffff;
1670
- /* k = 18 */
1671
- lo = Math.imul(al9, bl9);
1672
- mid = Math.imul(al9, bh9);
1673
- mid = (mid + Math.imul(ah9, bl9)) | 0;
1674
- hi = Math.imul(ah9, bh9);
1675
- var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;
1676
- c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;
1677
- w18 &= 0x3ffffff;
1678
- o[0] = w0;
1679
- o[1] = w1;
1680
- o[2] = w2;
1681
- o[3] = w3;
1682
- o[4] = w4;
1683
- o[5] = w5;
1684
- o[6] = w6;
1685
- o[7] = w7;
1686
- o[8] = w8;
1687
- o[9] = w9;
1688
- o[10] = w10;
1689
- o[11] = w11;
1690
- o[12] = w12;
1691
- o[13] = w13;
1692
- o[14] = w14;
1693
- o[15] = w15;
1694
- o[16] = w16;
1695
- o[17] = w17;
1696
- o[18] = w18;
1697
- if (c !== 0) {
1698
- o[19] = c;
1699
- out.length++;
1700
- }
1701
- return out;
1702
- };
1703
-
1704
- // Polyfill comb
1705
- if (!Math.imul) {
1706
- comb10MulTo = smallMulTo;
1707
- }
1708
-
1709
- function bigMulTo (self, num, out) {
1710
- out.negative = num.negative ^ self.negative;
1711
- out.length = self.length + num.length;
1712
-
1713
- var carry = 0;
1714
- var hncarry = 0;
1715
- for (var k = 0; k < out.length - 1; k++) {
1716
- // Sum all words with the same `i + j = k` and accumulate `ncarry`,
1717
- // note that ncarry could be >= 0x3ffffff
1718
- var ncarry = hncarry;
1719
- hncarry = 0;
1720
- var rword = carry & 0x3ffffff;
1721
- var maxJ = Math.min(k, num.length - 1);
1722
- for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
1723
- var i = k - j;
1724
- var a = self.words[i] | 0;
1725
- var b = num.words[j] | 0;
1726
- var r = a * b;
1727
-
1728
- var lo = r & 0x3ffffff;
1729
- ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;
1730
- lo = (lo + rword) | 0;
1731
- rword = lo & 0x3ffffff;
1732
- ncarry = (ncarry + (lo >>> 26)) | 0;
1733
-
1734
- hncarry += ncarry >>> 26;
1735
- ncarry &= 0x3ffffff;
1736
- }
1737
- out.words[k] = rword;
1738
- carry = ncarry;
1739
- ncarry = hncarry;
1740
- }
1741
- if (carry !== 0) {
1742
- out.words[k] = carry;
1743
- } else {
1744
- out.length--;
1745
- }
1746
-
1747
- return out._strip();
1748
- }
1749
-
1750
- function jumboMulTo (self, num, out) {
1751
- // Temporary disable, see https://github.com/indutny/bn.js/issues/211
1752
- // var fftm = new FFTM();
1753
- // return fftm.mulp(self, num, out);
1754
- return bigMulTo(self, num, out);
1755
- }
1756
-
1757
- BN.prototype.mulTo = function mulTo (num, out) {
1758
- var res;
1759
- var len = this.length + num.length;
1760
- if (this.length === 10 && num.length === 10) {
1761
- res = comb10MulTo(this, num, out);
1762
- } else if (len < 63) {
1763
- res = smallMulTo(this, num, out);
1764
- } else if (len < 1024) {
1765
- res = bigMulTo(this, num, out);
1766
- } else {
1767
- res = jumboMulTo(this, num, out);
1768
- }
1769
-
1770
- return res;
1771
- };
1772
-
1773
- // Cooley-Tukey algorithm for FFT
1774
- // slightly revisited to rely on looping instead of recursion
1775
-
1776
- function FFTM (x, y) {
1777
- this.x = x;
1778
- this.y = y;
1779
- }
1780
-
1781
- FFTM.prototype.makeRBT = function makeRBT (N) {
1782
- var t = new Array(N);
1783
- var l = BN.prototype._countBits(N) - 1;
1784
- for (var i = 0; i < N; i++) {
1785
- t[i] = this.revBin(i, l, N);
1786
- }
1787
-
1788
- return t;
1789
- };
1790
-
1791
- // Returns binary-reversed representation of `x`
1792
- FFTM.prototype.revBin = function revBin (x, l, N) {
1793
- if (x === 0 || x === N - 1) return x;
1794
-
1795
- var rb = 0;
1796
- for (var i = 0; i < l; i++) {
1797
- rb |= (x & 1) << (l - i - 1);
1798
- x >>= 1;
1799
- }
1800
-
1801
- return rb;
1802
- };
1803
-
1804
- // Performs "tweedling" phase, therefore 'emulating'
1805
- // behaviour of the recursive algorithm
1806
- FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
1807
- for (var i = 0; i < N; i++) {
1808
- rtws[i] = rws[rbt[i]];
1809
- itws[i] = iws[rbt[i]];
1810
- }
1811
- };
1812
-
1813
- FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
1814
- this.permute(rbt, rws, iws, rtws, itws, N);
1815
-
1816
- for (var s = 1; s < N; s <<= 1) {
1817
- var l = s << 1;
1818
-
1819
- var rtwdf = Math.cos(2 * Math.PI / l);
1820
- var itwdf = Math.sin(2 * Math.PI / l);
1821
-
1822
- for (var p = 0; p < N; p += l) {
1823
- var rtwdf_ = rtwdf;
1824
- var itwdf_ = itwdf;
1825
-
1826
- for (var j = 0; j < s; j++) {
1827
- var re = rtws[p + j];
1828
- var ie = itws[p + j];
1829
-
1830
- var ro = rtws[p + j + s];
1831
- var io = itws[p + j + s];
1832
-
1833
- var rx = rtwdf_ * ro - itwdf_ * io;
1834
-
1835
- io = rtwdf_ * io + itwdf_ * ro;
1836
- ro = rx;
1837
-
1838
- rtws[p + j] = re + ro;
1839
- itws[p + j] = ie + io;
1840
-
1841
- rtws[p + j + s] = re - ro;
1842
- itws[p + j + s] = ie - io;
1843
-
1844
- /* jshint maxdepth : false */
1845
- if (j !== l) {
1846
- rx = rtwdf * rtwdf_ - itwdf * itwdf_;
1847
-
1848
- itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
1849
- rtwdf_ = rx;
1850
- }
1851
- }
1852
- }
1853
- }
1854
- };
1855
-
1856
- FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
1857
- var N = Math.max(m, n) | 1;
1858
- var odd = N & 1;
1859
- var i = 0;
1860
- for (N = N / 2 | 0; N; N = N >>> 1) {
1861
- i++;
1862
- }
1863
-
1864
- return 1 << i + 1 + odd;
1865
- };
1866
-
1867
- FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
1868
- if (N <= 1) return;
1869
-
1870
- for (var i = 0; i < N / 2; i++) {
1871
- var t = rws[i];
1872
-
1873
- rws[i] = rws[N - i - 1];
1874
- rws[N - i - 1] = t;
1875
-
1876
- t = iws[i];
1877
-
1878
- iws[i] = -iws[N - i - 1];
1879
- iws[N - i - 1] = -t;
1880
- }
1881
- };
1882
-
1883
- FFTM.prototype.normalize13b = function normalize13b (ws, N) {
1884
- var carry = 0;
1885
- for (var i = 0; i < N / 2; i++) {
1886
- var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +
1887
- Math.round(ws[2 * i] / N) +
1888
- carry;
1889
-
1890
- ws[i] = w & 0x3ffffff;
1891
-
1892
- if (w < 0x4000000) {
1893
- carry = 0;
1894
- } else {
1895
- carry = w / 0x4000000 | 0;
1896
- }
1897
- }
1898
-
1899
- return ws;
1900
- };
1901
-
1902
- FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
1903
- var carry = 0;
1904
- for (var i = 0; i < len; i++) {
1905
- carry = carry + (ws[i] | 0);
1906
-
1907
- rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;
1908
- rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;
1909
- }
1910
-
1911
- // Pad with zeroes
1912
- for (i = 2 * len; i < N; ++i) {
1913
- rws[i] = 0;
1914
- }
1915
-
1916
- assert(carry === 0);
1917
- assert((carry & ~0x1fff) === 0);
1918
- };
1919
-
1920
- FFTM.prototype.stub = function stub (N) {
1921
- var ph = new Array(N);
1922
- for (var i = 0; i < N; i++) {
1923
- ph[i] = 0;
1924
- }
1925
-
1926
- return ph;
1927
- };
1928
-
1929
- FFTM.prototype.mulp = function mulp (x, y, out) {
1930
- var N = 2 * this.guessLen13b(x.length, y.length);
1931
-
1932
- var rbt = this.makeRBT(N);
1933
-
1934
- var _ = this.stub(N);
1935
-
1936
- var rws = new Array(N);
1937
- var rwst = new Array(N);
1938
- var iwst = new Array(N);
1939
-
1940
- var nrws = new Array(N);
1941
- var nrwst = new Array(N);
1942
- var niwst = new Array(N);
1943
-
1944
- var rmws = out.words;
1945
- rmws.length = N;
1946
-
1947
- this.convert13b(x.words, x.length, rws, N);
1948
- this.convert13b(y.words, y.length, nrws, N);
1949
-
1950
- this.transform(rws, _, rwst, iwst, N, rbt);
1951
- this.transform(nrws, _, nrwst, niwst, N, rbt);
1952
-
1953
- for (var i = 0; i < N; i++) {
1954
- var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
1955
- iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
1956
- rwst[i] = rx;
1957
- }
1958
-
1959
- this.conjugate(rwst, iwst, N);
1960
- this.transform(rwst, iwst, rmws, _, N, rbt);
1961
- this.conjugate(rmws, _, N);
1962
- this.normalize13b(rmws, N);
1963
-
1964
- out.negative = x.negative ^ y.negative;
1965
- out.length = x.length + y.length;
1966
- return out._strip();
1967
- };
1968
-
1969
- // Multiply `this` by `num`
1970
- BN.prototype.mul = function mul (num) {
1971
- var out = new BN(null);
1972
- out.words = new Array(this.length + num.length);
1973
- return this.mulTo(num, out);
1974
- };
1975
-
1976
- // Multiply employing FFT
1977
- BN.prototype.mulf = function mulf (num) {
1978
- var out = new BN(null);
1979
- out.words = new Array(this.length + num.length);
1980
- return jumboMulTo(this, num, out);
1981
- };
1982
-
1983
- // In-place Multiplication
1984
- BN.prototype.imul = function imul (num) {
1985
- return this.clone().mulTo(num, this);
1986
- };
1987
-
1988
- BN.prototype.imuln = function imuln (num) {
1989
- var isNegNum = num < 0;
1990
- if (isNegNum) num = -num;
1991
-
1992
- assert(typeof num === 'number');
1993
- assert(num < 0x4000000);
1994
-
1995
- // Carry
1996
- var carry = 0;
1997
- for (var i = 0; i < this.length; i++) {
1998
- var w = (this.words[i] | 0) * num;
1999
- var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);
2000
- carry >>= 26;
2001
- carry += (w / 0x4000000) | 0;
2002
- // NOTE: lo is 27bit maximum
2003
- carry += lo >>> 26;
2004
- this.words[i] = lo & 0x3ffffff;
2005
- }
2006
-
2007
- if (carry !== 0) {
2008
- this.words[i] = carry;
2009
- this.length++;
2010
- }
2011
-
2012
- return isNegNum ? this.ineg() : this;
2013
- };
2014
-
2015
- BN.prototype.muln = function muln (num) {
2016
- return this.clone().imuln(num);
2017
- };
2018
-
2019
- // `this` * `this`
2020
- BN.prototype.sqr = function sqr () {
2021
- return this.mul(this);
2022
- };
2023
-
2024
- // `this` * `this` in-place
2025
- BN.prototype.isqr = function isqr () {
2026
- return this.imul(this.clone());
2027
- };
2028
-
2029
- // Math.pow(`this`, `num`)
2030
- BN.prototype.pow = function pow (num) {
2031
- var w = toBitArray(num);
2032
- if (w.length === 0) return new BN(1);
2033
-
2034
- // Skip leading zeroes
2035
- var res = this;
2036
- for (var i = 0; i < w.length; i++, res = res.sqr()) {
2037
- if (w[i] !== 0) break;
2038
- }
2039
-
2040
- if (++i < w.length) {
2041
- for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
2042
- if (w[i] === 0) continue;
2043
-
2044
- res = res.mul(q);
2045
- }
2046
- }
2047
-
2048
- return res;
2049
- };
2050
-
2051
- // Shift-left in-place
2052
- BN.prototype.iushln = function iushln (bits) {
2053
- assert(typeof bits === 'number' && bits >= 0);
2054
- var r = bits % 26;
2055
- var s = (bits - r) / 26;
2056
- var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);
2057
- var i;
2058
-
2059
- if (r !== 0) {
2060
- var carry = 0;
2061
-
2062
- for (i = 0; i < this.length; i++) {
2063
- var newCarry = this.words[i] & carryMask;
2064
- var c = ((this.words[i] | 0) - newCarry) << r;
2065
- this.words[i] = c | carry;
2066
- carry = newCarry >>> (26 - r);
2067
- }
2068
-
2069
- if (carry) {
2070
- this.words[i] = carry;
2071
- this.length++;
2072
- }
2073
- }
2074
-
2075
- if (s !== 0) {
2076
- for (i = this.length - 1; i >= 0; i--) {
2077
- this.words[i + s] = this.words[i];
2078
- }
2079
-
2080
- for (i = 0; i < s; i++) {
2081
- this.words[i] = 0;
2082
- }
2083
-
2084
- this.length += s;
2085
- }
2086
-
2087
- return this._strip();
2088
- };
2089
-
2090
- BN.prototype.ishln = function ishln (bits) {
2091
- // TODO(indutny): implement me
2092
- assert(this.negative === 0);
2093
- return this.iushln(bits);
2094
- };
2095
-
2096
- // Shift-right in-place
2097
- // NOTE: `hint` is a lowest bit before trailing zeroes
2098
- // NOTE: if `extended` is present - it will be filled with destroyed bits
2099
- BN.prototype.iushrn = function iushrn (bits, hint, extended) {
2100
- assert(typeof bits === 'number' && bits >= 0);
2101
- var h;
2102
- if (hint) {
2103
- h = (hint - (hint % 26)) / 26;
2104
- } else {
2105
- h = 0;
2106
- }
2107
-
2108
- var r = bits % 26;
2109
- var s = Math.min((bits - r) / 26, this.length);
2110
- var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
2111
- var maskedWords = extended;
2112
-
2113
- h -= s;
2114
- h = Math.max(0, h);
2115
-
2116
- // Extended mode, copy masked part
2117
- if (maskedWords) {
2118
- for (var i = 0; i < s; i++) {
2119
- maskedWords.words[i] = this.words[i];
2120
- }
2121
- maskedWords.length = s;
2122
- }
2123
-
2124
- if (s === 0) {
2125
- // No-op, we should not move anything at all
2126
- } else if (this.length > s) {
2127
- this.length -= s;
2128
- for (i = 0; i < this.length; i++) {
2129
- this.words[i] = this.words[i + s];
2130
- }
2131
- } else {
2132
- this.words[0] = 0;
2133
- this.length = 1;
2134
- }
2135
-
2136
- var carry = 0;
2137
- for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
2138
- var word = this.words[i] | 0;
2139
- this.words[i] = (carry << (26 - r)) | (word >>> r);
2140
- carry = word & mask;
2141
- }
2142
-
2143
- // Push carried bits as a mask
2144
- if (maskedWords && carry !== 0) {
2145
- maskedWords.words[maskedWords.length++] = carry;
2146
- }
2147
-
2148
- if (this.length === 0) {
2149
- this.words[0] = 0;
2150
- this.length = 1;
2151
- }
2152
-
2153
- return this._strip();
2154
- };
2155
-
2156
- BN.prototype.ishrn = function ishrn (bits, hint, extended) {
2157
- // TODO(indutny): implement me
2158
- assert(this.negative === 0);
2159
- return this.iushrn(bits, hint, extended);
2160
- };
2161
-
2162
- // Shift-left
2163
- BN.prototype.shln = function shln (bits) {
2164
- return this.clone().ishln(bits);
2165
- };
2166
-
2167
- BN.prototype.ushln = function ushln (bits) {
2168
- return this.clone().iushln(bits);
2169
- };
2170
-
2171
- // Shift-right
2172
- BN.prototype.shrn = function shrn (bits) {
2173
- return this.clone().ishrn(bits);
2174
- };
2175
-
2176
- BN.prototype.ushrn = function ushrn (bits) {
2177
- return this.clone().iushrn(bits);
2178
- };
2179
-
2180
- // Test if n bit is set
2181
- BN.prototype.testn = function testn (bit) {
2182
- assert(typeof bit === 'number' && bit >= 0);
2183
- var r = bit % 26;
2184
- var s = (bit - r) / 26;
2185
- var q = 1 << r;
2186
-
2187
- // Fast case: bit is much higher than all existing words
2188
- if (this.length <= s) return false;
2189
-
2190
- // Check bit and return
2191
- var w = this.words[s];
2192
-
2193
- return !!(w & q);
2194
- };
2195
-
2196
- // Return only lowers bits of number (in-place)
2197
- BN.prototype.imaskn = function imaskn (bits) {
2198
- assert(typeof bits === 'number' && bits >= 0);
2199
- var r = bits % 26;
2200
- var s = (bits - r) / 26;
2201
-
2202
- assert(this.negative === 0, 'imaskn works only with positive numbers');
2203
-
2204
- if (this.length <= s) {
2205
- return this;
2206
- }
2207
-
2208
- if (r !== 0) {
2209
- s++;
2210
- }
2211
- this.length = Math.min(s, this.length);
2212
-
2213
- if (r !== 0) {
2214
- var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);
2215
- this.words[this.length - 1] &= mask;
2216
- }
2217
-
2218
- return this._strip();
2219
- };
2220
-
2221
- // Return only lowers bits of number
2222
- BN.prototype.maskn = function maskn (bits) {
2223
- return this.clone().imaskn(bits);
2224
- };
2225
-
2226
- // Add plain number `num` to `this`
2227
- BN.prototype.iaddn = function iaddn (num) {
2228
- assert(typeof num === 'number');
2229
- assert(num < 0x4000000);
2230
- if (num < 0) return this.isubn(-num);
2231
-
2232
- // Possible sign change
2233
- if (this.negative !== 0) {
2234
- if (this.length === 1 && (this.words[0] | 0) <= num) {
2235
- this.words[0] = num - (this.words[0] | 0);
2236
- this.negative = 0;
2237
- return this;
2238
- }
2239
-
2240
- this.negative = 0;
2241
- this.isubn(num);
2242
- this.negative = 1;
2243
- return this;
2244
- }
2245
-
2246
- // Add without checks
2247
- return this._iaddn(num);
2248
- };
2249
-
2250
- BN.prototype._iaddn = function _iaddn (num) {
2251
- this.words[0] += num;
2252
-
2253
- // Carry
2254
- for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {
2255
- this.words[i] -= 0x4000000;
2256
- if (i === this.length - 1) {
2257
- this.words[i + 1] = 1;
2258
- } else {
2259
- this.words[i + 1]++;
2260
- }
2261
- }
2262
- this.length = Math.max(this.length, i + 1);
2263
-
2264
- return this;
2265
- };
2266
-
2267
- // Subtract plain number `num` from `this`
2268
- BN.prototype.isubn = function isubn (num) {
2269
- assert(typeof num === 'number');
2270
- assert(num < 0x4000000);
2271
- if (num < 0) return this.iaddn(-num);
2272
-
2273
- if (this.negative !== 0) {
2274
- this.negative = 0;
2275
- this.iaddn(num);
2276
- this.negative = 1;
2277
- return this;
2278
- }
2279
-
2280
- this.words[0] -= num;
2281
-
2282
- if (this.length === 1 && this.words[0] < 0) {
2283
- this.words[0] = -this.words[0];
2284
- this.negative = 1;
2285
- } else {
2286
- // Carry
2287
- for (var i = 0; i < this.length && this.words[i] < 0; i++) {
2288
- this.words[i] += 0x4000000;
2289
- this.words[i + 1] -= 1;
2290
- }
2291
- }
2292
-
2293
- return this._strip();
2294
- };
2295
-
2296
- BN.prototype.addn = function addn (num) {
2297
- return this.clone().iaddn(num);
2298
- };
2299
-
2300
- BN.prototype.subn = function subn (num) {
2301
- return this.clone().isubn(num);
2302
- };
2303
-
2304
- BN.prototype.iabs = function iabs () {
2305
- this.negative = 0;
2306
-
2307
- return this;
2308
- };
2309
-
2310
- BN.prototype.abs = function abs () {
2311
- return this.clone().iabs();
2312
- };
2313
-
2314
- BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
2315
- var len = num.length + shift;
2316
- var i;
2317
-
2318
- this._expand(len);
2319
-
2320
- var w;
2321
- var carry = 0;
2322
- for (i = 0; i < num.length; i++) {
2323
- w = (this.words[i + shift] | 0) + carry;
2324
- var right = (num.words[i] | 0) * mul;
2325
- w -= right & 0x3ffffff;
2326
- carry = (w >> 26) - ((right / 0x4000000) | 0);
2327
- this.words[i + shift] = w & 0x3ffffff;
2328
- }
2329
- for (; i < this.length - shift; i++) {
2330
- w = (this.words[i + shift] | 0) + carry;
2331
- carry = w >> 26;
2332
- this.words[i + shift] = w & 0x3ffffff;
2333
- }
2334
-
2335
- if (carry === 0) return this._strip();
2336
-
2337
- // Subtraction overflow
2338
- assert(carry === -1);
2339
- carry = 0;
2340
- for (i = 0; i < this.length; i++) {
2341
- w = -(this.words[i] | 0) + carry;
2342
- carry = w >> 26;
2343
- this.words[i] = w & 0x3ffffff;
2344
- }
2345
- this.negative = 1;
2346
-
2347
- return this._strip();
2348
- };
2349
-
2350
- BN.prototype._wordDiv = function _wordDiv (num, mode) {
2351
- var shift = this.length - num.length;
2352
-
2353
- var a = this.clone();
2354
- var b = num;
2355
-
2356
- // Normalize
2357
- var bhi = b.words[b.length - 1] | 0;
2358
- var bhiBits = this._countBits(bhi);
2359
- shift = 26 - bhiBits;
2360
- if (shift !== 0) {
2361
- b = b.ushln(shift);
2362
- a.iushln(shift);
2363
- bhi = b.words[b.length - 1] | 0;
2364
- }
2365
-
2366
- // Initialize quotient
2367
- var m = a.length - b.length;
2368
- var q;
2369
-
2370
- if (mode !== 'mod') {
2371
- q = new BN(null);
2372
- q.length = m + 1;
2373
- q.words = new Array(q.length);
2374
- for (var i = 0; i < q.length; i++) {
2375
- q.words[i] = 0;
2376
- }
2377
- }
2378
-
2379
- var diff = a.clone()._ishlnsubmul(b, 1, m);
2380
- if (diff.negative === 0) {
2381
- a = diff;
2382
- if (q) {
2383
- q.words[m] = 1;
2384
- }
2385
- }
2386
-
2387
- for (var j = m - 1; j >= 0; j--) {
2388
- var qj = (a.words[b.length + j] | 0) * 0x4000000 +
2389
- (a.words[b.length + j - 1] | 0);
2390
-
2391
- // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max
2392
- // (0x7ffffff)
2393
- qj = Math.min((qj / bhi) | 0, 0x3ffffff);
2394
-
2395
- a._ishlnsubmul(b, qj, j);
2396
- while (a.negative !== 0) {
2397
- qj--;
2398
- a.negative = 0;
2399
- a._ishlnsubmul(b, 1, j);
2400
- if (!a.isZero()) {
2401
- a.negative ^= 1;
2402
- }
2403
- }
2404
- if (q) {
2405
- q.words[j] = qj;
2406
- }
2407
- }
2408
- if (q) {
2409
- q._strip();
2410
- }
2411
- a._strip();
2412
-
2413
- // Denormalize
2414
- if (mode !== 'div' && shift !== 0) {
2415
- a.iushrn(shift);
2416
- }
2417
-
2418
- return {
2419
- div: q || null,
2420
- mod: a
2421
- };
2422
- };
2423
-
2424
- // NOTE: 1) `mode` can be set to `mod` to request mod only,
2425
- // to `div` to request div only, or be absent to
2426
- // request both div & mod
2427
- // 2) `positive` is true if unsigned mod is requested
2428
- BN.prototype.divmod = function divmod (num, mode, positive) {
2429
- assert(!num.isZero());
2430
-
2431
- if (this.isZero()) {
2432
- return {
2433
- div: new BN(0),
2434
- mod: new BN(0)
2435
- };
2436
- }
2437
-
2438
- var div, mod, res;
2439
- if (this.negative !== 0 && num.negative === 0) {
2440
- res = this.neg().divmod(num, mode);
2441
-
2442
- if (mode !== 'mod') {
2443
- div = res.div.neg();
2444
- }
2445
-
2446
- if (mode !== 'div') {
2447
- mod = res.mod.neg();
2448
- if (positive && mod.negative !== 0) {
2449
- mod.iadd(num);
2450
- }
2451
- }
2452
-
2453
- return {
2454
- div: div,
2455
- mod: mod
2456
- };
2457
- }
2458
-
2459
- if (this.negative === 0 && num.negative !== 0) {
2460
- res = this.divmod(num.neg(), mode);
2461
-
2462
- if (mode !== 'mod') {
2463
- div = res.div.neg();
2464
- }
2465
-
2466
- return {
2467
- div: div,
2468
- mod: res.mod
2469
- };
2470
- }
2471
-
2472
- if ((this.negative & num.negative) !== 0) {
2473
- res = this.neg().divmod(num.neg(), mode);
2474
-
2475
- if (mode !== 'div') {
2476
- mod = res.mod.neg();
2477
- if (positive && mod.negative !== 0) {
2478
- mod.isub(num);
2479
- }
2480
- }
2481
-
2482
- return {
2483
- div: res.div,
2484
- mod: mod
2485
- };
2486
- }
2487
-
2488
- // Both numbers are positive at this point
2489
-
2490
- // Strip both numbers to approximate shift value
2491
- if (num.length > this.length || this.cmp(num) < 0) {
2492
- return {
2493
- div: new BN(0),
2494
- mod: this
2495
- };
2496
- }
2497
-
2498
- // Very short reduction
2499
- if (num.length === 1) {
2500
- if (mode === 'div') {
2501
- return {
2502
- div: this.divn(num.words[0]),
2503
- mod: null
2504
- };
2505
- }
2506
-
2507
- if (mode === 'mod') {
2508
- return {
2509
- div: null,
2510
- mod: new BN(this.modrn(num.words[0]))
2511
- };
2512
- }
2513
-
2514
- return {
2515
- div: this.divn(num.words[0]),
2516
- mod: new BN(this.modrn(num.words[0]))
2517
- };
2518
- }
2519
-
2520
- return this._wordDiv(num, mode);
2521
- };
2522
-
2523
- // Find `this` / `num`
2524
- BN.prototype.div = function div (num) {
2525
- return this.divmod(num, 'div', false).div;
2526
- };
2527
-
2528
- // Find `this` % `num`
2529
- BN.prototype.mod = function mod (num) {
2530
- return this.divmod(num, 'mod', false).mod;
2531
- };
2532
-
2533
- BN.prototype.umod = function umod (num) {
2534
- return this.divmod(num, 'mod', true).mod;
2535
- };
2536
-
2537
- // Find Round(`this` / `num`)
2538
- BN.prototype.divRound = function divRound (num) {
2539
- var dm = this.divmod(num);
2540
-
2541
- // Fast case - exact division
2542
- if (dm.mod.isZero()) return dm.div;
2543
-
2544
- var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
2545
-
2546
- var half = num.ushrn(1);
2547
- var r2 = num.andln(1);
2548
- var cmp = mod.cmp(half);
2549
-
2550
- // Round down
2551
- if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;
2552
-
2553
- // Round up
2554
- return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
2555
- };
2556
-
2557
- BN.prototype.modrn = function modrn (num) {
2558
- var isNegNum = num < 0;
2559
- if (isNegNum) num = -num;
2560
-
2561
- assert(num <= 0x3ffffff);
2562
- var p = (1 << 26) % num;
2563
-
2564
- var acc = 0;
2565
- for (var i = this.length - 1; i >= 0; i--) {
2566
- acc = (p * acc + (this.words[i] | 0)) % num;
2567
- }
2568
-
2569
- return isNegNum ? -acc : acc;
2570
- };
2571
-
2572
- // WARNING: DEPRECATED
2573
- BN.prototype.modn = function modn (num) {
2574
- return this.modrn(num);
2575
- };
2576
-
2577
- // In-place division by number
2578
- BN.prototype.idivn = function idivn (num) {
2579
- var isNegNum = num < 0;
2580
- if (isNegNum) num = -num;
2581
-
2582
- assert(num <= 0x3ffffff);
2583
-
2584
- var carry = 0;
2585
- for (var i = this.length - 1; i >= 0; i--) {
2586
- var w = (this.words[i] | 0) + carry * 0x4000000;
2587
- this.words[i] = (w / num) | 0;
2588
- carry = w % num;
2589
- }
2590
-
2591
- this._strip();
2592
- return isNegNum ? this.ineg() : this;
2593
- };
2594
-
2595
- BN.prototype.divn = function divn (num) {
2596
- return this.clone().idivn(num);
2597
- };
2598
-
2599
- BN.prototype.egcd = function egcd (p) {
2600
- assert(p.negative === 0);
2601
- assert(!p.isZero());
2602
-
2603
- var x = this;
2604
- var y = p.clone();
2605
-
2606
- if (x.negative !== 0) {
2607
- x = x.umod(p);
2608
- } else {
2609
- x = x.clone();
2610
- }
2611
-
2612
- // A * x + B * y = x
2613
- var A = new BN(1);
2614
- var B = new BN(0);
2615
-
2616
- // C * x + D * y = y
2617
- var C = new BN(0);
2618
- var D = new BN(1);
2619
-
2620
- var g = 0;
2621
-
2622
- while (x.isEven() && y.isEven()) {
2623
- x.iushrn(1);
2624
- y.iushrn(1);
2625
- ++g;
2626
- }
2627
-
2628
- var yp = y.clone();
2629
- var xp = x.clone();
2630
-
2631
- while (!x.isZero()) {
2632
- for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
2633
- if (i > 0) {
2634
- x.iushrn(i);
2635
- while (i-- > 0) {
2636
- if (A.isOdd() || B.isOdd()) {
2637
- A.iadd(yp);
2638
- B.isub(xp);
2639
- }
2640
-
2641
- A.iushrn(1);
2642
- B.iushrn(1);
2643
- }
2644
- }
2645
-
2646
- for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
2647
- if (j > 0) {
2648
- y.iushrn(j);
2649
- while (j-- > 0) {
2650
- if (C.isOdd() || D.isOdd()) {
2651
- C.iadd(yp);
2652
- D.isub(xp);
2653
- }
2654
-
2655
- C.iushrn(1);
2656
- D.iushrn(1);
2657
- }
2658
- }
2659
-
2660
- if (x.cmp(y) >= 0) {
2661
- x.isub(y);
2662
- A.isub(C);
2663
- B.isub(D);
2664
- } else {
2665
- y.isub(x);
2666
- C.isub(A);
2667
- D.isub(B);
2668
- }
2669
- }
2670
-
2671
- return {
2672
- a: C,
2673
- b: D,
2674
- gcd: y.iushln(g)
2675
- };
2676
- };
2677
-
2678
- // This is reduced incarnation of the binary EEA
2679
- // above, designated to invert members of the
2680
- // _prime_ fields F(p) at a maximal speed
2681
- BN.prototype._invmp = function _invmp (p) {
2682
- assert(p.negative === 0);
2683
- assert(!p.isZero());
2684
-
2685
- var a = this;
2686
- var b = p.clone();
2687
-
2688
- if (a.negative !== 0) {
2689
- a = a.umod(p);
2690
- } else {
2691
- a = a.clone();
2692
- }
2693
-
2694
- var x1 = new BN(1);
2695
- var x2 = new BN(0);
2696
-
2697
- var delta = b.clone();
2698
-
2699
- while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {
2700
- for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);
2701
- if (i > 0) {
2702
- a.iushrn(i);
2703
- while (i-- > 0) {
2704
- if (x1.isOdd()) {
2705
- x1.iadd(delta);
2706
- }
2707
-
2708
- x1.iushrn(1);
2709
- }
2710
- }
2711
-
2712
- for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);
2713
- if (j > 0) {
2714
- b.iushrn(j);
2715
- while (j-- > 0) {
2716
- if (x2.isOdd()) {
2717
- x2.iadd(delta);
2718
- }
2719
-
2720
- x2.iushrn(1);
2721
- }
2722
- }
2723
-
2724
- if (a.cmp(b) >= 0) {
2725
- a.isub(b);
2726
- x1.isub(x2);
2727
- } else {
2728
- b.isub(a);
2729
- x2.isub(x1);
2730
- }
2731
- }
2732
-
2733
- var res;
2734
- if (a.cmpn(1) === 0) {
2735
- res = x1;
2736
- } else {
2737
- res = x2;
2738
- }
2739
-
2740
- if (res.cmpn(0) < 0) {
2741
- res.iadd(p);
2742
- }
2743
-
2744
- return res;
2745
- };
2746
-
2747
- BN.prototype.gcd = function gcd (num) {
2748
- if (this.isZero()) return num.abs();
2749
- if (num.isZero()) return this.abs();
2750
-
2751
- var a = this.clone();
2752
- var b = num.clone();
2753
- a.negative = 0;
2754
- b.negative = 0;
2755
-
2756
- // Remove common factor of two
2757
- for (var shift = 0; a.isEven() && b.isEven(); shift++) {
2758
- a.iushrn(1);
2759
- b.iushrn(1);
2760
- }
2761
-
2762
- do {
2763
- while (a.isEven()) {
2764
- a.iushrn(1);
2765
- }
2766
- while (b.isEven()) {
2767
- b.iushrn(1);
2768
- }
2769
-
2770
- var r = a.cmp(b);
2771
- if (r < 0) {
2772
- // Swap `a` and `b` to make `a` always bigger than `b`
2773
- var t = a;
2774
- a = b;
2775
- b = t;
2776
- } else if (r === 0 || b.cmpn(1) === 0) {
2777
- break;
2778
- }
2779
-
2780
- a.isub(b);
2781
- } while (true);
2782
-
2783
- return b.iushln(shift);
2784
- };
2785
-
2786
- // Invert number in the field F(num)
2787
- BN.prototype.invm = function invm (num) {
2788
- return this.egcd(num).a.umod(num);
2789
- };
2790
-
2791
- BN.prototype.isEven = function isEven () {
2792
- return (this.words[0] & 1) === 0;
2793
- };
2794
-
2795
- BN.prototype.isOdd = function isOdd () {
2796
- return (this.words[0] & 1) === 1;
2797
- };
2798
-
2799
- // And first word and num
2800
- BN.prototype.andln = function andln (num) {
2801
- return this.words[0] & num;
2802
- };
2803
-
2804
- // Increment at the bit position in-line
2805
- BN.prototype.bincn = function bincn (bit) {
2806
- assert(typeof bit === 'number');
2807
- var r = bit % 26;
2808
- var s = (bit - r) / 26;
2809
- var q = 1 << r;
2810
-
2811
- // Fast case: bit is much higher than all existing words
2812
- if (this.length <= s) {
2813
- this._expand(s + 1);
2814
- this.words[s] |= q;
2815
- return this;
2816
- }
2817
-
2818
- // Add bit and propagate, if needed
2819
- var carry = q;
2820
- for (var i = s; carry !== 0 && i < this.length; i++) {
2821
- var w = this.words[i] | 0;
2822
- w += carry;
2823
- carry = w >>> 26;
2824
- w &= 0x3ffffff;
2825
- this.words[i] = w;
2826
- }
2827
- if (carry !== 0) {
2828
- this.words[i] = carry;
2829
- this.length++;
2830
- }
2831
- return this;
2832
- };
2833
-
2834
- BN.prototype.isZero = function isZero () {
2835
- return this.length === 1 && this.words[0] === 0;
2836
- };
2837
-
2838
- BN.prototype.cmpn = function cmpn (num) {
2839
- var negative = num < 0;
2840
-
2841
- if (this.negative !== 0 && !negative) return -1;
2842
- if (this.negative === 0 && negative) return 1;
2843
-
2844
- this._strip();
2845
-
2846
- var res;
2847
- if (this.length > 1) {
2848
- res = 1;
2849
- } else {
2850
- if (negative) {
2851
- num = -num;
2852
- }
2853
-
2854
- assert(num <= 0x3ffffff, 'Number is too big');
2855
-
2856
- var w = this.words[0] | 0;
2857
- res = w === num ? 0 : w < num ? -1 : 1;
2858
- }
2859
- if (this.negative !== 0) return -res | 0;
2860
- return res;
2861
- };
2862
-
2863
- // Compare two numbers and return:
2864
- // 1 - if `this` > `num`
2865
- // 0 - if `this` == `num`
2866
- // -1 - if `this` < `num`
2867
- BN.prototype.cmp = function cmp (num) {
2868
- if (this.negative !== 0 && num.negative === 0) return -1;
2869
- if (this.negative === 0 && num.negative !== 0) return 1;
2870
-
2871
- var res = this.ucmp(num);
2872
- if (this.negative !== 0) return -res | 0;
2873
- return res;
2874
- };
2875
-
2876
- // Unsigned comparison
2877
- BN.prototype.ucmp = function ucmp (num) {
2878
- // At this point both numbers have the same sign
2879
- if (this.length > num.length) return 1;
2880
- if (this.length < num.length) return -1;
2881
-
2882
- var res = 0;
2883
- for (var i = this.length - 1; i >= 0; i--) {
2884
- var a = this.words[i] | 0;
2885
- var b = num.words[i] | 0;
2886
-
2887
- if (a === b) continue;
2888
- if (a < b) {
2889
- res = -1;
2890
- } else if (a > b) {
2891
- res = 1;
2892
- }
2893
- break;
2894
- }
2895
- return res;
2896
- };
2897
-
2898
- BN.prototype.gtn = function gtn (num) {
2899
- return this.cmpn(num) === 1;
2900
- };
2901
-
2902
- BN.prototype.gt = function gt (num) {
2903
- return this.cmp(num) === 1;
2904
- };
2905
-
2906
- BN.prototype.gten = function gten (num) {
2907
- return this.cmpn(num) >= 0;
2908
- };
2909
-
2910
- BN.prototype.gte = function gte (num) {
2911
- return this.cmp(num) >= 0;
2912
- };
2913
-
2914
- BN.prototype.ltn = function ltn (num) {
2915
- return this.cmpn(num) === -1;
2916
- };
2917
-
2918
- BN.prototype.lt = function lt (num) {
2919
- return this.cmp(num) === -1;
2920
- };
2921
-
2922
- BN.prototype.lten = function lten (num) {
2923
- return this.cmpn(num) <= 0;
2924
- };
2925
-
2926
- BN.prototype.lte = function lte (num) {
2927
- return this.cmp(num) <= 0;
2928
- };
2929
-
2930
- BN.prototype.eqn = function eqn (num) {
2931
- return this.cmpn(num) === 0;
2932
- };
2933
-
2934
- BN.prototype.eq = function eq (num) {
2935
- return this.cmp(num) === 0;
2936
- };
2937
-
2938
- //
2939
- // A reduce context, could be using montgomery or something better, depending
2940
- // on the `m` itself.
2941
- //
2942
- BN.red = function red (num) {
2943
- return new Red(num);
2944
- };
2945
-
2946
- BN.prototype.toRed = function toRed (ctx) {
2947
- assert(!this.red, 'Already a number in reduction context');
2948
- assert(this.negative === 0, 'red works only with positives');
2949
- return ctx.convertTo(this)._forceRed(ctx);
2950
- };
2951
-
2952
- BN.prototype.fromRed = function fromRed () {
2953
- assert(this.red, 'fromRed works only with numbers in reduction context');
2954
- return this.red.convertFrom(this);
2955
- };
2956
-
2957
- BN.prototype._forceRed = function _forceRed (ctx) {
2958
- this.red = ctx;
2959
- return this;
2960
- };
2961
-
2962
- BN.prototype.forceRed = function forceRed (ctx) {
2963
- assert(!this.red, 'Already a number in reduction context');
2964
- return this._forceRed(ctx);
2965
- };
2966
-
2967
- BN.prototype.redAdd = function redAdd (num) {
2968
- assert(this.red, 'redAdd works only with red numbers');
2969
- return this.red.add(this, num);
2970
- };
2971
-
2972
- BN.prototype.redIAdd = function redIAdd (num) {
2973
- assert(this.red, 'redIAdd works only with red numbers');
2974
- return this.red.iadd(this, num);
2975
- };
2976
-
2977
- BN.prototype.redSub = function redSub (num) {
2978
- assert(this.red, 'redSub works only with red numbers');
2979
- return this.red.sub(this, num);
2980
- };
2981
-
2982
- BN.prototype.redISub = function redISub (num) {
2983
- assert(this.red, 'redISub works only with red numbers');
2984
- return this.red.isub(this, num);
2985
- };
2986
-
2987
- BN.prototype.redShl = function redShl (num) {
2988
- assert(this.red, 'redShl works only with red numbers');
2989
- return this.red.shl(this, num);
2990
- };
2991
-
2992
- BN.prototype.redMul = function redMul (num) {
2993
- assert(this.red, 'redMul works only with red numbers');
2994
- this.red._verify2(this, num);
2995
- return this.red.mul(this, num);
2996
- };
2997
-
2998
- BN.prototype.redIMul = function redIMul (num) {
2999
- assert(this.red, 'redMul works only with red numbers');
3000
- this.red._verify2(this, num);
3001
- return this.red.imul(this, num);
3002
- };
3003
-
3004
- BN.prototype.redSqr = function redSqr () {
3005
- assert(this.red, 'redSqr works only with red numbers');
3006
- this.red._verify1(this);
3007
- return this.red.sqr(this);
3008
- };
3009
-
3010
- BN.prototype.redISqr = function redISqr () {
3011
- assert(this.red, 'redISqr works only with red numbers');
3012
- this.red._verify1(this);
3013
- return this.red.isqr(this);
3014
- };
3015
-
3016
- // Square root over p
3017
- BN.prototype.redSqrt = function redSqrt () {
3018
- assert(this.red, 'redSqrt works only with red numbers');
3019
- this.red._verify1(this);
3020
- return this.red.sqrt(this);
3021
- };
3022
-
3023
- BN.prototype.redInvm = function redInvm () {
3024
- assert(this.red, 'redInvm works only with red numbers');
3025
- this.red._verify1(this);
3026
- return this.red.invm(this);
3027
- };
3028
-
3029
- // Return negative clone of `this` % `red modulo`
3030
- BN.prototype.redNeg = function redNeg () {
3031
- assert(this.red, 'redNeg works only with red numbers');
3032
- this.red._verify1(this);
3033
- return this.red.neg(this);
3034
- };
3035
-
3036
- BN.prototype.redPow = function redPow (num) {
3037
- assert(this.red && !num.red, 'redPow(normalNum)');
3038
- this.red._verify1(this);
3039
- return this.red.pow(this, num);
3040
- };
3041
-
3042
- // Prime numbers with efficient reduction
3043
- var primes = {
3044
- k256: null,
3045
- p224: null,
3046
- p192: null,
3047
- p25519: null
3048
- };
3049
-
3050
- // Pseudo-Mersenne prime
3051
- function MPrime (name, p) {
3052
- // P = 2 ^ N - K
3053
- this.name = name;
3054
- this.p = new BN(p, 16);
3055
- this.n = this.p.bitLength();
3056
- this.k = new BN(1).iushln(this.n).isub(this.p);
3057
-
3058
- this.tmp = this._tmp();
3059
- }
3060
-
3061
- MPrime.prototype._tmp = function _tmp () {
3062
- var tmp = new BN(null);
3063
- tmp.words = new Array(Math.ceil(this.n / 13));
3064
- return tmp;
3065
- };
3066
-
3067
- MPrime.prototype.ireduce = function ireduce (num) {
3068
- // Assumes that `num` is less than `P^2`
3069
- // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
3070
- var r = num;
3071
- var rlen;
3072
-
3073
- do {
3074
- this.split(r, this.tmp);
3075
- r = this.imulK(r);
3076
- r = r.iadd(this.tmp);
3077
- rlen = r.bitLength();
3078
- } while (rlen > this.n);
3079
-
3080
- var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
3081
- if (cmp === 0) {
3082
- r.words[0] = 0;
3083
- r.length = 1;
3084
- } else if (cmp > 0) {
3085
- r.isub(this.p);
3086
- } else {
3087
- if (r.strip !== undefined) {
3088
- // r is a BN v4 instance
3089
- r.strip();
3090
- } else {
3091
- // r is a BN v5 instance
3092
- r._strip();
3093
- }
3094
- }
3095
-
3096
- return r;
3097
- };
3098
-
3099
- MPrime.prototype.split = function split (input, out) {
3100
- input.iushrn(this.n, 0, out);
3101
- };
3102
-
3103
- MPrime.prototype.imulK = function imulK (num) {
3104
- return num.imul(this.k);
3105
- };
3106
-
3107
- function K256 () {
3108
- MPrime.call(
3109
- this,
3110
- 'k256',
3111
- 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
3112
- }
3113
- inherits(K256, MPrime);
3114
-
3115
- K256.prototype.split = function split (input, output) {
3116
- // 256 = 9 * 26 + 22
3117
- var mask = 0x3fffff;
3118
-
3119
- var outLen = Math.min(input.length, 9);
3120
- for (var i = 0; i < outLen; i++) {
3121
- output.words[i] = input.words[i];
3122
- }
3123
- output.length = outLen;
3124
-
3125
- if (input.length <= 9) {
3126
- input.words[0] = 0;
3127
- input.length = 1;
3128
- return;
3129
- }
3130
-
3131
- // Shift by 9 limbs
3132
- var prev = input.words[9];
3133
- output.words[output.length++] = prev & mask;
3134
-
3135
- for (i = 10; i < input.length; i++) {
3136
- var next = input.words[i] | 0;
3137
- input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);
3138
- prev = next;
3139
- }
3140
- prev >>>= 22;
3141
- input.words[i - 10] = prev;
3142
- if (prev === 0 && input.length > 10) {
3143
- input.length -= 10;
3144
- } else {
3145
- input.length -= 9;
3146
- }
3147
- };
3148
-
3149
- K256.prototype.imulK = function imulK (num) {
3150
- // K = 0x1000003d1 = [ 0x40, 0x3d1 ]
3151
- num.words[num.length] = 0;
3152
- num.words[num.length + 1] = 0;
3153
- num.length += 2;
3154
-
3155
- // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390
3156
- var lo = 0;
3157
- for (var i = 0; i < num.length; i++) {
3158
- var w = num.words[i] | 0;
3159
- lo += w * 0x3d1;
3160
- num.words[i] = lo & 0x3ffffff;
3161
- lo = w * 0x40 + ((lo / 0x4000000) | 0);
3162
- }
3163
-
3164
- // Fast length reduction
3165
- if (num.words[num.length - 1] === 0) {
3166
- num.length--;
3167
- if (num.words[num.length - 1] === 0) {
3168
- num.length--;
3169
- }
3170
- }
3171
- return num;
3172
- };
3173
-
3174
- function P224 () {
3175
- MPrime.call(
3176
- this,
3177
- 'p224',
3178
- 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');
3179
- }
3180
- inherits(P224, MPrime);
3181
-
3182
- function P192 () {
3183
- MPrime.call(
3184
- this,
3185
- 'p192',
3186
- 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
3187
- }
3188
- inherits(P192, MPrime);
3189
-
3190
- function P25519 () {
3191
- // 2 ^ 255 - 19
3192
- MPrime.call(
3193
- this,
3194
- '25519',
3195
- '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
3196
- }
3197
- inherits(P25519, MPrime);
3198
-
3199
- P25519.prototype.imulK = function imulK (num) {
3200
- // K = 0x13
3201
- var carry = 0;
3202
- for (var i = 0; i < num.length; i++) {
3203
- var hi = (num.words[i] | 0) * 0x13 + carry;
3204
- var lo = hi & 0x3ffffff;
3205
- hi >>>= 26;
3206
-
3207
- num.words[i] = lo;
3208
- carry = hi;
3209
- }
3210
- if (carry !== 0) {
3211
- num.words[num.length++] = carry;
3212
- }
3213
- return num;
3214
- };
3215
-
3216
- // Exported mostly for testing purposes, use plain name instead
3217
- BN._prime = function prime (name) {
3218
- // Cached version of prime
3219
- if (primes[name]) return primes[name];
3220
-
3221
- var prime;
3222
- if (name === 'k256') {
3223
- prime = new K256();
3224
- } else if (name === 'p224') {
3225
- prime = new P224();
3226
- } else if (name === 'p192') {
3227
- prime = new P192();
3228
- } else if (name === 'p25519') {
3229
- prime = new P25519();
3230
- } else {
3231
- throw new Error('Unknown prime ' + name);
3232
- }
3233
- primes[name] = prime;
3234
-
3235
- return prime;
3236
- };
3237
-
3238
- //
3239
- // Base reduction engine
3240
- //
3241
- function Red (m) {
3242
- if (typeof m === 'string') {
3243
- var prime = BN._prime(m);
3244
- this.m = prime.p;
3245
- this.prime = prime;
3246
- } else {
3247
- assert(m.gtn(1), 'modulus must be greater than 1');
3248
- this.m = m;
3249
- this.prime = null;
3250
- }
3251
- }
3252
-
3253
- Red.prototype._verify1 = function _verify1 (a) {
3254
- assert(a.negative === 0, 'red works only with positives');
3255
- assert(a.red, 'red works only with red numbers');
3256
- };
3257
-
3258
- Red.prototype._verify2 = function _verify2 (a, b) {
3259
- assert((a.negative | b.negative) === 0, 'red works only with positives');
3260
- assert(a.red && a.red === b.red,
3261
- 'red works only with red numbers');
3262
- };
3263
-
3264
- Red.prototype.imod = function imod (a) {
3265
- if (this.prime) return this.prime.ireduce(a)._forceRed(this);
3266
-
3267
- move(a, a.umod(this.m)._forceRed(this));
3268
- return a;
3269
- };
3270
-
3271
- Red.prototype.neg = function neg (a) {
3272
- if (a.isZero()) {
3273
- return a.clone();
3274
- }
3275
-
3276
- return this.m.sub(a)._forceRed(this);
3277
- };
3278
-
3279
- Red.prototype.add = function add (a, b) {
3280
- this._verify2(a, b);
3281
-
3282
- var res = a.add(b);
3283
- if (res.cmp(this.m) >= 0) {
3284
- res.isub(this.m);
3285
- }
3286
- return res._forceRed(this);
3287
- };
3288
-
3289
- Red.prototype.iadd = function iadd (a, b) {
3290
- this._verify2(a, b);
3291
-
3292
- var res = a.iadd(b);
3293
- if (res.cmp(this.m) >= 0) {
3294
- res.isub(this.m);
3295
- }
3296
- return res;
3297
- };
3298
-
3299
- Red.prototype.sub = function sub (a, b) {
3300
- this._verify2(a, b);
3301
-
3302
- var res = a.sub(b);
3303
- if (res.cmpn(0) < 0) {
3304
- res.iadd(this.m);
3305
- }
3306
- return res._forceRed(this);
3307
- };
3308
-
3309
- Red.prototype.isub = function isub (a, b) {
3310
- this._verify2(a, b);
3311
-
3312
- var res = a.isub(b);
3313
- if (res.cmpn(0) < 0) {
3314
- res.iadd(this.m);
3315
- }
3316
- return res;
3317
- };
3318
-
3319
- Red.prototype.shl = function shl (a, num) {
3320
- this._verify1(a);
3321
- return this.imod(a.ushln(num));
3322
- };
3323
-
3324
- Red.prototype.imul = function imul (a, b) {
3325
- this._verify2(a, b);
3326
- return this.imod(a.imul(b));
3327
- };
3328
-
3329
- Red.prototype.mul = function mul (a, b) {
3330
- this._verify2(a, b);
3331
- return this.imod(a.mul(b));
3332
- };
3333
-
3334
- Red.prototype.isqr = function isqr (a) {
3335
- return this.imul(a, a.clone());
3336
- };
3337
-
3338
- Red.prototype.sqr = function sqr (a) {
3339
- return this.mul(a, a);
3340
- };
3341
-
3342
- Red.prototype.sqrt = function sqrt (a) {
3343
- if (a.isZero()) return a.clone();
3344
-
3345
- var mod3 = this.m.andln(3);
3346
- assert(mod3 % 2 === 1);
3347
-
3348
- // Fast case
3349
- if (mod3 === 3) {
3350
- var pow = this.m.add(new BN(1)).iushrn(2);
3351
- return this.pow(a, pow);
3352
- }
3353
-
3354
- // Tonelli-Shanks algorithm (Totally unoptimized and slow)
3355
- //
3356
- // Find Q and S, that Q * 2 ^ S = (P - 1)
3357
- var q = this.m.subn(1);
3358
- var s = 0;
3359
- while (!q.isZero() && q.andln(1) === 0) {
3360
- s++;
3361
- q.iushrn(1);
3362
- }
3363
- assert(!q.isZero());
3364
-
3365
- var one = new BN(1).toRed(this);
3366
- var nOne = one.redNeg();
3367
-
3368
- // Find quadratic non-residue
3369
- // NOTE: Max is such because of generalized Riemann hypothesis.
3370
- var lpow = this.m.subn(1).iushrn(1);
3371
- var z = this.m.bitLength();
3372
- z = new BN(2 * z * z).toRed(this);
3373
-
3374
- while (this.pow(z, lpow).cmp(nOne) !== 0) {
3375
- z.redIAdd(nOne);
3376
- }
3377
-
3378
- var c = this.pow(z, q);
3379
- var r = this.pow(a, q.addn(1).iushrn(1));
3380
- var t = this.pow(a, q);
3381
- var m = s;
3382
- while (t.cmp(one) !== 0) {
3383
- var tmp = t;
3384
- for (var i = 0; tmp.cmp(one) !== 0; i++) {
3385
- tmp = tmp.redSqr();
3386
- }
3387
- assert(i < m);
3388
- var b = this.pow(c, new BN(1).iushln(m - i - 1));
3389
-
3390
- r = r.redMul(b);
3391
- c = b.redSqr();
3392
- t = t.redMul(c);
3393
- m = i;
3394
- }
3395
-
3396
- return r;
3397
- };
3398
-
3399
- Red.prototype.invm = function invm (a) {
3400
- var inv = a._invmp(this.m);
3401
- if (inv.negative !== 0) {
3402
- inv.negative = 0;
3403
- return this.imod(inv).redNeg();
3404
- } else {
3405
- return this.imod(inv);
3406
- }
3407
- };
3408
-
3409
- Red.prototype.pow = function pow (a, num) {
3410
- if (num.isZero()) return new BN(1).toRed(this);
3411
- if (num.cmpn(1) === 0) return a.clone();
3412
-
3413
- var windowSize = 4;
3414
- var wnd = new Array(1 << windowSize);
3415
- wnd[0] = new BN(1).toRed(this);
3416
- wnd[1] = a;
3417
- for (var i = 2; i < wnd.length; i++) {
3418
- wnd[i] = this.mul(wnd[i - 1], a);
3419
- }
3420
-
3421
- var res = wnd[0];
3422
- var current = 0;
3423
- var currentLen = 0;
3424
- var start = num.bitLength() % 26;
3425
- if (start === 0) {
3426
- start = 26;
3427
- }
3428
-
3429
- for (i = num.length - 1; i >= 0; i--) {
3430
- var word = num.words[i];
3431
- for (var j = start - 1; j >= 0; j--) {
3432
- var bit = (word >> j) & 1;
3433
- if (res !== wnd[0]) {
3434
- res = this.sqr(res);
3435
- }
3436
-
3437
- if (bit === 0 && current === 0) {
3438
- currentLen = 0;
3439
- continue;
3440
- }
3441
-
3442
- current <<= 1;
3443
- current |= bit;
3444
- currentLen++;
3445
- if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
3446
-
3447
- res = this.mul(res, wnd[current]);
3448
- currentLen = 0;
3449
- current = 0;
3450
- }
3451
- start = 26;
3452
- }
3453
-
3454
- return res;
3455
- };
3456
-
3457
- Red.prototype.convertTo = function convertTo (num) {
3458
- var r = num.umod(this.m);
3459
-
3460
- return r === num ? r.clone() : r;
3461
- };
3462
-
3463
- Red.prototype.convertFrom = function convertFrom (num) {
3464
- var res = num.clone();
3465
- res.red = null;
3466
- return res;
3467
- };
3468
-
3469
- //
3470
- // Montgomery method engine
3471
- //
3472
-
3473
- BN.mont = function mont (num) {
3474
- return new Mont(num);
3475
- };
3476
-
3477
- function Mont (m) {
3478
- Red.call(this, m);
3479
-
3480
- this.shift = this.m.bitLength();
3481
- if (this.shift % 26 !== 0) {
3482
- this.shift += 26 - (this.shift % 26);
3483
- }
3484
-
3485
- this.r = new BN(1).iushln(this.shift);
3486
- this.r2 = this.imod(this.r.sqr());
3487
- this.rinv = this.r._invmp(this.m);
3488
-
3489
- this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
3490
- this.minv = this.minv.umod(this.r);
3491
- this.minv = this.r.sub(this.minv);
3492
- }
3493
- inherits(Mont, Red);
3494
-
3495
- Mont.prototype.convertTo = function convertTo (num) {
3496
- return this.imod(num.ushln(this.shift));
3497
- };
3498
-
3499
- Mont.prototype.convertFrom = function convertFrom (num) {
3500
- var r = this.imod(num.mul(this.rinv));
3501
- r.red = null;
3502
- return r;
3503
- };
3504
-
3505
- Mont.prototype.imul = function imul (a, b) {
3506
- if (a.isZero() || b.isZero()) {
3507
- a.words[0] = 0;
3508
- a.length = 1;
3509
- return a;
3510
- }
3511
-
3512
- var t = a.imul(b);
3513
- var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
3514
- var u = t.isub(c).iushrn(this.shift);
3515
- var res = u;
3516
-
3517
- if (u.cmp(this.m) >= 0) {
3518
- res = u.isub(this.m);
3519
- } else if (u.cmpn(0) < 0) {
3520
- res = u.iadd(this.m);
3521
- }
3522
-
3523
- return res._forceRed(this);
3524
- };
3525
-
3526
- Mont.prototype.mul = function mul (a, b) {
3527
- if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
3528
-
3529
- var t = a.mul(b);
3530
- var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
3531
- var u = t.isub(c).iushrn(this.shift);
3532
- var res = u;
3533
- if (u.cmp(this.m) >= 0) {
3534
- res = u.isub(this.m);
3535
- } else if (u.cmpn(0) < 0) {
3536
- res = u.iadd(this.m);
3537
- }
3538
-
3539
- return res._forceRed(this);
3540
- };
3541
-
3542
- Mont.prototype.invm = function invm (a) {
3543
- // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R
3544
- var res = this.imod(a._invmp(this.m).mul(this.r2));
3545
- return res._forceRed(this);
3546
- };
3547
- })(typeof module === 'undefined' || module, this);