react-native-quick-crypto 1.0.0-beta.2 → 1.0.0-beta.21

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 (462) hide show
  1. package/QuickCrypto.podspec +143 -7
  2. package/README.md +12 -6
  3. package/android/CMakeLists.txt +82 -21
  4. package/android/build.gradle +47 -4
  5. package/android/src/main/cpp/cpp-adapter.cpp +3 -10
  6. package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +13 -10
  7. package/app.plugin.js +3 -0
  8. package/cpp/blake3/HybridBlake3.cpp +118 -0
  9. package/cpp/blake3/HybridBlake3.hpp +35 -0
  10. package/cpp/cipher/CCMCipher.cpp +199 -0
  11. package/cpp/cipher/CCMCipher.hpp +26 -0
  12. package/cpp/cipher/ChaCha20Cipher.cpp +97 -0
  13. package/cpp/cipher/ChaCha20Cipher.hpp +25 -0
  14. package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +170 -0
  15. package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +30 -0
  16. package/cpp/cipher/HybridCipher.cpp +322 -0
  17. package/cpp/cipher/HybridCipher.hpp +68 -0
  18. package/cpp/cipher/HybridCipherFactory.hpp +97 -0
  19. package/cpp/cipher/OCBCipher.cpp +55 -0
  20. package/cpp/cipher/OCBCipher.hpp +19 -0
  21. package/cpp/cipher/XSalsa20Cipher.cpp +61 -0
  22. package/cpp/cipher/XSalsa20Cipher.hpp +33 -0
  23. package/cpp/ec/HybridEcKeyPair.cpp +428 -0
  24. package/cpp/ec/HybridEcKeyPair.hpp +48 -0
  25. package/cpp/ed25519/HybridEdKeyPair.cpp +300 -0
  26. package/cpp/ed25519/HybridEdKeyPair.hpp +63 -0
  27. package/cpp/hash/HybridHash.cpp +185 -0
  28. package/cpp/hash/HybridHash.hpp +43 -0
  29. package/cpp/hmac/HybridHmac.cpp +95 -0
  30. package/cpp/hmac/HybridHmac.hpp +31 -0
  31. package/cpp/keys/HybridKeyObjectHandle.cpp +243 -0
  32. package/cpp/keys/HybridKeyObjectHandle.hpp +42 -0
  33. package/cpp/keys/KeyObjectData.cpp +226 -0
  34. package/cpp/keys/KeyObjectData.hpp +71 -0
  35. package/cpp/keys/node.h +5 -0
  36. package/cpp/pbkdf2/HybridPbkdf2.cpp +51 -0
  37. package/cpp/pbkdf2/HybridPbkdf2.hpp +24 -0
  38. package/cpp/random/HybridRandom.cpp +32 -18
  39. package/cpp/random/HybridRandom.hpp +18 -30
  40. package/cpp/rsa/HybridRsaKeyPair.cpp +154 -0
  41. package/cpp/rsa/HybridRsaKeyPair.hpp +43 -0
  42. package/cpp/utils/Macros.hpp +68 -0
  43. package/cpp/utils/Utils.hpp +53 -1
  44. package/deps/blake3/.cargo/config.toml +2 -0
  45. package/deps/blake3/.git-blame-ignore-revs +2 -0
  46. package/deps/blake3/.github/workflows/build_b3sum.py +38 -0
  47. package/deps/blake3/.github/workflows/ci.yml +491 -0
  48. package/deps/blake3/.github/workflows/tag.yml +43 -0
  49. package/deps/blake3/.github/workflows/upload_github_release_asset.py +73 -0
  50. package/deps/blake3/CONTRIBUTING.md +31 -0
  51. package/deps/blake3/Cargo.toml +135 -0
  52. package/deps/blake3/LICENSE_A2 +202 -0
  53. package/deps/blake3/LICENSE_A2LLVM +219 -0
  54. package/deps/blake3/LICENSE_CC0 +121 -0
  55. package/deps/blake3/README.md +229 -0
  56. package/deps/blake3/b3sum/Cargo.lock +513 -0
  57. package/deps/blake3/b3sum/Cargo.toml +26 -0
  58. package/deps/blake3/b3sum/README.md +72 -0
  59. package/deps/blake3/b3sum/src/main.rs +564 -0
  60. package/deps/blake3/b3sum/src/unit_tests.rs +235 -0
  61. package/deps/blake3/b3sum/tests/cli_tests.rs +680 -0
  62. package/deps/blake3/b3sum/what_does_check_do.md +176 -0
  63. package/deps/blake3/benches/bench.rs +623 -0
  64. package/deps/blake3/build.rs +389 -0
  65. package/deps/blake3/c/CMakeLists.txt +383 -0
  66. package/deps/blake3/c/CMakePresets.json +73 -0
  67. package/deps/blake3/c/Makefile.testing +82 -0
  68. package/deps/blake3/c/README.md +403 -0
  69. package/deps/blake3/c/blake3-config.cmake.in +14 -0
  70. package/deps/blake3/c/blake3.c +650 -0
  71. package/deps/blake3/c/blake3.h +86 -0
  72. package/deps/blake3/c/blake3_avx2.c +326 -0
  73. package/deps/blake3/c/blake3_avx2_x86-64_unix.S +1815 -0
  74. package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +1817 -0
  75. package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +1828 -0
  76. package/deps/blake3/c/blake3_avx512.c +1388 -0
  77. package/deps/blake3/c/blake3_avx512_x86-64_unix.S +4824 -0
  78. package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +2615 -0
  79. package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +2634 -0
  80. package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +32 -0
  81. package/deps/blake3/c/blake3_c_rust_bindings/README.md +4 -0
  82. package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +477 -0
  83. package/deps/blake3/c/blake3_c_rust_bindings/build.rs +253 -0
  84. package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +31 -0
  85. package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +333 -0
  86. package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +696 -0
  87. package/deps/blake3/c/blake3_dispatch.c +332 -0
  88. package/deps/blake3/c/blake3_impl.h +333 -0
  89. package/deps/blake3/c/blake3_neon.c +366 -0
  90. package/deps/blake3/c/blake3_portable.c +160 -0
  91. package/deps/blake3/c/blake3_sse2.c +566 -0
  92. package/deps/blake3/c/blake3_sse2_x86-64_unix.S +2291 -0
  93. package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +2332 -0
  94. package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +2350 -0
  95. package/deps/blake3/c/blake3_sse41.c +560 -0
  96. package/deps/blake3/c/blake3_sse41_x86-64_unix.S +2028 -0
  97. package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +2069 -0
  98. package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +2089 -0
  99. package/deps/blake3/c/blake3_tbb.cpp +37 -0
  100. package/deps/blake3/c/dependencies/CMakeLists.txt +3 -0
  101. package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +28 -0
  102. package/deps/blake3/c/example.c +36 -0
  103. package/deps/blake3/c/example_tbb.c +57 -0
  104. package/deps/blake3/c/libblake3.pc.in +12 -0
  105. package/deps/blake3/c/main.c +166 -0
  106. package/deps/blake3/c/test.py +97 -0
  107. package/deps/blake3/media/B3.svg +70 -0
  108. package/deps/blake3/media/BLAKE3.svg +85 -0
  109. package/deps/blake3/media/speed.svg +1474 -0
  110. package/deps/blake3/reference_impl/Cargo.toml +8 -0
  111. package/deps/blake3/reference_impl/README.md +14 -0
  112. package/deps/blake3/reference_impl/reference_impl.rs +374 -0
  113. package/deps/blake3/src/ffi_avx2.rs +65 -0
  114. package/deps/blake3/src/ffi_avx512.rs +169 -0
  115. package/deps/blake3/src/ffi_neon.rs +82 -0
  116. package/deps/blake3/src/ffi_sse2.rs +126 -0
  117. package/deps/blake3/src/ffi_sse41.rs +126 -0
  118. package/deps/blake3/src/guts.rs +60 -0
  119. package/deps/blake3/src/hazmat.rs +704 -0
  120. package/deps/blake3/src/io.rs +64 -0
  121. package/deps/blake3/src/join.rs +92 -0
  122. package/deps/blake3/src/lib.rs +1835 -0
  123. package/deps/blake3/src/platform.rs +587 -0
  124. package/deps/blake3/src/portable.rs +198 -0
  125. package/deps/blake3/src/rust_avx2.rs +474 -0
  126. package/deps/blake3/src/rust_sse2.rs +775 -0
  127. package/deps/blake3/src/rust_sse41.rs +766 -0
  128. package/deps/blake3/src/test.rs +1049 -0
  129. package/deps/blake3/src/traits.rs +227 -0
  130. package/deps/blake3/src/wasm32_simd.rs +794 -0
  131. package/deps/blake3/test_vectors/Cargo.toml +19 -0
  132. package/deps/blake3/test_vectors/cross_test.sh +25 -0
  133. package/deps/blake3/test_vectors/src/bin/generate.rs +4 -0
  134. package/deps/blake3/test_vectors/src/lib.rs +350 -0
  135. package/deps/blake3/test_vectors/test_vectors.json +217 -0
  136. package/deps/blake3/tools/compiler_version/Cargo.toml +7 -0
  137. package/deps/blake3/tools/compiler_version/build.rs +6 -0
  138. package/deps/blake3/tools/compiler_version/src/main.rs +27 -0
  139. package/deps/blake3/tools/instruction_set_support/Cargo.toml +6 -0
  140. package/deps/blake3/tools/instruction_set_support/src/main.rs +10 -0
  141. package/deps/blake3/tools/release.md +16 -0
  142. package/deps/fastpbkdf2/fastpbkdf2.c +356 -0
  143. package/deps/fastpbkdf2/fastpbkdf2.h +68 -0
  144. package/deps/ncrypto/ncrypto.cc +4679 -0
  145. package/deps/ncrypto/ncrypto.h +1625 -0
  146. package/lib/commonjs/blake3.js +98 -0
  147. package/lib/commonjs/blake3.js.map +1 -0
  148. package/lib/commonjs/cipher.js +180 -0
  149. package/lib/commonjs/cipher.js.map +1 -0
  150. package/lib/commonjs/ec.js +344 -0
  151. package/lib/commonjs/ec.js.map +1 -0
  152. package/lib/commonjs/ed.js +185 -0
  153. package/lib/commonjs/ed.js.map +1 -0
  154. package/lib/commonjs/expo-plugin/@types.js +2 -0
  155. package/lib/commonjs/expo-plugin/@types.js.map +1 -0
  156. package/lib/commonjs/expo-plugin/withRNQC.js +25 -0
  157. package/lib/commonjs/expo-plugin/withRNQC.js.map +1 -0
  158. package/lib/commonjs/expo-plugin/withSodiumAndroid.js +25 -0
  159. package/lib/commonjs/expo-plugin/withSodiumAndroid.js.map +1 -0
  160. package/lib/commonjs/expo-plugin/withSodiumIos.js +26 -0
  161. package/lib/commonjs/expo-plugin/withSodiumIos.js.map +1 -0
  162. package/lib/commonjs/expo-plugin/withXCode.js +51 -0
  163. package/lib/commonjs/expo-plugin/withXCode.js.map +1 -0
  164. package/lib/commonjs/hash.js +215 -0
  165. package/lib/commonjs/hash.js.map +1 -0
  166. package/lib/commonjs/hmac.js +109 -0
  167. package/lib/commonjs/hmac.js.map +1 -0
  168. package/lib/commonjs/index.js +152 -32
  169. package/lib/commonjs/index.js.map +1 -1
  170. package/lib/commonjs/keys/classes.js +250 -0
  171. package/lib/commonjs/keys/classes.js.map +1 -0
  172. package/lib/commonjs/keys/generateKeyPair.js +102 -0
  173. package/lib/commonjs/keys/generateKeyPair.js.map +1 -0
  174. package/lib/commonjs/keys/index.js +89 -0
  175. package/lib/commonjs/keys/index.js.map +1 -0
  176. package/lib/commonjs/keys/signVerify.js +41 -0
  177. package/lib/commonjs/keys/signVerify.js.map +1 -0
  178. package/lib/commonjs/keys/utils.js +123 -0
  179. package/lib/commonjs/keys/utils.js.map +1 -0
  180. package/lib/commonjs/pbkdf2.js +89 -0
  181. package/lib/commonjs/pbkdf2.js.map +1 -0
  182. package/lib/commonjs/random.js +9 -3
  183. package/lib/commonjs/random.js.map +1 -1
  184. package/lib/commonjs/rsa.js +129 -0
  185. package/lib/commonjs/rsa.js.map +1 -0
  186. package/lib/commonjs/specs/blake3.nitro.js +6 -0
  187. package/lib/commonjs/specs/blake3.nitro.js.map +1 -0
  188. package/lib/commonjs/specs/cipher.nitro.js +6 -0
  189. package/lib/commonjs/specs/cipher.nitro.js.map +1 -0
  190. package/lib/commonjs/specs/ecKeyPair.nitro.js +6 -0
  191. package/lib/commonjs/specs/ecKeyPair.nitro.js.map +1 -0
  192. package/lib/commonjs/specs/edKeyPair.nitro.js +6 -0
  193. package/lib/commonjs/specs/edKeyPair.nitro.js.map +1 -0
  194. package/lib/commonjs/specs/hash.nitro.js +6 -0
  195. package/lib/commonjs/specs/hash.nitro.js.map +1 -0
  196. package/lib/commonjs/specs/hmac.nitro.js +6 -0
  197. package/lib/commonjs/specs/hmac.nitro.js.map +1 -0
  198. package/lib/commonjs/specs/keyObjectHandle.nitro.js +6 -0
  199. package/lib/commonjs/specs/keyObjectHandle.nitro.js.map +1 -0
  200. package/lib/commonjs/specs/pbkdf2.nitro.js +6 -0
  201. package/lib/commonjs/specs/pbkdf2.nitro.js.map +1 -0
  202. package/lib/commonjs/specs/rsaKeyPair.nitro.js +6 -0
  203. package/lib/commonjs/specs/rsaKeyPair.nitro.js.map +1 -0
  204. package/lib/commonjs/subtle.js +365 -0
  205. package/lib/commonjs/subtle.js.map +1 -0
  206. package/lib/commonjs/utils/cipher.js +64 -0
  207. package/lib/commonjs/utils/cipher.js.map +1 -0
  208. package/lib/commonjs/utils/conversion.js +140 -6
  209. package/lib/commonjs/utils/conversion.js.map +1 -1
  210. package/lib/commonjs/utils/errors.js +14 -0
  211. package/lib/commonjs/utils/errors.js.map +1 -0
  212. package/lib/commonjs/utils/hashnames.js +91 -0
  213. package/lib/commonjs/utils/hashnames.js.map +1 -0
  214. package/lib/commonjs/utils/index.js +65 -5
  215. package/lib/commonjs/utils/index.js.map +1 -1
  216. package/lib/commonjs/utils/noble.js +82 -0
  217. package/lib/commonjs/utils/noble.js.map +1 -0
  218. package/lib/commonjs/utils/types.js +52 -0
  219. package/lib/commonjs/utils/types.js.map +1 -1
  220. package/lib/commonjs/utils/validation.js +98 -0
  221. package/lib/commonjs/utils/validation.js.map +1 -0
  222. package/lib/module/blake3.js +90 -0
  223. package/lib/module/blake3.js.map +1 -0
  224. package/lib/module/cipher.js +173 -0
  225. package/lib/module/cipher.js.map +1 -0
  226. package/lib/module/ec.js +336 -0
  227. package/lib/module/ec.js.map +1 -0
  228. package/lib/module/ed.js +178 -0
  229. package/lib/module/ed.js.map +1 -0
  230. package/lib/module/expo-plugin/@types.js +2 -0
  231. package/lib/module/expo-plugin/@types.js.map +1 -0
  232. package/lib/module/expo-plugin/withRNQC.js +21 -0
  233. package/lib/module/expo-plugin/withRNQC.js.map +1 -0
  234. package/lib/module/expo-plugin/withSodiumAndroid.js +20 -0
  235. package/lib/module/expo-plugin/withSodiumAndroid.js.map +1 -0
  236. package/lib/module/expo-plugin/withSodiumIos.js +20 -0
  237. package/lib/module/expo-plugin/withSodiumIos.js.map +1 -0
  238. package/lib/module/expo-plugin/withXCode.js +46 -0
  239. package/lib/module/expo-plugin/withXCode.js.map +1 -0
  240. package/lib/module/hash.js +207 -0
  241. package/lib/module/hash.js.map +1 -0
  242. package/lib/module/hmac.js +104 -0
  243. package/lib/module/hmac.js.map +1 -0
  244. package/lib/module/index.js +33 -29
  245. package/lib/module/index.js.map +1 -1
  246. package/lib/module/keys/classes.js +241 -0
  247. package/lib/module/keys/classes.js.map +1 -0
  248. package/lib/module/keys/generateKeyPair.js +96 -0
  249. package/lib/module/keys/generateKeyPair.js.map +1 -0
  250. package/lib/module/keys/index.js +32 -0
  251. package/lib/module/keys/index.js.map +1 -0
  252. package/lib/module/keys/signVerify.js +41 -0
  253. package/lib/module/keys/signVerify.js.map +1 -0
  254. package/lib/module/keys/utils.js +114 -0
  255. package/lib/module/keys/utils.js.map +1 -0
  256. package/lib/module/pbkdf2.js +83 -0
  257. package/lib/module/pbkdf2.js.map +1 -0
  258. package/lib/module/random.js +7 -1
  259. package/lib/module/random.js.map +1 -1
  260. package/lib/module/rsa.js +123 -0
  261. package/lib/module/rsa.js.map +1 -0
  262. package/lib/module/specs/blake3.nitro.js +4 -0
  263. package/lib/module/specs/blake3.nitro.js.map +1 -0
  264. package/lib/module/specs/cipher.nitro.js +4 -0
  265. package/lib/module/specs/cipher.nitro.js.map +1 -0
  266. package/lib/module/specs/ecKeyPair.nitro.js +4 -0
  267. package/lib/module/specs/ecKeyPair.nitro.js.map +1 -0
  268. package/lib/module/specs/edKeyPair.nitro.js +4 -0
  269. package/lib/module/specs/edKeyPair.nitro.js.map +1 -0
  270. package/lib/module/specs/hash.nitro.js +4 -0
  271. package/lib/module/specs/hash.nitro.js.map +1 -0
  272. package/lib/module/specs/hmac.nitro.js +4 -0
  273. package/lib/module/specs/hmac.nitro.js.map +1 -0
  274. package/lib/module/specs/keyObjectHandle.nitro.js +4 -0
  275. package/lib/module/specs/keyObjectHandle.nitro.js.map +1 -0
  276. package/lib/module/specs/pbkdf2.nitro.js +4 -0
  277. package/lib/module/specs/pbkdf2.nitro.js.map +1 -0
  278. package/lib/module/specs/rsaKeyPair.nitro.js +4 -0
  279. package/lib/module/specs/rsaKeyPair.nitro.js.map +1 -0
  280. package/lib/module/subtle.js +360 -0
  281. package/lib/module/subtle.js.map +1 -0
  282. package/lib/module/utils/cipher.js +56 -0
  283. package/lib/module/utils/cipher.js.map +1 -0
  284. package/lib/module/utils/conversion.js +120 -8
  285. package/lib/module/utils/conversion.js.map +1 -1
  286. package/lib/module/utils/errors.js +10 -0
  287. package/lib/module/utils/errors.js.map +1 -0
  288. package/lib/module/utils/hashnames.js +89 -0
  289. package/lib/module/utils/hashnames.js.map +1 -0
  290. package/lib/module/utils/index.js +6 -5
  291. package/lib/module/utils/index.js.map +1 -1
  292. package/lib/module/utils/noble.js +76 -0
  293. package/lib/module/utils/noble.js.map +1 -0
  294. package/lib/module/utils/types.js +53 -0
  295. package/lib/module/utils/types.js.map +1 -1
  296. package/lib/module/utils/validation.js +87 -0
  297. package/lib/module/utils/validation.js.map +1 -0
  298. package/lib/tsconfig.tsbuildinfo +1 -1
  299. package/lib/typescript/blake3.d.ts +33 -0
  300. package/lib/typescript/blake3.d.ts.map +1 -0
  301. package/lib/typescript/cipher.d.ts +60 -0
  302. package/lib/typescript/cipher.d.ts.map +1 -0
  303. package/lib/typescript/ec.d.ts +13 -0
  304. package/lib/typescript/ec.d.ts.map +1 -0
  305. package/lib/typescript/ed.d.ts +43 -0
  306. package/lib/typescript/ed.d.ts.map +1 -0
  307. package/lib/typescript/expo-plugin/@types.d.ts +8 -0
  308. package/lib/typescript/expo-plugin/@types.d.ts.map +1 -0
  309. package/lib/typescript/expo-plugin/withRNQC.d.ts +4 -0
  310. package/lib/typescript/expo-plugin/withRNQC.d.ts.map +1 -0
  311. package/lib/typescript/expo-plugin/withSodiumAndroid.d.ts +4 -0
  312. package/lib/typescript/expo-plugin/withSodiumAndroid.d.ts.map +1 -0
  313. package/lib/typescript/expo-plugin/withSodiumIos.d.ts +4 -0
  314. package/lib/typescript/expo-plugin/withSodiumIos.d.ts.map +1 -0
  315. package/lib/typescript/expo-plugin/withXCode.d.ts +9 -0
  316. package/lib/typescript/expo-plugin/withXCode.d.ts.map +1 -0
  317. package/lib/typescript/hash.d.ts +122 -0
  318. package/lib/typescript/hash.d.ts.map +1 -0
  319. package/lib/typescript/hmac.d.ts +66 -0
  320. package/lib/typescript/hmac.d.ts.map +1 -0
  321. package/lib/typescript/index.d.ts +110 -9
  322. package/lib/typescript/index.d.ts.map +1 -1
  323. package/lib/typescript/keys/classes.d.ts +79 -0
  324. package/lib/typescript/keys/classes.d.ts.map +1 -0
  325. package/lib/typescript/keys/generateKeyPair.d.ts +6 -0
  326. package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -0
  327. package/lib/typescript/keys/index.d.ts +7 -0
  328. package/lib/typescript/keys/index.d.ts.map +1 -0
  329. package/lib/typescript/keys/signVerify.d.ts +1 -0
  330. package/lib/typescript/keys/signVerify.d.ts.map +1 -0
  331. package/lib/typescript/keys/utils.d.ts +34 -0
  332. package/lib/typescript/keys/utils.d.ts.map +1 -0
  333. package/lib/typescript/pbkdf2.d.ts +12 -0
  334. package/lib/typescript/pbkdf2.d.ts.map +1 -0
  335. package/lib/typescript/random.d.ts +11 -5
  336. package/lib/typescript/random.d.ts.map +1 -1
  337. package/lib/typescript/rsa.d.ts +10 -0
  338. package/lib/typescript/rsa.d.ts.map +1 -0
  339. package/lib/typescript/specs/blake3.nitro.d.ts +15 -0
  340. package/lib/typescript/specs/blake3.nitro.d.ts.map +1 -0
  341. package/lib/typescript/specs/cipher.nitro.d.ts +29 -0
  342. package/lib/typescript/specs/cipher.nitro.d.ts.map +1 -0
  343. package/lib/typescript/specs/ecKeyPair.nitro.d.ts +20 -0
  344. package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -0
  345. package/lib/typescript/specs/edKeyPair.nitro.d.ts +17 -0
  346. package/lib/typescript/specs/edKeyPair.nitro.d.ts.map +1 -0
  347. package/lib/typescript/specs/hash.nitro.d.ts +13 -0
  348. package/lib/typescript/specs/hash.nitro.d.ts.map +1 -0
  349. package/lib/typescript/specs/hmac.nitro.d.ts +10 -0
  350. package/lib/typescript/specs/hmac.nitro.d.ts.map +1 -0
  351. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +14 -0
  352. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -0
  353. package/lib/typescript/specs/pbkdf2.nitro.d.ts +9 -0
  354. package/lib/typescript/specs/pbkdf2.nitro.d.ts.map +1 -0
  355. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts +20 -0
  356. package/lib/typescript/specs/rsaKeyPair.nitro.d.ts.map +1 -0
  357. package/lib/typescript/subtle.d.ts +17 -0
  358. package/lib/typescript/subtle.d.ts.map +1 -0
  359. package/lib/typescript/utils/cipher.d.ts +7 -0
  360. package/lib/typescript/utils/cipher.d.ts.map +1 -0
  361. package/lib/typescript/utils/conversion.d.ts +24 -2
  362. package/lib/typescript/utils/conversion.d.ts.map +1 -1
  363. package/lib/typescript/utils/errors.d.ts +7 -0
  364. package/lib/typescript/utils/errors.d.ts.map +1 -0
  365. package/lib/typescript/utils/hashnames.d.ts +13 -0
  366. package/lib/typescript/utils/hashnames.d.ts.map +1 -0
  367. package/lib/typescript/utils/index.d.ts +6 -5
  368. package/lib/typescript/utils/index.d.ts.map +1 -1
  369. package/lib/typescript/utils/noble.d.ts +19 -0
  370. package/lib/typescript/utils/noble.d.ts.map +1 -0
  371. package/lib/typescript/utils/types.d.ts +252 -2
  372. package/lib/typescript/utils/types.d.ts.map +1 -1
  373. package/lib/typescript/utils/validation.d.ts +13 -0
  374. package/lib/typescript/utils/validation.d.ts.map +1 -0
  375. package/nitrogen/generated/.gitattributes +1 -0
  376. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +47 -4
  377. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +4 -3
  378. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +144 -0
  379. package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +25 -0
  380. package/nitrogen/generated/android/kotlin/com/margelo/nitro/crypto/QuickCryptoOnLoad.kt +35 -0
  381. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +11 -8
  382. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +11 -3
  383. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +5 -3
  384. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +16 -7
  385. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +135 -0
  386. package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +12 -0
  387. package/nitrogen/generated/shared/c++/CFRGKeyPairType.hpp +84 -0
  388. package/nitrogen/generated/shared/c++/CipherArgs.hpp +86 -0
  389. package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +28 -0
  390. package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +76 -0
  391. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.cpp +21 -0
  392. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +67 -0
  393. package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +28 -0
  394. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +76 -0
  395. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +29 -0
  396. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +77 -0
  397. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +30 -0
  398. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +75 -0
  399. package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +26 -0
  400. package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +75 -0
  401. package/nitrogen/generated/shared/c++/HybridHmacSpec.cpp +23 -0
  402. package/nitrogen/generated/shared/c++/HybridHmacSpec.hpp +66 -0
  403. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +26 -0
  404. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +92 -0
  405. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +22 -0
  406. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +66 -0
  407. package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +2 -3
  408. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +9 -6
  409. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +29 -0
  410. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +77 -0
  411. package/nitrogen/generated/shared/c++/JWK.hpp +161 -0
  412. package/nitrogen/generated/shared/c++/JWKkty.hpp +84 -0
  413. package/nitrogen/generated/shared/c++/JWKuse.hpp +76 -0
  414. package/nitrogen/generated/shared/c++/KFormatType.hpp +63 -0
  415. package/nitrogen/generated/shared/c++/KeyDetail.hpp +92 -0
  416. package/nitrogen/generated/shared/c++/KeyEncoding.hpp +64 -0
  417. package/nitrogen/generated/shared/c++/KeyObject.hpp +67 -0
  418. package/nitrogen/generated/shared/c++/KeyType.hpp +63 -0
  419. package/nitrogen/generated/shared/c++/KeyUsage.hpp +116 -0
  420. package/nitrogen/generated/shared/c++/NamedCurve.hpp +80 -0
  421. package/package.json +66 -39
  422. package/src/blake3.ts +123 -0
  423. package/src/cipher.ts +335 -0
  424. package/src/ec.ts +432 -0
  425. package/src/ed.ts +256 -0
  426. package/src/expo-plugin/@types.ts +7 -0
  427. package/src/expo-plugin/withRNQC.ts +23 -0
  428. package/src/expo-plugin/withSodiumAndroid.ts +24 -0
  429. package/src/expo-plugin/withSodiumIos.ts +30 -0
  430. package/src/expo-plugin/withXCode.ts +55 -0
  431. package/src/hash.ts +274 -0
  432. package/src/hmac.ts +135 -0
  433. package/src/index.ts +32 -29
  434. package/src/keys/classes.ts +317 -0
  435. package/src/keys/generateKeyPair.ts +145 -0
  436. package/src/keys/index.ts +52 -0
  437. package/src/keys/signVerify.ts +39 -0
  438. package/src/keys/utils.ts +190 -0
  439. package/src/pbkdf2.ts +154 -0
  440. package/src/random.ts +26 -23
  441. package/src/rsa.ts +176 -0
  442. package/src/specs/blake3.nitro.ts +12 -0
  443. package/src/specs/cipher.nitro.ts +25 -0
  444. package/src/specs/ecKeyPair.nitro.ts +38 -0
  445. package/src/specs/edKeyPair.nitro.ts +43 -0
  446. package/src/specs/hash.nitro.ts +10 -0
  447. package/src/specs/hmac.nitro.ts +7 -0
  448. package/src/specs/keyObjectHandle.nitro.ts +31 -0
  449. package/src/specs/pbkdf2.nitro.ts +18 -0
  450. package/src/specs/random.nitro.ts +2 -2
  451. package/src/specs/rsaKeyPair.nitro.ts +33 -0
  452. package/src/subtle.ts +614 -0
  453. package/src/utils/cipher.ts +60 -0
  454. package/src/utils/conversion.ts +143 -9
  455. package/src/utils/errors.ts +15 -0
  456. package/src/utils/hashnames.ts +98 -0
  457. package/src/utils/index.ts +6 -6
  458. package/src/utils/noble.ts +85 -0
  459. package/src/utils/types.ts +423 -3
  460. package/src/utils/validation.ts +130 -0
  461. package/ios/QuickCryptoOnLoad.mm +0 -19
  462. package/lib/module/package.json +0 -1
