ahmad-module 1.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ahmad-module might be problematic. Click here for more details.

Files changed (759) hide show
  1. package/.bin/sshpk-conv +12 -0
  2. package/.bin/sshpk-conv.cmd +17 -0
  3. package/.bin/sshpk-conv.ps1 +28 -0
  4. package/.bin/sshpk-sign +12 -0
  5. package/.bin/sshpk-sign.cmd +17 -0
  6. package/.bin/sshpk-sign.ps1 +28 -0
  7. package/.bin/sshpk-verify +12 -0
  8. package/.bin/sshpk-verify.cmd +17 -0
  9. package/.bin/sshpk-verify.ps1 +28 -0
  10. package/.bin/uuid +12 -0
  11. package/.bin/uuid.cmd +17 -0
  12. package/.bin/uuid.ps1 +28 -0
  13. package/ajv/.tonic_example.js +20 -0
  14. package/ajv/LICENSE +22 -0
  15. package/ajv/README.md +1497 -0
  16. package/ajv/dist/ajv.bundle.js +7189 -0
  17. package/ajv/dist/ajv.min.js +3 -0
  18. package/ajv/dist/ajv.min.js.map +1 -0
  19. package/ajv/lib/ajv.d.ts +397 -0
  20. package/ajv/lib/ajv.js +506 -0
  21. package/ajv/lib/cache.js +26 -0
  22. package/ajv/lib/compile/async.js +90 -0
  23. package/ajv/lib/compile/equal.js +5 -0
  24. package/ajv/lib/compile/error_classes.js +34 -0
  25. package/ajv/lib/compile/formats.js +142 -0
  26. package/ajv/lib/compile/index.js +387 -0
  27. package/ajv/lib/compile/resolve.js +270 -0
  28. package/ajv/lib/compile/rules.js +66 -0
  29. package/ajv/lib/compile/schema_obj.js +9 -0
  30. package/ajv/lib/compile/ucs2length.js +20 -0
  31. package/ajv/lib/compile/util.js +239 -0
  32. package/ajv/lib/data.js +49 -0
  33. package/ajv/lib/definition_schema.js +37 -0
  34. package/ajv/lib/dot/_limit.jst +113 -0
  35. package/ajv/lib/dot/_limitItems.jst +12 -0
  36. package/ajv/lib/dot/_limitLength.jst +12 -0
  37. package/ajv/lib/dot/_limitProperties.jst +12 -0
  38. package/ajv/lib/dot/allOf.jst +32 -0
  39. package/ajv/lib/dot/anyOf.jst +46 -0
  40. package/ajv/lib/dot/coerce.def +51 -0
  41. package/ajv/lib/dot/comment.jst +9 -0
  42. package/ajv/lib/dot/const.jst +11 -0
  43. package/ajv/lib/dot/contains.jst +55 -0
  44. package/ajv/lib/dot/custom.jst +191 -0
  45. package/ajv/lib/dot/defaults.def +47 -0
  46. package/ajv/lib/dot/definitions.def +203 -0
  47. package/ajv/lib/dot/dependencies.jst +79 -0
  48. package/ajv/lib/dot/enum.jst +30 -0
  49. package/ajv/lib/dot/errors.def +194 -0
  50. package/ajv/lib/dot/format.jst +106 -0
  51. package/ajv/lib/dot/if.jst +73 -0
  52. package/ajv/lib/dot/items.jst +98 -0
  53. package/ajv/lib/dot/missing.def +39 -0
  54. package/ajv/lib/dot/multipleOf.jst +22 -0
  55. package/ajv/lib/dot/not.jst +43 -0
  56. package/ajv/lib/dot/oneOf.jst +54 -0
  57. package/ajv/lib/dot/pattern.jst +14 -0
  58. package/ajv/lib/dot/properties.jst +245 -0
  59. package/ajv/lib/dot/propertyNames.jst +52 -0
  60. package/ajv/lib/dot/ref.jst +85 -0
  61. package/ajv/lib/dot/required.jst +108 -0
  62. package/ajv/lib/dot/uniqueItems.jst +62 -0
  63. package/ajv/lib/dot/validate.jst +276 -0
  64. package/ajv/lib/dotjs/README.md +3 -0
  65. package/ajv/lib/dotjs/_limit.js +163 -0
  66. package/ajv/lib/dotjs/_limitItems.js +80 -0
  67. package/ajv/lib/dotjs/_limitLength.js +85 -0
  68. package/ajv/lib/dotjs/_limitProperties.js +80 -0
  69. package/ajv/lib/dotjs/allOf.js +42 -0
  70. package/ajv/lib/dotjs/anyOf.js +73 -0
  71. package/ajv/lib/dotjs/comment.js +14 -0
  72. package/ajv/lib/dotjs/const.js +56 -0
  73. package/ajv/lib/dotjs/contains.js +81 -0
  74. package/ajv/lib/dotjs/custom.js +228 -0
  75. package/ajv/lib/dotjs/dependencies.js +168 -0
  76. package/ajv/lib/dotjs/enum.js +66 -0
  77. package/ajv/lib/dotjs/format.js +150 -0
  78. package/ajv/lib/dotjs/if.js +103 -0
  79. package/ajv/lib/dotjs/index.js +33 -0
  80. package/ajv/lib/dotjs/items.js +140 -0
  81. package/ajv/lib/dotjs/multipleOf.js +80 -0
  82. package/ajv/lib/dotjs/not.js +84 -0
  83. package/ajv/lib/dotjs/oneOf.js +73 -0
  84. package/ajv/lib/dotjs/pattern.js +75 -0
  85. package/ajv/lib/dotjs/properties.js +335 -0
  86. package/ajv/lib/dotjs/propertyNames.js +81 -0
  87. package/ajv/lib/dotjs/ref.js +124 -0
  88. package/ajv/lib/dotjs/required.js +270 -0
  89. package/ajv/lib/dotjs/uniqueItems.js +86 -0
  90. package/ajv/lib/dotjs/validate.js +482 -0
  91. package/ajv/lib/keyword.js +146 -0
  92. package/ajv/lib/refs/data.json +17 -0
  93. package/ajv/lib/refs/json-schema-draft-04.json +149 -0
  94. package/ajv/lib/refs/json-schema-draft-06.json +154 -0
  95. package/ajv/lib/refs/json-schema-draft-07.json +168 -0
  96. package/ajv/lib/refs/json-schema-secure.json +94 -0
  97. package/ajv/package.json +106 -0
  98. package/ajv/scripts/.eslintrc.yml +3 -0
  99. package/ajv/scripts/bundle.js +61 -0
  100. package/ajv/scripts/compile-dots.js +73 -0
  101. package/ajv/scripts/info +10 -0
  102. package/ajv/scripts/prepare-tests +12 -0
  103. package/ajv/scripts/publish-built-version +32 -0
  104. package/ajv/scripts/travis-gh-pages +23 -0
  105. package/asn1/Jenkinsfile +65 -0
  106. package/asn1/LICENSE +19 -0
  107. package/asn1/README.md +50 -0
  108. package/asn1/lib/ber/errors.js +13 -0
  109. package/asn1/lib/ber/index.js +27 -0
  110. package/asn1/lib/ber/reader.js +262 -0
  111. package/asn1/lib/ber/types.js +36 -0
  112. package/asn1/lib/ber/writer.js +317 -0
  113. package/asn1/lib/index.js +20 -0
  114. package/asn1/package.json +31 -0
  115. package/assert-plus/AUTHORS +6 -0
  116. package/assert-plus/CHANGES.md +14 -0
  117. package/assert-plus/README.md +162 -0
  118. package/assert-plus/assert.js +211 -0
  119. package/assert-plus/package.json +23 -0
  120. package/asynckit/LICENSE +21 -0
  121. package/asynckit/README.md +233 -0
  122. package/asynckit/bench.js +76 -0
  123. package/asynckit/index.js +6 -0
  124. package/asynckit/lib/abort.js +29 -0
  125. package/asynckit/lib/async.js +34 -0
  126. package/asynckit/lib/defer.js +26 -0
  127. package/asynckit/lib/iterate.js +75 -0
  128. package/asynckit/lib/readable_asynckit.js +91 -0
  129. package/asynckit/lib/readable_parallel.js +25 -0
  130. package/asynckit/lib/readable_serial.js +25 -0
  131. package/asynckit/lib/readable_serial_ordered.js +29 -0
  132. package/asynckit/lib/state.js +37 -0
  133. package/asynckit/lib/streamify.js +141 -0
  134. package/asynckit/lib/terminator.js +29 -0
  135. package/asynckit/package.json +63 -0
  136. package/asynckit/parallel.js +43 -0
  137. package/asynckit/serial.js +17 -0
  138. package/asynckit/serialOrdered.js +75 -0
  139. package/asynckit/stream.js +21 -0
  140. package/aws-sign2/LICENSE +55 -0
  141. package/aws-sign2/README.md +4 -0
  142. package/aws-sign2/index.js +212 -0
  143. package/aws-sign2/package.json +17 -0
  144. package/aws4/.github/FUNDING.yml +3 -0
  145. package/aws4/.travis.yml +9 -0
  146. package/aws4/LICENSE +19 -0
  147. package/aws4/README.md +183 -0
  148. package/aws4/aws4.js +373 -0
  149. package/aws4/lru.js +96 -0
  150. package/aws4/package.json +17 -0
  151. package/axios/CHANGELOG.md +775 -0
  152. package/axios/LICENSE +19 -0
  153. package/axios/README.md +868 -0
  154. package/axios/SECURITY.md +5 -0
  155. package/axios/UPGRADE_GUIDE.md +162 -0
  156. package/axios/dist/axios.js +2193 -0
  157. package/axios/dist/axios.map +1 -0
  158. package/axios/dist/axios.min.js +3 -0
  159. package/axios/dist/axios.min.map +1 -0
  160. package/axios/index.d.ts +168 -0
  161. package/axios/index.js +1 -0
  162. package/axios/lib/adapters/README.md +37 -0
  163. package/axios/lib/adapters/http.js +331 -0
  164. package/axios/lib/adapters/xhr.js +189 -0
  165. package/axios/lib/axios.js +56 -0
  166. package/axios/lib/cancel/Cancel.js +19 -0
  167. package/axios/lib/cancel/CancelToken.js +57 -0
  168. package/axios/lib/cancel/isCancel.js +5 -0
  169. package/axios/lib/core/Axios.js +148 -0
  170. package/axios/lib/core/InterceptorManager.js +54 -0
  171. package/axios/lib/core/README.md +8 -0
  172. package/axios/lib/core/buildFullPath.js +20 -0
  173. package/axios/lib/core/createError.js +18 -0
  174. package/axios/lib/core/dispatchRequest.js +82 -0
  175. package/axios/lib/core/enhanceError.js +42 -0
  176. package/axios/lib/core/mergeConfig.js +87 -0
  177. package/axios/lib/core/settle.js +25 -0
  178. package/axios/lib/core/transformData.js +22 -0
  179. package/axios/lib/defaults.js +134 -0
  180. package/axios/lib/helpers/README.md +7 -0
  181. package/axios/lib/helpers/bind.js +11 -0
  182. package/axios/lib/helpers/buildURL.js +70 -0
  183. package/axios/lib/helpers/combineURLs.js +14 -0
  184. package/axios/lib/helpers/cookies.js +53 -0
  185. package/axios/lib/helpers/deprecatedMethod.js +24 -0
  186. package/axios/lib/helpers/isAbsoluteURL.js +14 -0
  187. package/axios/lib/helpers/isAxiosError.js +11 -0
  188. package/axios/lib/helpers/isURLSameOrigin.js +68 -0
  189. package/axios/lib/helpers/normalizeHeaderName.js +12 -0
  190. package/axios/lib/helpers/parseHeaders.js +53 -0
  191. package/axios/lib/helpers/spread.js +27 -0
  192. package/axios/lib/helpers/validator.js +105 -0
  193. package/axios/lib/utils.js +349 -0
  194. package/axios/package.json +84 -0
  195. package/bcrypt-pbkdf/CONTRIBUTING.md +13 -0
  196. package/bcrypt-pbkdf/LICENSE +66 -0
  197. package/bcrypt-pbkdf/README.md +45 -0
  198. package/bcrypt-pbkdf/index.js +556 -0
  199. package/bcrypt-pbkdf/package.json +15 -0
  200. package/caseless/LICENSE +28 -0
  201. package/caseless/README.md +45 -0
  202. package/caseless/index.js +67 -0
  203. package/caseless/package.json +27 -0
  204. package/caseless/test.js +67 -0
  205. package/combined-stream/License +19 -0
  206. package/combined-stream/Readme.md +138 -0
  207. package/combined-stream/lib/combined_stream.js +208 -0
  208. package/combined-stream/package.json +25 -0
  209. package/combined-stream/yarn.lock +17 -0
  210. package/core-util-is/LICENSE +19 -0
  211. package/core-util-is/README.md +3 -0
  212. package/core-util-is/float.patch +604 -0
  213. package/core-util-is/lib/util.js +107 -0
  214. package/core-util-is/package.json +32 -0
  215. package/core-util-is/test.js +68 -0
  216. package/dashdash/CHANGES.md +364 -0
  217. package/dashdash/LICENSE.txt +24 -0
  218. package/dashdash/README.md +574 -0
  219. package/dashdash/etc/dashdash.bash_completion.in +389 -0
  220. package/dashdash/lib/dashdash.js +1055 -0
  221. package/dashdash/package.json +26 -0
  222. package/delayed-stream/License +19 -0
  223. package/delayed-stream/Makefile +7 -0
  224. package/delayed-stream/Readme.md +141 -0
  225. package/delayed-stream/lib/delayed_stream.js +107 -0
  226. package/delayed-stream/package.json +27 -0
  227. package/ecc-jsbn/LICENSE +21 -0
  228. package/ecc-jsbn/README.md +8 -0
  229. package/ecc-jsbn/index.js +58 -0
  230. package/ecc-jsbn/lib/LICENSE-jsbn +40 -0
  231. package/ecc-jsbn/lib/ec.js +561 -0
  232. package/ecc-jsbn/lib/sec.js +170 -0
  233. package/ecc-jsbn/package.json +40 -0
  234. package/ecc-jsbn/test.js +14 -0
  235. package/extend/.editorconfig +20 -0
  236. package/extend/.eslintrc +17 -0
  237. package/extend/.jscs.json +175 -0
  238. package/extend/.travis.yml +230 -0
  239. package/extend/CHANGELOG.md +83 -0
  240. package/extend/LICENSE +23 -0
  241. package/extend/README.md +81 -0
  242. package/extend/component.json +32 -0
  243. package/extend/index.js +117 -0
  244. package/extend/package.json +42 -0
  245. package/extsprintf/.gitmodules +0 -0
  246. package/extsprintf/LICENSE +19 -0
  247. package/extsprintf/Makefile +24 -0
  248. package/extsprintf/Makefile.targ +285 -0
  249. package/extsprintf/README.md +46 -0
  250. package/extsprintf/jsl.node.conf +137 -0
  251. package/extsprintf/lib/extsprintf.js +183 -0
  252. package/extsprintf/package.json +14 -0
  253. package/fast-deep-equal/LICENSE +21 -0
  254. package/fast-deep-equal/README.md +96 -0
  255. package/fast-deep-equal/es6/index.d.ts +2 -0
  256. package/fast-deep-equal/es6/index.js +72 -0
  257. package/fast-deep-equal/es6/react.d.ts +2 -0
  258. package/fast-deep-equal/es6/react.js +79 -0
  259. package/fast-deep-equal/index.d.ts +4 -0
  260. package/fast-deep-equal/index.js +46 -0
  261. package/fast-deep-equal/package.json +61 -0
  262. package/fast-deep-equal/react.d.ts +2 -0
  263. package/fast-deep-equal/react.js +53 -0
  264. package/fast-json-stable-stringify/.eslintrc.yml +26 -0
  265. package/fast-json-stable-stringify/.github/FUNDING.yml +1 -0
  266. package/fast-json-stable-stringify/.travis.yml +8 -0
  267. package/fast-json-stable-stringify/LICENSE +21 -0
  268. package/fast-json-stable-stringify/README.md +131 -0
  269. package/fast-json-stable-stringify/benchmark/index.js +31 -0
  270. package/fast-json-stable-stringify/benchmark/test.json +137 -0
  271. package/fast-json-stable-stringify/example/key_cmp.js +7 -0
  272. package/fast-json-stable-stringify/example/nested.js +3 -0
  273. package/fast-json-stable-stringify/example/str.js +3 -0
  274. package/fast-json-stable-stringify/example/value_cmp.js +7 -0
  275. package/fast-json-stable-stringify/index.d.ts +4 -0
  276. package/fast-json-stable-stringify/index.js +59 -0
  277. package/fast-json-stable-stringify/package.json +52 -0
  278. package/fast-json-stable-stringify/test/cmp.js +13 -0
  279. package/fast-json-stable-stringify/test/nested.js +44 -0
  280. package/fast-json-stable-stringify/test/str.js +46 -0
  281. package/fast-json-stable-stringify/test/to-json.js +22 -0
  282. package/follow-redirects/LICENSE +18 -0
  283. package/follow-redirects/README.md +155 -0
  284. package/follow-redirects/debug.js +15 -0
  285. package/follow-redirects/http.js +1 -0
  286. package/follow-redirects/https.js +1 -0
  287. package/follow-redirects/index.js +598 -0
  288. package/follow-redirects/package.json +59 -0
  289. package/forever-agent/LICENSE +55 -0
  290. package/forever-agent/README.md +4 -0
  291. package/forever-agent/index.js +138 -0
  292. package/forever-agent/package.json +17 -0
  293. package/form-data/License +19 -0
  294. package/form-data/README.md +234 -0
  295. package/form-data/README.md.bak +234 -0
  296. package/form-data/lib/browser.js +2 -0
  297. package/form-data/lib/form_data.js +457 -0
  298. package/form-data/lib/populate.js +10 -0
  299. package/form-data/package.json +65 -0
  300. package/form-data/yarn.lock +2662 -0
  301. package/getpass/.travis.yml +9 -0
  302. package/getpass/LICENSE +18 -0
  303. package/getpass/README.md +32 -0
  304. package/getpass/lib/index.js +123 -0
  305. package/getpass/package.json +18 -0
  306. package/har-schema/LICENSE +13 -0
  307. package/har-schema/README.md +49 -0
  308. package/har-schema/lib/afterRequest.json +30 -0
  309. package/har-schema/lib/beforeRequest.json +30 -0
  310. package/har-schema/lib/browser.json +20 -0
  311. package/har-schema/lib/cache.json +21 -0
  312. package/har-schema/lib/content.json +29 -0
  313. package/har-schema/lib/cookie.json +36 -0
  314. package/har-schema/lib/creator.json +20 -0
  315. package/har-schema/lib/entry.json +53 -0
  316. package/har-schema/lib/har.json +13 -0
  317. package/har-schema/lib/header.json +20 -0
  318. package/har-schema/lib/index.js +22 -0
  319. package/har-schema/lib/log.json +36 -0
  320. package/har-schema/lib/page.json +32 -0
  321. package/har-schema/lib/pageTimings.json +18 -0
  322. package/har-schema/lib/postData.json +43 -0
  323. package/har-schema/lib/query.json +20 -0
  324. package/har-schema/lib/request.json +57 -0
  325. package/har-schema/lib/response.json +54 -0
  326. package/har-schema/lib/timings.json +42 -0
  327. package/har-schema/package.json +54 -0
  328. package/har-validator/LICENSE +9 -0
  329. package/har-validator/README.md +43 -0
  330. package/har-validator/lib/async.js +105 -0
  331. package/har-validator/lib/error.js +17 -0
  332. package/har-validator/lib/promise.js +102 -0
  333. package/har-validator/package.json +43 -0
  334. package/http-signature/.dir-locals.el +6 -0
  335. package/http-signature/CHANGES.md +46 -0
  336. package/http-signature/LICENSE +18 -0
  337. package/http-signature/README.md +79 -0
  338. package/http-signature/http_signing.md +363 -0
  339. package/http-signature/lib/index.js +29 -0
  340. package/http-signature/lib/parser.js +315 -0
  341. package/http-signature/lib/signer.js +401 -0
  342. package/http-signature/lib/utils.js +112 -0
  343. package/http-signature/lib/verify.js +88 -0
  344. package/http-signature/package.json +39 -0
  345. package/is-typedarray/LICENSE.md +18 -0
  346. package/is-typedarray/README.md +16 -0
  347. package/is-typedarray/index.js +41 -0
  348. package/is-typedarray/package.json +30 -0
  349. package/is-typedarray/test.js +34 -0
  350. package/isstream/.jshintrc +59 -0
  351. package/isstream/.travis.yml +12 -0
  352. package/isstream/LICENSE.md +11 -0
  353. package/isstream/README.md +66 -0
  354. package/isstream/isstream.js +27 -0
  355. package/isstream/package.json +33 -0
  356. package/isstream/test.js +168 -0
  357. package/jsbn/LICENSE +40 -0
  358. package/jsbn/README.md +175 -0
  359. package/jsbn/example.html +12 -0
  360. package/jsbn/example.js +3 -0
  361. package/jsbn/index.js +1357 -0
  362. package/jsbn/package.json +21 -0
  363. package/json-schema/LICENSE +195 -0
  364. package/json-schema/README.md +3 -0
  365. package/json-schema/lib/links.js +65 -0
  366. package/json-schema/lib/validate.js +271 -0
  367. package/json-schema/package.json +24 -0
  368. package/json-schema-traverse/.eslintrc.yml +27 -0
  369. package/json-schema-traverse/.travis.yml +8 -0
  370. package/json-schema-traverse/LICENSE +21 -0
  371. package/json-schema-traverse/README.md +83 -0
  372. package/json-schema-traverse/index.js +89 -0
  373. package/json-schema-traverse/package.json +43 -0
  374. package/json-schema-traverse/spec/.eslintrc.yml +6 -0
  375. package/json-schema-traverse/spec/fixtures/schema.js +125 -0
  376. package/json-schema-traverse/spec/index.spec.js +171 -0
  377. package/json-stringify-safe/CHANGELOG.md +14 -0
  378. package/json-stringify-safe/LICENSE +15 -0
  379. package/json-stringify-safe/Makefile +35 -0
  380. package/json-stringify-safe/README.md +52 -0
  381. package/json-stringify-safe/package.json +31 -0
  382. package/json-stringify-safe/stringify.js +27 -0
  383. package/json-stringify-safe/test/mocha.opts +2 -0
  384. package/json-stringify-safe/test/stringify_test.js +246 -0
  385. package/jsprim/CHANGES.md +53 -0
  386. package/jsprim/CONTRIBUTING.md +19 -0
  387. package/jsprim/LICENSE +19 -0
  388. package/jsprim/README.md +287 -0
  389. package/jsprim/lib/jsprim.js +735 -0
  390. package/jsprim/package.json +20 -0
  391. package/m3u8stream/LICENSE +21 -0
  392. package/m3u8stream/README.md +81 -0
  393. package/m3u8stream/dist/dash-mpd-parser.d.ts +11 -0
  394. package/m3u8stream/dist/dash-mpd-parser.js +183 -0
  395. package/m3u8stream/dist/dash-mpd-parser.js.map +1 -0
  396. package/m3u8stream/dist/index.d.ts +31 -0
  397. package/m3u8stream/dist/index.js +180 -0
  398. package/m3u8stream/dist/index.js.map +1 -0
  399. package/m3u8stream/dist/m3u8-parser.d.ts +18 -0
  400. package/m3u8stream/dist/m3u8-parser.js +111 -0
  401. package/m3u8stream/dist/m3u8-parser.js.map +1 -0
  402. package/m3u8stream/dist/parse-time.d.ts +16 -0
  403. package/m3u8stream/dist/parse-time.js +59 -0
  404. package/m3u8stream/dist/parse-time.js.map +1 -0
  405. package/m3u8stream/dist/parser.d.ts +19 -0
  406. package/m3u8stream/dist/parser.js +3 -0
  407. package/m3u8stream/dist/parser.js.map +1 -0
  408. package/m3u8stream/dist/queue.d.ts +39 -0
  409. package/m3u8stream/dist/queue.js +58 -0
  410. package/m3u8stream/dist/queue.js.map +1 -0
  411. package/m3u8stream/node_modules/sax/LICENSE +41 -0
  412. package/m3u8stream/node_modules/sax/README.md +225 -0
  413. package/m3u8stream/node_modules/sax/lib/sax.js +1565 -0
  414. package/m3u8stream/node_modules/sax/package.json +25 -0
  415. package/m3u8stream/package.json +54 -0
  416. package/mime-db/HISTORY.md +507 -0
  417. package/mime-db/LICENSE +23 -0
  418. package/mime-db/README.md +100 -0
  419. package/mime-db/db.json +8519 -0
  420. package/mime-db/index.js +12 -0
  421. package/mime-db/package.json +60 -0
  422. package/mime-types/HISTORY.md +397 -0
  423. package/mime-types/LICENSE +23 -0
  424. package/mime-types/README.md +113 -0
  425. package/mime-types/index.js +188 -0
  426. package/mime-types/package.json +44 -0
  427. package/miniget/LICENSE +21 -0
  428. package/miniget/README.md +111 -0
  429. package/miniget/dist/index.d.ts +65 -0
  430. package/miniget/dist/index.js +281 -0
  431. package/miniget/dist/index.js.map +1 -0
  432. package/miniget/package.json +49 -0
  433. package/oauth-sign/LICENSE +55 -0
  434. package/oauth-sign/README.md +11 -0
  435. package/oauth-sign/index.js +146 -0
  436. package/oauth-sign/package.json +23 -0
  437. package/package.json +11 -0
  438. package/performance-now/.tm_properties +7 -0
  439. package/performance-now/.travis.yml +6 -0
  440. package/performance-now/README.md +30 -0
  441. package/performance-now/lib/performance-now.js +36 -0
  442. package/performance-now/lib/performance-now.js.map +10 -0
  443. package/performance-now/license.txt +7 -0
  444. package/performance-now/package.json +35 -0
  445. package/performance-now/src/index.d.ts +8 -0
  446. package/performance-now/src/performance-now.coffee +17 -0
  447. package/performance-now/test/mocha.opts +3 -0
  448. package/performance-now/test/performance-now.coffee +43 -0
  449. package/performance-now/test/scripts/delayed-call.coffee +11 -0
  450. package/performance-now/test/scripts/delayed-require.coffee +12 -0
  451. package/performance-now/test/scripts/difference.coffee +6 -0
  452. package/performance-now/test/scripts/initial-value.coffee +10 -0
  453. package/performance-now/test/scripts.coffee +27 -0
  454. package/psl/.env +0 -0
  455. package/psl/LICENSE +9 -0
  456. package/psl/README.md +211 -0
  457. package/psl/browserstack-logo.svg +90 -0
  458. package/psl/data/rules.json +9376 -0
  459. package/psl/dist/psl.js +10187 -0
  460. package/psl/dist/psl.min.js +1 -0
  461. package/psl/index.js +269 -0
  462. package/psl/package.json +43 -0
  463. package/punycode/LICENSE-MIT.txt +20 -0
  464. package/punycode/README.md +122 -0
  465. package/punycode/package.json +58 -0
  466. package/punycode/punycode.es6.js +441 -0
  467. package/punycode/punycode.js +440 -0
  468. package/qs/.editorconfig +43 -0
  469. package/qs/.eslintrc +37 -0
  470. package/qs/.github/FUNDING.yml +12 -0
  471. package/qs/.nycrc +13 -0
  472. package/qs/CHANGELOG.md +250 -0
  473. package/qs/LICENSE.md +29 -0
  474. package/qs/README.md +510 -0
  475. package/qs/bower.json +21 -0
  476. package/qs/component.json +15 -0
  477. package/qs/dist/qs.js +648 -0
  478. package/qs/lib/formats.js +18 -0
  479. package/qs/lib/index.js +11 -0
  480. package/qs/lib/parse.js +175 -0
  481. package/qs/lib/stringify.js +217 -0
  482. package/qs/lib/utils.js +215 -0
  483. package/qs/package.json +54 -0
  484. package/qs/test/index.js +7 -0
  485. package/qs/test/parse.js +649 -0
  486. package/qs/test/stringify.js +642 -0
  487. package/qs/test/utils.js +65 -0
  488. package/request/CHANGELOG.md +717 -0
  489. package/request/LICENSE +55 -0
  490. package/request/README.md +1133 -0
  491. package/request/index.js +155 -0
  492. package/request/lib/auth.js +167 -0
  493. package/request/lib/cookies.js +38 -0
  494. package/request/lib/getProxyFromURI.js +79 -0
  495. package/request/lib/har.js +205 -0
  496. package/request/lib/hawk.js +89 -0
  497. package/request/lib/helpers.js +66 -0
  498. package/request/lib/multipart.js +112 -0
  499. package/request/lib/oauth.js +148 -0
  500. package/request/lib/querystring.js +50 -0
  501. package/request/lib/redirect.js +154 -0
  502. package/request/lib/tunnel.js +175 -0
  503. package/request/package.json +86 -0
  504. package/request/request.js +1553 -0
  505. package/safe-buffer/LICENSE +21 -0
  506. package/safe-buffer/README.md +584 -0
  507. package/safe-buffer/index.d.ts +187 -0
  508. package/safe-buffer/index.js +65 -0
  509. package/safe-buffer/package.json +51 -0
  510. package/safer-buffer/LICENSE +21 -0
  511. package/safer-buffer/Porting-Buffer.md +268 -0
  512. package/safer-buffer/Readme.md +156 -0
  513. package/safer-buffer/dangerous.js +58 -0
  514. package/safer-buffer/package.json +34 -0
  515. package/safer-buffer/safer.js +77 -0
  516. package/safer-buffer/tests.js +406 -0
  517. package/sax/AUTHORS +10 -0
  518. package/sax/LICENSE +32 -0
  519. package/sax/LICENSE-W3C.html +188 -0
  520. package/sax/README.md +216 -0
  521. package/sax/component.json +12 -0
  522. package/sax/examples/big-not-pretty.xml +8002 -0
  523. package/sax/examples/example.js +29 -0
  524. package/sax/examples/get-products.js +58 -0
  525. package/sax/examples/hello-world.js +4 -0
  526. package/sax/examples/not-pretty.xml +8 -0
  527. package/sax/examples/pretty-print.js +74 -0
  528. package/sax/examples/shopping.xml +2 -0
  529. package/sax/examples/strict.dtd +870 -0
  530. package/sax/examples/test.html +15 -0
  531. package/sax/examples/test.xml +1254 -0
  532. package/sax/lib/sax.js +1355 -0
  533. package/sax/package.json +12 -0
  534. package/sax/test/attribute-name.js +33 -0
  535. package/sax/test/attribute-no-space.js +75 -0
  536. package/sax/test/buffer-overrun.js +26 -0
  537. package/sax/test/case.js +50 -0
  538. package/sax/test/cdata-chunked.js +11 -0
  539. package/sax/test/cdata-end-split.js +15 -0
  540. package/sax/test/cdata-fake-end.js +28 -0
  541. package/sax/test/cdata-multiple.js +15 -0
  542. package/sax/test/cdata.js +10 -0
  543. package/sax/test/cyrillic.js +8 -0
  544. package/sax/test/duplicate-attribute.js +13 -0
  545. package/sax/test/end_empty_stream.js +5 -0
  546. package/sax/test/entities.js +10 -0
  547. package/sax/test/entity-mega.js +16 -0
  548. package/sax/test/flush.js +13 -0
  549. package/sax/test/index.js +86 -0
  550. package/sax/test/issue-23.js +43 -0
  551. package/sax/test/issue-30.js +24 -0
  552. package/sax/test/issue-35.js +15 -0
  553. package/sax/test/issue-47.js +12 -0
  554. package/sax/test/issue-49.js +31 -0
  555. package/sax/test/issue-84.js +13 -0
  556. package/sax/test/parser-position.js +28 -0
  557. package/sax/test/script-close-better.js +12 -0
  558. package/sax/test/script.js +12 -0
  559. package/sax/test/self-closing-child-strict.js +44 -0
  560. package/sax/test/self-closing-child.js +44 -0
  561. package/sax/test/self-closing-tag.js +25 -0
  562. package/sax/test/stray-ending.js +17 -0
  563. package/sax/test/trailing-attribute-no-value.js +10 -0
  564. package/sax/test/trailing-non-whitespace.js +18 -0
  565. package/sax/test/unclosed-root.js +11 -0
  566. package/sax/test/unquoted.js +18 -0
  567. package/sax/test/utf8-split.js +32 -0
  568. package/sax/test/xmlns-as-tag-name.js +15 -0
  569. package/sax/test/xmlns-issue-41.js +68 -0
  570. package/sax/test/xmlns-rebinding.js +63 -0
  571. package/sax/test/xmlns-strict.js +74 -0
  572. package/sax/test/xmlns-unbound-element.js +33 -0
  573. package/sax/test/xmlns-unbound.js +15 -0
  574. package/sax/test/xmlns-xml-default-ns.js +31 -0
  575. package/sax/test/xmlns-xml-default-prefix-attribute.js +36 -0
  576. package/sax/test/xmlns-xml-default-prefix.js +21 -0
  577. package/sax/test/xmlns-xml-default-redefine.js +41 -0
  578. package/simple-csv-reader/.editorconfig +8 -0
  579. package/simple-csv-reader/LICENSE +21 -0
  580. package/simple-csv-reader/README.md +32 -0
  581. package/simple-csv-reader/dist/simple-csv-reader.min.js +2 -0
  582. package/simple-csv-reader/dist/simple-csv-reader.min.js.map +1 -0
  583. package/simple-csv-reader/gulpfile.js +26 -0
  584. package/simple-csv-reader/index.js +131 -0
  585. package/simple-csv-reader/package.json +38 -0
  586. package/sshpk/.travis.yml +11 -0
  587. package/sshpk/Jenkinsfile +86 -0
  588. package/sshpk/LICENSE +18 -0
  589. package/sshpk/README.md +804 -0
  590. package/sshpk/bin/sshpk-conv +243 -0
  591. package/sshpk/bin/sshpk-sign +191 -0
  592. package/sshpk/bin/sshpk-verify +167 -0
  593. package/sshpk/lib/algs.js +168 -0
  594. package/sshpk/lib/certificate.js +410 -0
  595. package/sshpk/lib/dhe.js +397 -0
  596. package/sshpk/lib/ed-compat.js +92 -0
  597. package/sshpk/lib/errors.js +84 -0
  598. package/sshpk/lib/fingerprint.js +220 -0
  599. package/sshpk/lib/formats/auto.js +124 -0
  600. package/sshpk/lib/formats/dnssec.js +287 -0
  601. package/sshpk/lib/formats/openssh-cert.js +352 -0
  602. package/sshpk/lib/formats/pem.js +290 -0
  603. package/sshpk/lib/formats/pkcs1.js +373 -0
  604. package/sshpk/lib/formats/pkcs8.js +631 -0
  605. package/sshpk/lib/formats/putty.js +194 -0
  606. package/sshpk/lib/formats/rfc4253.js +166 -0
  607. package/sshpk/lib/formats/ssh-private.js +262 -0
  608. package/sshpk/lib/formats/ssh.js +115 -0
  609. package/sshpk/lib/formats/x509-pem.js +88 -0
  610. package/sshpk/lib/formats/x509.js +752 -0
  611. package/sshpk/lib/identity.js +373 -0
  612. package/sshpk/lib/index.js +40 -0
  613. package/sshpk/lib/key.js +294 -0
  614. package/sshpk/lib/private-key.js +247 -0
  615. package/sshpk/lib/signature.js +314 -0
  616. package/sshpk/lib/ssh-buffer.js +149 -0
  617. package/sshpk/lib/utils.js +404 -0
  618. package/sshpk/man/man1/sshpk-conv.1 +135 -0
  619. package/sshpk/man/man1/sshpk-sign.1 +81 -0
  620. package/sshpk/man/man1/sshpk-verify.1 +68 -0
  621. package/sshpk/package.json +60 -0
  622. package/tough-cookie/LICENSE +12 -0
  623. package/tough-cookie/README.md +527 -0
  624. package/tough-cookie/lib/cookie.js +1482 -0
  625. package/tough-cookie/lib/memstore.js +181 -0
  626. package/tough-cookie/lib/pathMatch.js +61 -0
  627. package/tough-cookie/lib/permuteDomain.js +56 -0
  628. package/tough-cookie/lib/pubsuffix-psl.js +38 -0
  629. package/tough-cookie/lib/store.js +75 -0
  630. package/tough-cookie/lib/version.js +2 -0
  631. package/tough-cookie/package.json +78 -0
  632. package/tunnel-agent/LICENSE +55 -0
  633. package/tunnel-agent/README.md +4 -0
  634. package/tunnel-agent/index.js +244 -0
  635. package/tunnel-agent/package.json +22 -0
  636. package/tweetnacl/AUTHORS.md +28 -0
  637. package/tweetnacl/CHANGELOG.md +221 -0
  638. package/tweetnacl/LICENSE +24 -0
  639. package/tweetnacl/PULL_REQUEST_TEMPLATE.md +20 -0
  640. package/tweetnacl/README.md +459 -0
  641. package/tweetnacl/nacl-fast.js +2388 -0
  642. package/tweetnacl/nacl-fast.min.js +2 -0
  643. package/tweetnacl/nacl.d.ts +98 -0
  644. package/tweetnacl/nacl.js +1175 -0
  645. package/tweetnacl/nacl.min.js +1 -0
  646. package/tweetnacl/package.json +58 -0
  647. package/uri-js/LICENSE +11 -0
  648. package/uri-js/README.md +203 -0
  649. package/uri-js/dist/es5/uri.all.d.ts +59 -0
  650. package/uri-js/dist/es5/uri.all.js +1443 -0
  651. package/uri-js/dist/es5/uri.all.js.map +1 -0
  652. package/uri-js/dist/es5/uri.all.min.d.ts +59 -0
  653. package/uri-js/dist/es5/uri.all.min.js +3 -0
  654. package/uri-js/dist/es5/uri.all.min.js.map +1 -0
  655. package/uri-js/dist/esnext/index.d.ts +1 -0
  656. package/uri-js/dist/esnext/index.js +17 -0
  657. package/uri-js/dist/esnext/index.js.map +1 -0
  658. package/uri-js/dist/esnext/regexps-iri.d.ts +3 -0
  659. package/uri-js/dist/esnext/regexps-iri.js +3 -0
  660. package/uri-js/dist/esnext/regexps-iri.js.map +1 -0
  661. package/uri-js/dist/esnext/regexps-uri.d.ts +4 -0
  662. package/uri-js/dist/esnext/regexps-uri.js +42 -0
  663. package/uri-js/dist/esnext/regexps-uri.js.map +1 -0
  664. package/uri-js/dist/esnext/schemes/http.d.ts +3 -0
  665. package/uri-js/dist/esnext/schemes/http.js +28 -0
  666. package/uri-js/dist/esnext/schemes/http.js.map +1 -0
  667. package/uri-js/dist/esnext/schemes/https.d.ts +3 -0
  668. package/uri-js/dist/esnext/schemes/https.js +9 -0
  669. package/uri-js/dist/esnext/schemes/https.js.map +1 -0
  670. package/uri-js/dist/esnext/schemes/mailto.d.ts +12 -0
  671. package/uri-js/dist/esnext/schemes/mailto.js +148 -0
  672. package/uri-js/dist/esnext/schemes/mailto.js.map +1 -0
  673. package/uri-js/dist/esnext/schemes/urn-uuid.d.ts +7 -0
  674. package/uri-js/dist/esnext/schemes/urn-uuid.js +23 -0
  675. package/uri-js/dist/esnext/schemes/urn-uuid.js.map +1 -0
  676. package/uri-js/dist/esnext/schemes/urn.d.ts +10 -0
  677. package/uri-js/dist/esnext/schemes/urn.js +49 -0
  678. package/uri-js/dist/esnext/schemes/urn.js.map +1 -0
  679. package/uri-js/dist/esnext/schemes/ws.d.ts +7 -0
  680. package/uri-js/dist/esnext/schemes/ws.js +41 -0
  681. package/uri-js/dist/esnext/schemes/ws.js.map +1 -0
  682. package/uri-js/dist/esnext/schemes/wss.d.ts +3 -0
  683. package/uri-js/dist/esnext/schemes/wss.js +9 -0
  684. package/uri-js/dist/esnext/schemes/wss.js.map +1 -0
  685. package/uri-js/dist/esnext/uri.d.ts +59 -0
  686. package/uri-js/dist/esnext/uri.js +480 -0
  687. package/uri-js/dist/esnext/uri.js.map +1 -0
  688. package/uri-js/dist/esnext/util.d.ts +6 -0
  689. package/uri-js/dist/esnext/util.js +36 -0
  690. package/uri-js/dist/esnext/util.js.map +1 -0
  691. package/uri-js/package.json +77 -0
  692. package/uri-js/yarn.lock +2558 -0
  693. package/uuid/AUTHORS +5 -0
  694. package/uuid/CHANGELOG.md +119 -0
  695. package/uuid/LICENSE.md +21 -0
  696. package/uuid/README.md +276 -0
  697. package/uuid/bin/uuid +65 -0
  698. package/uuid/index.js +8 -0
  699. package/uuid/lib/bytesToUuid.js +26 -0
  700. package/uuid/lib/md5-browser.js +216 -0
  701. package/uuid/lib/md5.js +25 -0
  702. package/uuid/lib/rng-browser.js +34 -0
  703. package/uuid/lib/rng.js +8 -0
  704. package/uuid/lib/sha1-browser.js +89 -0
  705. package/uuid/lib/sha1.js +25 -0
  706. package/uuid/lib/v35.js +57 -0
  707. package/uuid/package.json +49 -0
  708. package/uuid/v1.js +109 -0
  709. package/uuid/v3.js +4 -0
  710. package/uuid/v4.js +29 -0
  711. package/uuid/v5.js +3 -0
  712. package/verror/CHANGES.md +28 -0
  713. package/verror/CONTRIBUTING.md +19 -0
  714. package/verror/LICENSE +19 -0
  715. package/verror/README.md +528 -0
  716. package/verror/lib/verror.js +451 -0
  717. package/verror/package.json +22 -0
  718. package/xml2js/.travis.yml +5 -0
  719. package/xml2js/83.coffee +6 -0
  720. package/xml2js/LICENSE +19 -0
  721. package/xml2js/README.md +248 -0
  722. package/xml2js/canon.xml +482 -0
  723. package/xml2js/lib/xml2js.js +299 -0
  724. package/xml2js/package.json +47 -0
  725. package/xml2js/text.coffee +11 -0
  726. package/xml2js/text.xml +485 -0
  727. package/youtube-search/.travis.yml +5 -0
  728. package/youtube-search/README.md +61 -0
  729. package/youtube-search/index.d.ts +77 -0
  730. package/youtube-search/index.js +111 -0
  731. package/youtube-search/package.json +29 -0
  732. package/youtube-search/tests/test-search.js +32 -0
  733. package/ytdl-core/LICENSE +21 -0
  734. package/ytdl-core/README.md +238 -0
  735. package/ytdl-core/lib/cache.js +54 -0
  736. package/ytdl-core/lib/format-utils.js +250 -0
  737. package/ytdl-core/lib/formats.js +524 -0
  738. package/ytdl-core/lib/index.js +214 -0
  739. package/ytdl-core/lib/info-extras.js +365 -0
  740. package/ytdl-core/lib/info.js +495 -0
  741. package/ytdl-core/lib/sig.js +122 -0
  742. package/ytdl-core/lib/url-utils.js +91 -0
  743. package/ytdl-core/lib/utils.js +286 -0
  744. package/ytdl-core/node_modules/sax/LICENSE +41 -0
  745. package/ytdl-core/node_modules/sax/README.md +225 -0
  746. package/ytdl-core/node_modules/sax/lib/sax.js +1565 -0
  747. package/ytdl-core/node_modules/sax/package.json +25 -0
  748. package/ytdl-core/package.json +61 -0
  749. package/ytdl-core/typings/index.d.ts +426 -0
  750. package/ytdl-getinfo/.travis.yml +3 -0
  751. package/ytdl-getinfo/README.md +77 -0
  752. package/ytdl-getinfo/index.js +105 -0
  753. package/ytdl-getinfo/package.json +33 -0
  754. package/ytdl-getinfo/playlist.js +50 -0
  755. package/ytdl-getinfo/test/test.js +68 -0
  756. package/ytdl-getinfo/updater.js +42 -0
  757. package/ytdl-getinfo/yarn.lock +533 -0
  758. package/ytdl-getinfo/ytdl/.gitkeep +0 -0
  759. package/ytdl-getinfo/ytdl/youtube-dl.exe +0 -0
