From: Alex Hornung Date: Sat, 21 Aug 2010 12:58:23 +0000 (+0100) Subject: test - Add crypto(dev) tests from OpenBSD X-Git-Tag: v2.9.0~461 X-Git-Url: https://gitweb.dragonflybsd.org/~tuxillo/dragonfly.git/commitdiff_plain/4fc4f495e9f85eab2888f8397eb794913bc3a824 test - Add crypto(dev) tests from OpenBSD * Obtained-from: OpenBSD --- diff --git a/test/crypto/aes/Makefile b/test/crypto/aes/Makefile new file mode 100644 index 0000000000..2a7b4ad7ec --- /dev/null +++ b/test/crypto/aes/Makefile @@ -0,0 +1,4 @@ +PROG= aestest +NOMAN= + +.include diff --git a/test/crypto/aes/aestest.c b/test/crypto/aes/aestest.c new file mode 100644 index 0000000000..77ea583785 --- /dev/null +++ b/test/crypto/aes/aestest.c @@ -0,0 +1,366 @@ +/* $OpenBSD: djm $ */ + +/* + * Copyright (c) 2002 Markus Friedl. All rights reserved. + * Copyright (c) 2008 Damien Miller. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Test crypto(4) AES with test vectors provided by Dr Brian Gladman: + * http://fp.gladman.plus.com/AES/ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int +syscrypt(const unsigned char *key, size_t klen, const unsigned char *in, + unsigned char *out, size_t len, int do_encrypt) +{ + struct session_op session; + struct crypt_op cryp; + int cryptodev_fd = -1, fd = -1; + u_char iv[32]; + + /* + * Kludge; the kernel doesn't support ECB encryption so we + * use a all-zero IV and encrypt a single block only, so the + * result should be the same. + */ + bzero(iv, sizeof(iv)); + + if ((cryptodev_fd = open("/dev/crypto", O_RDWR, 0)) < 0) { + warn("/dev/crypto"); + goto err; + } + if (ioctl(cryptodev_fd, CRIOGET, &fd) == -1) { + warn("CRIOGET failed"); + goto err; + } + memset(&session, 0, sizeof(session)); + session.cipher = CRYPTO_AES_CBC; + session.key = (caddr_t) key; + session.keylen = klen; + if (ioctl(fd, CIOCGSESSION, &session) == -1) { + warn("CIOCGSESSION"); + goto err; + } + memset(&cryp, 0, sizeof(cryp)); + cryp.ses = session.ses; + cryp.op = do_encrypt ? COP_ENCRYPT : COP_DECRYPT; + cryp.flags = 0; + cryp.len = len; + cryp.src = (caddr_t) in; + cryp.dst = (caddr_t) out; + cryp.iv = (caddr_t) iv; + cryp.mac = 0; + if (ioctl(fd, CIOCCRYPT, &cryp) == -1) { + warn("CIOCCRYPT"); + goto err; + } + if (ioctl(fd, CIOCFSESSION, &session.ses) == -1) { + warn("CIOCFSESSION"); + goto err; + } + close(fd); + close(cryptodev_fd); + return (0); + +err: + if (fd != -1) + close(fd); + if (cryptodev_fd != -1) + close(cryptodev_fd); + return (-1); +} + +static int +getallowsoft(void) +{ + int mib[2], old; + size_t olen; + + olen = sizeof(old); + + if (sysctlbyname("kern.cryptodevallowsoft", &old, &olen, NULL, 0) < 0) + err(1, "sysctl failed"); + + return old; +} + +static void +setallowsoft(int new) +{ + int mib[2], old; + size_t olen, nlen; + + olen = nlen = sizeof(new); + + if (sysctlbyname("kern.cryptodevallowsoft", &old, &olen, &new, nlen) < 0) + err(1, "sysctl failed"); +} + +static int +match(unsigned char *a, unsigned char *b, size_t len) +{ + size_t i; + + if (memcmp(a, b, len) == 0) + return (1); + + warnx("decrypt/plaintext mismatch"); + + for (i = 0; i < len; i++) + printf("%2.2x", a[i]); + printf("\n"); + for (i = 0; i < len; i++) + printf("%2.2x", b[i]); + printf("\n"); + + return (0); +} + +/* + * Match expected substring at start of line. If sequence is match, return + * a pointer to the first character in the string past the sequence and and + * following whitespace. + * returns NULL is the start of the line does not match. + */ +static const char * +startswith(const char *line, const char *startswith) +{ + size_t len = strlen(startswith); + + if (strncmp(line, startswith, len) != 0) + return NULL; + line = line + len; + while (isspace(*line)) + line++; + return line; +} + +/* Read a hex string and convert to bytes */ +static void +parsehex(const char *hex, u_char **s, u_int *lenp) +{ + u_char *ret, v; + u_int i, len; + char c; + + len = i = 0; + ret = NULL; + v = 0; + while ((c = *(hex++)) != '\0') { + if (strchr(" \t\r\n", c) != NULL) + continue; + if (c >= '0' && c <= '9') + v |= c - '0'; + else if (c >= 'a' && c <= 'f') + v |= 10 + (c - 'a'); + else if (c >= 'A' && c <= 'F') + v |= 10 + c - 'A'; + else + errx(1, "%s: invalid character \"%c\" in hex string", + __func__, c); + switch (++i) { + case 1: + v <<= 4; + break; + case 2: + if ((ret = realloc(ret, ++len)) == NULL) + errx(1, "realloc(%u)", len); + ret[len - 1] = v; + v = 0; + i = 0; + } + } + if (i != 0) + errx(1, "%s: odd number of characters in hex string", __func__); + *lenp = len; + *s = ret; +} + +static int +do_tests(const char *filename, int test_num, u_char *key, u_int keylen, + u_char *plaintext, u_char *ciphertext, u_int textlen) +{ + char result[32]; + int fail = 0; + + /* Encrypt test */ + if (syscrypt(key, keylen, plaintext, result, textlen, 1) < 0) { + warnx("encrypt with /dev/crypto failed"); + fail++; + } else if (!match(result, ciphertext, textlen)) { + fail++; + } else + printf("OK encrypt test vector %s %u\n", filename, test_num); + + /* Decrypt test */ + if (syscrypt(key, keylen, ciphertext, result, textlen, 0) < 0) { + warnx("decrypt with /dev/crypto failed"); + fail++; + } else if (!match(result, plaintext, textlen)) { + fail++; + } else + printf("OK decrypt test vector %s %u\n", filename, test_num); + + return fail; +} + +static int +run_file(const char *filename) +{ + FILE *tv; + char buf[1024], *eol; + const char *cp, *errstr; + int lnum = 0, fail = 0; + u_char *key, *plaintext, *ciphertext; + u_int keylen, textlen, tmp; + int blocksize, keysize, test; + + if ((tv = fopen(filename, "r")) == NULL) + err(1, "fopen(\"%s\")", filename); + + keylen = textlen = tmp = 0; + key = ciphertext = plaintext = NULL; + blocksize = keysize = test = -1; + while ((fgets(buf, sizeof(buf), tv)) != NULL) { + lnum++; + eol = buf + strlen(buf) - 1; + if (*eol != '\n') + errx(1, "line %d: too long", lnum); + if (eol > buf && *(eol - 1) == '\r') + eol--; + *eol = '\0'; + if ((cp = startswith(buf, "BLOCKSIZE=")) != NULL) { + if (blocksize != -1) + errx(1, "line %d: blocksize already set", lnum); + blocksize = (int)strtonum(cp, 128, 128, &errstr); + if (errstr) + errx(1, "line %d: blocksize is %s: \"%s\"", + lnum, errstr, cp); + } else if ((cp = startswith(buf, "KEYSIZE=")) != NULL) { + if (keysize != -1) + errx(1, "line %d: keysize already set", lnum); + keysize = (int)strtonum(cp, 128, 256, &errstr); + if (errstr) + errx(1, "line %d: keysize is %s: \"%s\"", + lnum, errstr, cp); + if (keysize != 128 && keysize != 256) + errx(1, "line %d: XXX only 128 or 256 " + "bit keys for now (keysize = %d)", + lnum, keysize); + } else if ((cp = startswith(buf, "PT=")) != NULL) { + if (plaintext != NULL) + free(plaintext); + parsehex(cp, &plaintext, &tmp); + if (tmp * 8 != (u_int)blocksize) + errx(1, "line %d: plaintext len %u != " + "blocklen %d", lnum, tmp, blocksize); + if (textlen != 0) { + if (textlen != tmp) + errx(1, "line %d: plaintext len %u != " + "ciphertext len %d", lnum, tmp, + textlen); + } else + textlen = tmp; + } else if ((cp = startswith(buf, "CT=")) != NULL) { + if (ciphertext != NULL) + free(ciphertext); + parsehex(cp, &ciphertext, &tmp); + if (tmp * 8 != (u_int)blocksize) + errx(1, "line %d: ciphertext len %u != " + "blocklen %d", lnum, tmp, blocksize); + if (textlen != 0) { + if (textlen != tmp) + errx(1, "line %d: ciphertext len %u != " + "plaintext len %d", lnum, tmp, + textlen); + } else + textlen = tmp; + } else if ((cp = startswith(buf, "KEY=")) != NULL) { + if (key != NULL) + free(key); + parsehex(cp, &key, &keylen); + if (keylen * 8 != (u_int)keysize) + errx(1, "line %d: ciphertext len %u != " + "blocklen %d", lnum, tmp, textlen); + } else if ((cp = startswith(buf, "TEST=")) != NULL) { + if (plaintext == NULL || ciphertext == NULL || + key == NULL || blocksize == -1 || keysize == -1) { + if (test != -1) + errx(1, "line %d: new test before " + "parameters", lnum); + goto parsetest; + } + /* do the tests */ + fail += do_tests(filename, test, key, keylen, + plaintext, ciphertext, textlen); + parsetest: + test = (int)strtonum(cp, 0, 65536, &errstr); + if (errstr) + errx(1, "line %d: test is %s: \"%s\"", + lnum, errstr, cp); + } else { + /* don't care */ + continue; + } + } + fclose(tv); + + return fail; +} + +int +main(int argc, char **argv) +{ + int allowed = 0, fail = 0, i; + + if (argc < 2) + errx(1, "usage: aestest [test-vector-file]"); + + if (geteuid() == 0) { + allowed = getallowsoft(); + if (allowed == 0) + setallowsoft(1); + } + + for (i = 1; i < argc; i++) + fail += run_file(argv[1]); + + if (geteuid() == 0 && allowed == 0) + setallowsoft(0); + + return fail > 0 ? 1 : 0; +} diff --git a/test/crypto/aes/ecbnk44.txt b/test/crypto/aes/ecbnk44.txt new file mode 100644 index 0000000000..7047566088 --- /dev/null +++ b/test/crypto/aes/ecbnk44.txt @@ -0,0 +1,779 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Key Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbnk44.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 128 + +PT= 00000000000000000000000000000000 +TEST= 0 +KEY= 00000000000000000000000000000000 +CT= 66e94bd4ef8a2c3b884cfa59ca342b2e +TEST= 1 +KEY= 00000000000000000000000000000001 +CT= 0545aad56da2a97c3663d1432a3d1c84 +TEST= 2 +KEY= 00000000000000000000000000000003 +CT= 0d00c6457a47c6bb8cfe076f6e2b1e15 +TEST= 3 +KEY= 00000000000000000000000000000007 +CT= 429c3c22dc979510833529cb64de09e3 +TEST= 4 +KEY= 0000000000000000000000000000000f +CT= 0d68e0da8ec69a1854cc16be884ade2f +TEST= 5 +KEY= 0000000000000000000000000000001f +CT= 9a2daa4fac08769bbb1ca4f2353b1a3e +TEST= 6 +KEY= 0000000000000000000000000000003f +CT= 88325854766eba22ceaa99abd630f258 +TEST= 7 +KEY= 0000000000000000000000000000007f +CT= e0f2198deda952b01ea8ffea4171e66d +TEST= 8 +KEY= 000000000000000000000000000000ff +CT= d5c98c48255f78cc47e149e55cfc3ffd +TEST= 9 +KEY= 000000000000000000000000000001ff +CT= 09ccb66c1f0ce1854dc191c1373acb8c +TEST= 10 +KEY= 000000000000000000000000000003ff +CT= 14dfa44b544d2ca39a9a1c9a3d75fed8 +TEST= 11 +KEY= 000000000000000000000000000007ff +CT= e7df1b3adc7ebbdce19f15c82f173126 +TEST= 12 +KEY= 00000000000000000000000000000fff +CT= 8dc8a75eaf822ddf416988713e9b6e4d +TEST= 13 +KEY= 00000000000000000000000000001fff +CT= bc435a1dcdf8830d82cd5abe7bf71e46 +TEST= 14 +KEY= 00000000000000000000000000003fff +CT= 81835a69fe117b54fdb7916bcc091e71 +TEST= 15 +KEY= 00000000000000000000000000007fff +CT= e0af87cd4468c740ab180289f3738b6f +TEST= 16 +KEY= 0000000000000000000000000000ffff +CT= fc84885326b157843a4d200d86021b33 +TEST= 17 +KEY= 0000000000000000000000000001ffff +CT= be337b0bcabab18d3392a4d29f8d419d +TEST= 18 +KEY= 0000000000000000000000000003ffff +CT= 33a78574fedc6dcca40ee0f51ef11037 +TEST= 19 +KEY= 0000000000000000000000000007ffff +CT= db1821758c24162b81dc8ca0add209ab +TEST= 20 +KEY= 000000000000000000000000000fffff +CT= d3d6d60115e9043b119649ad2e7f7f84 +TEST= 21 +KEY= 000000000000000000000000001fffff +CT= 750d9e49b62cb695ae2f6680ed434451 +TEST= 22 +KEY= 000000000000000000000000003fffff +CT= 818e95e5c0e00179e04c08dbc357ddd8 +TEST= 23 +KEY= 000000000000000000000000007fffff +CT= 3803f7220b65bbc880ba1488241cb1ba +TEST= 24 +KEY= 00000000000000000000000000ffffff +CT= 2fcebd84763a9de4709973f5e0621ed6 +TEST= 25 +KEY= 00000000000000000000000001ffffff +CT= effa0eb04d6f22f209bb143bc736fac2 +TEST= 26 +KEY= 00000000000000000000000003ffffff +CT= 85bdbf034b7ee6ae3b4fae3792aa9d39 +TEST= 27 +KEY= 00000000000000000000000007ffffff +CT= 7b775b78421acd32973a4f437df7ed52 +TEST= 28 +KEY= 0000000000000000000000000fffffff +CT= 49377373c74f6ef924210fc45883fdc6 +TEST= 29 +KEY= 0000000000000000000000001fffffff +CT= 7d0a9cad70099b5133f09161e91d6c32 +TEST= 30 +KEY= 0000000000000000000000003fffffff +CT= 1a9106be9d21a2bdeaf6d78bc8b2cba5 +TEST= 31 +KEY= 0000000000000000000000007fffffff +CT= 21b574eb8ea8c3de03a75ad887b513eb +TEST= 32 +KEY= 000000000000000000000000ffffffff +CT= 51c039a643c8c227e8a1ed4a68eb9764 +TEST= 33 +KEY= 000000000000000000000001ffffffff +CT= 182e9a760136eed736c8aa8ec57fa714 +TEST= 34 +KEY= 000000000000000000000003ffffffff +CT= 1ed5c7412ccfa01e857787d5ac380884 +TEST= 35 +KEY= 000000000000000000000007ffffffff +CT= 22ba5de0abcef81dd10f91478713d525 +TEST= 36 +KEY= 00000000000000000000000fffffffff +CT= 85bc221981c0018f764f0008d07205fe +TEST= 37 +KEY= 00000000000000000000001fffffffff +CT= f137a8dbbf79f953d6e264937567c63d +TEST= 38 +KEY= 00000000000000000000003fffffffff +CT= 4aa85f7a1bebafea39994f8301b71604 +TEST= 39 +KEY= 00000000000000000000007fffffffff +CT= 4a42c5efe9d37cc1863c47329e01a848 +TEST= 40 +KEY= 0000000000000000000000ffffffffff +CT= 93b1dd3660968ecb7028c3907f75a286 +TEST= 41 +KEY= 0000000000000000000001ffffffffff +CT= 380d90a2b2bd02a88077709b541f3abc +TEST= 42 +KEY= 0000000000000000000003ffffffffff +CT= 244082dad08c1fcfc2c103e4c7076dc2 +TEST= 43 +KEY= 0000000000000000000007ffffffffff +CT= a409417dac7f965837ca5502e4eab343 +TEST= 44 +KEY= 000000000000000000000fffffffffff +CT= 0e3a5b0efffbc3ef35965d1f96372901 +TEST= 45 +KEY= 000000000000000000001fffffffffff +CT= fe6fb6d8c48c115c20a8158885c2b72b +TEST= 46 +KEY= 000000000000000000003fffffffffff +CT= 2d9d8b3ebf6817c337abc8c2ab535e25 +TEST= 47 +KEY= 000000000000000000007fffffffffff +CT= f1ede289f8af21cde3da4c91c10d810e +TEST= 48 +KEY= 00000000000000000000ffffffffffff +CT= 433680649d361d1fd7222bfdad181b85 +TEST= 49 +KEY= 00000000000000000001ffffffffffff +CT= aad4b99b596fb1eb563a503b1cffc818 +TEST= 50 +KEY= 00000000000000000003ffffffffffff +CT= c5aefd373d76a68ec6e8cff783822665 +TEST= 51 +KEY= 00000000000000000007ffffffffffff +CT= c0488fe94a2c4a29ad3dfa851e829d2e +TEST= 52 +KEY= 0000000000000000000fffffffffffff +CT= 0e8a24d5ef8e75a7c880fa6a834cf2c9 +TEST= 53 +KEY= 0000000000000000001fffffffffffff +CT= 2791b95644f63234749903c3e8657735 +TEST= 54 +KEY= 0000000000000000003fffffffffffff +CT= ef7221d5a82ee71fe8d8bfdd2a3c7c4f +TEST= 55 +KEY= 0000000000000000007fffffffffffff +CT= 0d2e8d964b6514c4bd3ac5d34db87522 +TEST= 56 +KEY= 000000000000000000ffffffffffffff +CT= d47c25a5ece3b4add6ca0d8a09e410ad +TEST= 57 +KEY= 000000000000000001ffffffffffffff +CT= c282027f20ed3d235475b85304bfcb80 +TEST= 58 +KEY= 000000000000000003ffffffffffffff +CT= b664b7bc37d4b8d04b3b70ded0c800fd +TEST= 59 +KEY= 000000000000000007ffffffffffffff +CT= 6e4fe62c2551f5cbd49f08a6de8f339e +TEST= 60 +KEY= 00000000000000000fffffffffffffff +CT= 002e821880c0628eb48ac598f258413c +TEST= 61 +KEY= 00000000000000001fffffffffffffff +CT= e00fe46582572be60b8e9c464675df11 +TEST= 62 +KEY= 00000000000000003fffffffffffffff +CT= ed6af7fdbf5c4298d898556982998411 +TEST= 63 +KEY= 00000000000000007fffffffffffffff +CT= 274b684f6dabfad23f01c7b984611dd2 +TEST= 64 +KEY= 0000000000000000ffffffffffffffff +CT= abac70797275a2dcf35b582fcd10dc18 +TEST= 65 +KEY= 0000000000000001ffffffffffffffff +CT= 706e2bfc072301e86538a2d0d525a52f +TEST= 66 +KEY= 0000000000000003ffffffffffffffff +CT= f76a0e2d34f589c53f5041b9cb170bcb +TEST= 67 +KEY= 0000000000000007ffffffffffffffff +CT= 15565da70a000eb5e74b4020405771ac +TEST= 68 +KEY= 000000000000000fffffffffffffffff +CT= 7aee27c41842b40b3e4ad6816d7eec87 +TEST= 69 +KEY= 000000000000001fffffffffffffffff +CT= a1340a8aa71385395877f04ec2c2ba71 +TEST= 70 +KEY= 000000000000003fffffffffffffffff +CT= 2e078a39d5468409298e29b3c818f780 +TEST= 71 +KEY= 000000000000007fffffffffffffffff +CT= 9fb0a3e2755523deac574629f1a5e57f +TEST= 72 +KEY= 00000000000000ffffffffffffffffff +CT= 0cae2d1e7c2eb298d284ac574de4c76c +TEST= 73 +KEY= 00000000000001ffffffffffffffffff +CT= 60e24a939a75ac7f93d506f1c66f6e72 +TEST= 74 +KEY= 00000000000003ffffffffffffffffff +CT= f7fd3c15500723d2fc8094fc7ab51c7b +TEST= 75 +KEY= 00000000000007ffffffffffffffffff +CT= 793219b3e13a29e06697ede1506fc83f +TEST= 76 +KEY= 0000000000000fffffffffffffffffff +CT= 6339e5eac05d5e33a32251f938b52951 +TEST= 77 +KEY= 0000000000001fffffffffffffffffff +CT= 6d175edd5529c35f0a1f418766769e66 +TEST= 78 +KEY= 0000000000003fffffffffffffffffff +CT= d0fab53306f97905f35b19384b326053 +TEST= 79 +KEY= 0000000000007fffffffffffffffffff +CT= c6b449923a561f851029e402c1fc49df +TEST= 80 +KEY= 000000000000ffffffffffffffffffff +CT= 4e73dcce8d61edc8f3c465ceacf333e3 +TEST= 81 +KEY= 000000000001ffffffffffffffffffff +CT= d1a141490a078d9259ba518ba3bbbfa9 +TEST= 82 +KEY= 000000000003ffffffffffffffffffff +CT= 4a6dac3718f39c88449fc0fdbba49cbc +TEST= 83 +KEY= 000000000007ffffffffffffffffffff +CT= 47df1ff232572297c46683a199cd6605 +TEST= 84 +KEY= 00000000000fffffffffffffffffffff +CT= 0a25afc437fee47a0cdb3cf8520b701e +TEST= 85 +KEY= 00000000001fffffffffffffffffffff +CT= b7c82cf69cc9bc03d36538b74728a742 +TEST= 86 +KEY= 00000000003fffffffffffffffffffff +CT= aa3d05f2c51fd6abbdcad6fb85175093 +TEST= 87 +KEY= 00000000007fffffffffffffffffffff +CT= 9c40db129e0cd180af762a3ca08cf6cb +TEST= 88 +KEY= 0000000000ffffffffffffffffffffff +CT= 55fe4362db10d26a4c3a1b5d37a139ca +TEST= 89 +KEY= 0000000001ffffffffffffffffffffff +CT= 9cde8814ee1b6639115a62067d023804 +TEST= 90 +KEY= 0000000003ffffffffffffffffffffff +CT= c8d421b6b0bf145eefbdc64034f37c37 +TEST= 91 +KEY= 0000000007ffffffffffffffffffffff +CT= bed798d5e64b21c985bab744d1406b57 +TEST= 92 +KEY= 000000000fffffffffffffffffffffff +CT= 862b819572c86a65026a3b513ba8de2e +TEST= 93 +KEY= 000000001fffffffffffffffffffffff +CT= 744e164e4a960c94f588d694eb2021d6 +TEST= 94 +KEY= 000000003fffffffffffffffffffffff +CT= 6f8f8fe5670d0c9929086664b2313b24 +TEST= 95 +KEY= 000000007fffffffffffffffffffffff +CT= bf9cfc9b0b15dfe1ed0f8e980f80b0d1 +TEST= 96 +KEY= 00000000ffffffffffffffffffffffff +CT= 123dca99ffbe6e12ec372190e66f6712 +TEST= 97 +KEY= 00000001ffffffffffffffffffffffff +CT= 13a1836cef7c653c58dcebbd13a976a7 +TEST= 98 +KEY= 00000003ffffffffffffffffffffffff +CT= 02e2958e680f7d5ef8f82c2408deb15b +TEST= 99 +KEY= 00000007ffffffffffffffffffffffff +CT= ef04bd62c0081225e99271850a6308a0 +TEST= 100 +KEY= 0000000fffffffffffffffffffffffff +CT= f28a7944ab6ac69782ba27f39b4a4381 +TEST= 101 +KEY= 0000001fffffffffffffffffffffffff +CT= 670d8c6ae12c74e19f9883b2b776a4aa +TEST= 102 +KEY= 0000003fffffffffffffffffffffffff +CT= 459f3fc2e1e503af2fa39b06592c8c22 +TEST= 103 +KEY= 0000007fffffffffffffffffffffffff +CT= f993a6cc25dbd950419352cc0009b583 +TEST= 104 +KEY= 000000ffffffffffffffffffffffffff +CT= 9caddd77d32c233af1d3147365662a99 +TEST= 105 +KEY= 000001ffffffffffffffffffffffffff +CT= 211a1a7e4e47e0d86b9fd96b531cc08f +TEST= 106 +KEY= 000003ffffffffffffffffffffffffff +CT= 82e28dbfda3ec2f04d1aa61dca2c83c9 +TEST= 107 +KEY= 000007ffffffffffffffffffffffffff +CT= ecb28ad52f46457198f2ad210d47d8cf +TEST= 108 +KEY= 00000fffffffffffffffffffffffffff +CT= 65a479ff2c04a745433dab12747f6fba +TEST= 109 +KEY= 00001fffffffffffffffffffffffffff +CT= 74e682913c9a0722d8a46a8f2deff793 +TEST= 110 +KEY= 00003fffffffffffffffffffffffffff +CT= 6bd7490b35e70ae742cfd3611549b272 +TEST= 111 +KEY= 00007fffffffffffffffffffffffffff +CT= de0e697b067e14cc3b4096e2e169bb10 +TEST= 112 +KEY= 0000ffffffffffffffffffffffffffff +CT= 46b9672025cd89d39cd2d185ce454b28 +TEST= 113 +KEY= 0001ffffffffffffffffffffffffffff +CT= 69a8d73c318abca454188b4302a2c0f2 +TEST= 114 +KEY= 0003ffffffffffffffffffffffffffff +CT= 2c31d234634cb3b71e11e6c2dc2af783 +TEST= 115 +KEY= 0007ffffffffffffffffffffffffffff +CT= 748893329ec47a06fc22e8608ffc6a6a +TEST= 116 +KEY= 000fffffffffffffffffffffffffffff +CT= 72a5216e693f4e75f55858dc87e6894b +TEST= 117 +KEY= 001fffffffffffffffffffffffffffff +CT= fd01a6bff2c00495b6e6a2658ad80276 +TEST= 118 +KEY= 003fffffffffffffffffffffffffffff +CT= f8332e3bee556b953cb2326a69f1959b +TEST= 119 +KEY= 007fffffffffffffffffffffffffffff +CT= 4335264b64726e36fb4aebce0e80f36d +TEST= 120 +KEY= 00ffffffffffffffffffffffffffffff +CT= e01f3360843bb429c79ef44f71649784 +TEST= 121 +KEY= 01ffffffffffffffffffffffffffffff +CT= af39755faf0b5e23cca27bb948d4d2aa +TEST= 122 +KEY= 03ffffffffffffffffffffffffffffff +CT= b983e0592bf2727bd855187ba2cd737a +TEST= 123 +KEY= 07ffffffffffffffffffffffffffffff +CT= 12a7a792f5c23de85eb6240c011f7317 +TEST= 124 +KEY= 0fffffffffffffffffffffffffffffff +CT= 144cfff87e64622607b4f69e1e203f3e +TEST= 125 +KEY= 1fffffffffffffffffffffffffffffff +CT= 0b3d901bcf69f99400fafa534f78ecef +TEST= 126 +KEY= 3fffffffffffffffffffffffffffffff +CT= 2490fcfe98dbc1a40df667e32c3ee670 +TEST= 127 +KEY= 7fffffffffffffffffffffffffffffff +CT= c0b9045be82d79ef711fb79e957de3b9 +TEST= 128 +KEY= ffffffffffffffffffffffffffffffff +CT= a1f6258c877d5fcd8964484538bfc92c +TEST= 129 +KEY= fffffffffffffffffffffffffffffffe +CT= 9ba4a9143f4e5d4048521c4f8877d88e +TEST= 130 +KEY= fffffffffffffffffffffffffffffffc +CT= 02bc96846b3fdc71643f384cd3cc3eaf +TEST= 131 +KEY= fffffffffffffffffffffffffffffff8 +CT= 5a4d404d8917e353e92a21072c3b2305 +TEST= 132 +KEY= fffffffffffffffffffffffffffffff0 +CT= 41c78c135ed9e98c096640647265da1e +TEST= 133 +KEY= ffffffffffffffffffffffffffffffe0 +CT= 25d6cfe6881f2bf497dd14cd4ddf445b +TEST= 134 +KEY= ffffffffffffffffffffffffffffffc0 +CT= 41a8a947766635dec37553d9a6c0cbb7 +TEST= 135 +KEY= ffffffffffffffffffffffffffffff80 +CT= 5160474d504b9b3eefb68d35f245f4b3 +TEST= 136 +KEY= ffffffffffffffffffffffffffffff00 +CT= 2dce3acb727cd13ccd76d425ea56e4f6 +TEST= 137 +KEY= fffffffffffffffffffffffffffffe00 +CT= ba4f970c0a25c41814bdae2e506be3b4 +TEST= 138 +KEY= fffffffffffffffffffffffffffffc00 +CT= 3a0c53fa37311fc10bd2a9981f513174 +TEST= 139 +KEY= fffffffffffffffffffffffffffff800 +CT= dfa5c097cdc1532ac071d57b1d28d1bd +TEST= 140 +KEY= fffffffffffffffffffffffffffff000 +CT= 1dbf57877b7b17385c85d0b54851e371 +TEST= 141 +KEY= ffffffffffffffffffffffffffffe000 +CT= 323994cfb9da285a5d9642e1759b224a +TEST= 142 +KEY= ffffffffffffffffffffffffffffc000 +CT= 70c46bb30692be657f7eaa93ebad9897 +TEST= 143 +KEY= ffffffffffffffffffffffffffff8000 +CT= 62d0662d6eaeddedebae7f7ea3a4f6b6 +TEST= 144 +KEY= ffffffffffffffffffffffffffff0000 +CT= b4750ff263a65e1f9e924ccfd98f3e37 +TEST= 145 +KEY= fffffffffffffffffffffffffffe0000 +CT= 674d2b61633d162be59dde04222f4740 +TEST= 146 +KEY= fffffffffffffffffffffffffffc0000 +CT= 44fb5c4d4f5cb79be5c174a3b1c97348 +TEST= 147 +KEY= fffffffffffffffffffffffffff80000 +CT= 16591c0f27d60e29b85a96c33861a7ef +TEST= 148 +KEY= fffffffffffffffffffffffffff00000 +CT= 793de39236570aba83ab9b737cb521c9 +TEST= 149 +KEY= ffffffffffffffffffffffffffe00000 +CT= c14574d9cd00cf2b5a7f77e53cd57885 +TEST= 150 +KEY= ffffffffffffffffffffffffffc00000 +CT= 9241daca4fdd034a82372db50e1a0f3f +TEST= 151 +KEY= ffffffffffffffffffffffffff800000 +CT= 36aeaa3a213e968d4b5b679d3a2c97fe +TEST= 152 +KEY= ffffffffffffffffffffffffff000000 +CT= 2cb1dc3a9c72972e425ae2ef3eb597cd +TEST= 153 +KEY= fffffffffffffffffffffffffe000000 +CT= 277167f3812afff1ffacb4a934379fc3 +TEST= 154 +KEY= fffffffffffffffffffffffffc000000 +CT= f17af0e895dda5eb98efc68066e84c54 +TEST= 155 +KEY= fffffffffffffffffffffffff8000000 +CT= 829c04ff4c07513c0b3ef05c03e337b5 +TEST= 156 +KEY= fffffffffffffffffffffffff0000000 +CT= 307c5b8fcd0533ab98bc51e27a6ce461 +TEST= 157 +KEY= ffffffffffffffffffffffffe0000000 +CT= 36bbaab22a6bd4925a99a2b408d2dbae +TEST= 158 +KEY= ffffffffffffffffffffffffc0000000 +CT= b63305c72bedfab97382c406d0c49bc6 +TEST= 159 +KEY= ffffffffffffffffffffffff80000000 +CT= 3e40c3901cd7effc22bffc35dee0b4d9 +TEST= 160 +KEY= ffffffffffffffffffffffff00000000 +CT= f0c5c6ffa5e0bd3a94c88f6b6f7c16b9 +TEST= 161 +KEY= fffffffffffffffffffffffe00000000 +CT= c440de014d3d610707279b13242a5c36 +TEST= 162 +KEY= fffffffffffffffffffffffc00000000 +CT= d06e3195b5376f109d5c4ec6c5d62ced +TEST= 163 +KEY= fffffffffffffffffffffff800000000 +CT= 36cf44c92d550bfb1ed28ef583ddf5d7 +TEST= 164 +KEY= fffffffffffffffffffffff000000000 +CT= 6838af1f4f69bae9d85dd188dcdf0688 +TEST= 165 +KEY= ffffffffffffffffffffffe000000000 +CT= ff13806cf19cc38721554d7c0fcdcd4b +TEST= 166 +KEY= ffffffffffffffffffffffc000000000 +CT= f0ea23af08534011c60009ab29ada2f1 +TEST= 167 +KEY= ffffffffffffffffffffff8000000000 +CT= 6da0490ba0ba0343b935681d2cce5ba1 +TEST= 168 +KEY= ffffffffffffffffffffff0000000000 +CT= ea3695e1351b9d6858bd958cf513ef6c +TEST= 169 +KEY= fffffffffffffffffffffe0000000000 +CT= 6a7980ce7b105cf530952d74daaf798c +TEST= 170 +KEY= fffffffffffffffffffffc0000000000 +CT= 192afffb2c880e82b05926d0fc6c448b +TEST= 171 +KEY= fffffffffffffffffffff80000000000 +CT= 38f67b9e98e4a97b6df030a9fcdd0104 +TEST= 172 +KEY= fffffffffffffffffffff00000000000 +CT= 8785b1a75b0f3bd958dcd0e29318c521 +TEST= 173 +KEY= ffffffffffffffffffffe00000000000 +CT= 9cfa1322ea33da2173a024f2ff0d896d +TEST= 174 +KEY= ffffffffffffffffffffc00000000000 +CT= dbdfb527060e0a71009c7bb0c68f1d44 +TEST= 175 +KEY= ffffffffffffffffffff800000000000 +CT= 545d50ebd919e4a6949d96ad47e46a80 +TEST= 176 +KEY= ffffffffffffffffffff000000000000 +CT= ec198a18e10e532403b7e20887c8dd80 +TEST= 177 +KEY= fffffffffffffffffffe000000000000 +CT= f2e976875755f9401d54f36e2a23a594 +TEST= 178 +KEY= fffffffffffffffffffc000000000000 +CT= 284ca2fa35807b8b0ae4d19e11d7dbd7 +TEST= 179 +KEY= fffffffffffffffffff8000000000000 +CT= ef1623cc44313cff440b1594a7e21cc6 +TEST= 180 +KEY= fffffffffffffffffff0000000000000 +CT= 96d9b017d302df410a937dcdb8bb6e43 +TEST= 181 +KEY= ffffffffffffffffffe0000000000000 +CT= 1b0d02893683b9f180458e4aa6b73982 +TEST= 182 +KEY= ffffffffffffffffffc0000000000000 +CT= d8764468bb103828cf7e1473ce895073 +TEST= 183 +KEY= ffffffffffffffffff80000000000000 +CT= acc5599dd8ac02239a0fef4a36dd1668 +TEST= 184 +KEY= ffffffffffffffffff00000000000000 +CT= 1ea448c2aac954f5d812e9d78494446a +TEST= 185 +KEY= fffffffffffffffffe00000000000000 +CT= 7866373f24a0b6ed56e0d96fcdafb877 +TEST= 186 +KEY= fffffffffffffffffc00000000000000 +CT= ab69cfadf51f8e604d9cc37182f6635a +TEST= 187 +KEY= fffffffffffffffff800000000000000 +CT= f60e91fc3269eecf3231c6e9945697c6 +TEST= 188 +KEY= fffffffffffffffff000000000000000 +CT= 3535d565ace3f31eb249ba2cc6765d7a +TEST= 189 +KEY= ffffffffffffffffe000000000000000 +CT= d9bff7ff454b0ec5a4a2a69566e2cb84 +TEST= 190 +KEY= ffffffffffffffffc000000000000000 +CT= 493d4a4f38ebb337d10aa84e9171a554 +TEST= 191 +KEY= ffffffffffffffff8000000000000000 +CT= 32cd652842926aea4aa6137bb2be2b5e +TEST= 192 +KEY= ffffffffffffffff0000000000000000 +CT= 84be19e053635f09f2665e7bae85b42d +TEST= 193 +KEY= fffffffffffffffe0000000000000000 +CT= 77a4d96d56dda398b9aabecfc75729fd +TEST= 194 +KEY= fffffffffffffffc0000000000000000 +CT= 995c9dc0b689f03c45867b5faa5c18d1 +TEST= 195 +KEY= fffffffffffffff80000000000000000 +CT= 653317b9362b6f9b9e1a580e68d494b5 +TEST= 196 +KEY= fffffffffffffff00000000000000000 +CT= 7a181e84bd5457d26a88fbae96018fb0 +TEST= 197 +KEY= ffffffffffffffe00000000000000000 +CT= fd8687f0757a210e9fdf181204c30863 +TEST= 198 +KEY= ffffffffffffffc00000000000000000 +CT= a35a63f5343ebe9ef8167bcb48ad122e +TEST= 199 +KEY= ffffffffffffff800000000000000000 +CT= 7470469be9723030fdcc73a8cd4fbb10 +TEST= 200 +KEY= ffffffffffffff000000000000000000 +CT= b5ab3013dd1e61df06cbaf34ca2aee78 +TEST= 201 +KEY= fffffffffffffe000000000000000000 +CT= 53786104b9744b98f052c46f1c850d0b +TEST= 202 +KEY= fffffffffffffc000000000000000000 +CT= 43fdaf53ebbc9880c228617d6a9b548b +TEST= 203 +KEY= fffffffffffff8000000000000000000 +CT= 8b527a6aebdaec9eaef8eda2cb7783e5 +TEST= 204 +KEY= fffffffffffff0000000000000000000 +CT= 7b90785125505fad59b13c186dd66ce3 +TEST= 205 +KEY= ffffffffffffe0000000000000000000 +CT= ff4e66c07bae3e79fb7d210847a3b0ba +TEST= 206 +KEY= ffffffffffffc0000000000000000000 +CT= cb2f430383f9084e03a653571e065de6 +TEST= 207 +KEY= ffffffffffff80000000000000000000 +CT= b6768473ce9843ea66a81405dd50b345 +TEST= 208 +KEY= ffffffffffff00000000000000000000 +CT= 75550e6cb5a88e49634c9ab69eda0430 +TEST= 209 +KEY= fffffffffffe00000000000000000000 +CT= 04497110efb9dceb13e2b13fb4465564 +TEST= 210 +KEY= fffffffffffc00000000000000000000 +CT= 4fb288cc2040049001d2c7585ad123fc +TEST= 211 +KEY= fffffffffff800000000000000000000 +CT= 8ebf73aad49c82007f77a5c1ccec6ab4 +TEST= 212 +KEY= fffffffffff000000000000000000000 +CT= e6c4807ae11f36f091c57d9fb68548d1 +TEST= 213 +KEY= ffffffffffe000000000000000000000 +CT= 8e4d8e699119e1fc87545a647fb1d34f +TEST= 214 +KEY= ffffffffffc000000000000000000000 +CT= 1df9b76112dc6531e07d2cfda04411f0 +TEST= 215 +KEY= ffffffffff8000000000000000000000 +CT= c72954a48d0774db0b4971c526260415 +TEST= 216 +KEY= ffffffffff0000000000000000000000 +CT= 7df4daf4ad29a3615a9b6ece5c99518a +TEST= 217 +KEY= fffffffffe0000000000000000000000 +CT= 303ff996947f0c7d1f43c8f3027b9b75 +TEST= 218 +KEY= fffffffffc0000000000000000000000 +CT= 82408571c3e2424540207f833b6dda69 +TEST= 219 +KEY= fffffffff80000000000000000000000 +CT= 0f18aff94274696d9b61848bd50ac5e5 +TEST= 220 +KEY= fffffffff00000000000000000000000 +CT= 44a98bf11e163f632c47ec6a49683a89 +TEST= 221 +KEY= ffffffffe00000000000000000000000 +CT= 23f710842b9bb9c32f26648c786807ca +TEST= 222 +KEY= ffffffffc00000000000000000000000 +CT= 5a8688f0b2a2c16224c161658ffd4044 +TEST= 223 +KEY= ffffffff800000000000000000000000 +CT= ed62e16363638360fdd6ad62112794f0 +TEST= 224 +KEY= ffffffff000000000000000000000000 +CT= 9c28524a16a1e1c1452971caa8d13476 +TEST= 225 +KEY= fffffffe000000000000000000000000 +CT= 1114bc2028009b923f0b01915ce5e7c4 +TEST= 226 +KEY= fffffffc000000000000000000000000 +CT= e17bc79f30eaab2fac2cbbe3458d687a +TEST= 227 +KEY= fffffff8000000000000000000000000 +CT= 6c7c64dc84a8bba758ed17eb025a57e3 +TEST= 228 +KEY= fffffff0000000000000000000000000 +CT= 99693e6a59d1366c74d823562d7e1431 +TEST= 229 +KEY= ffffffe0000000000000000000000000 +CT= 18c1b6e2157122056d0243d8a165cddb +TEST= 230 +KEY= ffffffc0000000000000000000000000 +CT= 5ce37e17eb4646ecfac29b9cc38d9340 +TEST= 231 +KEY= ffffff80000000000000000000000000 +CT= 6d114ccb27bf391012e8974c546d9bf2 +TEST= 232 +KEY= ffffff00000000000000000000000000 +CT= de11722d893e9f9121c381becc1da59a +TEST= 233 +KEY= fffffe00000000000000000000000000 +CT= 95b1703fc57ba09fe0c3580febdd7ed4 +TEST= 234 +KEY= fffffc00000000000000000000000000 +CT= 12acd89b13cd5f8726e34d44fd486108 +TEST= 235 +KEY= fffff800000000000000000000000000 +CT= a6cb761d61f8292d0df393a279ad0380 +TEST= 236 +KEY= fffff000000000000000000000000000 +CT= 26298e9c1db517c215fadfb7d2a8d691 +TEST= 237 +KEY= ffffe000000000000000000000000000 +CT= 90fb128d3a1af6e548521bb962bf1f05 +TEST= 238 +KEY= ffffc000000000000000000000000000 +CT= df556a33438db87bc41b1752c55e5e49 +TEST= 239 +KEY= ffff8000000000000000000000000000 +CT= c6a0b3e998d05068a5399778405200b4 +TEST= 240 +KEY= ffff0000000000000000000000000000 +CT= 97d0754fe68f11b9e375d070a608c884 +TEST= 241 +KEY= fffe0000000000000000000000000000 +CT= 113ecbe4a453269a0dd26069467fb5b5 +TEST= 242 +KEY= fffc0000000000000000000000000000 +CT= 2637050c9fc0d4817e2d69de878aee8d +TEST= 243 +KEY= fff80000000000000000000000000000 +CT= b5f1a33e50d40d103764c76bd4c6b6f8 +TEST= 244 +KEY= fff00000000000000000000000000000 +CT= a01bf44f2d16be928ca44aaf7b9b106b +TEST= 245 +KEY= ffe00000000000000000000000000000 +CT= 956d7798fac20f82a8823f984d06f7f5 +TEST= 246 +KEY= ffc00000000000000000000000000000 +CT= 9958f0ecea8b2172c0c1995f9182c0f3 +TEST= 247 +KEY= ff800000000000000000000000000000 +CT= 42ffb34c743de4d88ca38011c990890b +TEST= 248 +KEY= ff000000000000000000000000000000 +CT= b1d758256b28fd850ad4944208cf1155 +TEST= 249 +KEY= fe000000000000000000000000000000 +CT= c4295f83465c7755e8fa364bac6a7ea5 +TEST= 250 +KEY= fc000000000000000000000000000000 +CT= 9ed5a75136a940d0963da379db4af26a +TEST= 251 +KEY= f8000000000000000000000000000000 +CT= f17e79aed0db7e279e955b5f493875a7 +TEST= 252 +KEY= f0000000000000000000000000000000 +CT= 970014d634e2b7650777e8e84d03ccd8 +TEST= 253 +KEY= e0000000000000000000000000000000 +CT= 72a1da770f5d7ac4c9ef94d822affd97 +TEST= 254 +KEY= c0000000000000000000000000000000 +CT= 4bc3f883450c113c64ca42e1112a9e87 +TEST= 255 +KEY= 80000000000000000000000000000000 +CT= 0edd33d3c621e546455bd8ba1418bec8 diff --git a/test/crypto/aes/ecbnk48.txt b/test/crypto/aes/ecbnk48.txt new file mode 100644 index 0000000000..0cf00745f1 --- /dev/null +++ b/test/crypto/aes/ecbnk48.txt @@ -0,0 +1,1547 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Key Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbnk48.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 256 + +PT= 00000000000000000000000000000000 +TEST= 0 +KEY= 0000000000000000000000000000000000000000000000000000000000000000 +CT= dc95c078a2408989ad48a21492842087 +TEST= 1 +KEY= 0000000000000000000000000000000000000000000000000000000000000001 +CT= 6b6cfe160a6263631b292f879eeff926 +TEST= 2 +KEY= 0000000000000000000000000000000000000000000000000000000000000003 +CT= bf701e7f51c292f1cc242a991578eb2a +TEST= 3 +KEY= 0000000000000000000000000000000000000000000000000000000000000007 +CT= ab749ad085ee539d8baf1621853d3fb2 +TEST= 4 +KEY= 000000000000000000000000000000000000000000000000000000000000000f +CT= 4bcef4dbc203f06aa5fb72ed1a70fb89 +TEST= 5 +KEY= 000000000000000000000000000000000000000000000000000000000000001f +CT= be406db48b9b2aa8559ed5b173fd658b +TEST= 6 +KEY= 000000000000000000000000000000000000000000000000000000000000003f +CT= e93766e59507d341537d0c62072d8a55 +TEST= 7 +KEY= 000000000000000000000000000000000000000000000000000000000000007f +CT= 58ed5fbb416960f5f06159b76a6d7738 +TEST= 8 +KEY= 00000000000000000000000000000000000000000000000000000000000000ff +CT= bc2546f4768081ceb295a72b31e6ab05 +TEST= 9 +KEY= 00000000000000000000000000000000000000000000000000000000000001ff +CT= 1e85b10b69d7e5994438da340674b012 +TEST= 10 +KEY= 00000000000000000000000000000000000000000000000000000000000003ff +CT= 027d266cf77aa9f5365aa549254323cf +TEST= 11 +KEY= 00000000000000000000000000000000000000000000000000000000000007ff +CT= fbde91184125dc0d0f229e09db5a8da2 +TEST= 12 +KEY= 0000000000000000000000000000000000000000000000000000000000000fff +CT= 53a77656d1bc4e33ac9a4ae98a912b35 +TEST= 13 +KEY= 0000000000000000000000000000000000000000000000000000000000001fff +CT= af5628c2a562fce45b3e3265b17d57c1 +TEST= 14 +KEY= 0000000000000000000000000000000000000000000000000000000000003fff +CT= b835c0732fbfd73f3c428877dceefbfd +TEST= 15 +KEY= 0000000000000000000000000000000000000000000000000000000000007fff +CT= 03f6669af1df61abcf54024353c3048d +TEST= 16 +KEY= 000000000000000000000000000000000000000000000000000000000000ffff +CT= fe3dec93582172729ca562db3a24da23 +TEST= 17 +KEY= 000000000000000000000000000000000000000000000000000000000001ffff +CT= ed696865926ecabb1e5013e1dc4862c9 +TEST= 18 +KEY= 000000000000000000000000000000000000000000000000000000000003ffff +CT= c9a918af1b5a4ce363fd5bdbbbe94dd6 +TEST= 19 +KEY= 000000000000000000000000000000000000000000000000000000000007ffff +CT= c213d9c2a23584883d25823549daa369 +TEST= 20 +KEY= 00000000000000000000000000000000000000000000000000000000000fffff +CT= cbd19b0ac8fd6e5de946d1866ff0014e +TEST= 21 +KEY= 00000000000000000000000000000000000000000000000000000000001fffff +CT= 913b89d6540f1f26eae1ce75d65a3373 +TEST= 22 +KEY= 00000000000000000000000000000000000000000000000000000000003fffff +CT= c71ad528b5ed428b29b05e90696065ef +TEST= 23 +KEY= 00000000000000000000000000000000000000000000000000000000007fffff +CT= 537013a5f3fd7e97612798bca85edce1 +TEST= 24 +KEY= 0000000000000000000000000000000000000000000000000000000000ffffff +CT= af63b3b30ad065a7c686c6c53687575d +TEST= 25 +KEY= 0000000000000000000000000000000000000000000000000000000001ffffff +CT= d0ab26758ce397c61b0160b682761a96 +TEST= 26 +KEY= 0000000000000000000000000000000000000000000000000000000003ffffff +CT= 942e760423b6ea3cfe6da21186ae47ac +TEST= 27 +KEY= 0000000000000000000000000000000000000000000000000000000007ffffff +CT= 45685f766771cdebcaad2fb3c792fe51 +TEST= 28 +KEY= 000000000000000000000000000000000000000000000000000000000fffffff +CT= cb0a8a91aa019fdf83c4ffbbdcf7447d +TEST= 29 +KEY= 000000000000000000000000000000000000000000000000000000001fffffff +CT= 19c871011b3afd00c834caf416ef4cf9 +TEST= 30 +KEY= 000000000000000000000000000000000000000000000000000000003fffffff +CT= 3761ba9ab369230a061af0080936bb35 +TEST= 31 +KEY= 000000000000000000000000000000000000000000000000000000007fffffff +CT= 63587d81d0dd0af99cb71b848d8055b4 +TEST= 32 +KEY= 00000000000000000000000000000000000000000000000000000000ffffffff +CT= 543f94b1e7458f38994515b2f82b56e5 +TEST= 33 +KEY= 00000000000000000000000000000000000000000000000000000001ffffffff +CT= 96fe07bbda459956adc2dff0e112c4b6 +TEST= 34 +KEY= 00000000000000000000000000000000000000000000000000000003ffffffff +CT= 855e83b75c30bf564d78b8ead29898a1 +TEST= 35 +KEY= 00000000000000000000000000000000000000000000000000000007ffffffff +CT= 971f085cfd3672e8d648894e833372f6 +TEST= 36 +KEY= 0000000000000000000000000000000000000000000000000000000fffffffff +CT= 45d75757285fa13740f9335135811c62 +TEST= 37 +KEY= 0000000000000000000000000000000000000000000000000000001fffffffff +CT= e7d8cfd6c8393169a8e1ef610ea8ff04 +TEST= 38 +KEY= 0000000000000000000000000000000000000000000000000000003fffffffff +CT= 6e079973ba11f4eca6ac2d1875a7a5d1 +TEST= 39 +KEY= 0000000000000000000000000000000000000000000000000000007fffffffff +CT= ed2252c561bbb86172664a7e6f4f588f +TEST= 40 +KEY= 000000000000000000000000000000000000000000000000000000ffffffffff +CT= 6a326677187d8636bd0cf410707150d2 +TEST= 41 +KEY= 000000000000000000000000000000000000000000000000000001ffffffffff +CT= 6d005cea1a4e54fb2becfe7f84da2690 +TEST= 42 +KEY= 000000000000000000000000000000000000000000000000000003ffffffffff +CT= dbf008f42a12b68d5d976b19c03dbf8f +TEST= 43 +KEY= 000000000000000000000000000000000000000000000000000007ffffffffff +CT= d2c675869612e5e8e997c2f40c124b4f +TEST= 44 +KEY= 00000000000000000000000000000000000000000000000000000fffffffffff +CT= 34b24616843e26e04ae07e30f1d37c14 +TEST= 45 +KEY= 00000000000000000000000000000000000000000000000000001fffffffffff +CT= 66261a57903dcd9e7b99ffee603d52ea +TEST= 46 +KEY= 00000000000000000000000000000000000000000000000000003fffffffffff +CT= 41044ecff55d2f1b74ac503a026b69f1 +TEST= 47 +KEY= 00000000000000000000000000000000000000000000000000007fffffffffff +CT= fdf60bb3857a923412e5549ceb47a06b +TEST= 48 +KEY= 0000000000000000000000000000000000000000000000000000ffffffffffff +CT= 4afd474c849e7435dbc189033056ffaf +TEST= 49 +KEY= 0000000000000000000000000000000000000000000000000001ffffffffffff +CT= 0a1b1c700a9de96f6382199b58c3f156 +TEST= 50 +KEY= 0000000000000000000000000000000000000000000000000003ffffffffffff +CT= 2cc0ac48f4b609e07ff191f7e201cd4d +TEST= 51 +KEY= 0000000000000000000000000000000000000000000000000007ffffffffffff +CT= b73f7c95679e7b2a4142b95962216d47 +TEST= 52 +KEY= 000000000000000000000000000000000000000000000000000fffffffffffff +CT= eb0b3ad0cfe4a029402a8ae1b59effab +TEST= 53 +KEY= 000000000000000000000000000000000000000000000000001fffffffffffff +CT= 3d504ad4b4029094043778ce3c2d3517 +TEST= 54 +KEY= 000000000000000000000000000000000000000000000000003fffffffffffff +CT= 23d88a19ac10ce9d878b8bafb2559c42 +TEST= 55 +KEY= 000000000000000000000000000000000000000000000000007fffffffffffff +CT= 75aa63f4ed7deb513b2c60a49f26ed5b +TEST= 56 +KEY= 00000000000000000000000000000000000000000000000000ffffffffffffff +CT= e2d7fd533d6e2f03cbd2e89eeff058bf +TEST= 57 +KEY= 00000000000000000000000000000000000000000000000001ffffffffffffff +CT= 27118699661cd6dbe6118cd339f08ace +TEST= 58 +KEY= 00000000000000000000000000000000000000000000000003ffffffffffffff +CT= ec355421e48d3fef18e00fe0ba13afeb +TEST= 59 +KEY= 00000000000000000000000000000000000000000000000007ffffffffffffff +CT= b4df72723b9a101f4dcf20afddbb6cd4 +TEST= 60 +KEY= 0000000000000000000000000000000000000000000000000fffffffffffffff +CT= 427b5f8e6b9372c65dee4b33256bc571 +TEST= 61 +KEY= 0000000000000000000000000000000000000000000000001fffffffffffffff +CT= 890accefa77cbf872f5296f1cc843d6d +TEST= 62 +KEY= 0000000000000000000000000000000000000000000000003fffffffffffffff +CT= 45f132aeedfcaeada0354232e8e0ecd6 +TEST= 63 +KEY= 0000000000000000000000000000000000000000000000007fffffffffffffff +CT= e00b07ddb7ac13b03ff48988211fe71f +TEST= 64 +KEY= 000000000000000000000000000000000000000000000000ffffffffffffffff +CT= 9d386993f184e5805fb0e987455809ed +TEST= 65 +KEY= 000000000000000000000000000000000000000000000001ffffffffffffffff +CT= 475b5ab6722d43f715436a8cb59cbf4f +TEST= 66 +KEY= 000000000000000000000000000000000000000000000003ffffffffffffffff +CT= a82590572fd07fbf1d23fc81b49e8756 +TEST= 67 +KEY= 000000000000000000000000000000000000000000000007ffffffffffffffff +CT= 3adce472e6c7a99fa7d3017ad75f5cdf +TEST= 68 +KEY= 00000000000000000000000000000000000000000000000fffffffffffffffff +CT= 524797e0cf9c9dea956962ef7136f546 +TEST= 69 +KEY= 00000000000000000000000000000000000000000000001fffffffffffffffff +CT= 075d0316aedd8df2ae66eb838e2ed485 +TEST= 70 +KEY= 00000000000000000000000000000000000000000000003fffffffffffffffff +CT= 187849162a0b56eeaae2425c2e494b78 +TEST= 71 +KEY= 00000000000000000000000000000000000000000000007fffffffffffffffff +CT= c278f398882137eaac01c3275a9a2722 +TEST= 72 +KEY= 0000000000000000000000000000000000000000000000ffffffffffffffffff +CT= f1e8b6e7114b02918877a995784fcb74 +TEST= 73 +KEY= 0000000000000000000000000000000000000000000001ffffffffffffffffff +CT= e7f582f29d8d332087bda8514372c900 +TEST= 74 +KEY= 0000000000000000000000000000000000000000000003ffffffffffffffffff +CT= 0a4585f81b68c921331c1f9110df528e +TEST= 75 +KEY= 0000000000000000000000000000000000000000000007ffffffffffffffffff +CT= 203c4d0dba823937bd66680f47cf5511 +TEST= 76 +KEY= 000000000000000000000000000000000000000000000fffffffffffffffffff +CT= d757358180429b7112e006a53eb5467f +TEST= 77 +KEY= 000000000000000000000000000000000000000000001fffffffffffffffffff +CT= 202b92ded713c6c754fab7ab9235ab3c +TEST= 78 +KEY= 000000000000000000000000000000000000000000003fffffffffffffffffff +CT= a226249ea4d82542a878009a495bd4ca +TEST= 79 +KEY= 000000000000000000000000000000000000000000007fffffffffffffffffff +CT= 0d62e8c60b22be37888eef8fafd374a4 +TEST= 80 +KEY= 00000000000000000000000000000000000000000000ffffffffffffffffffff +CT= 6e16ce6a174705eb4dea7391d180f6e9 +TEST= 81 +KEY= 00000000000000000000000000000000000000000001ffffffffffffffffffff +CT= 53a295a307cc07aeda9618fe12268bfa +TEST= 82 +KEY= 00000000000000000000000000000000000000000003ffffffffffffffffffff +CT= 6fb67e2d8a5b1ddb8f3b37458f03fdba +TEST= 83 +KEY= 00000000000000000000000000000000000000000007ffffffffffffffffffff +CT= 9eb298a14e534f5bd08380dd0949d312 +TEST= 84 +KEY= 0000000000000000000000000000000000000000000fffffffffffffffffffff +CT= 30a6d04751b2211b19099024ef052fbe +TEST= 85 +KEY= 0000000000000000000000000000000000000000001fffffffffffffffffffff +CT= 1c32545f6246937f70aec5fe8603c6c3 +TEST= 86 +KEY= 0000000000000000000000000000000000000000003fffffffffffffffffffff +CT= a6b1755b086923fdfb82a3906228ba16 +TEST= 87 +KEY= 0000000000000000000000000000000000000000007fffffffffffffffffffff +CT= 3efc4aceca70357daa5425e77370d01c +TEST= 88 +KEY= 000000000000000000000000000000000000000000ffffffffffffffffffffff +CT= e8d7761c2afd674da8f72505515df6d9 +TEST= 89 +KEY= 000000000000000000000000000000000000000001ffffffffffffffffffffff +CT= 6e9927c90c684eef8314933f3bdbd17d +TEST= 90 +KEY= 000000000000000000000000000000000000000003ffffffffffffffffffffff +CT= 020d04983f9bdc77750af373febcfda4 +TEST= 91 +KEY= 000000000000000000000000000000000000000007ffffffffffffffffffffff +CT= d7fdd1e21e7284aab3caae27f4c3ac2e +TEST= 92 +KEY= 00000000000000000000000000000000000000000fffffffffffffffffffffff +CT= 59279905253bbe0390b6ee5f4d913035 +TEST= 93 +KEY= 00000000000000000000000000000000000000001fffffffffffffffffffffff +CT= 5939a3a8a64eb06498880eb69c06108a +TEST= 94 +KEY= 00000000000000000000000000000000000000003fffffffffffffffffffffff +CT= fbcce6048c4cbe51db5b792dec5f7fa4 +TEST= 95 +KEY= 00000000000000000000000000000000000000007fffffffffffffffffffffff +CT= 6e61dd46de31a0b83f441a175e5a68c5 +TEST= 96 +KEY= 0000000000000000000000000000000000000000ffffffffffffffffffffffff +CT= 517488ed7136e987df9900dc032cf104 +TEST= 97 +KEY= 0000000000000000000000000000000000000001ffffffffffffffffffffffff +CT= 75c590ae01382faa02f3fc94ac094c25 +TEST= 98 +KEY= 0000000000000000000000000000000000000003ffffffffffffffffffffffff +CT= 7add6d12d7e627f64341fa7cc8f9d1bd +TEST= 99 +KEY= 0000000000000000000000000000000000000007ffffffffffffffffffffffff +CT= f5debd1f635e9bc7fea99c5b5cc4a23f +TEST= 100 +KEY= 000000000000000000000000000000000000000fffffffffffffffffffffffff +CT= cf63aefa7f89f106dd941e9e439e4882 +TEST= 101 +KEY= 000000000000000000000000000000000000001fffffffffffffffffffffffff +CT= 007d5db50703e395b7f0319bd47bced0 +TEST= 102 +KEY= 000000000000000000000000000000000000003fffffffffffffffffffffffff +CT= b30da57079a61f274ea7bad1a1f968f9 +TEST= 103 +KEY= 000000000000000000000000000000000000007fffffffffffffffffffffffff +CT= 2861cea007f459e060ec30a35bf77f3e +TEST= 104 +KEY= 00000000000000000000000000000000000000ffffffffffffffffffffffffff +CT= 76ea45daa3ac5419f94c083df1f6eed6 +TEST= 105 +KEY= 00000000000000000000000000000000000001ffffffffffffffffffffffffff +CT= f763116ab6713769978256008da81f21 +TEST= 106 +KEY= 00000000000000000000000000000000000003ffffffffffffffffffffffffff +CT= 0ab5cc550c106a3893269ea47faa55b5 +TEST= 107 +KEY= 00000000000000000000000000000000000007ffffffffffffffffffffffffff +CT= d6721c1e6eb846a73c74dd218e983e68 +TEST= 108 +KEY= 0000000000000000000000000000000000000fffffffffffffffffffffffffff +CT= 695cb975fce7307b7b66a834532886e0 +TEST= 109 +KEY= 0000000000000000000000000000000000001fffffffffffffffffffffffffff +CT= 2b208ab1ee6448d185e487ccd48e6e21 +TEST= 110 +KEY= 0000000000000000000000000000000000003fffffffffffffffffffffffffff +CT= fb83cf7f34b08873c8d69d261055e20b +TEST= 111 +KEY= 0000000000000000000000000000000000007fffffffffffffffffffffffffff +CT= b5028a49edef6b356c3a650e2cb9e8ec +TEST= 112 +KEY= 000000000000000000000000000000000000ffffffffffffffffffffffffffff +CT= 95334335ed4c4a760562ae7d2a495632 +TEST= 113 +KEY= 000000000000000000000000000000000001ffffffffffffffffffffffffffff +CT= 6a462fa7c99e2f712c68589060ba5ea8 +TEST= 114 +KEY= 000000000000000000000000000000000003ffffffffffffffffffffffffffff +CT= a6d665b7058a2afb5d8733f68cd5a3ad +TEST= 115 +KEY= 000000000000000000000000000000000007ffffffffffffffffffffffffffff +CT= e83ca68a268587bced34cb8c7921295e +TEST= 116 +KEY= 00000000000000000000000000000000000fffffffffffffffffffffffffffff +CT= b071d09822e2057cf9340dd7cab746e1 +TEST= 117 +KEY= 00000000000000000000000000000000001fffffffffffffffffffffffffffff +CT= 56b2e0652b99419a4ee106208d93dcfe +TEST= 118 +KEY= 00000000000000000000000000000000003fffffffffffffffffffffffffffff +CT= 007124f92a4d45b728573441e9f9056e +TEST= 119 +KEY= 00000000000000000000000000000000007fffffffffffffffffffffffffffff +CT= 16793534f4253cbc98b5566034922535 +TEST= 120 +KEY= 0000000000000000000000000000000000ffffffffffffffffffffffffffffff +CT= 52ef58a3745fb284b5dc0d3b1461e83f +TEST= 121 +KEY= 0000000000000000000000000000000001ffffffffffffffffffffffffffffff +CT= 5d0437caa6e87e7edaaef69b9f2a939c +TEST= 122 +KEY= 0000000000000000000000000000000003ffffffffffffffffffffffffffffff +CT= 6b0fcfd7c7a9f906612bd19d56a5eb92 +TEST= 123 +KEY= 0000000000000000000000000000000007ffffffffffffffffffffffffffffff +CT= 1b70f1055cd41e7b4baaf811d1dc2107 +TEST= 124 +KEY= 000000000000000000000000000000000fffffffffffffffffffffffffffffff +CT= 44af7f02410db127a4df787fc95dbeba +TEST= 125 +KEY= 000000000000000000000000000000001fffffffffffffffffffffffffffffff +CT= 4e257c57d75263d0f8e332a840eb5d91 +TEST= 126 +KEY= 000000000000000000000000000000003fffffffffffffffffffffffffffffff +CT= 5bf2a1b829ac2b77694ba7e9cd5fe696 +TEST= 127 +KEY= 000000000000000000000000000000007fffffffffffffffffffffffffffffff +CT= 16bde095575a3fce86d6a2048efdfda5 +TEST= 128 +KEY= 00000000000000000000000000000000ffffffffffffffffffffffffffffffff +CT= 3eba4327813f079e4e35ff0f96294c45 +TEST= 129 +KEY= 00000000000000000000000000000001ffffffffffffffffffffffffffffffff +CT= 8e44354ada179283f48a9a823ed12dde +TEST= 130 +KEY= 00000000000000000000000000000003ffffffffffffffffffffffffffffffff +CT= 947c7bf988d6c4337a287fd07e315eb6 +TEST= 131 +KEY= 00000000000000000000000000000007ffffffffffffffffffffffffffffffff +CT= 8f40a2be60fc9199c33107784cd8680a +TEST= 132 +KEY= 0000000000000000000000000000000fffffffffffffffffffffffffffffffff +CT= 24d8df70bc270b725a061ffbae9908aa +TEST= 133 +KEY= 0000000000000000000000000000001fffffffffffffffffffffffffffffffff +CT= 75bb95c01ee27cfa20942a3248bf2c15 +TEST= 134 +KEY= 0000000000000000000000000000003fffffffffffffffffffffffffffffffff +CT= 6dd74f7f74ebfcbe2ea9003eea9dc895 +TEST= 135 +KEY= 0000000000000000000000000000007fffffffffffffffffffffffffffffffff +CT= e7ba9be6d67eb735faab4e51c42c358a +TEST= 136 +KEY= 000000000000000000000000000000ffffffffffffffffffffffffffffffffff +CT= 31f9d4202468e6bf9ae926396c09d75d +TEST= 137 +KEY= 000000000000000000000000000001ffffffffffffffffffffffffffffffffff +CT= c8021f0215b26d90a9957381134db197 +TEST= 138 +KEY= 000000000000000000000000000003ffffffffffffffffffffffffffffffffff +CT= 57a95c3742317d577d00653f90a57214 +TEST= 139 +KEY= 000000000000000000000000000007ffffffffffffffffffffffffffffffffff +CT= 0d2d79b82fa7b36ee766c1ffd9b61610 +TEST= 140 +KEY= 00000000000000000000000000000fffffffffffffffffffffffffffffffffff +CT= e571bc3cc6b85ace8d9b4d1136d962d7 +TEST= 141 +KEY= 00000000000000000000000000001fffffffffffffffffffffffffffffffffff +CT= ffa28032523f41d01de868f5545188bf +TEST= 142 +KEY= 00000000000000000000000000003fffffffffffffffffffffffffffffffffff +CT= 2734d5d8c9ad438077f9308a8de9d544 +TEST= 143 +KEY= 00000000000000000000000000007fffffffffffffffffffffffffffffffffff +CT= 99d9f28f5127ea200c9de6d5c8d0fc1c +TEST= 144 +KEY= 0000000000000000000000000000ffffffffffffffffffffffffffffffffffff +CT= 0fdca399ded08ed42b085da22d93326d +TEST= 145 +KEY= 0000000000000000000000000001ffffffffffffffffffffffffffffffffffff +CT= 3f30ddd5a713d5d8ab216a8b4d7d52a4 +TEST= 146 +KEY= 0000000000000000000000000003ffffffffffffffffffffffffffffffffffff +CT= c3d85f4ea35417559b1407d39c149fc7 +TEST= 147 +KEY= 0000000000000000000000000007ffffffffffffffffffffffffffffffffffff +CT= e3d276628c8cf02c42ad2d758de155ce +TEST= 148 +KEY= 000000000000000000000000000fffffffffffffffffffffffffffffffffffff +CT= b84399d6053263e6472304e26f5e0ec7 +TEST= 149 +KEY= 000000000000000000000000001fffffffffffffffffffffffffffffffffffff +CT= 6e20742b02838468dd51e5a3a7f2b8ba +TEST= 150 +KEY= 000000000000000000000000003fffffffffffffffffffffffffffffffffffff +CT= 9a9dbab97ca1f7a2da7f965ee1dfb4e6 +TEST= 151 +KEY= 000000000000000000000000007fffffffffffffffffffffffffffffffffffff +CT= 41aacaa89e1399a108a80716fd0e0f55 +TEST= 152 +KEY= 00000000000000000000000000ffffffffffffffffffffffffffffffffffffff +CT= 582be6d22c815bc81fde4c0d234d626a +TEST= 153 +KEY= 00000000000000000000000001ffffffffffffffffffffffffffffffffffffff +CT= 4499f256fe699e5e994d887be48fe2ec +TEST= 154 +KEY= 00000000000000000000000003ffffffffffffffffffffffffffffffffffffff +CT= ee26c00ac7b5df7bfe5e3a07df721147 +TEST= 155 +KEY= 00000000000000000000000007ffffffffffffffffffffffffffffffffffffff +CT= 8b8f6e74e2f3f90647d0fd8bb9bebad4 +TEST= 156 +KEY= 0000000000000000000000000fffffffffffffffffffffffffffffffffffffff +CT= 863784b8bedd5e5136653c117640cf73 +TEST= 157 +KEY= 0000000000000000000000001fffffffffffffffffffffffffffffffffffffff +CT= 649734b5a45c46804993680b7430ee16 +TEST= 158 +KEY= 0000000000000000000000003fffffffffffffffffffffffffffffffffffffff +CT= 4300c7495e4f60051bf81b41efd60937 +TEST= 159 +KEY= 0000000000000000000000007fffffffffffffffffffffffffffffffffffffff +CT= 175c302f8c69865e4b29998654d7df56 +TEST= 160 +KEY= 000000000000000000000000ffffffffffffffffffffffffffffffffffffffff +CT= 7fa83d9963562b275db0b9f8a2741abf +TEST= 161 +KEY= 000000000000000000000001ffffffffffffffffffffffffffffffffffffffff +CT= dff04cd44b1770cdc3dfd13076cdd20d +TEST= 162 +KEY= 000000000000000000000003ffffffffffffffffffffffffffffffffffffffff +CT= 576bd4bad89d83bd47543b49d43bfbac +TEST= 163 +KEY= 000000000000000000000007ffffffffffffffffffffffffffffffffffffffff +CT= d38e87363016d48279fa8a8f89514ec2 +TEST= 164 +KEY= 00000000000000000000000fffffffffffffffffffffffffffffffffffffffff +CT= 48a1b62e83e17d43f94367380efe6d3c +TEST= 165 +KEY= 00000000000000000000001fffffffffffffffffffffffffffffffffffffffff +CT= c1bb7aefd3613e4e54fbc55263089094 +TEST= 166 +KEY= 00000000000000000000003fffffffffffffffffffffffffffffffffffffffff +CT= b2f12fd11d9fc28942e293cafd564697 +TEST= 167 +KEY= 00000000000000000000007fffffffffffffffffffffffffffffffffffffffff +CT= 9f7d86077298836c7a051cdcdc01b0a3 +TEST= 168 +KEY= 0000000000000000000000ffffffffffffffffffffffffffffffffffffffffff +CT= 837980614116768f301d4eaf74c8f61c +TEST= 169 +KEY= 0000000000000000000001ffffffffffffffffffffffffffffffffffffffffff +CT= bebe2da4f22916c758713300653954f2 +TEST= 170 +KEY= 0000000000000000000003ffffffffffffffffffffffffffffffffffffffffff +CT= a854fef10367e2717f0c1477c276ba51 +TEST= 171 +KEY= 0000000000000000000007ffffffffffffffffffffffffffffffffffffffffff +CT= 8062587d0399c57034691b224b7458f9 +TEST= 172 +KEY= 000000000000000000000fffffffffffffffffffffffffffffffffffffffffff +CT= 6eff435d904f9331194a9390aab9bbc6 +TEST= 173 +KEY= 000000000000000000001fffffffffffffffffffffffffffffffffffffffffff +CT= 51cca7c89eb5cf85513f4d4cc012367d +TEST= 174 +KEY= 000000000000000000003fffffffffffffffffffffffffffffffffffffffffff +CT= 7266ab510d9fba7ef7f5b091771ce3b6 +TEST= 175 +KEY= 000000000000000000007fffffffffffffffffffffffffffffffffffffffffff +CT= a7fea44379f62e4c084762cf57fcff2e +TEST= 176 +KEY= 00000000000000000000ffffffffffffffffffffffffffffffffffffffffffff +CT= cfe5b834dc50762e7f664736fe01314c +TEST= 177 +KEY= 00000000000000000001ffffffffffffffffffffffffffffffffffffffffffff +CT= b161bcc5b60fdee9f42f01ad7cb577cc +TEST= 178 +KEY= 00000000000000000003ffffffffffffffffffffffffffffffffffffffffffff +CT= 619203acd2578302f9fd58878bb7e6e9 +TEST= 179 +KEY= 00000000000000000007ffffffffffffffffffffffffffffffffffffffffffff +CT= 3b8c4d30824b1c30b654982f3b11c690 +TEST= 180 +KEY= 0000000000000000000fffffffffffffffffffffffffffffffffffffffffffff +CT= ca5f8704dffde917707fbee0e6d47d91 +TEST= 181 +KEY= 0000000000000000001fffffffffffffffffffffffffffffffffffffffffffff +CT= e47af77c9156d7b189d60302bba2abc7 +TEST= 182 +KEY= 0000000000000000003fffffffffffffffffffffffffffffffffffffffffffff +CT= 672728b55b4987f66df36174c601ee79 +TEST= 183 +KEY= 0000000000000000007fffffffffffffffffffffffffffffffffffffffffffff +CT= ecf4ad0de7dc2b747cd6bd672661cf20 +TEST= 184 +KEY= 000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff +CT= 90ec729bd49587be52d69a48d2101241 +TEST= 185 +KEY= 000000000000000001ffffffffffffffffffffffffffffffffffffffffffffff +CT= 3f47dd56e94bdcc88fc15f92680fae2b +TEST= 186 +KEY= 000000000000000003ffffffffffffffffffffffffffffffffffffffffffffff +CT= 8a2db427a64ffd3d4a1351c2926f6c88 +TEST= 187 +KEY= 000000000000000007ffffffffffffffffffffffffffffffffffffffffffffff +CT= fbb09231e2d67b2292c4aad76eba7f24 +TEST= 188 +KEY= 00000000000000000fffffffffffffffffffffffffffffffffffffffffffffff +CT= dbc986b4365cb5de13e66e8b61f2b7a7 +TEST= 189 +KEY= 00000000000000001fffffffffffffffffffffffffffffffffffffffffffffff +CT= d8bb9b81c245521987e35293c8dc1c5b +TEST= 190 +KEY= 00000000000000003fffffffffffffffffffffffffffffffffffffffffffffff +CT= 2f8abe972cbef8e44333f6fc7b546b47 +TEST= 191 +KEY= 00000000000000007fffffffffffffffffffffffffffffffffffffffffffffff +CT= c4f400720ac847b949efbb88465c4a03 +TEST= 192 +KEY= 0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff +CT= 13af71f5b184afa7a6b2076fda139c3e +TEST= 193 +KEY= 0000000000000001ffffffffffffffffffffffffffffffffffffffffffffffff +CT= 343f57ab0bcaf1d0a6da2a4bb8548eb3 +TEST= 194 +KEY= 0000000000000003ffffffffffffffffffffffffffffffffffffffffffffffff +CT= 186664c6155d822512d9ee6235fe8ae6 +TEST= 195 +KEY= 0000000000000007ffffffffffffffffffffffffffffffffffffffffffffffff +CT= 84cb0d12ca2606e32d74352e70b46eb4 +TEST= 196 +KEY= 000000000000000fffffffffffffffffffffffffffffffffffffffffffffffff +CT= 1b4a2fce431cc884592074df060a8e3a +TEST= 197 +KEY= 000000000000001fffffffffffffffffffffffffffffffffffffffffffffffff +CT= 6a03c8a609c994bf05968eee7a92352f +TEST= 198 +KEY= 000000000000003fffffffffffffffffffffffffffffffffffffffffffffffff +CT= 886b0ebef192f7822f761e3638ee4cf8 +TEST= 199 +KEY= 000000000000007fffffffffffffffffffffffffffffffffffffffffffffffff +CT= 855afdfa6f111b1307e6aefd2ca99cf7 +TEST= 200 +KEY= 00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 30038bd599a496cfd937de42958fec6d +TEST= 201 +KEY= 00000000000001ffffffffffffffffffffffffffffffffffffffffffffffffff +CT= bf2de78771bbc0612c5b124b05b0c91a +TEST= 202 +KEY= 00000000000003ffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 51d5ad97f39309054b7f3a3d3c4a5fcd +TEST= 203 +KEY= 00000000000007ffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 05c656dbd95072ca76c837eca96b7be7 +TEST= 204 +KEY= 0000000000000fffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 19c4955ce3fbb5d075309f4236c95d40 +TEST= 205 +KEY= 0000000000001fffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 3e82296fc30beae5bfc99dc34d098bd1 +TEST= 206 +KEY= 0000000000003fffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 946792d61dc8f87428316dd660acb0d7 +TEST= 207 +KEY= 0000000000007fffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 23877a45e455d3583850765e02e74f85 +TEST= 208 +KEY= 000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= a78b350037a786ea1dccb496695c4853 +TEST= 209 +KEY= 000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 07a773a8e323e590728d8d908a70bb9c +TEST= 210 +KEY= 000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= bc916f318e1616cef19b497f5fd57e70 +TEST= 211 +KEY= 000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 4955b47dc1bdb73bf4ff96d6b2ca9b60 +TEST= 212 +KEY= 00000000000fffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 301db4ae59999c76d1dafeec928bb274 +TEST= 213 +KEY= 00000000001fffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 1ae328b4d92d60cb4ac726ba7882dbae +TEST= 214 +KEY= 00000000003fffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= baafaebb3c980d05b72abee6756e80cd +TEST= 215 +KEY= 00000000007fffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 1dd5d46789807814a37f1d9bdcf1f1f0 +TEST= 216 +KEY= 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 29258975ad47bb2fef85792c6edba0cf +TEST= 217 +KEY= 0000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 6ba3d4297e1c46611c91a4bd5f469c16 +TEST= 218 +KEY= 0000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= db3db8c9e6dfb466554180bfaafbd7d5 +TEST= 219 +KEY= 0000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= dbe0f4c8a53653227f9420f3c8a4217e +TEST= 220 +KEY= 000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 0a68a6d3efed7b6602bdba3affd12679 +TEST= 221 +KEY= 000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 83164657104e46ed285f929f880b4d94 +TEST= 222 +KEY= 000000003fffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 24766eda3ac0abe8ecd3f578c1dcdb54 +TEST= 223 +KEY= 000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= d871b41c3cd1b8977242dc4846bfacfc +TEST= 224 +KEY= 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 7b41c82f493c0fa5f5d55ea270f9863c +TEST= 225 +KEY= 00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 79ac40e48b1f044e89c2f2e444447a78 +TEST= 226 +KEY= 00000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 71b289b6ccd0975244b291b0afad7883 +TEST= 227 +KEY= 00000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 0212b97d6105467fcc606575d17f1065 +TEST= 228 +KEY= 0000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 2eb35611fb7c76778b0f54cb0cc2934d +TEST= 229 +KEY= 0000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= a7dee1c4fe0755ba889cf3fd1c65205c +TEST= 230 +KEY= 0000003fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 621116bdeeae44ae2eecb08fce1e108a +TEST= 231 +KEY= 0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 29a1db0e72a771eb8c6361a17d6e6dbf +TEST= 232 +KEY= 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 36fffa85f3963cf01f3297f4eefe14a1 +TEST= 233 +KEY= 000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= c45dc9405cf61864d9fb65e864130009 +TEST= 234 +KEY= 000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= ae9a1eb242eee920e539d8ce1fc96286 +TEST= 235 +KEY= 000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 99861099327a2b7170db096990c90453 +TEST= 236 +KEY= 00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= d33639cd1a110d75cc8394e0a09be96a +TEST= 237 +KEY= 00001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 775fda0219add7cf975e38ba170e7d7b +TEST= 238 +KEY= 00003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 70ce9897f99712185af3f0ba84a726ff +TEST= 239 +KEY= 00007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= a3d47fb6583f8a2f889bb79509731ec7 +TEST= 240 +KEY= 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= c4bad4e26e43d7c4af234278dc537528 +TEST= 241 +KEY= 0001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 920d830bce23565df19eaae4bd57310a +TEST= 242 +KEY= 0003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 3a39c43e83b54f61abe4383c96db3cc6 +TEST= 243 +KEY= 0007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 1d020ad19fba8d96a65bba16fbb42e17 +TEST= 244 +KEY= 000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 141ac0c97479d9e2102a9aabc127ee63 +TEST= 245 +KEY= 001fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 7d3af45ccefc698808fb285ac595d491 +TEST= 246 +KEY= 003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= f9721f2d5f0a842aa66015d4ed6ca4b8 +TEST= 247 +KEY= 007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 3375396341b19ef7d59035e77d04157c +TEST= 248 +KEY= 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= b82a29ff80dc7924f3bc74033b567241 +TEST= 249 +KEY= 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 89cd4f3a1ff80a6f5f21619b12d8ceb7 +TEST= 250 +KEY= 03ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 2ac0fd06ad5d60a45ef4b185eb2116d3 +TEST= 251 +KEY= 07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= a84ecd3feb87562d3837c1bd82f4a9a9 +TEST= 252 +KEY= 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 6863d07b1b6cbf078a5a95ab10e4142f +TEST= 253 +KEY= 1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 3b4c71bd036bc069e5dd13c38a3004a9 +TEST= 254 +KEY= 3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= cc0a818a631d407ab7ec415276719e31 +TEST= 255 +KEY= 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 69053f64996ad8b4e82d996847de458b +TEST= 256 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +CT= 4bf85f1b5d54adbc307b0a048389adcb +TEST= 257 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe +CT= b07d4f3e2cd2ef2eb545980754dfea0f +TEST= 258 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc +CT= 27936bd27fb1468fc8b48bc483321725 +TEST= 259 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8 +CT= 1f8a8133aa8ccf70e2bd3285831ca6b7 +TEST= 260 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0 +CT= 03720371a04962eaea0a852e69972858 +TEST= 261 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 +CT= cf78618f74f6f3696e0a4779b90b5a77 +TEST= 262 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0 +CT= 7b03627611678a997717578807a800e2 +TEST= 263 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 +CT= 2f005a8aed8a361c92e440c15520cbd1 +TEST= 264 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 +CT= 60eb5af8416b257149372194e8b88749 +TEST= 265 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00 +CT= 5b40ff4ec9be536ba23035fa4f06064c +TEST= 266 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00 +CT= cca7c3086f5f9511b31233da7cab9160 +TEST= 267 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800 +CT= 8b378c86672aa54a3a266ba19d2580ca +TEST= 268 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000 +CT= 9338f08e0ebee96905d8f2e825208f43 +TEST= 269 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000 +CT= 50e6d3c9b6698a7cd276f96b1473f35a +TEST= 270 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000 +CT= d94b5e90db354c1e42f61fabe167b2c0 +TEST= 271 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000 +CT= a8a39a0f5663f4c0fe5f2d3cafff421a +TEST= 272 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 +CT= 563531135e0c4d70a38f8bdb190ba04e +TEST= 273 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000 +CT= d2e0c7f15b4772467d2cfc873000b2ca +TEST= 274 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000 +CT= 52fc3e620492ea99641ea168da5b6d52 +TEST= 275 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000 +CT= 3a0a0e75a8da36735aee6684d965a778 +TEST= 276 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000 +CT= d3a204dbd9c2af158b6ca67a5156ce4a +TEST= 277 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000 +CT= 2fdea9e650532be5bc0e7325337fd363 +TEST= 278 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000 +CT= d1ac39bb1ef86b9c1344f214679aa376 +TEST= 279 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 +CT= da797713263d6f33a5478a65ef60d412 +TEST= 280 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 +CT= 3194367a4898c502c13bb7478640a72d +TEST= 281 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000 +CT= ba9ebefdb4ccf30f296cecb3bc1943e8 +TEST= 282 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000 +CT= e74a4c999b4c064e48bb1e413f51e5ea +TEST= 283 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000 +CT= ea7bd6bb63418731aeac790fe42d61e8 +TEST= 284 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000 +CT= 37f655536a704e5ace182d742a820cf4 +TEST= 285 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000 +CT= 3f58c950f0367160adec45f2441e7411 +TEST= 286 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000 +CT= 294b033df4da853f4be3e243f7e513f4 +TEST= 287 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000 +CT= 234b148b8cb1d8c32b287e896903d150 +TEST= 288 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 +CT= 70bed8dbf615868a1f9d9b05d3e7a267 +TEST= 289 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000 +CT= 1e38e759075ba5cab6457da51844295a +TEST= 290 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000 +CT= 02dc99fa3d4f98ce80985e7233889313 +TEST= 291 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffff800000000 +CT= 7379f3370cf6e5ce12ae5969c8eea312 +TEST= 292 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000 +CT= 96877803de77744bb970d0a91f4debae +TEST= 293 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000 +CT= 2fbb83dfd0d7abcb05cd28cad2dfb523 +TEST= 294 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffffc000000000 +CT= 9c94b8b0cb8bcc919072262b3fa05ad9 +TEST= 295 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000 +CT= 70377b6da669b072129e057cc28e9ca5 +TEST= 296 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 +CT= 26b549c2ec756f82ecc48008e529956b +TEST= 297 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000 +CT= 1ee6ee326583a0586491c96418d1a35d +TEST= 298 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000 +CT= 97e8adf65638fd9cdf3bc22c17fe4dbd +TEST= 299 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000 +CT= 5bf0051893a18bb30e139a58fed0fa54 +TEST= 300 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000 +CT= 7a15aab82701efa5ae36ab1d6b76290f +TEST= 301 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000 +CT= 4327d08c523d8eba697a4336507d1f42 +TEST= 302 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000 +CT= 4fc0d230f8891415b87b83f95f2e09d1 +TEST= 303 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffff800000000000 +CT= a085d7c1a500873a20099c4caa3c3f5b +TEST= 304 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 +CT= 69cd0606e15af729d6bca143016d9842 +TEST= 305 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000 +CT= 1f56413c7add6f43d1d56e4f02190330 +TEST= 306 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffffc000000000000 +CT= 2e2e647d5360e09230a5d738ca33471e +TEST= 307 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000 +CT= 6702990727aa0878637b45dcd3a3b074 +TEST= 308 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000 +CT= e9f80e9d845bcc0f62926af72eabca39 +TEST= 309 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000 +CT= c267ef0e2d01a993944dd397101413cb +TEST= 310 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffffc0000000000000 +CT= 6eda7ff6b8319180ff0d6e65629d01c3 +TEST= 311 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000 +CT= 8a772231c01dfdd7c98e4cfddcc0807a +TEST= 312 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000 +CT= 35e9eddbc375e792c19992c19165012b +TEST= 313 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000 +CT= 1dcd8bb173259eb33a5242b0de31a455 +TEST= 314 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffffc00000000000000 +CT= 84ecacfcd400084d078612b1945f2ef5 +TEST= 315 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffff800000000000000 +CT= 193a3d24157a51f1ee0893f6777417e7 +TEST= 316 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000 +CT= 023e82b533f68c75c238cebdb2ee89a2 +TEST= 317 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000 +CT= d64424f23cb97215e9c2c6f28d29eab7 +TEST= 318 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffffc000000000000000 +CT= 804f32ea71828c7d329077e712231666 +TEST= 319 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000 +CT= 37232a4ed21ccc27c19c9610078cabac +TEST= 320 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 +CT= 77565c8d73cfd4130b4aa14d8911710f +TEST= 321 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000 +CT= 516183392f7a8763afec68a060264141 +TEST= 322 +KEY= fffffffffffffffffffffffffffffffffffffffffffffffc0000000000000000 +CT= d1415447866230d28bb1ea18a4cdfd02 +TEST= 323 +KEY= fffffffffffffffffffffffffffffffffffffffffffffff80000000000000000 +CT= 6168b00ba7859e0970ecfd757efecf7c +TEST= 324 +KEY= fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000 +CT= edf61ae362e882ddc0167474a7a77f3a +TEST= 325 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000 +CT= 330d8ee7c5677e099ac74c9994ee4cfb +TEST= 326 +KEY= ffffffffffffffffffffffffffffffffffffffffffffffc00000000000000000 +CT= 2cacf728b88abbad7011ed0e64a1680c +TEST= 327 +KEY= ffffffffffffffffffffffffffffffffffffffffffffff800000000000000000 +CT= db826251e4ce384b80218b0e1da1dd4c +TEST= 328 +KEY= ffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 +CT= 0ddfe51ced7e3f4ae927daa3fe452cee +TEST= 329 +KEY= fffffffffffffffffffffffffffffffffffffffffffffe000000000000000000 +CT= 98551da1a6503276ae1c77625f9ea615 +TEST= 330 +KEY= fffffffffffffffffffffffffffffffffffffffffffffc000000000000000000 +CT= 72bc65aa8e89562e3f274d45af1cd10b +TEST= 331 +KEY= fffffffffffffffffffffffffffffffffffffffffffff8000000000000000000 +CT= 4570a5a18cfc0dd582f1d88d5c9a1720 +TEST= 332 +KEY= fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000 +CT= 6629d2b8df97da728cdd8b1e7f945077 +TEST= 333 +KEY= ffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000 +CT= ca6e8893a114ae8e27d5ab03a5499610 +TEST= 334 +KEY= ffffffffffffffffffffffffffffffffffffffffffffc0000000000000000000 +CT= db91a38855c8c4643851fbfb358b0109 +TEST= 335 +KEY= ffffffffffffffffffffffffffffffffffffffffffff80000000000000000000 +CT= bcc65b526f88d05b89ce8a52021fdb06 +TEST= 336 +KEY= ffffffffffffffffffffffffffffffffffffffffffff00000000000000000000 +CT= ca359c70803a3b2a3d542e8781dea975 +TEST= 337 +KEY= fffffffffffffffffffffffffffffffffffffffffffe00000000000000000000 +CT= c33bc13e8de88ac25232aa7496398783 +TEST= 338 +KEY= fffffffffffffffffffffffffffffffffffffffffffc00000000000000000000 +CT= 10dffb05904bff7c4781df780ad26837 +TEST= 339 +KEY= fffffffffffffffffffffffffffffffffffffffffff800000000000000000000 +CT= ede447b362c484993dec9442a3b46aef +TEST= 340 +KEY= fffffffffffffffffffffffffffffffffffffffffff000000000000000000000 +CT= fdd9bbb4a7dc2e4a23536a5880a2db67 +TEST= 341 +KEY= ffffffffffffffffffffffffffffffffffffffffffe000000000000000000000 +CT= ca0bf42cb107f55ccff2fc09ee08ca15 +TEST= 342 +KEY= ffffffffffffffffffffffffffffffffffffffffffc000000000000000000000 +CT= cb5a408657837c53bf16f9d8465dce19 +TEST= 343 +KEY= ffffffffffffffffffffffffffffffffffffffffff8000000000000000000000 +CT= cfd1875523f3cd21c395651e6ee15e56 +TEST= 344 +KEY= ffffffffffffffffffffffffffffffffffffffffff0000000000000000000000 +CT= be288319029363c2622feba4b05dfdfe +TEST= 345 +KEY= fffffffffffffffffffffffffffffffffffffffffe0000000000000000000000 +CT= cc1445ee94c0f08cdee5c344ecd1e233 +TEST= 346 +KEY= fffffffffffffffffffffffffffffffffffffffffc0000000000000000000000 +CT= 866b5b3977ba6efa5128efbda9ff03cd +TEST= 347 +KEY= fffffffffffffffffffffffffffffffffffffffff80000000000000000000000 +CT= 332eee1a0cbd19ca2d69b426894044f0 +TEST= 348 +KEY= fffffffffffffffffffffffffffffffffffffffff00000000000000000000000 +CT= 347846b2b2e36f1f0324c86f7f1b98e2 +TEST= 349 +KEY= ffffffffffffffffffffffffffffffffffffffffe00000000000000000000000 +CT= 11c5413904487a805d70a8edd9c35527 +TEST= 350 +KEY= ffffffffffffffffffffffffffffffffffffffffc00000000000000000000000 +CT= feec7ce6a6cbd07c043416737f1bbb33 +TEST= 351 +KEY= ffffffffffffffffffffffffffffffffffffffff800000000000000000000000 +CT= 4960757ec6ce68cf195e454cfd0f32ca +TEST= 352 +KEY= ffffffffffffffffffffffffffffffffffffffff000000000000000000000000 +CT= 93201481665cbafc1fcc220bc545fb3d +TEST= 353 +KEY= fffffffffffffffffffffffffffffffffffffffe000000000000000000000000 +CT= c102e38e489aa74762f3efc5bb23205a +TEST= 354 +KEY= fffffffffffffffffffffffffffffffffffffffc000000000000000000000000 +CT= c93bbdc07a4611ae4bb266ea5034a387 +TEST= 355 +KEY= fffffffffffffffffffffffffffffffffffffff8000000000000000000000000 +CT= 8c791d5fdddf470da04f3e6dc4a5b5b5 +TEST= 356 +KEY= fffffffffffffffffffffffffffffffffffffff0000000000000000000000000 +CT= fcfefb534100796eebbd990206754e19 +TEST= 357 +KEY= ffffffffffffffffffffffffffffffffffffffe0000000000000000000000000 +CT= 6cae8129f843d86dc786a0fb1a184970 +TEST= 358 +KEY= ffffffffffffffffffffffffffffffffffffffc0000000000000000000000000 +CT= ba77413dea5925b7f5417ea47ff19f59 +TEST= 359 +KEY= ffffffffffffffffffffffffffffffffffffff80000000000000000000000000 +CT= 72c9e4646dbc3d6320fc6689d93e8833 +TEST= 360 +KEY= ffffffffffffffffffffffffffffffffffffff00000000000000000000000000 +CT= 33905080f7acf1cdae0a91fc3e85aee4 +TEST= 361 +KEY= fffffffffffffffffffffffffffffffffffffe00000000000000000000000000 +CT= 59836a0e06a79691b36667d5380d8188 +TEST= 362 +KEY= fffffffffffffffffffffffffffffffffffffc00000000000000000000000000 +CT= 238aca23fd3409f38af63378ed2f5473 +TEST= 363 +KEY= fffffffffffffffffffffffffffffffffffff800000000000000000000000000 +CT= ca352df025c65c7b0bf306fbee0f36ba +TEST= 364 +KEY= fffffffffffffffffffffffffffffffffffff000000000000000000000000000 +CT= d9a4c7618b0ce48a3d5aee1a1c0114c4 +TEST= 365 +KEY= ffffffffffffffffffffffffffffffffffffe000000000000000000000000000 +CT= dcf4e129136c1a4b7a0f38935cc34b2b +TEST= 366 +KEY= ffffffffffffffffffffffffffffffffffffc000000000000000000000000000 +CT= b4da5df4becb5462e03a0ed00d295629 +TEST= 367 +KEY= ffffffffffffffffffffffffffffffffffff8000000000000000000000000000 +CT= 45d089c36d5c5a4efc689e3b0de10dd5 +TEST= 368 +KEY= ffffffffffffffffffffffffffffffffffff0000000000000000000000000000 +CT= d240d648ce21a3020282c3f1b528a0b6 +TEST= 369 +KEY= fffffffffffffffffffffffffffffffffffe0000000000000000000000000000 +CT= 5d942b7f4622ce056c3ce3ce5f1dd9d6 +TEST= 370 +KEY= fffffffffffffffffffffffffffffffffffc0000000000000000000000000000 +CT= cac8e414c2f388227ae14986fc983524 +TEST= 371 +KEY= fffffffffffffffffffffffffffffffffff80000000000000000000000000000 +CT= a9eec03c8abec7ba68315c2c8c2316e0 +TEST= 372 +KEY= fffffffffffffffffffffffffffffffffff00000000000000000000000000000 +CT= 7c85e9c95de1a9ec5a5363a8a053472d +TEST= 373 +KEY= ffffffffffffffffffffffffffffffffffe00000000000000000000000000000 +CT= 3967a10cffe27d0178545fbf6a40544b +TEST= 374 +KEY= ffffffffffffffffffffffffffffffffffc00000000000000000000000000000 +CT= c64c24b6894b038b3c0d09b1df068b0b +TEST= 375 +KEY= ffffffffffffffffffffffffffffffffff800000000000000000000000000000 +CT= bf8115805471741bd5ad20a03944790f +TEST= 376 +KEY= ffffffffffffffffffffffffffffffffff000000000000000000000000000000 +CT= ef1b384ac4d93eda00c92add0995ea5f +TEST= 377 +KEY= fffffffffffffffffffffffffffffffffe000000000000000000000000000000 +CT= 6c5d03b13069c3658b3179be91b0800c +TEST= 378 +KEY= fffffffffffffffffffffffffffffffffc000000000000000000000000000000 +CT= 8680db7f3a87b8605543cfdbe6754076 +TEST= 379 +KEY= fffffffffffffffffffffffffffffffff8000000000000000000000000000000 +CT= 6e668856539ad8e405bd123fe6c88530 +TEST= 380 +KEY= fffffffffffffffffffffffffffffffff0000000000000000000000000000000 +CT= c3498f7eced2095314fc28115885b33f +TEST= 381 +KEY= ffffffffffffffffffffffffffffffffe0000000000000000000000000000000 +CT= 5d454b75021d76d4b84f873a8f877b92 +TEST= 382 +KEY= ffffffffffffffffffffffffffffffffc0000000000000000000000000000000 +CT= d836b44bb29e0c7d89fa4b2d4b677d2a +TEST= 383 +KEY= ffffffffffffffffffffffffffffffff80000000000000000000000000000000 +CT= e3714e94a5778955cc0346358e94783a +TEST= 384 +KEY= ffffffffffffffffffffffffffffffff00000000000000000000000000000000 +CT= 6825a347ac479d4f9d95c5cb8d3fd7e9 +TEST= 385 +KEY= fffffffffffffffffffffffffffffffe00000000000000000000000000000000 +CT= b5f71d4dd9a71fe5d8bc8ba7e6ea3048 +TEST= 386 +KEY= fffffffffffffffffffffffffffffffc00000000000000000000000000000000 +CT= d62068444578e3ab39ce7ec95dd045dc +TEST= 387 +KEY= fffffffffffffffffffffffffffffff800000000000000000000000000000000 +CT= 27eefa80ce6a4a9d598e3fec365434d2 +TEST= 388 +KEY= fffffffffffffffffffffffffffffff000000000000000000000000000000000 +CT= 86f93d9ec08453a071e2e2877877a9c8 +TEST= 389 +KEY= ffffffffffffffffffffffffffffffe000000000000000000000000000000000 +CT= 9661cb2424d7d4a380d547f9e7ec1cb9 +TEST= 390 +KEY= ffffffffffffffffffffffffffffffc000000000000000000000000000000000 +CT= 8193c6ff85225ced4255e92f6e078a14 +TEST= 391 +KEY= ffffffffffffffffffffffffffffff8000000000000000000000000000000000 +CT= a866bc65b6941d86e8420a7ffb0964db +TEST= 392 +KEY= ffffffffffffffffffffffffffffff0000000000000000000000000000000000 +CT= 190843d29b25a3897c692ce1dd81ee52 +TEST= 393 +KEY= fffffffffffffffffffffffffffffe0000000000000000000000000000000000 +CT= f1f1c5a40899e15772857ccb65c7a09a +TEST= 394 +KEY= fffffffffffffffffffffffffffffc0000000000000000000000000000000000 +CT= 3a90c62d88b5c42809abf782488ed130 +TEST= 395 +KEY= fffffffffffffffffffffffffffff80000000000000000000000000000000000 +CT= 9aaec4fabbf6fae2a71feff02e372b39 +TEST= 396 +KEY= fffffffffffffffffffffffffffff00000000000000000000000000000000000 +CT= 10617d28b5e0f4605492b182a5d7f9f6 +TEST= 397 +KEY= ffffffffffffffffffffffffffffe00000000000000000000000000000000000 +CT= 87f53bf620d3677268445212904389d5 +TEST= 398 +KEY= ffffffffffffffffffffffffffffc00000000000000000000000000000000000 +CT= ba26d47da3aeb028de4fb5b3a854a24b +TEST= 399 +KEY= ffffffffffffffffffffffffffff800000000000000000000000000000000000 +CT= 3b6f46f40e0ac5fc0a9c1105f800f48d +TEST= 400 +KEY= ffffffffffffffffffffffffffff000000000000000000000000000000000000 +CT= cd5ece55b8da3bf622c4100df5de46f9 +TEST= 401 +KEY= fffffffffffffffffffffffffffe000000000000000000000000000000000000 +CT= 6c839dd58eeae6b8a36af48ed63d2dc9 +TEST= 402 +KEY= fffffffffffffffffffffffffffc000000000000000000000000000000000000 +CT= ce61d63514aded03d43e6ebfc3a9001f +TEST= 403 +KEY= fffffffffffffffffffffffffff8000000000000000000000000000000000000 +CT= 84a83d7b94c699cbcb8a7d9b61f64093 +TEST= 404 +KEY= fffffffffffffffffffffffffff0000000000000000000000000000000000000 +CT= 972bdd2e7c525130fadc8f76fc6f4b3f +TEST= 405 +KEY= ffffffffffffffffffffffffffe0000000000000000000000000000000000000 +CT= e3abc4939457422bb957da3c56938c6d +TEST= 406 +KEY= ffffffffffffffffffffffffffc0000000000000000000000000000000000000 +CT= a42734a3929bf84cf0116c9856a3c18c +TEST= 407 +KEY= ffffffffffffffffffffffffff80000000000000000000000000000000000000 +CT= 3d20253adbce3be2373767c4d822c566 +TEST= 408 +KEY= ffffffffffffffffffffffffff00000000000000000000000000000000000000 +CT= 33f7502390b8a4a221cfecd0666624ba +TEST= 409 +KEY= fffffffffffffffffffffffffe00000000000000000000000000000000000000 +CT= b588a302bdbc09197df1edae68926ed9 +TEST= 410 +KEY= fffffffffffffffffffffffffc00000000000000000000000000000000000000 +CT= 8d4595cb4fa7026715f55bd68e2882f9 +TEST= 411 +KEY= fffffffffffffffffffffffff800000000000000000000000000000000000000 +CT= 40b264e921e9e4a82694589ef3798262 +TEST= 412 +KEY= fffffffffffffffffffffffff000000000000000000000000000000000000000 +CT= 112078e9e11fbb78e26ffb8899e96b9a +TEST= 413 +KEY= ffffffffffffffffffffffffe000000000000000000000000000000000000000 +CT= 7606fa36d86473e6fb3a1bb0e2c0adf5 +TEST= 414 +KEY= ffffffffffffffffffffffffc000000000000000000000000000000000000000 +CT= 6693dc911662ae473216ba22189a511a +TEST= 415 +KEY= ffffffffffffffffffffffff8000000000000000000000000000000000000000 +CT= 266581af0dcfbed1585e0a242c64b8df +TEST= 416 +KEY= ffffffffffffffffffffffff0000000000000000000000000000000000000000 +CT= 0aeede5b91f721700e9e62edbf60b781 +TEST= 417 +KEY= fffffffffffffffffffffffe0000000000000000000000000000000000000000 +CT= 15c6becf0f4cec7129cbd22d1a79b1b8 +TEST= 418 +KEY= fffffffffffffffffffffffc0000000000000000000000000000000000000000 +CT= 0ebd7c30ed2016e08ba806ddb008bcc8 +TEST= 419 +KEY= fffffffffffffffffffffff80000000000000000000000000000000000000000 +CT= 40071eeab3f935dbc25d00841460260f +TEST= 420 +KEY= fffffffffffffffffffffff00000000000000000000000000000000000000000 +CT= 04bc3da2179c3015498b0e03910db5b8 +TEST= 421 +KEY= ffffffffffffffffffffffe00000000000000000000000000000000000000000 +CT= a858411ffbe63fdb9c8aa1bfaed67b52 +TEST= 422 +KEY= ffffffffffffffffffffffc00000000000000000000000000000000000000000 +CT= 684c9efc237e4a442965f84bce20247a +TEST= 423 +KEY= ffffffffffffffffffffff800000000000000000000000000000000000000000 +CT= dcca366a9bf47b7b868b77e25c18a364 +TEST= 424 +KEY= ffffffffffffffffffffff000000000000000000000000000000000000000000 +CT= 0791823a3c666bb6162825e78606a7fe +TEST= 425 +KEY= fffffffffffffffffffffe000000000000000000000000000000000000000000 +CT= e68ad5055a367041fade09d9a70a794b +TEST= 426 +KEY= fffffffffffffffffffffc000000000000000000000000000000000000000000 +CT= e86f7e23e835e114977f60e1a592202e +TEST= 427 +KEY= fffffffffffffffffffff8000000000000000000000000000000000000000000 +CT= ab0c8410aeeead92feec1eb430d652cb +TEST= 428 +KEY= fffffffffffffffffffff0000000000000000000000000000000000000000000 +CT= 4e6e627c1acc51340053a8236d579576 +TEST= 429 +KEY= ffffffffffffffffffffe0000000000000000000000000000000000000000000 +CT= 2e16873e1678610d7e14c02d002ea845 +TEST= 430 +KEY= ffffffffffffffffffffc0000000000000000000000000000000000000000000 +CT= ad4916f5ee5772be764fc027b8a6e539 +TEST= 431 +KEY= ffffffffffffffffffff80000000000000000000000000000000000000000000 +CT= fdcfac0c02ca538343c68117e0a15938 +TEST= 432 +KEY= ffffffffffffffffffff00000000000000000000000000000000000000000000 +CT= f33fa36720231afe4c759ade6bd62eb6 +TEST= 433 +KEY= fffffffffffffffffffe00000000000000000000000000000000000000000000 +CT= f97d57b3333b6281b07d486db2d4e20c +TEST= 434 +KEY= fffffffffffffffffffc00000000000000000000000000000000000000000000 +CT= ab980296197e1a5022326c31da4bf6f3 +TEST= 435 +KEY= fffffffffffffffffff800000000000000000000000000000000000000000000 +CT= a4af534a7d0b643a01868785d86dfb95 +TEST= 436 +KEY= fffffffffffffffffff000000000000000000000000000000000000000000000 +CT= 462ccd7f5fd1108dbc152f3cacad328b +TEST= 437 +KEY= ffffffffffffffffffe000000000000000000000000000000000000000000000 +CT= 2e70f168fc74bf911df240bcd2cef236 +TEST= 438 +KEY= ffffffffffffffffffc000000000000000000000000000000000000000000000 +CT= 9f0fdec08b7fd79aa39535bea42db92a +TEST= 439 +KEY= ffffffffffffffffff8000000000000000000000000000000000000000000000 +CT= eb040b891d4b37f6851f7ec219cd3f6d +TEST= 440 +KEY= ffffffffffffffffff0000000000000000000000000000000000000000000000 +CT= 4b3b9f1e099c2a09dc091e90e4f18f0a +TEST= 441 +KEY= fffffffffffffffffe0000000000000000000000000000000000000000000000 +CT= 97120166307119ca2280e9315668e96f +TEST= 442 +KEY= fffffffffffffffffc0000000000000000000000000000000000000000000000 +CT= c20a19fd5758b0c4bc1a5df89cf73877 +TEST= 443 +KEY= fffffffffffffffff80000000000000000000000000000000000000000000000 +CT= 9ff071b165b5198a93dddeebc54d09b5 +TEST= 444 +KEY= fffffffffffffffff00000000000000000000000000000000000000000000000 +CT= f51a0f694442b8f05571797fec7ee8bf +TEST= 445 +KEY= ffffffffffffffffe00000000000000000000000000000000000000000000000 +CT= 597a6252255e46d6364dbeeda31e279c +TEST= 446 +KEY= ffffffffffffffffc00000000000000000000000000000000000000000000000 +CT= e0f0a91b2e45f8cc37b7805a3042588d +TEST= 447 +KEY= ffffffffffffffff800000000000000000000000000000000000000000000000 +CT= 8f8fd822680a85974e53a5a8eb9d38de +TEST= 448 +KEY= ffffffffffffffff000000000000000000000000000000000000000000000000 +CT= 94efe7a0e2e031e2536da01df799c927 +TEST= 449 +KEY= fffffffffffffffe000000000000000000000000000000000000000000000000 +CT= d276c13a5d220f4da9224e74896391ce +TEST= 450 +KEY= fffffffffffffffc000000000000000000000000000000000000000000000000 +CT= ffb4e87a32b37d6f2c8328d3b5377802 +TEST= 451 +KEY= fffffffffffffff8000000000000000000000000000000000000000000000000 +CT= f8b9fffb5c187f7ddc7ab10f4fb77576 +TEST= 452 +KEY= fffffffffffffff0000000000000000000000000000000000000000000000000 +CT= 11825f99b0e9bb3477c1c0713b015aac +TEST= 453 +KEY= ffffffffffffffe0000000000000000000000000000000000000000000000000 +CT= d8c4b200b383fc1f2b2ea677618a1d27 +TEST= 454 +KEY= ffffffffffffffc0000000000000000000000000000000000000000000000000 +CT= 3e0cdadf2e68353c0027672c97144dd3 +TEST= 455 +KEY= ffffffffffffff80000000000000000000000000000000000000000000000000 +CT= 092fa137ce18b5dfe7906f550bb13370 +TEST= 456 +KEY= ffffffffffffff00000000000000000000000000000000000000000000000000 +CT= 4c022ac62b3cb78d739cc67b3e20bb7e +TEST= 457 +KEY= fffffffffffffe00000000000000000000000000000000000000000000000000 +CT= 77dd7702646d55f08365e477d3590eda +TEST= 458 +KEY= fffffffffffffc00000000000000000000000000000000000000000000000000 +CT= 31690b5ed41c7eb42a1e83270a7ff0e6 +TEST= 459 +KEY= fffffffffffff800000000000000000000000000000000000000000000000000 +CT= 3f84566df23da48af692722fe980573a +TEST= 460 +KEY= fffffffffffff000000000000000000000000000000000000000000000000000 +CT= 8aa9b75e784593876c53a00eae5af52b +TEST= 461 +KEY= ffffffffffffe000000000000000000000000000000000000000000000000000 +CT= a78463fb064db5d52bb64bfef64f2dda +TEST= 462 +KEY= ffffffffffffc000000000000000000000000000000000000000000000000000 +CT= 5e031cb9d676c3022d7f26227e85c38f +TEST= 463 +KEY= ffffffffffff8000000000000000000000000000000000000000000000000000 +CT= ae682c5ecd71898e08942ac9aa89875c +TEST= 464 +KEY= ffffffffffff0000000000000000000000000000000000000000000000000000 +CT= 225f068c28476605735ad671bb8f39f3 +TEST= 465 +KEY= fffffffffffe0000000000000000000000000000000000000000000000000000 +CT= 2937a64f7d4f46fe6fea3b349ec78e38 +TEST= 466 +KEY= fffffffffffc0000000000000000000000000000000000000000000000000000 +CT= 82bda118a3ed7af314fa2ccc5c07b761 +TEST= 467 +KEY= fffffffffff80000000000000000000000000000000000000000000000000000 +CT= 3dd5c34634a79d3cfcc8339760e6f5f4 +TEST= 468 +KEY= fffffffffff00000000000000000000000000000000000000000000000000000 +CT= 3c9db3335306fe1ec612bdbfae6b6028 +TEST= 469 +KEY= ffffffffffe00000000000000000000000000000000000000000000000000000 +CT= b5bb0f5629fb6aae5e1839a3c3625d63 +TEST= 470 +KEY= ffffffffffc00000000000000000000000000000000000000000000000000000 +CT= df31144f87a2ef523facdcf21a427804 +TEST= 471 +KEY= ffffffffff800000000000000000000000000000000000000000000000000000 +CT= be66cfea2fecd6bf0ec7b4352c99bcaa +TEST= 472 +KEY= ffffffffff000000000000000000000000000000000000000000000000000000 +CT= e0dcc2d27fc9865633f85223cf0d611f +TEST= 473 +KEY= fffffffffe000000000000000000000000000000000000000000000000000000 +CT= 077e9470ae7abea5a9769d49182628c3 +TEST= 474 +KEY= fffffffffc000000000000000000000000000000000000000000000000000000 +CT= f836f251ad1d11d49dc344628b1884e1 +TEST= 475 +KEY= fffffffff8000000000000000000000000000000000000000000000000000000 +CT= f2b21b4e7640a9b3346de8b82fb41e49 +TEST= 476 +KEY= fffffffff0000000000000000000000000000000000000000000000000000000 +CT= 6f6238d8966048d4967154e0dad5a6c9 +TEST= 477 +KEY= ffffffffe0000000000000000000000000000000000000000000000000000000 +CT= f85ca05fe528f1ce9b790166e8d551e7 +TEST= 478 +KEY= ffffffffc0000000000000000000000000000000000000000000000000000000 +CT= 2025c74b8ad8f4cda17ee2049c4c902d +TEST= 479 +KEY= ffffffff80000000000000000000000000000000000000000000000000000000 +CT= 33ac9eccc4cc75e2711618f80b1548e8 +TEST= 480 +KEY= ffffffff00000000000000000000000000000000000000000000000000000000 +CT= ad9fc613a703251b54c64a0e76431711 +TEST= 481 +KEY= fffffffe00000000000000000000000000000000000000000000000000000000 +CT= 829fd7208fb92d44a074a677ee9861ac +TEST= 482 +KEY= fffffffc00000000000000000000000000000000000000000000000000000000 +CT= fc4af7c948df26e2ef3e01c1ee5b8f6f +TEST= 483 +KEY= fffffff800000000000000000000000000000000000000000000000000000000 +CT= 5fd1f13fa0f31e37fabde328f894eac2 +TEST= 484 +KEY= fffffff000000000000000000000000000000000000000000000000000000000 +CT= 07058e408f5b99b0e0f061a1761b5b3b +TEST= 485 +KEY= ffffffe000000000000000000000000000000000000000000000000000000000 +CT= bbd1097a62433f79449fa97d4ee80dbf +TEST= 486 +KEY= ffffffc000000000000000000000000000000000000000000000000000000000 +CT= a190527d0ef7c70f459cd3940df316ec +TEST= 487 +KEY= ffffff8000000000000000000000000000000000000000000000000000000000 +CT= bd49295006250ffca5100b6007a0eade +TEST= 488 +KEY= ffffff0000000000000000000000000000000000000000000000000000000000 +CT= 2c75e2d36eebd65411f14fd0eb1d2a06 +TEST= 489 +KEY= fffffe0000000000000000000000000000000000000000000000000000000000 +CT= 6bcca98bf6a835fa64955f72de4115fe +TEST= 490 +KEY= fffffc0000000000000000000000000000000000000000000000000000000000 +CT= 85f2ba84f8c307cf525e124c3e22e6cc +TEST= 491 +KEY= fffff80000000000000000000000000000000000000000000000000000000000 +CT= 976e6f851ab52c771998dbb2d71c75a9 +TEST= 492 +KEY= fffff00000000000000000000000000000000000000000000000000000000000 +CT= 6e1b482b53761cf631819b749a6f3724 +TEST= 493 +KEY= ffffe00000000000000000000000000000000000000000000000000000000000 +CT= 633cafea395bc03adae3a1e2068e4b4e +TEST= 494 +KEY= ffffc00000000000000000000000000000000000000000000000000000000000 +CT= 27ef2495dabf323885aab39c80f18d8b +TEST= 495 +KEY= ffff800000000000000000000000000000000000000000000000000000000000 +CT= 610b71dfc688e150d8152c5b35ebc14d +TEST= 496 +KEY= ffff000000000000000000000000000000000000000000000000000000000000 +CT= 937ad84880db50613423d6d527a2823d +TEST= 497 +KEY= fffe000000000000000000000000000000000000000000000000000000000000 +CT= 1a4c1c263bbccfafc11782894685e3a8 +TEST= 498 +KEY= fffc000000000000000000000000000000000000000000000000000000000000 +CT= 4dcede8da9e2578f39703d4433dc6459 +TEST= 499 +KEY= fff8000000000000000000000000000000000000000000000000000000000000 +CT= dc43b51ab609052372989a26e9cdd714 +TEST= 500 +KEY= fff0000000000000000000000000000000000000000000000000000000000000 +CT= cc111f6c37cf40a1159d00fb59fb0488 +TEST= 501 +KEY= ffe0000000000000000000000000000000000000000000000000000000000000 +CT= d1ccb9b1337002cbac42c520b5d67722 +TEST= 502 +KEY= ffc0000000000000000000000000000000000000000000000000000000000000 +CT= a3f599d63a82a968c33fe26590745970 +TEST= 503 +KEY= ff80000000000000000000000000000000000000000000000000000000000000 +CT= f23e5b600eb70dbccf6c0b1d9a68182c +TEST= 504 +KEY= ff00000000000000000000000000000000000000000000000000000000000000 +CT= ec52a212f80a09df6317021bc2a9819e +TEST= 505 +KEY= fe00000000000000000000000000000000000000000000000000000000000000 +CT= 60e32246bed2b0e859e55c1cc6b26502 +TEST= 506 +KEY= fc00000000000000000000000000000000000000000000000000000000000000 +CT= 8fbb413703735326310a269bd3aa94b2 +TEST= 507 +KEY= f800000000000000000000000000000000000000000000000000000000000000 +CT= 9cf4893ecafa0a0247a898e040691559 +TEST= 508 +KEY= f000000000000000000000000000000000000000000000000000000000000000 +CT= 1c777679d50037c79491a94da76a9a35 +TEST= 509 +KEY= e000000000000000000000000000000000000000000000000000000000000000 +CT= d8f3a72fc3cdf74dfaf6c3e6b97b2fa6 +TEST= 510 +KEY= c000000000000000000000000000000000000000000000000000000000000000 +CT= b29169cdcf2d83e838125a12ee6aa400 +TEST= 511 +KEY= 8000000000000000000000000000000000000000000000000000000000000000 +CT= e35a6dcb19b201a01ebcfa8aa22b5759 diff --git a/test/crypto/aes/ecbnt44.txt b/test/crypto/aes/ecbnt44.txt new file mode 100644 index 0000000000..0887804748 --- /dev/null +++ b/test/crypto/aes/ecbnt44.txt @@ -0,0 +1,779 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Text Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbnt44.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 128 + +KEY= 00000000000000000000000000000000 +TEST= 0 +PT= 00000000000000000000000000000000 +CT= 66e94bd4ef8a2c3b884cfa59ca342b2e +TEST= 1 +PT= 00000000000000000000000000000001 +CT= 58e2fccefa7e3061367f1d57a4e7455a +TEST= 2 +PT= 00000000000000000000000000000003 +CT= f795aaab494b5923f7fd89ff948bc1e0 +TEST= 3 +PT= 00000000000000000000000000000007 +CT= 95b84d1b96c690ff2f2de30bf2ec89e0 +TEST= 4 +PT= 0000000000000000000000000000000f +CT= a73f8d0437e0915fbce5d7a62d8dab0a +TEST= 5 +PT= 0000000000000000000000000000001f +CT= 7941dd0a63d994703e63d94a44680421 +TEST= 6 +PT= 0000000000000000000000000000003f +CT= 5bca68deb6b692377c85f6515d2a33e1 +TEST= 7 +PT= 0000000000000000000000000000007f +CT= 349bf2ed99e8726cb1734349e5c5499a +TEST= 8 +PT= 000000000000000000000000000000ff +CT= f70ddef93ba62588242a0e67d0d645e0 +TEST= 9 +PT= 000000000000000000000000000001ff +CT= cf7512278cd5454f819d89ea35bb3862 +TEST= 10 +PT= 000000000000000000000000000003ff +CT= 09836c44648b1f262e7b8bb6310e3c73 +TEST= 11 +PT= 000000000000000000000000000007ff +CT= 7c3f20d829a78c00203702ef0b002db5 +TEST= 12 +PT= 00000000000000000000000000000fff +CT= 5b1243b00f14e74eb7536ccc09acfa68 +TEST= 13 +PT= 00000000000000000000000000001fff +CT= b3b90648b4f40f576a75ba0466db8863 +TEST= 14 +PT= 00000000000000000000000000003fff +CT= e4ee13764d015d68bf37d51f4af9f36b +TEST= 15 +PT= 00000000000000000000000000007fff +CT= 9f3bdc3ff6446ce6aa8e3b6c231596a3 +TEST= 16 +PT= 0000000000000000000000000000ffff +CT= 90d4af3471b958d79c38285110dfb453 +TEST= 17 +PT= 0000000000000000000000000001ffff +CT= ca829c5f3dc854939ddf3f0a4f852aed +TEST= 18 +PT= 0000000000000000000000000003ffff +CT= 28ea70f964ef188472078e5fadbf243c +TEST= 19 +PT= 0000000000000000000000000007ffff +CT= d1277ea8d373b8f80bec4923227435c4 +TEST= 20 +PT= 000000000000000000000000000fffff +CT= 2bcafbb6ce709c19be131bb8386bdd3b +TEST= 21 +PT= 000000000000000000000000001fffff +CT= 39fa40456ae73fe146de3e3a42039405 +TEST= 22 +PT= 000000000000000000000000003fffff +CT= baec66484967417c3bbe18a60de0b093 +TEST= 23 +PT= 000000000000000000000000007fffff +CT= 6796a439bb4a1a0745ed78ec8dea15c7 +TEST= 24 +PT= 00000000000000000000000000ffffff +CT= 6936f9fd2274b4a36463e329719b0174 +TEST= 25 +PT= 00000000000000000000000001ffffff +CT= 86290a5586bca091a762c5ff509a6167 +TEST= 26 +PT= 00000000000000000000000003ffffff +CT= 78e6abea95914abb9c8e526aafc09bc6 +TEST= 27 +PT= 00000000000000000000000007ffffff +CT= 983346ddc59459db4e6e2e8d5b2ac4ca +TEST= 28 +PT= 0000000000000000000000000fffffff +CT= 5d8f73bd76f371deaa46e98e7764ea8f +TEST= 29 +PT= 0000000000000000000000001fffffff +CT= 78eb3f556196e8efb02b6b1ac9c59fb2 +TEST= 30 +PT= 0000000000000000000000003fffffff +CT= 0e5eeb2e621ec0f45683a8d255dda84e +TEST= 31 +PT= 0000000000000000000000007fffffff +CT= 6c5746dd45b5846c6096ca8e8ade7f25 +TEST= 32 +PT= 000000000000000000000000ffffffff +CT= 28c16380c491088ca019f8a76853b1e8 +TEST= 33 +PT= 000000000000000000000001ffffffff +CT= c8b1afa8bfd9415b3c4764fc2301a445 +TEST= 34 +PT= 000000000000000000000003ffffffff +CT= 8e265ca8740c2dc8f8e8339bb0319d1e +TEST= 35 +PT= 000000000000000000000007ffffffff +CT= 4090d032397a3d4564218ac27e6dc4b6 +TEST= 36 +PT= 00000000000000000000000fffffffff +CT= 6e7b1e7d9dc86adc0e111aa174d7d568 +TEST= 37 +PT= 00000000000000000000001fffffffff +CT= cc4632e9ad075584b0dc8816e8f48e9b +TEST= 38 +PT= 00000000000000000000003fffffffff +CT= 99afdf4178e53a5de4173159abd8c479 +TEST= 39 +PT= 00000000000000000000007fffffffff +CT= fe5f51452842fd38c566ef536f950111 +TEST= 40 +PT= 0000000000000000000000ffffffffff +CT= 4d4c5f40e67449514e30639299d6f473 +TEST= 41 +PT= 0000000000000000000001ffffffffff +CT= 9bf52296fbb86ce06b35f0c610b28e5c +TEST= 42 +PT= 0000000000000000000003ffffffffff +CT= 8dd5d84df9b637c123d26114071e8799 +TEST= 43 +PT= 0000000000000000000007ffffffffff +CT= 09fdbba8739d1a9c386d1b74bfb674d2 +TEST= 44 +PT= 000000000000000000000fffffffffff +CT= fc2e827596e4c6c4df3e13fdb77db10e +TEST= 45 +PT= 000000000000000000001fffffffffff +CT= 0bcf5bde0c7fd3b87fec152a3c7d9a86 +TEST= 46 +PT= 000000000000000000003fffffffffff +CT= 15ab7d13a564d6bdbd2b337318912a24 +TEST= 47 +PT= 000000000000000000007fffffffffff +CT= 6f1039adc3f6a546989b1444efb629ab +TEST= 48 +PT= 00000000000000000000ffffffffffff +CT= 105df4d1e4b74dca12b3f38c4c3c0d9c +TEST= 49 +PT= 00000000000000000001ffffffffffff +CT= c27ca1f66b72ca93735be563adf2ddda +TEST= 50 +PT= 00000000000000000003ffffffffffff +CT= bc1a8411b68970e6c99bf42e4a40e976 +TEST= 51 +PT= 00000000000000000007ffffffffffff +CT= 40165c46ef23bc1c167a9ebbb5b166e3 +TEST= 52 +PT= 0000000000000000000fffffffffffff +CT= dd9b27fa45374d1c626874d9ca04eb0d +TEST= 53 +PT= 0000000000000000001fffffffffffff +CT= f2373d9f620496925b34e01194336a2f +TEST= 54 +PT= 0000000000000000003fffffffffffff +CT= b1564039bad539f373e4c4a97709a5b4 +TEST= 55 +PT= 0000000000000000007fffffffffffff +CT= 98dea09dffa792af98ac8d258c710870 +TEST= 56 +PT= 000000000000000000ffffffffffffff +CT= 9e1cd0f752de544bcc8a838b27a4b955 +TEST= 57 +PT= 000000000000000001ffffffffffffff +CT= 06d18f8542f0497d53dee00176f93616 +TEST= 58 +PT= 000000000000000003ffffffffffffff +CT= 690460ac223f65654cc522350d881765 +TEST= 59 +PT= 000000000000000007ffffffffffffff +CT= d6680b1c9abc752aba384fe234c7d583 +TEST= 60 +PT= 00000000000000000fffffffffffffff +CT= e7be712ee4a90b03e43823035eb0ca93 +TEST= 61 +PT= 00000000000000001fffffffffffffff +CT= da82d3f4234d748c8172dc0d17a6e038 +TEST= 62 +PT= 00000000000000003fffffffffffffff +CT= 236c49b713b1521f5e938b422c030f29 +TEST= 63 +PT= 00000000000000007fffffffffffffff +CT= c86bee15e569c0e78171bfa438890264 +TEST= 64 +PT= 0000000000000000ffffffffffffffff +CT= 747cb9267e59fa9e4e615668db0909bc +TEST= 65 +PT= 0000000000000001ffffffffffffffff +CT= 7add10f24e7245863c677d27e9f0fdb8 +TEST= 66 +PT= 0000000000000003ffffffffffffffff +CT= 72976df6935ec1c943d5759a33ccba84 +TEST= 67 +PT= 0000000000000007ffffffffffffffff +CT= 5bb3e19d6fce1b695d061941df6e4325 +TEST= 68 +PT= 000000000000000fffffffffffffffff +CT= 1a0a2db60ce1b3187a65949bfe7985f2 +TEST= 69 +PT= 000000000000001fffffffffffffffff +CT= 1bf6d1af28331174fa90e13636bc02bf +TEST= 70 +PT= 000000000000003fffffffffffffffff +CT= 2140bd0eb8df02b22c05cc3689690530 +TEST= 71 +PT= 000000000000007fffffffffffffffff +CT= 9aa4c6ea0b7cc9492c7ee12234def1a4 +TEST= 72 +PT= 00000000000000ffffffffffffffffff +CT= bc991755a129add0f3feeb8d94edda3d +TEST= 73 +PT= 00000000000001ffffffffffffffffff +CT= e0b6795bdd52dcdc3f6934685bbe326a +TEST= 74 +PT= 00000000000003ffffffffffffffffff +CT= b0c4121e0e63e1d0969ca70b0bfbe8d2 +TEST= 75 +PT= 00000000000007ffffffffffffffffff +CT= 32ebdad9131b68d3293b55aed87ffa16 +TEST= 76 +PT= 0000000000000fffffffffffffffffff +CT= 921c10a6f26bb519fe085c8f04c1b668 +TEST= 77 +PT= 0000000000001fffffffffffffffffff +CT= 58fc8beaae1b73bffe3e4c1614cc1cb7 +TEST= 78 +PT= 0000000000003fffffffffffffffffff +CT= 41d3699fe17781c4e9ad324fee5113af +TEST= 79 +PT= 0000000000007fffffffffffffffffff +CT= 24ab534dbc77d9505d9be59f8655de74 +TEST= 80 +PT= 000000000000ffffffffffffffffffff +CT= 23a77a7a04e5c3fe927cfc881837b622 +TEST= 81 +PT= 000000000001ffffffffffffffffffff +CT= cf85ae385c7ff1344b624a744969cdf4 +TEST= 82 +PT= 000000000003ffffffffffffffffffff +CT= c7111db57bb89abb2ebb2c2d5153e14c +TEST= 83 +PT= 000000000007ffffffffffffffffffff +CT= e5df6e02245a0be02383e2bbeba3f5b9 +TEST= 84 +PT= 00000000000fffffffffffffffffffff +CT= 9721e2f1eae9228362dcb1d8d6d67045 +TEST= 85 +PT= 00000000001fffffffffffffffffffff +CT= cfa84b287aa52de3fc37129f39fa826f +TEST= 86 +PT= 00000000003fffffffffffffffffffff +CT= 664b7441307ba9e1d8c8ccf93de514d0 +TEST= 87 +PT= 00000000007fffffffffffffffffffff +CT= 62d0ee00d428cb5dc3d4a2144fe2af6d +TEST= 88 +PT= 0000000000ffffffffffffffffffffff +CT= 9d7bc30466c376acd0c8ed9da8cdf8ca +TEST= 89 +PT= 0000000001ffffffffffffffffffffff +CT= c8fe3583c99f400cd252768ff72c79ef +TEST= 90 +PT= 0000000003ffffffffffffffffffffff +CT= 1300d6570e1622a42d033f1d60cb3524 +TEST= 91 +PT= 0000000007ffffffffffffffffffffff +CT= c4b7500f92605bc25e95f3a55f8e1c01 +TEST= 92 +PT= 000000000fffffffffffffffffffffff +CT= 6438a0528dc92c6c091a3d6b5915d9d4 +TEST= 93 +PT= 000000001fffffffffffffffffffffff +CT= 4c3cc0914e2fce6004e275726025ea1d +TEST= 94 +PT= 000000003fffffffffffffffffffffff +CT= e4e5b011312f9b915a1111f3dd5a50cd +TEST= 95 +PT= 000000007fffffffffffffffffffffff +CT= 7bb21b447853a94d54b8129b14402a36 +TEST= 96 +PT= 00000000ffffffffffffffffffffffff +CT= 4282e562f1b2beded056e4c582a278fc +TEST= 97 +PT= 00000001ffffffffffffffffffffffff +CT= 242c38975bfbc4eae1123e62d2ecd198 +TEST= 98 +PT= 00000003ffffffffffffffffffffffff +CT= 12cb3e844dbe4b517c62b20dbf518c89 +TEST= 99 +PT= 00000007ffffffffffffffffffffffff +CT= 6c6b3bfec90a2011fe4af8f2635ca388 +TEST= 100 +PT= 0000000fffffffffffffffffffffffff +CT= c90003b8b8e86ba81c5ab01e417f8c56 +TEST= 101 +PT= 0000001fffffffffffffffffffffffff +CT= 3b55fde647001591c20b13bad65202a9 +TEST= 102 +PT= 0000003fffffffffffffffffffffffff +CT= ec0fa4bcac5b09244326f344cd14e45d +TEST= 103 +PT= 0000007fffffffffffffffffffffffff +CT= f0c5e5ab99d309f21e2364c74b9a8c10 +TEST= 104 +PT= 000000ffffffffffffffffffffffffff +CT= 4c5016e8afa51df539df6500929bdeb5 +TEST= 105 +PT= 000001ffffffffffffffffffffffffff +CT= aa55dab3242ab4dc6ec1c1973069e289 +TEST= 106 +PT= 000003ffffffffffffffffffffffffff +CT= ad79bdc7bbfe3e94fd7feefac711a75a +TEST= 107 +PT= 000007ffffffffffffffffffffffffff +CT= 49038d62ad5e80c12717e4de7f71161c +TEST= 108 +PT= 00000fffffffffffffffffffffffffff +CT= ea2a989853b9468d8358895b7ec6bd08 +TEST= 109 +PT= 00001fffffffffffffffffffffffffff +CT= 92a3a09eb028adcc96d5014cd4e0cb5b +TEST= 110 +PT= 00003fffffffffffffffffffffffffff +CT= 447089e19867c9f730a634e36624411b +TEST= 111 +PT= 00007fffffffffffffffffffffffffff +CT= 79e1bc6f8f889a3a860635fd8b89ae08 +TEST= 112 +PT= 0000ffffffffffffffffffffffffffff +CT= 5d1fb7b62620ca0bbc1b56079968c95d +TEST= 113 +PT= 0001ffffffffffffffffffffffffffff +CT= 17b5ff27f2a627f12c38853ba60540f6 +TEST= 114 +PT= 0003ffffffffffffffffffffffffffff +CT= aa02288e444d6ff292fb4ceee5326637 +TEST= 115 +PT= 0007ffffffffffffffffffffffffffff +CT= 503389a0dde58d848e457611a29d03ef +TEST= 116 +PT= 000fffffffffffffffffffffffffffff +CT= 9a3ebb35de64c8416685cc8fb72ac553 +TEST= 117 +PT= 001fffffffffffffffffffffffffffff +CT= 0789e387cbe0afb4502c452017100dce +TEST= 118 +PT= 003fffffffffffffffffffffffffffff +CT= a018173d885207307ca5c6928ff77c92 +TEST= 119 +PT= 007fffffffffffffffffffffffffffff +CT= 576c30ca713f5a949e164f98cdb3ca33 +TEST= 120 +PT= 00ffffffffffffffffffffffffffffff +CT= 7191dfc1bbef90c4f80301c6c0a796bb +TEST= 121 +PT= 01ffffffffffffffffffffffffffffff +CT= 270bbe54a220baeef70b0c6c28b4e423 +TEST= 122 +PT= 03ffffffffffffffffffffffffffffff +CT= 84c9e5d0218dc4b9cc76bba8293243ba +TEST= 123 +PT= 07ffffffffffffffffffffffffffffff +CT= 4de4d5970cf8865094f8da24cc0519f3 +TEST= 124 +PT= 0fffffffffffffffffffffffffffffff +CT= 8488634ace9c71d65d160193b0c4cd7a +TEST= 125 +PT= 1fffffffffffffffffffffffffffffff +CT= 8eb8bb7bd3a69711eec8732be003abf2 +TEST= 126 +PT= 3fffffffffffffffffffffffffffffff +CT= 4e9983b2f707735ef928a95a13510624 +TEST= 127 +PT= 7fffffffffffffffffffffffffffffff +CT= 28de7ba142b3d255cbf7040a1e3680a9 +TEST= 128 +PT= ffffffffffffffffffffffffffffffff +CT= 3f5b8cc9ea855a0afa7347d23e8d664e +TEST= 129 +PT= fffffffffffffffffffffffffffffffe +CT= 5c005e72c1418c44f569f2ea33ba54f3 +TEST= 130 +PT= fffffffffffffffffffffffffffffffc +CT= 39bde67d5c8ed8a8b1c37eb8fa9f5ac0 +TEST= 131 +PT= fffffffffffffffffffffffffffffff8 +CT= 8ade895913685c67c5269f8aae42983e +TEST= 132 +PT= fffffffffffffffffffffffffffffff0 +CT= f9b0fda0c4a898f5b9e6f661c4ce4d07 +TEST= 133 +PT= ffffffffffffffffffffffffffffffe0 +CT= 8568261797de176bf0b43becc6285afb +TEST= 134 +PT= ffffffffffffffffffffffffffffffc0 +CT= 0833ff6f61d98a57b288e8c3586b85a6 +TEST= 135 +PT= ffffffffffffffffffffffffffffff80 +CT= d1788f572d98b2b16ec5d5f3922b99bc +TEST= 136 +PT= ffffffffffffffffffffffffffffff00 +CT= 3bd141ee84a0e6414a26e7a4f281f8a2 +TEST= 137 +PT= fffffffffffffffffffffffffffffe00 +CT= 7f692b03945867d16179a8cefc83ea3f +TEST= 138 +PT= fffffffffffffffffffffffffffffc00 +CT= a4d6616bd04f87335b0e53351227a9ee +TEST= 139 +PT= fffffffffffffffffffffffffffff800 +CT= 34a2c5a91ae2aec99b7d1b5fa6780447 +TEST= 140 +PT= fffffffffffffffffffffffffffff000 +CT= 2e3579ca15af27f64b3c955a5bfc30ba +TEST= 141 +PT= ffffffffffffffffffffffffffffe000 +CT= 6f45732cf10881546f0fd23896d2bb60 +TEST= 142 +PT= ffffffffffffffffffffffffffffc000 +CT= b7972b3941c44b90afa7b264bfba7387 +TEST= 143 +PT= ffffffffffffffffffffffffffff8000 +CT= 4b706f7f92406352394037a6d4f4688d +TEST= 144 +PT= ffffffffffffffffffffffffffff0000 +CT= 545f2b83d9616dccf60fa9830e9cd287 +TEST= 145 +PT= fffffffffffffffffffffffffffe0000 +CT= a87a385736c0a6189bd6589bd8445a93 +TEST= 146 +PT= fffffffffffffffffffffffffffc0000 +CT= 4010a5e401fdf0a0354ddbcc0d012b17 +TEST= 147 +PT= fffffffffffffffffffffffffff80000 +CT= 088c4b53f5ec0ff814c19adae7f6246c +TEST= 148 +PT= fffffffffffffffffffffffffff00000 +CT= 9272e2d2cdd11050998c845077a30ea0 +TEST= 149 +PT= ffffffffffffffffffffffffffe00000 +CT= 3aa426831067d36b92be7c5f81c13c56 +TEST= 150 +PT= ffffffffffffffffffffffffffc00000 +CT= 7678f3a833f19fea95f3c6029e2bc610 +TEST= 151 +PT= ffffffffffffffffffffffffff800000 +CT= 63919ed4ce10196438b6ad09d99cd795 +TEST= 152 +PT= ffffffffffffffffffffffffff000000 +CT= ed3c0a94d59bece98835da7aa4f07ca2 +TEST= 153 +PT= fffffffffffffffffffffffffe000000 +CT= 3c849939a5d29399f344c4a0eca8a576 +TEST= 154 +PT= fffffffffffffffffffffffffc000000 +CT= 79bf5dce14bb7dd73a8e3611de7ce026 +TEST= 155 +PT= fffffffffffffffffffffffff8000000 +CT= 2ca8209d63274cd9a29bb74bcd77683a +TEST= 156 +PT= fffffffffffffffffffffffff0000000 +CT= e656f9ecf5fe27ec3e4a73d00c282fb3 +TEST= 157 +PT= ffffffffffffffffffffffffe0000000 +CT= 082eb8be35f442fb52668e16a591d1d6 +TEST= 158 +PT= ffffffffffffffffffffffffc0000000 +CT= 76da1fbe3a50728c50fd2e621b5ad885 +TEST= 159 +PT= ffffffffffffffffffffffff80000000 +CT= 1ffc626d30203dcdb0019fb80f726cf4 +TEST= 160 +PT= ffffffffffffffffffffffff00000000 +CT= 123c1f4af313ad8c2ce648b2e71fb6e1 +TEST= 161 +PT= fffffffffffffffffffffffe00000000 +CT= 9402e9aa6f69de6504da8d20c4fcaa2f +TEST= 162 +PT= fffffffffffffffffffffffc00000000 +CT= 377be0be33b4e3e310b4aabda173f84f +TEST= 163 +PT= fffffffffffffffffffffff800000000 +CT= 65c0526cbe40161b8019a2a3171abd23 +TEST= 164 +PT= fffffffffffffffffffffff000000000 +CT= 56aff089878bf3352f8df172a3ae47d8 +TEST= 165 +PT= ffffffffffffffffffffffe000000000 +CT= 7472f9a7988607ca79707795991035e6 +TEST= 166 +PT= ffffffffffffffffffffffc000000000 +CT= 90684a2ac55fe1ec2b8ebd5622520b73 +TEST= 167 +PT= ffffffffffffffffffffff8000000000 +CT= 90ecbe6177e674c98de412413f7ac915 +TEST= 168 +PT= ffffffffffffffffffffff0000000000 +CT= 4c6a1c83e568cd10f27c2d73ded19c28 +TEST= 169 +PT= fffffffffffffffffffffe0000000000 +CT= db7e1932679fdd99742aab04aa0d5a80 +TEST= 170 +PT= fffffffffffffffffffffc0000000000 +CT= 7c8d9ab6c2761723fe42f8bb506cbcf7 +TEST= 171 +PT= fffffffffffffffffffff80000000000 +CT= 14954f0b4697776f44494fe458d814ed +TEST= 172 +PT= fffffffffffffffffffff00000000000 +CT= a5e652614c9300f37816b1f9fd0c87f9 +TEST= 173 +PT= ffffffffffffffffffffe00000000000 +CT= 9ca547f7439edc3e255c0f4d49aa8990 +TEST= 174 +PT= ffffffffffffffffffffc00000000000 +CT= 2e65eb6b6ea383e109accce8326b0393 +TEST= 175 +PT= ffffffffffffffffffff800000000000 +CT= b87c921b91829ef3b13ca541ee1130a6 +TEST= 176 +PT= ffffffffffffffffffff000000000000 +CT= 4d37c850644563c69fd0acd9a049325b +TEST= 177 +PT= fffffffffffffffffffe000000000000 +CT= 563bf90d61beef39f48dd625fcef1361 +TEST= 178 +PT= fffffffffffffffffffc000000000000 +CT= e886f9281999c5bb3b3e8862e2f7c988 +TEST= 179 +PT= fffffffffffffffffff8000000000000 +CT= 3bffc16e4c49b268a20f8d96a60b4058 +TEST= 180 +PT= fffffffffffffffffff0000000000000 +CT= 251a7eac7e2fe809e4aa8d0d7012531a +TEST= 181 +PT= ffffffffffffffffffe0000000000000 +CT= 06f2519a2fafaa596bfef5cfa15c21b9 +TEST= 182 +PT= ffffffffffffffffffc0000000000000 +CT= eef456431dea8b4acf83bdae3717f75f +TEST= 183 +PT= ffffffffffffffffff80000000000000 +CT= 1bdec521316503d9d5ee65df3ea94ddf +TEST= 184 +PT= ffffffffffffffffff00000000000000 +CT= d93eae966fac46dca927d6b114fa3f9e +TEST= 185 +PT= fffffffffffffffffe00000000000000 +CT= ab3b89542233f1271bf8fd0c0f403545 +TEST= 186 +PT= fffffffffffffffffc00000000000000 +CT= 1c317a220a7d700da2b1e075b00266e1 +TEST= 187 +PT= fffffffffffffffff800000000000000 +CT= 66404033d6b72b609354d5496e7eb511 +TEST= 188 +PT= fffffffffffffffff000000000000000 +CT= 1480cb3955ba62d09eea668f7c708817 +TEST= 189 +PT= ffffffffffffffffe000000000000000 +CT= 21feecd45b2e675973ac33bf0c5424fc +TEST= 190 +PT= ffffffffffffffffc000000000000000 +CT= 10d3ed7a6fe15ab4d91acbc7d0767ab1 +TEST= 191 +PT= ffffffffffffffff8000000000000000 +CT= 41f992a856fb278b389a62f5d274d7e9 +TEST= 192 +PT= ffffffffffffffff0000000000000000 +CT= f807c3e7985fe0f5a50e2cdb25c5109e +TEST= 193 +PT= fffffffffffffffe0000000000000000 +CT= 3b5e0f566dc96c298f0c12637539b25c +TEST= 194 +PT= fffffffffffffffc0000000000000000 +CT= 7d33fc7d8abe3ca1936759f8f5deaf20 +TEST= 195 +PT= fffffffffffffff80000000000000000 +CT= b611295e739ca7d9b50f8e4c0e754a3f +TEST= 196 +PT= fffffffffffffff00000000000000000 +CT= 6898d4f42fa7ba6a10ac05e87b9f2080 +TEST= 197 +PT= ffffffffffffffe00000000000000000 +CT= d451b8d6e1e1a0ebb155fbbf6e7b7dc3 +TEST= 198 +PT= ffffffffffffffc00000000000000000 +CT= 3a4d354f02bb5a5e47d39666867f246a +TEST= 199 +PT= ffffffffffffff800000000000000000 +CT= 11005d52f25f16bdc9545a876a63490a +TEST= 200 +PT= ffffffffffffff000000000000000000 +CT= 1bfd4b91c701fd6b61b7f997829d663b +TEST= 201 +PT= fffffffffffffe000000000000000000 +CT= d2d99c6bcc1f06fda8e27e8ae3f1ccc7 +TEST= 202 +PT= fffffffffffffc000000000000000000 +CT= 79b61c37bf328ecca8d743265a3d425c +TEST= 203 +PT= fffffffffffff8000000000000000000 +CT= a18e3dbbca577860dab6b80da3139256 +TEST= 204 +PT= fffffffffffff0000000000000000000 +CT= c9cacb5cd11692c373b2411768149ee7 +TEST= 205 +PT= ffffffffffffe0000000000000000000 +CT= 22322327e01780b17397f24087f8cc6f +TEST= 206 +PT= ffffffffffffc0000000000000000000 +CT= ea2e6b5ef182b7dff3629abd6a12045f +TEST= 207 +PT= ffffffffffff80000000000000000000 +CT= 00c55bd75c7f9c881989d3ec1911c0d4 +TEST= 208 +PT= ffffffffffff00000000000000000000 +CT= 1c3112bcb0c1dcc749d799743691bf82 +TEST= 209 +PT= fffffffffffe00000000000000000000 +CT= c2f93a4ce5ab6d5d56f1b93cf19911c1 +TEST= 210 +PT= fffffffffffc00000000000000000000 +CT= 678034dc9e41b5a560ed239eeab1bc78 +TEST= 211 +PT= fffffffffff800000000000000000000 +CT= 85062c2c909f15d9269b6c18ce99c4f0 +TEST= 212 +PT= fffffffffff000000000000000000000 +CT= 191aa0f2c8570144f38657ea4085ebe5 +TEST= 213 +PT= ffffffffffe000000000000000000000 +CT= 35830c8e7aaefe2d30310ef381cbf691 +TEST= 214 +PT= ffffffffffc000000000000000000000 +CT= 827f000e75e2c8b9d479beed913fe678 +TEST= 215 +PT= ffffffffff8000000000000000000000 +CT= 4afe7f120ce7613f74fc12a01a828073 +TEST= 216 +PT= ffffffffff0000000000000000000000 +CT= 95e3a0ca9079e646331df8b4e70d2cd6 +TEST= 217 +PT= fffffffffe0000000000000000000000 +CT= f21e99cf4f0f77cea836e11a2fe75fb1 +TEST= 218 +PT= fffffffffc0000000000000000000000 +CT= 215a41ee442fa992a6e323986ded3f68 +TEST= 219 +PT= fffffffff80000000000000000000000 +CT= cb2bf8280f3f9742c7ed513fe802629c +TEST= 220 +PT= fffffffff00000000000000000000000 +CT= 092faacc9bf43508bf8fa8613ca75dea +TEST= 221 +PT= ffffffffe00000000000000000000000 +CT= 43b02ff929a1485af6f5c6d6558baa0f +TEST= 222 +PT= ffffffffc00000000000000000000000 +CT= 7cadbe402d1b208fe735edce00aee7ce +TEST= 223 +PT= ffffffff800000000000000000000000 +CT= 171a0e1b2dd424f0e089af2c4c10f32f +TEST= 224 +PT= ffffffff000000000000000000000000 +CT= c26277437420c5d634f715aea81a9132 +TEST= 225 +PT= fffffffe000000000000000000000000 +CT= b9fb4399fa4facc7309e14ec98360b0a +TEST= 226 +PT= fffffffc000000000000000000000000 +CT= a2124bea53ec2834279bed7f7eb0f938 +TEST= 227 +PT= fffffff8000000000000000000000000 +CT= 3aebbad7303649b4194a6945c6cc3694 +TEST= 228 +PT= fffffff0000000000000000000000000 +CT= 35f40182ab4662f3023baec1ee796b57 +TEST= 229 +PT= ffffffe0000000000000000000000000 +CT= f8023ee9c3fdc45a019b4e985c7e1a54 +TEST= 230 +PT= ffffffc0000000000000000000000000 +CT= e9c0fc1818e4aa46bd2e39d638f89e05 +TEST= 231 +PT= ffffff80000000000000000000000000 +CT= 3b594c60f5c8277a5113677f94208d82 +TEST= 232 +PT= ffffff00000000000000000000000000 +CT= 13001ff5d99806efd25da34f56be854b +TEST= 233 +PT= fffffe00000000000000000000000000 +CT= c0b5fd98190ef45fbb4301438d095950 +TEST= 234 +PT= fffffc00000000000000000000000000 +CT= 625d01f058e565f77ae86378bd2c49b3 +TEST= 235 +PT= fffff800000000000000000000000000 +CT= 2c20f439f6bb097b29b8bd6d99aad799 +TEST= 236 +PT= fffff000000000000000000000000000 +CT= 6941cb6b3e08c2b7afa581ebdd607b87 +TEST= 237 +PT= ffffe000000000000000000000000000 +CT= dd35cea2799940b40db3f819cb94c08b +TEST= 238 +PT= ffffc000000000000000000000000000 +CT= 8ee79dd4f401ff9b7ea945d86666c13b +TEST= 239 +PT= ffff8000000000000000000000000000 +CT= f3f72375264e167fca9de2c1527d9606 +TEST= 240 +PT= ffff0000000000000000000000000000 +CT= d7e5dbd3324595f8fdc7d7c571da6c2a +TEST= 241 +PT= fffe0000000000000000000000000000 +CT= 64b4d629810fda6bafdf08f3b0d8d2c5 +TEST= 242 +PT= fffc0000000000000000000000000000 +CT= 8eae3b10a0c8ca6d1d3b0fa61e56b0b2 +TEST= 243 +PT= fff80000000000000000000000000000 +CT= 8b87145a01ad1c6cede995ea3670454f +TEST= 244 +PT= fff00000000000000000000000000000 +CT= 965135f8a81f25c9d630b17502f68e53 +TEST= 245 +PT= ffe00000000000000000000000000000 +CT= b8499c251f8442ee13f0933b688fcd19 +TEST= 246 +PT= ffc00000000000000000000000000000 +CT= 77e2b508db7fd89234caf7939ee5621a +TEST= 247 +PT= ff800000000000000000000000000000 +CT= a81738252621dd180a34f3455b4baa2f +TEST= 248 +PT= ff000000000000000000000000000000 +CT= db4f1aa530967d6732ce4715eb0ee24b +TEST= 249 +PT= fe000000000000000000000000000000 +CT= b6da0bb11a23855d9c5cb1b4c6412e0a +TEST= 250 +PT= fc000000000000000000000000000000 +CT= 16ae4ce5042a67ee8e177b7c587ecc82 +TEST= 251 +PT= f8000000000000000000000000000000 +CT= 30ccdb044646d7e1f3ccea3dca08b8c0 +TEST= 252 +PT= f0000000000000000000000000000000 +CT= 96d9fd5cc4f07441727df0f33e401a36 +TEST= 253 +PT= e0000000000000000000000000000000 +CT= f031d4d74f5dcbf39daaf8ca3af6e527 +TEST= 254 +PT= c0000000000000000000000000000000 +CT= aae5939c8efdf2f04e60b9fe7117b2c2 +TEST= 255 +PT= 80000000000000000000000000000000 +CT= 3ad78e726c1ec02b7ebfe92b23d9ec34 diff --git a/test/crypto/aes/ecbnt48.txt b/test/crypto/aes/ecbnt48.txt new file mode 100644 index 0000000000..df20081993 --- /dev/null +++ b/test/crypto/aes/ecbnt48.txt @@ -0,0 +1,779 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Text Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbnt48.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 256 + +KEY= 0000000000000000000000000000000000000000000000000000000000000000 +TEST= 0 +PT= 00000000000000000000000000000000 +CT= dc95c078a2408989ad48a21492842087 +TEST= 1 +PT= 00000000000000000000000000000001 +CT= 530f8afbc74536b9a963b4f1c4cb738b +TEST= 2 +PT= 00000000000000000000000000000003 +CT= 726003ca37a62a74d1a2f58e7506358e +TEST= 3 +PT= 00000000000000000000000000000007 +CT= bcaf49b0c0cea62de6bc1c66545e1dad +TEST= 4 +PT= 0000000000000000000000000000000f +CT= b0b710249c8626e1a96ad57828d7be2e +TEST= 5 +PT= 0000000000000000000000000000001f +CT= 887cb1eb76b46720104130dbf1966387 +TEST= 6 +PT= 0000000000000000000000000000003f +CT= 56a368c7a34325e4adce918732e8ea7e +TEST= 7 +PT= 0000000000000000000000000000007f +CT= cac87823c4ed0ded6ffe92afe6a56ffd +TEST= 8 +PT= 000000000000000000000000000000ff +CT= 4d4f06c6f17c2903abc750b28eda2e34 +TEST= 9 +PT= 000000000000000000000000000001ff +CT= c460e6aee417a37a6c60dc0aa85bc4d2 +TEST= 10 +PT= 000000000000000000000000000003ff +CT= 0ef31d5000240ab67f2511ad51ac6a6f +TEST= 11 +PT= 000000000000000000000000000007ff +CT= 304239c608efb82eafd161826baddb67 +TEST= 12 +PT= 00000000000000000000000000000fff +CT= 17be0fbc50c92820d563067c9f5204fd +TEST= 13 +PT= 00000000000000000000000000001fff +CT= b172d242b63b54af7f6aba477ecdc146 +TEST= 14 +PT= 00000000000000000000000000003fff +CT= c550e4f6ca4dfa10fb9e9ea66fb91673 +TEST= 15 +PT= 00000000000000000000000000007fff +CT= e9a4ee862f87f211b6e605115aee6e5a +TEST= 16 +PT= 0000000000000000000000000000ffff +CT= e8dd97836fe934a5f5cf6a662d5b479f +TEST= 17 +PT= 0000000000000000000000000001ffff +CT= 80ce6c203776f35a48928ae2358ee174 +TEST= 18 +PT= 0000000000000000000000000003ffff +CT= 15942b0d89e9ef9716e831443281a57c +TEST= 19 +PT= 0000000000000000000000000007ffff +CT= a5299cdc04a6b08a3aa30e48f410c0a5 +TEST= 20 +PT= 000000000000000000000000000fffff +CT= 075c1e8602554af03ea1ac5aaf174a85 +TEST= 21 +PT= 000000000000000000000000001fffff +CT= 451a51155cad491e8307cd770e20cbee +TEST= 22 +PT= 000000000000000000000000003fffff +CT= a04966b5f5cac26a27a054f0872a9d6e +TEST= 23 +PT= 000000000000000000000000007fffff +CT= 2bdb0cd6ca18e273345ce91e3b6359b3 +TEST= 24 +PT= 00000000000000000000000000ffffff +CT= 7640fb7a3eb6d99975239f6a5e4f3e90 +TEST= 25 +PT= 00000000000000000000000001ffffff +CT= 000d85d4cd6089dca634401d8ffc9dc5 +TEST= 26 +PT= 00000000000000000000000003ffffff +CT= 9814a2df042ed7cdeb8c540a3f93aae6 +TEST= 27 +PT= 00000000000000000000000007ffffff +CT= afbdd961a6ea47665b6a47d1e97d3139 +TEST= 28 +PT= 0000000000000000000000000fffffff +CT= b92b31ec069b5eded32883d152808107 +TEST= 29 +PT= 0000000000000000000000001fffffff +CT= 4c18ff599dd824de22fa28083504b7a4 +TEST= 30 +PT= 0000000000000000000000003fffffff +CT= d0ce009cd9581bc87aab04bffbe3eac5 +TEST= 31 +PT= 0000000000000000000000007fffffff +CT= fb01abd9082d54d31cfe9ae654c360bf +TEST= 32 +PT= 000000000000000000000000ffffffff +CT= ebc85b60c80ac906911208ac8191ca99 +TEST= 33 +PT= 000000000000000000000001ffffffff +CT= 7d4feb5ff6d3a0b59ffa3f64635b45f0 +TEST= 34 +PT= 000000000000000000000003ffffffff +CT= 5a7243d2ed4f20c06638d5b8fd86fca1 +TEST= 35 +PT= 000000000000000000000007ffffffff +CT= 00e138e93ba22c212fad9eb7803dc8a7 +TEST= 36 +PT= 00000000000000000000000fffffffff +CT= 5342826786693becb735c5dfd9dc3b78 +TEST= 37 +PT= 00000000000000000000001fffffffff +CT= 89d27af549ecc8b352887c35afbe05b9 +TEST= 38 +PT= 00000000000000000000003fffffffff +CT= ea1694641aaa6c665ae9ff277d7535d6 +TEST= 39 +PT= 00000000000000000000007fffffffff +CT= 8a20deb1ec0bc7d7116d78b66711ac8d +TEST= 40 +PT= 0000000000000000000000ffffffffff +CT= f264d95afd5e7660ca94472fc669044d +TEST= 41 +PT= 0000000000000000000001ffffffffff +CT= fb3d784a822ea5061c99a4e86dd5e0ee +TEST= 42 +PT= 0000000000000000000003ffffffffff +CT= 1cf03115a4d5025aeeccb29fdfaf8518 +TEST= 43 +PT= 0000000000000000000007ffffffffff +CT= ad031c70f3695ab0f17b54542295b6f1 +TEST= 44 +PT= 000000000000000000000fffffffffff +CT= fe47d8f239b3b45e6032d64772a89597 +TEST= 45 +PT= 000000000000000000001fffffffffff +CT= 30a52cf0b60d78417a6f9139ead693aa +TEST= 46 +PT= 000000000000000000003fffffffffff +CT= bcfa8c117289994c5e2bf36671a1c250 +TEST= 47 +PT= 000000000000000000007fffffffffff +CT= 6e2ef0875cbaf7daa88d7c168fb4e74c +TEST= 48 +PT= 00000000000000000000ffffffffffff +CT= 19a62ebdec659f25ba9deede08db4ba1 +TEST= 49 +PT= 00000000000000000001ffffffffffff +CT= 9cfe3fd2d4742a8dd4ce2cdb53558b8b +TEST= 50 +PT= 00000000000000000003ffffffffffff +CT= ff9e5e6b14cc67acf4b5d1b5f0ae7825 +TEST= 51 +PT= 00000000000000000007ffffffffffff +CT= 105303cd709d55961f68164ae9af602f +TEST= 52 +PT= 0000000000000000000fffffffffffff +CT= 32334bec8f2369ec5af88389849e10e2 +TEST= 53 +PT= 0000000000000000001fffffffffffff +CT= 6b135672f9313b5708f907ba6ca08aa2 +TEST= 54 +PT= 0000000000000000003fffffffffffff +CT= c938c8042ea25b79287063e83886a114 +TEST= 55 +PT= 0000000000000000007fffffffffffff +CT= a725af8f5a93e89cb76aabcd7800254f +TEST= 56 +PT= 000000000000000000ffffffffffffff +CT= 140aeec2b0dea84585888b9ccd93b899 +TEST= 57 +PT= 000000000000000001ffffffffffffff +CT= 0d070d0515d0140c32c37ab448d938e4 +TEST= 58 +PT= 000000000000000003ffffffffffffff +CT= 3c973d2fc670a8ce81386e1093fd5d01 +TEST= 59 +PT= 000000000000000007ffffffffffffff +CT= 2dc5acfc922bc0e9ae28f6ba5900075a +TEST= 60 +PT= 00000000000000000fffffffffffffff +CT= a884b5ce79fe57658be0b1a1725a620d +TEST= 61 +PT= 00000000000000001fffffffffffffff +CT= 4ae4eac3bc4c1d89bae0807f350a1db2 +TEST= 62 +PT= 00000000000000003fffffffffffffff +CT= 21e1531f06bb0be6b3824c5210cab657 +TEST= 63 +PT= 00000000000000007fffffffffffffff +CT= 1d00b46164c05228575ade02afd3f3aa +TEST= 64 +PT= 0000000000000000ffffffffffffffff +CT= 55ed76948d2886bfff50e3352bfe34fd +TEST= 65 +PT= 0000000000000001ffffffffffffffff +CT= 26330a5f3bc166e2d66c25523d80827b +TEST= 66 +PT= 0000000000000003ffffffffffffffff +CT= 7d1ff2b1cd8c311da0d31877d8479924 +TEST= 67 +PT= 0000000000000007ffffffffffffffff +CT= 6b44fd6bcbc1746699fa86393e663e20 +TEST= 68 +PT= 000000000000000fffffffffffffffff +CT= 7d6135c058802c7d7e1a64d84c1b0b58 +TEST= 69 +PT= 000000000000001fffffffffffffffff +CT= 2780da1d4af9937b7f7a167109c01ed5 +TEST= 70 +PT= 000000000000003fffffffffffffffff +CT= 8c6d606a473292ef9d7b3eaa2c2b48d0 +TEST= 71 +PT= 000000000000007fffffffffffffffff +CT= b21cd49bdd33f8dba102ea9f593679f5 +TEST= 72 +PT= 00000000000000ffffffffffffffffff +CT= e84b26bdf29cdcf2cc6d0cfba9a36b4a +TEST= 73 +PT= 00000000000001ffffffffffffffffff +CT= 5f1e926f32237a79c41c996708abb848 +TEST= 74 +PT= 00000000000003ffffffffffffffffff +CT= b3071afc6fb7cb44dc31791a303ab3a1 +TEST= 75 +PT= 00000000000007ffffffffffffffffff +CT= 1bfa099e97915b970ac427db41c4e682 +TEST= 76 +PT= 0000000000000fffffffffffffffffff +CT= 652ec0796f58f50323bcd4d688e891e6 +TEST= 77 +PT= 0000000000001fffffffffffffffffff +CT= 2cd6250a5b9090ee1a8a6e82ca249f4d +TEST= 78 +PT= 0000000000003fffffffffffffffffff +CT= fb748f3bab75ea7bc1a8e82d82a51e09 +TEST= 79 +PT= 0000000000007fffffffffffffffffff +CT= 9c61fb5dfef28e0e332477533e04fa5d +TEST= 80 +PT= 000000000000ffffffffffffffffffff +CT= 1554b13676e017251cbaa0b870293f5b +TEST= 81 +PT= 000000000001ffffffffffffffffffff +CT= 2bdf5516618bfa55688ef7cab73711bd +TEST= 82 +PT= 000000000003ffffffffffffffffffff +CT= ecf1b105a6d8e6da307ea0fb480001a5 +TEST= 83 +PT= 000000000007ffffffffffffffffffff +CT= a3f459f75e64b6e19f4299b269139f7d +TEST= 84 +PT= 00000000000fffffffffffffffffffff +CT= 9b7fcb51afb728ebc4b2cde2eaa3272e +TEST= 85 +PT= 00000000001fffffffffffffffffffff +CT= 6cc8b54fcc4cb5ab1f6bca58809a03f3 +TEST= 86 +PT= 00000000003fffffffffffffffffffff +CT= 08d33488079834d193a93e60340a9dc6 +TEST= 87 +PT= 00000000007fffffffffffffffffffff +CT= 3192a2e9f08b3b683234da0f5518a010 +TEST= 88 +PT= 0000000000ffffffffffffffffffffff +CT= 943ac035ba6411af0340a479c035ccde +TEST= 89 +PT= 0000000001ffffffffffffffffffffff +CT= 3a4ee0ccaee8fcaf778e23e572b64972 +TEST= 90 +PT= 0000000003ffffffffffffffffffffff +CT= 71dd8603c6a215f56ce78254a2dcc352 +TEST= 91 +PT= 0000000007ffffffffffffffffffffff +CT= e55d93d9e16f29b5c0bcc04caeba26b4 +TEST= 92 +PT= 000000000fffffffffffffffffffffff +CT= 978b39d54628ef68dd2e3481c056be87 +TEST= 93 +PT= 000000001fffffffffffffffffffffff +CT= 9781f263a24815e5f86d5426fca2a60d +TEST= 94 +PT= 000000003fffffffffffffffffffffff +CT= a2502f0fa52c9ee2b04dceba26818feb +TEST= 95 +PT= 000000007fffffffffffffffffffffff +CT= e01498623fc3691c93f0a254025f00dc +TEST= 96 +PT= 00000000ffffffffffffffffffffffff +CT= 04f6241fa8dfe97b8fa21020c8e0f012 +TEST= 97 +PT= 00000001ffffffffffffffffffffffff +CT= adad0ea8da80f52cba02a2f797e5f660 +TEST= 98 +PT= 00000003ffffffffffffffffffffffff +CT= da4e186b8466f3de44fcceb4275e919e +TEST= 99 +PT= 00000007ffffffffffffffffffffffff +CT= 81afed0aa90ab04150725191ae23329d +TEST= 100 +PT= 0000000fffffffffffffffffffffffff +CT= ed4edde587d7de7bfc9937e901f28ac3 +TEST= 101 +PT= 0000001fffffffffffffffffffffffff +CT= db971e6a8fef015916b1bd3d1384765b +TEST= 102 +PT= 0000003fffffffffffffffffffffffff +CT= 2908a709b1ed9d002ff1575fb656f145 +TEST= 103 +PT= 0000007fffffffffffffffffffffffff +CT= f2db14c1ebbcfd1cffcd2d45569d8d67 +TEST= 104 +PT= 000000ffffffffffffffffffffffffff +CT= 70c94bbbdecd58bf0f5f85d2cbca1ef5 +TEST= 105 +PT= 000001ffffffffffffffffffffffffff +CT= 6fcc581931c7de8f8433912403e59ef6 +TEST= 106 +PT= 000003ffffffffffffffffffffffffff +CT= 052bd927df7af09b394e6acd3faf17af +TEST= 107 +PT= 000007ffffffffffffffffffffffffff +CT= 71d78327dd4f1de4c41c0bed89d86ad9 +TEST= 108 +PT= 00000fffffffffffffffffffffffffff +CT= 990d25762402bcd18da9ac57a4734ec8 +TEST= 109 +PT= 00001fffffffffffffffffffffffffff +CT= e4fc8242eabf609feb6f3bab41f8b1dc +TEST= 110 +PT= 00003fffffffffffffffffffffffffff +CT= dfef5c6cbcfcd8a2628ae53ce4c6a79b +TEST= 111 +PT= 00007fffffffffffffffffffffffffff +CT= d0b45049e154ea336aa76e4a75b315e7 +TEST= 112 +PT= 0000ffffffffffffffffffffffffffff +CT= d414f7943d00ca79d85b74cc95f9ef14 +TEST= 113 +PT= 0001ffffffffffffffffffffffffffff +CT= a69b3d1b84f6ee453a27bca6c80f1b7f +TEST= 114 +PT= 0003ffffffffffffffffffffffffffff +CT= 58396af6098f11a4146c222c23489274 +TEST= 115 +PT= 0007ffffffffffffffffffffffffffff +CT= 0b125f559c24c477ba892ce77426f45a +TEST= 116 +PT= 000fffffffffffffffffffffffffffff +CT= c4bf82fc934d9c05da586038b25b3a30 +TEST= 117 +PT= 001fffffffffffffffffffffffffffff +CT= e6211d551f1508d285cfd248a5dbea3e +TEST= 118 +PT= 003fffffffffffffffffffffffffffff +CT= 25a4f6a5fdf329d70ca049f503b5eda2 +TEST= 119 +PT= 007fffffffffffffffffffffffffffff +CT= 63302af0213fde83e376a1c1e9990542 +TEST= 120 +PT= 00ffffffffffffffffffffffffffffff +CT= 9300e6173d1260a519b13ea2ae65a985 +TEST= 121 +PT= 01ffffffffffffffffffffffffffffff +CT= 8e9aac3b662e266dcdf5ae4426a90edd +TEST= 122 +PT= 03ffffffffffffffffffffffffffffff +CT= c691e61ab83e4b2a6cea1a1a6097ba2e +TEST= 123 +PT= 07ffffffffffffffffffffffffffffff +CT= cdf811cc43cf5df05db02cb939721884 +TEST= 124 +PT= 0fffffffffffffffffffffffffffffff +CT= bf2778915eee19c7cab7c0547f0a61dd +TEST= 125 +PT= 1fffffffffffffffffffffffffffffff +CT= 4da9149db4c9c2bb29ba1701816f1b2f +TEST= 126 +PT= 3fffffffffffffffffffffffffffffff +CT= d20c5e7d71e9caeccf40664f1eb45392 +TEST= 127 +PT= 7fffffffffffffffffffffffffffffff +CT= e358d3c6b857b344f148f8d6c622f3bf +TEST= 128 +PT= ffffffffffffffffffffffffffffffff +CT= acdace8078a32b1a182bfa4987ca1347 +TEST= 129 +PT= fffffffffffffffffffffffffffffffe +CT= 7bfe9d876c6d63c1d035da8fe21c409d +TEST= 130 +PT= fffffffffffffffffffffffffffffffc +CT= 0f59cb5a4b522e2ac56c1a64f558ad9a +TEST= 131 +PT= fffffffffffffffffffffffffffffff8 +CT= da63039d38cb4612b2dc36ba26684b93 +TEST= 132 +PT= fffffffffffffffffffffffffffffff0 +CT= 7240e524bc51d8c4d440b1be55d1062c +TEST= 133 +PT= ffffffffffffffffffffffffffffffe0 +CT= 2915be4a1ecfdcbe3e023811a12bb6c7 +TEST= 134 +PT= ffffffffffffffffffffffffffffffc0 +CT= 9b7b940f6c509f9e44a4ee140448ee46 +TEST= 135 +PT= ffffffffffffffffffffffffffffff80 +CT= 0493370e054b09871130fe49af730a5a +TEST= 136 +PT= ffffffffffffffffffffffffffffff00 +CT= 29ee526770f2a11dcfa989d1ce88830f +TEST= 137 +PT= fffffffffffffffffffffffffffffe00 +CT= ee0715b96f72e3f7a22a5064fc592f4c +TEST= 138 +PT= fffffffffffffffffffffffffffffc00 +CT= 27127daafc9accd2fb334ec3eba52323 +TEST= 139 +PT= fffffffffffffffffffffffffffff800 +CT= eb8168313e1cfdfdb5e986d5429cf172 +TEST= 140 +PT= fffffffffffffffffffffffffffff000 +CT= a423deabc173dcf7e2c4c53e77d37cd1 +TEST= 141 +PT= ffffffffffffffffffffffffffffe000 +CT= 286894e48e537f8763b56707d7d155c8 +TEST= 142 +PT= ffffffffffffffffffffffffffffc000 +CT= 683e2140585b18452dd4ffbb93c95df9 +TEST= 143 +PT= ffffffffffffffffffffffffffff8000 +CT= 63fafabb72c07bfbd3ddc9b1203104b8 +TEST= 144 +PT= ffffffffffffffffffffffffffff0000 +CT= 5f397bf03084820cc8810d52e5b666e9 +TEST= 145 +PT= fffffffffffffffffffffffffffe0000 +CT= 4b00c27e8b26da7eab9d3a88dec8b031 +TEST= 146 +PT= fffffffffffffffffffffffffffc0000 +CT= 0861a861c3db4e94194211b77ed761b9 +TEST= 147 +PT= fffffffffffffffffffffffffff80000 +CT= 705a4ef8ba2133729c20185c3d3a4763 +TEST= 148 +PT= fffffffffffffffffffffffffff00000 +CT= 8d683ee63e60d208e343ce48dbc44cac +TEST= 149 +PT= ffffffffffffffffffffffffffe00000 +CT= afa2ffc137577092e2b654fa199d2c43 +TEST= 150 +PT= ffffffffffffffffffffffffffc00000 +CT= 3cdf13e72dee4c581bafec70b85f9660 +TEST= 151 +PT= ffffffffffffffffffffffffff800000 +CT= 2fd0e41c5b8402277354a7391d2618e2 +TEST= 152 +PT= ffffffffffffffffffffffffff000000 +CT= 90ddbcb950843592dd47bbef00fdc876 +TEST= 153 +PT= fffffffffffffffffffffffffe000000 +CT= 62526b78be79cb384633c91f83b4151b +TEST= 154 +PT= fffffffffffffffffffffffffc000000 +CT= 1f11d5d0355e0b556ccdb6c7f5083b4d +TEST= 155 +PT= fffffffffffffffffffffffff8000000 +CT= 220df19f85d69b1b562fa69a3c5beca5 +TEST= 156 +PT= fffffffffffffffffffffffff0000000 +CT= da86f292c6f41ea34fb2068df75ecc29 +TEST= 157 +PT= ffffffffffffffffffffffffe0000000 +CT= 2be1fae5048a25582a679ca10905eb80 +TEST= 158 +PT= ffffffffffffffffffffffffc0000000 +CT= e2775e4b59c1bc2e31a2078c11b5a08c +TEST= 159 +PT= ffffffffffffffffffffffff80000000 +CT= 649f1cddc3792b4638635a392bc9bade +TEST= 160 +PT= ffffffffffffffffffffffff00000000 +CT= 21d9ba49f276b45f11af8fc71a088e3d +TEST= 161 +PT= fffffffffffffffffffffffe00000000 +CT= 1ac1f7102c59933e8b2ddc3f14e94baa +TEST= 162 +PT= fffffffffffffffffffffffc00000000 +CT= e5c3b8e30fd2d8e6239b17b44bd23bbd +TEST= 163 +PT= fffffffffffffffffffffff800000000 +CT= 6f8ba6521152d31f2bada1843e26b973 +TEST= 164 +PT= fffffffffffffffffffffff000000000 +CT= 83a63402a77f9ad5c1e931a931ecd706 +TEST= 165 +PT= ffffffffffffffffffffffe000000000 +CT= 2bf27229901eb40f2df9d8398d1505ae +TEST= 166 +PT= ffffffffffffffffffffffc000000000 +CT= 7b8e7098e357ef71237d46d8b075b0f5 +TEST= 167 +PT= ffffffffffffffffffffff8000000000 +CT= 55cfb3fb6d75cad0445bbc8dafa25b0f +TEST= 168 +PT= ffffffffffffffffffffff0000000000 +CT= 145b60d6d0193c23f4221848a892d61a +TEST= 169 +PT= fffffffffffffffffffffe0000000000 +CT= 905b6267f1d6ab5320835a133f096f2a +TEST= 170 +PT= fffffffffffffffffffffc0000000000 +CT= 8f476cbff75c1f725ce18e4bbcd19b32 +TEST= 171 +PT= fffffffffffffffffffff80000000000 +CT= 9ad983f3bf651cd0393f0a73cccdea50 +TEST= 172 +PT= fffffffffffffffffffff00000000000 +CT= 3b271f8ab2e6e4a20ba8090f43ba78f3 +TEST= 173 +PT= ffffffffffffffffffffe00000000000 +CT= 39b333e8694f21546ad1edd9d87ed95b +TEST= 174 +PT= ffffffffffffffffffffc00000000000 +CT= 08b244ce7cbc8ee97fbba808cb146fda +TEST= 175 +PT= ffffffffffffffffffff800000000000 +CT= 4cc42fc1407b008fe350907c092e80ac +TEST= 176 +PT= ffffffffffffffffffff000000000000 +CT= 12e71214ae8e04f0bb63d7425c6f14d5 +TEST= 177 +PT= fffffffffffffffffffe000000000000 +CT= 4620a49bd967491561669ab25dce45f4 +TEST= 178 +PT= fffffffffffffffffffc000000000000 +CT= b95ba05b332da61ef63a2b31fcad9879 +TEST= 179 +PT= fffffffffffffffffff8000000000000 +CT= 0007e20b8298ec354f0f5fe7470f36bd +TEST= 180 +PT= fffffffffffffffffff0000000000000 +CT= d1c5f6399bf382502e385eee1474a869 +TEST= 181 +PT= ffffffffffffffffffe0000000000000 +CT= a013014d4ce8054cf2591d06f6f2f176 +TEST= 182 +PT= ffffffffffffffffffc0000000000000 +CT= 964153a83bf6989a4ba80daa91c3e081 +TEST= 183 +PT= ffffffffffffffffff80000000000000 +CT= 7d9fa6a57530d0f036fec31c230b0cc6 +TEST= 184 +PT= ffffffffffffffffff00000000000000 +CT= 76b5614a042707c98e2132e2e805fe63 +TEST= 185 +PT= fffffffffffffffffe00000000000000 +CT= 959971ce4134190563518e700b9874d1 +TEST= 186 +PT= fffffffffffffffffc00000000000000 +CT= 811441ce1d309eee7185e8c752c07557 +TEST= 187 +PT= fffffffffffffffff800000000000000 +CT= bc3594e865bcd0261b13202731f33580 +TEST= 188 +PT= fffffffffffffffff000000000000000 +CT= a37a5869b218a9f3a0868d19aea0ad6a +TEST= 189 +PT= ffffffffffffffffe000000000000000 +CT= a1b19beee4e117139f74b3c53fdcb875 +TEST= 190 +PT= ffffffffffffffffc000000000000000 +CT= 19f08e3420ee69b477ca1420281c4782 +TEST= 191 +PT= ffffffffffffffff8000000000000000 +CT= 77f392089042e478ac16c0c86a0b5db5 +TEST= 192 +PT= ffffffffffffffff0000000000000000 +CT= 9b58dbfd77fe5aca9cfc190cd1b82d19 +TEST= 193 +PT= fffffffffffffffe0000000000000000 +CT= faf82d178af25a9886a47e7f789b98d7 +TEST= 194 +PT= fffffffffffffffc0000000000000000 +CT= d8e2bb1ae8ee3dcf5bf7d6c38da82a1a +TEST= 195 +PT= fffffffffffffff80000000000000000 +CT= 1d7c0c4040b355b9d107a99325e3b050 +TEST= 196 +PT= fffffffffffffff00000000000000000 +CT= b1144ddfa75755213390e7c596660490 +TEST= 197 +PT= ffffffffffffffe00000000000000000 +CT= 768f520efe0f23e61d3ec8ad9ce91774 +TEST= 198 +PT= ffffffffffffffc00000000000000000 +CT= 56ede9dda3f6f141bff1757fa689c3e1 +TEST= 199 +PT= ffffffffffffff800000000000000000 +CT= 0d9ac756eb297695eed4d382eb126d26 +TEST= 200 +PT= ffffffffffffff000000000000000000 +CT= c0838d1a2b16a7c7f0dfcc433c399c33 +TEST= 201 +PT= fffffffffffffe000000000000000000 +CT= cc3526262b92f02edce548f716b9f45c +TEST= 202 +PT= fffffffffffffc000000000000000000 +CT= c090313eb98674f35f3123385fb95d4d +TEST= 203 +PT= fffffffffffff8000000000000000000 +CT= dd27cac6401a022e8f38f9f93e774417 +TEST= 204 +PT= fffffffffffff0000000000000000000 +CT= 4632154179a555c17ea604d0889fab14 +TEST= 205 +PT= ffffffffffffe0000000000000000000 +CT= a1853fe47fe29289d153161d06387d21 +TEST= 206 +PT= ffffffffffffc0000000000000000000 +CT= cd2b1fec11fd906c5c7630099443610a +TEST= 207 +PT= ffffffffffff80000000000000000000 +CT= b1d4efe40242f83e93b6c8d7efb5eae9 +TEST= 208 +PT= ffffffffffff00000000000000000000 +CT= ead731af4d3a2fe3b34bed047942a49f +TEST= 209 +PT= fffffffffffe00000000000000000000 +CT= 1a518dddaf9efa0d002cc58d107edfc8 +TEST= 210 +PT= fffffffffffc00000000000000000000 +CT= e67ae6426bf9526c972cff072b52252c +TEST= 211 +PT= fffffffffff800000000000000000000 +CT= 20ebc86f1304d272e2e207e59db639f0 +TEST= 212 +PT= fffffffffff000000000000000000000 +CT= 3f5f9106d0e52f973d4890e6f37e8a00 +TEST= 213 +PT= ffffffffffe000000000000000000000 +CT= ac9bd8e2530469134b9d5b065d4f565b +TEST= 214 +PT= ffffffffffc000000000000000000000 +CT= 2463531ab54d66955e73edc4cb8eaa45 +TEST= 215 +PT= ffffffffff8000000000000000000000 +CT= 48c7d0e80834ebdc35b6735f76b46c8b +TEST= 216 +PT= ffffffffff0000000000000000000000 +CT= f96b0c4a8bc6c86130289f60b43b8fba +TEST= 217 +PT= fffffffffe0000000000000000000000 +CT= 11a45530f624ff6f76a1b3826626ff7b +TEST= 218 +PT= fffffffffc0000000000000000000000 +CT= 49d541b2e74cfe73e6a8e8225f7bd449 +TEST= 219 +PT= fffffffff80000000000000000000000 +CT= 54fafe26e4287f17d1935f87eb9ade01 +TEST= 220 +PT= fffffffff00000000000000000000000 +CT= 9a682acf40be01f5b2a4193c9a82404d +TEST= 221 +PT= ffffffffe00000000000000000000000 +CT= 753665c4af1eff33aa8b628bf8741cfd +TEST= 222 +PT= ffffffffc00000000000000000000000 +CT= 9b471596dc69ae1586cee6158b0b0181 +TEST= 223 +PT= ffffffff800000000000000000000000 +CT= 42a1136e5f8d8d21d3101998642d573b +TEST= 224 +PT= ffffffff000000000000000000000000 +CT= 6a4981f2915e3e68af6c22385dd06756 +TEST= 225 +PT= fffffffe000000000000000000000000 +CT= 8d6a8afe55a6e481badae0d146f436db +TEST= 226 +PT= fffffffc000000000000000000000000 +CT= fbd6640c80245c2b805373f130703127 +TEST= 227 +PT= fffffff8000000000000000000000000 +CT= cf37cdaaa0d2d536c71857634c792064 +TEST= 228 +PT= fffffff0000000000000000000000000 +CT= 96f96e9d607f6615fc192061ee648b07 +TEST= 229 +PT= ffffffe0000000000000000000000000 +CT= abf4154a3375a1d3e6b1d454438f95a6 +TEST= 230 +PT= ffffffc0000000000000000000000000 +CT= 1f8eedea0f62a1406d58cfc3ecea72cf +TEST= 231 +PT= ffffff80000000000000000000000000 +CT= 36aff0ef7bf3280772cf4cac80a0d2b2 +TEST= 232 +PT= ffffff00000000000000000000000000 +CT= ac86bc606b6640c309e782f232bf367f +TEST= 233 +PT= fffffe00000000000000000000000000 +CT= 6ef4cc4de49b11065d7af2909854794a +TEST= 234 +PT= fffffc00000000000000000000000000 +CT= b1f4066e6f4f187dfe5f2ad1b17819d0 +TEST= 235 +PT= fffff800000000000000000000000000 +CT= d5e38bf15f16d90e3e214041d774daa8 +TEST= 236 +PT= fffff000000000000000000000000000 +CT= 3ee500c5c8d63479717163e55c5c4522 +TEST= 237 +PT= ffffe000000000000000000000000000 +CT= 2239455e7afe3b0616100288cc5a723b +TEST= 238 +PT= ffffc000000000000000000000000000 +CT= 59e858eaaa97fec38111275b6cf5abc0 +TEST= 239 +PT= ffff8000000000000000000000000000 +CT= 1fe6cc3c05965dc08eb0590c95ac71d0 +TEST= 240 +PT= ffff0000000000000000000000000000 +CT= 300ade92f88f48fa2df730ec16ef44cd +TEST= 241 +PT= fffe0000000000000000000000000000 +CT= 1569859ea6b7206c30bf4fd0cbfac33c +TEST= 242 +PT= fffc0000000000000000000000000000 +CT= dc8f0e4915fd81ba70a331310882f6da +TEST= 243 +PT= fff80000000000000000000000000000 +CT= 047bba83f7aa841731504e012208fc9e +TEST= 244 +PT= fff00000000000000000000000000000 +CT= c218faa16056bd0774c3e8d79c35a5e4 +TEST= 245 +PT= ffe00000000000000000000000000000 +CT= 0dc58a8d886623705aec15cb1e70dc0e +TEST= 246 +PT= ffc00000000000000000000000000000 +CT= fe1cffb83f45dcfb38b29be438dbd3ab +TEST= 247 +PT= ff800000000000000000000000000000 +CT= 8bcd40f94ebb63b9f7909676e667f1e7 +TEST= 248 +PT= ff000000000000000000000000000000 +CT= 49af6b372135acef10132e548f217b17 +TEST= 249 +PT= fe000000000000000000000000000000 +CT= 8092a4dcf2da7e77e93bdd371dfed82e +TEST= 250 +PT= fc000000000000000000000000000000 +CT= e74cd1c92f0919c35a0324123d6177d3 +TEST= 251 +PT= f8000000000000000000000000000000 +CT= 7818d800dcf6f4be1e0e94f403d1e4c2 +TEST= 252 +PT= f0000000000000000000000000000000 +CT= 7f2c5ece07a98d8bee13c51177395ff7 +TEST= 253 +PT= e0000000000000000000000000000000 +CT= 9b80eefb7ebe2d2b16247aa0efc72f5d +TEST= 254 +PT= c0000000000000000000000000000000 +CT= 0a6bdc6d4c1e6280301fd8e97ddbe601 +TEST= 255 +PT= 80000000000000000000000000000000 +CT= ddc6bf790c15760d8d9aeb6f9a75fd4e diff --git a/test/crypto/aes/ecbvk44.txt b/test/crypto/aes/ecbvk44.txt new file mode 100644 index 0000000000..04f3089773 --- /dev/null +++ b/test/crypto/aes/ecbvk44.txt @@ -0,0 +1,398 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Key Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbvk44.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 128 + +PT= 00000000000000000000000000000000 +TEST= 0 +KEY= 00000000000000000000000000000000 +CT= 66e94bd4ef8a2c3b884cfa59ca342b2e +TEST= 1 +KEY= 80000000000000000000000000000000 +CT= 0edd33d3c621e546455bd8ba1418bec8 +TEST= 2 +KEY= 40000000000000000000000000000000 +CT= c0cc0c5da5bd63acd44a80774fad5222 +TEST= 3 +KEY= 20000000000000000000000000000000 +CT= 2f0b4b71bc77851b9ca56d42eb8ff080 +TEST= 4 +KEY= 10000000000000000000000000000000 +CT= 6b1e2fffe8a114009d8fe22f6db5f876 +TEST= 5 +KEY= 08000000000000000000000000000000 +CT= 9aa042c315f94cbb97b62202f83358f5 +TEST= 6 +KEY= 04000000000000000000000000000000 +CT= dbe01de67e346a800c4c4b4880311de4 +TEST= 7 +KEY= 02000000000000000000000000000000 +CT= c117d2238d53836acd92ddcdb85d6a21 +TEST= 8 +KEY= 01000000000000000000000000000000 +CT= dc0ed85df9611abb7249cdd168c5467e +TEST= 9 +KEY= 00800000000000000000000000000000 +CT= 807d678fff1f56fa92de3381904842f2 +TEST= 10 +KEY= 00400000000000000000000000000000 +CT= 0e53b3fcad8e4b130ef73aeb957fb402 +TEST= 11 +KEY= 00200000000000000000000000000000 +CT= 969ffd3b7c35439417e7bde923035d65 +TEST= 12 +KEY= 00100000000000000000000000000000 +CT= a99b512c19ca56070491166a1503bf15 +TEST= 13 +KEY= 00080000000000000000000000000000 +CT= 6e9985252126ee344d26ae369d2327e3 +TEST= 14 +KEY= 00040000000000000000000000000000 +CT= b85f4809f904c275491fcdcd1610387e +TEST= 15 +KEY= 00020000000000000000000000000000 +CT= ed365b8d7d20c1f5d53fb94dd211df7b +TEST= 16 +KEY= 00010000000000000000000000000000 +CT= b3a575e86a8db4a7135d604c43304896 +TEST= 17 +KEY= 00008000000000000000000000000000 +CT= 89704bcb8e69f846259eb0accbc7f8a2 +TEST= 18 +KEY= 00004000000000000000000000000000 +CT= c56ee7c92197861f10d7a92b90882055 +TEST= 19 +KEY= 00002000000000000000000000000000 +CT= 92f296f6846e0eaf9422a5a24a08b069 +TEST= 20 +KEY= 00001000000000000000000000000000 +CT= e67e32bb8f11deb8699318bee9e91a60 +TEST= 21 +KEY= 00000800000000000000000000000000 +CT= b08eef85eaf626dd91b65c4c3a97d92b +TEST= 22 +KEY= 00000400000000000000000000000000 +CT= 661083a6addce79bb4e0859ab5538013 +TEST= 23 +KEY= 00000200000000000000000000000000 +CT= 55dfe2941e0eb10afc0b333bd34de1fe +TEST= 24 +KEY= 00000100000000000000000000000000 +CT= 6bfe5945e715c9662609770f8846087a +TEST= 25 +KEY= 00000080000000000000000000000000 +CT= 79848e9c30c2f8cda8b325f7fed2b139 +TEST= 26 +KEY= 00000040000000000000000000000000 +CT= 7a713a53b99fef34ac04deef80965bd0 +TEST= 27 +KEY= 00000020000000000000000000000000 +CT= 18144a2b46620d32c3c32ce52d49257f +TEST= 28 +KEY= 00000010000000000000000000000000 +CT= 872e827c70887c80749f7b8bb1847c7e +TEST= 29 +KEY= 00000008000000000000000000000000 +CT= 6b86c6a4fe6a60c59b1a3102f8de49f3 +TEST= 30 +KEY= 00000004000000000000000000000000 +CT= 9848bb3dfdf6f532f094679a4c231a20 +TEST= 31 +KEY= 00000002000000000000000000000000 +CT= 925ad528e852e329b2091cd3f1c2bcee +TEST= 32 +KEY= 00000001000000000000000000000000 +CT= 80df436544b0dd596722e46792a40cd8 +TEST= 33 +KEY= 00000000800000000000000000000000 +CT= 525daf18f93e83e1e74bbbdde4263bba +TEST= 34 +KEY= 00000000400000000000000000000000 +CT= f65c9d2ee485d24701ffa3313b9d5be6 +TEST= 35 +KEY= 00000000200000000000000000000000 +CT= e4fc8d8bca06425bdf94afa40fcc14ba +TEST= 36 +KEY= 00000000100000000000000000000000 +CT= a53f0a5ca1e4e6440bb975ff320de6f8 +TEST= 37 +KEY= 00000000080000000000000000000000 +CT= d55313b9394080462e87e02899b553f0 +TEST= 38 +KEY= 00000000040000000000000000000000 +CT= 34a71d761f71bcd344384c7f97d27906 +TEST= 39 +KEY= 00000000020000000000000000000000 +CT= 233f3d819599612ebc89580245c996a8 +TEST= 40 +KEY= 00000000010000000000000000000000 +CT= b4f1374e5268dbcb676e447529e53f89 +TEST= 41 +KEY= 00000000008000000000000000000000 +CT= 0816bd27861d2ba891d1044e39951e96 +TEST= 42 +KEY= 00000000004000000000000000000000 +CT= f3be9ea3f10c73ca64fde5db13a951d1 +TEST= 43 +KEY= 00000000002000000000000000000000 +CT= 2448086a8106fbd03048ddf857d3f1c8 +TEST= 44 +KEY= 00000000001000000000000000000000 +CT= 670756e65bec8b68f03d77cdcdce7b91 +TEST= 45 +KEY= 00000000000800000000000000000000 +CT= ef968cf0d36fd6c6effd225f6fb44ca9 +TEST= 46 +KEY= 00000000000400000000000000000000 +CT= 2e8767157922e3826ddcec1b0cc1e105 +TEST= 47 +KEY= 00000000000200000000000000000000 +CT= 78ce7eec670e45a967bab17e26a1ad36 +TEST= 48 +KEY= 00000000000100000000000000000000 +CT= 3c5cee825655f098f6e81a2f417da3fb +TEST= 49 +KEY= 00000000000080000000000000000000 +CT= 67bfdb431dce1292200bc6f5207adb12 +TEST= 50 +KEY= 00000000000040000000000000000000 +CT= 7540fd38e447c0779228548747843a6f +TEST= 51 +KEY= 00000000000020000000000000000000 +CT= b85e513301f8a936ea9ec8a21a85b5e6 +TEST= 52 +KEY= 00000000000010000000000000000000 +CT= 04c67dbf16c11427d507a455de2c9bc5 +TEST= 53 +KEY= 00000000000008000000000000000000 +CT= 03f75eb8959e55079cffb4ff149a37b6 +TEST= 54 +KEY= 00000000000004000000000000000000 +CT= 74550287f666c63bb9bc7838433434b0 +TEST= 55 +KEY= 00000000000002000000000000000000 +CT= 7d537200195ebc3aefd1eaab1c385221 +TEST= 56 +KEY= 00000000000001000000000000000000 +CT= ce24e4d40c68a82b535cbd3c8e21652a +TEST= 57 +KEY= 00000000000000800000000000000000 +CT= ab20072405aa8fc40265c6f1f3dc8bc0 +TEST= 58 +KEY= 00000000000000400000000000000000 +CT= 6cfd2cf688f566b093f67b9b3839e80a +TEST= 59 +KEY= 00000000000000200000000000000000 +CT= bd95977e6b7239d407a012c5544bf584 +TEST= 60 +KEY= 00000000000000100000000000000000 +CT= df9c0130ac77e7c72c997f587b46dbe0 +TEST= 61 +KEY= 00000000000000080000000000000000 +CT= e7f1b82cadc53a648798945b34efeff2 +TEST= 62 +KEY= 00000000000000040000000000000000 +CT= 932c6dbf69255cf13edcdb72233acea3 +TEST= 63 +KEY= 00000000000000020000000000000000 +CT= 5c76002bc7206560efe550c80b8f12cc +TEST= 64 +KEY= 00000000000000010000000000000000 +CT= f6b7bdd1caeebab574683893c4475484 +TEST= 65 +KEY= 00000000000000008000000000000000 +CT= a920e37cc6dc6b31da8c0169569f5034 +TEST= 66 +KEY= 00000000000000004000000000000000 +CT= 919380ecd9c778bc513148b0c28d65fd +TEST= 67 +KEY= 00000000000000002000000000000000 +CT= ee67308dd3f2d9e6c2170755e5784be1 +TEST= 68 +KEY= 00000000000000001000000000000000 +CT= 3cc73e53b85609023a05e149b223ae09 +TEST= 69 +KEY= 00000000000000000800000000000000 +CT= 983e8af7cf05ebb28d71eb841c9406e6 +TEST= 70 +KEY= 00000000000000000400000000000000 +CT= 0f3099b2d31fa5299ee5bf43193287fc +TEST= 71 +KEY= 00000000000000000200000000000000 +CT= b763d84f38c27fe6931dceb6715d4db6 +TEST= 72 +KEY= 00000000000000000100000000000000 +CT= 5ae3c9b0e3cc29c0c61565cd01f8a248 +TEST= 73 +KEY= 00000000000000000080000000000000 +CT= f58083572cd90981958565d48d2dee25 +TEST= 74 +KEY= 00000000000000000040000000000000 +CT= 7e6255eef8f70c0ef10337aab1cccef8 +TEST= 75 +KEY= 00000000000000000020000000000000 +CT= aad4bac34db22821841ce2f631961902 +TEST= 76 +KEY= 00000000000000000010000000000000 +CT= d7431c0409bb1441ba9c6858dc7d4e81 +TEST= 77 +KEY= 00000000000000000008000000000000 +CT= ef9298c65e339f6e801a59c626456993 +TEST= 78 +KEY= 00000000000000000004000000000000 +CT= 53fe29f68ff541abc3f0ef3350b72f7e +TEST= 79 +KEY= 00000000000000000002000000000000 +CT= f6bba5c10db02529e2c2da3fb582cc14 +TEST= 80 +KEY= 00000000000000000001000000000000 +CT= e4239aa37fc531a386dad1126fc0e9cd +TEST= 81 +KEY= 00000000000000000000800000000000 +CT= 8f7758f857d15bbe7bfd0e416404c365 +TEST= 82 +KEY= 00000000000000000000400000000000 +CT= d273eb57c687bcd1b4ea7218a509e7b8 +TEST= 83 +KEY= 00000000000000000000200000000000 +CT= 65d64f8d76e8b3423fa25c4eb58a210a +TEST= 84 +KEY= 00000000000000000000100000000000 +CT= 623d802b4ec450d66a16625702fcdbe0 +TEST= 85 +KEY= 00000000000000000000080000000000 +CT= 7496460cb28e5791baeaf9b68fb00022 +TEST= 86 +KEY= 00000000000000000000040000000000 +CT= 34ea600f18bb0694b41681a49d510c1d +TEST= 87 +KEY= 00000000000000000000020000000000 +CT= 5f8ff0d47d5766d29b5d6e8f46423bd8 +TEST= 88 +KEY= 00000000000000000000010000000000 +CT= 225f9286c5928bf09f84d3f93f541959 +TEST= 89 +KEY= 00000000000000000000008000000000 +CT= b21e90d25df383416a5f072cebeb1ffb +TEST= 90 +KEY= 00000000000000000000004000000000 +CT= 4aefcda089318125453eb9e8eb5e492e +TEST= 91 +KEY= 00000000000000000000002000000000 +CT= 4d3e75c6cd40ec4869bc85158591adb8 +TEST= 92 +KEY= 00000000000000000000001000000000 +CT= 63a8b904405436a1b99d7751866771b7 +TEST= 93 +KEY= 00000000000000000000000800000000 +CT= 64f0daae47529199792eae172ba53293 +TEST= 94 +KEY= 00000000000000000000000400000000 +CT= c3eef84bea18225d515a8c852a9047ee +TEST= 95 +KEY= 00000000000000000000000200000000 +CT= a44ac422b47d47b81af73b3e9ac9596e +TEST= 96 +KEY= 00000000000000000000000100000000 +CT= d16e04a8fbc435094f8d53adf25f5084 +TEST= 97 +KEY= 00000000000000000000000080000000 +CT= ef13dc34bab03e124eead8b6bf44b532 +TEST= 98 +KEY= 00000000000000000000000040000000 +CT= d94799075c24dcc067af0d392049250d +TEST= 99 +KEY= 00000000000000000000000020000000 +CT= 14f431771eddce4764c21a2254b5e3c8 +TEST= 100 +KEY= 00000000000000000000000010000000 +CT= 7039329f36f2ed682b02991f28d64679 +TEST= 101 +KEY= 00000000000000000000000008000000 +CT= 124ee24ede5551639db8b8b941f6141d +TEST= 102 +KEY= 00000000000000000000000004000000 +CT= c2852879a34d5184e478ec918b993fee +TEST= 103 +KEY= 00000000000000000000000002000000 +CT= 86a806a3525b93e432053c9ab5abbedf +TEST= 104 +KEY= 00000000000000000000000001000000 +CT= c1609bf5a4f07e37c17a36366ec23ecc +TEST= 105 +KEY= 00000000000000000000000000800000 +CT= 7e81e7cb92159a51ffcea331b1e8ea53 +TEST= 106 +KEY= 00000000000000000000000000400000 +CT= 37a7be002856c5a59a6e03eafce7729a +TEST= 107 +KEY= 00000000000000000000000000200000 +CT= bdf98a5a4f91e890c9a1d1e5faab138f +TEST= 108 +KEY= 00000000000000000000000000100000 +CT= 4e96acb66e051f2bc739cc3d3e34a26b +TEST= 109 +KEY= 00000000000000000000000000080000 +CT= ee996cdd120eb86e21ecfa49e8e1fcf1 +TEST= 110 +KEY= 00000000000000000000000000040000 +CT= 61b9e6b579dbf6070c351a1440dd85ff +TEST= 111 +KEY= 00000000000000000000000000020000 +CT= ac369e484316440b40dfc83aa96e28e7 +TEST= 112 +KEY= 00000000000000000000000000010000 +CT= 0a2d16de985c76d45c579c1159413bbe +TEST= 113 +KEY= 00000000000000000000000000008000 +CT= da3fdc38da1d374fa4802cda1a1c6b0f +TEST= 114 +KEY= 00000000000000000000000000004000 +CT= b842523d4c41c2211afe43a5800adce3 +TEST= 115 +KEY= 00000000000000000000000000002000 +CT= 9e2cda90d8e992dba6c73d8229567192 +TEST= 116 +KEY= 00000000000000000000000000001000 +CT= d49583b781d9e20f5be101415957fc49 +TEST= 117 +KEY= 00000000000000000000000000000800 +CT= ef09da5c12b376e458b9b8670032498e +TEST= 118 +KEY= 00000000000000000000000000000400 +CT= a96be0463da774461a5e1d5a9dd1ac10 +TEST= 119 +KEY= 00000000000000000000000000000200 +CT= 32cee3341060790d2d4b1362ef397090 +TEST= 120 +KEY= 00000000000000000000000000000100 +CT= 21cea416a3d3359d2c4d58fb6a035f06 +TEST= 121 +KEY= 00000000000000000000000000000080 +CT= 172aeab3d507678ecaf455c12587adb7 +TEST= 122 +KEY= 00000000000000000000000000000040 +CT= b6f897941ef8ebff9fe80a567ef38478 +TEST= 123 +KEY= 00000000000000000000000000000020 +CT= a9723259d94a7dc662fb0c782ca3f1dd +TEST= 124 +KEY= 00000000000000000000000000000010 +CT= 2f91c984b9a4839f30001b9f430493b4 +TEST= 125 +KEY= 00000000000000000000000000000008 +CT= 0472406345a610b048cb99ee0ef3fa0f +TEST= 126 +KEY= 00000000000000000000000000000004 +CT= f5f39086646f8c05ed16efa4b617957c +TEST= 127 +KEY= 00000000000000000000000000000002 +CT= 26d50f485a30408d5af47a5736292450 +TEST= 128 +KEY= 00000000000000000000000000000001 +CT= 0545aad56da2a97c3663d1432a3d1c84 diff --git a/test/crypto/aes/ecbvk48.txt b/test/crypto/aes/ecbvk48.txt new file mode 100644 index 0000000000..e11c0c9915 --- /dev/null +++ b/test/crypto/aes/ecbvk48.txt @@ -0,0 +1,782 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Key Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbvk48.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 256 + +PT= 00000000000000000000000000000000 +TEST= 0 +KEY= 0000000000000000000000000000000000000000000000000000000000000000 +CT= dc95c078a2408989ad48a21492842087 +TEST= 1 +KEY= 8000000000000000000000000000000000000000000000000000000000000000 +CT= e35a6dcb19b201a01ebcfa8aa22b5759 +TEST= 2 +KEY= 4000000000000000000000000000000000000000000000000000000000000000 +CT= 5075c2405b76f22f553488cae47ce90b +TEST= 3 +KEY= 2000000000000000000000000000000000000000000000000000000000000000 +CT= 49df95d844a0145a7de01c91793302d3 +TEST= 4 +KEY= 1000000000000000000000000000000000000000000000000000000000000000 +CT= e7396d778e940b8418a86120e5f421fe +TEST= 5 +KEY= 0800000000000000000000000000000000000000000000000000000000000000 +CT= 05f535c36fcede4657be37f4087db1ef +TEST= 6 +KEY= 0400000000000000000000000000000000000000000000000000000000000000 +CT= d0c1dddd10da777c68ab36af51f2c204 +TEST= 7 +KEY= 0200000000000000000000000000000000000000000000000000000000000000 +CT= 1c55fb811b5c6464c4e5de1535a75514 +TEST= 8 +KEY= 0100000000000000000000000000000000000000000000000000000000000000 +CT= 52917f3ae957d5230d3a2af57c7b5a71 +TEST= 9 +KEY= 0080000000000000000000000000000000000000000000000000000000000000 +CT= c6e3d5501752dd5e9aef086d6b45d705 +TEST= 10 +KEY= 0040000000000000000000000000000000000000000000000000000000000000 +CT= a24a9c7af1d9b1e17e1c9a3e711b3fa7 +TEST= 11 +KEY= 0020000000000000000000000000000000000000000000000000000000000000 +CT= b881eca724a6d43dbc6b96f6f59a0d20 +TEST= 12 +KEY= 0010000000000000000000000000000000000000000000000000000000000000 +CT= ec524d9a24dfff2a9639879b83b8e137 +TEST= 13 +KEY= 0008000000000000000000000000000000000000000000000000000000000000 +CT= 34c4f345f5466215a037f443635d6f75 +TEST= 14 +KEY= 0004000000000000000000000000000000000000000000000000000000000000 +CT= 5ba5055bedb8895f672e29f2eb5a355d +TEST= 15 +KEY= 0002000000000000000000000000000000000000000000000000000000000000 +CT= b3f692aa3a435259ebbef9b51ad1e08d +TEST= 16 +KEY= 0001000000000000000000000000000000000000000000000000000000000000 +CT= 414feb4376f2c64a5d2fbb2ed531ba7d +TEST= 17 +KEY= 0000800000000000000000000000000000000000000000000000000000000000 +CT= a20d519e3bca3303f07e81719f61605e +TEST= 18 +KEY= 0000400000000000000000000000000000000000000000000000000000000000 +CT= a08d10e520af811f45bd60a2dc0dc4b1 +TEST= 19 +KEY= 0000200000000000000000000000000000000000000000000000000000000000 +CT= b06893a8c563c430e6f3858826efbbe4 +TEST= 20 +KEY= 0000100000000000000000000000000000000000000000000000000000000000 +CT= 0ffee26ae2d3929c6bd9c6bedff84409 +TEST= 21 +KEY= 0000080000000000000000000000000000000000000000000000000000000000 +CT= 4d0f5e906ed77801fc0ef53edc5f9e2b +TEST= 22 +KEY= 0000040000000000000000000000000000000000000000000000000000000000 +CT= 8b6ec00119ad8b026dce56ea7defe930 +TEST= 23 +KEY= 0000020000000000000000000000000000000000000000000000000000000000 +CT= 69026591d43363ee9d83b5007f0b484e +TEST= 24 +KEY= 0000010000000000000000000000000000000000000000000000000000000000 +CT= 27135d86950c6a2f86872706279a4761 +TEST= 25 +KEY= 0000008000000000000000000000000000000000000000000000000000000000 +CT= 35e6db8723f281da410c3ac8535ed77c +TEST= 26 +KEY= 0000004000000000000000000000000000000000000000000000000000000000 +CT= 57427cf214b8c28e4bbf487ccb8d0e09 +TEST= 27 +KEY= 0000002000000000000000000000000000000000000000000000000000000000 +CT= 6df01bf56e5131ac87f96e99cab86367 +TEST= 28 +KEY= 0000001000000000000000000000000000000000000000000000000000000000 +CT= 3856c5b55790b768bbf7d43031579bcf +TEST= 29 +KEY= 0000000800000000000000000000000000000000000000000000000000000000 +CT= 1e6ed8fb7c15bc4d2f63ba7037ed44d0 +TEST= 30 +KEY= 0000000400000000000000000000000000000000000000000000000000000000 +CT= e1b2ed6cd8d93d455534e401156d4bcf +TEST= 31 +KEY= 0000000200000000000000000000000000000000000000000000000000000000 +CT= efbcca5bdfdad10e875f02336212ce36 +TEST= 32 +KEY= 0000000100000000000000000000000000000000000000000000000000000000 +CT= 0b777f02fd18dce2646dcfe868dfafad +TEST= 33 +KEY= 0000000080000000000000000000000000000000000000000000000000000000 +CT= c8a104b5693d1b14f5bf1f10100bf508 +TEST= 34 +KEY= 0000000040000000000000000000000000000000000000000000000000000000 +CT= 4cce6615244afcb38408fece219962ea +TEST= 35 +KEY= 0000000020000000000000000000000000000000000000000000000000000000 +CT= f99e7845d3a255b394c9c050cba258b1 +TEST= 36 +KEY= 0000000010000000000000000000000000000000000000000000000000000000 +CT= b4afbb787f9bcfb7b55fdf447f611295 +TEST= 37 +KEY= 0000000008000000000000000000000000000000000000000000000000000000 +CT= ae1c426a697faf2808b7ef6addb5c020 +TEST= 38 +KEY= 0000000004000000000000000000000000000000000000000000000000000000 +CT= 7572f92811a85b9bdd38dead9945bcae +TEST= 39 +KEY= 0000000002000000000000000000000000000000000000000000000000000000 +CT= 71bc7aa46e43fb95a181527d9f6a360f +TEST= 40 +KEY= 0000000001000000000000000000000000000000000000000000000000000000 +CT= 5542ef2923066f1ec8f546dd0d8e7ca8 +TEST= 41 +KEY= 0000000000800000000000000000000000000000000000000000000000000000 +CT= 6b92317c7d623790b748fdd7efc42422 +TEST= 42 +KEY= 0000000000400000000000000000000000000000000000000000000000000000 +CT= 0fe7c097e899c71ef045360f8d6c25cf +TEST= 43 +KEY= 0000000000200000000000000000000000000000000000000000000000000000 +CT= 4ece7ee107d0264d04693151c25b9df6 +TEST= 44 +KEY= 0000000000100000000000000000000000000000000000000000000000000000 +CT= fd6ae687cbfca9e301045888d3bb9605 +TEST= 45 +KEY= 0000000000080000000000000000000000000000000000000000000000000000 +CT= 476b579c8556c7254424902cc1d6d36e +TEST= 46 +KEY= 0000000000040000000000000000000000000000000000000000000000000000 +CT= 4133cbcdfdd6b8860a1fc18665d6d71b +TEST= 47 +KEY= 0000000000020000000000000000000000000000000000000000000000000000 +CT= 3b36ec2664798c108b816812c65dfdc7 +TEST= 48 +KEY= 0000000000010000000000000000000000000000000000000000000000000000 +CT= 364e20a234fea385d48dc5a09c9e70cf +TEST= 49 +KEY= 0000000000008000000000000000000000000000000000000000000000000000 +CT= 4a4ba25969de3f5ee5642c71aad0efd1 +TEST= 50 +KEY= 0000000000004000000000000000000000000000000000000000000000000000 +CT= e42cbaae43297f67a76c1c501bb79e36 +TEST= 51 +KEY= 0000000000002000000000000000000000000000000000000000000000000000 +CT= 23cededa4c15b4c037e8c61492217937 +TEST= 52 +KEY= 0000000000001000000000000000000000000000000000000000000000000000 +CT= a1719147a1f4a1a1180bd16e8593dcde +TEST= 53 +KEY= 0000000000000800000000000000000000000000000000000000000000000000 +CT= ab82337e9fb0ec60d1f25a1d0014192c +TEST= 54 +KEY= 0000000000000400000000000000000000000000000000000000000000000000 +CT= 74bf2d8fc5a8388df1a3a4d7d33fc164 +TEST= 55 +KEY= 0000000000000200000000000000000000000000000000000000000000000000 +CT= d5b493317e6fbc6fffd664b3c491368a +TEST= 56 +KEY= 0000000000000100000000000000000000000000000000000000000000000000 +CT= ba767381586da56a2a8d503d5f7ada0b +TEST= 57 +KEY= 0000000000000080000000000000000000000000000000000000000000000000 +CT= e8e6bc57dfe9ccadb0decabf4e5cf91f +TEST= 58 +KEY= 0000000000000040000000000000000000000000000000000000000000000000 +CT= 3c8e5a5cdc9ceed90815d1f84bb2998c +TEST= 59 +KEY= 0000000000000020000000000000000000000000000000000000000000000000 +CT= 283843020ba38f056001b2fd585f7cc9 +TEST= 60 +KEY= 0000000000000010000000000000000000000000000000000000000000000000 +CT= d8adc7426f623ece8741a70621d28870 +TEST= 61 +KEY= 0000000000000008000000000000000000000000000000000000000000000000 +CT= d7c5c215592d06f00e6a80da69a28ea9 +TEST= 62 +KEY= 0000000000000004000000000000000000000000000000000000000000000000 +CT= 52cf6fa433c3c870cac70190358f7f16 +TEST= 63 +KEY= 0000000000000002000000000000000000000000000000000000000000000000 +CT= f63d442a584da71786adec9f3346df75 +TEST= 64 +KEY= 0000000000000001000000000000000000000000000000000000000000000000 +CT= 549078f4b0ca7079b45f9a5adafafd99 +TEST= 65 +KEY= 0000000000000000800000000000000000000000000000000000000000000000 +CT= f2a5986ee4e9984be2bafb79ea8152fa +TEST= 66 +KEY= 0000000000000000400000000000000000000000000000000000000000000000 +CT= 8a74535017b4db2776668a1fae64384c +TEST= 67 +KEY= 0000000000000000200000000000000000000000000000000000000000000000 +CT= e613342f57a97fd95dc088711a5d0ecd +TEST= 68 +KEY= 0000000000000000100000000000000000000000000000000000000000000000 +CT= 3ffaebf6b22cf1dc82ae17cd48175b01 +TEST= 69 +KEY= 0000000000000000080000000000000000000000000000000000000000000000 +CT= bafd52efa15c248ccbf9757735e6b1ce +TEST= 70 +KEY= 0000000000000000040000000000000000000000000000000000000000000000 +CT= 7af94bc018d9ddd4539d2dd1c6f4000f +TEST= 71 +KEY= 0000000000000000020000000000000000000000000000000000000000000000 +CT= fe177ad61ca0fdb281086fba8fe76803 +TEST= 72 +KEY= 0000000000000000010000000000000000000000000000000000000000000000 +CT= 74dbea15e2e9285bad163d7d534251b6 +TEST= 73 +KEY= 0000000000000000008000000000000000000000000000000000000000000000 +CT= 23dd21331b3a92f200fe56ff050ffe74 +TEST= 74 +KEY= 0000000000000000004000000000000000000000000000000000000000000000 +CT= a69c5aa34ab20a858cafa766eaced6d8 +TEST= 75 +KEY= 0000000000000000002000000000000000000000000000000000000000000000 +CT= 3f72bb4df2a4f941a4a09cb78f04b97a +TEST= 76 +KEY= 0000000000000000001000000000000000000000000000000000000000000000 +CT= 72cc43577e1fd5fd14622d24d97fcdcc +TEST= 77 +KEY= 0000000000000000000800000000000000000000000000000000000000000000 +CT= d83af8ebe93e0b6b99cafade224937d1 +TEST= 78 +KEY= 0000000000000000000400000000000000000000000000000000000000000000 +CT= 44042329128d56caa8d084c8bd769d1e +TEST= 79 +KEY= 0000000000000000000200000000000000000000000000000000000000000000 +CT= 14102d72290de4f2c430add1ed64ba1d +TEST= 80 +KEY= 0000000000000000000100000000000000000000000000000000000000000000 +CT= 449124097b1ecd0ae7065206df06f03c +TEST= 81 +KEY= 0000000000000000000080000000000000000000000000000000000000000000 +CT= d060a99f8cc153a42e11e5f97bd7584a +TEST= 82 +KEY= 0000000000000000000040000000000000000000000000000000000000000000 +CT= 65605b3ea9261488d53e48602adea299 +TEST= 83 +KEY= 0000000000000000000020000000000000000000000000000000000000000000 +CT= c5e5cad7a208de8ea6be049efe5c7346 +TEST= 84 +KEY= 0000000000000000000010000000000000000000000000000000000000000000 +CT= 4c280c46d2181646048dd5bc0c0831a5 +TEST= 85 +KEY= 0000000000000000000008000000000000000000000000000000000000000000 +CT= 5dd65cf37f2a0929559aabafda08e730 +TEST= 86 +KEY= 0000000000000000000004000000000000000000000000000000000000000000 +CT= 31f2335caaf264172f69a693225e6d22 +TEST= 87 +KEY= 0000000000000000000002000000000000000000000000000000000000000000 +CT= 3e28b35f99a72662590da96426dd377f +TEST= 88 +KEY= 0000000000000000000001000000000000000000000000000000000000000000 +CT= 570f40f5d7b20441486578ed344343be +TEST= 89 +KEY= 0000000000000000000000800000000000000000000000000000000000000000 +CT= c54308ad1c9e3b19f8b7417873045a8c +TEST= 90 +KEY= 0000000000000000000000400000000000000000000000000000000000000000 +CT= cbf335e39ce13ade2b696179e8fd0ce1 +TEST= 91 +KEY= 0000000000000000000000200000000000000000000000000000000000000000 +CT= 9c2fbf422355d8293083d51f4a3c18a9 +TEST= 92 +KEY= 0000000000000000000000100000000000000000000000000000000000000000 +CT= 5ed8b5a31ecefab16c9aa6986da67bce +TEST= 93 +KEY= 0000000000000000000000080000000000000000000000000000000000000000 +CT= 627815dcfc814abc75900041b1dd7b59 +TEST= 94 +KEY= 0000000000000000000000040000000000000000000000000000000000000000 +CT= 9ef3e82a50a59f166260494f7a7f2cc3 +TEST= 95 +KEY= 0000000000000000000000020000000000000000000000000000000000000000 +CT= 878cd0d8d920888b5935d6c351128737 +TEST= 96 +KEY= 0000000000000000000000010000000000000000000000000000000000000000 +CT= e44429474d6fc3084eb2a6b8b46af754 +TEST= 97 +KEY= 0000000000000000000000008000000000000000000000000000000000000000 +CT= ebaacf9641d54e1fb18d0a2be4f19be5 +TEST= 98 +KEY= 0000000000000000000000004000000000000000000000000000000000000000 +CT= 13b3bf497cee780e123c7e193dea3a01 +TEST= 99 +KEY= 0000000000000000000000002000000000000000000000000000000000000000 +CT= 6e8f381de00a41161f0df03b4155bfd4 +TEST= 100 +KEY= 0000000000000000000000001000000000000000000000000000000000000000 +CT= 35e4f29bba2bae01144910783c3fef49 +TEST= 101 +KEY= 0000000000000000000000000800000000000000000000000000000000000000 +CT= 55b17bd66788ceac366398a31f289ffb +TEST= 102 +KEY= 0000000000000000000000000400000000000000000000000000000000000000 +CT= 11341f56c0d6d1008d28741daa7679ce +TEST= 103 +KEY= 0000000000000000000000000200000000000000000000000000000000000000 +CT= 4df7253df421d83358bdbe924745d98c +TEST= 104 +KEY= 0000000000000000000000000100000000000000000000000000000000000000 +CT= bae2ee651116d93edc8e83b5f3347be1 +TEST= 105 +KEY= 0000000000000000000000000080000000000000000000000000000000000000 +CT= f9721abd06709157183af3965a659d9d +TEST= 106 +KEY= 0000000000000000000000000040000000000000000000000000000000000000 +CT= 19a1c252a613fe2860a4ae6d75ce6fa3 +TEST= 107 +KEY= 0000000000000000000000000020000000000000000000000000000000000000 +CT= b5ddb2f5d9752c949fbde3fff5556c6e +TEST= 108 +KEY= 0000000000000000000000000010000000000000000000000000000000000000 +CT= 81b044fcffc78eccfcd171aad0405c66 +TEST= 109 +KEY= 0000000000000000000000000008000000000000000000000000000000000000 +CT= c640566d3c06020eb2c42f1d62e56a9b +TEST= 110 +KEY= 0000000000000000000000000004000000000000000000000000000000000000 +CT= ea6c4bcf425291679fdffd26a424fbcc +TEST= 111 +KEY= 0000000000000000000000000002000000000000000000000000000000000000 +CT= 57f6901465d9440d9f15ee2cba5a4090 +TEST= 112 +KEY= 0000000000000000000000000001000000000000000000000000000000000000 +CT= fbcfa74cadc7406260f63d96c8aab6b1 +TEST= 113 +KEY= 0000000000000000000000000000800000000000000000000000000000000000 +CT= dff4f096cea211d4bbdaca033d0ec7d1 +TEST= 114 +KEY= 0000000000000000000000000000400000000000000000000000000000000000 +CT= 1ee5190d551f0f42f675227a381296a9 +TEST= 115 +KEY= 0000000000000000000000000000200000000000000000000000000000000000 +CT= f98e1905012e580f097623c10b93054f +TEST= 116 +KEY= 0000000000000000000000000000100000000000000000000000000000000000 +CT= e7d43743d21dd3c9f168c86856558b9a +TEST= 117 +KEY= 0000000000000000000000000000080000000000000000000000000000000000 +CT= 632a9dda730dab67593c5d08d8ac1059 +TEST= 118 +KEY= 0000000000000000000000000000040000000000000000000000000000000000 +CT= e084317000715b9057bc9de9f3ab6124 +TEST= 119 +KEY= 0000000000000000000000000000020000000000000000000000000000000000 +CT= 61f9ef33a0bb4e666c2ed99101919fab +TEST= 120 +KEY= 0000000000000000000000000000010000000000000000000000000000000000 +CT= 6dc1d68a11834657d46703c22578d59a +TEST= 121 +KEY= 0000000000000000000000000000008000000000000000000000000000000000 +CT= 53ac1548863d3d16f1d4dc7242e05f2c +TEST= 122 +KEY= 0000000000000000000000000000004000000000000000000000000000000000 +CT= e82cd587a408306ad78ceae0916b9f8c +TEST= 123 +KEY= 0000000000000000000000000000002000000000000000000000000000000000 +CT= 0fd2d40ea6ad17a3a767f0a8600d6295 +TEST= 124 +KEY= 0000000000000000000000000000001000000000000000000000000000000000 +CT= ad84cc8255adb39dfca23f92761ae7e9 +TEST= 125 +KEY= 0000000000000000000000000000000800000000000000000000000000000000 +CT= f4f20cf7d51bee7da024a2b11a7eca0b +TEST= 126 +KEY= 0000000000000000000000000000000400000000000000000000000000000000 +CT= 5057691b85d9ce93a193214db0a016b6 +TEST= 127 +KEY= 0000000000000000000000000000000200000000000000000000000000000000 +CT= 0f58c960876390bdef4bb6be95caa1ee +TEST= 128 +KEY= 0000000000000000000000000000000100000000000000000000000000000000 +CT= 9a3e66eebc21bc0bd9430b341ef465fa +TEST= 129 +KEY= 0000000000000000000000000000000080000000000000000000000000000000 +CT= 20415035f34b8bcbcb28abf07f78f0d4 +TEST= 130 +KEY= 0000000000000000000000000000000040000000000000000000000000000000 +CT= ac89fc7ba10479ebf10de65bcef89b3c +TEST= 131 +KEY= 0000000000000000000000000000000020000000000000000000000000000000 +CT= 068fa75a30be443171af3f6feb1a20d2 +TEST= 132 +KEY= 0000000000000000000000000000000010000000000000000000000000000000 +CT= 50e02f213246c525a8c27700ca34b502 +TEST= 133 +KEY= 0000000000000000000000000000000008000000000000000000000000000000 +CT= 227da47d5a0906db3ab042bb0a695fb6 +TEST= 134 +KEY= 0000000000000000000000000000000004000000000000000000000000000000 +CT= 8663ac30ed12514f1de46777f4514bfc +TEST= 135 +KEY= 0000000000000000000000000000000002000000000000000000000000000000 +CT= a987d4bc12e1de9f4b6df43567c34a8b +TEST= 136 +KEY= 0000000000000000000000000000000001000000000000000000000000000000 +CT= 6d5a0370f599aca605f63b04e5143d0c +TEST= 137 +KEY= 0000000000000000000000000000000000800000000000000000000000000000 +CT= 9809266e378b07b7afdb3baa97b7e442 +TEST= 138 +KEY= 0000000000000000000000000000000000400000000000000000000000000000 +CT= 8f753252b30cccace12d9a301f4d5090 +TEST= 139 +KEY= 0000000000000000000000000000000000200000000000000000000000000000 +CT= 032465f6c0ce34d41962f561692a1aff +TEST= 140 +KEY= 0000000000000000000000000000000000100000000000000000000000000000 +CT= c50e9ad5beb8f3b00821dd47ff8ac093 +TEST= 141 +KEY= 0000000000000000000000000000000000080000000000000000000000000000 +CT= 9c6fea3d46268d54a6829b2ad25bb276 +TEST= 142 +KEY= 0000000000000000000000000000000000040000000000000000000000000000 +CT= 0fd8575e87706f561343d7b3a41e044a +TEST= 143 +KEY= 0000000000000000000000000000000000020000000000000000000000000000 +CT= bee9beb3739540d88cbce77925f0a114 +TEST= 144 +KEY= 0000000000000000000000000000000000010000000000000000000000000000 +CT= d24eaee7fffbac3d6f26c2dce0dcde28 +TEST= 145 +KEY= 0000000000000000000000000000000000008000000000000000000000000000 +CT= 47771a90398ff0f7fa821c2f8f5e1398 +TEST= 146 +KEY= 0000000000000000000000000000000000004000000000000000000000000000 +CT= 4639741b6f84b135ad118c8249b64ed0 +TEST= 147 +KEY= 0000000000000000000000000000000000002000000000000000000000000000 +CT= 8ee5505ec85567697a3306f250a27720 +TEST= 148 +KEY= 0000000000000000000000000000000000001000000000000000000000000000 +CT= 7c8a19ac1aefbc5e0119d91a5f05d4c2 +TEST= 149 +KEY= 0000000000000000000000000000000000000800000000000000000000000000 +CT= 5141b9b672e54773b672e3a6c424887b +TEST= 150 +KEY= 0000000000000000000000000000000000000400000000000000000000000000 +CT= b5a2d3cd206653c6402f34fb0ae3613d +TEST= 151 +KEY= 0000000000000000000000000000000000000200000000000000000000000000 +CT= 0f5bd9408738231d114b0a82753279a3 +TEST= 152 +KEY= 0000000000000000000000000000000000000100000000000000000000000000 +CT= fef033ff4268ea487fc74c5e43a45338 +TEST= 153 +KEY= 0000000000000000000000000000000000000080000000000000000000000000 +CT= a3edc09dcd529b113910d904ad855581 +TEST= 154 +KEY= 0000000000000000000000000000000000000040000000000000000000000000 +CT= ab8fbb6f27a0ac7c55b59fdd36b72f1c +TEST= 155 +KEY= 0000000000000000000000000000000000000020000000000000000000000000 +CT= eea44d5ed4d769cc930cd83d8999ec46 +TEST= 156 +KEY= 0000000000000000000000000000000000000010000000000000000000000000 +CT= 6972276803ae9aa7c6f431ab10979c34 +TEST= 157 +KEY= 0000000000000000000000000000000000000008000000000000000000000000 +CT= 86deaa9f39244101818178474d7dbde9 +TEST= 158 +KEY= 0000000000000000000000000000000000000004000000000000000000000000 +CT= 88c6b466ea361d662d8d08cbf181f4fe +TEST= 159 +KEY= 0000000000000000000000000000000000000002000000000000000000000000 +CT= 91ab2c6b7c63ff59f7cbeebf91b20b95 +TEST= 160 +KEY= 0000000000000000000000000000000000000001000000000000000000000000 +CT= 2dfe6c146ad5b3d8c3c1718f13b48e01 +TEST= 161 +KEY= 0000000000000000000000000000000000000000800000000000000000000000 +CT= c7cff1623451711391a302eec3584aaa +TEST= 162 +KEY= 0000000000000000000000000000000000000000400000000000000000000000 +CT= 089fe845cc05011686c66019d18be050 +TEST= 163 +KEY= 0000000000000000000000000000000000000000200000000000000000000000 +CT= 08c8410b9b427211a67124b0dccead48 +TEST= 164 +KEY= 0000000000000000000000000000000000000000100000000000000000000000 +CT= 8d91592f5566085254784606334d7629 +TEST= 165 +KEY= 0000000000000000000000000000000000000000080000000000000000000000 +CT= 3298feaaf2e1201d6299ff8846639c97 +TEST= 166 +KEY= 0000000000000000000000000000000000000000040000000000000000000000 +CT= c497cb9f0bdfe0efc8c2f3f90760aa72 +TEST= 167 +KEY= 0000000000000000000000000000000000000000020000000000000000000000 +CT= 2788afd046e0309cbe4424690da2ab89 +TEST= 168 +KEY= 0000000000000000000000000000000000000000010000000000000000000000 +CT= e9891707f25ef29fee372890d4258982 +TEST= 169 +KEY= 0000000000000000000000000000000000000000008000000000000000000000 +CT= db041d94a23d45d4d4dced5a030caf61 +TEST= 170 +KEY= 0000000000000000000000000000000000000000004000000000000000000000 +CT= ffafdbf0ecb18df9ea02c27077448e6d +TEST= 171 +KEY= 0000000000000000000000000000000000000000002000000000000000000000 +CT= 2daaa42a7d0a1d3b0e4761d99cf2150a +TEST= 172 +KEY= 0000000000000000000000000000000000000000001000000000000000000000 +CT= 3b7a54cb7cf30abe263dd6ed5bfe8d63 +TEST= 173 +KEY= 0000000000000000000000000000000000000000000800000000000000000000 +CT= eefa090174c590c448a55d43648f534a +TEST= 174 +KEY= 0000000000000000000000000000000000000000000400000000000000000000 +CT= 9e15798731ed42f43ea2740a691da872 +TEST= 175 +KEY= 0000000000000000000000000000000000000000000200000000000000000000 +CT= 31fbd661540a5deaad1017cfd3909ec8 +TEST= 176 +KEY= 0000000000000000000000000000000000000000000100000000000000000000 +CT= cda9ae05f224140e28cb951721b44d6a +TEST= 177 +KEY= 0000000000000000000000000000000000000000000080000000000000000000 +CT= 0c5bc512c60a1eac3434efb1a8fbb182 +TEST= 178 +KEY= 0000000000000000000000000000000000000000000040000000000000000000 +CT= aa863610deeeeb62d045e87ea30b59b5 +TEST= 179 +KEY= 0000000000000000000000000000000000000000000020000000000000000000 +CT= 6ac2448de568d279c7eebe1df403920c +TEST= 180 +KEY= 0000000000000000000000000000000000000000000010000000000000000000 +CT= e2011e3d292b26888ae801215fd0cb40 +TEST= 181 +KEY= 0000000000000000000000000000000000000000000008000000000000000000 +CT= e06f3e15ee3a61672d1c99bade5b9dbe +TEST= 182 +KEY= 0000000000000000000000000000000000000000000004000000000000000000 +CT= bb7027f0548cf6712ceb4c7a4b28e178 +TEST= 183 +KEY= 0000000000000000000000000000000000000000000002000000000000000000 +CT= 061ec21fb70fadbdf87c3bd2ae23825b +TEST= 184 +KEY= 0000000000000000000000000000000000000000000001000000000000000000 +CT= 4c21f26fe94abbac381352375314c3eb +TEST= 185 +KEY= 0000000000000000000000000000000000000000000000800000000000000000 +CT= f7cee6dd99909c2b569eeda61ed8942e +TEST= 186 +KEY= 0000000000000000000000000000000000000000000000400000000000000000 +CT= ce98c4a876c65e4ccb261ebb1d9df7f5 +TEST= 187 +KEY= 0000000000000000000000000000000000000000000000200000000000000000 +CT= a5491881cf833c3604abc08044f402ac +TEST= 188 +KEY= 0000000000000000000000000000000000000000000000100000000000000000 +CT= a1ba16e64cccb3087d57a768507b0bfc +TEST= 189 +KEY= 0000000000000000000000000000000000000000000000080000000000000000 +CT= d55951e202d2949ebd3be43120c738bf +TEST= 190 +KEY= 0000000000000000000000000000000000000000000000040000000000000000 +CT= ebb8e43069e69f450efec65dcd52b7fd +TEST= 191 +KEY= 0000000000000000000000000000000000000000000000020000000000000000 +CT= 2b292135663b4aa5abfe9423d57e7ee9 +TEST= 192 +KEY= 0000000000000000000000000000000000000000000000010000000000000000 +CT= e91bf974b3be3ad966249d8655292a85 +TEST= 193 +KEY= 0000000000000000000000000000000000000000000000008000000000000000 +CT= 384365998eaa9562236cc58f6adf9610 +TEST= 194 +KEY= 0000000000000000000000000000000000000000000000004000000000000000 +CT= c2e997012aa3d4d8d359c9a947cbe69f +TEST= 195 +KEY= 0000000000000000000000000000000000000000000000002000000000000000 +CT= f49421204148ba213be87e2d5c22b0bf +TEST= 196 +KEY= 0000000000000000000000000000000000000000000000001000000000000000 +CT= 82ed0ed9953aa92e4df30929ca65c00f +TEST= 197 +KEY= 0000000000000000000000000000000000000000000000000800000000000000 +CT= 291eb1d11653c8479437c74a977f5106 +TEST= 198 +KEY= 0000000000000000000000000000000000000000000000000400000000000000 +CT= bcb997b1939b8983abd550d6025683e3 +TEST= 199 +KEY= 0000000000000000000000000000000000000000000000000200000000000000 +CT= 1fba2592c6f489775caada71f9b983e9 +TEST= 200 +KEY= 0000000000000000000000000000000000000000000000000100000000000000 +CT= 969f66f217af1a3db9e41c1b29039824 +TEST= 201 +KEY= 0000000000000000000000000000000000000000000000000080000000000000 +CT= a54bb7d6b17e423ac0a7744c19073cb8 +TEST= 202 +KEY= 0000000000000000000000000000000000000000000000000040000000000000 +CT= b0ac6e6578d1021f47dcf9748a32ead5 +TEST= 203 +KEY= 0000000000000000000000000000000000000000000000000020000000000000 +CT= b87b361c3b7b194c77a4358d4669153e +TEST= 204 +KEY= 0000000000000000000000000000000000000000000000000010000000000000 +CT= 46a133847f96eaa8282a799dc8899d58 +TEST= 205 +KEY= 0000000000000000000000000000000000000000000000000008000000000000 +CT= 2265ec3a9f2d5c9547a091cc8cfb18ea +TEST= 206 +KEY= 0000000000000000000000000000000000000000000000000004000000000000 +CT= 54cbf3a6fc4fe56d426117aa1ffd1dde +TEST= 207 +KEY= 0000000000000000000000000000000000000000000000000002000000000000 +CT= 5312877cceab6cfb0905394a370a8003 +TEST= 208 +KEY= 0000000000000000000000000000000000000000000000000001000000000000 +CT= 7190bd6ec613fe38b84ecfe28f702fe4 +TEST= 209 +KEY= 0000000000000000000000000000000000000000000000000000800000000000 +CT= d1fa5b9ca89a43b04c05f0ef29ef68cd +TEST= 210 +KEY= 0000000000000000000000000000000000000000000000000000400000000000 +CT= 808285751548ed934fd1056d2d9ae8ba +TEST= 211 +KEY= 0000000000000000000000000000000000000000000000000000200000000000 +CT= 2758def3e7b95a9ae89777be64d5a6cf +TEST= 212 +KEY= 0000000000000000000000000000000000000000000000000000100000000000 +CT= 07d81f87db3e0acc82b01e08fb22f3c1 +TEST= 213 +KEY= 0000000000000000000000000000000000000000000000000000080000000000 +CT= 8da250e5553d650711a75ee1cb4fd1c7 +TEST= 214 +KEY= 0000000000000000000000000000000000000000000000000000040000000000 +CT= a93d946bd0e87f32719df5f158cee669 +TEST= 215 +KEY= 0000000000000000000000000000000000000000000000000000020000000000 +CT= 03945236ec2a4d4eaf30b8abeb54330d +TEST= 216 +KEY= 0000000000000000000000000000000000000000000000000000010000000000 +CT= 11cc35301f24b79dde31aea2d1354f88 +TEST= 217 +KEY= 0000000000000000000000000000000000000000000000000000008000000000 +CT= e73715b3e8d9a290f44ae6ffbf247e5d +TEST= 218 +KEY= 0000000000000000000000000000000000000000000000000000004000000000 +CT= 7345e07732b71cb158bbf64cca5c5b96 +TEST= 219 +KEY= 0000000000000000000000000000000000000000000000000000002000000000 +CT= 6e128f296d24705a1924fd9b70c4ed04 +TEST= 220 +KEY= 0000000000000000000000000000000000000000000000000000001000000000 +CT= 95a789776f036783fbd330947083f54f +TEST= 221 +KEY= 0000000000000000000000000000000000000000000000000000000800000000 +CT= 360dec2533ea4aa2e3e54fd3de2906eb +TEST= 222 +KEY= 0000000000000000000000000000000000000000000000000000000400000000 +CT= e68efd7fecf4d601ea22727bd764965b +TEST= 223 +KEY= 0000000000000000000000000000000000000000000000000000000200000000 +CT= 9065c64a8bff44ac33edbb611cf83d7b +TEST= 224 +KEY= 0000000000000000000000000000000000000000000000000000000100000000 +CT= 8f33c8df2a7a51ce8090e8f123bc3723 +TEST= 225 +KEY= 0000000000000000000000000000000000000000000000000000000080000000 +CT= 807f391ffba8291ba625623210f99018 +TEST= 226 +KEY= 0000000000000000000000000000000000000000000000000000000040000000 +CT= 5e8b3f3a701522ce5caa761c929d6292 +TEST= 227 +KEY= 0000000000000000000000000000000000000000000000000000000020000000 +CT= 3ba404dc38735a78289e3809e8364835 +TEST= 228 +KEY= 0000000000000000000000000000000000000000000000000000000010000000 +CT= d23bedbad229f8305dc425b6b759dcc9 +TEST= 229 +KEY= 0000000000000000000000000000000000000000000000000000000008000000 +CT= 44880f21cf5913040ae376aee2a10ad8 +TEST= 230 +KEY= 0000000000000000000000000000000000000000000000000000000004000000 +CT= 9bc98e29d057c0e828c3b5cce69256c1 +TEST= 231 +KEY= 0000000000000000000000000000000000000000000000000000000002000000 +CT= b293cc7a975da141a68279368057cc41 +TEST= 232 +KEY= 0000000000000000000000000000000000000000000000000000000001000000 +CT= 8d60fb87acd91385b313be5f1d7bd30f +TEST= 233 +KEY= 0000000000000000000000000000000000000000000000000000000000800000 +CT= 2c8e56132d70291b303c48fdf75543cd +TEST= 234 +KEY= 0000000000000000000000000000000000000000000000000000000000400000 +CT= d1f80035b826791f6ce4e59b7db1bb0d +TEST= 235 +KEY= 0000000000000000000000000000000000000000000000000000000000200000 +CT= 42ce6224fc36469339a133dd08173bd4 +TEST= 236 +KEY= 0000000000000000000000000000000000000000000000000000000000100000 +CT= 61817155ea41bcba2af7f06ae7cbf585 +TEST= 237 +KEY= 0000000000000000000000000000000000000000000000000000000000080000 +CT= d1923a9866068d2ef5fb77d57c3315b6 +TEST= 238 +KEY= 0000000000000000000000000000000000000000000000000000000000040000 +CT= b37cbdb5d719f49691ca968ef2e84140 +TEST= 239 +KEY= 0000000000000000000000000000000000000000000000000000000000020000 +CT= ec974e653a055d7f8f22171030f68e1d +TEST= 240 +KEY= 0000000000000000000000000000000000000000000000000000000000010000 +CT= dde5d3b9aad9c32213bb3675a822499c +TEST= 241 +KEY= 0000000000000000000000000000000000000000000000000000000000008000 +CT= d3b6e9216ea1ae57eb1c628a3c38ab78 +TEST= 242 +KEY= 0000000000000000000000000000000000000000000000000000000000004000 +CT= 82c99ecc69472b7e96324b042ae8b87a +TEST= 243 +KEY= 0000000000000000000000000000000000000000000000000000000000002000 +CT= 97144dc5338c43600f84439c0aa0d147 +TEST= 244 +KEY= 0000000000000000000000000000000000000000000000000000000000001000 +CT= 400ac4a0bbada1db2121eb144c7e5209 +TEST= 245 +KEY= 0000000000000000000000000000000000000000000000000000000000000800 +CT= efd9d550eb419ed278f4885a490ab54c +TEST= 246 +KEY= 0000000000000000000000000000000000000000000000000000000000000400 +CT= 2ab7816e149b7c0404c88a8857793670 +TEST= 247 +KEY= 0000000000000000000000000000000000000000000000000000000000000200 +CT= 5b591dff9e8dee15bad24c025dbca481 +TEST= 248 +KEY= 0000000000000000000000000000000000000000000000000000000000000100 +CT= 0c06633e30721c3749f49ad8cbf2b754 +TEST= 249 +KEY= 0000000000000000000000000000000000000000000000000000000000000080 +CT= 96d6d31a41b5123b2035fd91a921d4ca +TEST= 250 +KEY= 0000000000000000000000000000000000000000000000000000000000000040 +CT= e7f6c34d86668bc2805ca7793c5e86ad +TEST= 251 +KEY= 0000000000000000000000000000000000000000000000000000000000000020 +CT= f46dff5ff500d6879c4d3e45cf0cf0f3 +TEST= 252 +KEY= 0000000000000000000000000000000000000000000000000000000000000010 +CT= 60d842d9c61da7495c116197b7cecbbe +TEST= 253 +KEY= 0000000000000000000000000000000000000000000000000000000000000008 +CT= d45b24edb673353ebdf248b8fa06b67a +TEST= 254 +KEY= 0000000000000000000000000000000000000000000000000000000000000004 +CT= 119eaebcc165d0bd02c0d35dc82ef992 +TEST= 255 +KEY= 0000000000000000000000000000000000000000000000000000000000000002 +CT= e673143680414ada301d0ed34626b9fe +TEST= 256 +KEY= 0000000000000000000000000000000000000000000000000000000000000001 +CT= 6b6cfe160a6263631b292f879eeff926 diff --git a/test/crypto/aes/ecbvt44.txt b/test/crypto/aes/ecbvt44.txt new file mode 100644 index 0000000000..d9e866b6fa --- /dev/null +++ b/test/crypto/aes/ecbvt44.txt @@ -0,0 +1,398 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Text Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbvt44.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 128 + +KEY= 00000000000000000000000000000000 +TEST= 0 +PT= 00000000000000000000000000000000 +CT= 66e94bd4ef8a2c3b884cfa59ca342b2e +TEST= 1 +PT= 80000000000000000000000000000000 +CT= 3ad78e726c1ec02b7ebfe92b23d9ec34 +TEST= 2 +PT= 40000000000000000000000000000000 +CT= 45bc707d29e8204d88dfba2f0b0cad9b +TEST= 3 +PT= 20000000000000000000000000000000 +CT= 161556838018f52805cdbd6202002e3f +TEST= 4 +PT= 10000000000000000000000000000000 +CT= f5569b3ab6a6d11efde1bf0a64c6854a +TEST= 5 +PT= 08000000000000000000000000000000 +CT= 64e82b50e501fbd7dd4116921159b83e +TEST= 6 +PT= 04000000000000000000000000000000 +CT= baac12fb613a7de11450375c74034041 +TEST= 7 +PT= 02000000000000000000000000000000 +CT= bcf176a7eaad8085ebacea362462a281 +TEST= 8 +PT= 01000000000000000000000000000000 +CT= 47711816e91d6ff059bbbf2bf58e0fd3 +TEST= 9 +PT= 00800000000000000000000000000000 +CT= b970dfbe40698af1638fe38bd3df3b2f +TEST= 10 +PT= 00400000000000000000000000000000 +CT= f95b59a44f391e14cf20b74bdc32fcff +TEST= 11 +PT= 00200000000000000000000000000000 +CT= 720f74ae04a2a435b9a7256e49378f5b +TEST= 12 +PT= 00100000000000000000000000000000 +CT= 2a0445f61d36bfa7e277070730cf76da +TEST= 13 +PT= 00080000000000000000000000000000 +CT= 8d0536b997aefec1d94011bab6699a03 +TEST= 14 +PT= 00040000000000000000000000000000 +CT= 674f002e19f6ed47eff319e51fad4498 +TEST= 15 +PT= 00020000000000000000000000000000 +CT= 292c02c5cb9163c80ac0f6cf1dd8e92d +TEST= 16 +PT= 00010000000000000000000000000000 +CT= fa321cf18ef5fe727dd82a5c1e945141 +TEST= 17 +PT= 00008000000000000000000000000000 +CT= a5a7afe1034c39cccebe3c584bc0be05 +TEST= 18 +PT= 00004000000000000000000000000000 +CT= 4ff5a52e697e77d081205dbdb21cea39 +TEST= 19 +PT= 00002000000000000000000000000000 +CT= 209e88dc94c9003000ce0769af7b7166 +TEST= 20 +PT= 00001000000000000000000000000000 +CT= 5dee41af864cb4b650e5f51551824d38 +TEST= 21 +PT= 00000800000000000000000000000000 +CT= a79a63fa7e4503ae6d6e09f5f9053030 +TEST= 22 +PT= 00000400000000000000000000000000 +CT= a48316749fae7fac7002031a6afd8ba7 +TEST= 23 +PT= 00000200000000000000000000000000 +CT= d6eee8a7357a0e1d64262ca9c337ac42 +TEST= 24 +PT= 00000100000000000000000000000000 +CT= b013ca8a62a858053e9fb667ed39829e +TEST= 25 +PT= 00000080000000000000000000000000 +CT= df6ea9e4538a45a52d5c1a43c88f4b55 +TEST= 26 +PT= 00000040000000000000000000000000 +CT= 7d03ba451371591d3fd5547d9165c73b +TEST= 27 +PT= 00000020000000000000000000000000 +CT= 0e0426281a6277e186499d365d5f49ff +TEST= 28 +PT= 00000010000000000000000000000000 +CT= dbc02169dd2059e6cc4c57c1fedf5ab4 +TEST= 29 +PT= 00000008000000000000000000000000 +CT= 826590e05d167da6f00dcc75e22788eb +TEST= 30 +PT= 00000004000000000000000000000000 +CT= 34a73f21a04421d9786335faab49423a +TEST= 31 +PT= 00000002000000000000000000000000 +CT= ed347d0e0128ee1a7392a1d36ab78aa9 +TEST= 32 +PT= 00000001000000000000000000000000 +CT= ee944b2fe6e9fc888042608da9615f75 +TEST= 33 +PT= 00000000800000000000000000000000 +CT= 9e7c85a909ef7218ba7947cfb4718f46 +TEST= 34 +PT= 00000000400000000000000000000000 +CT= 811ae07a0b2b1f816587fa73699ae77d +TEST= 35 +PT= 00000000200000000000000000000000 +CT= 68466fbf43c2fe13d4b18f7ec5ea745f +TEST= 36 +PT= 00000000100000000000000000000000 +CT= d20b015c7191b219780956e6101f9354 +TEST= 37 +PT= 00000000080000000000000000000000 +CT= 5939d5c1bbf54ee1b3e326d757bdde25 +TEST= 38 +PT= 00000000040000000000000000000000 +CT= b1fdafe9a0240e8ffea19ce94b5105d3 +TEST= 39 +PT= 00000000020000000000000000000000 +CT= d62962ece02cdd68c06bdfefb2f9495b +TEST= 40 +PT= 00000000010000000000000000000000 +CT= b3bb2de6f3c26587ba8bac4f7ad9499a +TEST= 41 +PT= 00000000008000000000000000000000 +CT= e0b1072d6d9ff703d6fbef77852b0a6b +TEST= 42 +PT= 00000000004000000000000000000000 +CT= d8dd51c907f478de0228e83e61fd1758 +TEST= 43 +PT= 00000000002000000000000000000000 +CT= a42dffe6e7c1671c06a25236fdd10017 +TEST= 44 +PT= 00000000001000000000000000000000 +CT= 25acf141550bfab9ef451b6c6a5b2163 +TEST= 45 +PT= 00000000000800000000000000000000 +CT= 4da7fca3949b16e821dbc84f19581018 +TEST= 46 +PT= 00000000000400000000000000000000 +CT= 7d49b6347cbcc8919c7fa96a37a7a215 +TEST= 47 +PT= 00000000000200000000000000000000 +CT= 900024b29a08c6721b95ba3b753ddb4d +TEST= 48 +PT= 00000000000100000000000000000000 +CT= 6d2182fb283b6934d90ba7848cab5e66 +TEST= 49 +PT= 00000000000080000000000000000000 +CT= f73ef01b448d23a4d90de8b2f9666e7a +TEST= 50 +PT= 00000000000040000000000000000000 +CT= 4ad9cda2418643e9a3d926af5e6b0412 +TEST= 51 +PT= 00000000000020000000000000000000 +CT= 7caec8e7e5953997d545b033201c8c5b +TEST= 52 +PT= 00000000000010000000000000000000 +CT= 3c43ca1f6b6864503e27b48d88230cf5 +TEST= 53 +PT= 00000000000008000000000000000000 +CT= 44f779b93108fe9feec880d79ba74488 +TEST= 54 +PT= 00000000000004000000000000000000 +CT= 9e50e8d9cfd3a682a78e527c9072a1cf +TEST= 55 +PT= 00000000000002000000000000000000 +CT= 68d000cbc838bbe3c505d6f814c01f28 +TEST= 56 +PT= 00000000000001000000000000000000 +CT= 2cb2a9fec1acd1d9b0fa05205e304f57 +TEST= 57 +PT= 00000000000000800000000000000000 +CT= 01eb2806606e46444520a5cc6180cd4b +TEST= 58 +PT= 00000000000000400000000000000000 +CT= daa9b25168cc702326f217f1a0c0b162 +TEST= 59 +PT= 00000000000000200000000000000000 +CT= 3e07e648975d9578d03555b1755807ed +TEST= 60 +PT= 00000000000000100000000000000000 +CT= 0b45f52e802c8b8de09579425b80b711 +TEST= 61 +PT= 00000000000000080000000000000000 +CT= 659595da0b68f6df0dd6ca77202986e1 +TEST= 62 +PT= 00000000000000040000000000000000 +CT= 05ff42873893536e58c8fa98a45c73c4 +TEST= 63 +PT= 00000000000000020000000000000000 +CT= b5b03421de8bbffc4eadec767339a9bd +TEST= 64 +PT= 00000000000000010000000000000000 +CT= 788bcd111ecf73d4e78d2e21bef55460 +TEST= 65 +PT= 00000000000000008000000000000000 +CT= 909cd9ec6790359f982dc6f2393d5315 +TEST= 66 +PT= 00000000000000004000000000000000 +CT= 332950f361535ff24efac8c76293f12c +TEST= 67 +PT= 00000000000000002000000000000000 +CT= a68ccd4e330ffda9d576da436db53d75 +TEST= 68 +PT= 00000000000000001000000000000000 +CT= 27c8a1ccfdb0b015d1ed5b3e77143791 +TEST= 69 +PT= 00000000000000000800000000000000 +CT= d76a4b95887a77df610dd3e1d3b20325 +TEST= 70 +PT= 00000000000000000400000000000000 +CT= c068ab0de71c66dae83c361ef4b2d989 +TEST= 71 +PT= 00000000000000000200000000000000 +CT= c2120bcd49eda9a288b3b4be79ac8158 +TEST= 72 +PT= 00000000000000000100000000000000 +CT= 0c546f62bf2773cd0f564fceca7ba688 +TEST= 73 +PT= 00000000000000000080000000000000 +CT= 18f3462bede4920213ccb66dab1640aa +TEST= 74 +PT= 00000000000000000040000000000000 +CT= fe42f245edd0e24b216aebd8b392d690 +TEST= 75 +PT= 00000000000000000020000000000000 +CT= 3d3eebc8d3d1558a194c2d00c337ff2b +TEST= 76 +PT= 00000000000000000010000000000000 +CT= 29aaedf043e785db42836f79be6cba28 +TEST= 77 +PT= 00000000000000000008000000000000 +CT= 215f90c6744e2944358e78619159a611 +TEST= 78 +PT= 00000000000000000004000000000000 +CT= 8606b1aa9e1d548e5442b06551e2c6dc +TEST= 79 +PT= 00000000000000000002000000000000 +CT= 987bb4b8740ec0ede7fea97df033b5b1 +TEST= 80 +PT= 00000000000000000001000000000000 +CT= c0a3500da5b0ae07d2f450930beedf1b +TEST= 81 +PT= 00000000000000000000800000000000 +CT= 525fdf8312fe8f32c781481a8daaae37 +TEST= 82 +PT= 00000000000000000000400000000000 +CT= bfd2c56ae5fb9c9de33a6944572a6487 +TEST= 83 +PT= 00000000000000000000200000000000 +CT= 7975a57a425cdf5aa1fa929101f650b0 +TEST= 84 +PT= 00000000000000000000100000000000 +CT= bf174bc49609a8709b2cd8366daa79fe +TEST= 85 +PT= 00000000000000000000080000000000 +CT= 06c50c43222f56c874b1704e9f44bf7d +TEST= 86 +PT= 00000000000000000000040000000000 +CT= 0cec48cd34043ea29ca3b8ed5278721e +TEST= 87 +PT= 00000000000000000000020000000000 +CT= 9548ea34a1560197b304d0acb8a1698d +TEST= 88 +PT= 00000000000000000000010000000000 +CT= 22f9e9b1bd73b6b5b7d3062c986272f3 +TEST= 89 +PT= 00000000000000000000008000000000 +CT= fee8e934bd0873295059002230e298d4 +TEST= 90 +PT= 00000000000000000000004000000000 +CT= 1b08e2e3eb820d139cb4abbdbe81d00d +TEST= 91 +PT= 00000000000000000000002000000000 +CT= 0021177681e4d90ceaf69dced0145125 +TEST= 92 +PT= 00000000000000000000001000000000 +CT= 4a8e314452ca8a8a3619fc54bc423643 +TEST= 93 +PT= 00000000000000000000000800000000 +CT= 65047474f7222c94c6965425ff1bfd0a +TEST= 94 +PT= 00000000000000000000000400000000 +CT= e123f551a9c4a8489622b16f961a9aa4 +TEST= 95 +PT= 00000000000000000000000200000000 +CT= ef05530948b80915028bb2b6fe429380 +TEST= 96 +PT= 00000000000000000000000100000000 +CT= 72535b7fe0f0f777cedcd55cd77e2ddf +TEST= 97 +PT= 00000000000000000000000080000000 +CT= 3423d8efc31fa2f4c365c77d8f3b5c63 +TEST= 98 +PT= 00000000000000000000000040000000 +CT= de0e51c264663f3c5dbc59580a98d8e4 +TEST= 99 +PT= 00000000000000000000000020000000 +CT= b2d9391166680947ab09264156719679 +TEST= 100 +PT= 00000000000000000000000010000000 +CT= 10db79f23b06d263835c424af749adb7 +TEST= 101 +PT= 00000000000000000000000008000000 +CT= ddf72d27e6b01ec107ea3e005b59563b +TEST= 102 +PT= 00000000000000000000000004000000 +CT= 8266b57485a5954a4236751de07f6694 +TEST= 103 +PT= 00000000000000000000000002000000 +CT= 669a501e1f1ade6e5523de01d6dbc987 +TEST= 104 +PT= 00000000000000000000000001000000 +CT= c20c48f2989725d461d1db589dc0896e +TEST= 105 +PT= 00000000000000000000000000800000 +CT= de35158e7810ed1191825d2aa98fa97d +TEST= 106 +PT= 00000000000000000000000000400000 +CT= 4fe294f2c0f34d0671b693a237ebddc8 +TEST= 107 +PT= 00000000000000000000000000200000 +CT= 087ae74b10ccbfdf6739feb9559c01a4 +TEST= 108 +PT= 00000000000000000000000000100000 +CT= 5dc278970b7def77a5536c77ab59c207 +TEST= 109 +PT= 00000000000000000000000000080000 +CT= 7607f078c77085184eaa9b060c1fbfff +TEST= 110 +PT= 00000000000000000000000000040000 +CT= 9db841531bcbe7998dad19993fb3cc00 +TEST= 111 +PT= 00000000000000000000000000020000 +CT= d6a089b654854a94560bae13298835b8 +TEST= 112 +PT= 00000000000000000000000000010000 +CT= e1e223c4cf90cc5d195b370d65114622 +TEST= 113 +PT= 00000000000000000000000000008000 +CT= 1cbed73c50d053bdad372ceee54836a1 +TEST= 114 +PT= 00000000000000000000000000004000 +CT= d309e69376d257adf2bfda152b26555f +TEST= 115 +PT= 00000000000000000000000000002000 +CT= 740f7649117f0dee6eaa7789a9994c36 +TEST= 116 +PT= 00000000000000000000000000001000 +CT= 76ae64417c297184d668c5fd908b3ce5 +TEST= 117 +PT= 00000000000000000000000000000800 +CT= 6095fea4aa8035591f1787a819c48787 +TEST= 118 +PT= 00000000000000000000000000000400 +CT= d1ff4e7acd1c79967febab0f7465d450 +TEST= 119 +PT= 00000000000000000000000000000200 +CT= 5f5ad3c42b9489557bb63bf49ecf5f8a +TEST= 120 +PT= 00000000000000000000000000000100 +CT= fb56cc09b680b1d07c5a52149e29f07c +TEST= 121 +PT= 00000000000000000000000000000080 +CT= ff49b8df4a97cbe03833e66197620dad +TEST= 122 +PT= 00000000000000000000000000000040 +CT= 5e070ade533d2e090ed0f5be13bc0983 +TEST= 123 +PT= 00000000000000000000000000000020 +CT= 3ab4fb1d2b7ba376590a2c241d1f508d +TEST= 124 +PT= 00000000000000000000000000000010 +CT= 58b2431bc0bede02550f40238969ec78 +TEST= 125 +PT= 00000000000000000000000000000008 +CT= 0253786e126504f0dab90c48a30321de +TEST= 126 +PT= 00000000000000000000000000000004 +CT= 200211214e7394da2089b6acd093abe0 +TEST= 127 +PT= 00000000000000000000000000000002 +CT= 0388dace60b6a392f328c2b971b2fe78 +TEST= 128 +PT= 00000000000000000000000000000001 +CT= 58e2fccefa7e3061367f1d57a4e7455a diff --git a/test/crypto/aes/ecbvt48.txt b/test/crypto/aes/ecbvt48.txt new file mode 100644 index 0000000000..b3b358f238 --- /dev/null +++ b/test/crypto/aes/ecbvt48.txt @@ -0,0 +1,398 @@ +============================================== +Author: Dr B R Gladman ( ) +Test: ECB Variable Text Known Answer Tests +Algorithm: Extended Rijndael (an AES Superset) +Filename: ecbvt48.txt +============================================== + +BLOCKSIZE=128 +KEYSIZE= 256 + +KEY= 0000000000000000000000000000000000000000000000000000000000000000 +TEST= 0 +PT= 00000000000000000000000000000000 +CT= dc95c078a2408989ad48a21492842087 +TEST= 1 +PT= 80000000000000000000000000000000 +CT= ddc6bf790c15760d8d9aeb6f9a75fd4e +TEST= 2 +PT= 40000000000000000000000000000000 +CT= c7098c217c334d0c9bdf37ea13b0822c +TEST= 3 +PT= 20000000000000000000000000000000 +CT= 60f0fb0d4c56a8d4eefec5264204042d +TEST= 4 +PT= 10000000000000000000000000000000 +CT= 73376fbbf654d0686e0e84001477106b +TEST= 5 +PT= 08000000000000000000000000000000 +CT= 2f443b52ba5f0c6ea0602c7c4fd259b6 +TEST= 6 +PT= 04000000000000000000000000000000 +CT= 75d11b0e3a68c4223d88dbf017977dd7 +TEST= 7 +PT= 02000000000000000000000000000000 +CT= 779b38d15bffb63d8d609d551a5cc98e +TEST= 8 +PT= 01000000000000000000000000000000 +CT= 5275f3d86b4fb8684593133ebfa53cd3 +TEST= 9 +PT= 00800000000000000000000000000000 +CT= 1cef2074b336cec62f12dea2f6ab1481 +TEST= 10 +PT= 00400000000000000000000000000000 +CT= 1aef5abbad9d7160874578dcd8bae172 +TEST= 11 +PT= 00200000000000000000000000000000 +CT= 46c525db17e72f26bf03216846b6f609 +TEST= 12 +PT= 00100000000000000000000000000000 +CT= e24411f941bbe08788781e3ec52cbaa4 +TEST= 13 +PT= 00080000000000000000000000000000 +CT= 83a3dedd1dd27018f6a6477e40527581 +TEST= 14 +PT= 00040000000000000000000000000000 +CT= b68f8a2cdbab0c923c67fc8f0f1087de +TEST= 15 +PT= 00020000000000000000000000000000 +CT= 649944a70c32bf87a7409e7ae128fde8 +TEST= 16 +PT= 00010000000000000000000000000000 +CT= 2846526d67387539c89314de9e0c2d02 +TEST= 17 +PT= 00008000000000000000000000000000 +CT= a9a0b8402e53c70dd1688054ba58ddfd +TEST= 18 +PT= 00004000000000000000000000000000 +CT= 4a72e6e1b79c83ac4be3eba5699eed48 +TEST= 19 +PT= 00002000000000000000000000000000 +CT= b0e36b867ba4ff2b77d0614b0e364e4c +TEST= 20 +PT= 00001000000000000000000000000000 +CT= 49b57de141f6418e3090f24ddd4014b6 +TEST= 21 +PT= 00000800000000000000000000000000 +CT= a6c0d5b9797258e1987ac5f6cd20146d +TEST= 22 +PT= 00000400000000000000000000000000 +CT= 426cf4bdcaa369175965d26e7c71eea2 +TEST= 23 +PT= 00000200000000000000000000000000 +CT= e27f484ce54bc99bc1a52bda3b518a26 +TEST= 24 +PT= 00000100000000000000000000000000 +CT= d16d186284c7e6ee64b8104e0ef20ba5 +TEST= 25 +PT= 00000080000000000000000000000000 +CT= 6431f8538ad54e1e044a9f71f8ef556b +TEST= 26 +PT= 00000040000000000000000000000000 +CT= ecd57ceb451d27eb96c55b2042257e8e +TEST= 27 +PT= 00000020000000000000000000000000 +CT= 4f0f188dc911b1954afbc734c9f68872 +TEST= 28 +PT= 00000010000000000000000000000000 +CT= b54def0337626b65614e81edfde620f3 +TEST= 29 +PT= 00000008000000000000000000000000 +CT= 6655d8074cae0b90b0d3a3fe72d4d9db +TEST= 30 +PT= 00000004000000000000000000000000 +CT= c6b74b6b9eb4fc0c9a237db1b616d09a +TEST= 31 +PT= 00000002000000000000000000000000 +CT= d7b5d076ea56ec2b20791d7ad51ccf8f +TEST= 32 +PT= 00000001000000000000000000000000 +CT= fe160c224bf003ce3bddc90cb52ed22c +TEST= 33 +PT= 00000000800000000000000000000000 +CT= 5e00da9ba94b5ec0d258d8a8002e0f6a +TEST= 34 +PT= 00000000400000000000000000000000 +CT= 09ac6dcff4dacff1651e2ba212a292a3 +TEST= 35 +PT= 00000000200000000000000000000000 +CT= b283617e318d99af83a05d9810ba89f7 +TEST= 36 +PT= 00000000100000000000000000000000 +CT= 0b5f70ccb40b0ef2538ae9b4a9770b35 +TEST= 37 +PT= 00000000080000000000000000000000 +CT= 43282bf180248fb517839b37f4ddaae4 +TEST= 38 +PT= 00000000040000000000000000000000 +CT= ddbd534c8b2e6d30a268f88c55ad765b +TEST= 39 +PT= 00000000020000000000000000000000 +CT= a41a164e50ec2d9f175e752b755e0b5c +TEST= 40 +PT= 00000000010000000000000000000000 +CT= 37bff99ff2f7aa97779e4adf6f13fb10 +TEST= 41 +PT= 00000000008000000000000000000000 +CT= 9ba4f7bd298152903a683c4cec669216 +TEST= 42 +PT= 00000000004000000000000000000000 +CT= 5fb750c7ce10de7b4504248914d0da06 +TEST= 43 +PT= 00000000002000000000000000000000 +CT= 3e748bfa108e086f51d56ec74a9e0fb9 +TEST= 44 +PT= 00000000001000000000000000000000 +CT= 31d4e56b99f5b73c1b8437df332afb98 +TEST= 45 +PT= 00000000000800000000000000000000 +CT= 9dc6717b84fc55d266e7b1d9b5c52a5f +TEST= 46 +PT= 00000000000400000000000000000000 +CT= 8ef8ba007f23c0a50fc120e07041bccd +TEST= 47 +PT= 00000000000200000000000000000000 +CT= c58f38e1839fc1918a12b8c9e88c66b6 +TEST= 48 +PT= 00000000000100000000000000000000 +CT= b695d72a3fcf508c4050e12e40061c2d +TEST= 49 +PT= 00000000000080000000000000000000 +CT= 5d2736ad478a50583bc8c11beff16d7a +TEST= 50 +PT= 00000000000040000000000000000000 +CT= df0eaca8f17847ad41f9578f14c7b56b +TEST= 51 +PT= 00000000000020000000000000000000 +CT= e5aa14ad48ad0a3c47cc35d5f8020e51 +TEST= 52 +PT= 00000000000010000000000000000000 +CT= 11be6c8f58ebd8cef1a53f591a68e8ce +TEST= 53 +PT= 00000000000008000000000000000000 +CT= ecfe7bafcbf42c1fee015488770b3053 +TEST= 54 +PT= 00000000000004000000000000000000 +CT= e552649f8d8ec4a1e1cd6df50b6e6777 +TEST= 55 +PT= 00000000000002000000000000000000 +CT= 521c0629de93b9119cdb1ddc5809ddea +TEST= 56 +PT= 00000000000001000000000000000000 +CT= cb38a62a0bab1784156ba038cba99bf6 +TEST= 57 +PT= 00000000000000800000000000000000 +CT= 76ccee8aaacd394de1eef3dda10cb54b +TEST= 58 +PT= 00000000000000400000000000000000 +CT= 6aff910fa1d5673140e2db59b8416049 +TEST= 59 +PT= 00000000000000200000000000000000 +CT= 064a12c0ef73fb386801bf4f35f3120d +TEST= 60 +PT= 00000000000000100000000000000000 +CT= 2240e374929d5b1bb8ff0ffdddf640ec +TEST= 61 +PT= 00000000000000080000000000000000 +CT= d4ba15c904c7692185de85c02052e180 +TEST= 62 +PT= 00000000000000040000000000000000 +CT= 1714a315ab0166728a44cd91d4ae9018 +TEST= 63 +PT= 00000000000000020000000000000000 +CT= 6c970bdd9f0e222722ea31a1d12dd0ad +TEST= 64 +PT= 00000000000000010000000000000000 +CT= f5956edf02bd36a401bbb6ce77c3d3fb +TEST= 65 +PT= 00000000000000008000000000000000 +CT= 0ca11f122ccd7c259dc597eed3df9bc4 +TEST= 66 +PT= 00000000000000004000000000000000 +CT= 50109ab4912ad2560b206f331b62eb6c +TEST= 67 +PT= 00000000000000002000000000000000 +CT= dbe7c91a4175614889a2d4befd64845e +TEST= 68 +PT= 00000000000000001000000000000000 +CT= 0d3322853a571a6b46b79c0228e0dd25 +TEST= 69 +PT= 00000000000000000800000000000000 +CT= 96e4ee0bb9a11c6fb8522f285baddeb6 +TEST= 70 +PT= 00000000000000000400000000000000 +CT= 96705c52d2cfce82e630c93477c79c49 +TEST= 71 +PT= 00000000000000000200000000000000 +CT= c50130aed6a126149d71f3888c83c232 +TEST= 72 +PT= 00000000000000000100000000000000 +CT= 4816efe3deb380566eba0c17bf582090 +TEST= 73 +PT= 00000000000000000080000000000000 +CT= 0390857b4c8c98e4cf7a2b6f3394c507 +TEST= 74 +PT= 00000000000000000040000000000000 +CT= 422e73a02025ebe8b8b5d6e0fa24fcb2 +TEST= 75 +PT= 00000000000000000020000000000000 +CT= 3271aa7f4bf1d7c38050a43076d4ff76 +TEST= 76 +PT= 00000000000000000010000000000000 +CT= d2074946f0d37b8975607bfc2e70234c +TEST= 77 +PT= 00000000000000000008000000000000 +CT= 1a509194c1270ab92e5a42d3a9f8d98b +TEST= 78 +PT= 00000000000000000004000000000000 +CT= 512438946360ccc4a5c6d73f6eed7130 +TEST= 79 +PT= 00000000000000000002000000000000 +CT= 98cfcdec46ebea1a286b3004f2746a0d +TEST= 80 +PT= 00000000000000000001000000000000 +CT= a1cf369949677a3af3d58e3eabf2741b +TEST= 81 +PT= 00000000000000000000800000000000 +CT= d84c2e1a0e4a52166fa8ff6889d1e5e2 +TEST= 82 +PT= 00000000000000000000400000000000 +CT= 4ad91cceef60119b5078fd162d2735de +TEST= 83 +PT= 00000000000000000000200000000000 +CT= 2860793d818e97aaff1d339d7702438d +TEST= 84 +PT= 00000000000000000000100000000000 +CT= 6f9068be73364ae250d89d78a6c9ce6f +TEST= 85 +PT= 00000000000000000000080000000000 +CT= 024fc3fef4883feb1a8dd005305fecce +TEST= 86 +PT= 00000000000000000000040000000000 +CT= 08a61fe0816d75ea15eb3c9fb9ccded6 +TEST= 87 +PT= 00000000000000000000020000000000 +CT= 449c86dfa13f260175ce39797686ffa4 +TEST= 88 +PT= 00000000000000000000010000000000 +CT= 4ffffc29a59858e1133f2bfb1a8a4817 +TEST= 89 +PT= 00000000000000000000008000000000 +CT= 19425d1f6480b25096561295697dc2b7 +TEST= 90 +PT= 00000000000000000000004000000000 +CT= 31974727ecdd2c77c3a428fc3a8cb3fc +TEST= 91 +PT= 00000000000000000000002000000000 +CT= a57cd704b3c95e744d08df443458f2f5 +TEST= 92 +PT= 00000000000000000000001000000000 +CT= 486d8c193db1ed73acb17990442fc40b +TEST= 93 +PT= 00000000000000000000000800000000 +CT= 5e4dbf4e83ab3bc055b9fcc7a6b3a763 +TEST= 94 +PT= 00000000000000000000000400000000 +CT= acf2e0a693fbbcba4d41b861e0d89e37 +TEST= 95 +PT= 00000000000000000000000200000000 +CT= 32a7cb2ae066a51d2b78fc4b4cfcb608 +TEST= 96 +PT= 00000000000000000000000100000000 +CT= 677d494dbb73caf55c1990158da12f14 +TEST= 97 +PT= 00000000000000000000000080000000 +CT= 082a0d2367512adf0d75a151bfbe0a17 +TEST= 98 +PT= 00000000000000000000000040000000 +CT= 5e5bb7337923c482ce8cba249e6a8c7d +TEST= 99 +PT= 00000000000000000000000020000000 +CT= d3001ba7c7026ee3e5003179530afcfc +TEST= 100 +PT= 00000000000000000000000010000000 +CT= 46ec44f8931e629fe8fd8961312edde1 +TEST= 101 +PT= 00000000000000000000000008000000 +CT= c5f8ecd79c7b30e81d17e32079969310 +TEST= 102 +PT= 00000000000000000000000004000000 +CT= 5b8ad6919e24caebcc55401aee0c9802 +TEST= 103 +PT= 00000000000000000000000002000000 +CT= c2302b7e701b5cc7f8b29e3516dbbfa6 +TEST= 104 +PT= 00000000000000000000000001000000 +CT= a1d04d6a76f9f7a94d49faa64a87f244 +TEST= 105 +PT= 00000000000000000000000000800000 +CT= 7fb6f92d35b5cb6c631600edb9e860ba +TEST= 106 +PT= 00000000000000000000000000400000 +CT= b2ef7078bcface07aeec3f9b48830eb3 +TEST= 107 +PT= 00000000000000000000000000200000 +CT= f475a7493d24c7036e53390374c378b3 +TEST= 108 +PT= 00000000000000000000000000100000 +CT= b36802ac987377a37bd8eadc97c57d60 +TEST= 109 +PT= 00000000000000000000000000080000 +CT= addcd3d19689c4ddc738ce5f69dc9505 +TEST= 110 +PT= 00000000000000000000000000040000 +CT= 0daf8ca22884915403c0f0bb1f4bd74f +TEST= 111 +PT= 00000000000000000000000000020000 +CT= 4af36bae2660503b3248e4685059fd05 +TEST= 112 +PT= 00000000000000000000000000010000 +CT= 7d5631814dd8e917d97a0d514c743971 +TEST= 113 +PT= 00000000000000000000000000008000 +CT= bc3352500fc0cbb9db5b5f6b491c1be8 +TEST= 114 +PT= 00000000000000000000000000004000 +CT= 6a4a30ba87e87af65c90aeb7afedc76b +TEST= 115 +PT= 00000000000000000000000000002000 +CT= 77e6125897668ac8e73e8c79a6ff8336 +TEST= 116 +PT= 00000000000000000000000000001000 +CT= 3fa9d39104ebb323c7aaaa248960dd1e +TEST= 117 +PT= 00000000000000000000000000000800 +CT= fad75ad76ab10adc49036b250e229d39 +TEST= 118 +PT= 00000000000000000000000000000400 +CT= 2facaa5fe35b228a16ac74088d702ec4 +TEST= 119 +PT= 00000000000000000000000000000200 +CT= 88b6cbcfdfef8ad91720a1bb69a1f33e +TEST= 120 +PT= 00000000000000000000000000000100 +CT= c7e9d250998632d444356242ef04058d +TEST= 121 +PT= 00000000000000000000000000000080 +CT= b14dad8d3d9153f46c0d3a1ad63c7a05 +TEST= 122 +PT= 00000000000000000000000000000040 +CT= 60aba678a506608d0845966d29b5f790 +TEST= 123 +PT= 00000000000000000000000000000020 +CT= 482dc43f2388ef25d24144e144bd834e +TEST= 124 +PT= 00000000000000000000000000000010 +CT= 1490a05a7cee43bde98b56e309dc0126 +TEST= 125 +PT= 00000000000000000000000000000008 +CT= abfa77cd6e85da245fb0bdc5e52cfc29 +TEST= 126 +PT= 00000000000000000000000000000004 +CT= dd4ab1284d4ae17b41e85924470c36f7 +TEST= 127 +PT= 00000000000000000000000000000002 +CT= cea7403d4d606b6e074ec5d3baf39d18 +TEST= 128 +PT= 00000000000000000000000000000001 +CT= 530f8afbc74536b9a963b4f1c4cb738b diff --git a/test/crypto/aesctr/Makefile b/test/crypto/aesctr/Makefile new file mode 100644 index 0000000000..980dcb3082 --- /dev/null +++ b/test/crypto/aesctr/Makefile @@ -0,0 +1,4 @@ +PROG= aesctr +NOMAN= + +.include diff --git a/test/crypto/aesctr/aesctr.c b/test/crypto/aesctr/aesctr.c new file mode 100644 index 0000000000..a7c59b4e71 --- /dev/null +++ b/test/crypto/aesctr/aesctr.c @@ -0,0 +1,295 @@ +/* $OpenBSD: markus $ */ + +/* + * Copyright (c) 2005 Markus Friedl + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int debug = 0; + +enum { TST_KEY, TST_IV, TST_PLAIN, TST_CIPHER, TST_NUM }; + +/* Test vectors from RFC 3686 */ +struct { + char *data[TST_NUM]; +} tests[] = { + /* 128 bit key */ + { + "AE 68 52 F8 12 10 67 CC 4B F7 A5 76 55 77 F3 9E " + "00 00 00 30", + "00 00 00 00 00 00 00 00", + "53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67", + "E4 09 5D 4F B7 A7 B3 79 2D 61 75 A3 26 13 11 B8" + }, + { + "7E 24 06 78 17 FA E0 D7 43 D6 CE 1F 32 53 91 63 " + "00 6C B6 DB", + "C0 54 3B 59 DA 48 D9 0B", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F", + "51 04 A1 06 16 8A 72 D9 79 0D 41 EE 8E DA D3 88 " + "EB 2E 1E FC 46 DA 57 C8 FC E6 30 DF 91 41 BE 28" + }, + { + "76 91 BE 03 5E 50 20 A8 AC 6E 61 85 29 F9 A0 DC " + "00 E0 01 7B", + "27 77 7F 3F 4A 17 86 F0", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F" + /*"20 21 22 23"*/, + "C1 CF 48 A8 9F 2F FD D9 CF 46 52 E9 EF DB 72 D7 " + "45 40 A4 2B DE 6D 78 36 D5 9A 5C EA AE F3 10 53" + /*"25 B2 07 2F"*/ + }, + /* 192 bit key */ + { + "16 AF 5B 14 5F C9 F5 79 C1 75 F9 3E 3B FB 0E ED " + "86 3D 06 CC FD B7 85 15 " + "00 00 00 48", + "36 73 3C 14 7D 6D 93 CB", + "53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67", + "4B 55 38 4F E2 59 C9 C8 4E 79 35 A0 03 CB E9 28", + }, + { + "7C 5C B2 40 1B 3D C3 3C 19 E7 34 08 19 E0 F6 9C " + "67 8C 3D B8 E6 F6 A9 1A " + "00 96 B0 3B", + "02 0C 6E AD C2 CB 50 0D", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F", + "45 32 43 FC 60 9B 23 32 7E DF AA FA 71 31 CD 9F " + "84 90 70 1C 5A D4 A7 9C FC 1F E0 FF 42 F4 FB 00", + }, + { + "02 BF 39 1E E8 EC B1 59 B9 59 61 7B 09 65 27 9B " + "F5 9B 60 A7 86 D3 E0 FE " + "00 07 BD FD", + "5C BD 60 27 8D CC 09 12", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F" + /*"20 21 22 23"*/, + "96 89 3F C5 5E 5C 72 2F 54 0B 7D D1 DD F7 E7 58 " + "D2 88 BC 95 C6 91 65 88 45 36 C8 11 66 2F 21 88" + /*"AB EE 09 35"*/, + }, + /* 256 bit key */ + { + "77 6B EF F2 85 1D B0 6F 4C 8A 05 42 C8 69 6F 6C " + "6A 81 AF 1E EC 96 B4 D3 7F C1 D6 89 E6 C1 C1 04 " + "00 00 00 60", + "DB 56 72 C9 7A A8 F0 B2", + "53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67", + "14 5A D0 1D BF 82 4E C7 56 08 63 DC 71 E3 E0 C0" + }, + { + "F6 D6 6D 6B D5 2D 59 BB 07 96 36 58 79 EF F8 86 " + "C6 6D D5 1A 5B 6A 99 74 4B 50 59 0C 87 A2 38 84 " + "00 FA AC 24", + "C1 58 5E F1 5A 43 D8 75", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F", + "F0 5E 23 1B 38 94 61 2C 49 EE 00 0B 80 4E B2 A9 " + "B8 30 6B 50 8F 83 9D 6A 55 30 83 1D 93 44 AF 1C", + }, + { + "FF 7A 61 7C E6 91 48 E4 F1 72 6E 2F 43 58 1D E2 " + "AA 62 D9 F8 05 53 2E DF F1 EE D6 87 FB 54 15 3D " + "00 1C C5 B7", + "51 A5 1D 70 A1 C1 11 48", + "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F " + "10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F" + /*"20 21 22 23"*/, + "EB 6C 52 82 1D 0B BB F7 CE 75 94 46 2A CA 4F AA " + "B4 07 DF 86 65 69 FD 07 F4 8C C0 B5 83 D6 07 1F" + /*"1E C0 E6 B8"*/, + }, +}; + +static int +syscrypt(const unsigned char *key, size_t klen, const unsigned char *iv, + const unsigned char *in, unsigned char *out, size_t len, int encrypt) +{ + struct session_op session; + struct crypt_op cryp; + int cryptodev_fd = -1, fd = -1; + + if ((cryptodev_fd = open("/dev/crypto", O_RDWR, 0)) < 0) { + warn("/dev/crypto"); + goto err; + } + if (ioctl(cryptodev_fd, CRIOGET, &fd) == -1) { + warn("CRIOGET failed"); + goto err; + } + memset(&session, 0, sizeof(session)); + session.cipher = CRYPTO_AES_CTR; + session.key = (caddr_t) key; + session.keylen = klen; + if (ioctl(fd, CIOCGSESSION, &session) == -1) { + warn("CIOCGSESSION"); + goto err; + } + memset(&cryp, 0, sizeof(cryp)); + cryp.ses = session.ses; + cryp.op = encrypt ? COP_ENCRYPT : COP_DECRYPT; + cryp.flags = 0; + cryp.len = len; + cryp.src = (caddr_t) in; + cryp.dst = (caddr_t) out; + cryp.iv = (caddr_t) iv; + cryp.mac = 0; + if (ioctl(fd, CIOCCRYPT, &cryp) == -1) { + warn("CIOCCRYPT"); + goto err; + } + if (ioctl(fd, CIOCFSESSION, &session.ses) == -1) { + warn("CIOCFSESSION"); + goto err; + } + close(fd); + close(cryptodev_fd); + return (0); + +err: + if (fd != -1) + close(fd); + if (cryptodev_fd != -1) + close(cryptodev_fd); + return (-1); +} + +static int +getallowsoft(void) +{ + int mib[2], old; + size_t olen; + + olen = sizeof(old); + + if (sysctlbyname("kern.cryptodevallowsoft", &old, &olen, NULL, 0) < 0) + err(1, "sysctl failed"); + + return old; +} + +static void +setallowsoft(int new) +{ + int mib[2], old; + size_t olen, nlen; + + olen = nlen = sizeof(new); + + if (sysctlbyname("kern.cryptodevallowsoft", &old, &olen, &new, nlen) < 0) + err(1, "sysctl failed"); +} + +static int +match(unsigned char *a, unsigned char *b, size_t len) +{ + int i; + + if (memcmp(a, b, len) == 0) + return (1); + + warnx("ciphertext mismatch"); + + for (i = 0; i < len; i++) + printf("%2.2x", a[i]); + printf("\n"); + for (i = 0; i < len; i++) + printf("%2.2x", b[i]); + printf("\n"); + + return (0); +} + +static int +run(int num) +{ + int i, fail = 1, len, j, length[TST_NUM]; + u_long val; + char *ep, *from; + u_char *p, *data[TST_NUM]; + + for (i = 0; i < TST_NUM; i++) + data[i] = NULL; + for (i = 0; i < TST_NUM; i++) { + from = tests[num].data[i]; + if (debug) + printf("%s\n", from); + len = strlen(from); + if ((p = malloc(len)) == 0) { + warn("malloc"); + goto done; + } + errno = 0; + for (j = 0; j < len; j++) { + val = strtoul(&from[j*3], &ep, 16); + p[j] = (u_char)val; + if (*ep == '\0' || errno) + break; + } + length[i] = j+1; + data[i] = p; + } + len = length[TST_PLAIN]; + if ((p = malloc(len)) == 0) { + warn("malloc"); + return (1); + } + if (syscrypt(data[TST_KEY], length[TST_KEY], + data[TST_IV], data[TST_PLAIN], p, + length[TST_PLAIN], 0) < 0) { + warnx("crypt with /dev/crypto failed"); + goto done; + } + fail = !match(data[TST_CIPHER], p, len); + printf("%s test vector %d\n", fail ? "FAILED" : "OK", num); +done: + for (i = 0; i < TST_NUM; i++) + free(data[i]); + return (fail); +} + +int +main(int argc, char **argv) +{ + int allowed = 0, fail = 0, i; + + if (geteuid() == 0) { + allowed = getallowsoft(); + if (allowed == 0) + setallowsoft(1); + } + for (i = 0; i < (sizeof(tests) / sizeof(tests[0])); i++) + fail += run(i); + if (geteuid() == 0 && allowed == 0) + setallowsoft(0); + exit((fail > 0) ? 1 : 0); +} diff --git a/test/crypto/aesxts/Makefile b/test/crypto/aesxts/Makefile new file mode 100644 index 0000000000..391ede261f --- /dev/null +++ b/test/crypto/aesxts/Makefile @@ -0,0 +1,4 @@ +PROG= aes_xts +NOMAN= + +.include diff --git a/test/crypto/aesxts/aes_xts.c b/test/crypto/aesxts/aes_xts.c new file mode 100644 index 0000000000..112cc3016e --- /dev/null +++ b/test/crypto/aesxts/aes_xts.c @@ -0,0 +1,1848 @@ +/* $OpenBSD: djm $ */ + +/* + * Copyright (c) 2002 Markus Friedl. All rights reserved. + * Copyright (c) 2008 Damien Miller. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int +syscrypt(const unsigned char *key, size_t klen, u_int64_t unit_number, + const unsigned char *in, unsigned char *out, size_t len, int do_encrypt) +{ + struct session_op session; + struct crypt_op cryp; + int cryptodev_fd = -1, fd = -1; + + if ((cryptodev_fd = open("/dev/crypto", O_RDWR, 0)) < 0) { + warn("/dev/crypto"); + goto err; + } + if (ioctl(cryptodev_fd, CRIOGET, &fd) == -1) { + warn("CRIOGET failed"); + goto err; + } + memset(&session, 0, sizeof(session)); + session.cipher = CRYPTO_AES_XTS; + session.key = (caddr_t) key; + session.keylen = klen; + if (ioctl(fd, CIOCGSESSION, &session) == -1) { + warn("CIOCGSESSION"); + goto err; + } + memset(&cryp, 0, sizeof(cryp)); + cryp.ses = session.ses; + cryp.op = do_encrypt ? COP_ENCRYPT : COP_DECRYPT; + cryp.flags = 0; + cryp.len = len; + cryp.src = (caddr_t) in; + cryp.dst = (caddr_t) out; + cryp.iv = (caddr_t) &unit_number; + cryp.mac = 0; + if (ioctl(fd, CIOCCRYPT, &cryp) == -1) { + warn("CIOCCRYPT"); + goto err; + } + if (ioctl(fd, CIOCFSESSION, &session.ses) == -1) { + warn("CIOCFSESSION"); + goto err; + } + close(fd); + close(cryptodev_fd); + return (0); + +err: + if (fd != -1) + close(fd); + if (cryptodev_fd != -1) + close(cryptodev_fd); + return (-1); +} + +static int +getallowsoft(void) +{ + int mib[2], old; + size_t olen; + + olen = sizeof(old); + + if (sysctlbyname("kern.cryptodevallowsoft", &old, &olen, NULL, 0) < 0) + err(1, "sysctl failed"); + + return old; +} + +static void +setallowsoft(int new) +{ + int mib[2], old; + size_t olen, nlen; + + olen = nlen = sizeof(new); + + if (sysctlbyname("kern.cryptodevallowsoft", &old, &olen, &new, nlen) < 0) + err(1, "sysctl failed"); +} + +static int +match(unsigned char *a, unsigned char *b, size_t len) +{ + size_t i; + + if (memcmp(a, b, len) == 0) + return (1); + + warnx("decrypt/plaintext mismatch"); + + for (i = 0; i < len; i++) + printf("%2.2x", a[i]); + printf("\n"); + for (i = 0; i < len; i++) + printf("%2.2x", b[i]); + printf("\n"); + + return (0); +} + +struct aes_xts_tv { + u_int64_t seqno; + u_int key_len; + u_int8_t key[64]; + u_int text_len; + u_int8_t plaintext[512]; + u_int8_t ciphertext[512]; +}; + +struct aes_xts_tv aes_xts_test_vectors[] = { + { + 0x00000000ULL, + 32, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + 32, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, { + 0x91, 0x7c, 0xf6, 0x9e, 0xbd, 0x68, 0xb2, 0xec, + 0x9b, 0x9f, 0xe9, 0xa3, 0xea, 0xdd, 0xa6, 0x92, + 0xcd, 0x43, 0xd2, 0xf5, 0x95, 0x98, 0xed, 0x85, + 0x8c, 0x02, 0xc2, 0x65, 0x2f, 0xbf, 0x92, 0x2e, + }, + }, + { + 0x3333333333ULL, + 32, + { + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + }, + 32, + { + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + }, { + 0xc4, 0x54, 0x18, 0x5e, 0x6a, 0x16, 0x93, 0x6e, + 0x39, 0x33, 0x40, 0x38, 0xac, 0xef, 0x83, 0x8b, + 0xfb, 0x18, 0x6f, 0xff, 0x74, 0x80, 0xad, 0xc4, + 0x28, 0x93, 0x82, 0xec, 0xd6, 0xd3, 0x94, 0xf0, + }, + }, + { + 0x3333333333ULL, + 32, + { + 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, + 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + }, + 32, + { + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + }, { + 0xaf, 0x85, 0x33, 0x6b, 0x59, 0x7a, 0xfc, 0x1a, + 0x90, 0x0b, 0x2e, 0xb2, 0x1e, 0xc9, 0x49, 0xd2, + 0x92, 0xdf, 0x4c, 0x04, 0x7e, 0x0b, 0x21, 0x53, + 0x21, 0x86, 0xa5, 0x97, 0x1a, 0x22, 0x7a, 0x89, + }, + }, + { + 0x00000000ULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76, + 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2, + 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25, + 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c, + 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f, + 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00, + 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad, + 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12, + 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5, + 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5, + 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc, + 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce, + 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4, + 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84, + 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a, + 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65, + 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89, + 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51, + 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15, + 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8, + 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed, + 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91, + 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e, + 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34, + 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b, + 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5, + 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4, + 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c, + 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd, + 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3, + 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f, + 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e, + 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91, + 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19, + 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1, + 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc, + 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed, + 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde, + 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98, + 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3, + 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca, + 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6, + 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc, + 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44, + 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0, + 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95, + 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4, + 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd, + 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13, + 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7, + 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a, + 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52, + 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a, + 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38, + 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e, + 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e, + 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad, + 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8, + 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c, + 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d, + 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f, + 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2, + 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea, + 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68, + }, + }, + { + 0x00000001ULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x27, 0xa7, 0x47, 0x9b, 0xef, 0xa1, 0xd4, 0x76, + 0x48, 0x9f, 0x30, 0x8c, 0xd4, 0xcf, 0xa6, 0xe2, + 0xa9, 0x6e, 0x4b, 0xbe, 0x32, 0x08, 0xff, 0x25, + 0x28, 0x7d, 0xd3, 0x81, 0x96, 0x16, 0xe8, 0x9c, + 0xc7, 0x8c, 0xf7, 0xf5, 0xe5, 0x43, 0x44, 0x5f, + 0x83, 0x33, 0xd8, 0xfa, 0x7f, 0x56, 0x00, 0x00, + 0x05, 0x27, 0x9f, 0xa5, 0xd8, 0xb5, 0xe4, 0xad, + 0x40, 0xe7, 0x36, 0xdd, 0xb4, 0xd3, 0x54, 0x12, + 0x32, 0x80, 0x63, 0xfd, 0x2a, 0xab, 0x53, 0xe5, + 0xea, 0x1e, 0x0a, 0x9f, 0x33, 0x25, 0x00, 0xa5, + 0xdf, 0x94, 0x87, 0xd0, 0x7a, 0x5c, 0x92, 0xcc, + 0x51, 0x2c, 0x88, 0x66, 0xc7, 0xe8, 0x60, 0xce, + 0x93, 0xfd, 0xf1, 0x66, 0xa2, 0x49, 0x12, 0xb4, + 0x22, 0x97, 0x61, 0x46, 0xae, 0x20, 0xce, 0x84, + 0x6b, 0xb7, 0xdc, 0x9b, 0xa9, 0x4a, 0x76, 0x7a, + 0xae, 0xf2, 0x0c, 0x0d, 0x61, 0xad, 0x02, 0x65, + 0x5e, 0xa9, 0x2d, 0xc4, 0xc4, 0xe4, 0x1a, 0x89, + 0x52, 0xc6, 0x51, 0xd3, 0x31, 0x74, 0xbe, 0x51, + 0xa1, 0x0c, 0x42, 0x11, 0x10, 0xe6, 0xd8, 0x15, + 0x88, 0xed, 0xe8, 0x21, 0x03, 0xa2, 0x52, 0xd8, + 0xa7, 0x50, 0xe8, 0x76, 0x8d, 0xef, 0xff, 0xed, + 0x91, 0x22, 0x81, 0x0a, 0xae, 0xb9, 0x9f, 0x91, + 0x72, 0xaf, 0x82, 0xb6, 0x04, 0xdc, 0x4b, 0x8e, + 0x51, 0xbc, 0xb0, 0x82, 0x35, 0xa6, 0xf4, 0x34, + 0x13, 0x32, 0xe4, 0xca, 0x60, 0x48, 0x2a, 0x4b, + 0xa1, 0xa0, 0x3b, 0x3e, 0x65, 0x00, 0x8f, 0xc5, + 0xda, 0x76, 0xb7, 0x0b, 0xf1, 0x69, 0x0d, 0xb4, + 0xea, 0xe2, 0x9c, 0x5f, 0x1b, 0xad, 0xd0, 0x3c, + 0x5c, 0xcf, 0x2a, 0x55, 0xd7, 0x05, 0xdd, 0xcd, + 0x86, 0xd4, 0x49, 0x51, 0x1c, 0xeb, 0x7e, 0xc3, + 0x0b, 0xf1, 0x2b, 0x1f, 0xa3, 0x5b, 0x91, 0x3f, + 0x9f, 0x74, 0x7a, 0x8a, 0xfd, 0x1b, 0x13, 0x0e, + 0x94, 0xbf, 0xf9, 0x4e, 0xff, 0xd0, 0x1a, 0x91, + 0x73, 0x5c, 0xa1, 0x72, 0x6a, 0xcd, 0x0b, 0x19, + 0x7c, 0x4e, 0x5b, 0x03, 0x39, 0x36, 0x97, 0xe1, + 0x26, 0x82, 0x6f, 0xb6, 0xbb, 0xde, 0x8e, 0xcc, + 0x1e, 0x08, 0x29, 0x85, 0x16, 0xe2, 0xc9, 0xed, + 0x03, 0xff, 0x3c, 0x1b, 0x78, 0x60, 0xf6, 0xde, + 0x76, 0xd4, 0xce, 0xcd, 0x94, 0xc8, 0x11, 0x98, + 0x55, 0xef, 0x52, 0x97, 0xca, 0x67, 0xe9, 0xf3, + 0xe7, 0xff, 0x72, 0xb1, 0xe9, 0x97, 0x85, 0xca, + 0x0a, 0x7e, 0x77, 0x20, 0xc5, 0xb3, 0x6d, 0xc6, + 0xd7, 0x2c, 0xac, 0x95, 0x74, 0xc8, 0xcb, 0xbc, + 0x2f, 0x80, 0x1e, 0x23, 0xe5, 0x6f, 0xd3, 0x44, + 0xb0, 0x7f, 0x22, 0x15, 0x4b, 0xeb, 0xa0, 0xf0, + 0x8c, 0xe8, 0x89, 0x1e, 0x64, 0x3e, 0xd9, 0x95, + 0xc9, 0x4d, 0x9a, 0x69, 0xc9, 0xf1, 0xb5, 0xf4, + 0x99, 0x02, 0x7a, 0x78, 0x57, 0x2a, 0xee, 0xbd, + 0x74, 0xd2, 0x0c, 0xc3, 0x98, 0x81, 0xc2, 0x13, + 0xee, 0x77, 0x0b, 0x10, 0x10, 0xe4, 0xbe, 0xa7, + 0x18, 0x84, 0x69, 0x77, 0xae, 0x11, 0x9f, 0x7a, + 0x02, 0x3a, 0xb5, 0x8c, 0xca, 0x0a, 0xd7, 0x52, + 0xaf, 0xe6, 0x56, 0xbb, 0x3c, 0x17, 0x25, 0x6a, + 0x9f, 0x6e, 0x9b, 0xf1, 0x9f, 0xdd, 0x5a, 0x38, + 0xfc, 0x82, 0xbb, 0xe8, 0x72, 0xc5, 0x53, 0x9e, + 0xdb, 0x60, 0x9e, 0xf4, 0xf7, 0x9c, 0x20, 0x3e, + 0xbb, 0x14, 0x0f, 0x2e, 0x58, 0x3c, 0xb2, 0xad, + 0x15, 0xb4, 0xaa, 0x5b, 0x65, 0x50, 0x16, 0xa8, + 0x44, 0x92, 0x77, 0xdb, 0xd4, 0x77, 0xef, 0x2c, + 0x8d, 0x6c, 0x01, 0x7d, 0xb7, 0x38, 0xb1, 0x8d, + 0xeb, 0x4a, 0x42, 0x7d, 0x19, 0x23, 0xce, 0x3f, + 0xf2, 0x62, 0x73, 0x57, 0x79, 0xa4, 0x18, 0xf2, + 0x0a, 0x28, 0x2d, 0xf9, 0x20, 0x14, 0x7b, 0xea, + 0xbe, 0x42, 0x1e, 0xe5, 0x31, 0x9d, 0x05, 0x68, + }, { + 0x26, 0x4d, 0x3c, 0xa8, 0x51, 0x21, 0x94, 0xfe, + 0xc3, 0x12, 0xc8, 0xc9, 0x89, 0x1f, 0x27, 0x9f, + 0xef, 0xdd, 0x60, 0x8d, 0x0c, 0x02, 0x7b, 0x60, + 0x48, 0x3a, 0x3f, 0xa8, 0x11, 0xd6, 0x5e, 0xe5, + 0x9d, 0x52, 0xd9, 0xe4, 0x0e, 0xc5, 0x67, 0x2d, + 0x81, 0x53, 0x2b, 0x38, 0xb6, 0xb0, 0x89, 0xce, + 0x95, 0x1f, 0x0f, 0x9c, 0x35, 0x59, 0x0b, 0x8b, + 0x97, 0x8d, 0x17, 0x52, 0x13, 0xf3, 0x29, 0xbb, + 0x1c, 0x2f, 0xd3, 0x0f, 0x2f, 0x7f, 0x30, 0x49, + 0x2a, 0x61, 0xa5, 0x32, 0xa7, 0x9f, 0x51, 0xd3, + 0x6f, 0x5e, 0x31, 0xa7, 0xc9, 0xa1, 0x2c, 0x28, + 0x60, 0x82, 0xff, 0x7d, 0x23, 0x94, 0xd1, 0x8f, + 0x78, 0x3e, 0x1a, 0x8e, 0x72, 0xc7, 0x22, 0xca, + 0xaa, 0xa5, 0x2d, 0x8f, 0x06, 0x56, 0x57, 0xd2, + 0x63, 0x1f, 0xd2, 0x5b, 0xfd, 0x8e, 0x5b, 0xaa, + 0xd6, 0xe5, 0x27, 0xd7, 0x63, 0x51, 0x75, 0x01, + 0xc6, 0x8c, 0x5e, 0xdc, 0x3c, 0xdd, 0x55, 0x43, + 0x5c, 0x53, 0x2d, 0x71, 0x25, 0xc8, 0x61, 0x4d, + 0xee, 0xd9, 0xad, 0xaa, 0x3a, 0xca, 0xde, 0x58, + 0x88, 0xb8, 0x7b, 0xef, 0x64, 0x1c, 0x4c, 0x99, + 0x4c, 0x80, 0x91, 0xb5, 0xbc, 0xd3, 0x87, 0xf3, + 0x96, 0x3f, 0xb5, 0xbc, 0x37, 0xaa, 0x92, 0x2f, + 0xbf, 0xe3, 0xdf, 0x4e, 0x5b, 0x91, 0x5e, 0x6e, + 0xb5, 0x14, 0x71, 0x7b, 0xdd, 0x2a, 0x74, 0x07, + 0x9a, 0x50, 0x73, 0xf5, 0xc4, 0xbf, 0xd4, 0x6a, + 0xdf, 0x7d, 0x28, 0x2e, 0x7a, 0x39, 0x3a, 0x52, + 0x57, 0x9d, 0x11, 0xa0, 0x28, 0xda, 0x4d, 0x9c, + 0xd9, 0xc7, 0x71, 0x24, 0xf9, 0x64, 0x8e, 0xe3, + 0x83, 0xb1, 0xac, 0x76, 0x39, 0x30, 0xe7, 0x16, + 0x2a, 0x8d, 0x37, 0xf3, 0x50, 0xb2, 0xf7, 0x4b, + 0x84, 0x72, 0xcf, 0x09, 0x90, 0x20, 0x63, 0xc6, + 0xb3, 0x2e, 0x8c, 0x2d, 0x92, 0x90, 0xce, 0xfb, + 0xd7, 0x34, 0x6d, 0x1c, 0x77, 0x9a, 0x0d, 0xf5, + 0x0e, 0xdc, 0xde, 0x45, 0x31, 0xda, 0x07, 0xb0, + 0x99, 0xc6, 0x38, 0xe8, 0x3a, 0x75, 0x59, 0x44, + 0xdf, 0x2a, 0xef, 0x1a, 0xa3, 0x17, 0x52, 0xfd, + 0x32, 0x3d, 0xcb, 0x71, 0x0f, 0xb4, 0xbf, 0xbb, + 0x9d, 0x22, 0xb9, 0x25, 0xbc, 0x35, 0x77, 0xe1, + 0xb8, 0x94, 0x9e, 0x72, 0x9a, 0x90, 0xbb, 0xaf, + 0xea, 0xcf, 0x7f, 0x78, 0x79, 0xe7, 0xb1, 0x14, + 0x7e, 0x28, 0xba, 0x0b, 0xae, 0x94, 0x0d, 0xb7, + 0x95, 0xa6, 0x1b, 0x15, 0xec, 0xf4, 0xdf, 0x8d, + 0xb0, 0x7b, 0x82, 0x4b, 0xb0, 0x62, 0x80, 0x2c, + 0xc9, 0x8a, 0x95, 0x45, 0xbb, 0x2a, 0xae, 0xed, + 0x77, 0xcb, 0x3f, 0xc6, 0xdb, 0x15, 0xdc, 0xd7, + 0xd8, 0x0d, 0x7d, 0x5b, 0xc4, 0x06, 0xc4, 0x97, + 0x0a, 0x34, 0x78, 0xad, 0xa8, 0x89, 0x9b, 0x32, + 0x91, 0x98, 0xeb, 0x61, 0xc1, 0x93, 0xfb, 0x62, + 0x75, 0xaa, 0x8c, 0xa3, 0x40, 0x34, 0x4a, 0x75, + 0xa8, 0x62, 0xae, 0xbe, 0x92, 0xee, 0xe1, 0xce, + 0x03, 0x2f, 0xd9, 0x50, 0xb4, 0x7d, 0x77, 0x04, + 0xa3, 0x87, 0x69, 0x23, 0xb4, 0xad, 0x62, 0x84, + 0x4b, 0xf4, 0xa0, 0x9c, 0x4d, 0xbe, 0x8b, 0x43, + 0x97, 0x18, 0x4b, 0x74, 0x71, 0x36, 0x0c, 0x95, + 0x64, 0x88, 0x0a, 0xed, 0xdd, 0xb9, 0xba, 0xa4, + 0xaf, 0x2e, 0x75, 0x39, 0x4b, 0x08, 0xcd, 0x32, + 0xff, 0x47, 0x9c, 0x57, 0xa0, 0x7d, 0x3e, 0xab, + 0x5d, 0x54, 0xde, 0x5f, 0x97, 0x38, 0xb8, 0xd2, + 0x7f, 0x27, 0xa9, 0xf0, 0xab, 0x11, 0x79, 0x9d, + 0x7b, 0x7f, 0xfe, 0xfb, 0x27, 0x04, 0xc9, 0x5c, + 0x6a, 0xd1, 0x2c, 0x39, 0xf1, 0xe8, 0x67, 0xa4, + 0xb7, 0xb1, 0xd7, 0x81, 0x8a, 0x4b, 0x75, 0x3d, + 0xfd, 0x2a, 0x89, 0xcc, 0xb4, 0x5e, 0x00, 0x1a, + 0x03, 0xa8, 0x67, 0xb1, 0x87, 0xf2, 0x25, 0xdd, + }, + }, + { + 0x00000002ULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x26, 0x4d, 0x3c, 0xa8, 0x51, 0x21, 0x94, 0xfe, + 0xc3, 0x12, 0xc8, 0xc9, 0x89, 0x1f, 0x27, 0x9f, + 0xef, 0xdd, 0x60, 0x8d, 0x0c, 0x02, 0x7b, 0x60, + 0x48, 0x3a, 0x3f, 0xa8, 0x11, 0xd6, 0x5e, 0xe5, + 0x9d, 0x52, 0xd9, 0xe4, 0x0e, 0xc5, 0x67, 0x2d, + 0x81, 0x53, 0x2b, 0x38, 0xb6, 0xb0, 0x89, 0xce, + 0x95, 0x1f, 0x0f, 0x9c, 0x35, 0x59, 0x0b, 0x8b, + 0x97, 0x8d, 0x17, 0x52, 0x13, 0xf3, 0x29, 0xbb, + 0x1c, 0x2f, 0xd3, 0x0f, 0x2f, 0x7f, 0x30, 0x49, + 0x2a, 0x61, 0xa5, 0x32, 0xa7, 0x9f, 0x51, 0xd3, + 0x6f, 0x5e, 0x31, 0xa7, 0xc9, 0xa1, 0x2c, 0x28, + 0x60, 0x82, 0xff, 0x7d, 0x23, 0x94, 0xd1, 0x8f, + 0x78, 0x3e, 0x1a, 0x8e, 0x72, 0xc7, 0x22, 0xca, + 0xaa, 0xa5, 0x2d, 0x8f, 0x06, 0x56, 0x57, 0xd2, + 0x63, 0x1f, 0xd2, 0x5b, 0xfd, 0x8e, 0x5b, 0xaa, + 0xd6, 0xe5, 0x27, 0xd7, 0x63, 0x51, 0x75, 0x01, + 0xc6, 0x8c, 0x5e, 0xdc, 0x3c, 0xdd, 0x55, 0x43, + 0x5c, 0x53, 0x2d, 0x71, 0x25, 0xc8, 0x61, 0x4d, + 0xee, 0xd9, 0xad, 0xaa, 0x3a, 0xca, 0xde, 0x58, + 0x88, 0xb8, 0x7b, 0xef, 0x64, 0x1c, 0x4c, 0x99, + 0x4c, 0x80, 0x91, 0xb5, 0xbc, 0xd3, 0x87, 0xf3, + 0x96, 0x3f, 0xb5, 0xbc, 0x37, 0xaa, 0x92, 0x2f, + 0xbf, 0xe3, 0xdf, 0x4e, 0x5b, 0x91, 0x5e, 0x6e, + 0xb5, 0x14, 0x71, 0x7b, 0xdd, 0x2a, 0x74, 0x07, + 0x9a, 0x50, 0x73, 0xf5, 0xc4, 0xbf, 0xd4, 0x6a, + 0xdf, 0x7d, 0x28, 0x2e, 0x7a, 0x39, 0x3a, 0x52, + 0x57, 0x9d, 0x11, 0xa0, 0x28, 0xda, 0x4d, 0x9c, + 0xd9, 0xc7, 0x71, 0x24, 0xf9, 0x64, 0x8e, 0xe3, + 0x83, 0xb1, 0xac, 0x76, 0x39, 0x30, 0xe7, 0x16, + 0x2a, 0x8d, 0x37, 0xf3, 0x50, 0xb2, 0xf7, 0x4b, + 0x84, 0x72, 0xcf, 0x09, 0x90, 0x20, 0x63, 0xc6, + 0xb3, 0x2e, 0x8c, 0x2d, 0x92, 0x90, 0xce, 0xfb, + 0xd7, 0x34, 0x6d, 0x1c, 0x77, 0x9a, 0x0d, 0xf5, + 0x0e, 0xdc, 0xde, 0x45, 0x31, 0xda, 0x07, 0xb0, + 0x99, 0xc6, 0x38, 0xe8, 0x3a, 0x75, 0x59, 0x44, + 0xdf, 0x2a, 0xef, 0x1a, 0xa3, 0x17, 0x52, 0xfd, + 0x32, 0x3d, 0xcb, 0x71, 0x0f, 0xb4, 0xbf, 0xbb, + 0x9d, 0x22, 0xb9, 0x25, 0xbc, 0x35, 0x77, 0xe1, + 0xb8, 0x94, 0x9e, 0x72, 0x9a, 0x90, 0xbb, 0xaf, + 0xea, 0xcf, 0x7f, 0x78, 0x79, 0xe7, 0xb1, 0x14, + 0x7e, 0x28, 0xba, 0x0b, 0xae, 0x94, 0x0d, 0xb7, + 0x95, 0xa6, 0x1b, 0x15, 0xec, 0xf4, 0xdf, 0x8d, + 0xb0, 0x7b, 0x82, 0x4b, 0xb0, 0x62, 0x80, 0x2c, + 0xc9, 0x8a, 0x95, 0x45, 0xbb, 0x2a, 0xae, 0xed, + 0x77, 0xcb, 0x3f, 0xc6, 0xdb, 0x15, 0xdc, 0xd7, + 0xd8, 0x0d, 0x7d, 0x5b, 0xc4, 0x06, 0xc4, 0x97, + 0x0a, 0x34, 0x78, 0xad, 0xa8, 0x89, 0x9b, 0x32, + 0x91, 0x98, 0xeb, 0x61, 0xc1, 0x93, 0xfb, 0x62, + 0x75, 0xaa, 0x8c, 0xa3, 0x40, 0x34, 0x4a, 0x75, + 0xa8, 0x62, 0xae, 0xbe, 0x92, 0xee, 0xe1, 0xce, + 0x03, 0x2f, 0xd9, 0x50, 0xb4, 0x7d, 0x77, 0x04, + 0xa3, 0x87, 0x69, 0x23, 0xb4, 0xad, 0x62, 0x84, + 0x4b, 0xf4, 0xa0, 0x9c, 0x4d, 0xbe, 0x8b, 0x43, + 0x97, 0x18, 0x4b, 0x74, 0x71, 0x36, 0x0c, 0x95, + 0x64, 0x88, 0x0a, 0xed, 0xdd, 0xb9, 0xba, 0xa4, + 0xaf, 0x2e, 0x75, 0x39, 0x4b, 0x08, 0xcd, 0x32, + 0xff, 0x47, 0x9c, 0x57, 0xa0, 0x7d, 0x3e, 0xab, + 0x5d, 0x54, 0xde, 0x5f, 0x97, 0x38, 0xb8, 0xd2, + 0x7f, 0x27, 0xa9, 0xf0, 0xab, 0x11, 0x79, 0x9d, + 0x7b, 0x7f, 0xfe, 0xfb, 0x27, 0x04, 0xc9, 0x5c, + 0x6a, 0xd1, 0x2c, 0x39, 0xf1, 0xe8, 0x67, 0xa4, + 0xb7, 0xb1, 0xd7, 0x81, 0x8a, 0x4b, 0x75, 0x3d, + 0xfd, 0x2a, 0x89, 0xcc, 0xb4, 0x5e, 0x00, 0x1a, + 0x03, 0xa8, 0x67, 0xb1, 0x87, 0xf2, 0x25, 0xdd, + }, { + 0xfa, 0x76, 0x2a, 0x36, 0x80, 0xb7, 0x60, 0x07, + 0x92, 0x8e, 0xd4, 0xa4, 0xf4, 0x9a, 0x94, 0x56, + 0x03, 0x1b, 0x70, 0x47, 0x82, 0xe6, 0x5e, 0x16, + 0xce, 0xcb, 0x54, 0xed, 0x7d, 0x01, 0x7b, 0x5e, + 0x18, 0xab, 0xd6, 0x7b, 0x33, 0x8e, 0x81, 0x07, + 0x8f, 0x21, 0xed, 0xb7, 0x86, 0x8d, 0x90, 0x1e, + 0xbe, 0x9c, 0x73, 0x1a, 0x7c, 0x18, 0xb5, 0xe6, + 0xde, 0xc1, 0xd6, 0xa7, 0x2e, 0x07, 0x8a, 0xc9, + 0xa4, 0x26, 0x2f, 0x86, 0x0b, 0xee, 0xfa, 0x14, + 0xf4, 0xe8, 0x21, 0x01, 0x82, 0x72, 0xe4, 0x11, + 0xa9, 0x51, 0x50, 0x2b, 0x6e, 0x79, 0x06, 0x6e, + 0x84, 0x25, 0x2c, 0x33, 0x46, 0xf3, 0xaa, 0x62, + 0x34, 0x43, 0x51, 0xa2, 0x91, 0xd4, 0xbe, 0xdc, + 0x7a, 0x07, 0x61, 0x8b, 0xde, 0xa2, 0xaf, 0x63, + 0x14, 0x5c, 0xc7, 0xa4, 0xb8, 0xd4, 0x07, 0x06, + 0x91, 0xae, 0x89, 0x0c, 0xd6, 0x57, 0x33, 0xe7, + 0x94, 0x6e, 0x90, 0x21, 0xa1, 0xdf, 0xfc, 0x4c, + 0x59, 0xf1, 0x59, 0x42, 0x5e, 0xe6, 0xd5, 0x0c, + 0xa9, 0xb1, 0x35, 0xfa, 0x61, 0x62, 0xce, 0xa1, + 0x8a, 0x93, 0x98, 0x38, 0xdc, 0x00, 0x0f, 0xb3, + 0x86, 0xfa, 0xd0, 0x86, 0xac, 0xce, 0x5a, 0xc0, + 0x7c, 0xb2, 0xec, 0xe7, 0xfd, 0x58, 0x0b, 0x00, + 0xcf, 0xa5, 0xe9, 0x85, 0x89, 0x63, 0x1d, 0xc2, + 0x5e, 0x8e, 0x2a, 0x3d, 0xaf, 0x2f, 0xfd, 0xec, + 0x26, 0x53, 0x16, 0x59, 0x91, 0x2c, 0x9d, 0x8f, + 0x7a, 0x15, 0xe5, 0x86, 0x5e, 0xa8, 0xfb, 0x58, + 0x16, 0xd6, 0x20, 0x70, 0x52, 0xbd, 0x71, 0x28, + 0xcd, 0x74, 0x3c, 0x12, 0xc8, 0x11, 0x87, 0x91, + 0xa4, 0x73, 0x68, 0x11, 0x93, 0x5e, 0xb9, 0x82, + 0xa5, 0x32, 0x34, 0x9e, 0x31, 0xdd, 0x40, 0x1e, + 0x0b, 0x66, 0x0a, 0x56, 0x8c, 0xb1, 0xa4, 0x71, + 0x1f, 0x55, 0x2f, 0x55, 0xde, 0xd5, 0x9f, 0x1f, + 0x15, 0xbf, 0x71, 0x96, 0xb3, 0xca, 0x12, 0xa9, + 0x1e, 0x48, 0x8e, 0xf5, 0x9d, 0x64, 0xf3, 0xa0, + 0x2b, 0xf4, 0x52, 0x39, 0x49, 0x9a, 0xc6, 0x17, + 0x6a, 0xe3, 0x21, 0xc4, 0xa2, 0x11, 0xec, 0x54, + 0x53, 0x65, 0x97, 0x1c, 0x5d, 0x3f, 0x4f, 0x09, + 0xd4, 0xeb, 0x13, 0x9b, 0xfd, 0xf2, 0x07, 0x3d, + 0x33, 0x18, 0x0b, 0x21, 0x00, 0x2b, 0x65, 0xcc, + 0x98, 0x65, 0xe7, 0x6c, 0xb2, 0x4c, 0xd9, 0x2c, + 0x87, 0x4c, 0x24, 0xc1, 0x83, 0x50, 0x39, 0x9a, + 0x93, 0x6a, 0xb3, 0x63, 0x70, 0x79, 0x29, 0x5d, + 0x76, 0xc4, 0x17, 0x77, 0x6b, 0x94, 0xef, 0xce, + 0x3a, 0x0e, 0xf7, 0x20, 0x6b, 0x15, 0x11, 0x05, + 0x19, 0x65, 0x5c, 0x95, 0x6c, 0xbd, 0x8b, 0x24, + 0x89, 0x40, 0x5e, 0xe2, 0xb0, 0x9a, 0x6b, 0x6e, + 0xeb, 0xe0, 0xc5, 0x37, 0x90, 0xa1, 0x2a, 0x89, + 0x98, 0x37, 0x8b, 0x33, 0xa5, 0xb7, 0x11, 0x59, + 0x62, 0x5f, 0x4b, 0xa4, 0x9d, 0x2a, 0x2f, 0xdb, + 0xa5, 0x9f, 0xbf, 0x08, 0x97, 0xbc, 0x7a, 0xab, + 0xd8, 0xd7, 0x07, 0xdc, 0x14, 0x0a, 0x80, 0xf0, + 0xf3, 0x09, 0xf8, 0x35, 0xd3, 0xda, 0x54, 0xab, + 0x58, 0x4e, 0x50, 0x1d, 0xfa, 0x0e, 0xe9, 0x77, + 0xfe, 0xc5, 0x43, 0xf7, 0x41, 0x86, 0xa8, 0x02, + 0xb9, 0xa3, 0x7a, 0xdb, 0x3e, 0x82, 0x91, 0xec, + 0xa0, 0x4d, 0x66, 0x52, 0x0d, 0x22, 0x9e, 0x60, + 0x40, 0x1e, 0x72, 0x82, 0xbe, 0xf4, 0x86, 0xae, + 0x05, 0x9a, 0xa7, 0x06, 0x96, 0xe0, 0xe3, 0x05, + 0xd7, 0x77, 0x14, 0x0a, 0x7a, 0x88, 0x3e, 0xcd, + 0xcb, 0x69, 0xb9, 0xff, 0x93, 0x8e, 0x8a, 0x42, + 0x31, 0x86, 0x4c, 0x69, 0xca, 0x2c, 0x20, 0x43, + 0xbe, 0xd0, 0x07, 0xff, 0x3e, 0x60, 0x5e, 0x01, + 0x4b, 0xcf, 0x51, 0x81, 0x38, 0xdc, 0x3a, 0x25, + 0xc5, 0xe2, 0x36, 0x17, 0x1a, 0x2d, 0x01, 0xd6, + }, + }, + { + 0x000000fdULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x8e, 0x41, 0xb7, 0x8c, 0x39, 0x0b, 0x5a, 0xf9, + 0xd7, 0x58, 0xbb, 0x21, 0x4a, 0x67, 0xe9, 0xf6, + 0xbf, 0x77, 0x27, 0xb0, 0x9a, 0xc6, 0x12, 0x40, + 0x84, 0xc3, 0x76, 0x11, 0x39, 0x8f, 0xa4, 0x5d, + 0xaa, 0xd9, 0x48, 0x68, 0x60, 0x0e, 0xd3, 0x91, + 0xfb, 0x1a, 0xcd, 0x48, 0x57, 0xa9, 0x5b, 0x46, + 0x6e, 0x62, 0xef, 0x9f, 0x4b, 0x37, 0x72, 0x44, + 0xd1, 0xc1, 0x52, 0xe7, 0xb3, 0x0d, 0x73, 0x1a, + 0xad, 0x30, 0xc7, 0x16, 0xd2, 0x14, 0xb7, 0x07, + 0xae, 0xd9, 0x9e, 0xb5, 0xb5, 0xe5, 0x80, 0xb3, + 0xe8, 0x87, 0xcf, 0x74, 0x97, 0x46, 0x56, 0x51, + 0xd4, 0xb6, 0x0e, 0x60, 0x42, 0x05, 0x1d, 0xa3, + 0x69, 0x3c, 0x3b, 0x78, 0xc1, 0x44, 0x89, 0x54, + 0x3b, 0xe8, 0xb6, 0xad, 0x0b, 0xa6, 0x29, 0x56, + 0x5b, 0xba, 0x20, 0x23, 0x13, 0xba, 0x7b, 0x0d, + 0x0c, 0x94, 0xa3, 0x25, 0x2b, 0x67, 0x6f, 0x46, + 0xcc, 0x02, 0xce, 0x0f, 0x8a, 0x7d, 0x34, 0xc0, + 0xed, 0x22, 0x91, 0x29, 0x67, 0x3c, 0x1f, 0x61, + 0xae, 0xd5, 0x79, 0xd0, 0x8a, 0x92, 0x03, 0xa2, + 0x5a, 0xac, 0x3a, 0x77, 0xe9, 0xdb, 0x60, 0x26, + 0x79, 0x96, 0xdb, 0x38, 0xdf, 0x63, 0x73, 0x56, + 0xd9, 0xdc, 0xd1, 0x63, 0x2e, 0x36, 0x99, 0x39, + 0xf2, 0xa2, 0x9d, 0x89, 0x34, 0x5c, 0x66, 0xe0, + 0x50, 0x66, 0xf1, 0xa3, 0x67, 0x7a, 0xef, 0x18, + 0xde, 0xa4, 0x11, 0x3f, 0xae, 0xb6, 0x29, 0xe4, + 0x67, 0x21, 0xa6, 0x6d, 0x0a, 0x7e, 0x78, 0x5d, + 0x3e, 0x29, 0xaf, 0x25, 0x94, 0xeb, 0x67, 0xdf, + 0xa9, 0x82, 0xaf, 0xfe, 0x0a, 0xac, 0x05, 0x8f, + 0x6e, 0x15, 0x86, 0x42, 0x69, 0xb1, 0x35, 0x41, + 0x82, 0x61, 0xfc, 0x3a, 0xfb, 0x08, 0x94, 0x72, + 0xcf, 0x68, 0xc4, 0x5d, 0xd7, 0xf2, 0x31, 0xc6, + 0x24, 0x9b, 0xa0, 0x25, 0x5e, 0x1e, 0x03, 0x38, + 0x33, 0xfc, 0x4d, 0x00, 0xa3, 0xfe, 0x02, 0x13, + 0x2d, 0x7b, 0xc3, 0x87, 0x36, 0x14, 0xb8, 0xae, + 0xe3, 0x42, 0x73, 0x58, 0x1e, 0xa0, 0x32, 0x5c, + 0x81, 0xf0, 0x27, 0x0a, 0xff, 0xa1, 0x36, 0x41, + 0xd0, 0x52, 0xd3, 0x6f, 0x07, 0x57, 0xd4, 0x84, + 0x01, 0x43, 0x54, 0xd0, 0x2d, 0x68, 0x83, 0xca, + 0x15, 0xc2, 0x4d, 0x8c, 0x39, 0x56, 0xb1, 0xbd, + 0x02, 0x7b, 0xcf, 0x41, 0xf1, 0x51, 0xfd, 0x80, + 0x23, 0xc5, 0x34, 0x0e, 0x56, 0x06, 0xf3, 0x7e, + 0x90, 0xfd, 0xb8, 0x7c, 0x86, 0xfb, 0x4f, 0xa6, + 0x34, 0xb3, 0x71, 0x8a, 0x30, 0xba, 0xce, 0x06, + 0xa6, 0x6e, 0xaf, 0x8f, 0x63, 0xc4, 0xaa, 0x3b, + 0x63, 0x78, 0x26, 0xa8, 0x7f, 0xe8, 0xcf, 0xa4, + 0x42, 0x82, 0xe9, 0x2c, 0xb1, 0x61, 0x5a, 0xf3, + 0xa2, 0x8e, 0x53, 0xbc, 0x74, 0xc7, 0xcb, 0xa1, + 0xa0, 0x97, 0x7b, 0xe9, 0x06, 0x5d, 0x0c, 0x1a, + 0x5d, 0xec, 0x6c, 0x54, 0xae, 0x38, 0xd3, 0x7f, + 0x37, 0xaa, 0x35, 0x28, 0x3e, 0x04, 0x8e, 0x55, + 0x30, 0xa8, 0x5c, 0x4e, 0x7a, 0x29, 0xd7, 0xb9, + 0x2e, 0xc0, 0xc3, 0x16, 0x9c, 0xdf, 0x2a, 0x80, + 0x5c, 0x76, 0x04, 0xbc, 0xe6, 0x00, 0x49, 0xb9, + 0xfb, 0x7b, 0x8e, 0xaa, 0xc1, 0x0f, 0x51, 0xae, + 0x23, 0x79, 0x4c, 0xeb, 0xa6, 0x8b, 0xb5, 0x81, + 0x12, 0xe2, 0x93, 0xb9, 0xb6, 0x92, 0xca, 0x72, + 0x1b, 0x37, 0xc6, 0x62, 0xf8, 0x57, 0x4e, 0xd4, + 0xdb, 0xa6, 0xf8, 0x8e, 0x17, 0x08, 0x81, 0xc8, + 0x2c, 0xdd, 0xc1, 0x03, 0x4a, 0x0c, 0xa7, 0xe2, + 0x84, 0xbf, 0x09, 0x62, 0xb6, 0xb2, 0x62, 0x92, + 0xd8, 0x36, 0xfa, 0x9f, 0x73, 0xc1, 0xac, 0x77, + 0x0e, 0xef, 0x0f, 0x2d, 0x3a, 0x1e, 0xaf, 0x61, + 0xd3, 0xe0, 0x35, 0x55, 0xfd, 0x42, 0x4e, 0xed, + 0xd6, 0x7e, 0x18, 0xa1, 0x80, 0x94, 0xf8, 0x88, + }, { + 0xd5, 0x5f, 0x68, 0x4f, 0x81, 0xf4, 0x42, 0x6e, + 0x9f, 0xde, 0x92, 0xa5, 0xff, 0x02, 0xdf, 0x2a, + 0xc8, 0x96, 0xaf, 0x63, 0x96, 0x28, 0x88, 0xa9, + 0x79, 0x10, 0xc1, 0x37, 0x9e, 0x20, 0xb0, 0xa3, + 0xb1, 0xdb, 0x61, 0x3f, 0xb7, 0xfe, 0x2e, 0x07, + 0x00, 0x43, 0x29, 0xea, 0x5c, 0x22, 0xbf, 0xd3, + 0x3e, 0x3d, 0xbe, 0x4c, 0xf5, 0x8c, 0xc6, 0x08, + 0xc2, 0xc2, 0x6c, 0x19, 0xa2, 0xe2, 0xfe, 0x22, + 0xf9, 0x87, 0x32, 0xc2, 0xb5, 0xcb, 0x84, 0x4c, + 0xc6, 0xc0, 0x70, 0x2d, 0x91, 0xe1, 0xd5, 0x0f, + 0xc4, 0x38, 0x2a, 0x7e, 0xba, 0x56, 0x35, 0xcd, + 0x60, 0x24, 0x32, 0xa2, 0x30, 0x6a, 0xc4, 0xce, + 0x82, 0xf8, 0xd7, 0x0c, 0x8d, 0x9b, 0xc1, 0x5f, + 0x91, 0x8f, 0xe7, 0x1e, 0x74, 0xc6, 0x22, 0xd5, + 0xcf, 0x71, 0x17, 0x8b, 0xf6, 0xe0, 0xb9, 0xcc, + 0x9f, 0x2b, 0x41, 0xdd, 0x8d, 0xbe, 0x44, 0x1c, + 0x41, 0xcd, 0x0c, 0x73, 0xa6, 0xdc, 0x47, 0xa3, + 0x48, 0xf6, 0x70, 0x2f, 0x9d, 0x0e, 0x9b, 0x1b, + 0x14, 0x31, 0xe9, 0x48, 0xe2, 0x99, 0xb9, 0xec, + 0x22, 0x72, 0xab, 0x2c, 0x5f, 0x0c, 0x7b, 0xe8, + 0x6a, 0xff, 0xa5, 0xde, 0xc8, 0x7a, 0x0b, 0xee, + 0x81, 0xd3, 0xd5, 0x00, 0x07, 0xed, 0xaa, 0x2b, + 0xcf, 0xcc, 0xb3, 0x56, 0x05, 0x15, 0x5f, 0xf3, + 0x6e, 0xd8, 0xed, 0xd4, 0xa4, 0x0d, 0xcd, 0x4b, + 0x24, 0x3a, 0xcd, 0x11, 0xb2, 0xb9, 0x87, 0xbd, + 0xbf, 0xaf, 0x91, 0xa7, 0xca, 0xc2, 0x7e, 0x9c, + 0x5a, 0xea, 0x52, 0x5e, 0xe5, 0x3d, 0xe7, 0xb2, + 0xd3, 0x33, 0x2c, 0x86, 0x44, 0x40, 0x2b, 0x82, + 0x3e, 0x94, 0xa7, 0xdb, 0x26, 0x27, 0x6d, 0x2d, + 0x23, 0xaa, 0x07, 0x18, 0x0f, 0x76, 0xb4, 0xfd, + 0x29, 0xb9, 0xc0, 0x82, 0x30, 0x99, 0xc9, 0xd6, + 0x2c, 0x51, 0x98, 0x80, 0xae, 0xe7, 0xe9, 0x69, + 0x76, 0x17, 0xc1, 0x49, 0x7d, 0x47, 0xbf, 0x3e, + 0x57, 0x19, 0x50, 0x31, 0x14, 0x21, 0xb6, 0xb7, + 0x34, 0xd3, 0x8b, 0x0d, 0xb9, 0x1e, 0xb8, 0x53, + 0x31, 0xb9, 0x1e, 0xa9, 0xf6, 0x15, 0x30, 0xf5, + 0x45, 0x12, 0xa5, 0xa5, 0x2a, 0x4b, 0xad, 0x58, + 0x9e, 0xb6, 0x97, 0x81, 0xd5, 0x37, 0xf2, 0x32, + 0x97, 0xbb, 0x45, 0x9b, 0xda, 0xd2, 0x94, 0x8a, + 0x29, 0xe1, 0x55, 0x0b, 0xf4, 0x78, 0x7e, 0x0b, + 0xe9, 0x5b, 0xb1, 0x73, 0xcf, 0x5f, 0xab, 0x17, + 0xda, 0xb7, 0xa1, 0x3a, 0x05, 0x2a, 0x63, 0x45, + 0x3d, 0x97, 0xcc, 0xec, 0x1a, 0x32, 0x19, 0x54, + 0x88, 0x6b, 0x7a, 0x12, 0x99, 0xfa, 0xae, 0xec, + 0xae, 0x35, 0xc6, 0xea, 0xac, 0xa7, 0x53, 0xb0, + 0x41, 0xb5, 0xe5, 0xf0, 0x93, 0xbf, 0x83, 0x39, + 0x7f, 0xd2, 0x1d, 0xd6, 0xb3, 0x01, 0x20, 0x66, + 0xfc, 0xc0, 0x58, 0xcc, 0x32, 0xc3, 0xb0, 0x9d, + 0x75, 0x62, 0xde, 0xe2, 0x95, 0x09, 0xb5, 0x83, + 0x93, 0x92, 0xc9, 0xff, 0x05, 0xf5, 0x1f, 0x31, + 0x66, 0xaa, 0xac, 0x4a, 0xc5, 0xf2, 0x38, 0x03, + 0x8a, 0x30, 0x45, 0xe6, 0xf7, 0x2e, 0x48, 0xef, + 0x0f, 0xe8, 0xbc, 0x67, 0x5e, 0x82, 0xc3, 0x18, + 0xa2, 0x68, 0xe4, 0x39, 0x70, 0x27, 0x1b, 0xf1, + 0x19, 0xb8, 0x1b, 0xf6, 0xa9, 0x82, 0x74, 0x65, + 0x54, 0xf8, 0x4e, 0x72, 0xb9, 0xf0, 0x02, 0x80, + 0xa3, 0x20, 0xa0, 0x81, 0x42, 0x92, 0x3c, 0x23, + 0xc8, 0x83, 0x42, 0x3f, 0xf9, 0x49, 0x82, 0x7f, + 0x29, 0xbb, 0xac, 0xdc, 0x1c, 0xcd, 0xb0, 0x49, + 0x38, 0xce, 0x60, 0x98, 0xc9, 0x5b, 0xa6, 0xb3, + 0x25, 0x28, 0xf4, 0xef, 0x78, 0xee, 0xd7, 0x78, + 0xb2, 0xe1, 0x22, 0xdd, 0xfd, 0x1c, 0xbd, 0xd1, + 0x1d, 0x1c, 0x0a, 0x67, 0x83, 0xe0, 0x11, 0xfc, + 0x53, 0x6d, 0x63, 0xd0, 0x53, 0x26, 0x06, 0x37, + }, + }, + { + 0x000000feULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0xd5, 0x5f, 0x68, 0x4f, 0x81, 0xf4, 0x42, 0x6e, + 0x9f, 0xde, 0x92, 0xa5, 0xff, 0x02, 0xdf, 0x2a, + 0xc8, 0x96, 0xaf, 0x63, 0x96, 0x28, 0x88, 0xa9, + 0x79, 0x10, 0xc1, 0x37, 0x9e, 0x20, 0xb0, 0xa3, + 0xb1, 0xdb, 0x61, 0x3f, 0xb7, 0xfe, 0x2e, 0x07, + 0x00, 0x43, 0x29, 0xea, 0x5c, 0x22, 0xbf, 0xd3, + 0x3e, 0x3d, 0xbe, 0x4c, 0xf5, 0x8c, 0xc6, 0x08, + 0xc2, 0xc2, 0x6c, 0x19, 0xa2, 0xe2, 0xfe, 0x22, + 0xf9, 0x87, 0x32, 0xc2, 0xb5, 0xcb, 0x84, 0x4c, + 0xc6, 0xc0, 0x70, 0x2d, 0x91, 0xe1, 0xd5, 0x0f, + 0xc4, 0x38, 0x2a, 0x7e, 0xba, 0x56, 0x35, 0xcd, + 0x60, 0x24, 0x32, 0xa2, 0x30, 0x6a, 0xc4, 0xce, + 0x82, 0xf8, 0xd7, 0x0c, 0x8d, 0x9b, 0xc1, 0x5f, + 0x91, 0x8f, 0xe7, 0x1e, 0x74, 0xc6, 0x22, 0xd5, + 0xcf, 0x71, 0x17, 0x8b, 0xf6, 0xe0, 0xb9, 0xcc, + 0x9f, 0x2b, 0x41, 0xdd, 0x8d, 0xbe, 0x44, 0x1c, + 0x41, 0xcd, 0x0c, 0x73, 0xa6, 0xdc, 0x47, 0xa3, + 0x48, 0xf6, 0x70, 0x2f, 0x9d, 0x0e, 0x9b, 0x1b, + 0x14, 0x31, 0xe9, 0x48, 0xe2, 0x99, 0xb9, 0xec, + 0x22, 0x72, 0xab, 0x2c, 0x5f, 0x0c, 0x7b, 0xe8, + 0x6a, 0xff, 0xa5, 0xde, 0xc8, 0x7a, 0x0b, 0xee, + 0x81, 0xd3, 0xd5, 0x00, 0x07, 0xed, 0xaa, 0x2b, + 0xcf, 0xcc, 0xb3, 0x56, 0x05, 0x15, 0x5f, 0xf3, + 0x6e, 0xd8, 0xed, 0xd4, 0xa4, 0x0d, 0xcd, 0x4b, + 0x24, 0x3a, 0xcd, 0x11, 0xb2, 0xb9, 0x87, 0xbd, + 0xbf, 0xaf, 0x91, 0xa7, 0xca, 0xc2, 0x7e, 0x9c, + 0x5a, 0xea, 0x52, 0x5e, 0xe5, 0x3d, 0xe7, 0xb2, + 0xd3, 0x33, 0x2c, 0x86, 0x44, 0x40, 0x2b, 0x82, + 0x3e, 0x94, 0xa7, 0xdb, 0x26, 0x27, 0x6d, 0x2d, + 0x23, 0xaa, 0x07, 0x18, 0x0f, 0x76, 0xb4, 0xfd, + 0x29, 0xb9, 0xc0, 0x82, 0x30, 0x99, 0xc9, 0xd6, + 0x2c, 0x51, 0x98, 0x80, 0xae, 0xe7, 0xe9, 0x69, + 0x76, 0x17, 0xc1, 0x49, 0x7d, 0x47, 0xbf, 0x3e, + 0x57, 0x19, 0x50, 0x31, 0x14, 0x21, 0xb6, 0xb7, + 0x34, 0xd3, 0x8b, 0x0d, 0xb9, 0x1e, 0xb8, 0x53, + 0x31, 0xb9, 0x1e, 0xa9, 0xf6, 0x15, 0x30, 0xf5, + 0x45, 0x12, 0xa5, 0xa5, 0x2a, 0x4b, 0xad, 0x58, + 0x9e, 0xb6, 0x97, 0x81, 0xd5, 0x37, 0xf2, 0x32, + 0x97, 0xbb, 0x45, 0x9b, 0xda, 0xd2, 0x94, 0x8a, + 0x29, 0xe1, 0x55, 0x0b, 0xf4, 0x78, 0x7e, 0x0b, + 0xe9, 0x5b, 0xb1, 0x73, 0xcf, 0x5f, 0xab, 0x17, + 0xda, 0xb7, 0xa1, 0x3a, 0x05, 0x2a, 0x63, 0x45, + 0x3d, 0x97, 0xcc, 0xec, 0x1a, 0x32, 0x19, 0x54, + 0x88, 0x6b, 0x7a, 0x12, 0x99, 0xfa, 0xae, 0xec, + 0xae, 0x35, 0xc6, 0xea, 0xac, 0xa7, 0x53, 0xb0, + 0x41, 0xb5, 0xe5, 0xf0, 0x93, 0xbf, 0x83, 0x39, + 0x7f, 0xd2, 0x1d, 0xd6, 0xb3, 0x01, 0x20, 0x66, + 0xfc, 0xc0, 0x58, 0xcc, 0x32, 0xc3, 0xb0, 0x9d, + 0x75, 0x62, 0xde, 0xe2, 0x95, 0x09, 0xb5, 0x83, + 0x93, 0x92, 0xc9, 0xff, 0x05, 0xf5, 0x1f, 0x31, + 0x66, 0xaa, 0xac, 0x4a, 0xc5, 0xf2, 0x38, 0x03, + 0x8a, 0x30, 0x45, 0xe6, 0xf7, 0x2e, 0x48, 0xef, + 0x0f, 0xe8, 0xbc, 0x67, 0x5e, 0x82, 0xc3, 0x18, + 0xa2, 0x68, 0xe4, 0x39, 0x70, 0x27, 0x1b, 0xf1, + 0x19, 0xb8, 0x1b, 0xf6, 0xa9, 0x82, 0x74, 0x65, + 0x54, 0xf8, 0x4e, 0x72, 0xb9, 0xf0, 0x02, 0x80, + 0xa3, 0x20, 0xa0, 0x81, 0x42, 0x92, 0x3c, 0x23, + 0xc8, 0x83, 0x42, 0x3f, 0xf9, 0x49, 0x82, 0x7f, + 0x29, 0xbb, 0xac, 0xdc, 0x1c, 0xcd, 0xb0, 0x49, + 0x38, 0xce, 0x60, 0x98, 0xc9, 0x5b, 0xa6, 0xb3, + 0x25, 0x28, 0xf4, 0xef, 0x78, 0xee, 0xd7, 0x78, + 0xb2, 0xe1, 0x22, 0xdd, 0xfd, 0x1c, 0xbd, 0xd1, + 0x1d, 0x1c, 0x0a, 0x67, 0x83, 0xe0, 0x11, 0xfc, + 0x53, 0x6d, 0x63, 0xd0, 0x53, 0x26, 0x06, 0x37, + }, { + 0x72, 0xef, 0xc1, 0xeb, 0xfe, 0x1e, 0xe2, 0x59, + 0x75, 0xa6, 0xeb, 0x3a, 0xa8, 0x58, 0x9d, 0xda, + 0x2b, 0x26, 0x1f, 0x1c, 0x85, 0xbd, 0xab, 0x44, + 0x2a, 0x9e, 0x5b, 0x2d, 0xd1, 0xd7, 0xc3, 0x95, + 0x7a, 0x16, 0xfc, 0x08, 0xe5, 0x26, 0xd4, 0xb1, + 0x22, 0x3f, 0x1b, 0x12, 0x32, 0xa1, 0x1a, 0xf2, + 0x74, 0xc3, 0xd7, 0x0d, 0xac, 0x57, 0xf8, 0x3e, + 0x09, 0x83, 0xc4, 0x98, 0xf1, 0xa6, 0xf1, 0xae, + 0xcb, 0x02, 0x1c, 0x3e, 0x70, 0x08, 0x5a, 0x1e, + 0x52, 0x7f, 0x1c, 0xe4, 0x1e, 0xe5, 0x91, 0x1a, + 0x82, 0x02, 0x01, 0x61, 0x52, 0x9c, 0xd8, 0x27, + 0x73, 0x76, 0x2d, 0xaf, 0x54, 0x59, 0xde, 0x94, + 0xa0, 0xa8, 0x2a, 0xda, 0xe7, 0xe1, 0x70, 0x3c, + 0x80, 0x85, 0x43, 0xc2, 0x9e, 0xd6, 0xfb, 0x32, + 0xd9, 0xe0, 0x04, 0x32, 0x7c, 0x13, 0x55, 0x18, + 0x0c, 0x99, 0x5a, 0x07, 0x74, 0x14, 0x93, 0xa0, + 0x9c, 0x21, 0xba, 0x01, 0xa3, 0x87, 0x88, 0x2d, + 0xa4, 0xf6, 0x25, 0x34, 0xb8, 0x7b, 0xb1, 0x5d, + 0x60, 0xd1, 0x97, 0x20, 0x1c, 0x0f, 0xd3, 0xbf, + 0x30, 0xc1, 0x50, 0x0a, 0x3e, 0xcf, 0xec, 0xdd, + 0x66, 0xd8, 0x72, 0x1f, 0x90, 0xbc, 0xc4, 0xc1, + 0x7e, 0xe9, 0x25, 0xc6, 0x1b, 0x0a, 0x03, 0x72, + 0x7a, 0x9c, 0x0d, 0x5f, 0x5c, 0xa4, 0x62, 0xfb, + 0xfa, 0x0a, 0xf1, 0xc2, 0x51, 0x3a, 0x9d, 0x9d, + 0x4b, 0x53, 0x45, 0xbd, 0x27, 0xa5, 0xf6, 0xe6, + 0x53, 0xf7, 0x51, 0x69, 0x3e, 0x6b, 0x6a, 0x2b, + 0x8e, 0xad, 0x57, 0xd5, 0x11, 0xe0, 0x0e, 0x58, + 0xc4, 0x5b, 0x7b, 0x8d, 0x00, 0x5a, 0xf7, 0x92, + 0x88, 0xf5, 0xc7, 0xc2, 0x2f, 0xd4, 0xf1, 0xbf, + 0x7a, 0x89, 0x8b, 0x03, 0xa5, 0x63, 0x4c, 0x6a, + 0x1a, 0xe3, 0xf9, 0xfa, 0xe5, 0xde, 0x4f, 0x29, + 0x6a, 0x28, 0x96, 0xb2, 0x3e, 0x7e, 0xd4, 0x3e, + 0xd1, 0x4f, 0xa5, 0xa2, 0x80, 0x3f, 0x4d, 0x28, + 0xf0, 0xd3, 0xff, 0xcf, 0x24, 0x75, 0x76, 0x77, + 0xae, 0xbd, 0xb4, 0x7b, 0xb3, 0x88, 0x37, 0x87, + 0x08, 0x94, 0x8a, 0x8d, 0x41, 0x26, 0xed, 0x18, + 0x39, 0xe0, 0xda, 0x29, 0xa5, 0x37, 0xa8, 0xc1, + 0x98, 0xb3, 0xc6, 0x6a, 0xb0, 0x07, 0x12, 0xdd, + 0x26, 0x16, 0x74, 0xbf, 0x45, 0xa7, 0x3d, 0x67, + 0xf7, 0x69, 0x14, 0xf8, 0x30, 0xca, 0x01, 0x4b, + 0x65, 0x59, 0x6f, 0x27, 0xe4, 0xcf, 0x62, 0xde, + 0x66, 0x12, 0x5a, 0x55, 0x66, 0xdf, 0x99, 0x75, + 0x15, 0x56, 0x28, 0xb4, 0x00, 0xfb, 0xfb, 0x3a, + 0x29, 0x04, 0x0e, 0xd5, 0x0f, 0xaf, 0xfd, 0xbb, + 0x18, 0xae, 0xce, 0x7c, 0x5c, 0x44, 0x69, 0x32, + 0x60, 0xaa, 0xb3, 0x86, 0xc0, 0xa3, 0x7b, 0x11, + 0xb1, 0x14, 0xf1, 0xc4, 0x15, 0xae, 0xbb, 0x65, + 0x3b, 0xe4, 0x68, 0x17, 0x94, 0x28, 0xd4, 0x3a, + 0x4d, 0x8b, 0xc3, 0xec, 0x38, 0x81, 0x3e, 0xca, + 0x30, 0xa1, 0x3c, 0xf1, 0xbb, 0x18, 0xd5, 0x24, + 0xf1, 0x99, 0x2d, 0x44, 0xd8, 0xb1, 0xa4, 0x2e, + 0xa3, 0x0b, 0x22, 0xe6, 0xc9, 0x5b, 0x19, 0x9d, + 0x8d, 0x18, 0x2f, 0x88, 0x40, 0xb0, 0x9d, 0x05, + 0x95, 0x85, 0xc3, 0x1a, 0xd6, 0x91, 0xfa, 0x06, + 0x19, 0xff, 0x03, 0x8a, 0xca, 0x2c, 0x39, 0xa9, + 0x43, 0x42, 0x11, 0x57, 0x36, 0x17, 0x17, 0xc4, + 0x9d, 0x32, 0x20, 0x28, 0xa7, 0x46, 0x48, 0x11, + 0x3b, 0xd8, 0xc9, 0xd7, 0xec, 0x77, 0xcf, 0x3c, + 0x89, 0xc1, 0xec, 0x87, 0x18, 0xce, 0xff, 0x85, + 0x16, 0xd9, 0x6b, 0x34, 0xc3, 0xc6, 0x14, 0xf1, + 0x06, 0x99, 0xc9, 0xab, 0xc4, 0xed, 0x04, 0x11, + 0x50, 0x62, 0x23, 0xbe, 0xa1, 0x6a, 0xf3, 0x5c, + 0x88, 0x3a, 0xcc, 0xdb, 0xe1, 0x10, 0x4e, 0xef, + 0x0c, 0xfd, 0xb5, 0x4e, 0x12, 0xfb, 0x23, 0x0a, + }, + }, + { + 0x000000ffULL, + 32, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + }, + 512, + { + 0x72, 0xef, 0xc1, 0xeb, 0xfe, 0x1e, 0xe2, 0x59, + 0x75, 0xa6, 0xeb, 0x3a, 0xa8, 0x58, 0x9d, 0xda, + 0x2b, 0x26, 0x1f, 0x1c, 0x85, 0xbd, 0xab, 0x44, + 0x2a, 0x9e, 0x5b, 0x2d, 0xd1, 0xd7, 0xc3, 0x95, + 0x7a, 0x16, 0xfc, 0x08, 0xe5, 0x26, 0xd4, 0xb1, + 0x22, 0x3f, 0x1b, 0x12, 0x32, 0xa1, 0x1a, 0xf2, + 0x74, 0xc3, 0xd7, 0x0d, 0xac, 0x57, 0xf8, 0x3e, + 0x09, 0x83, 0xc4, 0x98, 0xf1, 0xa6, 0xf1, 0xae, + 0xcb, 0x02, 0x1c, 0x3e, 0x70, 0x08, 0x5a, 0x1e, + 0x52, 0x7f, 0x1c, 0xe4, 0x1e, 0xe5, 0x91, 0x1a, + 0x82, 0x02, 0x01, 0x61, 0x52, 0x9c, 0xd8, 0x27, + 0x73, 0x76, 0x2d, 0xaf, 0x54, 0x59, 0xde, 0x94, + 0xa0, 0xa8, 0x2a, 0xda, 0xe7, 0xe1, 0x70, 0x3c, + 0x80, 0x85, 0x43, 0xc2, 0x9e, 0xd6, 0xfb, 0x32, + 0xd9, 0xe0, 0x04, 0x32, 0x7c, 0x13, 0x55, 0x18, + 0x0c, 0x99, 0x5a, 0x07, 0x74, 0x14, 0x93, 0xa0, + 0x9c, 0x21, 0xba, 0x01, 0xa3, 0x87, 0x88, 0x2d, + 0xa4, 0xf6, 0x25, 0x34, 0xb8, 0x7b, 0xb1, 0x5d, + 0x60, 0xd1, 0x97, 0x20, 0x1c, 0x0f, 0xd3, 0xbf, + 0x30, 0xc1, 0x50, 0x0a, 0x3e, 0xcf, 0xec, 0xdd, + 0x66, 0xd8, 0x72, 0x1f, 0x90, 0xbc, 0xc4, 0xc1, + 0x7e, 0xe9, 0x25, 0xc6, 0x1b, 0x0a, 0x03, 0x72, + 0x7a, 0x9c, 0x0d, 0x5f, 0x5c, 0xa4, 0x62, 0xfb, + 0xfa, 0x0a, 0xf1, 0xc2, 0x51, 0x3a, 0x9d, 0x9d, + 0x4b, 0x53, 0x45, 0xbd, 0x27, 0xa5, 0xf6, 0xe6, + 0x53, 0xf7, 0x51, 0x69, 0x3e, 0x6b, 0x6a, 0x2b, + 0x8e, 0xad, 0x57, 0xd5, 0x11, 0xe0, 0x0e, 0x58, + 0xc4, 0x5b, 0x7b, 0x8d, 0x00, 0x5a, 0xf7, 0x92, + 0x88, 0xf5, 0xc7, 0xc2, 0x2f, 0xd4, 0xf1, 0xbf, + 0x7a, 0x89, 0x8b, 0x03, 0xa5, 0x63, 0x4c, 0x6a, + 0x1a, 0xe3, 0xf9, 0xfa, 0xe5, 0xde, 0x4f, 0x29, + 0x6a, 0x28, 0x96, 0xb2, 0x3e, 0x7e, 0xd4, 0x3e, + 0xd1, 0x4f, 0xa5, 0xa2, 0x80, 0x3f, 0x4d, 0x28, + 0xf0, 0xd3, 0xff, 0xcf, 0x24, 0x75, 0x76, 0x77, + 0xae, 0xbd, 0xb4, 0x7b, 0xb3, 0x88, 0x37, 0x87, + 0x08, 0x94, 0x8a, 0x8d, 0x41, 0x26, 0xed, 0x18, + 0x39, 0xe0, 0xda, 0x29, 0xa5, 0x37, 0xa8, 0xc1, + 0x98, 0xb3, 0xc6, 0x6a, 0xb0, 0x07, 0x12, 0xdd, + 0x26, 0x16, 0x74, 0xbf, 0x45, 0xa7, 0x3d, 0x67, + 0xf7, 0x69, 0x14, 0xf8, 0x30, 0xca, 0x01, 0x4b, + 0x65, 0x59, 0x6f, 0x27, 0xe4, 0xcf, 0x62, 0xde, + 0x66, 0x12, 0x5a, 0x55, 0x66, 0xdf, 0x99, 0x75, + 0x15, 0x56, 0x28, 0xb4, 0x00, 0xfb, 0xfb, 0x3a, + 0x29, 0x04, 0x0e, 0xd5, 0x0f, 0xaf, 0xfd, 0xbb, + 0x18, 0xae, 0xce, 0x7c, 0x5c, 0x44, 0x69, 0x32, + 0x60, 0xaa, 0xb3, 0x86, 0xc0, 0xa3, 0x7b, 0x11, + 0xb1, 0x14, 0xf1, 0xc4, 0x15, 0xae, 0xbb, 0x65, + 0x3b, 0xe4, 0x68, 0x17, 0x94, 0x28, 0xd4, 0x3a, + 0x4d, 0x8b, 0xc3, 0xec, 0x38, 0x81, 0x3e, 0xca, + 0x30, 0xa1, 0x3c, 0xf1, 0xbb, 0x18, 0xd5, 0x24, + 0xf1, 0x99, 0x2d, 0x44, 0xd8, 0xb1, 0xa4, 0x2e, + 0xa3, 0x0b, 0x22, 0xe6, 0xc9, 0x5b, 0x19, 0x9d, + 0x8d, 0x18, 0x2f, 0x88, 0x40, 0xb0, 0x9d, 0x05, + 0x95, 0x85, 0xc3, 0x1a, 0xd6, 0x91, 0xfa, 0x06, + 0x19, 0xff, 0x03, 0x8a, 0xca, 0x2c, 0x39, 0xa9, + 0x43, 0x42, 0x11, 0x57, 0x36, 0x17, 0x17, 0xc4, + 0x9d, 0x32, 0x20, 0x28, 0xa7, 0x46, 0x48, 0x11, + 0x3b, 0xd8, 0xc9, 0xd7, 0xec, 0x77, 0xcf, 0x3c, + 0x89, 0xc1, 0xec, 0x87, 0x18, 0xce, 0xff, 0x85, + 0x16, 0xd9, 0x6b, 0x34, 0xc3, 0xc6, 0x14, 0xf1, + 0x06, 0x99, 0xc9, 0xab, 0xc4, 0xed, 0x04, 0x11, + 0x50, 0x62, 0x23, 0xbe, 0xa1, 0x6a, 0xf3, 0x5c, + 0x88, 0x3a, 0xcc, 0xdb, 0xe1, 0x10, 0x4e, 0xef, + 0x0c, 0xfd, 0xb5, 0x4e, 0x12, 0xfb, 0x23, 0x0a, + }, { + 0x32, 0x60, 0xae, 0x8d, 0xad, 0x1f, 0x4a, 0x32, + 0xc5, 0xca, 0xfe, 0x3a, 0xb0, 0xeb, 0x95, 0x54, + 0x9d, 0x46, 0x1a, 0x67, 0xce, 0xb9, 0xe5, 0xaa, + 0x2d, 0x3a, 0xfb, 0x62, 0xde, 0xce, 0x05, 0x53, + 0x19, 0x3b, 0xa5, 0x0c, 0x75, 0xbe, 0x25, 0x1e, + 0x08, 0xd1, 0xd0, 0x8f, 0x10, 0x88, 0x57, 0x6c, + 0x7e, 0xfd, 0xfa, 0xaf, 0x3f, 0x45, 0x95, 0x59, + 0x57, 0x1e, 0x12, 0x51, 0x17, 0x53, 0xb0, 0x7a, + 0xf0, 0x73, 0xf3, 0x5d, 0xa0, 0x6a, 0xf0, 0xce, + 0x0b, 0xbf, 0x6b, 0x8f, 0x5c, 0xcc, 0x5c, 0xea, + 0x50, 0x0e, 0xc1, 0xb2, 0x11, 0xbd, 0x51, 0xf6, + 0x3b, 0x60, 0x6b, 0xf6, 0x52, 0x87, 0x96, 0xca, + 0x12, 0x17, 0x3b, 0xa3, 0x9b, 0x89, 0x35, 0xee, + 0x44, 0xcc, 0xce, 0x64, 0x6f, 0x90, 0xa4, 0x5b, + 0xf9, 0xcc, 0xc5, 0x67, 0xf0, 0xac, 0xe1, 0x3d, + 0xc2, 0xd5, 0x3e, 0xbe, 0xed, 0xc8, 0x1f, 0x58, + 0xb2, 0xe4, 0x11, 0x79, 0xdd, 0xdf, 0x0d, 0x5a, + 0x5c, 0x42, 0xf5, 0xd8, 0x50, 0x6c, 0x1a, 0x5d, + 0x2f, 0x8f, 0x59, 0xf3, 0xea, 0x87, 0x3c, 0xbc, + 0xd0, 0xee, 0xc1, 0x9a, 0xcb, 0xf3, 0x25, 0x42, + 0x3b, 0xd3, 0xdc, 0xb8, 0xc2, 0xb1, 0xbf, 0x1d, + 0x1e, 0xae, 0xd0, 0xeb, 0xa7, 0xf0, 0x69, 0x8e, + 0x43, 0x14, 0xfb, 0xeb, 0x2f, 0x15, 0x66, 0xd1, + 0xb9, 0x25, 0x30, 0x08, 0xcb, 0xcc, 0xf4, 0x5a, + 0x2b, 0x0d, 0x9c, 0x5c, 0x9c, 0x21, 0x47, 0x4f, + 0x40, 0x76, 0xe0, 0x2b, 0xe2, 0x60, 0x50, 0xb9, + 0x9d, 0xee, 0x4f, 0xd6, 0x8a, 0x4c, 0xf8, 0x90, + 0xe4, 0x96, 0xe4, 0xfc, 0xae, 0x7b, 0x70, 0xf9, + 0x4e, 0xa5, 0xa9, 0x06, 0x2d, 0xa0, 0xda, 0xeb, + 0xa1, 0x99, 0x3d, 0x2c, 0xcd, 0x1d, 0xd3, 0xc2, + 0x44, 0xb8, 0x42, 0x88, 0x01, 0x49, 0x5a, 0x58, + 0xb2, 0x16, 0x54, 0x7e, 0x7e, 0x84, 0x7c, 0x46, + 0xd1, 0xd7, 0x56, 0x37, 0x7b, 0x62, 0x42, 0xd2, + 0xe5, 0xfb, 0x83, 0xbf, 0x75, 0x2b, 0x54, 0xe0, + 0xdf, 0x71, 0xe8, 0x89, 0xf3, 0xa2, 0xbb, 0x0f, + 0x4c, 0x10, 0x80, 0x5b, 0xf3, 0xc5, 0x90, 0x37, + 0x6e, 0x3c, 0x24, 0xe2, 0x2f, 0xf5, 0x7f, 0x7f, + 0xa9, 0x65, 0x57, 0x73, 0x75, 0x32, 0x5c, 0xea, + 0x5d, 0x92, 0x0d, 0xb9, 0x4b, 0x9c, 0x33, 0x6b, + 0x45, 0x5f, 0x6e, 0x89, 0x4c, 0x01, 0x86, 0x6f, + 0xe9, 0xfb, 0xb8, 0xc8, 0xd3, 0xf7, 0x0a, 0x29, + 0x57, 0x28, 0x5f, 0x6d, 0xfb, 0x5d, 0xcd, 0x8c, + 0xbf, 0x54, 0x78, 0x2f, 0x8f, 0xe7, 0x76, 0x6d, + 0x47, 0x23, 0x81, 0x99, 0x13, 0xac, 0x77, 0x34, + 0x21, 0xe3, 0xa3, 0x10, 0x95, 0x86, 0x6b, 0xad, + 0x22, 0xc8, 0x6a, 0x60, 0x36, 0xb2, 0x51, 0x8b, + 0x20, 0x59, 0xb4, 0x22, 0x9d, 0x18, 0xc8, 0xc2, + 0xcc, 0xbd, 0xf9, 0x06, 0xc6, 0xcc, 0x6e, 0x82, + 0x46, 0x4e, 0xe5, 0x7b, 0xdd, 0xb0, 0xbe, 0xbc, + 0xb1, 0xdc, 0x64, 0x53, 0x25, 0xbf, 0xb3, 0xe6, + 0x65, 0xef, 0x72, 0x51, 0x08, 0x2c, 0x88, 0xeb, + 0xb1, 0xcf, 0x20, 0x3b, 0xd7, 0x79, 0xfd, 0xd3, + 0x86, 0x75, 0x71, 0x3c, 0x8d, 0xaa, 0xdd, 0x17, + 0xe1, 0xca, 0xbe, 0xe4, 0x32, 0xb0, 0x97, 0x87, + 0xb6, 0xdd, 0xf3, 0x30, 0x4e, 0x38, 0xb7, 0x31, + 0xb4, 0x5d, 0xf5, 0xdf, 0x51, 0xb7, 0x8f, 0xcf, + 0xb3, 0xd3, 0x24, 0x66, 0x02, 0x8d, 0x0b, 0xa3, + 0x65, 0x55, 0xe7, 0xe1, 0x1a, 0xb0, 0xee, 0x06, + 0x66, 0x06, 0x1d, 0x16, 0x45, 0xd9, 0x62, 0x44, + 0x4b, 0xc4, 0x7a, 0x38, 0x18, 0x89, 0x30, 0xa8, + 0x4b, 0x4d, 0x56, 0x13, 0x95, 0xc7, 0x3c, 0x08, + 0x70, 0x21, 0x92, 0x7c, 0xa6, 0x38, 0xb7, 0xaf, + 0xc8, 0xa8, 0x67, 0x9c, 0xcb, 0x84, 0xc2, 0x65, + 0x55, 0x44, 0x0e, 0xc7, 0xf1, 0x04, 0x45, 0xcd, + }, + }, + { + 0x000000ffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0x1c, 0x3b, 0x3a, 0x10, 0x2f, 0x77, 0x03, 0x86, + 0xe4, 0x83, 0x6c, 0x99, 0xe3, 0x70, 0xcf, 0x9b, + 0xea, 0x00, 0x80, 0x3f, 0x5e, 0x48, 0x23, 0x57, + 0xa4, 0xae, 0x12, 0xd4, 0x14, 0xa3, 0xe6, 0x3b, + 0x5d, 0x31, 0xe2, 0x76, 0xf8, 0xfe, 0x4a, 0x8d, + 0x66, 0xb3, 0x17, 0xf9, 0xac, 0x68, 0x3f, 0x44, + 0x68, 0x0a, 0x86, 0xac, 0x35, 0xad, 0xfc, 0x33, + 0x45, 0xbe, 0xfe, 0xcb, 0x4b, 0xb1, 0x88, 0xfd, + 0x57, 0x76, 0x92, 0x6c, 0x49, 0xa3, 0x09, 0x5e, + 0xb1, 0x08, 0xfd, 0x10, 0x98, 0xba, 0xec, 0x70, + 0xaa, 0xa6, 0x69, 0x99, 0xa7, 0x2a, 0x82, 0xf2, + 0x7d, 0x84, 0x8b, 0x21, 0xd4, 0xa7, 0x41, 0xb0, + 0xc5, 0xcd, 0x4d, 0x5f, 0xff, 0x9d, 0xac, 0x89, + 0xae, 0xba, 0x12, 0x29, 0x61, 0xd0, 0x3a, 0x75, + 0x71, 0x23, 0xe9, 0x87, 0x0f, 0x8a, 0xcf, 0x10, + 0x00, 0x02, 0x08, 0x87, 0x89, 0x14, 0x29, 0xca, + 0x2a, 0x3e, 0x7a, 0x7d, 0x7d, 0xf7, 0xb1, 0x03, + 0x55, 0x16, 0x5c, 0x8b, 0x9a, 0x6d, 0x0a, 0x7d, + 0xe8, 0xb0, 0x62, 0xc4, 0x50, 0x0d, 0xc4, 0xcd, + 0x12, 0x0c, 0x0f, 0x74, 0x18, 0xda, 0xe3, 0xd0, + 0xb5, 0x78, 0x1c, 0x34, 0x80, 0x3f, 0xa7, 0x54, + 0x21, 0xc7, 0x90, 0xdf, 0xe1, 0xde, 0x18, 0x34, + 0xf2, 0x80, 0xd7, 0x66, 0x7b, 0x32, 0x7f, 0x6c, + 0x8c, 0xd7, 0x55, 0x7e, 0x12, 0xac, 0x3a, 0x0f, + 0x93, 0xec, 0x05, 0xc5, 0x2e, 0x04, 0x93, 0xef, + 0x31, 0xa1, 0x2d, 0x3d, 0x92, 0x60, 0xf7, 0x9a, + 0x28, 0x9d, 0x6a, 0x37, 0x9b, 0xc7, 0x0c, 0x50, + 0x84, 0x14, 0x73, 0xd1, 0xa8, 0xcc, 0x81, 0xec, + 0x58, 0x3e, 0x96, 0x45, 0xe0, 0x7b, 0x8d, 0x96, + 0x70, 0x65, 0x5b, 0xa5, 0xbb, 0xcf, 0xec, 0xc6, + 0xdc, 0x39, 0x66, 0x38, 0x0a, 0xd8, 0xfe, 0xcb, + 0x17, 0xb6, 0xba, 0x02, 0x46, 0x9a, 0x02, 0x0a, + 0x84, 0xe1, 0x8e, 0x8f, 0x84, 0x25, 0x20, 0x70, + 0xc1, 0x3e, 0x9f, 0x1f, 0x28, 0x9b, 0xe5, 0x4f, + 0xbc, 0x48, 0x14, 0x57, 0x77, 0x8f, 0x61, 0x60, + 0x15, 0xe1, 0x32, 0x7a, 0x02, 0xb1, 0x40, 0xf1, + 0x50, 0x5e, 0xb3, 0x09, 0x32, 0x6d, 0x68, 0x37, + 0x8f, 0x83, 0x74, 0x59, 0x5c, 0x84, 0x9d, 0x84, + 0xf4, 0xc3, 0x33, 0xec, 0x44, 0x23, 0x88, 0x51, + 0x43, 0xcb, 0x47, 0xbd, 0x71, 0xc5, 0xed, 0xae, + 0x9b, 0xe6, 0x9a, 0x2f, 0xfe, 0xce, 0xb1, 0xbe, + 0xc9, 0xde, 0x24, 0x4f, 0xbe, 0x15, 0x99, 0x2b, + 0x11, 0xb7, 0x7c, 0x04, 0x0f, 0x12, 0xbd, 0x8f, + 0x6a, 0x97, 0x5a, 0x44, 0xa0, 0xf9, 0x0c, 0x29, + 0xa9, 0xab, 0xc3, 0xd4, 0xd8, 0x93, 0x92, 0x72, + 0x84, 0xc5, 0x87, 0x54, 0xcc, 0xe2, 0x94, 0x52, + 0x9f, 0x86, 0x14, 0xdc, 0xd2, 0xab, 0xa9, 0x91, + 0x92, 0x5f, 0xed, 0xc4, 0xae, 0x74, 0xff, 0xac, + 0x6e, 0x33, 0x3b, 0x93, 0xeb, 0x4a, 0xff, 0x04, + 0x79, 0xda, 0x9a, 0x41, 0x0e, 0x44, 0x50, 0xe0, + 0xdd, 0x7a, 0xe4, 0xc6, 0xe2, 0x91, 0x09, 0x00, + 0x57, 0x5d, 0xa4, 0x01, 0xfc, 0x07, 0x05, 0x9f, + 0x64, 0x5e, 0x8b, 0x7e, 0x9b, 0xfd, 0xef, 0x33, + 0x94, 0x30, 0x54, 0xff, 0x84, 0x01, 0x14, 0x93, + 0xc2, 0x7b, 0x34, 0x29, 0xea, 0xed, 0xb4, 0xed, + 0x53, 0x76, 0x44, 0x1a, 0x77, 0xed, 0x43, 0x85, + 0x1a, 0xd7, 0x7f, 0x16, 0xf5, 0x41, 0xdf, 0xd2, + 0x69, 0xd5, 0x0d, 0x6a, 0x5f, 0x14, 0xfb, 0x0a, + 0xab, 0x1c, 0xbb, 0x4c, 0x15, 0x50, 0xbe, 0x97, + 0xf7, 0xab, 0x40, 0x66, 0x19, 0x3c, 0x4c, 0xaa, + 0x77, 0x3d, 0xad, 0x38, 0x01, 0x4b, 0xd2, 0x09, + 0x2f, 0xa7, 0x55, 0xc8, 0x24, 0xbb, 0x5e, 0x54, + 0xc4, 0xf3, 0x6f, 0xfd, 0xa9, 0xfc, 0xea, 0x70, + 0xb9, 0xc6, 0xe6, 0x93, 0xe1, 0x48, 0xc1, 0x51, + }, + }, + { + 0x0000ffffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0x77, 0xa3, 0x12, 0x51, 0x61, 0x8a, 0x15, 0xe6, + 0xb9, 0x2d, 0x1d, 0x66, 0xdf, 0xfe, 0x7b, 0x50, + 0xb5, 0x0b, 0xad, 0x55, 0x23, 0x05, 0xba, 0x02, + 0x17, 0xa6, 0x10, 0x68, 0x8e, 0xff, 0x7e, 0x11, + 0xe1, 0xd0, 0x22, 0x54, 0x38, 0xe0, 0x93, 0x24, + 0x2d, 0x6d, 0xb2, 0x74, 0xfd, 0xe8, 0x01, 0xd4, + 0xca, 0xe0, 0x6f, 0x20, 0x92, 0xc7, 0x28, 0xb2, + 0x47, 0x85, 0x59, 0xdf, 0x58, 0xe8, 0x37, 0xc2, + 0x46, 0x9e, 0xe4, 0xa4, 0xfa, 0x79, 0x4e, 0x4b, + 0xbc, 0x7f, 0x39, 0xbc, 0x02, 0x6e, 0x3c, 0xb7, + 0x2c, 0x33, 0xb0, 0x88, 0x8f, 0x25, 0xb4, 0xac, + 0xf5, 0x6a, 0x2a, 0x98, 0x04, 0xf1, 0xce, 0x6d, + 0x3d, 0x6e, 0x1d, 0xc6, 0xca, 0x18, 0x1d, 0x4b, + 0x54, 0x61, 0x79, 0xd5, 0x55, 0x44, 0xaa, 0x77, + 0x60, 0xc4, 0x0d, 0x06, 0x74, 0x15, 0x39, 0xc7, + 0xe3, 0xcd, 0x9d, 0x2f, 0x66, 0x50, 0xb2, 0x01, + 0x3f, 0xd0, 0xee, 0xb8, 0xc2, 0xb8, 0xe3, 0xd8, + 0xd2, 0x40, 0xcc, 0xae, 0x2d, 0x4c, 0x98, 0x32, + 0x0a, 0x74, 0x42, 0xe1, 0xc8, 0xd7, 0x5a, 0x42, + 0xd6, 0xe6, 0xcf, 0xa4, 0xc2, 0xec, 0xa1, 0x79, + 0x8d, 0x15, 0x8c, 0x7a, 0xec, 0xdf, 0x82, 0x49, + 0x0f, 0x24, 0xbb, 0x9b, 0x38, 0xe1, 0x08, 0xbc, + 0xda, 0x12, 0xc3, 0xfa, 0xf9, 0xa2, 0x11, 0x41, + 0xc3, 0x61, 0x3b, 0x58, 0x36, 0x7f, 0x92, 0x2a, + 0xaa, 0x26, 0xcd, 0x22, 0xf2, 0x3d, 0x70, 0x8d, + 0xae, 0x69, 0x9a, 0xd7, 0xcb, 0x40, 0xa8, 0xad, + 0x0b, 0x6e, 0x27, 0x84, 0x97, 0x3d, 0xcb, 0x60, + 0x56, 0x84, 0xc0, 0x8b, 0x8d, 0x69, 0x98, 0xc6, + 0x9a, 0xac, 0x04, 0x99, 0x21, 0x87, 0x1e, 0xbb, + 0x65, 0x30, 0x1a, 0x46, 0x19, 0xca, 0x80, 0xec, + 0xb4, 0x85, 0xa3, 0x1d, 0x74, 0x42, 0x23, 0xce, + 0x8d, 0xdc, 0x23, 0x94, 0x82, 0x8d, 0x6a, 0x80, + 0x47, 0x0c, 0x09, 0x2f, 0x5b, 0xa4, 0x13, 0xc3, + 0x37, 0x8f, 0xa6, 0x05, 0x42, 0x55, 0xc6, 0xf9, + 0xdf, 0x44, 0x95, 0x86, 0x2b, 0xbb, 0x32, 0x87, + 0x68, 0x1f, 0x93, 0x1b, 0x68, 0x7c, 0x88, 0x8a, + 0xbf, 0x84, 0x4d, 0xfc, 0x8f, 0xc2, 0x83, 0x31, + 0xe5, 0x79, 0x92, 0x8c, 0xd1, 0x2b, 0xd2, 0x39, + 0x0a, 0xe1, 0x23, 0xcf, 0x03, 0x81, 0x8d, 0x14, + 0xde, 0xdd, 0xe5, 0xc0, 0xc2, 0x4c, 0x8a, 0xb0, + 0x18, 0xbf, 0xca, 0x75, 0xca, 0x09, 0x6f, 0x2d, + 0x53, 0x1f, 0x3d, 0x16, 0x19, 0xe7, 0x85, 0xf1, + 0xad, 0xa4, 0x37, 0xca, 0xb9, 0x2e, 0x98, 0x05, + 0x58, 0xb3, 0xdc, 0xe1, 0x47, 0x4a, 0xfb, 0x75, + 0xbf, 0xed, 0xbf, 0x8f, 0xf5, 0x4c, 0xb2, 0x61, + 0x8e, 0x02, 0x44, 0xc9, 0xac, 0x0d, 0x3c, 0x66, + 0xfb, 0x51, 0x59, 0x8c, 0xd2, 0xdb, 0x11, 0xf9, + 0xbe, 0x39, 0x79, 0x1a, 0xbe, 0x44, 0x7c, 0x63, + 0x09, 0x4f, 0x7c, 0x45, 0x3b, 0x7f, 0xf8, 0x7c, + 0xb5, 0xbb, 0x36, 0xb7, 0xc7, 0x9e, 0xfb, 0x08, + 0x72, 0xd1, 0x70, 0x58, 0xb8, 0x3b, 0x15, 0xab, + 0x08, 0x66, 0xad, 0x8a, 0x58, 0x65, 0x6c, 0x5a, + 0x7e, 0x20, 0xdb, 0xdf, 0x30, 0x8b, 0x24, 0x61, + 0xd9, 0x7c, 0x0e, 0xc0, 0x02, 0x4a, 0x27, 0x15, + 0x05, 0x52, 0x49, 0xcf, 0x3b, 0x47, 0x8d, 0xdd, + 0x47, 0x40, 0xde, 0x65, 0x4f, 0x75, 0xca, 0x68, + 0x6e, 0x0d, 0x73, 0x45, 0xc6, 0x9e, 0xd5, 0x0c, + 0xdc, 0x2a, 0x8b, 0x33, 0x2b, 0x1f, 0x88, 0x24, + 0x10, 0x8a, 0xc9, 0x37, 0xeb, 0x05, 0x05, 0x85, + 0x60, 0x8e, 0xe7, 0x34, 0x09, 0x7f, 0xc0, 0x90, + 0x54, 0xfb, 0xff, 0x89, 0xee, 0xae, 0xea, 0x79, + 0x1f, 0x4a, 0x7a, 0xb1, 0xf9, 0x86, 0x82, 0x94, + 0xa4, 0xf9, 0xe2, 0x7b, 0x42, 0xaf, 0x81, 0x00, + 0xcb, 0x9d, 0x59, 0xce, 0xf9, 0x64, 0x58, 0x03, + }, + }, + { + 0x00ffffffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0xe3, 0x87, 0xaa, 0xa5, 0x8b, 0xa4, 0x83, 0xaf, + 0xa7, 0xe8, 0xeb, 0x46, 0x97, 0x78, 0x31, 0x7e, + 0xcf, 0x4c, 0xf5, 0x73, 0xaa, 0x9d, 0x4e, 0xac, + 0x23, 0xf2, 0xcd, 0xf9, 0x14, 0xe4, 0xe2, 0x00, + 0xa8, 0xb4, 0x90, 0xe4, 0x2e, 0xe6, 0x46, 0x80, + 0x2d, 0xc6, 0xee, 0x2b, 0x47, 0x1b, 0x27, 0x81, + 0x95, 0xd6, 0x09, 0x18, 0xec, 0xec, 0xb4, 0x4b, + 0xf7, 0x99, 0x66, 0xf8, 0x3f, 0xab, 0xa0, 0x49, + 0x92, 0x98, 0xeb, 0xc6, 0x99, 0xc0, 0xc8, 0x63, + 0x47, 0x15, 0xa3, 0x20, 0xbb, 0x4f, 0x07, 0x5d, + 0x62, 0x2e, 0x74, 0xc8, 0xc9, 0x32, 0x00, 0x4f, + 0x25, 0xb4, 0x1e, 0x36, 0x10, 0x25, 0xb5, 0xa8, + 0x78, 0x15, 0x39, 0x1f, 0x61, 0x08, 0xfc, 0x4a, + 0xfa, 0x6a, 0x05, 0xd9, 0x30, 0x3c, 0x6b, 0xa6, + 0x8a, 0x12, 0x8a, 0x55, 0x70, 0x5d, 0x41, 0x59, + 0x85, 0x83, 0x2f, 0xde, 0xaa, 0xe6, 0xc8, 0xe1, + 0x91, 0x10, 0xe8, 0x4d, 0x1b, 0x1f, 0x19, 0x9a, + 0x26, 0x92, 0x11, 0x9e, 0xdc, 0x96, 0x13, 0x26, + 0x58, 0xf0, 0x9d, 0xa7, 0xc6, 0x23, 0xef, 0xce, + 0xc7, 0x12, 0x53, 0x7a, 0x3d, 0x94, 0xc0, 0xbf, + 0x5d, 0x7e, 0x35, 0x2e, 0xc9, 0x4a, 0xe5, 0x79, + 0x7f, 0xdb, 0x37, 0x7d, 0xc1, 0x55, 0x11, 0x50, + 0x72, 0x1a, 0xdf, 0x15, 0xbd, 0x26, 0xa8, 0xef, + 0xc2, 0xfc, 0xaa, 0xd5, 0x68, 0x81, 0xfa, 0x9e, + 0x62, 0x46, 0x2c, 0x28, 0xf3, 0x0a, 0xe1, 0xce, + 0xac, 0xa9, 0x3c, 0x34, 0x5c, 0xf2, 0x43, 0xb7, + 0x3f, 0x54, 0x2e, 0x20, 0x74, 0xa7, 0x05, 0xbd, + 0x26, 0x43, 0xbb, 0x9f, 0x7c, 0xc7, 0x9b, 0xb6, + 0xe7, 0x09, 0x1e, 0xa6, 0xe2, 0x32, 0xdf, 0x0f, + 0x9a, 0xd0, 0xd6, 0xcf, 0x50, 0x23, 0x27, 0x87, + 0x6d, 0x82, 0x20, 0x7a, 0xbf, 0x21, 0x15, 0xcd, + 0xac, 0xf6, 0xd5, 0xa4, 0x8f, 0x6c, 0x18, 0x79, + 0xa6, 0x5b, 0x11, 0x5f, 0x0f, 0x8b, 0x3c, 0xb3, + 0xc5, 0x9d, 0x15, 0xdd, 0x8c, 0x76, 0x9b, 0xc0, + 0x14, 0x79, 0x5a, 0x18, 0x37, 0xf3, 0x90, 0x1b, + 0x58, 0x45, 0xeb, 0x49, 0x1a, 0xdf, 0xef, 0xe0, + 0x97, 0xb1, 0xfa, 0x30, 0xa1, 0x2f, 0xc1, 0xf6, + 0x5b, 0xa2, 0x29, 0x05, 0x03, 0x15, 0x39, 0x97, + 0x1a, 0x10, 0xf2, 0xf3, 0x6c, 0x32, 0x1b, 0xb5, + 0x13, 0x31, 0xcd, 0xef, 0xb3, 0x9e, 0x39, 0x64, + 0xc7, 0xef, 0x07, 0x99, 0x94, 0xf5, 0xb6, 0x9b, + 0x2e, 0xdd, 0x83, 0xa7, 0x1e, 0xf5, 0x49, 0x97, + 0x1e, 0xe9, 0x3f, 0x44, 0xea, 0xc3, 0x93, 0x8f, + 0xcd, 0xd6, 0x1d, 0x01, 0xfa, 0x71, 0x79, 0x9d, + 0xa3, 0xa8, 0x09, 0x1c, 0x4c, 0x48, 0xaa, 0x9e, + 0xd2, 0x63, 0xff, 0x07, 0x49, 0xdf, 0x95, 0xd4, + 0x4f, 0xef, 0x6a, 0x0b, 0xb5, 0x78, 0xec, 0x69, + 0x45, 0x6a, 0xa5, 0x40, 0x8a, 0xe3, 0x2c, 0x7a, + 0xf0, 0x8a, 0xd7, 0xba, 0x89, 0x21, 0x28, 0x7e, + 0x3b, 0xbe, 0xe3, 0x1b, 0x76, 0x7b, 0xe0, 0x6a, + 0x0e, 0x70, 0x5c, 0x86, 0x4a, 0x76, 0x91, 0x37, + 0xdf, 0x28, 0x29, 0x22, 0x83, 0xea, 0x81, 0xa2, + 0x48, 0x02, 0x41, 0xb4, 0x4d, 0x99, 0x21, 0xcd, + 0xbe, 0xc1, 0xbc, 0x28, 0xdc, 0x1f, 0xda, 0x11, + 0x4b, 0xd8, 0xe5, 0x21, 0x7a, 0xc9, 0xd8, 0xeb, + 0xaf, 0xa7, 0x20, 0xe9, 0xda, 0x4f, 0x9a, 0xce, + 0x23, 0x1c, 0xc9, 0x49, 0xe5, 0xb9, 0x6f, 0xe7, + 0x6f, 0xfc, 0x21, 0x06, 0x3f, 0xdd, 0xc8, 0x3a, + 0x6b, 0x86, 0x79, 0xc0, 0x0d, 0x35, 0xe0, 0x95, + 0x76, 0xa8, 0x75, 0x30, 0x5b, 0xed, 0x5f, 0x36, + 0xed, 0x24, 0x2c, 0x89, 0x00, 0xdd, 0x1f, 0xa9, + 0x65, 0xbc, 0x95, 0x0d, 0xfc, 0xe0, 0x9b, 0x13, + 0x22, 0x63, 0xa1, 0xee, 0xf5, 0x2d, 0xd6, 0x88, + 0x8c, 0x30, 0x9f, 0x5a, 0x7d, 0x71, 0x28, 0x26, + }, + }, + { + 0xffffffffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0xbf, 0x53, 0xd2, 0xda, 0xde, 0x78, 0xe8, 0x22, + 0xa4, 0xd9, 0x49, 0xa9, 0xbc, 0x67, 0x66, 0xb0, + 0x1b, 0x06, 0xa8, 0xef, 0x70, 0xd2, 0x67, 0x48, + 0xc6, 0xa7, 0xfc, 0x36, 0xd8, 0x0a, 0xe4, 0xc5, + 0x52, 0x0f, 0x7c, 0x4a, 0xb0, 0xac, 0x85, 0x44, + 0x42, 0x4f, 0xa4, 0x05, 0x16, 0x2f, 0xef, 0x5a, + 0x6b, 0x7f, 0x22, 0x94, 0x98, 0x06, 0x36, 0x18, + 0xd3, 0x9f, 0x00, 0x03, 0xcb, 0x5f, 0xb8, 0xd1, + 0xc8, 0x6b, 0x64, 0x34, 0x97, 0xda, 0x1f, 0xf9, + 0x45, 0xc8, 0xd3, 0xbe, 0xde, 0xca, 0x4f, 0x47, + 0x97, 0x02, 0xa7, 0xa7, 0x35, 0xf0, 0x43, 0xdd, + 0xb1, 0xd6, 0xaa, 0xad, 0xe3, 0xc4, 0xa0, 0xac, + 0x7c, 0xa7, 0xf3, 0xfa, 0x52, 0x79, 0xbe, 0xf5, + 0x6f, 0x82, 0xcd, 0x7a, 0x2f, 0x38, 0x67, 0x2e, + 0x82, 0x48, 0x14, 0xe1, 0x07, 0x00, 0x30, 0x0a, + 0x05, 0x5e, 0x16, 0x30, 0xb8, 0xf1, 0xcb, 0x0e, + 0x91, 0x9f, 0x5e, 0x94, 0x20, 0x10, 0xa4, 0x16, + 0xe2, 0xbf, 0x48, 0xcb, 0x46, 0x99, 0x3d, 0x3c, + 0xb6, 0xa5, 0x1c, 0x19, 0xba, 0xcf, 0x86, 0x47, + 0x85, 0xa0, 0x0b, 0xc2, 0xec, 0xff, 0x15, 0xd3, + 0x50, 0x87, 0x5b, 0x24, 0x6e, 0xd5, 0x3e, 0x68, + 0xbe, 0x6f, 0x55, 0xbd, 0x7e, 0x05, 0xcf, 0xc2, + 0xb2, 0xed, 0x64, 0x32, 0x19, 0x8a, 0x64, 0x44, + 0xb6, 0xd8, 0xc2, 0x47, 0xfa, 0xb9, 0x41, 0xf5, + 0x69, 0x76, 0x8b, 0x5c, 0x42, 0x93, 0x66, 0xf1, + 0xd3, 0xf0, 0x0f, 0x03, 0x45, 0xb9, 0x61, 0x23, + 0xd5, 0x62, 0x04, 0xc0, 0x1c, 0x63, 0xb2, 0x2c, + 0xe7, 0x8b, 0xaf, 0x11, 0x6e, 0x52, 0x5e, 0xd9, + 0x0f, 0xde, 0xa3, 0x9f, 0xa4, 0x69, 0x49, 0x4d, + 0x38, 0x66, 0xc3, 0x1e, 0x05, 0xf2, 0x95, 0xff, + 0x21, 0xfe, 0xa8, 0xd4, 0xe6, 0xe1, 0x3d, 0x67, + 0xe4, 0x7c, 0xe7, 0x22, 0xe9, 0x69, 0x8a, 0x1c, + 0x10, 0x48, 0xd6, 0x8e, 0xbc, 0xde, 0x76, 0xb8, + 0x6f, 0xcf, 0x97, 0x6e, 0xab, 0x8a, 0xa9, 0x79, + 0x02, 0x68, 0xb7, 0x06, 0x8e, 0x01, 0x7a, 0x8b, + 0x9b, 0x74, 0x94, 0x09, 0x51, 0x4f, 0x10, 0x53, + 0x02, 0x7f, 0xd1, 0x6c, 0x37, 0x86, 0xea, 0x1b, + 0xac, 0x5f, 0x15, 0xcb, 0x79, 0x71, 0x1e, 0xe2, + 0xab, 0xe8, 0x2f, 0x5c, 0xf8, 0xb1, 0x3a, 0xe7, + 0x30, 0x30, 0xef, 0x5b, 0x9e, 0x44, 0x57, 0xe7, + 0x5d, 0x13, 0x04, 0xf9, 0x88, 0xd6, 0x2d, 0xd6, + 0xfc, 0x4b, 0x94, 0xed, 0x38, 0xba, 0x83, 0x1d, + 0xa4, 0xb7, 0x63, 0x49, 0x71, 0xb6, 0xcd, 0x8e, + 0xc3, 0x25, 0xd9, 0xc6, 0x1c, 0x00, 0xf1, 0xdf, + 0x73, 0x62, 0x7e, 0xd3, 0x74, 0x5a, 0x5e, 0x84, + 0x89, 0xf3, 0xa9, 0x5c, 0x69, 0x63, 0x9c, 0x32, + 0xcd, 0x6e, 0x1d, 0x53, 0x7a, 0x85, 0xf7, 0x5c, + 0xc8, 0x44, 0x72, 0x6e, 0x8a, 0x72, 0xfc, 0x00, + 0x77, 0xad, 0x22, 0x00, 0x0f, 0x1d, 0x50, 0x78, + 0xf6, 0xb8, 0x66, 0x31, 0x8c, 0x66, 0x8f, 0x1a, + 0xd0, 0x3d, 0x5a, 0x5f, 0xce, 0xd5, 0x21, 0x9f, + 0x2e, 0xab, 0xbd, 0x0a, 0xa5, 0xc0, 0xf4, 0x60, + 0xd1, 0x83, 0xf0, 0x44, 0x04, 0xa0, 0xd6, 0xf4, + 0x69, 0x55, 0x8e, 0x81, 0xfa, 0xb2, 0x4a, 0x16, + 0x79, 0x05, 0xab, 0x4c, 0x78, 0x78, 0x50, 0x2a, + 0xd3, 0xe3, 0x8f, 0xdb, 0xe6, 0x2a, 0x41, 0x55, + 0x6c, 0xec, 0x37, 0x32, 0x57, 0x59, 0x53, 0x3c, + 0xe8, 0xf2, 0x5f, 0x36, 0x7c, 0x87, 0xbb, 0x55, + 0x78, 0xd6, 0x67, 0xae, 0x93, 0xf9, 0xe2, 0xfd, + 0x99, 0xbc, 0xbc, 0x5f, 0x2f, 0xbb, 0xa8, 0x8c, + 0xf6, 0x51, 0x61, 0x39, 0x42, 0x0f, 0xcf, 0xf3, + 0xb7, 0x36, 0x1d, 0x86, 0x32, 0x2c, 0x4b, 0xd8, + 0x4c, 0x82, 0xf3, 0x35, 0xab, 0xb1, 0x52, 0xc4, + 0xa9, 0x34, 0x11, 0x37, 0x3a, 0xaa, 0x82, 0x20, + }, + }, + { + 0xffffffffffULL, + 64, + { + 0x27, 0x18, 0x28, 0x18, 0x28, 0x45, 0x90, 0x45, + 0x23, 0x53, 0x60, 0x28, 0x74, 0x71, 0x35, 0x26, + 0x62, 0x49, 0x77, 0x57, 0x24, 0x70, 0x93, 0x69, + 0x99, 0x59, 0x57, 0x49, 0x66, 0x96, 0x76, 0x27, + 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, + 0x23, 0x84, 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, + 0x02, 0x88, 0x41, 0x97, 0x16, 0x93, 0x99, 0x37, + 0x51, 0x05, 0x82, 0x09, 0x74, 0x94, 0x45, 0x92, + }, + 512, + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + }, { + 0x64, 0x49, 0x7e, 0x5a, 0x83, 0x1e, 0x4a, 0x93, + 0x2c, 0x09, 0xbe, 0x3e, 0x53, 0x93, 0x37, 0x6d, + 0xaa, 0x59, 0x95, 0x48, 0xb8, 0x16, 0x03, 0x1d, + 0x22, 0x4b, 0xbf, 0x50, 0xa8, 0x18, 0xed, 0x23, + 0x50, 0xea, 0xe7, 0xe9, 0x60, 0x87, 0xc8, 0xa0, + 0xdb, 0x51, 0xad, 0x29, 0x0b, 0xd0, 0x0c, 0x1a, + 0xc1, 0x62, 0x08, 0x57, 0x63, 0x5b, 0xf2, 0x46, + 0xc1, 0x76, 0xab, 0x46, 0x3b, 0xe3, 0x0b, 0x80, + 0x8d, 0xa5, 0x48, 0x08, 0x1a, 0xc8, 0x47, 0xb1, + 0x58, 0xe1, 0x26, 0x4b, 0xe2, 0x5b, 0xb0, 0x91, + 0x0b, 0xbc, 0x92, 0x64, 0x71, 0x08, 0x08, 0x94, + 0x15, 0xd4, 0x5f, 0xab, 0x1b, 0x3d, 0x26, 0x04, + 0xe8, 0xa8, 0xef, 0xf1, 0xae, 0x40, 0x20, 0xcf, + 0xa3, 0x99, 0x36, 0xb6, 0x68, 0x27, 0xb2, 0x3f, + 0x37, 0x1b, 0x92, 0x20, 0x0b, 0xe9, 0x02, 0x51, + 0xe6, 0xd7, 0x3c, 0x5f, 0x86, 0xde, 0x5f, 0xd4, + 0xa9, 0x50, 0x78, 0x19, 0x33, 0xd7, 0x9a, 0x28, + 0x27, 0x2b, 0x78, 0x2a, 0x2e, 0xc3, 0x13, 0xef, + 0xdf, 0xcc, 0x06, 0x28, 0xf4, 0x3d, 0x74, 0x4c, + 0x2d, 0xc2, 0xff, 0x3d, 0xcb, 0x66, 0x99, 0x9b, + 0x50, 0xc7, 0xca, 0x89, 0x5b, 0x0c, 0x64, 0x79, + 0x1e, 0xea, 0xa5, 0xf2, 0x94, 0x99, 0xfb, 0x1c, + 0x02, 0x6f, 0x84, 0xce, 0x5b, 0x5c, 0x72, 0xba, + 0x10, 0x83, 0xcd, 0xdb, 0x5c, 0xe4, 0x54, 0x34, + 0x63, 0x16, 0x65, 0xc3, 0x33, 0xb6, 0x0b, 0x11, + 0x59, 0x3f, 0xb2, 0x53, 0xc5, 0x17, 0x9a, 0x2c, + 0x8d, 0xb8, 0x13, 0x78, 0x2a, 0x00, 0x48, 0x56, + 0xa1, 0x65, 0x30, 0x11, 0xe9, 0x3f, 0xb6, 0xd8, + 0x76, 0xc1, 0x83, 0x66, 0xdd, 0x86, 0x83, 0xf5, + 0x34, 0x12, 0xc0, 0xc1, 0x80, 0xf9, 0xc8, 0x48, + 0x59, 0x2d, 0x59, 0x3f, 0x86, 0x09, 0xca, 0x73, + 0x63, 0x17, 0xd3, 0x56, 0xe1, 0x3e, 0x2b, 0xff, + 0x3a, 0x9f, 0x59, 0xcd, 0x9a, 0xeb, 0x19, 0xcd, + 0x48, 0x25, 0x93, 0xd8, 0xc4, 0x61, 0x28, 0xbb, + 0x32, 0x42, 0x3b, 0x37, 0xa9, 0xad, 0xfb, 0x48, + 0x2b, 0x99, 0x45, 0x3f, 0xbe, 0x25, 0xa4, 0x1b, + 0xf6, 0xfe, 0xb4, 0xaa, 0x0b, 0xef, 0x5e, 0xd2, + 0x4b, 0xf7, 0x3c, 0x76, 0x29, 0x78, 0x02, 0x54, + 0x82, 0xc1, 0x31, 0x15, 0xe4, 0x01, 0x5a, 0xac, + 0x99, 0x2e, 0x56, 0x13, 0xa3, 0xb5, 0xc2, 0xf6, + 0x85, 0xb8, 0x47, 0x95, 0xcb, 0x6e, 0x9b, 0x26, + 0x56, 0xd8, 0xc8, 0x81, 0x57, 0xe5, 0x2c, 0x42, + 0xf9, 0x78, 0xd8, 0x63, 0x4c, 0x43, 0xd0, 0x6f, + 0xea, 0x92, 0x8f, 0x28, 0x22, 0xe4, 0x65, 0xaa, + 0x65, 0x76, 0xe9, 0xbf, 0x41, 0x93, 0x84, 0x50, + 0x6c, 0xc3, 0xce, 0x3c, 0x54, 0xac, 0x1a, 0x6f, + 0x67, 0xdc, 0x66, 0xf3, 0xb3, 0x01, 0x91, 0xe6, + 0x98, 0x38, 0x0b, 0xc9, 0x99, 0xb0, 0x5a, 0xbc, + 0xe1, 0x9d, 0xc0, 0xc6, 0xdc, 0xc2, 0xdd, 0x00, + 0x1e, 0xc5, 0x35, 0xba, 0x18, 0xde, 0xb2, 0xdf, + 0x1a, 0x10, 0x10, 0x23, 0x10, 0x83, 0x18, 0xc7, + 0x5d, 0xc9, 0x86, 0x11, 0xa0, 0x9d, 0xc4, 0x8a, + 0x0a, 0xcd, 0xec, 0x67, 0x6f, 0xab, 0xdf, 0x22, + 0x2f, 0x07, 0xe0, 0x26, 0xf0, 0x59, 0xb6, 0x72, + 0xb5, 0x6e, 0x5c, 0xbc, 0x8e, 0x1d, 0x21, 0xbb, + 0xd8, 0x67, 0xdd, 0x92, 0x72, 0x12, 0x05, 0x46, + 0x81, 0xd7, 0x0e, 0xa7, 0x37, 0x13, 0x4c, 0xdf, + 0xce, 0x93, 0xb6, 0xf8, 0x2a, 0xe2, 0x24, 0x23, + 0x27, 0x4e, 0x58, 0xa0, 0x82, 0x1c, 0xc5, 0x50, + 0x2e, 0x2d, 0x0a, 0xb4, 0x58, 0x5e, 0x94, 0xde, + 0x69, 0x75, 0xbe, 0x5e, 0x0b, 0x4e, 0xfc, 0xe5, + 0x1c, 0xd3, 0xe7, 0x0c, 0x25, 0xa1, 0xfb, 0xbb, + 0xd6, 0x09, 0xd2, 0x73, 0xad, 0x5b, 0x0d, 0x59, + 0x63, 0x1c, 0x53, 0x1f, 0x6a, 0x0a, 0x57, 0xb9, + }, + }, +}; +#define N_VECTORS (sizeof(aes_xts_test_vectors) / sizeof(*aes_xts_test_vectors)) + +int +main(int argc, char **argv) +{ + int allowed = 0, fail = 0; + size_t i; + struct aes_xts_tv *tv; + u_int8_t result[512]; + + if (geteuid() == 0) { + allowed = getallowsoft(); + if (allowed == 0) + setallowsoft(1); + } + + for (i = 0; i < N_VECTORS; i++) { + tv = &aes_xts_test_vectors[i]; + + /* Encrypt test */ + if (syscrypt(tv->key, tv->key_len, tv->seqno, tv->plaintext, + result, tv->text_len, 1) < 0) { + warnx("encrypt with /dev/crypto failed"); + fail++; + break; + } + if (!match(result, tv->ciphertext, tv->text_len)) { + fail++; + break; + } else + printf("OK encrypt test vector %zu\n", i); + + /* Decrypt test */ + if (syscrypt(tv->key, tv->key_len, tv->seqno, tv->ciphertext, + result, tv->text_len, 0) < 0) { + warnx("decrypt with /dev/crypto failed"); + fail++; + break; + } + if (!match(result, tv->plaintext, tv->text_len)) { + fail++; + break; + } else + printf("OK decrypt test vector %zu\n", i); + } + + if (geteuid() == 0 && allowed == 0) + setallowsoft(0); + exit((fail > 0) ? 1 : 0); +} +