aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2018-09-09 10:02:27 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2018-09-09 10:02:30 +0800
commitf68e6c99bbc7e4c607223e73f246b73eaa94d3a8 (patch)
tree47b4bb66520b1563061204bcf09ac1830f379d41
parentfa2dfb07a2966010e8c6eff93ee39ffc8c7c4d20 (diff)
downloaddexon-bls-f68e6c99bbc7e4c607223e73f246b73eaa94d3a8.tar
dexon-bls-f68e6c99bbc7e4c607223e73f246b73eaa94d3a8.tar.gz
dexon-bls-f68e6c99bbc7e4c607223e73f246b73eaa94d3a8.tar.bz2
dexon-bls-f68e6c99bbc7e4c607223e73f246b73eaa94d3a8.tar.lz
dexon-bls-f68e6c99bbc7e4c607223e73f246b73eaa94d3a8.tar.xz
dexon-bls-f68e6c99bbc7e4c607223e73f246b73eaa94d3a8.tar.zst
dexon-bls-f68e6c99bbc7e4c607223e73f246b73eaa94d3a8.zip
update how to load QcoeffTbl
-rw-r--r--.travis.yml2
-rw-r--r--Makefile2
-rw-r--r--src/bls_c.cpp9
-rw-r--r--src/qcoeff-bn254.hpp634
4 files changed, 572 insertions, 75 deletions
diff --git a/.travis.yml b/.travis.yml
index e013804..81fa0eb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,8 +7,6 @@ compiler:
before_install:
- sudo apt install -y libgmp-dev
script:
- - git clone --depth 1 https://github.com/herumi/cybozulib.git
- - git clone --depth 1 https://github.com/herumi/xbyak.git
- git clone --depth 1 https://github.com/herumi/mcl.git
- git clone --depth 1 https://github.com/herumi/bls.git
- cd bls
diff --git a/Makefile b/Makefile
index 474198a..af34e52 100644
--- a/Makefile
+++ b/Makefile
@@ -93,7 +93,7 @@ endif
test_go: ffi/go/bls/bls.go ffi/go/bls/bls_test.go $(BLS384_SLIB)
cd ffi/go/bls && env PATH=$$PATH:../../../lib LD_RUN_PATH="../../../lib" DYLD_LIBRARY_PATH="../../../lib" go test $(MAC_GO_LDFLAGS) .
-EMCC_OPT=-I./include -I./src -I../cybozulib/include -I../mcl/include -I./ -Wall -Wextra
+EMCC_OPT=-I./include -I./src -I../mcl/include -I./ -Wall -Wextra
EMCC_OPT+=-O3 -DNDEBUG
EMCC_OPT+=-s WASM=1 -s NO_EXIT_RUNTIME=1 -s MODULARIZE=1 #-s ASSERTIONS=1
EMCC_OPT+=-DCYBOZU_MINIMUM_EXCEPTION
diff --git a/src/bls_c.cpp b/src/bls_c.cpp
index d46a15c..06a5b0a 100644
--- a/src/bls_c.cpp
+++ b/src/bls_c.cpp
@@ -43,7 +43,14 @@ int blsInitNotThreadSafe(int curve, int maxUnitSize)
g_Qcoeff.resize(BN::param.precomputedQcoeffSize);
assert(g_Qcoeff.size() == CYBOZU_NUM_OF_ARRAY(tbl));
for (size_t i = 0; i < g_Qcoeff.size(); i++) {
- g_Qcoeff[i].setStr(&b, tbl[i], 16);
+ Fp6& x6 = g_Qcoeff[i];
+ for (size_t j = 0; j < 6; j++) {
+ Fp& x = x6.getFp0()[j];
+ mcl::fp::Unit *p = const_cast<mcl::fp::Unit*>(x.getUnit());
+ for (size_t k = 0; k < 4; k++) {
+ p[k] = QcoeffTblBN254[i][j][k];
+ }
+ }
}
} else {
precomputeG2(&b, g_Qcoeff, getQ());
diff --git a/src/qcoeff-bn254.hpp b/src/qcoeff-bn254.hpp
index e547731..18d1695 100644
--- a/src/qcoeff-bn254.hpp
+++ b/src/qcoeff-bn254.hpp
@@ -1,72 +1,564 @@
-static const char *tbl[70] = {
-"1b52b2cb2d502a93b7c05d4791c014160c9d83beb3b5aba6854048102ddf59c7 13e90f9a1bc21c7fca32694f409ec90acbc812ac347d6408c918c9ccd6dc53a8 f827b090f207dc7838bd464f474a56d98e8f2d62ec1ab7441db004c49da3390 11f2c85775596e7b1912924a51eb1265e5bd3587d018f61c83e3509e3880304 16c38b6b4655bdf0e1bef98115ac6dc037e375e665c131aca3de3c67426df9ab 222f7b591fb3ab370c75a420c897ad2c32afef3e43832646f178637e4dfe5f5e",
-"1ff6cc54c38c40c357f48e2f02e3b4792d3fd9a4af7017ad29607ffe840da6d2 16485bd845090eb2dee3ebde790bfcf008091b18b2162cd02503f1bc34d355f4 1309baff0e0119da07692365975019e224de285f490375227bf8d6ee0dd01791 2098bd6f42be51842e51be66a4ea4493d879a3ff9c891c01ddee1cdd21e15b57 623c37310510a9f2e694ce48928cdfdc524f6b7c8f832d152cdab0b651a96a7 e0b727ad6fb0a25c58b48bc49780be7d4e15de7e689b9a80a3abc4f26b8808b",
-"a523954616b9e17b6d9975fa5c91114282732b87aaf9780ad8f441c29815571 18e63eaed66a65424a83661d7a5a5177a08fe29e6d172f3b00e81e3852ae78c2 3dd6050ad1196f45f395694f8f58c9ec5b9dded8b2edba787054a2a356d5cc5 18acf738415a72035b5794f584091df7a2ca355fb9b6e29b19e288d29a461e89 18904ce9176b216469a1f5625f074a2f912436b14a8e16f7381d7808e21dc14e 1efc40f5c4932c31088877b883c6aceca137c1e84dea3575df24f4d4a83c83a4",
-"1c4def3d780c50d9a3463779e25c5a63a89fa9afa26259de802b2f0c58bf85db 1b664dcbb04fd046ea8efadfa4c5ea8b488a151bee526a6dee8a5f64c732fc2f 88e76a45d3336dbca2f126545f63752a4eab48228430fbc3057df263007f04f 6f99fdd0b9c8a75bd10fd11d661c628397f5ea277be4c725181c25acd6ab211 1eadae6a200685663bdf6986de1216a5dc6a3885596800b9e668f836e34f9ff7 189efc062fe812357213a46d30a3bd8510c41e19d71ad649ba62aaeaae955b46",
-"45896e8a7177b4b057f7a9554aff91abcbef032c43661f286f532a56424fd26 a28831c2345bb827c044fe6ebafef010afa04bf2f965cc1d1756ddcf1e00aee c0d2b7c50642bec548b36c40ad67205e51d4ab88fabf1c6d91f2f6770ae6cad 21d240e79528dd87b977e8a1253adafab3ce9398d5c6277f856c89f2455c1aec 99cd08ec142d7caf0cccd4a833780bb0b41bc5584f6c8363436ee276c20244b 26dadaf2a772cc445ab089066c14168d82cd7faee55fed0819aac24177ad3b1",
-"15e9e60260277950aae120e6135f7a9feee9efe050ebe3f16e8c914241f2f596 1f57d920dd187e0eae80f08ec81faaea6df1822699ef8b99259d0736db2a646e 1f5d71fc178236f0e6480ce8810b9c51c5aaa6cef8c527fceb0d7ab56a89278d 1004a72ab9515a7da301afb1a2dbd7380deab8c721120a9288231309c8c1f7c 61067d9da7197ef949a50337844a7df191dccdfa8694f6ab98a3991534be055 1c01d7d99a7d90412df95cfa37c3f290766672f15a1fc92e99f8de34345e8a32",
-"22efa6aa589af721d6281c579c20e0c93384fe2e4c692e07c8aeafc67f7f638 6373086b1f49d78eea130adbc96b91d5afe6731e0a9b9929e44e3683ba984b9 19457e9473a6f84c4542be94e35c0fe6513c4a2c5e2059f3b3c8974aaed73af1 2198973ede407aaaca0d347e593109df9e6d4068b219fbe6cae267a7c5448193 1880e4de226bb607a0dc08bd270448171d27bcd1694ee67543713286ab3c79e8 1442b670af54c4b4fb64917f6eec8c99961336aff83283aa2260c42457e927c1",
-"f0818e61cc997e027235c20b8d9d81b5b8459b275c1e903a56728c282aa4e12 35efbf2d50fe1ec184b2304ecff69d021fb1efaad35245ace6f6a25b75fd088 213251f906ae22a38166b2fea66b2173770f4a6e4ddc81284dd7b39986738756 aa5bd3634d1d41bc31d6f269522a2f80333d13803be980dca1f1e90b28e8f5b 19ace1ce3958e43f12d2478657a1fd75434650315780eacd881ff7b4acccd856 1b78bc90efaef58b56832328d890111a034c5632a34e19a6fc97d755f6930975",
-"e6d561463db9e5911ac3474d083bce57c4610488b6fa7aeb7305ef08f58dd5e 242293db3b044f5c371b142448cc1fd37c16f3993f8e575e811623a82ab0badd 1f97163c7ce3b19499df6b48fd73cea2e45a71859a15514b81b404ac2398aeb9 ed17908e97c6f91163e548d85a96cec94d10c4a1216a453b00c3c3e8664ec8d 10396d28e1cd66dad3909ac304e9e30e4ece74c7a6a75edcaccf85efdf3a7563 1aa3cd513a254e6160503ba1efcf5582c6d1bca35be2c12e31c46ad75bae5bff",
-"d7997c717f4a345bc21f42135e9cfa9a8b695db17acff2d7484e2f946b38bdd b396977204ac857087a33129b21794afbbc26c43f588ef750ea10ba1f8c680d 8bd55e968902e1c931e07114cec6beb17c76661e525bb9c352f553f338daecc 7f353a8762274d31466ca70fb258b9228e1e0d14bfe0d965188f1b27906334a 16a7e0733f8ba831d2d53116f2e9273bb7fba0197263f0d8a69cfd392c7c3ab7 dbb64ae28a05409f5f068f7bacb5b94417859697437c947e7bcace207fb4b39",
-"242b7242c7aa7299d85aab4d5ad21ea6fb110141e8acf0a886fb5de1b1b43d5f 83e86134c3ce4ad18e9fc7e964e89e12c8c5fc592bbec2551e97513dd0381c6 1d740e2f12947b4274600e919ddf964758131b44c181fdf7fa5fc8ef49b4f303 12e9ad8ab9aa2055bc43a91bd137a0881637e78e950d309617a30073e0dc5bfe 1219d80a6dc91fe89ec7348a03299288b71be7143498c443625c523d35a9ddbb 20f773fe4e930106ef2a1036d2cea751eab6b8b854e9a4e82be4d5e1edfed2ce",
-"5d245db490c0e0f2cd8f1644cc477169b7f15cc6a0b4bf82ae6cbdcabab45ca 1e98d4ada0d1392c12a455d53d41268bdeb2eee86d2841e82f3bdbb6eeeaa2cd 10cf17dd3ad4ae7bd7c1a9685ae005b9b0378c3a660efc82461e88885b46acfd 1e3bd8a6c61c1174b5cbf3ac60769716a9a9945884de06e72d1896afcedc2c99 92769f46c19288bc308ca5fdfc1a56297ca28ee9702383ed2babf83a3bd0845 3f1e6dea8a8b70551132b40b05428a66c6f5e75092e930305a8130787d824b9",
-"12974aeacc98ac036746219df281dc5ed925be50fe29f1a282cfccbbbf1fd319 ca112e88298fe5577133a373b73a610cc25b5d69c6c42a1c0f0de954243427e a96a0f7a6c342c762197694859d6ab4ba811c0ada4d44b42729196fa7c1bf4d 2e5fdf48bcbd1f2afaf24faf1220ca1dbcc34ba6fd74b0ddb936485c0f7bdf5 18391f1d234fdbe116cc11226eea6c05cd01207b4dae4f0c0933fee8f410fb32 46d2f22d2ad1f9c2f6fd1fb856629044881e75028a43c8a52764e868ee4c9d5",
-"f804aec661585b7e89957e2f366cb2a6c3cdde1ed7ae33efc9dfb4bcf87ba8b c473f86e2f4dfd8124abf8d32de417a6cd4064b629006ea2089d259d8c35f6a 1e2cd73dac794ff0b97110438c71b615cf11e7e5de9d80031ee509cf6a239028 1d4963f22cedbfa14329fa35d05c384375813a44a3ee781f3bf47ecee963a1e2 140bd8af025f723b32e2411036d34d15616a1a617d4b6d96a69000de1e03dd53 1d9f5c1bfb57ccba47a967a6591e818f5eb7b9ef5130ffecd50023dbedc7bf1",
-"8ecf1f3a191043a6ee1bfe676abb84e0dedd12637264b665b312a93d190ec0e ee20584b5b769b110ecf8e098359e75fdb62aa545d33c42a76fa22c8b835ba5 17f50dba36492ac7b53d45fa6693103ec2117fea4cb68d72d0bacea3b2b3f6ac 22dd94c273cfb529baf7bc80531ca7ca27180aa2f0a2ba98e9000b999990abe6 eb7210fa9942b48afa765c6deb51b2083a014ac8371073da844644fc5c362ee 144120ec2af3a6a1105e8914f70225b67aa8d07dd4fad9e4b1b3dc569d06acfc",
-"299dab78c4c5d9a5e3f7b9563565abb22f662e80c83a5c8e43cb5fc4e987d18 ab9672680e8e4ee978b2fc4175469841693d6ff09623ff9881bfcfc1e39d01e 14e119e2374a56340a1f1c68ada80b39ff1dd4678cb7f5aa05b0ee79620b1719 7b63466bad7683a5645f9498ad592f5373ec70c47b473d50a502ce26d93a02b 114db7c1e0c0f6768b485c79b275ef75f1d3aa1fb5b617beb0761a7887ce5397 8034b004f185d07c1c4d9d5dcc27a9ef4c26b1bd1599e67c871a8c7dfa0b4f0",
-"19397b5b6974b5019a5a6a6fc2cb5fafa2e983dcd9db756b754a5df13dad6127 7c67ca492c2ddcbb1e13557fc4a8eaaf9832206c6c0c1ad39c3fb439514a05e ecd69ef65bd1c92dd9b7cc6ba45f644adb518cf69f66615435e9b989063e5bf 24bb01847833ad5073e68b2b9893f5c970e8be8635f2d3a352b3a77af7c87645 126eec3bb70cdd79502dfe6b72c8eeb2cde713394ee6d7c66bd14df7d8d722f3 1aee3bb3dc21017c6d7a11409b60877abf1c31f630016266b3c882e9f29182a1",
-"1f8b9140c44ce1c2b6295ddb30b9f39a6db29b466c34fed193e5c3417505fb58 19c3af2d46840b589aa809f095ac6dd338caf7660711772b25445756cce34c5d 73b7725029d3dd54de301a7e542ea3b47d698ad8698dc9882794be7062f87d 48b36d7e748407f3199172db841086af154ae40715e843e443a605f2a145e9a 15eb897fa2ceaf6c6c024d7573ad118156905456f9e083d9776403b1b5b44220 11fb352937adc81d98da98106b801bd348e31fe6f2529814745b8888bc5cb495",
-"1f3760d9ba2205fd36ad71034ea0026a43f70e35049421917599c613e7f8e39f 3deb7acdefbc04dbcd81871bcbb1758b9529eba6bb47574b62ced1b2dea74ed dde67c17ad0b19e0a5239bdda0fd02b9ca83973a5273902eadd1faa1f39813f aa5dea589041da30b72dacad11ce41ab9b0caea68e4011daa33b417de1a772d 2418286acc1eb9195fcc208190b162da16f00a6f77a4fdcc539db18c802a3fc9 f4d05188eef03110ba81f14a9d8bde05e80eb22ba298756a0052644b58b1eb6",
-"1fe799facd74fe185079b76f1cb86fa81b1d2c59e1840d1c5fb0e8e13004d840 22f1626fbe5f1b50e586b11f04b75d8bdda2a2711868e2766ff96763a73b015d 2ad500c6115f11cb9b9db47967dd273146041506650099700b75dd90fa100d2 234e1077518f519a4292242366d0a00d8498f4e0234ba3da1bd4fa135be2db45 511c07b820c45e35dd9111e918794a60f8843b6a0cb48ad4e7a8b67f5d2825f c420e7e5b0b89639bdfc6f5ba0543f09a6b7042655bf5c3c68a914e97e8ca65",
-"734810c904c768b635f70752e4f3f7554fd02a17ede26cf58be484f58ae0369 156014198774b7eb6618cbff5a4355928e1fb0bda67aa78d64841d2a7ed98c8e c0028f1390f65fb453250903990c8b201f232293ea1910ffa8dbef6b00a35fb 9daa477756ee1f043d275af9649d4fbc25f623f2514c3188fd019d89137bf62 21165449637930b93044093928c28e70025ee06720277f46d596b06ce54295a9 1ca353aa98964a0c6c1e0154f029940b430f786cdfddcc93e898e3f0a8f84bfa",
-"1d9e235c946ce4e4ce949bc9e492cdc01358066a67b3bafb192f93ab2ad63bc0 abe18528a9136243e61d5fbc25f81c9b97a67d27d43b7d8c5726ad1a679f30d 14616faffd36cff47f27b30c98def2babbef22a10aac91ea9591173aeb188579 1e63af3bb34e0997ede1925525b471d5d1556cf72573503b2aab841744e6420a 230def6f589292cfabdda85d8b850d4a1e1b484aafd23eca691d07ac518caf38 1349c7b74654f2170c69b88415b14f5fd5716223dee4defed854650e2d6829f5",
-"1433868ce70016f8d9bd10989a61b7b8987c52b55e2f3543f96597d60e65cf03 c36abad808064bcd41c619593cb93838f0d04b02aa47b246ac50d1a7da73190 1b283c071eb86f2a1225facb64cef3c5e8b1c09213a23e53ac233fb3f78dc74e 42440cf187f904ff693324a66402037d23a44e3428d8f3c2a33a0a88dd0a5d5 1aaf821ab6988e420db38b6db055e59abae6376dadf72ab5919389f67b06685f 22c3a961140700309bb84c95c571cc20cc137c12907a11f548c068038c942cf9",
-"3a48d5a72d7595a93a2a2c879680820fccef72e53ee10e3a9c22752ca3276c0 1b3208ff86bc8e7e4250b18a12babeee5bf1468e85d21129520f266575366cd8 2081f2ae5c38ef371f3b646355837c7001bf8689186a5331bc4063e3934e464f 124bc9d31abcff7413160e8f92c600ba7f8b55ae95968dfa62fc9520956b383e 218ae52d314fc33babec28393661684e6478bb984c181a6334c053f4b3c9637c 1d811b283462435c0910ab169bf8495292969e731895e25d070a05433920bc9f",
-"e915c585dd1bed6f5be2e2e5c120ad9c0e256ea826e97c51d47d680d3ffc1ed 1beff7a9dcf60df17bd151782ec9b92b18880f4c6bd98266e959679ad537f24d 1d8f0007734eff7ce94943387fa1adbe3aee716c3774ec437e921d8d714dcad3 246d8d6fa9406d534baf4c45c2d2f2e8b3ee63fbe7b9f8188c7615c43694c7c7 fcbf57906c6b8627e51567c88c4a634ebe3ff278a306780b58e25f265926065 1a85e59538c7c1d7f88ac93b34e99df05dede64585393b1a8102dee6fd1fa9b7",
-"54052b0eacd2c3f48c975e82c1e88d02ac1e34208c1826fbd000fb5d16960ca 19583cd06f4bcf4563083b8e57d9591326e4e077654aea451fc3a4fa8e60bc9c 104d08637f7e3f161986456efa53a1b92f566e61d3c344aac04a47c9f5a491a6 24e10471810a5f1ee13ded704a26e1606228f31afa1b4fece58880df12e599f3 122aacb2733ba0a4ea6be3f96efaf431087a9348050a98cf583a2fb003934c28 6ef9f5f7bbbdcffda61867c600bb2cfd57b6756bb798a8b69ce92b2a81bb682",
-"1f6261228b9e3a39bc3c9e198e89890dd37c86ba26549e00f0cdd8d5066034b2 b98c2aec3085acb4993639440a3079b5eafc5b7ca6b484018d6ebb89d66894d 1a2e2c8ed008a6027a3a51dd9b403d158c9815bd900509a1d264bebf32545911 a5152df4f4bb5882124b1ea66056ba720db09931893955715948ba31e7fb20e 17abda5a5afbb81dc4903a19d320d246c43c695a9151ceced6ca9a0d4abddd09 17ce93aa7f50ae70e39f3b66d887671cba8a0092a78d6b83d02e82a2209b16e7",
-"1953b4e0de4f64d8571733b720d2ed1c860c268d0c8c90f4bfd0fef1a1897926 af2aecf758b389276de5c959ea91b9c2c869be7dea5f3b7d59252f1a984ad45 170edd20dcc8d0e730adae7710245d5481b62364aec5bf8c7b34fdaca7c111a8 13b243e4fc86d88a0ae905c1b3496f10a205a15068635eb7047d2107ba1068d3 ef8ed5ab268067581cb1c8efb2faebc2060d81a513c02dd3859cc1ba8477da7 10798174c0a729496e2b6b8135ff67d1955774c3dffdd8ae3f6fefc07d30433a",
-"c55a73d0c9f40a2b788942733ccf376a0fd23864c729f4df3e965967ee9d997 7410f999716af9a823f772d9763c07e1d53385398730602fb2d193c70a6e851 2adcc6fb476b770ef65eada638492d0df5637962e894631df395108c49cb765 230830972b2a3d78dcd4a5d1dcbdae2ba29406e21bac4e7f35d7001782bd6642 187ed7f0f2d352ae7200d4a638d795fc1d29880369ba491ddfbdc558378e6987 6300eefed5f5f9de4a029a31ad3d1da11d652c7abc3b30d8e3a21c439fade9e",
-"1c8ec4cdfad4644f6ca59dd8a9f8dbce537b6f4cde131c6151847b7dc0c5b5f7 b3f34712de87be4c7ee6025ca8011d7bb24d4a10cee5a56951f853b7e5ae882 ac972e4859f1fb990ec1df66425581edd6bb56b785b54eae962089175b02ba d0d255d2e71b36237bcf41b394acac272eadd4b1a37690a07e25f4fb88c8b01 588e16286124cc9d756466df335b55f1dab433645cd36cc694a6b1513c1a732 bc1c50a662ae1b2cd740710c07c3f139ae37a4344e89ccbc9492e81187cdf4c",
-"d2a9dc05308c3043236832925aaede5af46c60f70796ea8d5798e039d47cec7 1778919339872ada68c88b11b9184ee1793a17f4268c4b08ae4eb6d2826fe706 1d2af0de1387dc68b58aba61533c620ba20a2085eb3d97b0a15d4c8f51689300 3c2a7c2c183e7333e572de6c265b53832116829e3b8ddc98915606be59971d 94251b3ed13fcb65c0be4960e0d44f162050334a55d142ae1f727cf70116205 caba50fbe6e12b6753529a01386d20b7f464866b7557e8c6b6d99ffc2c6e677",
-"2a8ffc62ffe4a4807e63e94d74425811ea6a698a00c2d3d0ee04a38b55974b8 43c8c7f009fa65da6e3717c167a7ed5b87154e4a84f48e43f8409e1b9dc1262 d86b0da162d8a05082c33d5160f4349973a140ad36a7117eae2d3f006e9a9fe 304d4fabcc8a3a910b4c13a2d98dcf47d08547e86d7a739315f6b45720aaf8c d35c9766ab1ef6323b33acb6ac4eb7e7a7c1362784b157abfbee998cc9b596e 1a23bc170f79849c58165572a95aebe546d025efb046d4bb8dc0c7097ed60113",
-"1676786db9da9ee98f082e664151ee3cfbc4822d27cf1e64ba1269612a032ce9 219b0941ed6f5c4f5706a73ec1425ea3879fad0c65f81df2cfa271d2ba8cf729 4f620499dafd2ead0791d9cd0af59959851505ffe3ff3acf44e2560b4f5c30c e8e6bfdce08939790176b6273bbb5c2c419372858806afe0456a5eba0e101ae 4e4dc2cc1ee984012b0f7acb5a6b89e969fbd30b638817713a014749a49b086 4b02d0a164e53d7812c16ae69073e6e410d6e234d7dde31d736ccd23468f426",
-"205f2b26a810d795537e1c417cc6b419025b79860a9cf81efffa5efaa3121b5d ee0b74b1d39ae2258a72025d209506506f190be15579ea015d7144d2c6c7704 2282576ed752d0faddad868f76c9b50e719d327dd57ed3d65b46382075bef29d 41768c8c702c76403cf1d4350b196f3df74c64ac2a1e4fa089d0900c45aca67 154cb357b99970b40ae0901d3d72dad5674449f407d3e368cf8b305e85b8ac7 24e30be5840b051c87f98aff6735d0b9804aeb5510adf213d5c21f6bc5bf7abb",
-"1be29c2e133d1013094b59edb9ba71b47ae4e84247abe788cec4f2f79d385d41 13be740b6671dc3f588bc41b9082240a6994cb7eee8e33a8f45d13cfdc8d6203 1bb78cd9772146bfdfc86eb3d9b0b29c67b1f8feff5da8d7ec3c7774329f54ca 10f0f3ee2f1bb38840cf0b43bb7cdc64894986680aa673c24771efb09793d7ba 1bee7763894d328fe976a43a2b291b67073704f49fa6219f9f60ab18808cdaa7 13ba832ce0e466671c3ab263825310451cad68982129dfa1f51734a2fe2ba24d",
-"222671f5cbfdbd64a13843ac77d92b12453e96744c85fdd51f4e1c28b85ac524 10e30b990c23ef304d2300db636fdc3e750873207f9b0925657f2e9e3054588e 1e627020614901fdf37fa78b6cbad9152a72d7af6affa5c5fd406451b3034882 a4b758749092553ea5ef27f857492327f67b4336629e9e76241ef60388218aa 16bc91cbc98add458d5cd811e34847af7678802cd91232a5e8a79a46ff761edd 14580ff966b4178a369ea9d303fae85abe2b69ce77c44cfe3df7a2cad346d12c",
-"4451e4f92f07896229284ed920d8aa778d4de99b1c19b0e89a1c3380b3dc17e 113a05f65d747c781feb44c7e02b75c95d2476623a862ead3425507007e23a3a 1a2afbda930c694092aa8cd562e26b69e148282b1c0e51667cf37e917b971b43 235bc0ecdcf0da06e01d51475e6e28ec11af6c7406f98cf5590545ade8ca3d6a b6d9d8ca5a6f68ed96883457ff6a711e3c8ff702882b20fdf08de02dba24269 1eaf6537fa7e0224b05b55b14ebf339b63562dc57a46babffe89c92ff294cae7",
-"5c1645d5882bd2c567007cc011839917f9adf1b247e4cf58767a594dbf334df 20d0f6541bd75f9fbae1688544e264d242ee02faa2d4efdc20a8682ebbbef9a d8794675daf17062d02273a26d7453507bf673a914b1ec0cd965108968931ae 1625e6f9a34aa5a88a0adcb214f5031718b459cfdfb48a7fd0417e20a8b38a64 154ae02748725114a08166163499f61ec39b520cbd82247fa8970f097d384dae f249586ae878db14dc3a9dc5d2e58cf26e76c34c04be2e023f8491a3e6ec2cd",
-"1e03843f4c664a49ef0ae0c052b0a202c643a76e2e201daa7a8fee125e13fb83 1943554258015a6c8bb82ad553d37518dcf137fa6d751644e24fbccbbef7119d 10aa67e2ee1742061352b522f20d68aaa2bd7fe552f5137934b6f40577f582f1 f130521a3be055e20c6909eb8f8023ccb5e2bcb935fbe97df034d337af5fc46 1c8d71143b4a83ea3523a1b315e8f3f0b5fe602f7106a5e7bde03d08174d05ac b903706aa2837cd7ff5b3a7b983d292cc31579637a5892528825293853ed2d6",
-"1413e912d927e5e7742f4c8516ffe946cbf05a6ec6bd25ea9d83eb71b4eb936a 23f5e1e7a267cd84b2d4be329c65223586685a021b141f140ecffa9bb0bf4430 1e84e5bc32fbbacce25387aedf70cc8c63f669ac6d12148b1bbdfaa9420522d8 f81641ef8c5728eb3da4a8c071f0f4d6de779758a1e52327abf503532d8992c a12b82babe304f0107c276af7ee8dc87ad2cf139c341f0396d304ca20f00b22 2233bfef7f21af7a393e7444ab713bdbc5bd9920630db4265d321834feac3367",
-"15a9d8fa2aae8d8e9bdb23813f7c752a131e65d2501985c6891628ccec2080ba 26bbae92d9514dcde3b8563c024c1737f6a4ebac4c2f86c78388deba730422b 1d6821807e83761c53a231bd9ce1b71d289b894817e2cc97d6de8d740753ddf9 19bb6eb6dc18552b3cd8229bc74461253068582a31a87c07c7e228e3beee7464 a4ac4a897a40e0f1519fbbaecede615416ac90fd4abca23c84426970b175189 ff33122337dc7ef93599368910d3eb96f7553e516dd858e25e4e67d2944d9a7",
-"12b5f6fc0fe8528ff7271c0c0f11303c0eeb02556b2f2b627043a78e1dd8dc7 6db45646b39888537e702b22f26c0fdfdac910415bcf9b16551254b60a1a16d 18a991efa8282bd267f7ddf019cd77269fd05ad44bfe126acd2c145a85e36c35 5c0a17f8b76aaa99f3100f8cb02ff255706d4cccd2708c25858346fbeb10dc2 5e0faafb9b335e9cf3835a384127286bc39c93034ac703dd195207d3c3dc77c 2d8a7b0af99d23bbb6972e7fe18e3df678356a95dbf4736ff9bba8b4a2bf35a",
-"12a9ddc515e4bc8c543fe49e130227b69a10ee44c4373106a43f0905d962a2c1 489d46cfcdbf01e8759d5ca13137bdcf2ee0d0179add17c0060549413685370 d20538a11820b532bfba2ae3e75178bbe207d83e319ae0398dff36556b1c3d7 2babd0059d6166fef1c459a12116f2b0cbce2055c94d509a49dacaaef64d211 189a483c499f04e4414711e9d5f530ddcf47d5a31915edc71fa47f73941e5426 15cef90d6ad4c488ce9ed04e411289c39a642a45161686bc18bea2a76e8b0032",
-"1fa1814bc4bf2fa13e4a0a6eebe747dff9c0778c28b6203477f31afeea5a9322 1b76bffa77fe990ea129e23625567f86460b2349a0b9cd06ba0f114655bfe0ff 20b6a7830bab7707ead88b661188a5bba352f52bcb515fcc3481395ccf55c3ec 57245a401668d36640926a5c93f2df08ac034e14ce1b9ad0885e02bce2298e5 6f4b1a0fe52066995cc360ec63499bc948087a1cd6b062e195bc3bdaaaa0f55 106b82c03acccf156276672404e5b373513268e636b78dc7a7ed525dba218e9e",
-"62a10543ce70edf233954d59c8def1b17ff81181a05c95d4b0e2d1bc18ec882 15265960e79cda4ce7b453ebeea4a027b2b60380dffe09e1992cafce7860d8d6 276a88525a70d140ce7f0067f0fbd118b6bbf1120abfcaa242312131f570b3f 15113bd171a7635266c1bc33d7ccef7f84385a5d9e0e3a8653fe6c03d1f34c0f c18b14bef443ab8e6b3899e92334102e0d83d6d2db7cb039908c59767878127 24bd88570179f7decf9e76f50d1213ae16ab394147f6eb52d7404350726b313b",
-"102c32516b03ca323560f845bcb20336fc471e88599f000afe842281b85f8fd7 240ddec9c5141b7cf217cda43b4889f16c1f9754056de17b65a39c5b3f2bf85d 194cba2b9f7edeb526b41689750ddc3cc20502b194147d237c1b05655c6735b2 1c9bf26c5b97627ba348fc04b5b286cd578e08bba35937a94fe8e8c0be42bac0 28b3bf3e8c568cf87f125ce887ba04011a3dad172642b4ac5db2067cfe9d61b 18362ce8a0cf44a9e666d73d8568a6980d1ee933637c79747c120e5a6f06efb9",
-"249204e775f625aac126c0e1e9af2b2ec55d8a7ca3476692baae3fec01106082 1bb5fbf20558eb354271b21e2039f324f0a9ebab7063ab2d0a587f4ee4f0a6c6 9ff9fbe8ca09969346f005e83b99fa5b1a06b34418898ab5e89ba9d136795c9 1b300a40e2910687da5977d14e61fba29ab12a1ac4e1b5202ba50ba47ad91a30 f8aa8ecba9e74effe317ef2260622d780e52a973c454b11a3230c2c1c306f1e 567a578e7ca96e76df99ec8d37772e2a649a0c10be5be62ecee17b8ce9c01e",
-"c0935ae8433be8177cfb7b88145ad0553c639e5f97b2d4d0f8394ce6f188e6f 3e6d5a9ec3c56cc60019bc770f291bcdfa10af578aa9f40adc2dc523ce202af d2267b8a49e5eb72aa7870c4552c1a9cb7747a8a236b70bef87536519316a8d b889556dd99257d724373fafd8ef2e1b15c2150a690ae1602f34dd52724517d 17e904263e0e7c0f4ed1f8e507add57cdf4ea98fdf2858a96ef3ff44009012d8 136033731552d7779d76b9a7b20fb88a6401c85d1f6d4811870dfaf0b016c665",
-"1f6526a4935495ef9348f4bbb5e3f2aaa4e47d64232f63fcd0dd32b6769830e3 249c093a9a8605ee94c20eaf8b4201ca832bbd12e5799bf19f38eadd44f0c40 227553b1a8d7fc2d155e6b67c82a9eef87f00da270c45f2c2b1c4d0ba0ff68c7 2287da173f926a799314bffb72c0346f74bf17e97cb1c853ef650bc3ae8e8c09 2018770467a90c2f82882a870b8611a95855d8961ddc8a85e9a28b578ba3d914 a940ed36042541297ebafaca5a050172cd22f11182eb71bddb6ac7db6e08bff",
-"233621b30235eaf95f3514a080c6224883a530429b53921827c73ad81a6296ff 12cc7d3e2c41bf703409330d14e58b46b754c0dabbdb4809c92ad02d3a8c3955 d8cf53dc7375e2439184bcdf638852c0a722a33dd2198259daa6174c3593e6f 1f67db1bf760e24d743059684800b312620efe63f6baaebe9e2260904e335b39 42e2aaa97c940ac3b0b12b1b252d0e7fd8a2b1e48cf079a51237136dfea58bb 6d6edb2071ae130da9f90302aa92e306dd238b3b8af0feda78056fdc74df210",
-"e9a9c25e475bf9bcc7f3f85f81eda67898f306252aec05b979867c2b60a71e2 1d4bee38ef166f0bf0ad0ffeb5cf35b219fe4e29a822d5047d5dd2dbce472a07 b45aa3ef71d13b29bc71a91174b5ba38edb4da8860f716a7c74211474aecf7e 59177d6fa3245164a2a03122c6d3c89053edbca31f1da9d0294d829db6e7ec7 e76ad153dd3017c3cc114dbf13111189dbc613a3f75a782bc2246bc003af31 85429383c0477bbd07d1bef8222c9735e33bdab16f26c8f829af6e99be03ff6",
-"118dd88bd5b885006eaafce2aa9cd07760dfc3af3ccc3577572b63bb3ac6e9c3 510e1ce1104d484b46b0a03beb2a6cb6edd98432ec6129f6d8062b0319d9e1 1423f7993554980962f7fbdd27da8d72dc278337a27294605f108140db9443a5 1679f85ac1193e3e48ae2098940fdf9d73eda7921f73f8dfbc5c8b59424f02f8 21bc797303f2351cb5953f88bb4c0ef12f0d5368a200d80b77ad517e4dcb493d 1ef6b8e764cee9e807497a0b3c9f27e6adbc9ba5b35c23178d2c6dbdbecec536",
-"22c453ccc69171570a845366401ec229685dc17df44144155975b820fa17990e 35e34412e7bf892e402161c9fb90733ef21dc17b32826e7bb514cefe2768c0f 18c88fd0ac7040daf982d3402cd0278ca1c28a2db7ba6688492a87cb7b4c1570 1a70428259999bf2f2e669d1558c7880022567dfda7f4a4b6daadadea337165b 229642e1941866af8bd1e80ea27f3f9adefbef7fe83312d39c7fa60f03f4d1a2 1ca01d3337ba20c34e1fd6fe7d1388cda5e1c977db77407107bc234f74fd7b30",
-"7c9c97b270c51b68d2c8e62919e92445588185eb3c0f952fcec1eef35286e0e 221dea356e4aec63b078120c590878a7807ab232ee33e9ee0485a39daae53e5e 173646423323712ee44f9b7cc455668993cc1e645943c543c3996aa2e9f94be3 1eb285166c9a8ae120c9425a5084d459f505e5eb2c4991afd5433fc58e1fb6aa 22d4076911575f8a1ae7cc5d3c54bd77150a6d9eb7ac1a65a19276bccdde23bc 17bd2288971b4e8560d70be179f976cae961b75e83c9e113a8182e2fd93e0dd0",
-"b6e5247924ca51fecfa82f5edef9deb3628b58160eeb57dbf8bfc67b806d503 7fdd097712594d655dc48ea4be4ab70ef12f9c1c94a3df668b780785144e2e4 220c67062397381bdd55fe8309b8e733a8aa3422d2ca60d91bcdd56e32718bdb 2500df3074d37f36ca09cee1615c718364ad846c9b29f0929ecaa0e47c282261 2301a1ebb69a245de6ee178b23ccd91dd046b9191117aee25cabe93be56aae36 1a791eaf1f0ce805acaad13bb1d50c0c99aaab1856cc1c7efac823d4d06074f9",
-"27f16eada78233bd12825746445122291df0206abeae2a50818d407910f45c f7dec0b6ed8b1f34d65d41fd8b5354aa953b3ae5f26ee23f271f4c109d14a65 108e6f701fb397b1590d8246a6c4e100ae1dda21fa260b4361d71fc4fb520e09 18c6b53cf83adbd0b1385eba6c163871aa2330e1848cf308394717a5fb4c478b 19d806205aacb0c9dcec87a3621f9a22fd64567ad6c92375421de3c87cab91ca 17f07b0bdac223ea830c66538558b8cf588533620049257cf9f658c94896ea55",
-"1b7f3a149c96bf85b2b9b9d5eedf23d13b162752a32b7b988849ad02e8db3796 121f593363b0e9b554156dcc7eb5c0510812ee46ff04a7af85513f48c9ba6477 604efcd4930a859fdeb39ef3fa67f77be200b357934784e7a295b25b11aabcc 9a07d868191a518deecd73a16377d4dfac7e73adfcafcf0a89494008ab01c6d 25006b655fbe6c8c793f0ade374a3761da37611ce652cda8fc4e4104239d732e 20a5af4ee7a91501a8dabc3e00b28241d49a318fac013e879f5c83a41d748147",
-"15e14b8c45a032d45ab397c0f71f961f88a5a391ccb3957e98f533446d72a410 16b4c59c45f96216c0323b311336d3a3077af4c36b0749b6d147b89a921550dd 22912dc06690a4a9125ec29f05d7f6ff0c1487ff7a1ddde44ceef51b0576dc80 5b2c9e16493119d805865f65ba03788d3bc1dfd502c2b844476699405075949 f21f4a4398ac8c78d23e2a6ac49ed4eaf1962239849826fb007cb8b752e1be8 1761cd122bdf6a1b4c4b30a40f2bbea435fd2fb11a09b643a70790a2ad14b8d8",
-"1455c3016821b3653c3ef7f46c09057b96dae771d93228a3c9f1e773cc0d6b9 2425429670280933bacc8b0b660239562ef59bdf097a55727dc2c57d760a7027 1a439f39d819a2dac12662a7d959539a08feb200eb48394da81f278a6096288a b5e91773e94a99ac6e73a77b1a05467ee3b4b2ca1d3bf9fc466f442bbede62 b2c4e41f5fb917b165bba7af959b5079d66e47a69222b06567c958d2a0020f3 e672183095179b4ec98166f9888f529191d18e250edb412f220d88e4bd84c1f",
-"23501284d9e6afdb2077f5faf92e63781c293e81bb170890d6e555b36b4a7c5 10a18490eb2068d3a7b9881553b42a88d96f1868890086586b96fca5eded7433 22fc947931e1c397cc412a980f6ced9d9b522b0d41ea439e1317ef09905fd46d 1e85ace87d110792de28e394ae1eb1fbb02152b00eb0735b108d81146d2159d4 171925a6d21b06f134c8cb74a5698d885a18a2bacdcd65a7966676e3de646010 c9dcfb67f391f911d34ae7007df2baa7e3c675b3d7aad89d3d714c0eaad27f0",
-"12cee29e61adc777b51a40f16e69ac0f996af6b0e6559c7e55cae42819eb011 209ecfeac0553e993e5d5c521fe136210e2685fb0166ed862d45e369508b7cd1 232ae2e070de7557254e62aa31d1d10846f7c021e90bb6846c310286c373ec74 10fdc13eb66261e9fafff1e8f1b8d77d03da9f0c2d09139bd9c220aca01807bc 17780de6e7d9a5a678238cc49843479ac03ee43bbdf32692e41800ed454472f2 e679b641d0dd532d93e8e8f4c5b474b12f5738fb695bc1a49d52fb0947e3bcd",
-"3548c5cdfddcb890107b35947efdbafbe20f0b91b291b96ce84d32746a305 230b104a5db2b3c6bd40c9c89a3e18e1326875833965ee74445548dd687ff3ee 1a2a0974c4b2bedcc05e4ebc344fe2468717ad552ae03d7d8848b70b7cbaf4f4 24064acec01eaebfa0e9478b02ac8a58ec24447b2ad939862dea38f2c9452b26 f582d92cb774e28f4cc126d2278e302590ba61095874a95b6daa53bbde17a12 164f86921f240ca46fb97be66691ae31afbbacec7c7b3bf34b061989b7e6e74f",
-"11188236209b1426dcf18325c2ad03c65d93cecbfaf887575ba6e1e27dfc45e2 e3e13dca8ec6b36cc9c5a0b9b82995aa0241220d59c4317a8e3073d97ddf30b 4d447dd2de522450dcf581f458f73cf85a694807de1c5b7aec26bc6fa53cceb 915fde08d9f488684ccad3cb673d7b5d3370e753a9507df98d29f2692c57429 1050ed79af2b47d4ba79c8a713e0bef72c0854ff375cf8592242305daf63e067 1e015cfc30784f59600188c84ce179d392a862764090aeecf0b35acea464461b",
-"16e21d3ca101d75e393860543272ec7b61b7dc1265f2d2aa03f8453fe2c8d1c6 12d251ecb30ad48aa710c19c7e4268a85461d941ae868fcd40370ad8349f5ed4 16a5781301c514a7be892b2a37ac2ddff913fc334bddda5c07dafd995b848160 72c42e76d0d2f46845faa257e682bf1e6db5f0bdae67189fff44d579eb07c9d 12e04686d010c1532da3c85616e47d56c2ba7a5ed381c6e2dd656558a271e496 18c23163fb0f8265ae332a1122b170ec8e228dd7ca22e03f118fa39919eea291",
-"14a5749d6711a71457eaff20f198632cd160266ed42242315cc253bb8645c3c1 3f68208d01cfda2188d4f8c5497bedfa91b85cdfb6a7a3eae48795ea647c14b 22f39c106eb617d0735c839bb7230509ff76fd7fac7b066c94497e373b26e531 3c7fa16286898ca569b55c2a27b953ce1cf36455ca389760dc619f5d50010fd 10e8c296042ec10371aa5307cb4f30336d2401709216ce1e698ca4c84e9d8508 e5b07161f80d592cb0afd9caa62dbf8db7ea2322859dc6cbb94571244e4a91a",
-"1e83247e09456e3635948ba5d74b68083a3df9103f35719b5d9c0a44b6740fdb 17c7de11e876ced09ec8ced8aae4ac72b5f5897d65c756afc9c52dcc65197f51 544f8179fac1522d79bb3dda29e7e5f69cf058c7f4b15f4c1ebbfc67ba8b4b7 1fee12db2771acbbb6ed74420e7b3fafee8db120940c82bcce97718f7e11920d 12d24d08ccf76d6c09d7315d5ac0fb115093ceb1e6f1cfa9120b5bc7b4134000 76d57ad2482923005f1a1ab1566acb6c3a80fe58d5fad18d0e355c86609862a",
-"1bcc61b0c00ceeb043d1fafa446d220a2c84614bebcb2e5af8377bb47f5ac338 448115ad1ea10d7495c7673531e83b6f5a583e92707600b53b7340ea22d041 23d9194d45b5e5650b3a9110ecacf0bed9ae873e1bf6438dc95c42aa09cae457 1633bf2d1cd3333bcf0b2251b27bd36d02c445f4fb37f86da380b62d773e1171 d2c429f30a003cc03f542051dc2355dbf2f9234d98621eaced474150aa87855 17a2e84d674aaecbf464a8e84054681b1b8bd5709b20a4aa5fc1d9dfe9670cb9",
-"154bbbd97deb38fcdffb30cdb8f4f775b9fe487a581b375f2076fb9cb32625d4 8b8466e23a4aee54e22eff69283f6126edd80f68dacb779bd7c3cebc04df50c 41d97a42211b0821b29f1cb0ed367067535cbbfff040d1217598e400ac23187 4eca06fda95d93e11c0fd587c31e5dc56d10f837024029e0a5190129314a640 176f4f2b9e7dfcd3efa92cd5fc6339e9d50eaf1aeb6c379bf5399c7842e715ce 1625e4b934e4c541532500599890cd77c843fe0f693a1534e791a4592df657f2",
-"242c8ea88218445f1a408847b9b4e85f09b38d99e3cd36d65d2243ed15b09cf7 882d14aa2e296ab55f6edd9d497e863e8f149421de4ef58e25fd84915e3b99f adffb6214cd70da62993132f81e82d737ef93cc411a7ddff0f3f5c541693b6f 3b901ca6369302769496f52b196739f676eae73ff01800e999289969e06ac56 a16c0603b956a1915e26c682b9fba763e28c12216e6176ad143f233883300e5 1007f778f72f4060dd8e7bc2ab320fbb02d25fc137acdffab59d4a6d5eb5d800",
-"23c26ddbd55612f1bc643d9b6936278675f77557aca600d42441212bb4dc5b9d 12fd0fed9885b1d8d60ef972bfcbd88e4e9a27f945f054dd4020d73add462f41 12353ae4cb392e0e0c59aa633ad349b9cd093e81c0b43fdd461aba9292b0b584 d315a0d934d8b523525c6335e90da9f6aaa052691385db4edc29958d571c0d1 22115fb8f44f4c3377ed2b8c7ce21dcb29d2bb3817d6bbd61ce65e2a5d1ef877 1aa4fb0b4039c1758d4cf69583c2678d3b3ddd953346aaf51bd75da752a319ca",
+#if MCL_SIZEOF_UNIT == 8
+static const uint64_t QcoeffTblBN254[][6][4] = {
+ {
+ {0x8c5c1b842e501310ull,0x6a418cdaced77710ull,0xf5ad725dd0d9a5ffull,0x012d501f32362f48ull,},
+ {0xb8a8a8c11e51dc62ull,0xeaeb87e0f25a8611ull,0x9ba8738e4483d511ull,0x0664a4e36d64379eull,},
+ {0x4a5af38c0aa5930aull,0x189fef61a74c388dull,0x83cc3225c7748527ull,0x2107491582310dc6ull,},
+ {0x43aef621120a524aull,0x359d06a56e339486ull,0xdf5ab35e2222d9b1ull,0x20968bac939743acull,},
+ {0xe8e4c0bb65cd67b8ull,0x255a0859bc55ff2cull,0xf1c57d1da3c060c6ull,0x138d83468f42cc0eull,},
+ {0xdf985e5f768c149cull,0xa059c65c4b5da3ffull,0xed3d38d9f77bb968ull,0x02281f01255a850cull,},
+ },
+ {
+ {0xe3f53d8cfb4866a0ull,0xa0f9a16a21c159aaull,0x647fc210c7edf3a9ull,0x0db92f588c73caf9ull,},
+ {0x6e9349b777bc2cf1ull,0x4fd987eb22e2469cull,0x666644a8e61b0a0eull,0x02f5bf9aae96c0deull,},
+ {0xd5fd6288342479ebull,0x74022b671c6c8d8eull,0xda32d1b497cac7b2ull,0x0abecf35a19b5c7eull,},
+ {0x1500891565b5f9aaull,0x4b7ce141cd7f4361ull,0xadf3447c534846c1ull,0x078b36a30d45de5full,},
+ {0x37f172cff76e4b77ull,0x696d093b3ee37e4aull,0x2193797b7da56c6eull,0x1f5fc9efcbbb93e7ull,},
+ {0x4c7d799b765b8f44ull,0x7adfd285e906edd8ull,0x79d68eaaf88a0885ull,0x20707d672be892cbull,},
+ },
+ {
+ {0x84bbf3849c691e74ull,0xeeb90e1efc3e3436ull,0xd9d9bb6257bf19e4ull,0x1b37ef04ea7d6f85ull,},
+ {0xa6bdbbe0895ba12aull,0x58cade2ad0f1aa84ull,0xe0bb325678a2c748ull,0x23d1992e977c788cull,},
+ {0x44559f0b0f4bb2ccull,0xe61b479bc88980eeull,0x2a70aa9df3e28c92ull,0x18039bee97722b74ull,},
+ {0x9e5667da3db8e9e6ull,0x826ba07eb28c31f8ull,0x3f8b4eeb463d6923ull,0x1af85c2b10d3a2f0ull,},
+ {0x8783f372684ea930ull,0x1aa0d9e436f41ea7ull,0xc84a3fc56af9f624ull,0x0d02698756cd5a2cull,},
+ {0xe47407ede7b7c2afull,0x7d665c59e37ee7a7ull,0x542b91f12e0fa2a7ull,0x2084e73dc21f415eull,},
+ },
+ {
+ {0x2aebe318f3d167c6ull,0x5a2b2364b3abc614ull,0x31b2cdfd847e0053ull,0x04f0f63eed2a2f8cull,},
+ {0x0573d320ee14ecf4ull,0x4e0dc9d92e543ddeull,0x58a280570cac8d36ull,0x16226935e8e9f9bdull,},
+ {0x2d51a89174717a26ull,0x7341be7f883d0806ull,0xc9b4ee66364066ceull,0x018c79b95f127b49ull,},
+ {0xe5420d2f4210dbd7ull,0x179c22d607a5c801ull,0xe3aae016e739bcc8ull,0x20c554233ddd50caull,},
+ {0x6c5c4b29c77bb152ull,0xc30df398c85f0f2cull,0x5d5096a07ed6a257ull,0x0790d485c22a3639ull,},
+ {0x8aadc7bbf2cb348eull,0xc339d87c2118c2cfull,0x8f49e0eb46961ca9ull,0x24740f0ee2134c2cull,},
+ },
+ {
+ {0x3b80354a061dbf06ull,0x961e0dfd74b84147ull,0xeb4b27dbde455fc1ull,0x100da22e6baf58b5ull,},
+ {0xb156ffc78a60a8acull,0xc873bf776b8daaeeull,0x5a702f5446bf83fdull,0x1fce59e50222949bull,},
+ {0x32d7640c0f717812ull,0xc58d05abdc19ceedull,0x1e63c2a492849373ull,0x23443ce8fb2d6feaull,},
+ {0x870f2d1a2e39f52eull,0x7aa53cb06541429aull,0xee7b80b7031f23beull,0x0a8a095b3fdf2cf6ull,},
+ {0x4e489bd278487a58ull,0xa914d93e5ed31065ull,0x6720c32ae140db7aull,0x0c22020e6a97031full,},
+ {0x7535115a15420cceull,0x2cd019bac6256080ull,0x8234c3b61757e461ull,0x24d65e78c88298b2ull,},
+ },
+ {
+ {0x1f0bdc2cae53aa21ull,0x263506a6526641afull,0xacd41097fab7f62full,0x0b2c92453d474a86ull,},
+ {0x2d23a58a46d63e3aull,0xa65ff6f1f716fe37ull,0xb86dc831f970fb2dull,0x0bc3cf38a191e63aull,},
+ {0xeb0ca4fdeba41bbaull,0x969cf610e1a3a009ull,0x93c5d1bad6c7240bull,0x20ad29c9a9f1d6d6ull,},
+ {0x006a12a187464b7aull,0xe354d9be0ec65202ull,0x9dff5c227947f5b7ull,0x24e3dc2833ba4d2full,},
+ {0x9350693ebfdfb4c6ull,0x07d8abf27abb8fc3ull,0x58f5ab0b518e5113ull,0x125f2d7d40ed8650ull,},
+ {0xc9fd435af6e86f34ull,0x04dc07374f373455ull,0xd040d286d71db00dull,0x141a1253f3bc2a50ull,},
+ },
+ {
+ {0xbcfee5dad6ad33b7ull,0x8cd72df36c5b56daull,0xc2949399ad52da69ull,0x0f6ffe6d68a398d6ull,},
+ {0x777dc689b038aaf4ull,0xf7a8f41c7c04e9f1ull,0xcdab24ebcea39892ull,0x0178d69b1b935d81ull,},
+ {0x65a001a22be563c6ull,0xfc1b2634dc76eafeull,0xed4f6ea19949392full,0x0e4e9127957d60e7ull,},
+ {0x919a1c91a123e003ull,0x23f8ec239ef8a15dull,0x0470cb40e520d6f5ull,0x0be9b58098cd0f01ull,},
+ {0x735e236220cf1152ull,0x82e68710903f65b1ull,0x6c932338d29169ccull,0x0e204d6a8c7d5034ull,},
+ {0xac47692ec8245f1full,0x125db7c68d7e7a9bull,0x6ead9899d3150beaull,0x1957068d4a3da4b8ull,},
+ },
+ {
+ {0x45c168b2bce7b4daull,0x63afa3b276f9f910ull,0x60af02b6be9889a6ull,0x1adad7fa35385ae7ull,},
+ {0x8d35cd7e7df59aa6ull,0x13cf29589f4b84b1ull,0xec6ecff2e1540013ull,0x0ecbf75abda6eb1dull,},
+ {0xf6ce05fc3becfc23ull,0xe4ac8d257a7bf44eull,0x4c12510765eeaa43ull,0x06c870a377df50e4ull,},
+ {0x2f6871bdc1d62dd7ull,0x80591505c1279cb7ull,0x1322088b2719ecd2ull,0x222e71f8f5995a2bull,},
+ {0x2d1a1ab198363dfbull,0x35635c96cfa670ceull,0x7d5034dd7a26c656ull,0x003bf0608625abedull,},
+ {0x98ca35cf5ed8716cull,0x2265e1237bc6df23ull,0x403b67933e14f23bull,0x17bd2dadc39729fdull,},
+ },
+ {
+ {0x73eaf26576b3ee71ull,0x1e385de29d896044ull,0x25a0f40f08a59317ull,0x19849935bfbebeeaull,},
+ {0xc124cb642102cadcull,0x15bc408ad6ca7826ull,0x2d7fb7c9392b5314ull,0x191fe8471669f053ull,},
+ {0x4519ddbccb6a7c26ull,0xf93bd195baec8228ull,0xacd754a721948defull,0x12f17b60c7e426bdull,},
+ {0xcf447b92b04c15dbull,0xfcb7da793167f250ull,0xcbabb4ee570c4306ull,0x190ab94c6e5c81ceull,},
+ {0x66edbe6740930cfcull,0x00c8c644983a181full,0xfe9e80b984c44209ull,0x1dd6f530584a7ffaull,},
+ {0x14c61214aa1a9038ull,0xc34e5e23426cf8b6ull,0x89fca910ec46ae5full,0x04f1b9161a0f7c1dull,},
+ },
+ {
+ {0x60c3a79ac91ab4deull,0x541e051ca71a1a2bull,0x490abafd41a5d25cull,0x126275c8a46cf343ull,},
+ {0xe5da0fcfffccd2b6ull,0xe3820301b166bb43ull,0xc6599e01bed6085dull,0x226548dff57c5cfbull,},
+ {0x36428b1296882728ull,0xe08312e604299b9aull,0x5a15c889ce55478dull,0x172710198cd7c270ull,},
+ {0x2450f291477cc1ddull,0xcb0f85c9d92d1bc3ull,0x86325c11cfe0e296ull,0x13ff03a4bd5be082ull,},
+ {0x74298091e426bf55ull,0xbed700b48330ccdfull,0xb1ec45894f74fb11ull,0x1716d956bea958b0ull,},
+ {0x91b29e513e9a4114ull,0xcdb3b373910c02fdull,0x268e148f9431fa75ull,0x1288ec8fde3009bdull,},
+ },
+ {
+ {0x02ae4c95e0afb8caull,0x8e7aec631cf8f5dfull,0xdfd9373259eca3c3ull,0x1fed34fb88af7224ull,},
+ {0xc47e420205b5c88full,0x7207ef7451d1c567ull,0x53262358433f5294ull,0x193248ecf07ad085ull,},
+ {0x49de15f9bb694200ull,0xc35f531086b5c242ull,0x95a1903858cd5140ull,0x032a4992511b1f97ull,},
+ {0x42ee2c4def1faaa7ull,0xf6ca28bc9d99cd60ull,0x83c60d620a1e004cull,0x024ccf0ba1568759ull,},
+ {0x6122291bf42e7d82ull,0x0866090d368a8205ull,0x11f04812ad6ec708ull,0x14cdebecb4ec13edull,},
+ {0x535e8fd1ac15390dull,0xb37b579abb1773daull,0xbace0a295cd4b579ull,0x215e20d42270bcb0ull,},
+ },
+ {
+ {0x400bdbc644ac1d92ull,0x6d856667d971f595ull,0x03343816a1bd40f7ull,0x0361ad7534821a43ull,},
+ {0x824222acf8437091ull,0x79141c3205b1032full,0x6b4d331fc9974530ull,0x1bf965a7ba2bade5ull,},
+ {0x0bf66d1afdad6063ull,0xfe6571464fe71527ull,0x3ec25815cc90ab9bull,0x132ca2d9d51c3b56ull,},
+ {0x37e3ae17fb5ac815ull,0x2dfedb4efe3f37c0ull,0x4b086ea5032745a4ull,0x0f966cabdd479e9full,},
+ {0xb5266c229b7ebe0dull,0xc6717a5442929826ull,0xad22a19d8892adf1ull,0x172da87fcc14d4f9ull,},
+ {0xae0d9866d891bb59ull,0xc500c36e3fe7d354ull,0xc2b582f2929b23abull,0x11428eb730dd4e8full,},
+ },
+ {
+ {0x81538fef8e07dae0ull,0x3c05274665489b39ull,0x36e4401350ceb55bull,0x23822f2029f31339ull,},
+ {0x9a946e7c30090ad9ull,0x5bbc4c8c656ea3fdull,0x3cc2cecb7ec7227full,0x075a6fe87014899full,},
+ {0x504b2ff7fbb0366bull,0xdbf315791bc3d5e8ull,0x34b16de185c8c4faull,0x0c722a3dffe0761cull,},
+ {0xe1b2c1fc3b33c383ull,0xce84d3e5182665f5ull,0xbcedf2f72de4d795ull,0x1a84c62c0c4a6f6full,},
+ {0x85ebabd309ae9553ull,0x1330ec03b0ac91f7ull,0x8f42ba9c8c1ae123ull,0x24c230fae89db4b9ull,},
+ {0x63ba534e151566b6ull,0x7e44c5bd39e6334full,0x06921595325d11dfull,0x217f3a4e9d6413deull,},
+ },
+ {
+ {0x25ac71f16a82e592ull,0x47846dfdcc378ef2ull,0x75c53c75b38260a2ull,0x039b9da33bf9b997ull,},
+ {0x53d30cb619b09dfeull,0x566d6a55a184cd91ull,0xa589c53ae28a8e0full,0x13c05b500d5f285eull,},
+ {0xd22faf3af0a087b6ull,0xd5e538653ca52380ull,0x42c893b42092e080ull,0x18f7a1bdd3badfbbull,},
+ {0xdba4e6c94bb0a0b2ull,0x323d4769578ee4deull,0xbaedb0f8e01fdb15ull,0x21ca037715dcfe00ull,},
+ {0xe6ccc0bc06afac14ull,0xfb943c10916b581cull,0x2d5694a4c968aff2ull,0x054a1b209a812e31ull,},
+ {0x1983e59a45dcb02cull,0x71dcb184a30af740ull,0xb75b69bd5ae155acull,0x13c7fc9ace199224ull,},
+ },
+ {
+ {0xddbd6b95067516b5ull,0x29ca0360372d54e8ull,0x3e2955c1d6748678ull,0x1f8b276aafcd2c7dull,},
+ {0x893187796c272ab6ull,0xc843325fc53fa37eull,0xbe658fac833007a3ull,0x04bdf08356fbd83full,},
+ {0xa0863d3fd012aa1cull,0xb1b2c2c3c2fa879eull,0x4cd718b80433407dull,0x1e1ff82d0a23f609ull,},
+ {0x0c72fdbda5da70b5ull,0xfa2ad5a7dafb202bull,0xa63ce1e889feffefull,0x030b328f5fa93e0full,},
+ {0xc4a01585dc609f7eull,0xade61ef3353eda34ull,0xfa884e9a73d65e8eull,0x24750424a4543a02ull,},
+ {0x54f07e883bbe27b6ull,0xfb41ed1660623383ull,0xe112647feeae3cabull,0x055cf71a930304b0ull,},
+ },
+ {
+ {0xcc5f813b041ba372ull,0x1b892909c069bfd9ull,0xdfac1a47d46ba3dcull,0x1bc553fdedaa97e3ull,},
+ {0x623da812c8d71640ull,0x59b3b84486ab96c5ull,0xd77a7d970676d563ull,0x09473f20b0087846ull,},
+ {0x9214acc8a6ad6f76ull,0x53e9b1713dffaa0aull,0xe66631ab33f6477cull,0x16792dc3fd2138d9ull,},
+ {0x612c9ffc45facb86ull,0xd43cb433555b3da3ull,0xb0ca697731e8202dull,0x141ac2b6bfa546e5ull,},
+ {0x51b480946640c6a2ull,0xc71f677b6d96bb2bull,0x7e0377527663c0beull,0x036b2f551e8c7db8ull,},
+ {0x09610b7524482b53ull,0x65196312af7438ccull,0x7050f94a8a70305eull,0x06fde0d46e6c059eull,},
+ },
+ {
+ {0x707927b8fc061859ull,0xd9e38cc9ebbd94ddull,0x96eba99c855f975full,0x0c12d088d263d28aull,},
+ {0xfa236e22ee58216aull,0x470b1efa73ec6699ull,0x4c5457a04dbf7553ull,0x1a1dc4cbd3ccec1aull,},
+ {0x9a327665f6db6d31ull,0x6443a4f683536914ull,0x58eff845741ae1d6ull,0x0b784f2a8c259646ull,},
+ {0x08cfd913a263ce94ull,0xe58aab8c6b488744ull,0x335fa717116557daull,0x137bf0016a4e4c17ull,},
+ {0x0c14566b7ca1106full,0xb5fac75743cf44ddull,0xe87d1d95b95cba63ull,0x1d2823802dac3d01ull,},
+ {0x445099d6807bd76cull,0x41b66837529eb51bull,0x84267670e2264913ull,0x0ed84664bb37032eull,},
+ },
+ {
+ {0x938964e622d307e8ull,0x2edeb24656039ea6ull,0x642dd6f7e2144be3ull,0x1d31590cb07cb098ull,},
+ {0xe57bf1b8729263c1ull,0x48f9b371fd250d79ull,0x670ce0ee36513b90ull,0x1b908986cbfec7f1ull,},
+ {0x9fc8ffb876636effull,0xd57385d67c117698ull,0x4813753691eeba7full,0x0e36785e030209eaull,},
+ {0xeef1935cb4c5e8f1ull,0x1b8726a75ab06681ull,0xee973c5cd718bf31ull,0x026910b1fafe0208ull,},
+ {0x8c1826b08792fd9bull,0x00325e83cb419665ull,0x9cf44c5b81265badull,0x2462a8c0fc4f85f9ull,},
+ {0xa4068de0bcf85b4cull,0x5292433f89646bedull,0x05b4bdd364d3bc53ull,0x1e25be7fab47bf9aull,},
+ },
+ {
+ {0x51c27ca3424bdf72ull,0x167926750fe4d445ull,0x41985a737513c6e8ull,0x070056ab60d56287ull,},
+ {0x0a23d1344dfd91a0ull,0x6c518fef27a24e64ull,0x059a8c49360f8730ull,0x0f1d38b2c12772f2ull,},
+ {0xaa2a1e60b126566eull,0x1ed2add1bb218007ull,0x71385f0a8fabe78eull,0x024c0880d7c0fd5aull,},
+ {0xeef5704923a38ff1ull,0x34506a9872581fa9ull,0x78152bc691cbac5dull,0x0c41086d97a7fccaull,},
+ {0xb0c0d854ad72b6b6ull,0xb38455c3e3e5f457ull,0xfe665f1f4ddafb6dull,0x10373cbf9ca2add9ull,},
+ {0x8a306e7799aa2605ull,0x5dbca515ad2f9733ull,0x9b8b80da928edeb0ull,0x0052a2d2f8f7b1e2ull,},
+ },
+ {
+ {0x13e3e3df198f8864ull,0xc80f05cd02b931f3ull,0x8826debe7162b2f6ull,0x1d319ece62ae45e7ull,},
+ {0x313e17d4fa80fd67ull,0x82c5f606bfe97eabull,0x66f092bfa6b46100ull,0x16fde5bd28d86353ull,},
+ {0xcd4e7dfcd19cfb45ull,0x026d1e42ed44630bull,0x8d6b54119bc07918ull,0x1eff361145a4818bull,},
+ {0xc80d511a9a448566ull,0x9df3e33a28a32065ull,0x5a5860db779cc4aaull,0x1c226a0a4bf8c193ull,},
+ {0xfe0fa440138c1ebcull,0xc32c16bd93c71daaull,0x5e053ef1a9d73a8eull,0x2105d2d85afe7c65ull,},
+ {0x553c6840e4d14fdfull,0x600506d781612ff5ull,0x3ab288079ba2da8full,0x19b8f14b3e9cefeaull,},
+ },
+ {
+ {0x101f9567b577f4ccull,0x9d7dfbbb95010b1eull,0x1801c3f5ef323a26ull,0x08066f8c302be6e0ull,},
+ {0x301f867187aa8cc4ull,0xdcb504ccd5deb64bull,0x7a19b8838cf066e1ull,0x1ce06a9c35aa0809ull,},
+ {0x010a732bda3f076eull,0xf36ad54eeb0df727ull,0xe7e3ba3699eb12eeull,0x1d65654037809723ull,},
+ {0xb8ff82aa0c8f9e89ull,0x39fd76e872772dd1ull,0xd0a9a0cf7b300237ull,0x21cdd8098a877d70ull,},
+ {0xfff1cbe2921532d7ull,0xe919f4cbb2b62082ull,0x43858e6488e4d9f3ull,0x227d32cd853e2a11ull,},
+ {0xdd7807401672de18ull,0x7e3167a195002069ull,0xef20051461812a1full,0x1ee6ee09899caca3ull,},
+ },
+ {
+ {0x18dcb2c8d68bcf3dull,0x55c30335c441d056ull,0xddcda87759df1c4cull,0x0bd72b9d00117407ull,},
+ {0x53759bf204dc6ee2ull,0x5a491198ccc07fb6ull,0x21023e765d4b082bull,0x052467582f570a64ull,},
+ {0xc71f8479e69bc9efull,0x1a8b07f3a7f9f4e4ull,0x4898f9336938503bull,0x210b416bb55f686dull,},
+ {0x2ea76a804a514216ull,0xaed1c043402cba72ull,0x8e96b191c8508968ull,0x0a6845487a544d0cull,},
+ {0x20f8a88abe36a0fbull,0xf7be80390c4df565ull,0xb4d6ae73ab0ac7b4ull,0x03dee2bd150d75caull,},
+ {0x31f41f54a9d5ba23ull,0x32d8a838645e8303ull,0x1ce68866725d4d63ull,0x16eff9d7d55f24a6ull,},
+ },
+ {
+ {0xc9ef98de3048fe85ull,0x91d247303ba2cc5dull,0xfeebf32febfe0c50ull,0x12193bd2dfc7cbaaull,},
+ {0x05545cc46d6e2f10ull,0x0c1885bd6a173fe0ull,0x19192206ce77ae4dull,0x21bc567dedda3bcaull,},
+ {0x0289985f4f8a3e0eull,0x46a6f360ff57d0beull,0x8ecf6d8914a57a28ull,0x16fad252e99a0f5dull,},
+ {0xa1ce7650862f87aaull,0x624601ad20a0a754ull,0x181fa95e1dceca7aull,0x04c7063bf6031512ull,},
+ {0x47221f77cb9dead6ull,0x0b0a1f41bf04b7daull,0x1285ec2ea904f669ull,0x05d815fd67d084b4ull,},
+ {0x2f4621c7c48ac6bfull,0x6c94a7fc7433ddc8ull,0xbfbc34ad00dc77bdull,0x0d420c22daa0e425ull,},
+ },
+ {
+ {0xa125bb06b8f5ae5cull,0xf130e54b42e247baull,0xa7d5d0e59b914ac6ull,0x071f28cba94510baull,},
+ {0x23781cfd40419519ull,0x2ea1f31e32e9865dull,0xb81d3422cdc1a049ull,0x09b4ecf31bed5dadull,},
+ {0x7cad0528d1f2ffbdull,0x4aac3a0629f7f4f7ull,0xffa90428bf6d62ffull,0x1e313094fa295c2eull,},
+ {0xac9d8af47d98869cull,0x8ecebc8bdf6c41e8ull,0x859d29cb97f9f264ull,0x0c9223c674634d76ull,},
+ {0x5adcabb24bf08460ull,0xbc91aaa43338b671ull,0x7abcd2f2031ec66dull,0x19b3dbaaf6fb5a1bull,},
+ {0x00b0c3d6c69380bbull,0x044a0a413e3aaea9ull,0x48d820b0f17d1ac2ull,0x1745bb82ed277652ull,},
+ },
+ {
+ {0xd921b459e78504aeull,0x79ef5733fecdb405ull,0x04020f6200148defull,0x1163b626e015e688ull,},
+ {0x0781fcc9b627e44bull,0x5d8c6c8944d557a6ull,0x5493d9920c1d32fcull,0x0ecdc7510a2f454aull,},
+ {0x7086854c556b47fdull,0x4ec3f6dd8ad274dbull,0x274e92925edf85deull,0x09e6aa987250022full,},
+ {0xa63453a7eb3a8fb5ull,0xbd83f1e026f71f82ull,0x1386ec55e6450e3full,0x00873f000047164eull,},
+ {0x179dbc93073fcb3aull,0x592c5c9b8baf6411ull,0x4b81a7b27b4d9070ull,0x1d26ead51df9a20eull,},
+ {0x6a244f14dc36671cull,0xd1e9d82e3c5bea31ull,0xbd883c1283d17771ull,0x1e09e59618c6163full,},
+ },
+ {
+ {0xc1b0578027cdeed9ull,0x7ad19ad5cb04d6e5ull,0xee6f7f36d5ed1465ull,0x01d616ac45e80f5full,},
+ {0x2c0c7df57e945feeull,0x9709cf12715b87afull,0xa6e99327a9e2f868ull,0x1dc75e316e45b2aeull,},
+ {0xa7bc3e0832276f4bull,0x36ed99677fa22ffaull,0x89da95557e5dd91eull,0x0c1f4bf5d672d3b9ull,},
+ {0x25624941c1047a5full,0x463ccb3bd3fce3b1ull,0xd115fc8570096682ull,0x17145e34ff1d0e9aull,},
+ {0x4a3a34676a6a378full,0xac89a12198b0ca1cull,0xb97a2d982319e20eull,0x0caf54593dcf42e9ull,},
+ {0x7a07a3d321faf4daull,0x6a062e2ec939fd56ull,0xfd7ac47f692009a9ull,0x1121561f1c332cd7ull,},
+ },
+ {
+ {0xcfb495c8f564f52cull,0x39665331e96c838bull,0x42c49998a1446b14ull,0x03cc4e294cff3ff7ull,},
+ {0xd41d69b42b557d10ull,0x98dab8bd722a39a0ull,0xd4e24c4add54c81aull,0x1344527908d19fa6ull,},
+ {0xe9648caa7c8da128ull,0x8497aa165fdee967ull,0xf437d75fab691b76ull,0x052cbd6eb6436a4bull,},
+ {0x389f7092e280920bull,0x9b8625c09555310bull,0xe91f49f9d9031898ull,0x1c95a9d881b18be8ull,},
+ {0xe8605b4d2212b1fbull,0xb1c4f57736dbf0c3ull,0x8a90c4bcc09cad9eull,0x12f03ba47d2620d4ull,},
+ {0xcbd4494a5830ba3cull,0xb5a5d7b6b635fb6dull,0x154076781060c57aull,0x14e27241d5bdbe5dull,},
+ },
+ {
+ {0x5545df3af64ec9c4ull,0xff2adbc37d224acdull,0xcf02fc8672ce69ffull,0x0a7fcfe0b85478f0ull,},
+ {0x402246e5d134054cull,0x0bd5980440304ad7ull,0x3df09979193914b6ull,0x22610927d3977e51ull,},
+ {0x08235659dbd58c8full,0xd159c4e705d2f6d9ull,0x3c5ae22b53836251ull,0x137039c4b43f1c9dull,},
+ {0x4ee6c2b196d188bbull,0x54ecda987459243eull,0xb3a9cfbf1aea2748ull,0x234243a4a87cf61eull,},
+ {0x248eec552d9a5ef7ull,0xc8a98bee264e9e26ull,0xf3bcd8c268d0c073ull,0x16e365499a23e913ull,},
+ {0xbb406c86a8f7f2d7ull,0x03426cc36d053972ull,0x047915ec9f472c4dull,0x2318c0030bfcee73ull,},
+ },
+ {
+ {0x3c783caa5308c82dull,0x81bcacdec8f45662ull,0xe169822ce2c0837cull,0x09c179836e05b980ull,},
+ {0xf5d882cd842d337full,0x861761db32052e52ull,0xd6721854e7e686f2ull,0x0d22ec35de13a291ull,},
+ {0xd9dd477876f2c6d0ull,0x5ef6dd9d6e4eb6b3ull,0xa22e8bf49d19a102ull,0x1fb12cb296762e6aull,},
+ {0x8372df5211227b55ull,0xc3994286779c5c02ull,0xa302f7b3be87ac5bull,0x22b842b9b918d821ull,},
+ {0x2cb75b8cb17911a1ull,0x5cd8f56c7f4dacf8ull,0x09874f95dd87d8d6ull,0x15b92554f1bdb068ull,},
+ {0x4786ec1f88a80264ull,0x91dc53364f6aec54ull,0xbd9bd414e46eb290ull,0x1b27b7fd99d5e212ull,},
+ },
+ {
+ {0xbb40271789b4bb9cull,0xddf3b8f645386314ull,0xce090cc4ffeabe23ull,0x0c3920ea76b361f4ull,},
+ {0x14c64e1eed2b5edeull,0x99c5289af2511b43ull,0x5de1d7b1dccb2575ull,0x0b5e4419ad2e1c52ull,},
+ {0x0c04995f7bb764c0ull,0xbd9eb56e1c742072ull,0x9009271bd281dfd1ull,0x2464821365b75205ull,},
+ {0x49724e13fe376d0cull,0x189fb55cbe1abfc2ull,0x80162bfa5b8980d5ull,0x1a96550a3916c5caull,},
+ {0xcd79e4d9633065d2ull,0x2b51887668a49a0aull,0x8785b375ac581035ull,0x10a5547822c082bfull,},
+ {0xb98da2585b65ccd3ull,0xa8015a03bee86a26ull,0x2eb6a1e1bd1cdf1bull,0x07bf364897d1c8b8ull,},
+ },
+ {
+ {0xb791c26545931abcull,0x9a1ad86e4fda79aeull,0x06855828328d0314ull,0x116650fafca899dcull,},
+ {0x28a52543d8cb599cull,0xbdd390c86fa4fb40ull,0x903fff92c56629c6ull,0x0b496e3e73b93100ull,},
+ {0x0f5622574884b369ull,0x48dc4ad8ee6e6c07ull,0x9bf8705b75932345ull,0x12fdae5ddc53fccbull,},
+ {0xffbab25f3f4dbcc5ull,0x2e29054e3b0c795bull,0x4e42d9554507c4a9ull,0x0100c6ddccafa66full,},
+ {0xd070c555e094dddeull,0xc33dd5eda3c03e59ull,0xaf83e343a270dd9aull,0x098aee3da1fa8162ull,},
+ {0xad02918dc6d1048aull,0xf04903a09f8c1e95ull,0x51622aaf4848d918ull,0x1ded54a06c3901a3ull,},
+ },
+ {
+ {0x407e49d022ba5897ull,0xdb8d26843eab7b0full,0xf976a1b95413e184ull,0x0aec3abccfa3f870ull,},
+ {0x5a796987e2623f7bull,0xf9ab67105d5e1b46ull,0x9d9d00cfaddf51aeull,0x1be8e30f8202ab70ull,},
+ {0x793be4982c00e681ull,0x903759a9286f8a57ull,0x16a3daf170f851afull,0x13cf0c29956077fdull,},
+ {0xfb5787f1092904dcull,0x9a7422c14149238aull,0xe8e61be7e9ad1fc9ull,0x10029d3e967eff2full,},
+ {0x4a4887f39a050b1bull,0x2b7f2e2d718b7fa5ull,0xdcf39f9d5e4ccc87ull,0x0e9ae22b93f3c46cull,},
+ {0xe2085144d647649full,0xbb22757ff04f1a8dull,0x39c323e34631d9f7ull,0x04865b0a1462c9b9ull,},
+ },
+ {
+ {0x684266fdd1482bdbull,0x49a7895fd6b87933ull,0x28476e848c17b925ull,0x19e95e89691c4ea5ull,},
+ {0xe9a6a6bccaf53a2dull,0x479cccded58ddaccull,0x16049a3fd6291256ull,0x07364abc39086c40ull,},
+ {0xf24da0fc6d7e4b82ull,0x29591202c08178e9ull,0xf9b5dff7dc07aae1ull,0x0ed06afda0a02f78ull,},
+ {0xcac1c41fcc1f702cull,0x52b029719b5224f2ull,0xc838b665539d0364ull,0x246b61674cf835aaull,},
+ {0x44068b26b9dce8e0ull,0x6b3a0b0e83a7c8b9ull,0x03feca47fb021110ull,0x10d9d6e7fbc944eaull,},
+ {0x3a39ad7da63fd6fcull,0xaf3e9dde8885823full,0x31511af0a15648cfull,0x19de25d493f0200aull,},
+ },
+ {
+ {0xd4fff38e62012c13ull,0xae59ef30122850ffull,0x9d23a0381a012cf6ull,0x120ae1d814828c1full,},
+ {0x42eb1c5dfbf07103ull,0xd254f031490046f0ull,0xb47882ae239b8ae8ull,0x11158120470a13baull,},
+ {0xd5144f9267a09051ull,0x66da90aae84bab57ull,0x586fcfe6e1dfc445ull,0x221e49ed2a16e941ull,},
+ {0xf467fe034d6cbdccull,0x7ac29c1d1e5e20feull,0xa110e6e05eb1585aull,0x23d954fcdf786a64ull,},
+ {0xc1ae9be330026938ull,0x874b19ab11339205ull,0x0964cbafa59f62aeull,0x1e6167f38349f253ull,},
+ {0x23efb445bd9ef627ull,0x897335bf70b7bcaeull,0xa00f86ae69e47650ull,0x2509e8fa87d5670bull,},
+ },
+ {
+ {0x22a00ec33abc6b8eull,0x09620addb21d394full,0xb965fdcb7ee143dfull,0x1febe6994e628a7bull,},
+ {0x1c710a901e98b013ull,0x2801fd688f4dddf6ull,0x0abcab0ebadf8343ull,0x10f0cfd199338d92ull,},
+ {0xd599e818b6e83ff6ull,0xb88539365c679f3eull,0x0313ce19b529a51dull,0x21f5f0b9f1cf3415ull,},
+ {0xb59034f3ef13e954ull,0x6883ab623a40da9dull,0x94faebf81576de70ull,0x14d2247af37a0cceull,},
+ {0x99757d5184162b77ull,0xf79b9dc74871c5dbull,0x608ad4501b03300bull,0x074149d915458798ull,},
+ {0xa3252b36c3eda717ull,0xc1ded9f245002540ull,0x14b5755b56dac7b3ull,0x19308239f6756bf4ull,},
+ },
+ {
+ {0x07f4f5a6f26b067eull,0x32d2eb865477dbdfull,0x6945cbc86ac200a0ull,0x1e6311fd6ef61d2bull,},
+ {0xa0d0920425c68e5cull,0x683d1987c8fe9e5aull,0xd7228b5e41a381faull,0x114a05f6a9f409b5ull,},
+ {0xf677d47e68eeea17ull,0x87f50243b30d3112ull,0x084cf054770d8dc4ull,0x0bc9fe9990a74fb5ull,},
+ {0xf22bdc5dc2eec0d2ull,0x3bae3de98c595ff4ull,0xc95e53073fd0b23bull,0x11a7e2b2d55a6ea2ull,},
+ {0x8ddcbdbb83b870baull,0x728950ad96866c71ull,0xd145c1d31fae9c5cull,0x0547d0e831e70104ull,},
+ {0xead79bef2b2433d9ull,0x0647d5966623bf56ull,0x4fb0056ba69d7958ull,0x1a0983813c5d2e9eull,},
+ },
+ {
+ {0x215a5a20e15d19d2ull,0xae9ceafe33084b69ull,0x80f85025ca380f77ull,0x1c19066c196d1a00ull,},
+ {0x359cfc6bc545de2full,0x7339f8704a758d60ull,0x64eca98cd5f2d7edull,0x248ba44255247839ull,},
+ {0xc2c6e70b389e8492ull,0xc9b97f7a19d874c9ull,0x87d7b9a332957727ull,0x0119950fe431afe3ull,},
+ {0x51eeee98aaf4581cull,0x081de6981f8512e1ull,0x4bb18cf097ac6997ull,0x21e465b23c21951bull,},
+ {0xe5bc584a9a1f5a1aull,0x1ccc4b14286b7ad9ull,0x435b382aeb470e64ull,0x1f9ae9143c5b987bull,},
+ {0x990eccb3248cd3d9ull,0xe6cfbcdbd8c8fd0bull,0xb48de18c5009802full,0x198d98c5412a6213ull,},
+ },
+ {
+ {0x43cd5d8c9073ea61ull,0x5174db54059acdffull,0x45e871c04aa7a2ddull,0x05e16d3199d840a0ull,},
+ {0x9ad1091f764df938ull,0x67637f20a74490b7ull,0xdbd73b8487d04861ull,0x15a139abaa8b478eull,},
+ {0x1b10547972b4d507ull,0xf641d3763db1a739ull,0x15597787c5b84ec3ull,0x0134b78ebf335c12ull,},
+ {0xf6b7a9d4052963daull,0x2d806855d9466783ull,0x623658a8a2d743dcull,0x00de0208fc0298b1ull,},
+ {0x1b67ee84e8c40714ull,0x620107f4c2393038ull,0x96441ca3a07baeeeull,0x0b27368271b0f683ull,},
+ {0xa65922c66ed876ebull,0xdc21179aa8971bdbull,0x9309a00b5206e041ull,0x088fc38497bf88ebull,},
+ },
+ {
+ {0xee8bf43d2fc34584ull,0x4ff6772e8da82b6bull,0xa7ae3c97dc955a78ull,0x09651f34f9ad7ab5ull,},
+ {0x103de2e1906f8fd3ull,0x046ca4e6b276642full,0x220398cd397af5fdull,0x07b984811b0df962ull,},
+ {0xd0519e42b872b7aaull,0x164acb4f7d9df94dull,0x54cd157448c94337ull,0x04c636efd3f59641ull,},
+ {0x7cf41f52f0acc90eull,0x54dff80755d46315ull,0x83a7e3f528daec19ull,0x0039b02577bb91e6ull,},
+ {0x828eb12b537a9732ull,0xd81ce0f79c6211ccull,0xcd2fd2f2e35379adull,0x1e84fa2068841dd3ull,},
+ {0x931aef70f9a3a06dull,0x71abc5af88fa12caull,0xa70ddb3102a75247ull,0x14a049c881169cceull,},
+ },
+ {
+ {0xa9975bec6d3f0412ull,0x72feab9fdc81092full,0x49f533cdb7ae9d66ull,0x18632a2c4c5b4d2dull,},
+ {0xaa9f81eeb706ca09ull,0xb1065065a3fe5198ull,0x3381765974ac94a8ull,0x0ec5d52c65b1f5e0ull,},
+ {0xfe465050a5cd7ab1ull,0x5059fae63d47120aull,0x49ad1fd731ef0aebull,0x1e018673e33f45e5ull,},
+ {0x6eebdeb52c24d248ull,0xa43988a55ccc8d10ull,0xe997fafe55d0ff64ull,0x233675abd5ad14e6ull,},
+ {0x8b5530b175fbeaadull,0x27ba08984164ed08ull,0x94a9507d0189809dull,0x12fb832d1d13901cull,},
+ {0x912ff6e6cf0c29f4ull,0x54d7a43121bcd1afull,0xcdf9fb448a1e2185ull,0x02aac1a8e253b8f9ull,},
+ },
+ {
+ {0x26a581d7ca270a84ull,0x989bddaaecea533cull,0xda7993327a4b8cddull,0x0c1637ca7d045160ull,},
+ {0x6213cd9db7a6d076ull,0xc03037d124aded7bull,0x32d9e1bd41523d2bull,0x008ea641abbe75edull,},
+ {0x7d3c23b227774f03ull,0x4a5e7805e6f9a14dull,0x1c24f1a43d487e79ull,0x18eafaffc703509bull,},
+ {0xe146113f559bd9efull,0xe56825b1a7fcf7f5ull,0xa93689399f819fceull,0x14fa96013c5a6638ull,},
+ {0x81c625bff8857fe7ull,0xc98edd68e7203a68ull,0xc88c3a681a3f1ac1ull,0x0bd4fa57e9b6d9f4ull,},
+ {0x2dd6eb21127b1fefull,0x91b039a57e0f6233ull,0xd02548bc3dc3c783ull,0x0e8a4d19a777a688ull,},
+ },
+ {
+ {0x025c54533652a519ull,0xb3bcbf01559e8920ull,0x5c53eb97c55f25fbull,0x22322b9402949dccull,},
+ {0x260ef92c70dd5c11ull,0x9e27626b6cd441acull,0xc6661507ed6f5d61ull,0x0fac1fb2f6bb53edull,},
+ {0x5511ab3bd7ea4c51ull,0x6562a46409240916ull,0x83a5e441731b870dull,0x205c0c853ef83501ull,},
+ {0x7c8ae57f4deec828ull,0x349dd08555bea497ull,0xcb5d3234c7b839bdull,0x153259da7d31993eull,},
+ {0x964b508f6fa5bb3full,0x82b5262f18242750ull,0x970156d1896d43c2ull,0x028fc28439e44783ull,},
+ {0xda5afd0f1a7d7fcaull,0xddb473f9a75a7a4cull,0x180c169ed34f6781ull,0x0cde138f3279be8bull,},
+ },
+ {
+ {0x63de6da225c321ddull,0x4832886b582d3833ull,0xb0dee708e55cb53bull,0x06c9e933c223ec30ull,},
+ {0xdab1fab5dd78e263ull,0x3e658d3d9ec3bb7full,0x3d0a56ca4a1b088cull,0x008ce74540e8386dull,},
+ {0x0b0ee452fc9bca4bull,0xfd0b0e032d16b266ull,0xfaeea7076b32cc91ull,0x1823f6048f88ea5cull,},
+ {0x3966dc6553a5ff08ull,0x85192338024e75e5ull,0xff2cc296f92beee4ull,0x229caca8d4f809ffull,},
+ {0x7702729e0d1f5157ull,0x1a3ac2432384d0bcull,0xd006954b39b11e9cull,0x118a5126dec2a2faull,},
+ {0x2e9bfe6eaf026413ull,0xc720a61aef11d653ull,0x6ea67c87c36691a3ull,0x18f925014f9c61d4ull,},
+ },
+ {
+ {0xd3b27621ad1dd1abull,0xf97b0f55f22f18c9ull,0xb6113e8be6db1114ull,0x1a8a1ae8f65ead1aull,},
+ {0x0007a32980115669ull,0x605196cb02f760a8ull,0xfbd2085c8671df43ull,0x0c381e59ea5960d2ull,},
+ {0x94116d83a9603b67ull,0x92b23f61ccedfbbcull,0x50e0fc7e78727f5eull,0x23fc01a1d8cc7e65ull,},
+ {0xd1b8a0d5024aff36ull,0x2b25d1cf4ab60e92ull,0x8dbbaf91e20c91fbull,0x185a985f30c061fcull,},
+ {0x06fe112b333faa7aull,0x9323dbd6f08549bfull,0xcf5e43f668844df0ull,0x10df0c27f29e1637ull,},
+ {0xf2afbd9928527e7dull,0xd856c6d7448b34ddull,0xc5e025621b375c86ull,0x01b0fe70c9b177dcull,},
+ },
+ {
+ {0xf09e65fdda5bf41cull,0x59ef2a8eb45985f0ull,0xfec4facae20ae75full,0x019f623d519953a8ull,},
+ {0xd5dc50c38c7e165eull,0x62fc39995a53fcf4ull,0x557a7e55f3ae1284ull,0x0fde40ac729d9ca2ull,},
+ {0x4b49ba1f5fcea25aull,0x631dbbd1d4e3cea5ull,0x7069fcd00919239full,0x09c559fb76aa0dbcull,},
+ {0xbb6348d2d3a8d733ull,0x460c7255ba85e5c1ull,0x42e7d9808787c01cull,0x22c0fd2eef2261e2ull,},
+ {0x19833887b93cc3abull,0x2cee6551569164daull,0x1c44fdcd7b0c79dbull,0x1807ed58575a7b33ull,},
+ {0x30713388923e3b7eull,0x6d541ffc75d914c7ull,0xbbb50245851f0f6eull,0x1df0abdb9048edc2ull,},
+ },
+ {
+ {0x62788c325d2b0f0bull,0x33744819eb512733ull,0x83ff060d6ff7309cull,0x18829912bda99968ull,},
+ {0xe09edb24cdbdfc6bull,0x099200c5850fc442ull,0x967790a56049a66bull,0x011cd382712b1d77ull,},
+ {0x8df4e975f64427d7ull,0x2e3901a3a7b0f55dull,0x641ec6f45805e402ull,0x06e1d0db4022cd43ull,},
+ {0x440dbd8590564164ull,0x6aa7d9c34c053da4ull,0xe0da2752be2f5aaaull,0x2264f00ad93d3d4aull,},
+ {0x716e5f9a7e68031full,0x1bcb15653094bebaull,0xf84ac39bc138e963ull,0x1d7a1fc06adf5b63ull,},
+ {0x8835962eb2e3079dull,0xc3d7c9d41261e319ull,0x30c0c53b9353bf58ull,0x03bf957dd1541c99ull,},
+ },
+ {
+ {0xe77e8891944694ccull,0x04efd57869ed85ceull,0xe9de08ffa6a88729ull,0x1d062265f1d299d3ull,},
+ {0x387dab533dc83cc8ull,0xf7fa09c0bbdf31b7ull,0x59b84e1a3762d3b9ull,0x01b32660eab7f6beull,},
+ {0xf7daf1d596d17df2ull,0xcd931e51341e0ebbull,0x51710bb172705525ull,0x244d6b81dbc7d273ull,},
+ {0xe7a144e6eefd2dc8ull,0xf5c76e992d995cabull,0x477afe1374a66f3cull,0x1aebe5717b54fe53ull,},
+ {0x541a0d7dc825c3b1ull,0x93a0cab475598133ull,0x096efa1eb12a99feull,0x17a85ece29f273fbull,},
+ {0xa36f4f86b5bc5c1bull,0x1b4a0fc57947e76bull,0xaf302e3f7838388eull,0x06aadb4991feff1full,},
+ },
+ {
+ {0xd6afd4710167605eull,0x1897263cb81c98e1ull,0x90e133c23eb0207eull,0x0718643da3a96ba2ull,},
+ {0x8344e521afad71f8ull,0x66af04f81ad9f156ull,0x5ecd25d48f404733ull,0x0234ffcdbb42d141ull,},
+ {0x8a50c65ef686166dull,0x34cdda95694e0cacull,0xa8add01d08d2dbaaull,0x1ce98a7c6ceb5696ull,},
+ {0xb1702710fa0af484ull,0xe30a4eb2f39aa3f1ull,0x7409d5afcd96441eull,0x1e0168166b2894d7ull,},
+ {0x8cfa29792abed76aull,0x75d7bfbcee2073efull,0x7c0372e7080fdaedull,0x1ee8cc19eb967336ull,},
+ {0x2a265f9eb8f2265eull,0x48f9b13b07b728f5ull,0x7b915e1225774e84ull,0x0d4eff23e23d5ae3ull,},
+ },
+ {
+ {0x13cc952b1ef56e58ull,0xeb3870335e75a7c9ull,0x2fe15087e3c0845bull,0x1011a2007bc71f04ull,},
+ {0x472e18f407707bbbull,0x053d1dd70cceea98ull,0xe200cdc8798603d2ull,0x0bddb233bffdfc1aull,},
+ {0xec920181b8484410ull,0xc6b9a9b74e18f513ull,0x84c1695c77cf9fc1ull,0x01005eda69cae7ceull,},
+ {0x7c668bd94e95d9f5ull,0xbaf12b0a06fcd749ull,0x674b2e2824d6029aull,0x23c9d63fdca6307aull,},
+ {0x92bd96dd3a545dceull,0xccb9355edd49cadcull,0xf49ca3d068b74eb3ull,0x1d9461936f823b86ull,},
+ {0x6a2fa39fa7e93bb3ull,0x468fac8c8f151f41ull,0xd12e0aec4bb21bbeull,0x2326bbeb4405b3ebull,},
+ },
+ {
+ {0x1e029295309f1347ull,0x6589babde3a80cdbull,0x74de96ccf73da639ull,0x125810442f8c9fbaull,},
+ {0x47d63700da3a6cefull,0x59c3fd0f2b9b6f35ull,0x66f1979c84873b7eull,0x02770c35ac617c99ull,},
+ {0xa757e064e4f9edb2ull,0x46eb13ddfbda28f5ull,0x519177520a694aabull,0x04f6097d775debf9ull,},
+ {0x072be9865dd6841dull,0x4d9d5c0fa6d6a7b1ull,0x1749ea911a952c21ull,0x15e98445e982607eull,},
+ {0x6fb1b6845ce93f6dull,0x52d5387b1a0f8405ull,0xd6a11cff22d72a42ull,0x2283db33f8496ec9ull,},
+ {0x77bae4ccdf2e5bf6ull,0x21812c170f736a30ull,0x5a8477a3203036fbull,0x1e667d8ca4a419f4ull,},
+ },
+ {
+ {0xfc925115198c93d4ull,0x0aebd45cf3b16db7ull,0x2f7c3d2ab0f16732ull,0x1c4b48273365c9bcull,},
+ {0x2a26617f1f00e47full,0x828f68381a20ae68ull,0x0221e65b7f01b6e8ull,0x19e45e14ca4e5650ull,},
+ {0x231de599fda4c7e2ull,0x55e6d0d3df2457abull,0x34f961f715fddd4aull,0x0e97e5f5fbfe6aecull,},
+ {0x8f1f1a8b1b687949ull,0xbcbdae7ed35524edull,0xd7c78090035aa0b8ull,0x19f2a0d7fb844166ull,},
+ {0xc397557bba8fe6a4ull,0x366daf415604f8f6ull,0xa9b99d86ac93e705ull,0x21fb72d548929de6ull,},
+ {0x6a2ff9d0392aedf0ull,0xb0a90a0d10fb8fb2ull,0x5ef8e1768350ba26ull,0x24aca64027557318ull,},
+ },
+ {
+ {0x18e3eeb6b8937690ull,0x7c87ee4ffda9eb41ull,0x59d0d9e9eb070efdull,0x10b64beb52f348f5ull,},
+ {0x60cb09b15da28d99ull,0xde4b5aaff3981423ull,0x7429b4169dfddfb9ull,0x199eb1a7a6de0f9full,},
+ {0x450661858d54325eull,0x338439f5a896f88cull,0x9d41086dd111bec0ull,0x146d0b19b0b567ddull,},
+ {0x93a470115d0544ceull,0xdbec88b263d6ba96ull,0x4162857e9d97ef77ull,0x07a4e45e194880aaull,},
+ {0x7279bdde87e7ecb8ull,0xbfcc34d54c72df15ull,0x57d3ff1a2476f6c9ull,0x0f0da2351d32d405ull,},
+ {0xffee1be1efc73104ull,0xb873a987a8076cb4ull,0xce026a94aa6b71f0ull,0x15d4bd558bf59554ull,},
+ },
+ {
+ {0xae631a8d76bd7f86ull,0x7e7d9176acbc845eull,0xea421fd87eb8808aull,0x20aaae552a029015ull,},
+ {0x5c1c015cfce07393ull,0xc678b97a85aea9b0ull,0x1eea5259304f0a23ull,0x1464e4d058ceb8caull,},
+ {0xc65d3f2d4e51915cull,0xeedd92d9fe368d68ull,0xc8df47e3a123fc9eull,0x0a40dfad54ccd6aaull,},
+ {0x09a262e9428a05f8ull,0xa0510048ec69ab80ull,0x335a295aecb01ddbull,0x05d9e955d5b1a89full,},
+ {0x5eb68ea11c52c37aull,0xe444556824dd8a88ull,0x8e380018a6aeef10ull,0x0442ce4eda39623dull,},
+ {0xa77e431b883ec5b0ull,0xac34fb82921e9c20ull,0xa8cfc2d08ef8cfc0ull,0x24ae732a4db3bb4full,},
+ },
+ {
+ {0xd5563857f984777bull,0x538e5c618a4be3c1ull,0x5f8eff3fbeab5a7eull,0x017bdafb790e0102ull,},
+ {0x6a62e076dc44c251ull,0xd4743cd8eb4cb3dfull,0x98f0d5617f07650full,0x0ef52eb4c0151010ull,},
+ {0x516284d618713c13ull,0xe651d8c5769b47dfull,0x27fb0f16b90bfbdaull,0x10e729bd4403fe24ull,},
+ {0x7770b670be42c842ull,0x6a9d9db10a3626b9ull,0x17676416c44a62ebull,0x2155a03fd59945caull,},
+ {0xcd58941a2ba1e208ull,0x2d5e3caf14827df1ull,0x6e8dbafadc4e1635ull,0x03bbd3e6d397465aull,},
+ {0x451703d643a411bbull,0xcca0c1d97355c175ull,0xc5074f56618aa2f1ull,0x04c8acdd37ef602full,},
+ },
+ {
+ {0x3f7e0caeff75a1d9ull,0x1b753ba68a2b8451ull,0xf46aeda408dbf4f5ull,0x11652b99c4365b3full,},
+ {0x3f8bf5f03132d146ull,0x0b527b11a12d2424ull,0xd587034aa3632352ull,0x13ffef8175d1a563ull,},
+ {0x2a30747e4ac8eeaaull,0x0aea36171552eed3ull,0x04e341313ec7b422ull,0x1fb62ea6d5e86357ull,},
+ {0x13c69094d2dcc5aaull,0x54573685ddc44032ull,0xd95abdd392375f10ull,0x13a501913c2f1d0full,},
+ {0x343cc1b0318577b8ull,0x98776ba96045eb10ull,0x5492dba5b5936d5dull,0x1d1bb567d6a602e6ull,},
+ {0xccf58e05f8b305bdull,0x3fee26e8419548ceull,0x62c64af67fc27dc8ull,0x08456a814b2fe18bull,},
+ },
+ {
+ {0x47f8ccf69457895aull,0x66d08f143ca062fdull,0x8f0df2e2a97b4518ull,0x0cac6d2b34b243d6ull,},
+ {0x758f56a94a45e6beull,0x63ed30c20cf6721cull,0x20e942550629c9ccull,0x167acfffb8203274ull,},
+ {0x8e727dabacc57eb3ull,0xa2f85144ebbe15f3ull,0x7fc17e7a0a6a4291ull,0x1793c43f349e48b8ull,},
+ {0xed2f91d056a5c2d3ull,0x30433d773122e8ddull,0x2c3fef6399c4f9deull,0x099b39a0e3e524f2ull,},
+ {0x4cddac568a4b563cull,0xdcd1c44d3983138dull,0x2f421d9f8d71a88aull,0x01a02cb6459cdb12ull,},
+ {0x68c09ced7ae8977dull,0x76cb2bf3a933cdaeull,0x6390cd95c4f85d40ull,0x1cad79870e6b2c2cull,},
+ },
+ {
+ {0xfd754584dcb80db2ull,0xb73ea36e2df2b8c0ull,0x3ca5645bffb60c04ull,0x1280d1e1f4dd4da6ull,},
+ {0x75a069b69ae4403aull,0xbbf6c5ded1f82c60ull,0x34919f2295d7b5b4ull,0x1f7bc94e3a96507bull,},
+ {0x9255ca27cb288f9dull,0x760719cfb400f56full,0x291bfbf807781368ull,0x15fa25b272fee67eull,},
+ {0x6054f038190f5f6cull,0xe0978a57792a09bdull,0x1ed22ba69556fe50ull,0x20ba270b20baf856ull,},
+ {0x55de530a1af249d0ull,0x249e57b2414ceb2cull,0xd98bdcde7f16edfcull,0x0ee1bfb7da744ae4ull,},
+ {0x01b24c4d0bb96ddfull,0x32239e98244d75f0ull,0x20dc68759c157d45ull,0x0120769b781bc14eull,},
+ },
+ {
+ {0x4f93886e58c4695full,0x85d6a1914aba1d04ull,0x65bb00f8cf495806ull,0x22a2413c698ae97aull,},
+ {0x5e7928222bb02f69ull,0x93a92c850ce1dfb0ull,0xab3eda670f968b1aull,0x1d80886e0fba63ffull,},
+ {0x672372572dbdeb59ull,0xba4cd6dd6cb11489ull,0xc74f1c6e3b714d1bull,0x1680ad98da380987ull,},
+ {0xbad24d644fd9ab88ull,0x5c817abf11d3ce46ull,0x50587e12664ad6ebull,0x13505c240ec7b092ull,},
+ {0x69ade81d2b6d1284ull,0xdd1d9aacd53d3f77ull,0x0888b2de31545a07ull,0x110788f6944c78e4ull,},
+ {0x81032f6ea72116caull,0xfcb0253b20bea779ull,0x3d0a38d424eba36eull,0x07bdfcb51526c1e5ull,},
+ },
+ {
+ {0xebb80cf2cf44bfbeull,0xb8d559e318097038ull,0x212ed4c3d148be8eull,0x07028dcc862fbbb7ull,},
+ {0x91e0a395d89f04d4ull,0xf777ae0142ff07c1ull,0x546b9b47f738fa6eull,0x01c284ef516920c6ull,},
+ {0x2042edb5a4eb2cdcull,0xc69cefe0a36a7068ull,0x54471d65b3238311ull,0x077562b3344b4304ull,},
+ {0xdb85089b11ece88dull,0x5c27780550f90569ull,0xb9607c12434a6b3dull,0x0d02a6324718f932ull,},
+ {0x22ef9b5c8b453c5dull,0x6fdc3875e9247830ull,0x20e375065f9e593aull,0x2351c044ce0d933aull,},
+ {0xfa0fcb482093eacbull,0xf8d695e8413f5acdull,0xc7020d8c84a2d773ull,0x11bf7584e5283fa1ull,},
+ },
+ {
+ {0xc6b304aa2adf2dfcull,0x19aac2d5544ee834ull,0xb7966f8cd629c330ull,0x1bc72a08a8bf8f9bull,},
+ {0x18a5f463799112c7ull,0x4f14db51e967ebc3ull,0xa5ddb48f64db5e8eull,0x15b4fdd8610f3a32ull,},
+ {0xe7b86b479d7e2293ull,0x931034487abf490dull,0x8c40ab7dfd28a196ull,0x1d981d3918fdc3b5ull,},
+ {0x00797000c2afd324ull,0xf2954f0f86622806ull,0x8464fe0995cd3a7dull,0x0f0a74df4ca00cc3ull,},
+ {0x639707b1839c8330ull,0x9c8d491ad7d779a9ull,0x576b7e0f24ce5f46ull,0x21fbdcc42ccd04c2ull,},
+ {0x4578db4bdfd55434ull,0x1126933c97e9f4dcull,0xe64529a8921d7415ull,0x12e48bab87ea1fe3ull,},
+ },
+ {
+ {0x3f6d2fd04bd5ed75ull,0x65e464cdac7d235bull,0x45903a63a3608961ull,0x1f60c825bccd55c9ull,},
+ {0x36b33d0fb8528047ull,0xc8d1f1ad82683baeull,0x78f4b80065c2e4c6ull,0x2066f32874bd1228ull,},
+ {0x8b6d6a4b986e8d4cull,0x58f6f275f1d020f4ull,0xe4f3c16209e87ad5ull,0x1cdc33d41ad30173ull,},
+ {0x9ec18a6cba3fb3ecull,0x31fc74b68ac834c6ull,0x256788ece76e37b0ull,0x13de6919841928e1ull,},
+ {0xae46aa08773971f6ull,0xacd04d9698d47643ull,0x3667178a594f2153ull,0x19a0cadfa3cb7fa0ull,},
+ {0x228420456325e079ull,0x3e4ec53c418fdae9ull,0xb9fee919e867c6f1ull,0x2272413f3e989842ull,},
+ },
+ {
+ {0x6420ee94e7c764dcull,0x87b3c986d488deecull,0x11dc3e6b59de7ffbull,0x14bb613bce5792e2ull,},
+ {0xcc0b60cd4e352976ull,0x794b585f70a5b463ull,0x415cb954036ba631ull,0x1e521f8201ca4258ull,},
+ {0xd707ac91ecd5dbdaull,0x08ffd44e5fd83cc6ull,0xa5f39e0f8dff5afcull,0x02315f6a55599212ull,},
+ {0x2cdbd9f11596e797ull,0x7c560adedcf2cb25ull,0xdc474409e5650d9dull,0x158bc955e7e492e2ull,},
+ {0xd6023b14352a1766ull,0xd5c271d942b6541dull,0x5dc4d1c72d25258full,0x0753f065a4cb028eull,},
+ {0x11b4229a4c62010aull,0x2949cb6b089b3aa9ull,0x01b8bdc50766366dull,0x1094dfda1e2e5e57ull,},
+ },
+ {
+ {0x773cc6e1ac12f73eull,0x77686f8d75a83e9eull,0x7ce94b7ef1bd53a0ull,0x005a7d3e75c16332ull,},
+ {0xafdc64df2ceca388ull,0x15be551bbca0e367ull,0x62d9b7608cf3b8a2ull,0x11ddfe7a0a96af25ull,},
+ {0x5d23851a77554f67ull,0xa0f51815094e8050ull,0x930af7569c7850d7ull,0x108eb034eeda1460ull,},
+ {0x28a80b277688cae3ull,0xd09ef5d30ec9b193ull,0xb6c554e32540d421ull,0x1da12923355fd2faull,},
+ {0x9db6509d0130494dull,0xe28936417c250459ull,0xde8b4491aa8d1dc1ull,0x194b8e7bfc005322ull,},
+ {0x7aaeb4f2f941741bull,0xf9d7b55b452158f8ull,0x17e172a187f68105ull,0x02f620bde277950aull,},
+ },
+ {
+ {0xf555a7766ac21481ull,0x82b12050c9449770ull,0x7bd16da27eff49fcull,0x06d1ad9a6cd69b71ull,},
+ {0xa059542aa0f64e9full,0x93671f16b269a351ull,0x795262fddcb7cc3eull,0x199f355d6263cf86ull,},
+ {0x0cbf707f1f8f73aeull,0xf483501e15982b44ull,0x2456aaa4d84d80c0ull,0x0d0ffb5393f7dd0aull,},
+ {0x62999996c09097e2ull,0x1b87e828f9fc66e4ull,0x6b17eb3166967f57ull,0x1603601303478f52ull,},
+ {0xfb776d4fd407d485ull,0xac03efdb746bf127ull,0x57bde58a5671a601ull,0x0cfbfa20d141f05cull,},
+ {0x625ac1161752cbe2ull,0xe3348570b6ad71bcull,0x155b3911f5335f75ull,0x1679ec68122edc64ull,},
+ },
+ {
+ {0x9334b4c82aee3ef8ull,0x7ea393af9d865ce4ull,0x0f4ee0906b864850ull,0x1d9e34461e27cc61ull,},
+ {0x921b1a6aa179a081ull,0xcca25db2d609388dull,0x816b69ad9a56a314ull,0x00eb3f6388c4d375ull,},
+ {0x04e25f4225e50e72ull,0x59a20b6edf897f2aull,0x0842d5f5823535b4ull,0x0dceaf5ae8e50885ull,},
+ {0xac6598257175aa0aull,0x1d5d21e8129f2efaull,0xe81dcc9497cb17fdull,0x11327c40c92dff80ull,},
+ {0x149e4b2c0a3bfd81ull,0xb8efe68c475436ebull,0x3a8bf06e9ca15cd8ull,0x152d72639c6e5308ull,},
+ {0x217e0e34f3f76b8bull,0x5c722d926b596985ull,0x45417905be08807bull,0x1e6132b54ad5595eull,},
+ },
+ {
+ {0xe5b541097726667dull,0x5583dfb4ade471adull,0x1840bff44a2faef2ull,0x093c23f8028fe3b9ull,},
+ {0xe1e3347370f6e6c7ull,0x8dd7352c4dcc2a17ull,0x3cade218210f9e29ull,0x190ff57eac6e8b87ull,},
+ {0x34905e72c173fdc3ull,0x59f8c6f4373c834eull,0x1bd9feabed806c99ull,0x1f209a7935a8ba38ull,},
+ {0xe44f080023c83b49ull,0xfd2006276058693cull,0x44b43b6e462a32cbull,0x0942a0ed8e4657ebull,},
+ {0xf7e53796340fd772ull,0xf8219ede4152370full,0x548b9b002c19940cull,0x1d0aaff93f50f52full,},
+ {0xb5987eb545462ddaull,0xe0f29867116336edull,0xcc75a11c3ff8374aull,0x144d0b8fda0a44a9ull,},
+ },
+ {
+ {0x676408d2ff1a7593ull,0xc96a8077d911776full,0x9efff30500904c63ull,0x100a6093df2ae343ull,},
+ {0xf1f92502b846cf30ull,0x57888806036aec6cull,0x310ceb0b04caaa7cull,0x1192819a3058307bull,},
+ {0xbbf882b39fec7883ull,0x4079d241f7e6e0efull,0xb3090a69b3c7261full,0x16440a02d7fb5d2dull,},
+ {0x70e9c8a88422df45ull,0x48fa15635ca49bd9ull,0x0430c461bfb96d16ull,0x0a29a4007c99f6d1ull,},
+ {0x643a2bdb308a297cull,0xe4a5bca158e65ff6ull,0xc8dd1579abdeb9e5ull,0x1ee4a94b3d6c775cull,},
+ {0xc085b2622b5c4480ull,0x8c69048c5fcded96ull,0x418ba7bd3260d85dull,0x0b22158bb6c29f9eull,},
+ },
+ {
+ {0xf661abe667e83f01ull,0x41068a7e95fd10c0ull,0xc9c4cc186cb3eb72ull,0x1a95a93a30592461ull,},
+ {0x78dfc65c7280895eull,0xb9f1514b98add459ull,0xc7d713fd92025a11ull,0x0dbe6c1ceabcf73full,},
+ {0xe35368a946428244ull,0x990da5e2783a2762ull,0x686b61b7775fb02cull,0x1a79e39b78922172ull,},
+ {0xbf8ca28c8d95600full,0x0f56487a909e51cbull,0xfa1da11e3018a2faull,0x07a32571b231773cull,},
+ {0x46c84d812bce56f5ull,0x84aa8d8bfe2b498cull,0x699ad1f34e22d74cull,0x0ad743bd99c458dbull,},
+ {0xa8d16c7e09aa59b0ull,0x59ba8cbe75f31d51ull,0x5c68705d7838ff4eull,0x1c863feb5090e87eull,},
+ },
+ {
+ {0x86af66313ed193baull,0xa0902147163778b5ull,0xa101fcdc6b2d6191ull,0x12fbff4713e6eb10ull,},
+ {0x9e1abdaf6e329c66ull,0xd8de2fb4db8e7554ull,0xb4374e1e93a0171bull,0x0ba2ecd00749208full,},
+ {0x0cad8f57c02ce090ull,0xcac04eddadd338ecull,0x7ee5c235934f9918ull,0x24db5a9b0ad7ed64ull,},
+ {0x46288ad8e01c5063ull,0x4b4c58654226c44aull,0xc4974aaf56ae42dfull,0x173e64cdd5661536ull,},
+ {0x58b3450781e7e080ull,0x14ab3a25a5e64bbcull,0x3f9f91743276d2f5ull,0x0e101d0b89b81cdcull,},
+ {0xa6bca5fbe99b2b7full,0x5fb8817e670ef40eull,0xb44cbcb05de76cb3ull,0x17110ed4912babb5ull,},
+ },
+ {
+ {0x6745e77f4e05d8edull,0xed278e7875ebb5fdull,0x3662f60864a8ccd2ull,0x028104ffc0a31868ull,},
+ {0x740b76d64f25c9f0ull,0xb519a415132160e7ull,0x550a38ed829c5f68ull,0x04ea27d6deefcfabull,},
+ {0x32d82ea897185651ull,0x04a8f5b63a90573aull,0x2c88fdfba241b62full,0x0285780fe0b77687ull,},
+ {0xfb6ebce4f4b20f13ull,0x8ce24ff3dad1a3c7ull,0x716f93b316af50c2ull,0x0a09e678713447efull,},
+ {0x6868a19728642ca6ull,0x4be5579c08e0a30cull,0xbd630b8f9c3d1552ull,0x0f277cf26c8e60f2ull,},
+ {0x1a105d54bc290b18ull,0xa7e1a7c716529370ull,0x6e5a6c5b44350fd0ull,0x1fd2ae638488fccbull,},
+ },
};
+#endif