@@ -0,0 +1,1474 @@
1
+ <?xml version="1.0" encoding="utf-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <!-- Created with matplotlib (https://matplotlib.org/) -->
5
+ <svg height="331.389812pt" version="1.1" viewBox="0 0 449.761406 331.389812" width="449.761406pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
6
+ <defs>
7
+ <style type="text/css">
8
+ *{stroke-linecap:butt;stroke-linejoin:round;}
9
+ </style>
10
+ </defs>
11
+ <g id="figure_1">
12
+ <g id="patch_1">
13
+ <path d="M 0 331.389812
14
+ L 449.761406 331.389812
15
+ L 449.761406 0
16
+ L 0 0
17
+ z
18
+ " style="fill:#ffffff;"/>
19
+ </g>
20
+ <g id="axes_1">
21
+ <g id="patch_2">
22
+ <path d="M 71.443906 288.430125
23
+ L 428.563906 288.430125
24
+ L 428.563906 22.318125
25
+ L 71.443906 22.318125
26
+ z
27
+ " style="fill:#ffffff;"/>
28
+ </g>
29
+ <g id="matplotlib.axis_1">
30
+ <g id="xtick_1">
31
+ <g id="line2d_1">
32
+ <defs>
33
+ <path d="M 0 0
34
+ L 0 6
35
+ " id="me95d5351a6" style="stroke:#262626;stroke-width:1.25;"/>
36
+ </defs>
37
+ <g>
38
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="71.443906" xlink:href="#me95d5351a6" y="288.430125"/>
39
+ </g>
40
+ </g>
41
+ <g id="text_1">
42
+ <!-- 0 -->
43
+ <defs>
44
+ <path d="M 31.78125 66.40625
45
+ Q 24.171875 66.40625 20.328125 58.90625
46
+ Q 16.5 51.421875 16.5 36.375
47
+ Q 16.5 21.390625 20.328125 13.890625
48
+ Q 24.171875 6.390625 31.78125 6.390625
49
+ Q 39.453125 6.390625 43.28125 13.890625
50
+ Q 47.125 21.390625 47.125 36.375
51
+ Q 47.125 51.421875 43.28125 58.90625
52
+ Q 39.453125 66.40625 31.78125 66.40625
53
+ z
54
+ M 31.78125 74.21875
55
+ Q 44.046875 74.21875 50.515625 64.515625
56
+ Q 56.984375 54.828125 56.984375 36.375
57
+ Q 56.984375 17.96875 50.515625 8.265625
58
+ Q 44.046875 -1.421875 31.78125 -1.421875
59
+ Q 19.53125 -1.421875 13.0625 8.265625
60
+ Q 6.59375 17.96875 6.59375 36.375
61
+ Q 6.59375 54.828125 13.0625 64.515625
62
+ Q 19.53125 74.21875 31.78125 74.21875
63
+ z
64
+ " id="DejaVuSans-48"/>
65
+ </defs>
66
+ <g style="fill:#262626;" transform="translate(67.944531 306.288406)scale(0.11 -0.11)">
67
+ <use xlink:href="#DejaVuSans-48"/>
68
+ </g>
69
+ </g>
70
+ </g>
71
+ <g id="xtick_2">
72
+ <g id="line2d_2">
73
+ <g>
74
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="116.083906" xlink:href="#me95d5351a6" y="288.430125"/>
75
+ </g>
76
+ </g>
77
+ <g id="text_2">
78
+ <!-- 1000 -->
79
+ <defs>
80
+ <path d="M 12.40625 8.296875
81
+ L 28.515625 8.296875
82
+ L 28.515625 63.921875
83
+ L 10.984375 60.40625
84
+ L 10.984375 69.390625
85
+ L 28.421875 72.90625
86
+ L 38.28125 72.90625
87
+ L 38.28125 8.296875
88
+ L 54.390625 8.296875
89
+ L 54.390625 0
90
+ L 12.40625 0
91
+ z
92
+ " id="DejaVuSans-49"/>
93
+ </defs>
94
+ <g style="fill:#262626;" transform="translate(102.086406 306.288406)scale(0.11 -0.11)">
95
+ <use xlink:href="#DejaVuSans-49"/>
96
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
97
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
98
+ <use x="190.869141" xlink:href="#DejaVuSans-48"/>
99
+ </g>
100
+ </g>
101
+ </g>
102
+ <g id="xtick_3">
103
+ <g id="line2d_3">
104
+ <g>
105
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="160.723906" xlink:href="#me95d5351a6" y="288.430125"/>
106
+ </g>
107
+ </g>
108
+ <g id="text_3">
109
+ <!-- 2000 -->
110
+ <defs>
111
+ <path d="M 19.1875 8.296875
112
+ L 53.609375 8.296875
113
+ L 53.609375 0
114
+ L 7.328125 0
115
+ L 7.328125 8.296875
116
+ Q 12.9375 14.109375 22.625 23.890625
117
+ Q 32.328125 33.6875 34.8125 36.53125
118
+ Q 39.546875 41.84375 41.421875 45.53125
119
+ Q 43.3125 49.21875 43.3125 52.78125
120
+ Q 43.3125 58.59375 39.234375 62.25
121
+ Q 35.15625 65.921875 28.609375 65.921875
122
+ Q 23.96875 65.921875 18.8125 64.3125
123
+ Q 13.671875 62.703125 7.8125 59.421875
124
+ L 7.8125 69.390625
125
+ Q 13.765625 71.78125 18.9375 73
126
+ Q 24.125 74.21875 28.421875 74.21875
127
+ Q 39.75 74.21875 46.484375 68.546875
128
+ Q 53.21875 62.890625 53.21875 53.421875
129
+ Q 53.21875 48.921875 51.53125 44.890625
130
+ Q 49.859375 40.875 45.40625 35.40625
131
+ Q 44.1875 33.984375 37.640625 27.21875
132
+ Q 31.109375 20.453125 19.1875 8.296875
133
+ z
134
+ " id="DejaVuSans-50"/>
135
+ </defs>
136
+ <g style="fill:#262626;" transform="translate(146.726406 306.288406)scale(0.11 -0.11)">
137
+ <use xlink:href="#DejaVuSans-50"/>
138
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
139
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
140
+ <use x="190.869141" xlink:href="#DejaVuSans-48"/>
141
+ </g>
142
+ </g>
143
+ </g>
144
+ <g id="xtick_4">
145
+ <g id="line2d_4">
146
+ <g>
147
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="205.363906" xlink:href="#me95d5351a6" y="288.430125"/>
148
+ </g>
149
+ </g>
150
+ <g id="text_4">
151
+ <!-- 3000 -->
152
+ <defs>
153
+ <path d="M 40.578125 39.3125
154
+ Q 47.65625 37.796875 51.625 33
155
+ Q 55.609375 28.21875 55.609375 21.1875
156
+ Q 55.609375 10.40625 48.1875 4.484375
157
+ Q 40.765625 -1.421875 27.09375 -1.421875
158
+ Q 22.515625 -1.421875 17.65625 -0.515625
159
+ Q 12.796875 0.390625 7.625 2.203125
160
+ L 7.625 11.71875
161
+ Q 11.71875 9.328125 16.59375 8.109375
162
+ Q 21.484375 6.890625 26.8125 6.890625
163
+ Q 36.078125 6.890625 40.9375 10.546875
164
+ Q 45.796875 14.203125 45.796875 21.1875
165
+ Q 45.796875 27.640625 41.28125 31.265625
166
+ Q 36.765625 34.90625 28.71875 34.90625
167
+ L 20.21875 34.90625
168
+ L 20.21875 43.015625
169
+ L 29.109375 43.015625
170
+ Q 36.375 43.015625 40.234375 45.921875
171
+ Q 44.09375 48.828125 44.09375 54.296875
172
+ Q 44.09375 59.90625 40.109375 62.90625
173
+ Q 36.140625 65.921875 28.71875 65.921875
174
+ Q 24.65625 65.921875 20.015625 65.03125
175
+ Q 15.375 64.15625 9.8125 62.3125
176
+ L 9.8125 71.09375
177
+ Q 15.4375 72.65625 20.34375 73.4375
178
+ Q 25.25 74.21875 29.59375 74.21875
179
+ Q 40.828125 74.21875 47.359375 69.109375
180
+ Q 53.90625 64.015625 53.90625 55.328125
181
+ Q 53.90625 49.265625 50.4375 45.09375
182
+ Q 46.96875 40.921875 40.578125 39.3125
183
+ z
184
+ " id="DejaVuSans-51"/>
185
+ </defs>
186
+ <g style="fill:#262626;" transform="translate(191.366406 306.288406)scale(0.11 -0.11)">
187
+ <use xlink:href="#DejaVuSans-51"/>
188
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
189
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
190
+ <use x="190.869141" xlink:href="#DejaVuSans-48"/>
191
+ </g>
192
+ </g>
193
+ </g>
194
+ <g id="xtick_5">
195
+ <g id="line2d_5">
196
+ <g>
197
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="250.003906" xlink:href="#me95d5351a6" y="288.430125"/>
198
+ </g>
199
+ </g>
200
+ <g id="text_5">
201
+ <!-- 4000 -->
202
+ <defs>
203
+ <path d="M 37.796875 64.3125
204
+ L 12.890625 25.390625
205
+ L 37.796875 25.390625
206
+ z
207
+ M 35.203125 72.90625
208
+ L 47.609375 72.90625
209
+ L 47.609375 25.390625
210
+ L 58.015625 25.390625
211
+ L 58.015625 17.1875
212
+ L 47.609375 17.1875
213
+ L 47.609375 0
214
+ L 37.796875 0
215
+ L 37.796875 17.1875
216
+ L 4.890625 17.1875
217
+ L 4.890625 26.703125
218
+ z
219
+ " id="DejaVuSans-52"/>
220
+ </defs>
221
+ <g style="fill:#262626;" transform="translate(236.006406 306.288406)scale(0.11 -0.11)">
222
+ <use xlink:href="#DejaVuSans-52"/>
223
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
224
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
225
+ <use x="190.869141" xlink:href="#DejaVuSans-48"/>
226
+ </g>
227
+ </g>
228
+ </g>
229
+ <g id="xtick_6">
230
+ <g id="line2d_6">
231
+ <g>
232
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="294.643906" xlink:href="#me95d5351a6" y="288.430125"/>
233
+ </g>
234
+ </g>
235
+ <g id="text_6">
236
+ <!-- 5000 -->
237
+ <defs>
238
+ <path d="M 10.796875 72.90625
239
+ L 49.515625 72.90625
240
+ L 49.515625 64.59375
241
+ L 19.828125 64.59375
242
+ L 19.828125 46.734375
243
+ Q 21.96875 47.46875 24.109375 47.828125
244
+ Q 26.265625 48.1875 28.421875 48.1875
245
+ Q 40.625 48.1875 47.75 41.5
246
+ Q 54.890625 34.8125 54.890625 23.390625
247
+ Q 54.890625 11.625 47.5625 5.09375
248
+ Q 40.234375 -1.421875 26.90625 -1.421875
249
+ Q 22.3125 -1.421875 17.546875 -0.640625
250
+ Q 12.796875 0.140625 7.71875 1.703125
251
+ L 7.71875 11.625
252
+ Q 12.109375 9.234375 16.796875 8.0625
253
+ Q 21.484375 6.890625 26.703125 6.890625
254
+ Q 35.15625 6.890625 40.078125 11.328125
255
+ Q 45.015625 15.765625 45.015625 23.390625
256
+ Q 45.015625 31 40.078125 35.4375
257
+ Q 35.15625 39.890625 26.703125 39.890625
258
+ Q 22.75 39.890625 18.8125 39.015625
259
+ Q 14.890625 38.140625 10.796875 36.28125
260
+ z
261
+ " id="DejaVuSans-53"/>
262
+ </defs>
263
+ <g style="fill:#262626;" transform="translate(280.646406 306.288406)scale(0.11 -0.11)">
264
+ <use xlink:href="#DejaVuSans-53"/>
265
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
266
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
267
+ <use x="190.869141" xlink:href="#DejaVuSans-48"/>
268
+ </g>
269
+ </g>
270
+ </g>
271
+ <g id="xtick_7">
272
+ <g id="line2d_7">
273
+ <g>
274
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="339.283906" xlink:href="#me95d5351a6" y="288.430125"/>
275
+ </g>
276
+ </g>
277
+ <g id="text_7">
278
+ <!-- 6000 -->
279
+ <defs>
280
+ <path d="M 33.015625 40.375
281
+ Q 26.375 40.375 22.484375 35.828125
282
+ Q 18.609375 31.296875 18.609375 23.390625
283
+ Q 18.609375 15.53125 22.484375 10.953125
284
+ Q 26.375 6.390625 33.015625 6.390625
285
+ Q 39.65625 6.390625 43.53125 10.953125
286
+ Q 47.40625 15.53125 47.40625 23.390625
287
+ Q 47.40625 31.296875 43.53125 35.828125
288
+ Q 39.65625 40.375 33.015625 40.375
289
+ z
290
+ M 52.59375 71.296875
291
+ L 52.59375 62.3125
292
+ Q 48.875 64.0625 45.09375 64.984375
293
+ Q 41.3125 65.921875 37.59375 65.921875
294
+ Q 27.828125 65.921875 22.671875 59.328125
295
+ Q 17.53125 52.734375 16.796875 39.40625
296
+ Q 19.671875 43.65625 24.015625 45.921875
297
+ Q 28.375 48.1875 33.59375 48.1875
298
+ Q 44.578125 48.1875 50.953125 41.515625
299
+ Q 57.328125 34.859375 57.328125 23.390625
300
+ Q 57.328125 12.15625 50.6875 5.359375
301
+ Q 44.046875 -1.421875 33.015625 -1.421875
302
+ Q 20.359375 -1.421875 13.671875 8.265625
303
+ Q 6.984375 17.96875 6.984375 36.375
304
+ Q 6.984375 53.65625 15.1875 63.9375
305
+ Q 23.390625 74.21875 37.203125 74.21875
306
+ Q 40.921875 74.21875 44.703125 73.484375
307
+ Q 48.484375 72.75 52.59375 71.296875
308
+ z
309
+ " id="DejaVuSans-54"/>
310
+ </defs>
311
+ <g style="fill:#262626;" transform="translate(325.286406 306.288406)scale(0.11 -0.11)">
312
+ <use xlink:href="#DejaVuSans-54"/>
313
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
314
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
315
+ <use x="190.869141" xlink:href="#DejaVuSans-48"/>
316
+ </g>
317
+ </g>
318
+ </g>
319
+ <g id="xtick_8">
320
+ <g id="line2d_8">
321
+ <g>
322
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="383.923906" xlink:href="#me95d5351a6" y="288.430125"/>
323
+ </g>
324
+ </g>
325
+ <g id="text_8">
326
+ <!-- 7000 -->
327
+ <defs>
328
+ <path d="M 8.203125 72.90625
329
+ L 55.078125 72.90625
330
+ L 55.078125 68.703125
331
+ L 28.609375 0
332
+ L 18.3125 0
333
+ L 43.21875 64.59375
334
+ L 8.203125 64.59375
335
+ z
336
+ " id="DejaVuSans-55"/>
337
+ </defs>
338
+ <g style="fill:#262626;" transform="translate(369.926406 306.288406)scale(0.11 -0.11)">
339
+ <use xlink:href="#DejaVuSans-55"/>
340
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
341
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
342
+ <use x="190.869141" xlink:href="#DejaVuSans-48"/>
343
+ </g>
344
+ </g>
345
+ </g>
346
+ <g id="xtick_9">
347
+ <g id="line2d_9">
348
+ <g>
349
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="428.563906" xlink:href="#me95d5351a6" y="288.430125"/>
350
+ </g>
351
+ </g>
352
+ <g id="text_9">
353
+ <!-- 8000 -->
354
+ <defs>
355
+ <path d="M 31.78125 34.625
356
+ Q 24.75 34.625 20.71875 30.859375
357
+ Q 16.703125 27.09375 16.703125 20.515625
358
+ Q 16.703125 13.921875 20.71875 10.15625
359
+ Q 24.75 6.390625 31.78125 6.390625
360
+ Q 38.8125 6.390625 42.859375 10.171875
361
+ Q 46.921875 13.96875 46.921875 20.515625
362
+ Q 46.921875 27.09375 42.890625 30.859375
363
+ Q 38.875 34.625 31.78125 34.625
364
+ z
365
+ M 21.921875 38.8125
366
+ Q 15.578125 40.375 12.03125 44.71875
367
+ Q 8.5 49.078125 8.5 55.328125
368
+ Q 8.5 64.0625 14.71875 69.140625
369
+ Q 20.953125 74.21875 31.78125 74.21875
370
+ Q 42.671875 74.21875 48.875 69.140625
371
+ Q 55.078125 64.0625 55.078125 55.328125
372
+ Q 55.078125 49.078125 51.53125 44.71875
373
+ Q 48 40.375 41.703125 38.8125
374
+ Q 48.828125 37.15625 52.796875 32.3125
375
+ Q 56.78125 27.484375 56.78125 20.515625
376
+ Q 56.78125 9.90625 50.3125 4.234375
377
+ Q 43.84375 -1.421875 31.78125 -1.421875
378
+ Q 19.734375 -1.421875 13.25 4.234375
379
+ Q 6.78125 9.90625 6.78125 20.515625
380
+ Q 6.78125 27.484375 10.78125 32.3125
381
+ Q 14.796875 37.15625 21.921875 38.8125
382
+ z
383
+ M 18.3125 54.390625
384
+ Q 18.3125 48.734375 21.84375 45.5625
385
+ Q 25.390625 42.390625 31.78125 42.390625
386
+ Q 38.140625 42.390625 41.71875 45.5625
387
+ Q 45.3125 48.734375 45.3125 54.390625
388
+ Q 45.3125 60.0625 41.71875 63.234375
389
+ Q 38.140625 66.40625 31.78125 66.40625
390
+ Q 25.390625 66.40625 21.84375 63.234375
391
+ Q 18.3125 60.0625 18.3125 54.390625
392
+ z
393
+ " id="DejaVuSans-56"/>
394
+ </defs>
395
+ <g style="fill:#262626;" transform="translate(414.566406 306.288406)scale(0.11 -0.11)">
396
+ <use xlink:href="#DejaVuSans-56"/>
397
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
398
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
399
+ <use x="190.869141" xlink:href="#DejaVuSans-48"/>
400
+ </g>
401
+ </g>
402
+ </g>
403
+ <g id="text_10">
404
+ <!-- Speed (MiB/s) -->
405
+ <defs>
406
+ <path d="M 53.515625 70.515625
407
+ L 53.515625 60.890625
408
+ Q 47.90625 63.578125 42.921875 64.890625
409
+ Q 37.9375 66.21875 33.296875 66.21875
410
+ Q 25.25 66.21875 20.875 63.09375
411
+ Q 16.5 59.96875 16.5 54.203125
412
+ Q 16.5 49.359375 19.40625 46.890625
413
+ Q 22.3125 44.4375 30.421875 42.921875
414
+ L 36.375 41.703125
415
+ Q 47.40625 39.59375 52.65625 34.296875
416
+ Q 57.90625 29 57.90625 20.125
417
+ Q 57.90625 9.515625 50.796875 4.046875
418
+ Q 43.703125 -1.421875 29.984375 -1.421875
419
+ Q 24.8125 -1.421875 18.96875 -0.25
420
+ Q 13.140625 0.921875 6.890625 3.21875
421
+ L 6.890625 13.375
422
+ Q 12.890625 10.015625 18.65625 8.296875
423
+ Q 24.421875 6.59375 29.984375 6.59375
424
+ Q 38.421875 6.59375 43.015625 9.90625
425
+ Q 47.609375 13.234375 47.609375 19.390625
426
+ Q 47.609375 24.75 44.3125 27.78125
427
+ Q 41.015625 30.8125 33.5 32.328125
428
+ L 27.484375 33.5
429
+ Q 16.453125 35.6875 11.515625 40.375
430
+ Q 6.59375 45.0625 6.59375 53.421875
431
+ Q 6.59375 63.09375 13.40625 68.65625
432
+ Q 20.21875 74.21875 32.171875 74.21875
433
+ Q 37.3125 74.21875 42.625 73.28125
434
+ Q 47.953125 72.359375 53.515625 70.515625
435
+ z
436
+ " id="DejaVuSans-83"/>
437
+ <path d="M 18.109375 8.203125
438
+ L 18.109375 -20.796875
439
+ L 9.078125 -20.796875
440
+ L 9.078125 54.6875
441
+ L 18.109375 54.6875
442
+ L 18.109375 46.390625
443
+ Q 20.953125 51.265625 25.265625 53.625
444
+ Q 29.59375 56 35.59375 56
445
+ Q 45.5625 56 51.78125 48.09375
446
+ Q 58.015625 40.1875 58.015625 27.296875
447
+ Q 58.015625 14.40625 51.78125 6.484375
448
+ Q 45.5625 -1.421875 35.59375 -1.421875
449
+ Q 29.59375 -1.421875 25.265625 0.953125
450
+ Q 20.953125 3.328125 18.109375 8.203125
451
+ z
452
+ M 48.6875 27.296875
453
+ Q 48.6875 37.203125 44.609375 42.84375
454
+ Q 40.53125 48.484375 33.40625 48.484375
455
+ Q 26.265625 48.484375 22.1875 42.84375
456
+ Q 18.109375 37.203125 18.109375 27.296875
457
+ Q 18.109375 17.390625 22.1875 11.75
458
+ Q 26.265625 6.109375 33.40625 6.109375
459
+ Q 40.53125 6.109375 44.609375 11.75
460
+ Q 48.6875 17.390625 48.6875 27.296875
461
+ z
462
+ " id="DejaVuSans-112"/>
463
+ <path d="M 56.203125 29.59375
464
+ L 56.203125 25.203125
465
+ L 14.890625 25.203125
466
+ Q 15.484375 15.921875 20.484375 11.0625
467
+ Q 25.484375 6.203125 34.421875 6.203125
468
+ Q 39.59375 6.203125 44.453125 7.46875
469
+ Q 49.3125 8.734375 54.109375 11.28125
470
+ L 54.109375 2.78125
471
+ Q 49.265625 0.734375 44.1875 -0.34375
472
+ Q 39.109375 -1.421875 33.890625 -1.421875
473
+ Q 20.796875 -1.421875 13.15625 6.1875
474
+ Q 5.515625 13.8125 5.515625 26.8125
475
+ Q 5.515625 40.234375 12.765625 48.109375
476
+ Q 20.015625 56 32.328125 56
477
+ Q 43.359375 56 49.78125 48.890625
478
+ Q 56.203125 41.796875 56.203125 29.59375
479
+ z
480
+ M 47.21875 32.234375
481
+ Q 47.125 39.59375 43.09375 43.984375
482
+ Q 39.0625 48.390625 32.421875 48.390625
483
+ Q 24.90625 48.390625 20.390625 44.140625
484
+ Q 15.875 39.890625 15.1875 32.171875
485
+ z
486
+ " id="DejaVuSans-101"/>
487
+ <path d="M 45.40625 46.390625
488
+ L 45.40625 75.984375
489
+ L 54.390625 75.984375
490
+ L 54.390625 0
491
+ L 45.40625 0
492
+ L 45.40625 8.203125
493
+ Q 42.578125 3.328125 38.25 0.953125
494
+ Q 33.9375 -1.421875 27.875 -1.421875
495
+ Q 17.96875 -1.421875 11.734375 6.484375
496
+ Q 5.515625 14.40625 5.515625 27.296875
497
+ Q 5.515625 40.1875 11.734375 48.09375
498
+ Q 17.96875 56 27.875 56
499
+ Q 33.9375 56 38.25 53.625
500
+ Q 42.578125 51.265625 45.40625 46.390625
501
+ z
502
+ M 14.796875 27.296875
503
+ Q 14.796875 17.390625 18.875 11.75
504
+ Q 22.953125 6.109375 30.078125 6.109375
505
+ Q 37.203125 6.109375 41.296875 11.75
506
+ Q 45.40625 17.390625 45.40625 27.296875
507
+ Q 45.40625 37.203125 41.296875 42.84375
508
+ Q 37.203125 48.484375 30.078125 48.484375
509
+ Q 22.953125 48.484375 18.875 42.84375
510
+ Q 14.796875 37.203125 14.796875 27.296875
511
+ z
512
+ " id="DejaVuSans-100"/>
513
+ <path id="DejaVuSans-32"/>
514
+ <path d="M 31 75.875
515
+ Q 24.46875 64.65625 21.28125 53.65625
516
+ Q 18.109375 42.671875 18.109375 31.390625
517
+ Q 18.109375 20.125 21.3125 9.0625
518
+ Q 24.515625 -2 31 -13.1875
519
+ L 23.1875 -13.1875
520
+ Q 15.875 -1.703125 12.234375 9.375
521
+ Q 8.59375 20.453125 8.59375 31.390625
522
+ Q 8.59375 42.28125 12.203125 53.3125
523
+ Q 15.828125 64.359375 23.1875 75.875
524
+ z
525
+ " id="DejaVuSans-40"/>
526
+ <path d="M 9.8125 72.90625
527
+ L 24.515625 72.90625
528
+ L 43.109375 23.296875
529
+ L 61.8125 72.90625
530
+ L 76.515625 72.90625
531
+ L 76.515625 0
532
+ L 66.890625 0
533
+ L 66.890625 64.015625
534
+ L 48.09375 14.015625
535
+ L 38.1875 14.015625
536
+ L 19.390625 64.015625
537
+ L 19.390625 0
538
+ L 9.8125 0
539
+ z
540
+ " id="DejaVuSans-77"/>
541
+ <path d="M 9.421875 54.6875
542
+ L 18.40625 54.6875
543
+ L 18.40625 0
544
+ L 9.421875 0
545
+ z
546
+ M 9.421875 75.984375
547
+ L 18.40625 75.984375
548
+ L 18.40625 64.59375
549
+ L 9.421875 64.59375
550
+ z
551
+ " id="DejaVuSans-105"/>
552
+ <path d="M 19.671875 34.8125
553
+ L 19.671875 8.109375
554
+ L 35.5 8.109375
555
+ Q 43.453125 8.109375 47.28125 11.40625
556
+ Q 51.125 14.703125 51.125 21.484375
557
+ Q 51.125 28.328125 47.28125 31.5625
558
+ Q 43.453125 34.8125 35.5 34.8125
559
+ z
560
+ M 19.671875 64.796875
561
+ L 19.671875 42.828125
562
+ L 34.28125 42.828125
563
+ Q 41.5 42.828125 45.03125 45.53125
564
+ Q 48.578125 48.25 48.578125 53.8125
565
+ Q 48.578125 59.328125 45.03125 62.0625
566
+ Q 41.5 64.796875 34.28125 64.796875
567
+ z
568
+ M 9.8125 72.90625
569
+ L 35.015625 72.90625
570
+ Q 46.296875 72.90625 52.390625 68.21875
571
+ Q 58.5 63.53125 58.5 54.890625
572
+ Q 58.5 48.1875 55.375 44.234375
573
+ Q 52.25 40.28125 46.1875 39.3125
574
+ Q 53.46875 37.75 57.5 32.78125
575
+ Q 61.53125 27.828125 61.53125 20.40625
576
+ Q 61.53125 10.640625 54.890625 5.3125
577
+ Q 48.25 0 35.984375 0
578
+ L 9.8125 0
579
+ z
580
+ " id="DejaVuSans-66"/>
581
+ <path d="M 25.390625 72.90625
582
+ L 33.6875 72.90625
583
+ L 8.296875 -9.28125
584
+ L 0 -9.28125
585
+ z
586
+ " id="DejaVuSans-47"/>
587
+ <path d="M 44.28125 53.078125
588
+ L 44.28125 44.578125
589
+ Q 40.484375 46.53125 36.375 47.5
590
+ Q 32.28125 48.484375 27.875 48.484375
591
+ Q 21.1875 48.484375 17.84375 46.4375
592
+ Q 14.5 44.390625 14.5 40.28125
593
+ Q 14.5 37.15625 16.890625 35.375
594
+ Q 19.28125 33.59375 26.515625 31.984375
595
+ L 29.59375 31.296875
596
+ Q 39.15625 29.25 43.1875 25.515625
597
+ Q 47.21875 21.78125 47.21875 15.09375
598
+ Q 47.21875 7.46875 41.1875 3.015625
599
+ Q 35.15625 -1.421875 24.609375 -1.421875
600
+ Q 20.21875 -1.421875 15.453125 -0.5625
601
+ Q 10.6875 0.296875 5.421875 2
602
+ L 5.421875 11.28125
603
+ Q 10.40625 8.6875 15.234375 7.390625
604
+ Q 20.0625 6.109375 24.8125 6.109375
605
+ Q 31.15625 6.109375 34.5625 8.28125
606
+ Q 37.984375 10.453125 37.984375 14.40625
607
+ Q 37.984375 18.0625 35.515625 20.015625
608
+ Q 33.0625 21.96875 24.703125 23.78125
609
+ L 21.578125 24.515625
610
+ Q 13.234375 26.265625 9.515625 29.90625
611
+ Q 5.8125 33.546875 5.8125 39.890625
612
+ Q 5.8125 47.609375 11.28125 51.796875
613
+ Q 16.75 56 26.8125 56
614
+ Q 31.78125 56 36.171875 55.265625
615
+ Q 40.578125 54.546875 44.28125 53.078125
616
+ z
617
+ " id="DejaVuSans-115"/>
618
+ <path d="M 8.015625 75.875
619
+ L 15.828125 75.875
620
+ Q 23.140625 64.359375 26.78125 53.3125
621
+ Q 30.421875 42.28125 30.421875 31.390625
622
+ Q 30.421875 20.453125 26.78125 9.375
623
+ Q 23.140625 -1.703125 15.828125 -13.1875
624
+ L 8.015625 -13.1875
625
+ Q 14.5 -2 17.703125 9.0625
626
+ Q 20.90625 20.125 20.90625 31.390625
627
+ Q 20.90625 42.671875 17.703125 53.65625
628
+ Q 14.5 64.65625 8.015625 75.875
629
+ z
630
+ " id="DejaVuSans-41"/>
631
+ </defs>
632
+ <g style="fill:#262626;" transform="translate(208.497031 321.694187)scale(0.12 -0.12)">
633
+ <use xlink:href="#DejaVuSans-83"/>
634
+ <use x="63.476562" xlink:href="#DejaVuSans-112"/>
635
+ <use x="126.953125" xlink:href="#DejaVuSans-101"/>
636
+ <use x="188.476562" xlink:href="#DejaVuSans-101"/>
637
+ <use x="250" xlink:href="#DejaVuSans-100"/>
638
+ <use x="313.476562" xlink:href="#DejaVuSans-32"/>
639
+ <use x="345.263672" xlink:href="#DejaVuSans-40"/>
640
+ <use x="384.277344" xlink:href="#DejaVuSans-77"/>
641
+ <use x="470.556641" xlink:href="#DejaVuSans-105"/>
642
+ <use x="498.339844" xlink:href="#DejaVuSans-66"/>
643
+ <use x="566.943359" xlink:href="#DejaVuSans-47"/>
644
+ <use x="600.634766" xlink:href="#DejaVuSans-115"/>
645
+ <use x="652.734375" xlink:href="#DejaVuSans-41"/>
646
+ </g>
647
+ </g>
648
+ </g>
649
+ <g id="matplotlib.axis_2">
650
+ <g id="ytick_1">
651
+ <g id="line2d_10">
652
+ <defs>
653
+ <path d="M 0 0
654
+ L -6 0
655
+ " id="m7d1bb602a9" style="stroke:#262626;stroke-width:1.25;"/>
656
+ </defs>
657
+ <g>
658
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="71.443906" xlink:href="#m7d1bb602a9" y="38.950125"/>
659
+ </g>
660
+ </g>
661
+ <g id="text_11">
662
+ <!-- BLAKE3 -->
663
+ <defs>
664
+ <path d="M 9.8125 72.90625
665
+ L 19.671875 72.90625
666
+ L 19.671875 8.296875
667
+ L 55.171875 8.296875
668
+ L 55.171875 0
669
+ L 9.8125 0
670
+ z
671
+ " id="DejaVuSans-76"/>
672
+ <path d="M 34.1875 63.1875
673
+ L 20.796875 26.90625
674
+ L 47.609375 26.90625
675
+ z
676
+ M 28.609375 72.90625
677
+ L 39.796875 72.90625
678
+ L 67.578125 0
679
+ L 57.328125 0
680
+ L 50.6875 18.703125
681
+ L 17.828125 18.703125
682
+ L 11.1875 0
683
+ L 0.78125 0
684
+ z
685
+ " id="DejaVuSans-65"/>
686
+ <path d="M 9.8125 72.90625
687
+ L 19.671875 72.90625
688
+ L 19.671875 42.09375
689
+ L 52.390625 72.90625
690
+ L 65.09375 72.90625
691
+ L 28.90625 38.921875
692
+ L 67.671875 0
693
+ L 54.6875 0
694
+ L 19.671875 35.109375
695
+ L 19.671875 0
696
+ L 9.8125 0
697
+ z
698
+ " id="DejaVuSans-75"/>
699
+ <path d="M 9.8125 72.90625
700
+ L 55.90625 72.90625
701
+ L 55.90625 64.59375
702
+ L 19.671875 64.59375
703
+ L 19.671875 43.015625
704
+ L 54.390625 43.015625
705
+ L 54.390625 34.71875
706
+ L 19.671875 34.71875
707
+ L 19.671875 8.296875
708
+ L 56.78125 8.296875
709
+ L 56.78125 0
710
+ L 9.8125 0
711
+ z
712
+ " id="DejaVuSans-69"/>
713
+ </defs>
714
+ <g style="fill:#262626;" transform="translate(19.576719 43.129266)scale(0.11 -0.11)">
715
+ <use xlink:href="#DejaVuSans-66"/>
716
+ <use x="68.603516" xlink:href="#DejaVuSans-76"/>
717
+ <use x="124.347656" xlink:href="#DejaVuSans-65"/>
718
+ <use x="192.755859" xlink:href="#DejaVuSans-75"/>
719
+ <use x="258.332031" xlink:href="#DejaVuSans-69"/>
720
+ <use x="321.515625" xlink:href="#DejaVuSans-51"/>
721
+ </g>
722
+ </g>
723
+ </g>
724
+ <g id="ytick_2">
725
+ <g id="line2d_11">
726
+ <g>
727
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="71.443906" xlink:href="#m7d1bb602a9" y="72.214125"/>
728
+ </g>
729
+ </g>
730
+ <g id="text_12">
731
+ <!-- BLAKE2b -->
732
+ <defs>
733
+ <path d="M 48.6875 27.296875
734
+ Q 48.6875 37.203125 44.609375 42.84375
735
+ Q 40.53125 48.484375 33.40625 48.484375
736
+ Q 26.265625 48.484375 22.1875 42.84375
737
+ Q 18.109375 37.203125 18.109375 27.296875
738
+ Q 18.109375 17.390625 22.1875 11.75
739
+ Q 26.265625 6.109375 33.40625 6.109375
740
+ Q 40.53125 6.109375 44.609375 11.75
741
+ Q 48.6875 17.390625 48.6875 27.296875
742
+ z
743
+ M 18.109375 46.390625
744
+ Q 20.953125 51.265625 25.265625 53.625
745
+ Q 29.59375 56 35.59375 56
746
+ Q 45.5625 56 51.78125 48.09375
747
+ Q 58.015625 40.1875 58.015625 27.296875
748
+ Q 58.015625 14.40625 51.78125 6.484375
749
+ Q 45.5625 -1.421875 35.59375 -1.421875
750
+ Q 29.59375 -1.421875 25.265625 0.953125
751
+ Q 20.953125 3.328125 18.109375 8.203125
752
+ L 18.109375 0
753
+ L 9.078125 0
754
+ L 9.078125 75.984375
755
+ L 18.109375 75.984375
756
+ z
757
+ " id="DejaVuSans-98"/>
758
+ </defs>
759
+ <g style="fill:#262626;" transform="translate(12.593438 76.393266)scale(0.11 -0.11)">
760
+ <use xlink:href="#DejaVuSans-66"/>
761
+ <use x="68.603516" xlink:href="#DejaVuSans-76"/>
762
+ <use x="124.347656" xlink:href="#DejaVuSans-65"/>
763
+ <use x="192.755859" xlink:href="#DejaVuSans-75"/>
764
+ <use x="258.332031" xlink:href="#DejaVuSans-69"/>
765
+ <use x="321.515625" xlink:href="#DejaVuSans-50"/>
766
+ <use x="385.138672" xlink:href="#DejaVuSans-98"/>
767
+ </g>
768
+ </g>
769
+ </g>
770
+ <g id="ytick_3">
771
+ <g id="line2d_12">
772
+ <g>
773
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="71.443906" xlink:href="#m7d1bb602a9" y="105.478125"/>
774
+ </g>
775
+ </g>
776
+ <g id="text_13">
777
+ <!-- SHA-1 -->
778
+ <defs>
779
+ <path d="M 9.8125 72.90625
780
+ L 19.671875 72.90625
781
+ L 19.671875 43.015625
782
+ L 55.515625 43.015625
783
+ L 55.515625 72.90625
784
+ L 65.375 72.90625
785
+ L 65.375 0
786
+ L 55.515625 0
787
+ L 55.515625 34.71875
788
+ L 19.671875 34.71875
789
+ L 19.671875 0
790
+ L 9.8125 0
791
+ z
792
+ " id="DejaVuSans-72"/>
793
+ <path d="M 4.890625 31.390625
794
+ L 31.203125 31.390625
795
+ L 31.203125 23.390625
796
+ L 4.890625 23.390625
797
+ z
798
+ " id="DejaVuSans-45"/>
799
+ </defs>
800
+ <g style="fill:#262626;" transform="translate(28.199687 109.657266)scale(0.11 -0.11)">
801
+ <use xlink:href="#DejaVuSans-83"/>
802
+ <use x="63.476562" xlink:href="#DejaVuSans-72"/>
803
+ <use x="138.671875" xlink:href="#DejaVuSans-65"/>
804
+ <use x="207.048828" xlink:href="#DejaVuSans-45"/>
805
+ <use x="243.132812" xlink:href="#DejaVuSans-49"/>
806
+ </g>
807
+ </g>
808
+ </g>
809
+ <g id="ytick_4">
810
+ <g id="line2d_13">
811
+ <g>
812
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="71.443906" xlink:href="#m7d1bb602a9" y="138.742125"/>
813
+ </g>
814
+ </g>
815
+ <g id="text_14">
816
+ <!-- BLAKE2s -->
817
+ <g style="fill:#262626;" transform="translate(13.846406 142.921266)scale(0.11 -0.11)">
818
+ <use xlink:href="#DejaVuSans-66"/>
819
+ <use x="68.603516" xlink:href="#DejaVuSans-76"/>
820
+ <use x="124.347656" xlink:href="#DejaVuSans-65"/>
821
+ <use x="192.755859" xlink:href="#DejaVuSans-75"/>
822
+ <use x="258.332031" xlink:href="#DejaVuSans-69"/>
823
+ <use x="321.515625" xlink:href="#DejaVuSans-50"/>
824
+ <use x="385.138672" xlink:href="#DejaVuSans-115"/>
825
+ </g>
826
+ </g>
827
+ </g>
828
+ <g id="ytick_5">
829
+ <g id="line2d_14">
830
+ <g>
831
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="71.443906" xlink:href="#m7d1bb602a9" y="172.006125"/>
832
+ </g>
833
+ </g>
834
+ <g id="text_15">
835
+ <!-- MD5 -->
836
+ <defs>
837
+ <path d="M 19.671875 64.796875
838
+ L 19.671875 8.109375
839
+ L 31.59375 8.109375
840
+ Q 46.6875 8.109375 53.6875 14.9375
841
+ Q 60.6875 21.78125 60.6875 36.53125
842
+ Q 60.6875 51.171875 53.6875 57.984375
843
+ Q 46.6875 64.796875 31.59375 64.796875
844
+ z
845
+ M 9.8125 72.90625
846
+ L 30.078125 72.90625
847
+ Q 51.265625 72.90625 61.171875 64.09375
848
+ Q 71.09375 55.28125 71.09375 36.53125
849
+ Q 71.09375 17.671875 61.125 8.828125
850
+ Q 51.171875 0 30.078125 0
851
+ L 9.8125 0
852
+ z
853
+ " id="DejaVuSans-68"/>
854
+ </defs>
855
+ <g style="fill:#262626;" transform="translate(36.984219 176.185266)scale(0.11 -0.11)">
856
+ <use xlink:href="#DejaVuSans-77"/>
857
+ <use x="86.279297" xlink:href="#DejaVuSans-68"/>
858
+ <use x="163.28125" xlink:href="#DejaVuSans-53"/>
859
+ </g>
860
+ </g>
861
+ </g>
862
+ <g id="ytick_6">
863
+ <g id="line2d_15">
864
+ <g>
865
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="71.443906" xlink:href="#m7d1bb602a9" y="205.270125"/>
866
+ </g>
867
+ </g>
868
+ <g id="text_16">
869
+ <!-- SHA-512 -->
870
+ <g style="fill:#262626;" transform="translate(14.202188 209.449266)scale(0.11 -0.11)">
871
+ <use xlink:href="#DejaVuSans-83"/>
872
+ <use x="63.476562" xlink:href="#DejaVuSans-72"/>
873
+ <use x="138.671875" xlink:href="#DejaVuSans-65"/>
874
+ <use x="207.048828" xlink:href="#DejaVuSans-45"/>
875
+ <use x="243.132812" xlink:href="#DejaVuSans-53"/>
876
+ <use x="306.755859" xlink:href="#DejaVuSans-49"/>
877
+ <use x="370.378906" xlink:href="#DejaVuSans-50"/>
878
+ </g>
879
+ </g>
880
+ </g>
881
+ <g id="ytick_7">
882
+ <g id="line2d_16">
883
+ <g>
884
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="71.443906" xlink:href="#m7d1bb602a9" y="238.534125"/>
885
+ </g>
886
+ </g>
887
+ <g id="text_17">
888
+ <!-- SHA-256 -->
889
+ <g style="fill:#262626;" transform="translate(14.202188 242.713266)scale(0.11 -0.11)">
890
+ <use xlink:href="#DejaVuSans-83"/>
891
+ <use x="63.476562" xlink:href="#DejaVuSans-72"/>
892
+ <use x="138.671875" xlink:href="#DejaVuSans-65"/>
893
+ <use x="207.048828" xlink:href="#DejaVuSans-45"/>
894
+ <use x="243.132812" xlink:href="#DejaVuSans-50"/>
895
+ <use x="306.755859" xlink:href="#DejaVuSans-53"/>
896
+ <use x="370.378906" xlink:href="#DejaVuSans-54"/>
897
+ </g>
898
+ </g>
899
+ </g>
900
+ <g id="ytick_8">
901
+ <g id="line2d_17">
902
+ <g>
903
+ <use style="fill:#262626;stroke:#262626;stroke-width:1.25;" x="71.443906" xlink:href="#m7d1bb602a9" y="271.798125"/>
904
+ </g>
905
+ </g>
906
+ <g id="text_18">
907
+ <!-- SHA3-256 -->
908
+ <g style="fill:#262626;" transform="translate(7.2 275.977266)scale(0.11 -0.11)">
909
+ <use xlink:href="#DejaVuSans-83"/>
910
+ <use x="63.476562" xlink:href="#DejaVuSans-72"/>
911
+ <use x="138.671875" xlink:href="#DejaVuSans-65"/>
912
+ <use x="207.080078" xlink:href="#DejaVuSans-51"/>
913
+ <use x="270.703125" xlink:href="#DejaVuSans-45"/>
914
+ <use x="306.787109" xlink:href="#DejaVuSans-50"/>
915
+ <use x="370.410156" xlink:href="#DejaVuSans-53"/>
916
+ <use x="434.033203" xlink:href="#DejaVuSans-54"/>
917
+ </g>
918
+ </g>
919
+ </g>
920
+ </g>
921
+ <g id="patch_3">
922
+ <path clip-path="url(#p6091bd3d0f)" d="M 71.443906 25.644525
923
+ L 377.942146 25.644525
924
+ L 377.942146 52.255725
925
+ L 71.443906 52.255725
926
+ z
927
+ " style="fill:#df2020;stroke:#000000;stroke-linejoin:miter;"/>
928
+ </g>
929
+ <g id="patch_4">
930
+ <path clip-path="url(#p6091bd3d0f)" d="M 71.443906 58.908525
931
+ L 130.011586 58.908525
932
+ L 130.011586 85.519725
933
+ L 71.443906 85.519725
934
+ z
935
+ " style="fill:#df2020;stroke:#000000;stroke-linejoin:miter;"/>
936
+ </g>
937
+ <g id="patch_5">
938
+ <path clip-path="url(#p6091bd3d0f)" d="M 71.443906 92.172525
939
+ L 117.289186 92.172525
940
+ L 117.289186 118.783725
941
+ L 71.443906 118.783725
942
+ z
943
+ " style="fill:#df2020;stroke:#000000;stroke-linejoin:miter;"/>
944
+ </g>
945
+ <g id="patch_6">
946
+ <path clip-path="url(#p6091bd3d0f)" d="M 71.443906 125.436525
947
+ L 110.548546 125.436525
948
+ L 110.548546 152.047725
949
+ L 71.443906 152.047725
950
+ z
951
+ " style="fill:#df2020;stroke:#000000;stroke-linejoin:miter;"/>
952
+ </g>
953
+ <g id="patch_7">
954
+ <path clip-path="url(#p6091bd3d0f)" d="M 71.443906 158.700525
955
+ L 104.477506 158.700525
956
+ L 104.477506 185.311725
957
+ L 71.443906 185.311725
958
+ z
959
+ " style="fill:#df2020;stroke:#000000;stroke-linejoin:miter;"/>
960
+ </g>
961
+ <g id="patch_8">
962
+ <path clip-path="url(#p6091bd3d0f)" d="M 71.443906 191.964525
963
+ L 103.584706 191.964525
964
+ L 103.584706 218.575725
965
+ L 71.443906 218.575725
966
+ z
967
+ " style="fill:#df2020;stroke:#000000;stroke-linejoin:miter;"/>
968
+ </g>
969
+ <g id="patch_9">
970
+ <path clip-path="url(#p6091bd3d0f)" d="M 71.443906 225.228525
971
+ L 93.049666 225.228525
972
+ L 93.049666 251.839725
973
+ L 71.443906 251.839725
974
+ z
975
+ " style="fill:#df2020;stroke:#000000;stroke-linejoin:miter;"/>
976
+ </g>
977
+ <g id="patch_10">
978
+ <path clip-path="url(#p6091bd3d0f)" d="M 71.443906 258.492525
979
+ L 89.032066 258.492525
980
+ L 89.032066 285.103725
981
+ L 71.443906 285.103725
982
+ z
983
+ " style="fill:#df2020;stroke:#000000;stroke-linejoin:miter;"/>
984
+ </g>
985
+ <g id="line2d_18">
986
+ <path clip-path="url(#p6091bd3d0f)" d="M 0 0
987
+ " style="fill:none;stroke:#424242;stroke-linecap:round;stroke-width:2.7;"/>
988
+ </g>
989
+ <g id="line2d_19">
990
+ <path clip-path="url(#p6091bd3d0f)" d="M 0 0
991
+ " style="fill:none;stroke:#424242;stroke-linecap:round;stroke-width:2.7;"/>
992
+ </g>
993
+ <g id="line2d_20">
994
+ <path clip-path="url(#p6091bd3d0f)" d="M 0 0
995
+ " style="fill:none;stroke:#424242;stroke-linecap:round;stroke-width:2.7;"/>
996
+ </g>
997
+ <g id="line2d_21">
998
+ <path clip-path="url(#p6091bd3d0f)" d="M 0 0
999
+ " style="fill:none;stroke:#424242;stroke-linecap:round;stroke-width:2.7;"/>
1000
+ </g>
1001
+ <g id="line2d_22">
1002
+ <path clip-path="url(#p6091bd3d0f)" d="M 0 0
1003
+ " style="fill:none;stroke:#424242;stroke-linecap:round;stroke-width:2.7;"/>
1004
+ </g>
1005
+ <g id="line2d_23">
1006
+ <path clip-path="url(#p6091bd3d0f)" d="M 0 0
1007
+ " style="fill:none;stroke:#424242;stroke-linecap:round;stroke-width:2.7;"/>
1008
+ </g>
1009
+ <g id="line2d_24">
1010
+ <path clip-path="url(#p6091bd3d0f)" d="M 0 0
1011
+ " style="fill:none;stroke:#424242;stroke-linecap:round;stroke-width:2.7;"/>
1012
+ </g>
1013
+ <g id="line2d_25">
1014
+ <path clip-path="url(#p6091bd3d0f)" d="M 0 0
1015
+ " style="fill:none;stroke:#424242;stroke-linecap:round;stroke-width:2.7;"/>
1016
+ </g>
1017
+ <g id="patch_11">
1018
+ <path d="M 71.443906 288.430125
1019
+ L 71.443906 22.318125
1020
+ " style="fill:none;stroke:#262626;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;"/>
1021
+ </g>
1022
+ <g id="patch_12">
1023
+ <path d="M 428.563906 288.430125
1024
+ L 428.563906 22.318125
1025
+ " style="fill:none;stroke:#262626;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;"/>
1026
+ </g>
1027
+ <g id="patch_13">
1028
+ <path d="M 71.443906 288.430125
1029
+ L 428.563906 288.430125
1030
+ " style="fill:none;stroke:#262626;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;"/>
1031
+ </g>
1032
+ <g id="patch_14">
1033
+ <path d="M 71.443906 22.318125
1034
+ L 428.563906 22.318125
1035
+ " style="fill:none;stroke:#262626;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.25;"/>
1036
+ </g>
1037
+ <g id="text_19">
1038
+ <!-- 6866 -->
1039
+ <g style="fill:#262626;" transform="translate(382.406146 43.939725)scale(0.12 -0.12)">
1040
+ <use xlink:href="#DejaVuSans-54"/>
1041
+ <use x="63.623047" xlink:href="#DejaVuSans-56"/>
1042
+ <use x="127.246094" xlink:href="#DejaVuSans-54"/>
1043
+ <use x="190.869141" xlink:href="#DejaVuSans-54"/>
1044
+ </g>
1045
+ </g>
1046
+ <g id="text_20">
1047
+ <!-- 1312 -->
1048
+ <g style="fill:#262626;" transform="translate(134.475586 77.203725)scale(0.12 -0.12)">
1049
+ <use xlink:href="#DejaVuSans-49"/>
1050
+ <use x="63.623047" xlink:href="#DejaVuSans-51"/>
1051
+ <use x="127.246094" xlink:href="#DejaVuSans-49"/>
1052
+ <use x="190.869141" xlink:href="#DejaVuSans-50"/>
1053
+ </g>
1054
+ </g>
1055
+ <g id="text_21">
1056
+ <!-- 1027 -->
1057
+ <g style="fill:#262626;" transform="translate(121.753186 110.467725)scale(0.12 -0.12)">
1058
+ <use xlink:href="#DejaVuSans-49"/>
1059
+ <use x="63.623047" xlink:href="#DejaVuSans-48"/>
1060
+ <use x="127.246094" xlink:href="#DejaVuSans-50"/>
1061
+ <use x="190.869141" xlink:href="#DejaVuSans-55"/>
1062
+ </g>
1063
+ </g>
1064
+ <g id="text_22">
1065
+ <!-- 876 -->
1066
+ <g style="fill:#262626;" transform="translate(115.012546 143.731725)scale(0.12 -0.12)">
1067
+ <use xlink:href="#DejaVuSans-56"/>
1068
+ <use x="63.623047" xlink:href="#DejaVuSans-55"/>
1069
+ <use x="127.246094" xlink:href="#DejaVuSans-54"/>
1070
+ </g>
1071
+ </g>
1072
+ <g id="text_23">
1073
+ <!-- 740 -->
1074
+ <g style="fill:#262626;" transform="translate(108.941506 176.995725)scale(0.12 -0.12)">
1075
+ <use xlink:href="#DejaVuSans-55"/>
1076
+ <use x="63.623047" xlink:href="#DejaVuSans-52"/>
1077
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
1078
+ </g>
1079
+ </g>
1080
+ <g id="text_24">
1081
+ <!-- 720 -->
1082
+ <g style="fill:#262626;" transform="translate(108.048706 210.259725)scale(0.12 -0.12)">
1083
+ <use xlink:href="#DejaVuSans-55"/>
1084
+ <use x="63.623047" xlink:href="#DejaVuSans-50"/>
1085
+ <use x="127.246094" xlink:href="#DejaVuSans-48"/>
1086
+ </g>
1087
+ </g>
1088
+ <g id="text_25">
1089
+ <!-- 484 -->
1090
+ <g style="fill:#262626;" transform="translate(97.513666 243.523725)scale(0.12 -0.12)">
1091
+ <use xlink:href="#DejaVuSans-52"/>
1092
+ <use x="63.623047" xlink:href="#DejaVuSans-56"/>
1093
+ <use x="127.246094" xlink:href="#DejaVuSans-52"/>
1094
+ </g>
1095
+ </g>
1096
+ <g id="text_26">
1097
+ <!-- 394 -->
1098
+ <defs>
1099
+ <path d="M 10.984375 1.515625
1100
+ L 10.984375 10.5
1101
+ Q 14.703125 8.734375 18.5 7.8125
1102
+ Q 22.3125 6.890625 25.984375 6.890625
1103
+ Q 35.75 6.890625 40.890625 13.453125
1104
+ Q 46.046875 20.015625 46.78125 33.40625
1105
+ Q 43.953125 29.203125 39.59375 26.953125
1106
+ Q 35.25 24.703125 29.984375 24.703125
1107
+ Q 19.046875 24.703125 12.671875 31.3125
1108
+ Q 6.296875 37.9375 6.296875 49.421875
1109
+ Q 6.296875 60.640625 12.9375 67.421875
1110
+ Q 19.578125 74.21875 30.609375 74.21875
1111
+ Q 43.265625 74.21875 49.921875 64.515625
1112
+ Q 56.59375 54.828125 56.59375 36.375
1113
+ Q 56.59375 19.140625 48.40625 8.859375
1114
+ Q 40.234375 -1.421875 26.421875 -1.421875
1115
+ Q 22.703125 -1.421875 18.890625 -0.6875
1116
+ Q 15.09375 0.046875 10.984375 1.515625
1117
+ z
1118
+ M 30.609375 32.421875
1119
+ Q 37.25 32.421875 41.125 36.953125
1120
+ Q 45.015625 41.5 45.015625 49.421875
1121
+ Q 45.015625 57.28125 41.125 61.84375
1122
+ Q 37.25 66.40625 30.609375 66.40625
1123
+ Q 23.96875 66.40625 20.09375 61.84375
1124
+ Q 16.21875 57.28125 16.21875 49.421875
1125
+ Q 16.21875 41.5 20.09375 36.953125
1126
+ Q 23.96875 32.421875 30.609375 32.421875
1127
+ z
1128
+ " id="DejaVuSans-57"/>
1129
+ </defs>
1130
+ <g style="fill:#262626;" transform="translate(93.496066 276.787725)scale(0.12 -0.12)">
1131
+ <use xlink:href="#DejaVuSans-51"/>
1132
+ <use x="63.623047" xlink:href="#DejaVuSans-57"/>
1133
+ <use x="127.246094" xlink:href="#DejaVuSans-52"/>
1134
+ </g>
1135
+ </g>
1136
+ <g id="text_27">
1137
+ <!-- Performance on AWS c5.metal, 16 KiB input, 1 thread -->
1138
+ <defs>
1139
+ <path d="M 19.671875 64.796875
1140
+ L 19.671875 37.40625
1141
+ L 32.078125 37.40625
1142
+ Q 38.96875 37.40625 42.71875 40.96875
1143
+ Q 46.484375 44.53125 46.484375 51.125
1144
+ Q 46.484375 57.671875 42.71875 61.234375
1145
+ Q 38.96875 64.796875 32.078125 64.796875
1146
+ z
1147
+ M 9.8125 72.90625
1148
+ L 32.078125 72.90625
1149
+ Q 44.34375 72.90625 50.609375 67.359375
1150
+ Q 56.890625 61.8125 56.890625 51.125
1151
+ Q 56.890625 40.328125 50.609375 34.8125
1152
+ Q 44.34375 29.296875 32.078125 29.296875
1153
+ L 19.671875 29.296875
1154
+ L 19.671875 0
1155
+ L 9.8125 0
1156
+ z
1157
+ " id="DejaVuSans-80"/>
1158
+ <path d="M 41.109375 46.296875
1159
+ Q 39.59375 47.171875 37.8125 47.578125
1160
+ Q 36.03125 48 33.890625 48
1161
+ Q 26.265625 48 22.1875 43.046875
1162
+ Q 18.109375 38.09375 18.109375 28.8125
1163
+ L 18.109375 0
1164
+ L 9.078125 0
1165
+ L 9.078125 54.6875
1166
+ L 18.109375 54.6875
1167
+ L 18.109375 46.1875
1168
+ Q 20.953125 51.171875 25.484375 53.578125
1169
+ Q 30.03125 56 36.53125 56
1170
+ Q 37.453125 56 38.578125 55.875
1171
+ Q 39.703125 55.765625 41.0625 55.515625
1172
+ z
1173
+ " id="DejaVuSans-114"/>
1174
+ <path d="M 37.109375 75.984375
1175
+ L 37.109375 68.5
1176
+ L 28.515625 68.5
1177
+ Q 23.6875 68.5 21.796875 66.546875
1178
+ Q 19.921875 64.59375 19.921875 59.515625
1179
+ L 19.921875 54.6875
1180
+ L 34.71875 54.6875
1181
+ L 34.71875 47.703125
1182
+ L 19.921875 47.703125
1183
+ L 19.921875 0
1184
+ L 10.890625 0
1185
+ L 10.890625 47.703125
1186
+ L 2.296875 47.703125
1187
+ L 2.296875 54.6875
1188
+ L 10.890625 54.6875
1189
+ L 10.890625 58.5
1190
+ Q 10.890625 67.625 15.140625 71.796875
1191
+ Q 19.390625 75.984375 28.609375 75.984375
1192
+ z
1193
+ " id="DejaVuSans-102"/>
1194
+ <path d="M 30.609375 48.390625
1195
+ Q 23.390625 48.390625 19.1875 42.75
1196
+ Q 14.984375 37.109375 14.984375 27.296875
1197
+ Q 14.984375 17.484375 19.15625 11.84375
1198
+ Q 23.34375 6.203125 30.609375 6.203125
1199
+ Q 37.796875 6.203125 41.984375 11.859375
1200
+ Q 46.1875 17.53125 46.1875 27.296875
1201
+ Q 46.1875 37.015625 41.984375 42.703125
1202
+ Q 37.796875 48.390625 30.609375 48.390625
1203
+ z
1204
+ M 30.609375 56
1205
+ Q 42.328125 56 49.015625 48.375
1206
+ Q 55.71875 40.765625 55.71875 27.296875
1207
+ Q 55.71875 13.875 49.015625 6.21875
1208
+ Q 42.328125 -1.421875 30.609375 -1.421875
1209
+ Q 18.84375 -1.421875 12.171875 6.21875
1210
+ Q 5.515625 13.875 5.515625 27.296875
1211
+ Q 5.515625 40.765625 12.171875 48.375
1212
+ Q 18.84375 56 30.609375 56
1213
+ z
1214
+ " id="DejaVuSans-111"/>
1215
+ <path d="M 52 44.1875
1216
+ Q 55.375 50.25 60.0625 53.125
1217
+ Q 64.75 56 71.09375 56
1218
+ Q 79.640625 56 84.28125 50.015625
1219
+ Q 88.921875 44.046875 88.921875 33.015625
1220
+ L 88.921875 0
1221
+ L 79.890625 0
1222
+ L 79.890625 32.71875
1223
+ Q 79.890625 40.578125 77.09375 44.375
1224
+ Q 74.3125 48.1875 68.609375 48.1875
1225
+ Q 61.625 48.1875 57.5625 43.546875
1226
+ Q 53.515625 38.921875 53.515625 30.90625
1227
+ L 53.515625 0
1228
+ L 44.484375 0
1229
+ L 44.484375 32.71875
1230
+ Q 44.484375 40.625 41.703125 44.40625
1231
+ Q 38.921875 48.1875 33.109375 48.1875
1232
+ Q 26.21875 48.1875 22.15625 43.53125
1233
+ Q 18.109375 38.875 18.109375 30.90625
1234
+ L 18.109375 0
1235
+ L 9.078125 0
1236
+ L 9.078125 54.6875
1237
+ L 18.109375 54.6875
1238
+ L 18.109375 46.1875
1239
+ Q 21.1875 51.21875 25.484375 53.609375
1240
+ Q 29.78125 56 35.6875 56
1241
+ Q 41.65625 56 45.828125 52.96875
1242
+ Q 50 49.953125 52 44.1875
1243
+ z
1244
+ " id="DejaVuSans-109"/>
1245
+ <path d="M 34.28125 27.484375
1246
+ Q 23.390625 27.484375 19.1875 25
1247
+ Q 14.984375 22.515625 14.984375 16.5
1248
+ Q 14.984375 11.71875 18.140625 8.90625
1249
+ Q 21.296875 6.109375 26.703125 6.109375
1250
+ Q 34.1875 6.109375 38.703125 11.40625
1251
+ Q 43.21875 16.703125 43.21875 25.484375
1252
+ L 43.21875 27.484375
1253
+ z
1254
+ M 52.203125 31.203125
1255
+ L 52.203125 0
1256
+ L 43.21875 0
1257
+ L 43.21875 8.296875
1258
+ Q 40.140625 3.328125 35.546875 0.953125
1259
+ Q 30.953125 -1.421875 24.3125 -1.421875
1260
+ Q 15.921875 -1.421875 10.953125 3.296875
1261
+ Q 6 8.015625 6 15.921875
1262
+ Q 6 25.140625 12.171875 29.828125
1263
+ Q 18.359375 34.515625 30.609375 34.515625
1264
+ L 43.21875 34.515625
1265
+ L 43.21875 35.40625
1266
+ Q 43.21875 41.609375 39.140625 45
1267
+ Q 35.0625 48.390625 27.6875 48.390625
1268
+ Q 23 48.390625 18.546875 47.265625
1269
+ Q 14.109375 46.140625 10.015625 43.890625
1270
+ L 10.015625 52.203125
1271
+ Q 14.9375 54.109375 19.578125 55.046875
1272
+ Q 24.21875 56 28.609375 56
1273
+ Q 40.484375 56 46.34375 49.84375
1274
+ Q 52.203125 43.703125 52.203125 31.203125
1275
+ z
1276
+ " id="DejaVuSans-97"/>
1277
+ <path d="M 54.890625 33.015625
1278
+ L 54.890625 0
1279
+ L 45.90625 0
1280
+ L 45.90625 32.71875
1281
+ Q 45.90625 40.484375 42.875 44.328125
1282
+ Q 39.84375 48.1875 33.796875 48.1875
1283
+ Q 26.515625 48.1875 22.3125 43.546875
1284
+ Q 18.109375 38.921875 18.109375 30.90625
1285
+ L 18.109375 0
1286
+ L 9.078125 0
1287
+ L 9.078125 54.6875
1288
+ L 18.109375 54.6875
1289
+ L 18.109375 46.1875
1290
+ Q 21.34375 51.125 25.703125 53.5625
1291
+ Q 30.078125 56 35.796875 56
1292
+ Q 45.21875 56 50.046875 50.171875
1293
+ Q 54.890625 44.34375 54.890625 33.015625
1294
+ z
1295
+ " id="DejaVuSans-110"/>
1296
+ <path d="M 48.78125 52.59375
1297
+ L 48.78125 44.1875
1298
+ Q 44.96875 46.296875 41.140625 47.34375
1299
+ Q 37.3125 48.390625 33.40625 48.390625
1300
+ Q 24.65625 48.390625 19.8125 42.84375
1301
+ Q 14.984375 37.3125 14.984375 27.296875
1302
+ Q 14.984375 17.28125 19.8125 11.734375
1303
+ Q 24.65625 6.203125 33.40625 6.203125
1304
+ Q 37.3125 6.203125 41.140625 7.25
1305
+ Q 44.96875 8.296875 48.78125 10.40625
1306
+ L 48.78125 2.09375
1307
+ Q 45.015625 0.34375 40.984375 -0.53125
1308
+ Q 36.96875 -1.421875 32.421875 -1.421875
1309
+ Q 20.0625 -1.421875 12.78125 6.34375
1310
+ Q 5.515625 14.109375 5.515625 27.296875
1311
+ Q 5.515625 40.671875 12.859375 48.328125
1312
+ Q 20.21875 56 33.015625 56
1313
+ Q 37.15625 56 41.109375 55.140625
1314
+ Q 45.0625 54.296875 48.78125 52.59375
1315
+ z
1316
+ " id="DejaVuSans-99"/>
1317
+ <path d="M 3.328125 72.90625
1318
+ L 13.28125 72.90625
1319
+ L 28.609375 11.28125
1320
+ L 43.890625 72.90625
1321
+ L 54.984375 72.90625
1322
+ L 70.3125 11.28125
1323
+ L 85.59375 72.90625
1324
+ L 95.609375 72.90625
1325
+ L 77.296875 0
1326
+ L 64.890625 0
1327
+ L 49.515625 63.28125
1328
+ L 33.984375 0
1329
+ L 21.578125 0
1330
+ z
1331
+ " id="DejaVuSans-87"/>
1332
+ <path d="M 10.6875 12.40625
1333
+ L 21 12.40625
1334
+ L 21 0
1335
+ L 10.6875 0
1336
+ z
1337
+ " id="DejaVuSans-46"/>
1338
+ <path d="M 18.3125 70.21875
1339
+ L 18.3125 54.6875
1340
+ L 36.8125 54.6875
1341
+ L 36.8125 47.703125
1342
+ L 18.3125 47.703125
1343
+ L 18.3125 18.015625
1344
+ Q 18.3125 11.328125 20.140625 9.421875
1345
+ Q 21.96875 7.515625 27.59375 7.515625
1346
+ L 36.8125 7.515625
1347
+ L 36.8125 0
1348
+ L 27.59375 0
1349
+ Q 17.1875 0 13.234375 3.875
1350
+ Q 9.28125 7.765625 9.28125 18.015625
1351
+ L 9.28125 47.703125
1352
+ L 2.6875 47.703125
1353
+ L 2.6875 54.6875
1354
+ L 9.28125 54.6875
1355
+ L 9.28125 70.21875
1356
+ z
1357
+ " id="DejaVuSans-116"/>
1358
+ <path d="M 9.421875 75.984375
1359
+ L 18.40625 75.984375
1360
+ L 18.40625 0
1361
+ L 9.421875 0
1362
+ z
1363
+ " id="DejaVuSans-108"/>
1364
+ <path d="M 11.71875 12.40625
1365
+ L 22.015625 12.40625
1366
+ L 22.015625 4
1367
+ L 14.015625 -11.625
1368
+ L 7.71875 -11.625
1369
+ L 11.71875 4
1370
+ z
1371
+ " id="DejaVuSans-44"/>
1372
+ <path d="M 8.5 21.578125
1373
+ L 8.5 54.6875
1374
+ L 17.484375 54.6875
1375
+ L 17.484375 21.921875
1376
+ Q 17.484375 14.15625 20.5 10.265625
1377
+ Q 23.53125 6.390625 29.59375 6.390625
1378
+ Q 36.859375 6.390625 41.078125 11.03125
1379
+ Q 45.3125 15.671875 45.3125 23.6875
1380
+ L 45.3125 54.6875
1381
+ L 54.296875 54.6875
1382
+ L 54.296875 0
1383
+ L 45.3125 0
1384
+ L 45.3125 8.40625
1385
+ Q 42.046875 3.421875 37.71875 1
1386
+ Q 33.40625 -1.421875 27.6875 -1.421875
1387
+ Q 18.265625 -1.421875 13.375 4.4375
1388
+ Q 8.5 10.296875 8.5 21.578125
1389
+ z
1390
+ M 31.109375 56
1391
+ z
1392
+ " id="DejaVuSans-117"/>
1393
+ <path d="M 54.890625 33.015625
1394
+ L 54.890625 0
1395
+ L 45.90625 0
1396
+ L 45.90625 32.71875
1397
+ Q 45.90625 40.484375 42.875 44.328125
1398
+ Q 39.84375 48.1875 33.796875 48.1875
1399
+ Q 26.515625 48.1875 22.3125 43.546875
1400
+ Q 18.109375 38.921875 18.109375 30.90625
1401
+ L 18.109375 0
1402
+ L 9.078125 0
1403
+ L 9.078125 75.984375
1404
+ L 18.109375 75.984375
1405
+ L 18.109375 46.1875
1406
+ Q 21.34375 51.125 25.703125 53.5625
1407
+ Q 30.078125 56 35.796875 56
1408
+ Q 45.21875 56 50.046875 50.171875
1409
+ Q 54.890625 44.34375 54.890625 33.015625
1410
+ z
1411
+ " id="DejaVuSans-104"/>
1412
+ </defs>
1413
+ <g style="fill:#262626;" transform="translate(88.626406 16.318125)scale(0.12 -0.12)">
1414
+ <use xlink:href="#DejaVuSans-80"/>
1415
+ <use x="60.255859" xlink:href="#DejaVuSans-101"/>
1416
+ <use x="121.779297" xlink:href="#DejaVuSans-114"/>
1417
+ <use x="162.892578" xlink:href="#DejaVuSans-102"/>
1418
+ <use x="198.097656" xlink:href="#DejaVuSans-111"/>
1419
+ <use x="259.279297" xlink:href="#DejaVuSans-114"/>
1420
+ <use x="300.376953" xlink:href="#DejaVuSans-109"/>
1421
+ <use x="397.789062" xlink:href="#DejaVuSans-97"/>
1422
+ <use x="459.068359" xlink:href="#DejaVuSans-110"/>
1423
+ <use x="522.447266" xlink:href="#DejaVuSans-99"/>
1424
+ <use x="577.427734" xlink:href="#DejaVuSans-101"/>
1425
+ <use x="638.951172" xlink:href="#DejaVuSans-32"/>
1426
+ <use x="670.738281" xlink:href="#DejaVuSans-111"/>
1427
+ <use x="731.919922" xlink:href="#DejaVuSans-110"/>
1428
+ <use x="795.298828" xlink:href="#DejaVuSans-32"/>
1429
+ <use x="827.085938" xlink:href="#DejaVuSans-65"/>
1430
+ <use x="895.416016" xlink:href="#DejaVuSans-87"/>
1431
+ <use x="994.292969" xlink:href="#DejaVuSans-83"/>
1432
+ <use x="1057.769531" xlink:href="#DejaVuSans-32"/>
1433
+ <use x="1089.556641" xlink:href="#DejaVuSans-99"/>
1434
+ <use x="1144.537109" xlink:href="#DejaVuSans-53"/>
1435
+ <use x="1208.160156" xlink:href="#DejaVuSans-46"/>
1436
+ <use x="1239.947266" xlink:href="#DejaVuSans-109"/>
1437
+ <use x="1337.359375" xlink:href="#DejaVuSans-101"/>
1438
+ <use x="1398.882812" xlink:href="#DejaVuSans-116"/>
1439
+ <use x="1438.091797" xlink:href="#DejaVuSans-97"/>
1440
+ <use x="1499.371094" xlink:href="#DejaVuSans-108"/>
1441
+ <use x="1527.154297" xlink:href="#DejaVuSans-44"/>
1442
+ <use x="1558.941406" xlink:href="#DejaVuSans-32"/>
1443
+ <use x="1590.728516" xlink:href="#DejaVuSans-49"/>
1444
+ <use x="1654.351562" xlink:href="#DejaVuSans-54"/>
1445
+ <use x="1717.974609" xlink:href="#DejaVuSans-32"/>
1446
+ <use x="1749.761719" xlink:href="#DejaVuSans-75"/>
1447
+ <use x="1815.337891" xlink:href="#DejaVuSans-105"/>
1448
+ <use x="1843.121094" xlink:href="#DejaVuSans-66"/>
1449
+ <use x="1911.724609" xlink:href="#DejaVuSans-32"/>
1450
+ <use x="1943.511719" xlink:href="#DejaVuSans-105"/>
1451
+ <use x="1971.294922" xlink:href="#DejaVuSans-110"/>
1452
+ <use x="2034.673828" xlink:href="#DejaVuSans-112"/>
1453
+ <use x="2098.150391" xlink:href="#DejaVuSans-117"/>
1454
+ <use x="2161.529297" xlink:href="#DejaVuSans-116"/>
1455
+ <use x="2200.738281" xlink:href="#DejaVuSans-44"/>
1456
+ <use x="2232.525391" xlink:href="#DejaVuSans-32"/>
1457
+ <use x="2264.3125" xlink:href="#DejaVuSans-49"/>
1458
+ <use x="2327.935547" xlink:href="#DejaVuSans-32"/>
1459
+ <use x="2359.722656" xlink:href="#DejaVuSans-116"/>
1460
+ <use x="2398.931641" xlink:href="#DejaVuSans-104"/>
1461
+ <use x="2462.310547" xlink:href="#DejaVuSans-114"/>
1462
+ <use x="2503.392578" xlink:href="#DejaVuSans-101"/>
1463
+ <use x="2564.916016" xlink:href="#DejaVuSans-97"/>
1464
+ <use x="2626.195312" xlink:href="#DejaVuSans-100"/>
1465
+ </g>
1466
+ </g>
1467
+ </g>
1468
+ </g>
1469
+ <defs>
1470
+ <clipPath id="p6091bd3d0f">
1471
+ <rect height="266.112" width="357.12" x="71.443906" y="22.318125"/>
1472
+ </clipPath>
1473
+ </defs>
1474
+ </svg>