package/jsbn/index.js ADDED
@@ -0,0 +1,1357 @@
1
+ (function(){
2
+
3
+ // Copyright (c) 2005 Tom Wu
4
+ // All Rights Reserved.
5
+ // See "LICENSE" for details.
6
+
7
+ // Basic JavaScript BN library - subset useful for RSA encryption.
8
+
9
+ // Bits per digit
10
+ var dbits;
11
+
12
+ // JavaScript engine analysis
13
+ var canary = 0xdeadbeefcafe;
14
+ var j_lm = ((canary&0xffffff)==0xefcafe);
15
+
16
+ // (public) Constructor
17
+ function BigInteger(a,b,c) {
18
+ if(a != null)
19
+ if("number" == typeof a) this.fromNumber(a,b,c);
20
+ else if(b == null && "string" != typeof a) this.fromString(a,256);
21
+ else this.fromString(a,b);
22
+ }
23
+
24
+ // return new, unset BigInteger
25
+ function nbi() { return new BigInteger(null); }
26
+
27
+ // am: Compute w_j += (x*this_i), propagate carries,
28
+ // c is initial carry, returns final carry.
29
+ // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
30
+ // We need to select the fastest one that works in this environment.
31
+
32
+ // am1: use a single mult and divide to get the high bits,
33
+ // max digit bits should be 26 because
34
+ // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
35
+ function am1(i,x,w,j,c,n) {
36
+ while(--n >= 0) {
37
+ var v = x*this[i++]+w[j]+c;
38
+ c = Math.floor(v/0x4000000);
39
+ w[j++] = v&0x3ffffff;
40
+ }
41
+ return c;
42
+ }
43
+ // am2 avoids a big mult-and-extract completely.
44
+ // Max digit bits should be <= 30 because we do bitwise ops
45
+ // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
46
+ function am2(i,x,w,j,c,n) {
47
+ var xl = x&0x7fff, xh = x>>15;
48
+ while(--n >= 0) {
49
+ var l = this[i]&0x7fff;
50
+ var h = this[i++]>>15;
51
+ var m = xh*l+h*xl;
52
+ l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
53
+ c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
54
+ w[j++] = l&0x3fffffff;
55
+ }
56
+ return c;
57
+ }
58
+ // Alternately, set max digit bits to 28 since some
59
+ // browsers slow down when dealing with 32-bit numbers.
60
+ function am3(i,x,w,j,c,n) {
61
+ var xl = x&0x3fff, xh = x>>14;
62
+ while(--n >= 0) {
63
+ var l = this[i]&0x3fff;
64
+ var h = this[i++]>>14;
65
+ var m = xh*l+h*xl;
66
+ l = xl*l+((m&0x3fff)<<14)+w[j]+c;
67
+ c = (l>>28)+(m>>14)+xh*h;
68
+ w[j++] = l&0xfffffff;
69
+ }
70
+ return c;
71
+ }
72
+ var inBrowser = typeof navigator !== "undefined";
73
+ if(inBrowser && j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
74
+ BigInteger.prototype.am = am2;
75
+ dbits = 30;
76
+ }
77
+ else if(inBrowser && j_lm && (navigator.appName != "Netscape")) {
78
+ BigInteger.prototype.am = am1;
79
+ dbits = 26;
80
+ }
81
+ else { // Mozilla/Netscape seems to prefer am3
82
+ BigInteger.prototype.am = am3;
83
+ dbits = 28;
84
+ }
85
+
86
+ BigInteger.prototype.DB = dbits;
87
+ BigInteger.prototype.DM = ((1<<dbits)-1);
88
+ BigInteger.prototype.DV = (1<<dbits);
89
+
90
+ var BI_FP = 52;
91
+ BigInteger.prototype.FV = Math.pow(2,BI_FP);
92
+ BigInteger.prototype.F1 = BI_FP-dbits;
93
+ BigInteger.prototype.F2 = 2*dbits-BI_FP;
94
+
95
+ // Digit conversions
96
+ var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
97
+ var BI_RC = new Array();
98
+ var rr,vv;
99
+ rr = "0".charCodeAt(0);
100
+ for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
101
+ rr = "a".charCodeAt(0);
102
+ for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
103
+ rr = "A".charCodeAt(0);
104
+ for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
105
+
106
+ function int2char(n) { return BI_RM.charAt(n); }
107
+ function intAt(s,i) {
108
+ var c = BI_RC[s.charCodeAt(i)];
109
+ return (c==null)?-1:c;
110
+ }
111
+
112
+ // (protected) copy this to r
113
+ function bnpCopyTo(r) {
114
+ for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
115
+ r.t = this.t;
116
+ r.s = this.s;
117
+ }
118
+
119
+ // (protected) set from integer value x, -DV <= x < DV
120
+ function bnpFromInt(x) {
121
+ this.t = 1;
122
+ this.s = (x<0)?-1:0;
123
+ if(x > 0) this[0] = x;
124
+ else if(x < -1) this[0] = x+this.DV;
125
+ else this.t = 0;
126
+ }
127
+
128
+ // return bigint initialized to value
129
+ function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
130
+
131
+ // (protected) set from string and radix
132
+ function bnpFromString(s,b) {
133
+ var k;
134
+ if(b == 16) k = 4;
135
+ else if(b == 8) k = 3;
136
+ else if(b == 256) k = 8; // byte array
137
+ else if(b == 2) k = 1;
138
+ else if(b == 32) k = 5;
139
+ else if(b == 4) k = 2;
140
+ else { this.fromRadix(s,b); return; }
141
+ this.t = 0;
142
+ this.s = 0;
143
+ var i = s.length, mi = false, sh = 0;
144
+ while(--i >= 0) {
145
+ var x = (k==8)?s[i]&0xff:intAt(s,i);
146
+ if(x < 0) {
147
+ if(s.charAt(i) == "-") mi = true;
148
+ continue;
149
+ }
150
+ mi = false;
151
+ if(sh == 0)
152
+ this[this.t++] = x;
153
+ else if(sh+k > this.DB) {
154
+ this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
155
+ this[this.t++] = (x>>(this.DB-sh));
156
+ }
157
+ else
158
+ this[this.t-1] |= x<<sh;
159
+ sh += k;
160
+ if(sh >= this.DB) sh -= this.DB;
161
+ }
162
+ if(k == 8 && (s[0]&0x80) != 0) {
163
+ this.s = -1;
164
+ if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
165
+ }
166
+ this.clamp();
167
+ if(mi) BigInteger.ZERO.subTo(this,this);
168
+ }
169
+
170
+ // (protected) clamp off excess high words
171
+ function bnpClamp() {
172
+ var c = this.s&this.DM;
173
+ while(this.t > 0 && this[this.t-1] == c) --this.t;
174
+ }
175
+
176
+ // (public) return string representation in given radix
177
+ function bnToString(b) {
178
+ if(this.s < 0) return "-"+this.negate().toString(b);
179
+ var k;
180
+ if(b == 16) k = 4;
181
+ else if(b == 8) k = 3;
182
+ else if(b == 2) k = 1;
183
+ else if(b == 32) k = 5;
184
+ else if(b == 4) k = 2;
185
+ else return this.toRadix(b);
186
+ var km = (1<<k)-1, d, m = false, r = "", i = this.t;
187
+ var p = this.DB-(i*this.DB)%k;
188
+ if(i-- > 0) {
189
+ if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
190
+ while(i >= 0) {
191
+ if(p < k) {
192
+ d = (this[i]&((1<<p)-1))<<(k-p);
193
+ d |= this[--i]>>(p+=this.DB-k);
194
+ }
195
+ else {
196
+ d = (this[i]>>(p-=k))&km;
197
+ if(p <= 0) { p += this.DB; --i; }
198
+ }
199
+ if(d > 0) m = true;
200
+ if(m) r += int2char(d);
201
+ }
202
+ }
203
+ return m?r:"0";
204
+ }
205
+
206
+ // (public) -this
207
+ function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
208
+
209
+ // (public) |this|
210
+ function bnAbs() { return (this.s<0)?this.negate():this; }
211
+
212
+ // (public) return + if this > a, - if this < a, 0 if equal
213
+ function bnCompareTo(a) {
214
+ var r = this.s-a.s;
215
+ if(r != 0) return r;
216
+ var i = this.t;
217
+ r = i-a.t;
218
+ if(r != 0) return (this.s<0)?-r:r;
219
+ while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
220
+ return 0;
221
+ }
222
+
223
+ // returns bit length of the integer x
224
+ function nbits(x) {
225
+ var r = 1, t;
226
+ if((t=x>>>16) != 0) { x = t; r += 16; }
227
+ if((t=x>>8) != 0) { x = t; r += 8; }
228
+ if((t=x>>4) != 0) { x = t; r += 4; }
229
+ if((t=x>>2) != 0) { x = t; r += 2; }
230
+ if((t=x>>1) != 0) { x = t; r += 1; }
231
+ return r;
232
+ }
233
+
234
+ // (public) return the number of bits in "this"
235
+ function bnBitLength() {
236
+ if(this.t <= 0) return 0;
237
+ return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
238
+ }
239
+
240
+ // (protected) r = this << n*DB
241
+ function bnpDLShiftTo(n,r) {
242
+ var i;
243
+ for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
244
+ for(i = n-1; i >= 0; --i) r[i] = 0;
245
+ r.t = this.t+n;
246
+ r.s = this.s;
247
+ }
248
+
249
+ // (protected) r = this >> n*DB
250
+ function bnpDRShiftTo(n,r) {
251
+ for(var i = n; i < this.t; ++i) r[i-n] = this[i];
252
+ r.t = Math.max(this.t-n,0);
253
+ r.s = this.s;
254
+ }
255
+
256
+ // (protected) r = this << n
257
+ function bnpLShiftTo(n,r) {
258
+ var bs = n%this.DB;
259
+ var cbs = this.DB-bs;
260
+ var bm = (1<<cbs)-1;
261
+ var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
262
+ for(i = this.t-1; i >= 0; --i) {
263
+ r[i+ds+1] = (this[i]>>cbs)|c;
264
+ c = (this[i]&bm)<<bs;
265
+ }
266
+ for(i = ds-1; i >= 0; --i) r[i] = 0;
267
+ r[ds] = c;
268
+ r.t = this.t+ds+1;
269
+ r.s = this.s;
270
+ r.clamp();
271
+ }
272
+
273
+ // (protected) r = this >> n
274
+ function bnpRShiftTo(n,r) {
275
+ r.s = this.s;
276
+ var ds = Math.floor(n/this.DB);
277
+ if(ds >= this.t) { r.t = 0; return; }
278
+ var bs = n%this.DB;
279
+ var cbs = this.DB-bs;
280
+ var bm = (1<<bs)-1;
281
+ r[0] = this[ds]>>bs;
282
+ for(var i = ds+1; i < this.t; ++i) {
283
+ r[i-ds-1] |= (this[i]&bm)<<cbs;
284
+ r[i-ds] = this[i]>>bs;
285
+ }
286
+ if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
287
+ r.t = this.t-ds;
288
+ r.clamp();
289
+ }
290
+
291
+ // (protected) r = this - a
292
+ function bnpSubTo(a,r) {
293
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
294
+ while(i < m) {
295
+ c += this[i]-a[i];
296
+ r[i++] = c&this.DM;
297
+ c >>= this.DB;
298
+ }
299
+ if(a.t < this.t) {
300
+ c -= a.s;
301
+ while(i < this.t) {
302
+ c += this[i];
303
+ r[i++] = c&this.DM;
304
+ c >>= this.DB;
305
+ }
306
+ c += this.s;
307
+ }
308
+ else {
309
+ c += this.s;
310
+ while(i < a.t) {
311
+ c -= a[i];
312
+ r[i++] = c&this.DM;
313
+ c >>= this.DB;
314
+ }
315
+ c -= a.s;
316
+ }
317
+ r.s = (c<0)?-1:0;
318
+ if(c < -1) r[i++] = this.DV+c;
319
+ else if(c > 0) r[i++] = c;
320
+ r.t = i;
321
+ r.clamp();
322
+ }
323
+
324
+ // (protected) r = this * a, r != this,a (HAC 14.12)
325
+ // "this" should be the larger one if appropriate.
326
+ function bnpMultiplyTo(a,r) {
327
+ var x = this.abs(), y = a.abs();
328
+ var i = x.t;
329
+ r.t = i+y.t;
330
+ while(--i >= 0) r[i] = 0;
331
+ for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
332
+ r.s = 0;
333
+ r.clamp();
334
+ if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
335
+ }
336
+
337
+ // (protected) r = this^2, r != this (HAC 14.16)
338
+ function bnpSquareTo(r) {
339
+ var x = this.abs();
340
+ var i = r.t = 2*x.t;
341
+ while(--i >= 0) r[i] = 0;
342
+ for(i = 0; i < x.t-1; ++i) {
343
+ var c = x.am(i,x[i],r,2*i,0,1);
344
+ if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
345
+ r[i+x.t] -= x.DV;
346
+ r[i+x.t+1] = 1;
347
+ }
348
+ }
349
+ if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
350
+ r.s = 0;
351
+ r.clamp();
352
+ }
353
+
354
+ // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
355
+ // r != q, this != m. q or r may be null.
356
+ function bnpDivRemTo(m,q,r) {
357
+ var pm = m.abs();
358
+ if(pm.t <= 0) return;
359
+ var pt = this.abs();
360
+ if(pt.t < pm.t) {
361
+ if(q != null) q.fromInt(0);
362
+ if(r != null) this.copyTo(r);
363
+ return;
364
+ }
365
+ if(r == null) r = nbi();
366
+ var y = nbi(), ts = this.s, ms = m.s;
367
+ var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
368
+ if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
369
+ else { pm.copyTo(y); pt.copyTo(r); }
370
+ var ys = y.t;
371
+ var y0 = y[ys-1];
372
+ if(y0 == 0) return;
373
+ var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
374
+ var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
375
+ var i = r.t, j = i-ys, t = (q==null)?nbi():q;
376
+ y.dlShiftTo(j,t);
377
+ if(r.compareTo(t) >= 0) {
378
+ r[r.t++] = 1;
379
+ r.subTo(t,r);
380
+ }
381
+ BigInteger.ONE.dlShiftTo(ys,t);
382
+ t.subTo(y,y); // "negative" y so we can replace sub with am later
383
+ while(y.t < ys) y[y.t++] = 0;
384
+ while(--j >= 0) {
385
+ // Estimate quotient digit
386
+ var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
387
+ if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
388
+ y.dlShiftTo(j,t);
389
+ r.subTo(t,r);
390
+ while(r[i] < --qd) r.subTo(t,r);
391
+ }
392
+ }
393
+ if(q != null) {
394
+ r.drShiftTo(ys,q);
395
+ if(ts != ms) BigInteger.ZERO.subTo(q,q);
396
+ }
397
+ r.t = ys;
398
+ r.clamp();
399
+ if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
400
+ if(ts < 0) BigInteger.ZERO.subTo(r,r);
401
+ }
402
+
403
+ // (public) this mod a
404
+ function bnMod(a) {
405
+ var r = nbi();
406
+ this.abs().divRemTo(a,null,r);
407
+ if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
408
+ return r;
409
+ }
410
+
411
+ // Modular reduction using "classic" algorithm
412
+ function Classic(m) { this.m = m; }
413
+ function cConvert(x) {
414
+ if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
415
+ else return x;
416
+ }
417
+ function cRevert(x) { return x; }
418
+ function cReduce(x) { x.divRemTo(this.m,null,x); }
419
+ function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
420
+ function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
421
+
422
+ Classic.prototype.convert = cConvert;
423
+ Classic.prototype.revert = cRevert;
424
+ Classic.prototype.reduce = cReduce;
425
+ Classic.prototype.mulTo = cMulTo;
426
+ Classic.prototype.sqrTo = cSqrTo;
427
+
428
+ // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
429
+ // justification:
430
+ // xy == 1 (mod m)
431
+ // xy = 1+km
432
+ // xy(2-xy) = (1+km)(1-km)
433
+ // x[y(2-xy)] = 1-k^2m^2
434
+ // x[y(2-xy)] == 1 (mod m^2)
435
+ // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
436
+ // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
437
+ // JS multiply "overflows" differently from C/C++, so care is needed here.
438
+ function bnpInvDigit() {
439
+ if(this.t < 1) return 0;
440
+ var x = this[0];
441
+ if((x&1) == 0) return 0;
442
+ var y = x&3; // y == 1/x mod 2^2
443
+ y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
444
+ y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
445
+ y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
446
+ // last step - calculate inverse mod DV directly;
447
+ // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
448
+ y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
449
+ // we really want the negative inverse, and -DV < y < DV
450
+ return (y>0)?this.DV-y:-y;
451
+ }
452
+
453
+ // Montgomery reduction
454
+ function Montgomery(m) {
455
+ this.m = m;
456
+ this.mp = m.invDigit();
457
+ this.mpl = this.mp&0x7fff;
458
+ this.mph = this.mp>>15;
459
+ this.um = (1<<(m.DB-15))-1;
460
+ this.mt2 = 2*m.t;
461
+ }
462
+
463
+ // xR mod m
464
+ function montConvert(x) {
465
+ var r = nbi();
466
+ x.abs().dlShiftTo(this.m.t,r);
467
+ r.divRemTo(this.m,null,r);
468
+ if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
469
+ return r;
470
+ }
471
+
472
+ // x/R mod m
473
+ function montRevert(x) {
474
+ var r = nbi();
475
+ x.copyTo(r);
476
+ this.reduce(r);
477
+ return r;
478
+ }
479
+
480
+ // x = x/R mod m (HAC 14.32)
481
+ function montReduce(x) {
482
+ while(x.t <= this.mt2) // pad x so am has enough room later
483
+ x[x.t++] = 0;
484
+ for(var i = 0; i < this.m.t; ++i) {
485
+ // faster way of calculating u0 = x[i]*mp mod DV
486
+ var j = x[i]&0x7fff;
487
+ var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
488
+ // use am to combine the multiply-shift-add into one call
489
+ j = i+this.m.t;
490
+ x[j] += this.m.am(0,u0,x,i,0,this.m.t);
491
+ // propagate carry
492
+ while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
493
+ }
494
+ x.clamp();
495
+ x.drShiftTo(this.m.t,x);
496
+ if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
497
+ }
498
+
499
+ // r = "x^2/R mod m"; x != r
500
+ function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
501
+
502
+ // r = "xy/R mod m"; x,y != r
503
+ function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
504
+
505
+ Montgomery.prototype.convert = montConvert;
506
+ Montgomery.prototype.revert = montRevert;
507
+ Montgomery.prototype.reduce = montReduce;
508
+ Montgomery.prototype.mulTo = montMulTo;
509
+ Montgomery.prototype.sqrTo = montSqrTo;
510
+
511
+ // (protected) true iff this is even
512
+ function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
513
+
514
+ // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
515
+ function bnpExp(e,z) {
516
+ if(e > 0xffffffff || e < 1) return BigInteger.ONE;
517
+ var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
518
+ g.copyTo(r);
519
+ while(--i >= 0) {
520
+ z.sqrTo(r,r2);
521
+ if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
522
+ else { var t = r; r = r2; r2 = t; }
523
+ }
524
+ return z.revert(r);
525
+ }
526
+
527
+ // (public) this^e % m, 0 <= e < 2^32
528
+ function bnModPowInt(e,m) {
529
+ var z;
530
+ if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
531
+ return this.exp(e,z);
532
+ }
533
+
534
+ // protected
535
+ BigInteger.prototype.copyTo = bnpCopyTo;
536
+ BigInteger.prototype.fromInt = bnpFromInt;
537
+ BigInteger.prototype.fromString = bnpFromString;
538
+ BigInteger.prototype.clamp = bnpClamp;
539
+ BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
540
+ BigInteger.prototype.drShiftTo = bnpDRShiftTo;
541
+ BigInteger.prototype.lShiftTo = bnpLShiftTo;
542
+ BigInteger.prototype.rShiftTo = bnpRShiftTo;
543
+ BigInteger.prototype.subTo = bnpSubTo;
544
+ BigInteger.prototype.multiplyTo = bnpMultiplyTo;
545
+ BigInteger.prototype.squareTo = bnpSquareTo;
546
+ BigInteger.prototype.divRemTo = bnpDivRemTo;
547
+ BigInteger.prototype.invDigit = bnpInvDigit;
548
+ BigInteger.prototype.isEven = bnpIsEven;
549
+ BigInteger.prototype.exp = bnpExp;
550
+
551
+ // public
552
+ BigInteger.prototype.toString = bnToString;
553
+ BigInteger.prototype.negate = bnNegate;
554
+ BigInteger.prototype.abs = bnAbs;
555
+ BigInteger.prototype.compareTo = bnCompareTo;
556
+ BigInteger.prototype.bitLength = bnBitLength;
557
+ BigInteger.prototype.mod = bnMod;
558
+ BigInteger.prototype.modPowInt = bnModPowInt;
559
+
560
+ // "constants"
561
+ BigInteger.ZERO = nbv(0);
562
+ BigInteger.ONE = nbv(1);
563
+
564
+ // Copyright (c) 2005-2009 Tom Wu
565
+ // All Rights Reserved.
566
+ // See "LICENSE" for details.
567
+
568
+ // Extended JavaScript BN functions, required for RSA private ops.
569
+
570
+ // Version 1.1: new BigInteger("0", 10) returns "proper" zero
571
+ // Version 1.2: square() API, isProbablePrime fix
572
+
573
+ // (public)
574
+ function bnClone() { var r = nbi(); this.copyTo(r); return r; }
575
+
576
+ // (public) return value as integer
577
+ function bnIntValue() {
578
+ if(this.s < 0) {
579
+ if(this.t == 1) return this[0]-this.DV;
580
+ else if(this.t == 0) return -1;
581
+ }
582
+ else if(this.t == 1) return this[0];
583
+ else if(this.t == 0) return 0;
584
+ // assumes 16 < DB < 32
585
+ return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];
586
+ }
587
+
588
+ // (public) return value as byte
589
+ function bnByteValue() { return (this.t==0)?this.s:(this[0]<<24)>>24; }
590
+
591
+ // (public) return value as short (assumes DB>=16)
592
+ function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; }
593
+
594
+ // (protected) return x s.t. r^x < DV
595
+ function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }
596
+
597
+ // (public) 0 if this == 0, 1 if this > 0
598
+ function bnSigNum() {
599
+ if(this.s < 0) return -1;
600
+ else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
601
+ else return 1;
602
+ }
603
+
604
+ // (protected) convert to radix string
605
+ function bnpToRadix(b) {
606
+ if(b == null) b = 10;
607
+ if(this.signum() == 0 || b < 2 || b > 36) return "0";
608
+ var cs = this.chunkSize(b);
609
+ var a = Math.pow(b,cs);
610
+ var d = nbv(a), y = nbi(), z = nbi(), r = "";
611
+ this.divRemTo(d,y,z);
612
+ while(y.signum() > 0) {
613
+ r = (a+z.intValue()).toString(b).substr(1) + r;
614
+ y.divRemTo(d,y,z);
615
+ }
616
+ return z.intValue().toString(b) + r;
617
+ }
618
+
619
+ // (protected) convert from radix string
620
+ function bnpFromRadix(s,b) {
621
+ this.fromInt(0);
622
+ if(b == null) b = 10;
623
+ var cs = this.chunkSize(b);
624
+ var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
625
+ for(var i = 0; i < s.length; ++i) {
626
+ var x = intAt(s,i);
627
+ if(x < 0) {
628
+ if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
629
+ continue;
630
+ }
631
+ w = b*w+x;
632
+ if(++j >= cs) {
633
+ this.dMultiply(d);
634
+ this.dAddOffset(w,0);
635
+ j = 0;
636
+ w = 0;
637
+ }
638
+ }
639
+ if(j > 0) {
640
+ this.dMultiply(Math.pow(b,j));
641
+ this.dAddOffset(w,0);
642
+ }
643
+ if(mi) BigInteger.ZERO.subTo(this,this);
644
+ }
645
+
646
+ // (protected) alternate constructor
647
+ function bnpFromNumber(a,b,c) {
648
+ if("number" == typeof b) {
649
+ // new BigInteger(int,int,RNG)
650
+ if(a < 2) this.fromInt(1);
651
+ else {
652
+ this.fromNumber(a,c);
653
+ if(!this.testBit(a-1)) // force MSB set
654
+ this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);
655
+ if(this.isEven()) this.dAddOffset(1,0); // force odd
656
+ while(!this.isProbablePrime(b)) {
657
+ this.dAddOffset(2,0);
658
+ if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);
659
+ }
660
+ }
661
+ }
662
+ else {
663
+ // new BigInteger(int,RNG)
664
+ var x = new Array(), t = a&7;
665
+ x.length = (a>>3)+1;
666
+ b.nextBytes(x);
667
+ if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;
668
+ this.fromString(x,256);
669
+ }
670
+ }
671
+
672
+ // (public) convert to bigendian byte array
673
+ function bnToByteArray() {
674
+ var i = this.t, r = new Array();
675
+ r[0] = this.s;
676
+ var p = this.DB-(i*this.DB)%8, d, k = 0;
677
+ if(i-- > 0) {
678
+ if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p)
679
+ r[k++] = d|(this.s<<(this.DB-p));
680
+ while(i >= 0) {
681
+ if(p < 8) {
682
+ d = (this[i]&((1<<p)-1))<<(8-p);
683
+ d |= this[--i]>>(p+=this.DB-8);
684
+ }
685
+ else {
686
+ d = (this[i]>>(p-=8))&0xff;
687
+ if(p <= 0) { p += this.DB; --i; }
688
+ }
689
+ if((d&0x80) != 0) d |= -256;
690
+ if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
691
+ if(k > 0 || d != this.s) r[k++] = d;
692
+ }
693
+ }
694
+ return r;
695
+ }
696
+
697
+ function bnEquals(a) { return(this.compareTo(a)==0); }
698
+ function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
699
+ function bnMax(a) { return(this.compareTo(a)>0)?this:a; }
700
+
701
+ // (protected) r = this op a (bitwise)
702
+ function bnpBitwiseTo(a,op,r) {
703
+ var i, f, m = Math.min(a.t,this.t);
704
+ for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]);
705
+ if(a.t < this.t) {
706
+ f = a.s&this.DM;
707
+ for(i = m; i < this.t; ++i) r[i] = op(this[i],f);
708
+ r.t = this.t;
709
+ }
710
+ else {
711
+ f = this.s&this.DM;
712
+ for(i = m; i < a.t; ++i) r[i] = op(f,a[i]);
713
+ r.t = a.t;
714
+ }
715
+ r.s = op(this.s,a.s);
716
+ r.clamp();
717
+ }
718
+
719
+ // (public) this & a
720
+ function op_and(x,y) { return x&y; }
721
+ function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }
722
+
723
+ // (public) this | a
724
+ function op_or(x,y) { return x|y; }
725
+ function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }
726
+
727
+ // (public) this ^ a
728
+ function op_xor(x,y) { return x^y; }
729
+ function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }
730
+
731
+ // (public) this & ~a
732
+ function op_andnot(x,y) { return x&~y; }
733
+ function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }
734
+
735
+ // (public) ~this
736
+ function bnNot() {
737
+ var r = nbi();
738
+ for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i];
739
+ r.t = this.t;
740
+ r.s = ~this.s;
741
+ return r;
742
+ }
743
+
744
+ // (public) this << n
745
+ function bnShiftLeft(n) {
746
+ var r = nbi();
747
+ if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
748
+ return r;
749
+ }
750
+
751
+ // (public) this >> n
752
+ function bnShiftRight(n) {
753
+ var r = nbi();
754
+ if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
755
+ return r;
756
+ }
757
+
758
+ // return index of lowest 1-bit in x, x < 2^31
759
+ function lbit(x) {
760
+ if(x == 0) return -1;
761
+ var r = 0;
762
+ if((x&0xffff) == 0) { x >>= 16; r += 16; }
763
+ if((x&0xff) == 0) { x >>= 8; r += 8; }
764
+ if((x&0xf) == 0) { x >>= 4; r += 4; }
765
+ if((x&3) == 0) { x >>= 2; r += 2; }
766
+ if((x&1) == 0) ++r;
767
+ return r;
768
+ }
769
+
770
+ // (public) returns index of lowest 1-bit (or -1 if none)
771
+ function bnGetLowestSetBit() {
772
+ for(var i = 0; i < this.t; ++i)
773
+ if(this[i] != 0) return i*this.DB+lbit(this[i]);
774
+ if(this.s < 0) return this.t*this.DB;
775
+ return -1;
776
+ }
777
+
778
+ // return number of 1 bits in x
779
+ function cbit(x) {
780
+ var r = 0;
781
+ while(x != 0) { x &= x-1; ++r; }
782
+ return r;
783
+ }
784
+
785
+ // (public) return number of set bits
786
+ function bnBitCount() {
787
+ var r = 0, x = this.s&this.DM;
788
+ for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x);
789
+ return r;
790
+ }
791
+
792
+ // (public) true iff nth bit is set
793
+ function bnTestBit(n) {
794
+ var j = Math.floor(n/this.DB);
795
+ if(j >= this.t) return(this.s!=0);
796
+ return((this[j]&(1<<(n%this.DB)))!=0);
797
+ }
798
+
799
+ // (protected) this op (1<<n)
800
+ function bnpChangeBit(n,op) {
801
+ var r = BigInteger.ONE.shiftLeft(n);
802
+ this.bitwiseTo(r,op,r);
803
+ return r;
804
+ }
805
+
806
+ // (public) this | (1<<n)
807
+ function bnSetBit(n) { return this.changeBit(n,op_or); }
808
+
809
+ // (public) this & ~(1<<n)
810
+ function bnClearBit(n) { return this.changeBit(n,op_andnot); }
811
+
812
+ // (public) this ^ (1<<n)
813
+ function bnFlipBit(n) { return this.changeBit(n,op_xor); }
814
+
815
+ // (protected) r = this + a
816
+ function bnpAddTo(a,r) {
817
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
818
+ while(i < m) {
819
+ c += this[i]+a[i];
820
+ r[i++] = c&this.DM;
821
+ c >>= this.DB;
822
+ }
823
+ if(a.t < this.t) {
824
+ c += a.s;
825
+ while(i < this.t) {
826
+ c += this[i];
827
+ r[i++] = c&this.DM;
828
+ c >>= this.DB;
829
+ }
830
+ c += this.s;
831
+ }
832
+ else {
833
+ c += this.s;
834
+ while(i < a.t) {
835
+ c += a[i];
836
+ r[i++] = c&this.DM;
837
+ c >>= this.DB;
838
+ }
839
+ c += a.s;
840
+ }
841
+ r.s = (c<0)?-1:0;
842
+ if(c > 0) r[i++] = c;
843
+ else if(c < -1) r[i++] = this.DV+c;
844
+ r.t = i;
845
+ r.clamp();
846
+ }
847
+
848
+ // (public) this + a
849
+ function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }
850
+
851
+ // (public) this - a
852
+ function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }
853
+
854
+ // (public) this * a
855
+ function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }
856
+
857
+ // (public) this^2
858
+ function bnSquare() { var r = nbi(); this.squareTo(r); return r; }
859
+
860
+ // (public) this / a
861
+ function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }
862
+
863
+ // (public) this % a
864
+ function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }
865
+
866
+ // (public) [this/a,this%a]
867
+ function bnDivideAndRemainder(a) {
868
+ var q = nbi(), r = nbi();
869
+ this.divRemTo(a,q,r);
870
+ return new Array(q,r);
871
+ }
872
+
873
+ // (protected) this *= n, this >= 0, 1 < n < DV
874
+ function bnpDMultiply(n) {
875
+ this[this.t] = this.am(0,n-1,this,0,0,this.t);
876
+ ++this.t;
877
+ this.clamp();
878
+ }
879
+
880
+ // (protected) this += n << w words, this >= 0
881
+ function bnpDAddOffset(n,w) {
882
+ if(n == 0) return;
883
+ while(this.t <= w) this[this.t++] = 0;
884
+ this[w] += n;
885
+ while(this[w] >= this.DV) {
886
+ this[w] -= this.DV;
887
+ if(++w >= this.t) this[this.t++] = 0;
888
+ ++this[w];
889
+ }
890
+ }
891
+
892
+ // A "null" reducer
893
+ function NullExp() {}
894
+ function nNop(x) { return x; }
895
+ function nMulTo(x,y,r) { x.multiplyTo(y,r); }
896
+ function nSqrTo(x,r) { x.squareTo(r); }
897
+
898
+ NullExp.prototype.convert = nNop;
899
+ NullExp.prototype.revert = nNop;
900
+ NullExp.prototype.mulTo = nMulTo;
901
+ NullExp.prototype.sqrTo = nSqrTo;
902
+
903
+ // (public) this^e
904
+ function bnPow(e) { return this.exp(e,new NullExp()); }
905
+
906
+ // (protected) r = lower n words of "this * a", a.t <= n
907
+ // "this" should be the larger one if appropriate.
908
+ function bnpMultiplyLowerTo(a,n,r) {
909
+ var i = Math.min(this.t+a.t,n);
910
+ r.s = 0; // assumes a,this >= 0
911
+ r.t = i;
912
+ while(i > 0) r[--i] = 0;
913
+ var j;
914
+ for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t);
915
+ for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i);
916
+ r.clamp();
917
+ }
918
+
919
+ // (protected) r = "this * a" without lower n words, n > 0
920
+ // "this" should be the larger one if appropriate.
921
+ function bnpMultiplyUpperTo(a,n,r) {
922
+ --n;
923
+ var i = r.t = this.t+a.t-n;
924
+ r.s = 0; // assumes a,this >= 0
925
+ while(--i >= 0) r[i] = 0;
926
+ for(i = Math.max(n-this.t,0); i < a.t; ++i)
927
+ r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n);
928
+ r.clamp();
929
+ r.drShiftTo(1,r);
930
+ }
931
+
932
+ // Barrett modular reduction
933
+ function Barrett(m) {
934
+ // setup Barrett
935
+ this.r2 = nbi();
936
+ this.q3 = nbi();
937
+ BigInteger.ONE.dlShiftTo(2*m.t,this.r2);
938
+ this.mu = this.r2.divide(m);
939
+ this.m = m;
940
+ }
941
+
942
+ function barrettConvert(x) {
943
+ if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);
944
+ else if(x.compareTo(this.m) < 0) return x;
945
+ else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }
946
+ }
947
+
948
+ function barrettRevert(x) { return x; }
949
+
950
+ // x = x mod m (HAC 14.42)
951
+ function barrettReduce(x) {
952
+ x.drShiftTo(this.m.t-1,this.r2);
953
+ if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }
954
+ this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);
955
+ this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);
956
+ while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);
957
+ x.subTo(this.r2,x);
958
+ while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
959
+ }
960
+
961
+ // r = x^2 mod m; x != r
962
+ function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
963
+
964
+ // r = x*y mod m; x,y != r
965
+ function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
966
+
967
+ Barrett.prototype.convert = barrettConvert;
968
+ Barrett.prototype.revert = barrettRevert;
969
+ Barrett.prototype.reduce = barrettReduce;
970
+ Barrett.prototype.mulTo = barrettMulTo;
971
+ Barrett.prototype.sqrTo = barrettSqrTo;
972
+
973
+ // (public) this^e % m (HAC 14.85)
974
+ function bnModPow(e,m) {
975
+ var i = e.bitLength(), k, r = nbv(1), z;
976
+ if(i <= 0) return r;
977
+ else if(i < 18) k = 1;
978
+ else if(i < 48) k = 3;
979
+ else if(i < 144) k = 4;
980
+ else if(i < 768) k = 5;
981
+ else k = 6;
982
+ if(i < 8)
983
+ z = new Classic(m);
984
+ else if(m.isEven())
985
+ z = new Barrett(m);
986
+ else
987
+ z = new Montgomery(m);
988
+
989
+ // precomputation
990
+ var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;
991
+ g[1] = z.convert(this);
992
+ if(k > 1) {
993
+ var g2 = nbi();
994
+ z.sqrTo(g[1],g2);
995
+ while(n <= km) {
996
+ g[n] = nbi();
997
+ z.mulTo(g2,g[n-2],g[n]);
998
+ n += 2;
999
+ }
1000
+ }
1001
+
1002
+ var j = e.t-1, w, is1 = true, r2 = nbi(), t;
1003
+ i = nbits(e[j])-1;
1004
+ while(j >= 0) {
1005
+ if(i >= k1) w = (e[j]>>(i-k1))&km;
1006
+ else {
1007
+ w = (e[j]&((1<<(i+1))-1))<<(k1-i);
1008
+ if(j > 0) w |= e[j-1]>>(this.DB+i-k1);
1009
+ }
1010
+
1011
+ n = k;
1012
+ while((w&1) == 0) { w >>= 1; --n; }
1013
+ if((i -= n) < 0) { i += this.DB; --j; }
1014
+ if(is1) { // ret == 1, don't bother squaring or multiplying it
1015
+ g[w].copyTo(r);
1016
+ is1 = false;
1017
+ }
1018
+ else {
1019
+ while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }
1020
+ if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }
1021
+ z.mulTo(r2,g[w],r);
1022
+ }
1023
+
1024
+ while(j >= 0 && (e[j]&(1<<i)) == 0) {
1025
+ z.sqrTo(r,r2); t = r; r = r2; r2 = t;
1026
+ if(--i < 0) { i = this.DB-1; --j; }
1027
+ }
1028
+ }
1029
+ return z.revert(r);
1030
+ }
1031
+
1032
+ // (public) gcd(this,a) (HAC 14.54)
1033
+ function bnGCD(a) {
1034
+ var x = (this.s<0)?this.negate():this.clone();
1035
+ var y = (a.s<0)?a.negate():a.clone();
1036
+ if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }
1037
+ var i = x.getLowestSetBit(), g = y.getLowestSetBit();
1038
+ if(g < 0) return x;
1039
+ if(i < g) g = i;
1040
+ if(g > 0) {
1041
+ x.rShiftTo(g,x);
1042
+ y.rShiftTo(g,y);
1043
+ }
1044
+ while(x.signum() > 0) {
1045
+ if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);
1046
+ if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);
1047
+ if(x.compareTo(y) >= 0) {
1048
+ x.subTo(y,x);
1049
+ x.rShiftTo(1,x);
1050
+ }
1051
+ else {
1052
+ y.subTo(x,y);
1053
+ y.rShiftTo(1,y);
1054
+ }
1055
+ }
1056
+ if(g > 0) y.lShiftTo(g,y);
1057
+ return y;
1058
+ }
1059
+
1060
+ // (protected) this % n, n < 2^26
1061
+ function bnpModInt(n) {
1062
+ if(n <= 0) return 0;
1063
+ var d = this.DV%n, r = (this.s<0)?n-1:0;
1064
+ if(this.t > 0)
1065
+ if(d == 0) r = this[0]%n;
1066
+ else for(var i = this.t-1; i >= 0; --i) r = (d*r+this[i])%n;
1067
+ return r;
1068
+ }
1069
+
1070
+ // (public) 1/this % m (HAC 14.61)
1071
+ function bnModInverse(m) {
1072
+ var ac = m.isEven();
1073
+ if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;
1074
+ var u = m.clone(), v = this.clone();
1075
+ var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);
1076
+ while(u.signum() != 0) {
1077
+ while(u.isEven()) {
1078
+ u.rShiftTo(1,u);
1079
+ if(ac) {
1080
+ if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }
1081
+ a.rShiftTo(1,a);
1082
+ }
1083
+ else if(!b.isEven()) b.subTo(m,b);
1084
+ b.rShiftTo(1,b);
1085
+ }
1086
+ while(v.isEven()) {
1087
+ v.rShiftTo(1,v);
1088
+ if(ac) {
1089
+ if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }
1090
+ c.rShiftTo(1,c);
1091
+ }
1092
+ else if(!d.isEven()) d.subTo(m,d);
1093
+ d.rShiftTo(1,d);
1094
+ }
1095
+ if(u.compareTo(v) >= 0) {
1096
+ u.subTo(v,u);
1097
+ if(ac) a.subTo(c,a);
1098
+ b.subTo(d,b);
1099
+ }
1100
+ else {
1101
+ v.subTo(u,v);
1102
+ if(ac) c.subTo(a,c);
1103
+ d.subTo(b,d);
1104
+ }
1105
+ }
1106
+ if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;
1107
+ if(d.compareTo(m) >= 0) return d.subtract(m);
1108
+ if(d.signum() < 0) d.addTo(m,d); else return d;
1109
+ if(d.signum() < 0) return d.add(m); else return d;
1110
+ }
1111
+
1112
+ var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997];
1113
+ var lplim = (1<<26)/lowprimes[lowprimes.length-1];
1114
+
1115
+ // (public) test primality with certainty >= 1-.5^t
1116
+ function bnIsProbablePrime(t) {
1117
+ var i, x = this.abs();
1118
+ if(x.t == 1 && x[0] <= lowprimes[lowprimes.length-1]) {
1119
+ for(i = 0; i < lowprimes.length; ++i)
1120
+ if(x[0] == lowprimes[i]) return true;
1121
+ return false;
1122
+ }
1123
+ if(x.isEven()) return false;
1124
+ i = 1;
1125
+ while(i < lowprimes.length) {
1126
+ var m = lowprimes[i], j = i+1;
1127
+ while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];
1128
+ m = x.modInt(m);
1129
+ while(i < j) if(m%lowprimes[i++] == 0) return false;
1130
+ }
1131
+ return x.millerRabin(t);
1132
+ }
1133
+
1134
+ // (protected) true if probably prime (HAC 4.24, Miller-Rabin)
1135
+ function bnpMillerRabin(t) {
1136
+ var n1 = this.subtract(BigInteger.ONE);
1137
+ var k = n1.getLowestSetBit();
1138
+ if(k <= 0) return false;
1139
+ var r = n1.shiftRight(k);
1140
+ t = (t+1)>>1;
1141
+ if(t > lowprimes.length) t = lowprimes.length;
1142
+ var a = nbi();
1143
+ for(var i = 0; i < t; ++i) {
1144
+ //Pick bases at random, instead of starting at 2
1145
+ a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);
1146
+ var y = a.modPow(r,this);
1147
+ if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {
1148
+ var j = 1;
1149
+ while(j++ < k && y.compareTo(n1) != 0) {
1150
+ y = y.modPowInt(2,this);
1151
+ if(y.compareTo(BigInteger.ONE) == 0) return false;
1152
+ }
1153
+ if(y.compareTo(n1) != 0) return false;
1154
+ }
1155
+ }
1156
+ return true;
1157
+ }
1158
+
1159
+ // protected
1160
+ BigInteger.prototype.chunkSize = bnpChunkSize;
1161
+ BigInteger.prototype.toRadix = bnpToRadix;
1162
+ BigInteger.prototype.fromRadix = bnpFromRadix;
1163
+ BigInteger.prototype.fromNumber = bnpFromNumber;
1164
+ BigInteger.prototype.bitwiseTo = bnpBitwiseTo;
1165
+ BigInteger.prototype.changeBit = bnpChangeBit;
1166
+ BigInteger.prototype.addTo = bnpAddTo;
1167
+ BigInteger.prototype.dMultiply = bnpDMultiply;
1168
+ BigInteger.prototype.dAddOffset = bnpDAddOffset;
1169
+ BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;
1170
+ BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;
1171
+ BigInteger.prototype.modInt = bnpModInt;
1172
+ BigInteger.prototype.millerRabin = bnpMillerRabin;
1173
+
1174
+ // public
1175
+ BigInteger.prototype.clone = bnClone;
1176
+ BigInteger.prototype.intValue = bnIntValue;
1177
+ BigInteger.prototype.byteValue = bnByteValue;
1178
+ BigInteger.prototype.shortValue = bnShortValue;
1179
+ BigInteger.prototype.signum = bnSigNum;
1180
+ BigInteger.prototype.toByteArray = bnToByteArray;
1181
+ BigInteger.prototype.equals = bnEquals;
1182
+ BigInteger.prototype.min = bnMin;
1183
+ BigInteger.prototype.max = bnMax;
1184
+ BigInteger.prototype.and = bnAnd;
1185
+ BigInteger.prototype.or = bnOr;
1186
+ BigInteger.prototype.xor = bnXor;
1187
+ BigInteger.prototype.andNot = bnAndNot;
1188
+ BigInteger.prototype.not = bnNot;
1189
+ BigInteger.prototype.shiftLeft = bnShiftLeft;
1190
+ BigInteger.prototype.shiftRight = bnShiftRight;
1191
+ BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;
1192
+ BigInteger.prototype.bitCount = bnBitCount;
1193
+ BigInteger.prototype.testBit = bnTestBit;
1194
+ BigInteger.prototype.setBit = bnSetBit;
1195
+ BigInteger.prototype.clearBit = bnClearBit;
1196
+ BigInteger.prototype.flipBit = bnFlipBit;
1197
+ BigInteger.prototype.add = bnAdd;
1198
+ BigInteger.prototype.subtract = bnSubtract;
1199
+ BigInteger.prototype.multiply = bnMultiply;
1200
+ BigInteger.prototype.divide = bnDivide;
1201
+ BigInteger.prototype.remainder = bnRemainder;
1202
+ BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;
1203
+ BigInteger.prototype.modPow = bnModPow;
1204
+ BigInteger.prototype.modInverse = bnModInverse;
1205
+ BigInteger.prototype.pow = bnPow;
1206
+ BigInteger.prototype.gcd = bnGCD;
1207
+ BigInteger.prototype.isProbablePrime = bnIsProbablePrime;
1208
+
1209
+ // JSBN-specific extension
1210
+ BigInteger.prototype.square = bnSquare;
1211
+
1212
+ // Expose the Barrett function
1213
+ BigInteger.prototype.Barrett = Barrett
1214
+
1215
+ // BigInteger interfaces not implemented in jsbn:
1216
+
1217
+ // BigInteger(int signum, byte[] magnitude)
1218
+ // double doubleValue()
1219
+ // float floatValue()
1220
+ // int hashCode()
1221
+ // long longValue()
1222
+ // static BigInteger valueOf(long val)
1223
+
1224
+ // Random number generator - requires a PRNG backend, e.g. prng4.js
1225
+
1226
+ // For best results, put code like
1227
+ // <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
1228
+ // in your main HTML document.
1229
+
1230
+ var rng_state;
1231
+ var rng_pool;
1232
+ var rng_pptr;
1233
+
1234
+ // Mix in a 32-bit integer into the pool
1235
+ function rng_seed_int(x) {
1236
+ rng_pool[rng_pptr++] ^= x & 255;
1237
+ rng_pool[rng_pptr++] ^= (x >> 8) & 255;
1238
+ rng_pool[rng_pptr++] ^= (x >> 16) & 255;
1239
+ rng_pool[rng_pptr++] ^= (x >> 24) & 255;
1240
+ if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;
1241
+ }
1242
+
1243
+ // Mix in the current time (w/milliseconds) into the pool
1244
+ function rng_seed_time() {
1245
+ rng_seed_int(new Date().getTime());
1246
+ }
1247
+
1248
+ // Initialize the pool with junk if needed.
1249
+ if(rng_pool == null) {
1250
+ rng_pool = new Array();
1251
+ rng_pptr = 0;
1252
+ var t;
1253
+ if(typeof window !== "undefined" && window.crypto) {
1254
+ if (window.crypto.getRandomValues) {
1255
+ // Use webcrypto if available
1256
+ var ua = new Uint8Array(32);
1257
+ window.crypto.getRandomValues(ua);
1258
+ for(t = 0; t < 32; ++t)
1259
+ rng_pool[rng_pptr++] = ua[t];
1260
+ }
1261
+ else if(navigator.appName == "Netscape" && navigator.appVersion < "5") {
1262
+ // Extract entropy (256 bits) from NS4 RNG if available
1263
+ var z = window.crypto.random(32);
1264
+ for(t = 0; t < z.length; ++t)
1265
+ rng_pool[rng_pptr++] = z.charCodeAt(t) & 255;
1266
+ }
1267
+ }
1268
+ while(rng_pptr < rng_psize) { // extract some randomness from Math.random()
1269
+ t = Math.floor(65536 * Math.random());
1270
+ rng_pool[rng_pptr++] = t >>> 8;
1271
+ rng_pool[rng_pptr++] = t & 255;
1272
+ }
1273
+ rng_pptr = 0;
1274
+ rng_seed_time();
1275
+ //rng_seed_int(window.screenX);
1276
+ //rng_seed_int(window.screenY);
1277
+ }
1278
+
1279
+ function rng_get_byte() {
1280
+ if(rng_state == null) {
1281
+ rng_seed_time();
1282
+ rng_state = prng_newstate();
1283
+ rng_state.init(rng_pool);
1284
+ for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)
1285
+ rng_pool[rng_pptr] = 0;
1286
+ rng_pptr = 0;
1287
+ //rng_pool = null;
1288
+ }
1289
+ // TODO: allow reseeding after first request
1290
+ return rng_state.next();
1291
+ }
1292
+
1293
+ function rng_get_bytes(ba) {
1294
+ var i;
1295
+ for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();
1296
+ }
1297
+
1298
+ function SecureRandom() {}
1299
+
1300
+ SecureRandom.prototype.nextBytes = rng_get_bytes;
1301
+
1302
+ // prng4.js - uses Arcfour as a PRNG
1303
+
1304
+ function Arcfour() {
1305
+ this.i = 0;
1306
+ this.j = 0;
1307
+ this.S = new Array();
1308
+ }
1309
+
1310
+ // Initialize arcfour context from key, an array of ints, each from [0..255]
1311
+ function ARC4init(key) {
1312
+ var i, j, t;
1313
+ for(i = 0; i < 256; ++i)
1314
+ this.S[i] = i;
1315
+ j = 0;
1316
+ for(i = 0; i < 256; ++i) {
1317
+ j = (j + this.S[i] + key[i % key.length]) & 255;
1318
+ t = this.S[i];
1319
+ this.S[i] = this.S[j];
1320
+ this.S[j] = t;
1321
+ }
1322
+ this.i = 0;
1323
+ this.j = 0;
1324
+ }
1325
+
1326
+ function ARC4next() {
1327
+ var t;
1328
+ this.i = (this.i + 1) & 255;
1329
+ this.j = (this.j + this.S[this.i]) & 255;
1330
+ t = this.S[this.i];
1331
+ this.S[this.i] = this.S[this.j];
1332
+ this.S[this.j] = t;
1333
+ return this.S[(t + this.S[this.i]) & 255];
1334
+ }
1335
+
1336
+ Arcfour.prototype.init = ARC4init;
1337
+ Arcfour.prototype.next = ARC4next;
1338
+
1339
+ // Plug in your RNG constructor here
1340
+ function prng_newstate() {
1341
+ return new Arcfour();
1342
+ }
1343
+
1344
+ // Pool size must be a multiple of 4 and greater than 32.
1345
+ // An array of bytes the size of the pool will be passed to init()
1346
+ var rng_psize = 256;
1347
+
1348
+ BigInteger.SecureRandom = SecureRandom;
1349
+ BigInteger.BigInteger = BigInteger;
1350
+ if (typeof exports !== 'undefined') {
1351
+ exports = module.exports = BigInteger;
1352
+ } else {
1353
+ this.BigInteger = BigInteger;
1354
+ this.SecureRandom = SecureRandom;
1355
+ }
1356
+
1357
+ }).call(this);