summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvs2svn <admin@example.com>2005-04-29 05:37:33 +0000
committercvs2svn <admin@example.com>2005-04-29 05:37:33 +0000
commita65d091da086680881aa0b90833d4ade81492191 (patch)
tree6d2ff37f5aac1c66dda54bf0f519a6e885bd20a9
parent588543a0946f1dbf0f1dd5135f8f6447486dc183 (diff)
downloadopenbsd-a65d091da086680881aa0b90833d4ade81492191.tar.gz
openbsd-a65d091da086680881aa0b90833d4ade81492191.tar.bz2
openbsd-a65d091da086680881aa0b90833d4ade81492191.zip
This commit was manufactured by cvs2git to create tag 'OPENSSL_0_9_7G'.OPENSSL_0_9_7G
-rw-r--r--src/lib/libcrypto/idea/ideatest.c232
-rw-r--r--src/lib/libcrypto/mdc2/mdc2test.c146
-rwxr-xr-xsrc/lib/libcrypto/rc4/asm/rc4-amd64.pl227
-rw-r--r--src/lib/libcrypto/rc5/rc5_locl.h207
-rw-r--r--src/lib/libcrypto/rc5/rc5s.cpp70
-rw-r--r--src/lib/libcrypto/rc5/rc5test.c386
-rw-r--r--src/lib/libssl/src/crypto/idea/ideatest.c232
-rwxr-xr-xsrc/lib/libssl/src/crypto/rc4/asm/rc4-amd64.pl227
-rw-r--r--src/lib/libssl/src/crypto/rc5/rc5_locl.h207
-rw-r--r--src/lib/libssl/src/crypto/rc5/rc5s.cpp70
-rw-r--r--src/lib/libssl/src/crypto/rc5/rc5test.c386
-rw-r--r--src/lib/libssl/src/fips/aes/fingerprint.sha13
-rw-r--r--src/lib/libssl/src/fips/aes/fips_aes_core.c1263
-rw-r--r--src/lib/libssl/src/fips/aes/fips_aes_locl.h85
-rw-r--r--src/lib/libssl/src/fips/des/asm/fips-dx86-elf.s2697
-rw-r--r--src/lib/libssl/src/fips/des/fingerprint.sha15
-rw-r--r--src/lib/libssl/src/fips/des/fips_des_enc.c310
-rw-r--r--src/lib/libssl/src/fips/des/fips_des_locl.h428
-rw-r--r--src/lib/libssl/src/fips/des/fips_set_key.c417
-rw-r--r--src/lib/libssl/src/fips/dh/fingerprint.sha13
-rw-r--r--src/lib/libssl/src/fips/dsa/fingerprint.sha13
-rw-r--r--src/lib/libssl/src/fips/fingerprint.sha14
-rwxr-xr-xsrc/lib/libssl/src/fips/fips_check_sha18
-rw-r--r--src/lib/libssl/src/fips/fips_err.h118
-rw-r--r--src/lib/libssl/src/fips/fips_err_wrapper.c7
-rwxr-xr-xsrc/lib/libssl/src/fips/fips_make_sha130
-rw-r--r--src/lib/libssl/src/fips/rand/fingerprint.sha12
-rw-r--r--src/lib/libssl/src/fips/rsa/fingerprint.sha13
-rw-r--r--src/lib/libssl/src/fips/sha1/Makefile157
-rw-r--r--src/lib/libssl/src/fips/sha1/asm/sx86-elf.s1568
-rw-r--r--src/lib/libssl/src/fips/sha1/fingerprint.sha15
-rw-r--r--src/lib/libssl/src/fips/sha1/fips_md32_common.h623
-rw-r--r--src/lib/libssl/src/fips/sha1/fips_sha1_selftest.c97
-rw-r--r--src/lib/libssl/src/fips/sha1/fips_sha1dgst.c (renamed from src/lib/libssl/src/crypto/mdc2/mdc2test.c)92
-rw-r--r--src/lib/libssl/src/fips/sha1/fips_sha1test.c151
-rw-r--r--src/lib/libssl/src/fips/sha1/fips_sha_locl.h479
-rw-r--r--src/lib/libssl/src/fips/sha1/fips_standalone_sha1.c156
-rw-r--r--src/lib/libssl/src/fips/sha1/sha1hashes.txt342
-rw-r--r--src/lib/libssl/src/fips/sha1/sha1vectors.txt2293
-rw-r--r--src/lib/libssl/src/fips/sha1/standalone.sha16
-rw-r--r--src/lib/libssl/src/test/sha1hashes.txt342
-rw-r--r--src/lib/libssl/src/test/sha1vectors.txt2293
-rw-r--r--src/lib/libssl/test/sha1hashes.txt342
-rw-r--r--src/lib/libssl/test/sha1vectors.txt2293
44 files changed, 17000 insertions, 2015 deletions
diff --git a/src/lib/libcrypto/idea/ideatest.c b/src/lib/libcrypto/idea/ideatest.c
deleted file mode 100644
index 98f805d72a..0000000000
--- a/src/lib/libcrypto/idea/ideatest.c
+++ /dev/null
@@ -1,232 +0,0 @@
1/* crypto/idea/ideatest.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <string.h>
61#include <stdlib.h>
62
63#include "../e_os.h"
64
65#ifdef OPENSSL_NO_IDEA
66int main(int argc, char *argv[])
67{
68 printf("No IDEA support\n");
69 return(0);
70}
71#else
72#include <openssl/idea.h>
73
74unsigned char k[16]={
75 0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,
76 0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08};
77
78unsigned char in[8]={0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03};
79unsigned char c[8]={0x11,0xFB,0xED,0x2B,0x01,0x98,0x6D,0xE5};
80unsigned char out[80];
81
82char *text="Hello to all people out there";
83
84static unsigned char cfb_key[16]={
85 0xe1,0xf0,0xc3,0xd2,0xa5,0xb4,0x87,0x96,
86 0x69,0x78,0x4b,0x5a,0x2d,0x3c,0x0f,0x1e,
87 };
88static unsigned char cfb_iv[80]={0x34,0x12,0x78,0x56,0xab,0x90,0xef,0xcd};
89static unsigned char cfb_buf1[40],cfb_buf2[40],cfb_tmp[8];
90#define CFB_TEST_SIZE 24
91static unsigned char plain[CFB_TEST_SIZE]=
92 {
93 0x4e,0x6f,0x77,0x20,0x69,0x73,
94 0x20,0x74,0x68,0x65,0x20,0x74,
95 0x69,0x6d,0x65,0x20,0x66,0x6f,
96 0x72,0x20,0x61,0x6c,0x6c,0x20
97 };
98static unsigned char cfb_cipher64[CFB_TEST_SIZE]={
99 0x59,0xD8,0xE2,0x65,0x00,0x58,0x6C,0x3F,
100 0x2C,0x17,0x25,0xD0,0x1A,0x38,0xB7,0x2A,
101 0x39,0x61,0x37,0xDC,0x79,0xFB,0x9F,0x45
102
103/* 0xF9,0x78,0x32,0xB5,0x42,0x1A,0x6B,0x38,
104 0x9A,0x44,0xD6,0x04,0x19,0x43,0xC4,0xD9,
105 0x3D,0x1E,0xAE,0x47,0xFC,0xCF,0x29,0x0B,*/
106 };
107
108static int cfb64_test(unsigned char *cfb_cipher);
109static char *pt(unsigned char *p);
110int main(int argc, char *argv[])
111 {
112 int i,err=0;
113 IDEA_KEY_SCHEDULE key,dkey;
114 unsigned char iv[8];
115
116 idea_set_encrypt_key(k,&key);
117 idea_ecb_encrypt(in,out,&key);
118 if (memcmp(out,c,8) != 0)
119 {
120 printf("ecb idea error encrypting\n");
121 printf("got :");
122 for (i=0; i<8; i++)
123 printf("%02X ",out[i]);
124 printf("\n");
125 printf("expected:");
126 for (i=0; i<8; i++)
127 printf("%02X ",c[i]);
128 err=20;
129 printf("\n");
130 }
131
132 idea_set_decrypt_key(&key,&dkey);
133 idea_ecb_encrypt(c,out,&dkey);
134 if (memcmp(out,in,8) != 0)
135 {
136 printf("ecb idea error decrypting\n");
137 printf("got :");
138 for (i=0; i<8; i++)
139 printf("%02X ",out[i]);
140 printf("\n");
141 printf("expected:");
142 for (i=0; i<8; i++)
143 printf("%02X ",in[i]);
144 printf("\n");
145 err=3;
146 }
147
148 if (err == 0) printf("ecb idea ok\n");
149
150 memcpy(iv,k,8);
151 idea_cbc_encrypt((unsigned char *)text,out,strlen(text)+1,&key,iv,1);
152 memcpy(iv,k,8);
153 idea_cbc_encrypt(out,out,8,&dkey,iv,0);
154 idea_cbc_encrypt(&(out[8]),&(out[8]),strlen(text)+1-8,&dkey,iv,0);
155 if (memcmp(text,out,strlen(text)+1) != 0)
156 {
157 printf("cbc idea bad\n");
158 err=4;
159 }
160 else
161 printf("cbc idea ok\n");
162
163 printf("cfb64 idea ");
164 if (cfb64_test(cfb_cipher64))
165 {
166 printf("bad\n");
167 err=5;
168 }
169 else
170 printf("ok\n");
171
172 EXIT(err);
173 return(err);
174 }
175
176static int cfb64_test(unsigned char *cfb_cipher)
177 {
178 IDEA_KEY_SCHEDULE eks,dks;
179 int err=0,i,n;
180
181 idea_set_encrypt_key(cfb_key,&eks);
182 idea_set_decrypt_key(&eks,&dks);
183 memcpy(cfb_tmp,cfb_iv,8);
184 n=0;
185 idea_cfb64_encrypt(plain,cfb_buf1,(long)12,&eks,
186 cfb_tmp,&n,IDEA_ENCRYPT);
187 idea_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),
188 (long)CFB_TEST_SIZE-12,&eks,
189 cfb_tmp,&n,IDEA_ENCRYPT);
190 if (memcmp(cfb_cipher,cfb_buf1,CFB_TEST_SIZE) != 0)
191 {
192 err=1;
193 printf("idea_cfb64_encrypt encrypt error\n");
194 for (i=0; i<CFB_TEST_SIZE; i+=8)
195 printf("%s\n",pt(&(cfb_buf1[i])));
196 }
197 memcpy(cfb_tmp,cfb_iv,8);
198 n=0;
199 idea_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,&eks,
200 cfb_tmp,&n,IDEA_DECRYPT);
201 idea_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]),
202 (long)CFB_TEST_SIZE-17,&dks,
203 cfb_tmp,&n,IDEA_DECRYPT);
204 if (memcmp(plain,cfb_buf2,CFB_TEST_SIZE) != 0)
205 {
206 err=1;
207 printf("idea_cfb_encrypt decrypt error\n");
208 for (i=0; i<24; i+=8)
209 printf("%s\n",pt(&(cfb_buf2[i])));
210 }
211 return(err);
212 }
213
214static char *pt(unsigned char *p)
215 {
216 static char bufs[10][20];
217 static int bnum=0;
218 char *ret;
219 int i;
220 static char *f="0123456789ABCDEF";
221
222 ret= &(bufs[bnum++][0]);
223 bnum%=10;
224 for (i=0; i<8; i++)
225 {
226 ret[i*2]=f[(p[i]>>4)&0xf];
227 ret[i*2+1]=f[p[i]&0xf];
228 }
229 ret[16]='\0';
230 return(ret);
231 }
232#endif
diff --git a/src/lib/libcrypto/mdc2/mdc2test.c b/src/lib/libcrypto/mdc2/mdc2test.c
deleted file mode 100644
index c9abe99d92..0000000000
--- a/src/lib/libcrypto/mdc2/mdc2test.c
+++ /dev/null
@@ -1,146 +0,0 @@
1/* crypto/mdc2/mdc2test.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <stdlib.h>
61#include <string.h>
62
63#include "../e_os.h"
64
65#if defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_MDC2)
66#define OPENSSL_NO_MDC2
67#endif
68
69#ifdef OPENSSL_NO_MDC2
70int main(int argc, char *argv[])
71{
72 printf("No MDC2 support\n");
73 return(0);
74}
75#else
76#include <openssl/evp.h>
77#include <openssl/mdc2.h>
78
79#ifdef CHARSET_EBCDIC
80#include <openssl/ebcdic.h>
81#endif
82
83static unsigned char pad1[16]={
84 0x42,0xE5,0x0C,0xD2,0x24,0xBA,0xCE,0xBA,
85 0x76,0x0B,0xDD,0x2B,0xD4,0x09,0x28,0x1A
86 };
87
88static unsigned char pad2[16]={
89 0x2E,0x46,0x79,0xB5,0xAD,0xD9,0xCA,0x75,
90 0x35,0xD8,0x7A,0xFE,0xAB,0x33,0xBE,0xE2
91 };
92
93int main(int argc, char *argv[])
94 {
95 int ret=0;
96 unsigned char md[MDC2_DIGEST_LENGTH];
97 int i;
98 EVP_MD_CTX c;
99 static char *text="Now is the time for all ";
100
101#ifdef CHARSET_EBCDIC
102 ebcdic2ascii(text,text,strlen(text));
103#endif
104
105 EVP_MD_CTX_init(&c);
106 EVP_DigestInit_ex(&c,EVP_mdc2(), NULL);
107 EVP_DigestUpdate(&c,(unsigned char *)text,strlen(text));
108 EVP_DigestFinal_ex(&c,&(md[0]),NULL);
109
110 if (memcmp(md,pad1,MDC2_DIGEST_LENGTH) != 0)
111 {
112 for (i=0; i<MDC2_DIGEST_LENGTH; i++)
113 printf("%02X",md[i]);
114 printf(" <- generated\n");
115 for (i=0; i<MDC2_DIGEST_LENGTH; i++)
116 printf("%02X",pad1[i]);
117 printf(" <- correct\n");
118 ret=1;
119 }
120 else
121 printf("pad1 - ok\n");
122
123 EVP_DigestInit_ex(&c,EVP_mdc2(), NULL);
124 /* FIXME: use a ctl function? */
125 ((MDC2_CTX *)c.md_data)->pad_type=2;
126 EVP_DigestUpdate(&c,(unsigned char *)text,strlen(text));
127 EVP_DigestFinal_ex(&c,&(md[0]),NULL);
128
129 if (memcmp(md,pad2,MDC2_DIGEST_LENGTH) != 0)
130 {
131 for (i=0; i<MDC2_DIGEST_LENGTH; i++)
132 printf("%02X",md[i]);
133 printf(" <- generated\n");
134 for (i=0; i<MDC2_DIGEST_LENGTH; i++)
135 printf("%02X",pad2[i]);
136 printf(" <- correct\n");
137 ret=1;
138 }
139 else
140 printf("pad2 - ok\n");
141
142 EVP_MD_CTX_cleanup(&c);
143 EXIT(ret);
144 return(ret);
145 }
146#endif
diff --git a/src/lib/libcrypto/rc4/asm/rc4-amd64.pl b/src/lib/libcrypto/rc4/asm/rc4-amd64.pl
new file mode 100755
index 0000000000..9e0da8af99
--- /dev/null
+++ b/src/lib/libcrypto/rc4/asm/rc4-amd64.pl
@@ -0,0 +1,227 @@
1#!/usr/bin/env perl
2#
3# ====================================================================
4# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
5# project. Rights for redistribution and usage in source and binary
6# forms are granted according to the OpenSSL license.
7# ====================================================================
8#
9# 2.22x RC4 tune-up:-) It should be noted though that my hand [as in
10# "hand-coded assembler"] doesn't stand for the whole improvement
11# coefficient. It turned out that eliminating RC4_CHAR from config
12# line results in ~40% improvement (yes, even for C implementation).
13# Presumably it has everything to do with AMD cache architecture and
14# RAW or whatever penalties. Once again! The module *requires* config
15# line *without* RC4_CHAR! As for coding "secret," I bet on partial
16# register arithmetics. For example instead of 'inc %r8; and $255,%r8'
17# I simply 'inc %r8b'. Even though optimization manual discourages
18# to operate on partial registers, it turned out to be the best bet.
19# At least for AMD... How IA32E would perform remains to be seen...
20
21# As was shown by Marc Bevand reordering of couple of load operations
22# results in even higher performance gain of 3.3x:-) At least on
23# Opteron... For reference, 1x in this case is RC4_CHAR C-code
24# compiled with gcc 3.3.2, which performs at ~54MBps per 1GHz clock.
25# Latter means that if you want to *estimate* what to expect from
26# *your* CPU, then multiply 54 by 3.3 and clock frequency in GHz.
27
28# Intel P4 EM64T core was found to run the AMD64 code really slow...
29# The only way to achieve comparable performance on P4 is to keep
30# RC4_CHAR. Kind of ironic, huh? As it's apparently impossible to
31# compose blended code, which would perform even within 30% marginal
32# on either AMD and Intel platforms, I implement both cases. See
33# rc4_skey.c for further details... This applies to 0.9.8 and later.
34# In 0.9.7 context RC4_CHAR codepath is never engaged and ~70 bytes
35# of code remain redundant.
36
37$output=shift;
38
39$win64a=1 if ($output =~ /win64a.[s|asm]/);
40
41open STDOUT,">$output" || die "can't open $output: $!";
42
43if (defined($win64a)) {
44 $dat="%rcx"; # arg1
45 $len="%rdx"; # arg2
46 $inp="%rsi"; # r8, arg3 moves here
47 $out="%rdi"; # r9, arg4 moves here
48} else {
49 $dat="%rdi"; # arg1
50 $len="%rsi"; # arg2
51 $inp="%rdx"; # arg3
52 $out="%rcx"; # arg4
53}
54
55$XX="%r10";
56$TX="%r8";
57$YY="%r11";
58$TY="%r9";
59
60sub PTR() {
61 my $ret=shift;
62 if (defined($win64a)) {
63 $ret =~ s/\[([\S]+)\+([\S]+)\]/[$2+$1]/g; # [%rN+%rM*4]->[%rM*4+%rN]
64 $ret =~ s/:([^\[]+)\[([^\]]+)\]/:[$2+$1]/g; # :off[ea]->:[ea+off]
65 } else {
66 $ret =~ s/[\+\*]/,/g; # [%rN+%rM*4]->[%rN,%rM,4]
67 $ret =~ s/\[([^\]]+)\]/($1)/g; # [%rN]->(%rN)
68 }
69 $ret;
70}
71
72$code=<<___ if (!defined($win64a));
73.text
74
75.globl RC4
76.type RC4,\@function
77.align 16
78RC4: or $len,$len
79 jne .Lentry
80 repret
81.Lentry:
82___
83$code=<<___ if (defined($win64a));
84_TEXT SEGMENT
85PUBLIC RC4
86ALIGN 16
87RC4 PROC
88 or $len,$len
89 jne .Lentry
90 repret
91.Lentry:
92 push %rdi
93 push %rsi
94 sub \$40,%rsp
95 mov %r8,$inp
96 mov %r9,$out
97___
98$code.=<<___;
99 add \$8,$dat
100 movl `&PTR("DWORD:-8[$dat]")`,$XX#d
101 movl `&PTR("DWORD:-4[$dat]")`,$YY#d
102 cmpl \$-1,`&PTR("DWORD:256[$dat]")`
103 je .LRC4_CHAR
104 test \$-8,$len
105 jz .Lloop1
106.align 16
107.Lloop8:
108 inc $XX#b
109 movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
110 add $TX#b,$YY#b
111 movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
112 movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
113 movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
114 add $TX#b,$TY#b
115 inc $XX#b
116 movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
117 movb `&PTR("BYTE:[$dat+$TY*4]")`,%al
118___
119for ($i=1;$i<=6;$i++) {
120$code.=<<___;
121 add $TX#b,$YY#b
122 ror \$8,%rax
123 movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
124 movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
125 movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
126 add $TX#b,$TY#b
127 inc $XX#b
128 movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
129 movb `&PTR("BYTE:[$dat+$TY*4]")`,%al
130___
131}
132$code.=<<___;
133 add $TX#b,$YY#b
134 ror \$8,%rax
135 movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
136 movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
137 movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
138 sub \$8,$len
139 add $TY#b,$TX#b
140 movb `&PTR("BYTE:[$dat+$TX*4]")`,%al
141 ror \$8,%rax
142 add \$8,$inp
143 add \$8,$out
144
145 xor `&PTR("QWORD:-8[$inp]")`,%rax
146 mov %rax,`&PTR("QWORD:-8[$out]")`
147
148 test \$-8,$len
149 jnz .Lloop8
150 cmp \$0,$len
151 jne .Lloop1
152.Lexit:
153 movl $XX#d,`&PTR("DWORD:-8[$dat]")`
154 movl $YY#d,`&PTR("DWORD:-4[$dat]")`
155___
156$code.=<<___ if (defined($win64a));
157 add \$40,%rsp
158 pop %rsi
159 pop %rdi
160___
161$code.=<<___;
162 repret
163.align 16
164.Lloop1:
165 movzb `&PTR("BYTE:[$inp]")`,%eax
166 inc $XX#b
167 movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
168 add $TX#b,$YY#b
169 movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
170 movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
171 movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
172 add $TY#b,$TX#b
173 movl `&PTR("DWORD:[$dat+$TX*4]")`,$TY#d
174 xor $TY,%rax
175 inc $inp
176 movb %al,`&PTR("BYTE:[$out]")`
177 inc $out
178 dec $len
179 jnz .Lloop1
180 jmp .Lexit
181
182.align 16
183.LRC4_CHAR:
184 inc $XX#b
185 movzb `&PTR("BYTE:[$dat+$XX]")`,$TX#d
186 add $TX#b,$YY#b
187 movzb `&PTR("BYTE:[$dat+$YY]")`,$TY#d
188 movb $TX#b,`&PTR("BYTE:[$dat+$YY]")`
189 movb $TY#b,`&PTR("BYTE:[$dat+$XX]")`
190 add $TX#b,$TY#b
191 movzb `&PTR("BYTE:[$dat+$TY]")`,$TY#d
192 xorb `&PTR("BYTE:[$inp]")`,$TY#b
193 movb $TY#b,`&PTR("BYTE:[$out]")`
194 inc $inp
195 inc $out
196 dec $len
197 jnz .LRC4_CHAR
198 jmp .Lexit
199___
200$code.=<<___ if (defined($win64a));
201RC4 ENDP
202_TEXT ENDS
203END
204___
205$code.=<<___ if (!defined($win64a));
206.size RC4,.-RC4
207___
208
209$code =~ s/#([bwd])/$1/gm;
210$code =~ s/\`([^\`]*)\`/eval $1/gem;
211
212if (defined($win64a)) {
213 $code =~ s/\.align/ALIGN/gm;
214 $code =~ s/[\$%]//gm;
215 $code =~ s/\.L/\$L/gm;
216 $code =~ s/([\w]+)([\s]+)([\S]+),([\S]+)/$1$2$4,$3/gm;
217 $code =~ s/([QD]*WORD|BYTE):/$1 PTR/gm;
218 $code =~ s/mov[bwlq]/mov/gm;
219 $code =~ s/movzb/movzx/gm;
220 $code =~ s/repret/DB\t0F3h,0C3h/gm;
221 $code =~ s/cmpl/cmp/gm;
222 $code =~ s/xorb/xor/gm;
223} else {
224 $code =~ s/([QD]*WORD|BYTE)://gm;
225 $code =~ s/repret/.byte\t0xF3,0xC3/gm;
226}
227print $code;
diff --git a/src/lib/libcrypto/rc5/rc5_locl.h b/src/lib/libcrypto/rc5/rc5_locl.h
deleted file mode 100644
index f4ebc23004..0000000000
--- a/src/lib/libcrypto/rc5/rc5_locl.h
+++ /dev/null
@@ -1,207 +0,0 @@
1/* crypto/rc5/rc5_locl.h */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdlib.h>
60
61#undef c2l
62#define c2l(c,l) (l =((unsigned long)(*((c)++))) , \
63 l|=((unsigned long)(*((c)++)))<< 8L, \
64 l|=((unsigned long)(*((c)++)))<<16L, \
65 l|=((unsigned long)(*((c)++)))<<24L)
66
67/* NOTE - c is not incremented as per c2l */
68#undef c2ln
69#define c2ln(c,l1,l2,n) { \
70 c+=n; \
71 l1=l2=0; \
72 switch (n) { \
73 case 8: l2 =((unsigned long)(*(--(c))))<<24L; \
74 case 7: l2|=((unsigned long)(*(--(c))))<<16L; \
75 case 6: l2|=((unsigned long)(*(--(c))))<< 8L; \
76 case 5: l2|=((unsigned long)(*(--(c)))); \
77 case 4: l1 =((unsigned long)(*(--(c))))<<24L; \
78 case 3: l1|=((unsigned long)(*(--(c))))<<16L; \
79 case 2: l1|=((unsigned long)(*(--(c))))<< 8L; \
80 case 1: l1|=((unsigned long)(*(--(c)))); \
81 } \
82 }
83
84#undef l2c
85#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
86 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
87 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
88 *((c)++)=(unsigned char)(((l)>>24L)&0xff))
89
90/* NOTE - c is not incremented as per l2c */
91#undef l2cn
92#define l2cn(l1,l2,c,n) { \
93 c+=n; \
94 switch (n) { \
95 case 8: *(--(c))=(unsigned char)(((l2)>>24L)&0xff); \
96 case 7: *(--(c))=(unsigned char)(((l2)>>16L)&0xff); \
97 case 6: *(--(c))=(unsigned char)(((l2)>> 8L)&0xff); \
98 case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \
99 case 4: *(--(c))=(unsigned char)(((l1)>>24L)&0xff); \
100 case 3: *(--(c))=(unsigned char)(((l1)>>16L)&0xff); \
101 case 2: *(--(c))=(unsigned char)(((l1)>> 8L)&0xff); \
102 case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \
103 } \
104 }
105
106/* NOTE - c is not incremented as per n2l */
107#define n2ln(c,l1,l2,n) { \
108 c+=n; \
109 l1=l2=0; \
110 switch (n) { \
111 case 8: l2 =((unsigned long)(*(--(c)))) ; \
112 case 7: l2|=((unsigned long)(*(--(c))))<< 8; \
113 case 6: l2|=((unsigned long)(*(--(c))))<<16; \
114 case 5: l2|=((unsigned long)(*(--(c))))<<24; \
115 case 4: l1 =((unsigned long)(*(--(c)))) ; \
116 case 3: l1|=((unsigned long)(*(--(c))))<< 8; \
117 case 2: l1|=((unsigned long)(*(--(c))))<<16; \
118 case 1: l1|=((unsigned long)(*(--(c))))<<24; \
119 } \
120 }
121
122/* NOTE - c is not incremented as per l2n */
123#define l2nn(l1,l2,c,n) { \
124 c+=n; \
125 switch (n) { \
126 case 8: *(--(c))=(unsigned char)(((l2) )&0xff); \
127 case 7: *(--(c))=(unsigned char)(((l2)>> 8)&0xff); \
128 case 6: *(--(c))=(unsigned char)(((l2)>>16)&0xff); \
129 case 5: *(--(c))=(unsigned char)(((l2)>>24)&0xff); \
130 case 4: *(--(c))=(unsigned char)(((l1) )&0xff); \
131 case 3: *(--(c))=(unsigned char)(((l1)>> 8)&0xff); \
132 case 2: *(--(c))=(unsigned char)(((l1)>>16)&0xff); \
133 case 1: *(--(c))=(unsigned char)(((l1)>>24)&0xff); \
134 } \
135 }
136
137#undef n2l
138#define n2l(c,l) (l =((unsigned long)(*((c)++)))<<24L, \
139 l|=((unsigned long)(*((c)++)))<<16L, \
140 l|=((unsigned long)(*((c)++)))<< 8L, \
141 l|=((unsigned long)(*((c)++))))
142
143#undef l2n
144#define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24L)&0xff), \
145 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
146 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
147 *((c)++)=(unsigned char)(((l) )&0xff))
148
149#if defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER)
150#define ROTATE_l32(a,n) _lrotl(a,n)
151#define ROTATE_r32(a,n) _lrotr(a,n)
152#elif defined(__GNUC__) && __GNUC__>=2 && !defined(__STRICT_ANSI__) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC)
153# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
154# define ROTATE_l32(a,n) ({ register unsigned int ret; \
155 asm ("roll %%cl,%0" \
156 : "=r"(ret) \
157 : "c"(n),"0"(a) \
158 : "cc"); \
159 ret; \
160 })
161# define ROTATE_r32(a,n) ({ register unsigned int ret; \
162 asm ("rorl %%cl,%0" \
163 : "=r"(ret) \
164 : "c"(n),"0"(a) \
165 : "cc"); \
166 ret; \
167 })
168# endif
169#endif
170#ifndef ROTATE_l32
171#define ROTATE_l32(a,n) (((a)<<(n&0x1f))|(((a)&0xffffffff)>>(32-(n&0x1f))))
172#endif
173#ifndef ROTATE_r32
174#define ROTATE_r32(a,n) (((a)<<(32-(n&0x1f)))|(((a)&0xffffffff)>>(n&0x1f)))
175#endif
176
177#define RC5_32_MASK 0xffffffffL
178
179#define RC5_16_P 0xB7E1
180#define RC5_16_Q 0x9E37
181#define RC5_32_P 0xB7E15163L
182#define RC5_32_Q 0x9E3779B9L
183#define RC5_64_P 0xB7E151628AED2A6BLL
184#define RC5_64_Q 0x9E3779B97F4A7C15LL
185
186#define E_RC5_32(a,b,s,n) \
187 a^=b; \
188 a=ROTATE_l32(a,b); \
189 a+=s[n]; \
190 a&=RC5_32_MASK; \
191 b^=a; \
192 b=ROTATE_l32(b,a); \
193 b+=s[n+1]; \
194 b&=RC5_32_MASK;
195
196#define D_RC5_32(a,b,s,n) \
197 b-=s[n+1]; \
198 b&=RC5_32_MASK; \
199 b=ROTATE_r32(b,a); \
200 b^=a; \
201 a-=s[n]; \
202 a&=RC5_32_MASK; \
203 a=ROTATE_r32(a,b); \
204 a^=b;
205
206
207
diff --git a/src/lib/libcrypto/rc5/rc5s.cpp b/src/lib/libcrypto/rc5/rc5s.cpp
deleted file mode 100644
index 1c5518bc80..0000000000
--- a/src/lib/libcrypto/rc5/rc5s.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
1//
2// gettsc.inl
3//
4// gives access to the Pentium's (secret) cycle counter
5//
6// This software was written by Leonard Janke (janke@unixg.ubc.ca)
7// in 1996-7 and is entered, by him, into the public domain.
8
9#if defined(__WATCOMC__)
10void GetTSC(unsigned long&);
11#pragma aux GetTSC = 0x0f 0x31 "mov [edi], eax" parm [edi] modify [edx eax];
12#elif defined(__GNUC__)
13inline
14void GetTSC(unsigned long& tsc)
15{
16 asm volatile(".byte 15, 49\n\t"
17 : "=eax" (tsc)
18 :
19 : "%edx", "%eax");
20}
21#elif defined(_MSC_VER)
22inline
23void GetTSC(unsigned long& tsc)
24{
25 unsigned long a;
26 __asm _emit 0fh
27 __asm _emit 31h
28 __asm mov a, eax;
29 tsc=a;
30}
31#endif
32
33#include <stdio.h>
34#include <stdlib.h>
35#include <openssl/rc5.h>
36
37void main(int argc,char *argv[])
38 {
39 RC5_32_KEY key;
40 unsigned long s1,s2,e1,e2;
41 unsigned long data[2];
42 int i,j;
43 static unsigned char d[16]={0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF};
44
45 RC5_32_set_key(&key, 16,d,12);
46
47 for (j=0; j<6; j++)
48 {
49 for (i=0; i<1000; i++) /**/
50 {
51 RC5_32_encrypt(&data[0],&key);
52 GetTSC(s1);
53 RC5_32_encrypt(&data[0],&key);
54 RC5_32_encrypt(&data[0],&key);
55 RC5_32_encrypt(&data[0],&key);
56 GetTSC(e1);
57 GetTSC(s2);
58 RC5_32_encrypt(&data[0],&key);
59 RC5_32_encrypt(&data[0],&key);
60 RC5_32_encrypt(&data[0],&key);
61 RC5_32_encrypt(&data[0],&key);
62 GetTSC(e2);
63 RC5_32_encrypt(&data[0],&key);
64 }
65
66 printf("cast %d %d (%d)\n",
67 e1-s1,e2-s2,((e2-s2)-(e1-s1)));
68 }
69 }
70
diff --git a/src/lib/libcrypto/rc5/rc5test.c b/src/lib/libcrypto/rc5/rc5test.c
deleted file mode 100644
index ce3d0cc16f..0000000000
--- a/src/lib/libcrypto/rc5/rc5test.c
+++ /dev/null
@@ -1,386 +0,0 @@
1/* crypto/rc5/rc5test.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59/* This has been a quickly hacked 'ideatest.c'. When I add tests for other
60 * RC5 modes, more of the code will be uncommented. */
61
62#include <stdio.h>
63#include <string.h>
64#include <stdlib.h>
65
66#include "../e_os.h"
67
68#ifdef OPENSSL_NO_RC5
69int main(int argc, char *argv[])
70{
71 printf("No RC5 support\n");
72 return(0);
73}
74#else
75#include <openssl/rc5.h>
76
77static unsigned char RC5key[5][16]={
78 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
79 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
80 {0x91,0x5f,0x46,0x19,0xbe,0x41,0xb2,0x51,
81 0x63,0x55,0xa5,0x01,0x10,0xa9,0xce,0x91},
82 {0x78,0x33,0x48,0xe7,0x5a,0xeb,0x0f,0x2f,
83 0xd7,0xb1,0x69,0xbb,0x8d,0xc1,0x67,0x87},
84 {0xdc,0x49,0xdb,0x13,0x75,0xa5,0x58,0x4f,
85 0x64,0x85,0xb4,0x13,0xb5,0xf1,0x2b,0xaf},
86 {0x52,0x69,0xf1,0x49,0xd4,0x1b,0xa0,0x15,
87 0x24,0x97,0x57,0x4d,0x7f,0x15,0x31,0x25},
88 };
89
90static unsigned char RC5plain[5][8]={
91 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
92 {0x21,0xA5,0xDB,0xEE,0x15,0x4B,0x8F,0x6D},
93 {0xF7,0xC0,0x13,0xAC,0x5B,0x2B,0x89,0x52},
94 {0x2F,0x42,0xB3,0xB7,0x03,0x69,0xFC,0x92},
95 {0x65,0xC1,0x78,0xB2,0x84,0xD1,0x97,0xCC},
96 };
97
98static unsigned char RC5cipher[5][8]={
99 {0x21,0xA5,0xDB,0xEE,0x15,0x4B,0x8F,0x6D},
100 {0xF7,0xC0,0x13,0xAC,0x5B,0x2B,0x89,0x52},
101 {0x2F,0x42,0xB3,0xB7,0x03,0x69,0xFC,0x92},
102 {0x65,0xC1,0x78,0xB2,0x84,0xD1,0x97,0xCC},
103 {0xEB,0x44,0xE4,0x15,0xDA,0x31,0x98,0x24},
104 };
105
106#define RC5_CBC_NUM 27
107static unsigned char rc5_cbc_cipher[RC5_CBC_NUM][8]={
108 {0x7a,0x7b,0xba,0x4d,0x79,0x11,0x1d,0x1e},
109 {0x79,0x7b,0xba,0x4d,0x78,0x11,0x1d,0x1e},
110 {0x7a,0x7b,0xba,0x4d,0x79,0x11,0x1d,0x1f},
111 {0x7a,0x7b,0xba,0x4d,0x79,0x11,0x1d,0x1f},
112 {0x8b,0x9d,0xed,0x91,0xce,0x77,0x94,0xa6},
113 {0x2f,0x75,0x9f,0xe7,0xad,0x86,0xa3,0x78},
114 {0xdc,0xa2,0x69,0x4b,0xf4,0x0e,0x07,0x88},
115 {0xdc,0xa2,0x69,0x4b,0xf4,0x0e,0x07,0x88},
116 {0xdc,0xfe,0x09,0x85,0x77,0xec,0xa5,0xff},
117 {0x96,0x46,0xfb,0x77,0x63,0x8f,0x9c,0xa8},
118 {0xb2,0xb3,0x20,0x9d,0xb6,0x59,0x4d,0xa4},
119 {0x54,0x5f,0x7f,0x32,0xa5,0xfc,0x38,0x36},
120 {0x82,0x85,0xe7,0xc1,0xb5,0xbc,0x74,0x02},
121 {0xfc,0x58,0x6f,0x92,0xf7,0x08,0x09,0x34},
122 {0xcf,0x27,0x0e,0xf9,0x71,0x7f,0xf7,0xc4},
123 {0xe4,0x93,0xf1,0xc1,0xbb,0x4d,0x6e,0x8c},
124 {0x5c,0x4c,0x04,0x1e,0x0f,0x21,0x7a,0xc3},
125 {0x92,0x1f,0x12,0x48,0x53,0x73,0xb4,0xf7},
126 {0x5b,0xa0,0xca,0x6b,0xbe,0x7f,0x5f,0xad},
127 {0xc5,0x33,0x77,0x1c,0xd0,0x11,0x0e,0x63},
128 {0x29,0x4d,0xdb,0x46,0xb3,0x27,0x8d,0x60},
129 {0xda,0xd6,0xbd,0xa9,0xdf,0xe8,0xf7,0xe8},
130 {0x97,0xe0,0x78,0x78,0x37,0xed,0x31,0x7f},
131 {0x78,0x75,0xdb,0xf6,0x73,0x8c,0x64,0x78},
132 {0x8f,0x34,0xc3,0xc6,0x81,0xc9,0x96,0x95},
133 {0x7c,0xb3,0xf1,0xdf,0x34,0xf9,0x48,0x11},
134 {0x7f,0xd1,0xa0,0x23,0xa5,0xbb,0xa2,0x17},
135 };
136
137static unsigned char rc5_cbc_key[RC5_CBC_NUM][17]={
138 { 1,0x00},
139 { 1,0x00},
140 { 1,0x00},
141 { 1,0x00},
142 { 1,0x00},
143 { 1,0x11},
144 { 1,0x00},
145 { 4,0x00,0x00,0x00,0x00},
146 { 1,0x00},
147 { 1,0x00},
148 { 1,0x00},
149 { 1,0x00},
150 { 4,0x01,0x02,0x03,0x04},
151 { 4,0x01,0x02,0x03,0x04},
152 { 4,0x01,0x02,0x03,0x04},
153 { 8,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
154 { 8,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
155 { 8,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
156 { 8,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
157 {16,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
158 0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
159 {16,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
160 0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
161 {16,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
162 0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
163 { 5,0x01,0x02,0x03,0x04,0x05},
164 { 5,0x01,0x02,0x03,0x04,0x05},
165 { 5,0x01,0x02,0x03,0x04,0x05},
166 { 5,0x01,0x02,0x03,0x04,0x05},
167 { 5,0x01,0x02,0x03,0x04,0x05},
168 };
169
170static unsigned char rc5_cbc_plain[RC5_CBC_NUM][8]={
171 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
172 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
173 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
174 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},
175 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
176 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
177 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
178 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
179 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
180 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
181 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
182 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
183 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
184 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
185 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
186 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
187 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
188 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
189 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
190 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
191 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
192 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
193 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
194 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
195 {0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},
196 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
197 {0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x01},
198 };
199
200static int rc5_cbc_rounds[RC5_CBC_NUM]={
201 0, 0, 0, 0, 0, 1, 2, 2,
202 8, 8,12,16, 8,12,16,12,
203 8,12,16, 8,12,16,12, 8,
204 8, 8, 8,
205 };
206
207static unsigned char rc5_cbc_iv[RC5_CBC_NUM][8]={
208 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
209 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
210 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},
211 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
212 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
213 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
214 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
215 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
216 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
217 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
218 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
219 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
220 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
221 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
222 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
223 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
224 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
225 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
226 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
227 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
228 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
229 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
230 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
231 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
232 {0x78,0x75,0xdb,0xf6,0x73,0x8c,0x64,0x78},
233 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
234 {0x7c,0xb3,0xf1,0xdf,0x34,0xf9,0x48,0x11},
235 };
236
237int main(int argc, char *argv[])
238 {
239 int i,n,err=0;
240 RC5_32_KEY key;
241 unsigned char buf[8],buf2[8],ivb[8];
242
243 for (n=0; n<5; n++)
244 {
245 RC5_32_set_key(&key,16,&(RC5key[n][0]),12);
246
247 RC5_32_ecb_encrypt(&(RC5plain[n][0]),buf,&key,RC5_ENCRYPT);
248 if (memcmp(&(RC5cipher[n][0]),buf,8) != 0)
249 {
250 printf("ecb RC5 error encrypting (%d)\n",n+1);
251 printf("got :");
252 for (i=0; i<8; i++)
253 printf("%02X ",buf[i]);
254 printf("\n");
255 printf("expected:");
256 for (i=0; i<8; i++)
257 printf("%02X ",RC5cipher[n][i]);
258 err=20;
259 printf("\n");
260 }
261
262 RC5_32_ecb_encrypt(buf,buf2,&key,RC5_DECRYPT);
263 if (memcmp(&(RC5plain[n][0]),buf2,8) != 0)
264 {
265 printf("ecb RC5 error decrypting (%d)\n",n+1);
266 printf("got :");
267 for (i=0; i<8; i++)
268 printf("%02X ",buf2[i]);
269 printf("\n");
270 printf("expected:");
271 for (i=0; i<8; i++)
272 printf("%02X ",RC5plain[n][i]);
273 printf("\n");
274 err=3;
275 }
276 }
277 if (err == 0) printf("ecb RC5 ok\n");
278
279 for (n=0; n<RC5_CBC_NUM; n++)
280 {
281 i=rc5_cbc_rounds[n];
282 if (i < 8) continue;
283
284 RC5_32_set_key(&key,rc5_cbc_key[n][0],&(rc5_cbc_key[n][1]),i);
285
286 memcpy(ivb,&(rc5_cbc_iv[n][0]),8);
287 RC5_32_cbc_encrypt(&(rc5_cbc_plain[n][0]),buf,8,
288 &key,&(ivb[0]),RC5_ENCRYPT);
289
290 if (memcmp(&(rc5_cbc_cipher[n][0]),buf,8) != 0)
291 {
292 printf("cbc RC5 error encrypting (%d)\n",n+1);
293 printf("got :");
294 for (i=0; i<8; i++)
295 printf("%02X ",buf[i]);
296 printf("\n");
297 printf("expected:");
298 for (i=0; i<8; i++)
299 printf("%02X ",rc5_cbc_cipher[n][i]);
300 err=30;
301 printf("\n");
302 }
303
304 memcpy(ivb,&(rc5_cbc_iv[n][0]),8);
305 RC5_32_cbc_encrypt(buf,buf2,8,
306 &key,&(ivb[0]),RC5_DECRYPT);
307 if (memcmp(&(rc5_cbc_plain[n][0]),buf2,8) != 0)
308 {
309 printf("cbc RC5 error decrypting (%d)\n",n+1);
310 printf("got :");
311 for (i=0; i<8; i++)
312 printf("%02X ",buf2[i]);
313 printf("\n");
314 printf("expected:");
315 for (i=0; i<8; i++)
316 printf("%02X ",rc5_cbc_plain[n][i]);
317 printf("\n");
318 err=3;
319 }
320 }
321 if (err == 0) printf("cbc RC5 ok\n");
322
323 EXIT(err);
324 return(err);
325 }
326
327#ifdef undef
328static int cfb64_test(unsigned char *cfb_cipher)
329 {
330 IDEA_KEY_SCHEDULE eks,dks;
331 int err=0,i,n;
332
333 idea_set_encrypt_key(cfb_key,&eks);
334 idea_set_decrypt_key(&eks,&dks);
335 memcpy(cfb_tmp,cfb_iv,8);
336 n=0;
337 idea_cfb64_encrypt(plain,cfb_buf1,(long)12,&eks,
338 cfb_tmp,&n,IDEA_ENCRYPT);
339 idea_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),
340 (long)CFB_TEST_SIZE-12,&eks,
341 cfb_tmp,&n,IDEA_ENCRYPT);
342 if (memcmp(cfb_cipher,cfb_buf1,CFB_TEST_SIZE) != 0)
343 {
344 err=1;
345 printf("idea_cfb64_encrypt encrypt error\n");
346 for (i=0; i<CFB_TEST_SIZE; i+=8)
347 printf("%s\n",pt(&(cfb_buf1[i])));
348 }
349 memcpy(cfb_tmp,cfb_iv,8);
350 n=0;
351 idea_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,&eks,
352 cfb_tmp,&n,IDEA_DECRYPT);
353 idea_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]),
354 (long)CFB_TEST_SIZE-17,&dks,
355 cfb_tmp,&n,IDEA_DECRYPT);
356 if (memcmp(plain,cfb_buf2,CFB_TEST_SIZE) != 0)
357 {
358 err=1;
359 printf("idea_cfb_encrypt decrypt error\n");
360 for (i=0; i<24; i+=8)
361 printf("%s\n",pt(&(cfb_buf2[i])));
362 }
363 return(err);
364 }
365
366static char *pt(unsigned char *p)
367 {
368 static char bufs[10][20];
369 static int bnum=0;
370 char *ret;
371 int i;
372 static char *f="0123456789ABCDEF";
373
374 ret= &(bufs[bnum++][0]);
375 bnum%=10;
376 for (i=0; i<8; i++)
377 {
378 ret[i*2]=f[(p[i]>>4)&0xf];
379 ret[i*2+1]=f[p[i]&0xf];
380 }
381 ret[16]='\0';
382 return(ret);
383 }
384
385#endif
386#endif
diff --git a/src/lib/libssl/src/crypto/idea/ideatest.c b/src/lib/libssl/src/crypto/idea/ideatest.c
deleted file mode 100644
index 98f805d72a..0000000000
--- a/src/lib/libssl/src/crypto/idea/ideatest.c
+++ /dev/null
@@ -1,232 +0,0 @@
1/* crypto/idea/ideatest.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <string.h>
61#include <stdlib.h>
62
63#include "../e_os.h"
64
65#ifdef OPENSSL_NO_IDEA
66int main(int argc, char *argv[])
67{
68 printf("No IDEA support\n");
69 return(0);
70}
71#else
72#include <openssl/idea.h>
73
74unsigned char k[16]={
75 0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,
76 0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08};
77
78unsigned char in[8]={0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03};
79unsigned char c[8]={0x11,0xFB,0xED,0x2B,0x01,0x98,0x6D,0xE5};
80unsigned char out[80];
81
82char *text="Hello to all people out there";
83
84static unsigned char cfb_key[16]={
85 0xe1,0xf0,0xc3,0xd2,0xa5,0xb4,0x87,0x96,
86 0x69,0x78,0x4b,0x5a,0x2d,0x3c,0x0f,0x1e,
87 };
88static unsigned char cfb_iv[80]={0x34,0x12,0x78,0x56,0xab,0x90,0xef,0xcd};
89static unsigned char cfb_buf1[40],cfb_buf2[40],cfb_tmp[8];
90#define CFB_TEST_SIZE 24
91static unsigned char plain[CFB_TEST_SIZE]=
92 {
93 0x4e,0x6f,0x77,0x20,0x69,0x73,
94 0x20,0x74,0x68,0x65,0x20,0x74,
95 0x69,0x6d,0x65,0x20,0x66,0x6f,
96 0x72,0x20,0x61,0x6c,0x6c,0x20
97 };
98static unsigned char cfb_cipher64[CFB_TEST_SIZE]={
99 0x59,0xD8,0xE2,0x65,0x00,0x58,0x6C,0x3F,
100 0x2C,0x17,0x25,0xD0,0x1A,0x38,0xB7,0x2A,
101 0x39,0x61,0x37,0xDC,0x79,0xFB,0x9F,0x45
102
103/* 0xF9,0x78,0x32,0xB5,0x42,0x1A,0x6B,0x38,
104 0x9A,0x44,0xD6,0x04,0x19,0x43,0xC4,0xD9,
105 0x3D,0x1E,0xAE,0x47,0xFC,0xCF,0x29,0x0B,*/
106 };
107
108static int cfb64_test(unsigned char *cfb_cipher);
109static char *pt(unsigned char *p);
110int main(int argc, char *argv[])
111 {
112 int i,err=0;
113 IDEA_KEY_SCHEDULE key,dkey;
114 unsigned char iv[8];
115
116 idea_set_encrypt_key(k,&key);
117 idea_ecb_encrypt(in,out,&key);
118 if (memcmp(out,c,8) != 0)
119 {
120 printf("ecb idea error encrypting\n");
121 printf("got :");
122 for (i=0; i<8; i++)
123 printf("%02X ",out[i]);
124 printf("\n");
125 printf("expected:");
126 for (i=0; i<8; i++)
127 printf("%02X ",c[i]);
128 err=20;
129 printf("\n");
130 }
131
132 idea_set_decrypt_key(&key,&dkey);
133 idea_ecb_encrypt(c,out,&dkey);
134 if (memcmp(out,in,8) != 0)
135 {
136 printf("ecb idea error decrypting\n");
137 printf("got :");
138 for (i=0; i<8; i++)
139 printf("%02X ",out[i]);
140 printf("\n");
141 printf("expected:");
142 for (i=0; i<8; i++)
143 printf("%02X ",in[i]);
144 printf("\n");
145 err=3;
146 }
147
148 if (err == 0) printf("ecb idea ok\n");
149
150 memcpy(iv,k,8);
151 idea_cbc_encrypt((unsigned char *)text,out,strlen(text)+1,&key,iv,1);
152 memcpy(iv,k,8);
153 idea_cbc_encrypt(out,out,8,&dkey,iv,0);
154 idea_cbc_encrypt(&(out[8]),&(out[8]),strlen(text)+1-8,&dkey,iv,0);
155 if (memcmp(text,out,strlen(text)+1) != 0)
156 {
157 printf("cbc idea bad\n");
158 err=4;
159 }
160 else
161 printf("cbc idea ok\n");
162
163 printf("cfb64 idea ");
164 if (cfb64_test(cfb_cipher64))
165 {
166 printf("bad\n");
167 err=5;
168 }
169 else
170 printf("ok\n");
171
172 EXIT(err);
173 return(err);
174 }
175
176static int cfb64_test(unsigned char *cfb_cipher)
177 {
178 IDEA_KEY_SCHEDULE eks,dks;
179 int err=0,i,n;
180
181 idea_set_encrypt_key(cfb_key,&eks);
182 idea_set_decrypt_key(&eks,&dks);
183 memcpy(cfb_tmp,cfb_iv,8);
184 n=0;
185 idea_cfb64_encrypt(plain,cfb_buf1,(long)12,&eks,
186 cfb_tmp,&n,IDEA_ENCRYPT);
187 idea_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),
188 (long)CFB_TEST_SIZE-12,&eks,
189 cfb_tmp,&n,IDEA_ENCRYPT);
190 if (memcmp(cfb_cipher,cfb_buf1,CFB_TEST_SIZE) != 0)
191 {
192 err=1;
193 printf("idea_cfb64_encrypt encrypt error\n");
194 for (i=0; i<CFB_TEST_SIZE; i+=8)
195 printf("%s\n",pt(&(cfb_buf1[i])));
196 }
197 memcpy(cfb_tmp,cfb_iv,8);
198 n=0;
199 idea_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,&eks,
200 cfb_tmp,&n,IDEA_DECRYPT);
201 idea_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]),
202 (long)CFB_TEST_SIZE-17,&dks,
203 cfb_tmp,&n,IDEA_DECRYPT);
204 if (memcmp(plain,cfb_buf2,CFB_TEST_SIZE) != 0)
205 {
206 err=1;
207 printf("idea_cfb_encrypt decrypt error\n");
208 for (i=0; i<24; i+=8)
209 printf("%s\n",pt(&(cfb_buf2[i])));
210 }
211 return(err);
212 }
213
214static char *pt(unsigned char *p)
215 {
216 static char bufs[10][20];
217 static int bnum=0;
218 char *ret;
219 int i;
220 static char *f="0123456789ABCDEF";
221
222 ret= &(bufs[bnum++][0]);
223 bnum%=10;
224 for (i=0; i<8; i++)
225 {
226 ret[i*2]=f[(p[i]>>4)&0xf];
227 ret[i*2+1]=f[p[i]&0xf];
228 }
229 ret[16]='\0';
230 return(ret);
231 }
232#endif
diff --git a/src/lib/libssl/src/crypto/rc4/asm/rc4-amd64.pl b/src/lib/libssl/src/crypto/rc4/asm/rc4-amd64.pl
new file mode 100755
index 0000000000..9e0da8af99
--- /dev/null
+++ b/src/lib/libssl/src/crypto/rc4/asm/rc4-amd64.pl
@@ -0,0 +1,227 @@
1#!/usr/bin/env perl
2#
3# ====================================================================
4# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
5# project. Rights for redistribution and usage in source and binary
6# forms are granted according to the OpenSSL license.
7# ====================================================================
8#
9# 2.22x RC4 tune-up:-) It should be noted though that my hand [as in
10# "hand-coded assembler"] doesn't stand for the whole improvement
11# coefficient. It turned out that eliminating RC4_CHAR from config
12# line results in ~40% improvement (yes, even for C implementation).
13# Presumably it has everything to do with AMD cache architecture and
14# RAW or whatever penalties. Once again! The module *requires* config
15# line *without* RC4_CHAR! As for coding "secret," I bet on partial
16# register arithmetics. For example instead of 'inc %r8; and $255,%r8'
17# I simply 'inc %r8b'. Even though optimization manual discourages
18# to operate on partial registers, it turned out to be the best bet.
19# At least for AMD... How IA32E would perform remains to be seen...
20
21# As was shown by Marc Bevand reordering of couple of load operations
22# results in even higher performance gain of 3.3x:-) At least on
23# Opteron... For reference, 1x in this case is RC4_CHAR C-code
24# compiled with gcc 3.3.2, which performs at ~54MBps per 1GHz clock.
25# Latter means that if you want to *estimate* what to expect from
26# *your* CPU, then multiply 54 by 3.3 and clock frequency in GHz.
27
28# Intel P4 EM64T core was found to run the AMD64 code really slow...
29# The only way to achieve comparable performance on P4 is to keep
30# RC4_CHAR. Kind of ironic, huh? As it's apparently impossible to
31# compose blended code, which would perform even within 30% marginal
32# on either AMD and Intel platforms, I implement both cases. See
33# rc4_skey.c for further details... This applies to 0.9.8 and later.
34# In 0.9.7 context RC4_CHAR codepath is never engaged and ~70 bytes
35# of code remain redundant.
36
37$output=shift;
38
39$win64a=1 if ($output =~ /win64a.[s|asm]/);
40
41open STDOUT,">$output" || die "can't open $output: $!";
42
43if (defined($win64a)) {
44 $dat="%rcx"; # arg1
45 $len="%rdx"; # arg2
46 $inp="%rsi"; # r8, arg3 moves here
47 $out="%rdi"; # r9, arg4 moves here
48} else {
49 $dat="%rdi"; # arg1
50 $len="%rsi"; # arg2
51 $inp="%rdx"; # arg3
52 $out="%rcx"; # arg4
53}
54
55$XX="%r10";
56$TX="%r8";
57$YY="%r11";
58$TY="%r9";
59
60sub PTR() {
61 my $ret=shift;
62 if (defined($win64a)) {
63 $ret =~ s/\[([\S]+)\+([\S]+)\]/[$2+$1]/g; # [%rN+%rM*4]->[%rM*4+%rN]
64 $ret =~ s/:([^\[]+)\[([^\]]+)\]/:[$2+$1]/g; # :off[ea]->:[ea+off]
65 } else {
66 $ret =~ s/[\+\*]/,/g; # [%rN+%rM*4]->[%rN,%rM,4]
67 $ret =~ s/\[([^\]]+)\]/($1)/g; # [%rN]->(%rN)
68 }
69 $ret;
70}
71
72$code=<<___ if (!defined($win64a));
73.text
74
75.globl RC4
76.type RC4,\@function
77.align 16
78RC4: or $len,$len
79 jne .Lentry
80 repret
81.Lentry:
82___
83$code=<<___ if (defined($win64a));
84_TEXT SEGMENT
85PUBLIC RC4
86ALIGN 16
87RC4 PROC
88 or $len,$len
89 jne .Lentry
90 repret
91.Lentry:
92 push %rdi
93 push %rsi
94 sub \$40,%rsp
95 mov %r8,$inp
96 mov %r9,$out
97___
98$code.=<<___;
99 add \$8,$dat
100 movl `&PTR("DWORD:-8[$dat]")`,$XX#d
101 movl `&PTR("DWORD:-4[$dat]")`,$YY#d
102 cmpl \$-1,`&PTR("DWORD:256[$dat]")`
103 je .LRC4_CHAR
104 test \$-8,$len
105 jz .Lloop1
106.align 16
107.Lloop8:
108 inc $XX#b
109 movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
110 add $TX#b,$YY#b
111 movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
112 movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
113 movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
114 add $TX#b,$TY#b
115 inc $XX#b
116 movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
117 movb `&PTR("BYTE:[$dat+$TY*4]")`,%al
118___
119for ($i=1;$i<=6;$i++) {
120$code.=<<___;
121 add $TX#b,$YY#b
122 ror \$8,%rax
123 movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
124 movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
125 movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
126 add $TX#b,$TY#b
127 inc $XX#b
128 movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
129 movb `&PTR("BYTE:[$dat+$TY*4]")`,%al
130___
131}
132$code.=<<___;
133 add $TX#b,$YY#b
134 ror \$8,%rax
135 movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
136 movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
137 movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
138 sub \$8,$len
139 add $TY#b,$TX#b
140 movb `&PTR("BYTE:[$dat+$TX*4]")`,%al
141 ror \$8,%rax
142 add \$8,$inp
143 add \$8,$out
144
145 xor `&PTR("QWORD:-8[$inp]")`,%rax
146 mov %rax,`&PTR("QWORD:-8[$out]")`
147
148 test \$-8,$len
149 jnz .Lloop8
150 cmp \$0,$len
151 jne .Lloop1
152.Lexit:
153 movl $XX#d,`&PTR("DWORD:-8[$dat]")`
154 movl $YY#d,`&PTR("DWORD:-4[$dat]")`
155___
156$code.=<<___ if (defined($win64a));
157 add \$40,%rsp
158 pop %rsi
159 pop %rdi
160___
161$code.=<<___;
162 repret
163.align 16
164.Lloop1:
165 movzb `&PTR("BYTE:[$inp]")`,%eax
166 inc $XX#b
167 movl `&PTR("DWORD:[$dat+$XX*4]")`,$TX#d
168 add $TX#b,$YY#b
169 movl `&PTR("DWORD:[$dat+$YY*4]")`,$TY#d
170 movl $TX#d,`&PTR("DWORD:[$dat+$YY*4]")`
171 movl $TY#d,`&PTR("DWORD:[$dat+$XX*4]")`
172 add $TY#b,$TX#b
173 movl `&PTR("DWORD:[$dat+$TX*4]")`,$TY#d
174 xor $TY,%rax
175 inc $inp
176 movb %al,`&PTR("BYTE:[$out]")`
177 inc $out
178 dec $len
179 jnz .Lloop1
180 jmp .Lexit
181
182.align 16
183.LRC4_CHAR:
184 inc $XX#b
185 movzb `&PTR("BYTE:[$dat+$XX]")`,$TX#d
186 add $TX#b,$YY#b
187 movzb `&PTR("BYTE:[$dat+$YY]")`,$TY#d
188 movb $TX#b,`&PTR("BYTE:[$dat+$YY]")`
189 movb $TY#b,`&PTR("BYTE:[$dat+$XX]")`
190 add $TX#b,$TY#b
191 movzb `&PTR("BYTE:[$dat+$TY]")`,$TY#d
192 xorb `&PTR("BYTE:[$inp]")`,$TY#b
193 movb $TY#b,`&PTR("BYTE:[$out]")`
194 inc $inp
195 inc $out
196 dec $len
197 jnz .LRC4_CHAR
198 jmp .Lexit
199___
200$code.=<<___ if (defined($win64a));
201RC4 ENDP
202_TEXT ENDS
203END
204___
205$code.=<<___ if (!defined($win64a));
206.size RC4,.-RC4
207___
208
209$code =~ s/#([bwd])/$1/gm;
210$code =~ s/\`([^\`]*)\`/eval $1/gem;
211
212if (defined($win64a)) {
213 $code =~ s/\.align/ALIGN/gm;
214 $code =~ s/[\$%]//gm;
215 $code =~ s/\.L/\$L/gm;
216 $code =~ s/([\w]+)([\s]+)([\S]+),([\S]+)/$1$2$4,$3/gm;
217 $code =~ s/([QD]*WORD|BYTE):/$1 PTR/gm;
218 $code =~ s/mov[bwlq]/mov/gm;
219 $code =~ s/movzb/movzx/gm;
220 $code =~ s/repret/DB\t0F3h,0C3h/gm;
221 $code =~ s/cmpl/cmp/gm;
222 $code =~ s/xorb/xor/gm;
223} else {
224 $code =~ s/([QD]*WORD|BYTE)://gm;
225 $code =~ s/repret/.byte\t0xF3,0xC3/gm;
226}
227print $code;
diff --git a/src/lib/libssl/src/crypto/rc5/rc5_locl.h b/src/lib/libssl/src/crypto/rc5/rc5_locl.h
deleted file mode 100644
index f4ebc23004..0000000000
--- a/src/lib/libssl/src/crypto/rc5/rc5_locl.h
+++ /dev/null
@@ -1,207 +0,0 @@
1/* crypto/rc5/rc5_locl.h */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdlib.h>
60
61#undef c2l
62#define c2l(c,l) (l =((unsigned long)(*((c)++))) , \
63 l|=((unsigned long)(*((c)++)))<< 8L, \
64 l|=((unsigned long)(*((c)++)))<<16L, \
65 l|=((unsigned long)(*((c)++)))<<24L)
66
67/* NOTE - c is not incremented as per c2l */
68#undef c2ln
69#define c2ln(c,l1,l2,n) { \
70 c+=n; \
71 l1=l2=0; \
72 switch (n) { \
73 case 8: l2 =((unsigned long)(*(--(c))))<<24L; \
74 case 7: l2|=((unsigned long)(*(--(c))))<<16L; \
75 case 6: l2|=((unsigned long)(*(--(c))))<< 8L; \
76 case 5: l2|=((unsigned long)(*(--(c)))); \
77 case 4: l1 =((unsigned long)(*(--(c))))<<24L; \
78 case 3: l1|=((unsigned long)(*(--(c))))<<16L; \
79 case 2: l1|=((unsigned long)(*(--(c))))<< 8L; \
80 case 1: l1|=((unsigned long)(*(--(c)))); \
81 } \
82 }
83
84#undef l2c
85#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
86 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
87 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
88 *((c)++)=(unsigned char)(((l)>>24L)&0xff))
89
90/* NOTE - c is not incremented as per l2c */
91#undef l2cn
92#define l2cn(l1,l2,c,n) { \
93 c+=n; \
94 switch (n) { \
95 case 8: *(--(c))=(unsigned char)(((l2)>>24L)&0xff); \
96 case 7: *(--(c))=(unsigned char)(((l2)>>16L)&0xff); \
97 case 6: *(--(c))=(unsigned char)(((l2)>> 8L)&0xff); \
98 case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \
99 case 4: *(--(c))=(unsigned char)(((l1)>>24L)&0xff); \
100 case 3: *(--(c))=(unsigned char)(((l1)>>16L)&0xff); \
101 case 2: *(--(c))=(unsigned char)(((l1)>> 8L)&0xff); \
102 case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \
103 } \
104 }
105
106/* NOTE - c is not incremented as per n2l */
107#define n2ln(c,l1,l2,n) { \
108 c+=n; \
109 l1=l2=0; \
110 switch (n) { \
111 case 8: l2 =((unsigned long)(*(--(c)))) ; \
112 case 7: l2|=((unsigned long)(*(--(c))))<< 8; \
113 case 6: l2|=((unsigned long)(*(--(c))))<<16; \
114 case 5: l2|=((unsigned long)(*(--(c))))<<24; \
115 case 4: l1 =((unsigned long)(*(--(c)))) ; \
116 case 3: l1|=((unsigned long)(*(--(c))))<< 8; \
117 case 2: l1|=((unsigned long)(*(--(c))))<<16; \
118 case 1: l1|=((unsigned long)(*(--(c))))<<24; \
119 } \
120 }
121
122/* NOTE - c is not incremented as per l2n */
123#define l2nn(l1,l2,c,n) { \
124 c+=n; \
125 switch (n) { \
126 case 8: *(--(c))=(unsigned char)(((l2) )&0xff); \
127 case 7: *(--(c))=(unsigned char)(((l2)>> 8)&0xff); \
128 case 6: *(--(c))=(unsigned char)(((l2)>>16)&0xff); \
129 case 5: *(--(c))=(unsigned char)(((l2)>>24)&0xff); \
130 case 4: *(--(c))=(unsigned char)(((l1) )&0xff); \
131 case 3: *(--(c))=(unsigned char)(((l1)>> 8)&0xff); \
132 case 2: *(--(c))=(unsigned char)(((l1)>>16)&0xff); \
133 case 1: *(--(c))=(unsigned char)(((l1)>>24)&0xff); \
134 } \
135 }
136
137#undef n2l
138#define n2l(c,l) (l =((unsigned long)(*((c)++)))<<24L, \
139 l|=((unsigned long)(*((c)++)))<<16L, \
140 l|=((unsigned long)(*((c)++)))<< 8L, \
141 l|=((unsigned long)(*((c)++))))
142
143#undef l2n
144#define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24L)&0xff), \
145 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
146 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
147 *((c)++)=(unsigned char)(((l) )&0xff))
148
149#if defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER)
150#define ROTATE_l32(a,n) _lrotl(a,n)
151#define ROTATE_r32(a,n) _lrotr(a,n)
152#elif defined(__GNUC__) && __GNUC__>=2 && !defined(__STRICT_ANSI__) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC)
153# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
154# define ROTATE_l32(a,n) ({ register unsigned int ret; \
155 asm ("roll %%cl,%0" \
156 : "=r"(ret) \
157 : "c"(n),"0"(a) \
158 : "cc"); \
159 ret; \
160 })
161# define ROTATE_r32(a,n) ({ register unsigned int ret; \
162 asm ("rorl %%cl,%0" \
163 : "=r"(ret) \
164 : "c"(n),"0"(a) \
165 : "cc"); \
166 ret; \
167 })
168# endif
169#endif
170#ifndef ROTATE_l32
171#define ROTATE_l32(a,n) (((a)<<(n&0x1f))|(((a)&0xffffffff)>>(32-(n&0x1f))))
172#endif
173#ifndef ROTATE_r32
174#define ROTATE_r32(a,n) (((a)<<(32-(n&0x1f)))|(((a)&0xffffffff)>>(n&0x1f)))
175#endif
176
177#define RC5_32_MASK 0xffffffffL
178
179#define RC5_16_P 0xB7E1
180#define RC5_16_Q 0x9E37
181#define RC5_32_P 0xB7E15163L
182#define RC5_32_Q 0x9E3779B9L
183#define RC5_64_P 0xB7E151628AED2A6BLL
184#define RC5_64_Q 0x9E3779B97F4A7C15LL
185
186#define E_RC5_32(a,b,s,n) \
187 a^=b; \
188 a=ROTATE_l32(a,b); \
189 a+=s[n]; \
190 a&=RC5_32_MASK; \
191 b^=a; \
192 b=ROTATE_l32(b,a); \
193 b+=s[n+1]; \
194 b&=RC5_32_MASK;
195
196#define D_RC5_32(a,b,s,n) \
197 b-=s[n+1]; \
198 b&=RC5_32_MASK; \
199 b=ROTATE_r32(b,a); \
200 b^=a; \
201 a-=s[n]; \
202 a&=RC5_32_MASK; \
203 a=ROTATE_r32(a,b); \
204 a^=b;
205
206
207
diff --git a/src/lib/libssl/src/crypto/rc5/rc5s.cpp b/src/lib/libssl/src/crypto/rc5/rc5s.cpp
deleted file mode 100644
index 1c5518bc80..0000000000
--- a/src/lib/libssl/src/crypto/rc5/rc5s.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
1//
2// gettsc.inl
3//
4// gives access to the Pentium's (secret) cycle counter
5//
6// This software was written by Leonard Janke (janke@unixg.ubc.ca)
7// in 1996-7 and is entered, by him, into the public domain.
8
9#if defined(__WATCOMC__)
10void GetTSC(unsigned long&);
11#pragma aux GetTSC = 0x0f 0x31 "mov [edi], eax" parm [edi] modify [edx eax];
12#elif defined(__GNUC__)
13inline
14void GetTSC(unsigned long& tsc)
15{
16 asm volatile(".byte 15, 49\n\t"
17 : "=eax" (tsc)
18 :
19 : "%edx", "%eax");
20}
21#elif defined(_MSC_VER)
22inline
23void GetTSC(unsigned long& tsc)
24{
25 unsigned long a;
26 __asm _emit 0fh
27 __asm _emit 31h
28 __asm mov a, eax;
29 tsc=a;
30}
31#endif
32
33#include <stdio.h>
34#include <stdlib.h>
35#include <openssl/rc5.h>
36
37void main(int argc,char *argv[])
38 {
39 RC5_32_KEY key;
40 unsigned long s1,s2,e1,e2;
41 unsigned long data[2];
42 int i,j;
43 static unsigned char d[16]={0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF};
44
45 RC5_32_set_key(&key, 16,d,12);
46
47 for (j=0; j<6; j++)
48 {
49 for (i=0; i<1000; i++) /**/
50 {
51 RC5_32_encrypt(&data[0],&key);
52 GetTSC(s1);
53 RC5_32_encrypt(&data[0],&key);
54 RC5_32_encrypt(&data[0],&key);
55 RC5_32_encrypt(&data[0],&key);
56 GetTSC(e1);
57 GetTSC(s2);
58 RC5_32_encrypt(&data[0],&key);
59 RC5_32_encrypt(&data[0],&key);
60 RC5_32_encrypt(&data[0],&key);
61 RC5_32_encrypt(&data[0],&key);
62 GetTSC(e2);
63 RC5_32_encrypt(&data[0],&key);
64 }
65
66 printf("cast %d %d (%d)\n",
67 e1-s1,e2-s2,((e2-s2)-(e1-s1)));
68 }
69 }
70
diff --git a/src/lib/libssl/src/crypto/rc5/rc5test.c b/src/lib/libssl/src/crypto/rc5/rc5test.c
deleted file mode 100644
index ce3d0cc16f..0000000000
--- a/src/lib/libssl/src/crypto/rc5/rc5test.c
+++ /dev/null
@@ -1,386 +0,0 @@
1/* crypto/rc5/rc5test.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59/* This has been a quickly hacked 'ideatest.c'. When I add tests for other
60 * RC5 modes, more of the code will be uncommented. */
61
62#include <stdio.h>
63#include <string.h>
64#include <stdlib.h>
65
66#include "../e_os.h"
67
68#ifdef OPENSSL_NO_RC5
69int main(int argc, char *argv[])
70{
71 printf("No RC5 support\n");
72 return(0);
73}
74#else
75#include <openssl/rc5.h>
76
77static unsigned char RC5key[5][16]={
78 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
79 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
80 {0x91,0x5f,0x46,0x19,0xbe,0x41,0xb2,0x51,
81 0x63,0x55,0xa5,0x01,0x10,0xa9,0xce,0x91},
82 {0x78,0x33,0x48,0xe7,0x5a,0xeb,0x0f,0x2f,
83 0xd7,0xb1,0x69,0xbb,0x8d,0xc1,0x67,0x87},
84 {0xdc,0x49,0xdb,0x13,0x75,0xa5,0x58,0x4f,
85 0x64,0x85,0xb4,0x13,0xb5,0xf1,0x2b,0xaf},
86 {0x52,0x69,0xf1,0x49,0xd4,0x1b,0xa0,0x15,
87 0x24,0x97,0x57,0x4d,0x7f,0x15,0x31,0x25},
88 };
89
90static unsigned char RC5plain[5][8]={
91 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
92 {0x21,0xA5,0xDB,0xEE,0x15,0x4B,0x8F,0x6D},
93 {0xF7,0xC0,0x13,0xAC,0x5B,0x2B,0x89,0x52},
94 {0x2F,0x42,0xB3,0xB7,0x03,0x69,0xFC,0x92},
95 {0x65,0xC1,0x78,0xB2,0x84,0xD1,0x97,0xCC},
96 };
97
98static unsigned char RC5cipher[5][8]={
99 {0x21,0xA5,0xDB,0xEE,0x15,0x4B,0x8F,0x6D},
100 {0xF7,0xC0,0x13,0xAC,0x5B,0x2B,0x89,0x52},
101 {0x2F,0x42,0xB3,0xB7,0x03,0x69,0xFC,0x92},
102 {0x65,0xC1,0x78,0xB2,0x84,0xD1,0x97,0xCC},
103 {0xEB,0x44,0xE4,0x15,0xDA,0x31,0x98,0x24},
104 };
105
106#define RC5_CBC_NUM 27
107static unsigned char rc5_cbc_cipher[RC5_CBC_NUM][8]={
108 {0x7a,0x7b,0xba,0x4d,0x79,0x11,0x1d,0x1e},
109 {0x79,0x7b,0xba,0x4d,0x78,0x11,0x1d,0x1e},
110 {0x7a,0x7b,0xba,0x4d,0x79,0x11,0x1d,0x1f},
111 {0x7a,0x7b,0xba,0x4d,0x79,0x11,0x1d,0x1f},
112 {0x8b,0x9d,0xed,0x91,0xce,0x77,0x94,0xa6},
113 {0x2f,0x75,0x9f,0xe7,0xad,0x86,0xa3,0x78},
114 {0xdc,0xa2,0x69,0x4b,0xf4,0x0e,0x07,0x88},
115 {0xdc,0xa2,0x69,0x4b,0xf4,0x0e,0x07,0x88},
116 {0xdc,0xfe,0x09,0x85,0x77,0xec,0xa5,0xff},
117 {0x96,0x46,0xfb,0x77,0x63,0x8f,0x9c,0xa8},
118 {0xb2,0xb3,0x20,0x9d,0xb6,0x59,0x4d,0xa4},
119 {0x54,0x5f,0x7f,0x32,0xa5,0xfc,0x38,0x36},
120 {0x82,0x85,0xe7,0xc1,0xb5,0xbc,0x74,0x02},
121 {0xfc,0x58,0x6f,0x92,0xf7,0x08,0x09,0x34},
122 {0xcf,0x27,0x0e,0xf9,0x71,0x7f,0xf7,0xc4},
123 {0xe4,0x93,0xf1,0xc1,0xbb,0x4d,0x6e,0x8c},
124 {0x5c,0x4c,0x04,0x1e,0x0f,0x21,0x7a,0xc3},
125 {0x92,0x1f,0x12,0x48,0x53,0x73,0xb4,0xf7},
126 {0x5b,0xa0,0xca,0x6b,0xbe,0x7f,0x5f,0xad},
127 {0xc5,0x33,0x77,0x1c,0xd0,0x11,0x0e,0x63},
128 {0x29,0x4d,0xdb,0x46,0xb3,0x27,0x8d,0x60},
129 {0xda,0xd6,0xbd,0xa9,0xdf,0xe8,0xf7,0xe8},
130 {0x97,0xe0,0x78,0x78,0x37,0xed,0x31,0x7f},
131 {0x78,0x75,0xdb,0xf6,0x73,0x8c,0x64,0x78},
132 {0x8f,0x34,0xc3,0xc6,0x81,0xc9,0x96,0x95},
133 {0x7c,0xb3,0xf1,0xdf,0x34,0xf9,0x48,0x11},
134 {0x7f,0xd1,0xa0,0x23,0xa5,0xbb,0xa2,0x17},
135 };
136
137static unsigned char rc5_cbc_key[RC5_CBC_NUM][17]={
138 { 1,0x00},
139 { 1,0x00},
140 { 1,0x00},
141 { 1,0x00},
142 { 1,0x00},
143 { 1,0x11},
144 { 1,0x00},
145 { 4,0x00,0x00,0x00,0x00},
146 { 1,0x00},
147 { 1,0x00},
148 { 1,0x00},
149 { 1,0x00},
150 { 4,0x01,0x02,0x03,0x04},
151 { 4,0x01,0x02,0x03,0x04},
152 { 4,0x01,0x02,0x03,0x04},
153 { 8,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
154 { 8,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
155 { 8,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
156 { 8,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
157 {16,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
158 0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
159 {16,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
160 0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
161 {16,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
162 0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
163 { 5,0x01,0x02,0x03,0x04,0x05},
164 { 5,0x01,0x02,0x03,0x04,0x05},
165 { 5,0x01,0x02,0x03,0x04,0x05},
166 { 5,0x01,0x02,0x03,0x04,0x05},
167 { 5,0x01,0x02,0x03,0x04,0x05},
168 };
169
170static unsigned char rc5_cbc_plain[RC5_CBC_NUM][8]={
171 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
172 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
173 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
174 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},
175 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
176 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
177 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
178 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
179 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
180 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
181 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
182 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
183 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
184 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
185 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
186 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
187 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
188 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
189 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
190 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
191 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
192 {0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80},
193 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
194 {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
195 {0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},
196 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
197 {0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x01},
198 };
199
200static int rc5_cbc_rounds[RC5_CBC_NUM]={
201 0, 0, 0, 0, 0, 1, 2, 2,
202 8, 8,12,16, 8,12,16,12,
203 8,12,16, 8,12,16,12, 8,
204 8, 8, 8,
205 };
206
207static unsigned char rc5_cbc_iv[RC5_CBC_NUM][8]={
208 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
209 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
210 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},
211 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
212 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
213 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
214 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
215 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
216 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
217 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
218 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
219 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
220 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
221 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
222 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
223 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
224 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
225 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
226 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
227 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
228 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
229 {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08},
230 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
231 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
232 {0x78,0x75,0xdb,0xf6,0x73,0x8c,0x64,0x78},
233 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
234 {0x7c,0xb3,0xf1,0xdf,0x34,0xf9,0x48,0x11},
235 };
236
237int main(int argc, char *argv[])
238 {
239 int i,n,err=0;
240 RC5_32_KEY key;
241 unsigned char buf[8],buf2[8],ivb[8];
242
243 for (n=0; n<5; n++)
244 {
245 RC5_32_set_key(&key,16,&(RC5key[n][0]),12);
246
247 RC5_32_ecb_encrypt(&(RC5plain[n][0]),buf,&key,RC5_ENCRYPT);
248 if (memcmp(&(RC5cipher[n][0]),buf,8) != 0)
249 {
250 printf("ecb RC5 error encrypting (%d)\n",n+1);
251 printf("got :");
252 for (i=0; i<8; i++)
253 printf("%02X ",buf[i]);
254 printf("\n");
255 printf("expected:");
256 for (i=0; i<8; i++)
257 printf("%02X ",RC5cipher[n][i]);
258 err=20;
259 printf("\n");
260 }
261
262 RC5_32_ecb_encrypt(buf,buf2,&key,RC5_DECRYPT);
263 if (memcmp(&(RC5plain[n][0]),buf2,8) != 0)
264 {
265 printf("ecb RC5 error decrypting (%d)\n",n+1);
266 printf("got :");
267 for (i=0; i<8; i++)
268 printf("%02X ",buf2[i]);
269 printf("\n");
270 printf("expected:");
271 for (i=0; i<8; i++)
272 printf("%02X ",RC5plain[n][i]);
273 printf("\n");
274 err=3;
275 }
276 }
277 if (err == 0) printf("ecb RC5 ok\n");
278
279 for (n=0; n<RC5_CBC_NUM; n++)
280 {
281 i=rc5_cbc_rounds[n];
282 if (i < 8) continue;
283
284 RC5_32_set_key(&key,rc5_cbc_key[n][0],&(rc5_cbc_key[n][1]),i);
285
286 memcpy(ivb,&(rc5_cbc_iv[n][0]),8);
287 RC5_32_cbc_encrypt(&(rc5_cbc_plain[n][0]),buf,8,
288 &key,&(ivb[0]),RC5_ENCRYPT);
289
290 if (memcmp(&(rc5_cbc_cipher[n][0]),buf,8) != 0)
291 {
292 printf("cbc RC5 error encrypting (%d)\n",n+1);
293 printf("got :");
294 for (i=0; i<8; i++)
295 printf("%02X ",buf[i]);
296 printf("\n");
297 printf("expected:");
298 for (i=0; i<8; i++)
299 printf("%02X ",rc5_cbc_cipher[n][i]);
300 err=30;
301 printf("\n");
302 }
303
304 memcpy(ivb,&(rc5_cbc_iv[n][0]),8);
305 RC5_32_cbc_encrypt(buf,buf2,8,
306 &key,&(ivb[0]),RC5_DECRYPT);
307 if (memcmp(&(rc5_cbc_plain[n][0]),buf2,8) != 0)
308 {
309 printf("cbc RC5 error decrypting (%d)\n",n+1);
310 printf("got :");
311 for (i=0; i<8; i++)
312 printf("%02X ",buf2[i]);
313 printf("\n");
314 printf("expected:");
315 for (i=0; i<8; i++)
316 printf("%02X ",rc5_cbc_plain[n][i]);
317 printf("\n");
318 err=3;
319 }
320 }
321 if (err == 0) printf("cbc RC5 ok\n");
322
323 EXIT(err);
324 return(err);
325 }
326
327#ifdef undef
328static int cfb64_test(unsigned char *cfb_cipher)
329 {
330 IDEA_KEY_SCHEDULE eks,dks;
331 int err=0,i,n;
332
333 idea_set_encrypt_key(cfb_key,&eks);
334 idea_set_decrypt_key(&eks,&dks);
335 memcpy(cfb_tmp,cfb_iv,8);
336 n=0;
337 idea_cfb64_encrypt(plain,cfb_buf1,(long)12,&eks,
338 cfb_tmp,&n,IDEA_ENCRYPT);
339 idea_cfb64_encrypt(&(plain[12]),&(cfb_buf1[12]),
340 (long)CFB_TEST_SIZE-12,&eks,
341 cfb_tmp,&n,IDEA_ENCRYPT);
342 if (memcmp(cfb_cipher,cfb_buf1,CFB_TEST_SIZE) != 0)
343 {
344 err=1;
345 printf("idea_cfb64_encrypt encrypt error\n");
346 for (i=0; i<CFB_TEST_SIZE; i+=8)
347 printf("%s\n",pt(&(cfb_buf1[i])));
348 }
349 memcpy(cfb_tmp,cfb_iv,8);
350 n=0;
351 idea_cfb64_encrypt(cfb_buf1,cfb_buf2,(long)17,&eks,
352 cfb_tmp,&n,IDEA_DECRYPT);
353 idea_cfb64_encrypt(&(cfb_buf1[17]),&(cfb_buf2[17]),
354 (long)CFB_TEST_SIZE-17,&dks,
355 cfb_tmp,&n,IDEA_DECRYPT);
356 if (memcmp(plain,cfb_buf2,CFB_TEST_SIZE) != 0)
357 {
358 err=1;
359 printf("idea_cfb_encrypt decrypt error\n");
360 for (i=0; i<24; i+=8)
361 printf("%s\n",pt(&(cfb_buf2[i])));
362 }
363 return(err);
364 }
365
366static char *pt(unsigned char *p)
367 {
368 static char bufs[10][20];
369 static int bnum=0;
370 char *ret;
371 int i;
372 static char *f="0123456789ABCDEF";
373
374 ret= &(bufs[bnum++][0]);
375 bnum%=10;
376 for (i=0; i<8; i++)
377 {
378 ret[i*2]=f[(p[i]>>4)&0xf];
379 ret[i*2+1]=f[p[i]&0xf];
380 }
381 ret[16]='\0';
382 return(ret);
383 }
384
385#endif
386#endif
diff --git a/src/lib/libssl/src/fips/aes/fingerprint.sha1 b/src/lib/libssl/src/fips/aes/fingerprint.sha1
new file mode 100644
index 0000000000..33eafc7820
--- /dev/null
+++ b/src/lib/libssl/src/fips/aes/fingerprint.sha1
@@ -0,0 +1,3 @@
1HMAC-SHA1(fips_aes_core.c)= b70bbbd675efe0613da0d57055310926a0104d55
2HMAC-SHA1(fips_aes_selftest.c)= 98b01502221e7fe529fd981222f2cbb52eb4cbe0
3HMAC-SHA1(fips_aes_locl.h)= a98eb0aa449f1d95b8064e261b2ac2b1f328685e
diff --git a/src/lib/libssl/src/fips/aes/fips_aes_core.c b/src/lib/libssl/src/fips/aes/fips_aes_core.c
new file mode 100644
index 0000000000..82199c92e6
--- /dev/null
+++ b/src/lib/libssl/src/fips/aes/fips_aes_core.c
@@ -0,0 +1,1263 @@
1/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */
2/**
3 * rijndael-alg-fst.c
4 *
5 * @version 3.0 (December 2000)
6 *
7 * Optimised ANSI C code for the Rijndael cipher (now AES)
8 *
9 * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
10 * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
11 * @author Paulo Barreto <paulo.barreto@terra.com.br>
12 *
13 * This code is hereby placed in the public domain.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
16 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
22 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
24 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28/* Note: rewritten a little bit to provide error control and an OpenSSL-
29 compatible API */
30
31#ifndef AES_DEBUG
32# ifndef NDEBUG
33# define NDEBUG
34# endif
35#endif
36#include <assert.h>
37
38#include <stdlib.h>
39#include <openssl/aes.h>
40#include "fips_aes_locl.h"
41#include <openssl/fips.h>
42
43#ifdef OPENSSL_FIPS
44
45/*
46Te0[x] = S [x].[02, 01, 01, 03];
47Te1[x] = S [x].[03, 02, 01, 01];
48Te2[x] = S [x].[01, 03, 02, 01];
49Te3[x] = S [x].[01, 01, 03, 02];
50Te4[x] = S [x].[01, 01, 01, 01];
51
52Td0[x] = Si[x].[0e, 09, 0d, 0b];
53Td1[x] = Si[x].[0b, 0e, 09, 0d];
54Td2[x] = Si[x].[0d, 0b, 0e, 09];
55Td3[x] = Si[x].[09, 0d, 0b, 0e];
56Td4[x] = Si[x].[01, 01, 01, 01];
57*/
58
59static const u32 Te0[256] = {
60 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
61 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
62 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU,
63 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU,
64 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U,
65 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU,
66 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU,
67 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU,
68 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU,
69 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU,
70 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U,
71 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU,
72 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU,
73 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U,
74 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU,
75 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU,
76 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU,
77 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU,
78 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU,
79 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U,
80 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU,
81 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU,
82 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU,
83 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU,
84 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U,
85 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U,
86 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U,
87 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U,
88 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU,
89 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U,
90 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U,
91 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU,
92 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU,
93 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U,
94 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U,
95 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U,
96 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU,
97 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U,
98 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU,
99 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U,
100 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU,
101 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U,
102 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U,
103 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU,
104 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U,
105 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U,
106 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U,
107 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U,
108 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U,
109 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U,
110 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U,
111 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U,
112 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU,
113 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U,
114 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U,
115 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U,
116 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U,
117 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U,
118 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U,
119 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU,
120 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U,
121 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U,
122 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U,
123 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,
124};
125static const u32 Te1[256] = {
126 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU,
127 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U,
128 0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU,
129 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U,
130 0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU,
131 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U,
132 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU,
133 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U,
134 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U,
135 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU,
136 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U,
137 0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U,
138 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U,
139 0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU,
140 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U,
141 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U,
142 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU,
143 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U,
144 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U,
145 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U,
146 0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU,
147 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU,
148 0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U,
149 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU,
150 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU,
151 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U,
152 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU,
153 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U,
154 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU,
155 0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U,
156 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U,
157 0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U,
158 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU,
159 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U,
160 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU,
161 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U,
162 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU,
163 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U,
164 0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U,
165 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU,
166 0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU,
167 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU,
168 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U,
169 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U,
170 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU,
171 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U,
172 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU,
173 0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U,
174 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU,
175 0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U,
176 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU,
177 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU,
178 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U,
179 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU,
180 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U,
181 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU,
182 0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U,
183 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U,
184 0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U,
185 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU,
186 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU,
187 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U,
188 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU,
189 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U,
190};
191static const u32 Te2[256] = {
192 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU,
193 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U,
194 0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU,
195 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U,
196 0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU,
197 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U,
198 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU,
199 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U,
200 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U,
201 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU,
202 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U,
203 0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U,
204 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U,
205 0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU,
206 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U,
207 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U,
208 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU,
209 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U,
210 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U,
211 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U,
212 0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU,
213 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU,
214 0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U,
215 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU,
216 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU,
217 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U,
218 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU,
219 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U,
220 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU,
221 0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U,
222 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U,
223 0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U,
224 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU,
225 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U,
226 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU,
227 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U,
228 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU,
229 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U,
230 0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U,
231 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU,
232 0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU,
233 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU,
234 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U,
235 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U,
236 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU,
237 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U,
238 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU,
239 0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U,
240 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU,
241 0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U,
242 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU,
243 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU,
244 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U,
245 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU,
246 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U,
247 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU,
248 0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U,
249 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U,
250 0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U,
251 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU,
252 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU,
253 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U,
254 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU,
255 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
256};
257static const u32 Te3[256] = {
258
259 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
260 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
261 0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
262 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU,
263 0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU,
264 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU,
265 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U,
266 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU,
267 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU,
268 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U,
269 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U,
270 0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU,
271 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU,
272 0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU,
273 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU,
274 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU,
275 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U,
276 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU,
277 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU,
278 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U,
279 0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U,
280 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U,
281 0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U,
282 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U,
283 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU,
284 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U,
285 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU,
286 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU,
287 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U,
288 0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U,
289 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U,
290 0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU,
291 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U,
292 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU,
293 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU,
294 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U,
295 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U,
296 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU,
297 0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U,
298 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU,
299 0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U,
300 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U,
301 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U,
302 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U,
303 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU,
304 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U,
305 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU,
306 0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U,
307 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU,
308 0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U,
309 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU,
310 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU,
311 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU,
312 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU,
313 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U,
314 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U,
315 0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U,
316 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U,
317 0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U,
318 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U,
319 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU,
320 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U,
321 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
322 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
323};
324static const u32 Te4[256] = {
325 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU,
326 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U,
327 0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU,
328 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U,
329 0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU,
330 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U,
331 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU,
332 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U,
333 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U,
334 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU,
335 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U,
336 0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U,
337 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U,
338 0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU,
339 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U,
340 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U,
341 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU,
342 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U,
343 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U,
344 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U,
345 0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU,
346 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU,
347 0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U,
348 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU,
349 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU,
350 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U,
351 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU,
352 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U,
353 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU,
354 0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U,
355 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U,
356 0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U,
357 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU,
358 0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U,
359 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU,
360 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U,
361 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU,
362 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U,
363 0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U,
364 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU,
365 0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU,
366 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU,
367 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U,
368 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U,
369 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU,
370 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U,
371 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU,
372 0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U,
373 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU,
374 0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U,
375 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU,
376 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU,
377 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U,
378 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU,
379 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U,
380 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU,
381 0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U,
382 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U,
383 0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U,
384 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU,
385 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU,
386 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U,
387 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU,
388 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U,
389};
390static const u32 Td0[256] = {
391 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
392 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
393 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U,
394 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU,
395 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U,
396 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U,
397 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU,
398 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U,
399 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU,
400 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U,
401 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U,
402 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U,
403 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U,
404 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU,
405 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U,
406 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU,
407 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U,
408 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU,
409 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U,
410 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U,
411 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U,
412 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU,
413 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U,
414 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU,
415 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U,
416 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU,
417 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U,
418 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU,
419 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU,
420 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U,
421 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU,
422 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U,
423 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU,
424 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U,
425 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U,
426 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U,
427 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU,
428 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U,
429 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U,
430 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU,
431 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U,
432 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U,
433 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U,
434 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U,
435 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U,
436 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU,
437 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U,
438 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U,
439 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U,
440 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U,
441 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U,
442 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU,
443 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU,
444 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU,
445 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU,
446 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U,
447 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U,
448 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU,
449 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU,
450 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U,
451 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU,
452 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U,
453 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U,
454 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,
455};
456static const u32 Td1[256] = {
457 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU,
458 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U,
459 0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU,
460 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U,
461 0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U,
462 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U,
463 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U,
464 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U,
465 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U,
466 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU,
467 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU,
468 0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU,
469 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U,
470 0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU,
471 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U,
472 0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U,
473 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U,
474 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU,
475 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU,
476 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U,
477 0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU,
478 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U,
479 0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU,
480 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU,
481 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U,
482 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U,
483 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U,
484 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU,
485 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U,
486 0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU,
487 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U,
488 0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U,
489 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U,
490 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU,
491 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U,
492 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U,
493 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U,
494 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U,
495 0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U,
496 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U,
497 0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU,
498 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU,
499 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U,
500 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU,
501 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U,
502 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU,
503 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU,
504 0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U,
505 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU,
506 0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U,
507 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U,
508 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U,
509 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U,
510 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U,
511 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U,
512 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U,
513 0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU,
514 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U,
515 0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U,
516 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU,
517 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U,
518 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U,
519 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U,
520 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U,
521};
522static const u32 Td2[256] = {
523 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U,
524 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U,
525 0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U,
526 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U,
527 0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU,
528 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U,
529 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U,
530 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U,
531 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U,
532 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU,
533 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U,
534 0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U,
535 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU,
536 0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U,
537 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U,
538 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U,
539 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U,
540 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
541 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
542 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
543
544 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
545 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
546 0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
547 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U,
548 0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U,
549 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU,
550 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU,
551 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U,
552 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU,
553 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U,
554 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU,
555 0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU,
556 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU,
557 0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU,
558 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U,
559 0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U,
560 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U,
561 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U,
562 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U,
563 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U,
564 0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U,
565 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU,
566 0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU,
567 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U,
568 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U,
569 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU,
570 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU,
571 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U,
572 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U,
573 0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U,
574 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U,
575 0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U,
576 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U,
577 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U,
578 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU,
579 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U,
580 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U,
581 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U,
582 0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U,
583 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U,
584 0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U,
585 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU,
586 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U,
587 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U,
588};
589static const u32 Td3[256] = {
590 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU,
591 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU,
592 0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U,
593 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U,
594 0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU,
595 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU,
596 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U,
597 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU,
598 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U,
599 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU,
600 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U,
601 0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U,
602 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U,
603 0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U,
604 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U,
605 0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU,
606 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU,
607 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U,
608 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U,
609 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU,
610 0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU,
611 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U,
612 0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U,
613 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U,
614 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U,
615 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU,
616 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U,
617 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U,
618 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU,
619 0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU,
620 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U,
621 0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U,
622 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U,
623 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU,
624 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U,
625 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U,
626 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U,
627 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U,
628 0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U,
629 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U,
630 0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U,
631 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU,
632 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U,
633 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U,
634 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU,
635 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU,
636 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U,
637 0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU,
638 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U,
639 0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U,
640 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U,
641 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U,
642 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U,
643 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U,
644 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU,
645 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU,
646 0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU,
647 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU,
648 0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U,
649 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U,
650 0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U,
651 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU,
652 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
653 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
654};
655static const u32 Td4[256] = {
656 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U,
657 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U,
658 0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU,
659 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU,
660 0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U,
661 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U,
662 0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U,
663 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU,
664 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U,
665 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU,
666 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU,
667 0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU,
668 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U,
669 0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U,
670 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U,
671 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U,
672 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U,
673 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U,
674 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU,
675 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U,
676 0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U,
677 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU,
678 0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U,
679 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U,
680 0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U,
681 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU,
682 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U,
683 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U,
684 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU,
685 0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U,
686 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U,
687 0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU,
688 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U,
689 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU,
690 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU,
691 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U,
692 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U,
693 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U,
694 0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U,
695 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU,
696 0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U,
697 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U,
698 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU,
699 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU,
700 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU,
701 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U,
702 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU,
703 0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U,
704 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U,
705 0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U,
706 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U,
707 0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU,
708 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U,
709 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU,
710 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU,
711 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU,
712 0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU,
713 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U,
714 0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU,
715 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U,
716 0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU,
717 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U,
718 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U,
719 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU,
720};
721static const u32 rcon[] = {
722 0x01000000, 0x02000000, 0x04000000, 0x08000000,
723 0x10000000, 0x20000000, 0x40000000, 0x80000000,
724 0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
725};
726
727/**
728 * Expand the cipher key into the encryption key schedule.
729 */
730int AES_set_encrypt_key(const unsigned char *userKey,
731 const FIPS_AES_SIZE_T bits, AES_KEY *key) {
732
733 u32 *rk;
734 int i = 0;
735 u32 temp;
736
737 if (!userKey || !key)
738 return -1;
739 if (bits != 128 && bits != 192 && bits != 256)
740 return -2;
741 if(FIPS_selftest_failed())
742 return -3;
743
744 rk = key->rd_key;
745
746 if (bits==128)
747 key->rounds = 10;
748 else if (bits==192)
749 key->rounds = 12;
750 else
751 key->rounds = 14;
752
753 rk[0] = GETU32(userKey );
754 rk[1] = GETU32(userKey + 4);
755 rk[2] = GETU32(userKey + 8);
756 rk[3] = GETU32(userKey + 12);
757 if (bits == 128) {
758 while (1) {
759 temp = rk[3];
760 rk[4] = rk[0] ^
761 (Te4[(temp >> 16) & 0xff] & 0xff000000) ^
762 (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
763 (Te4[(temp ) & 0xff] & 0x0000ff00) ^
764 (Te4[(temp >> 24) ] & 0x000000ff) ^
765 rcon[i];
766 rk[5] = rk[1] ^ rk[4];
767 rk[6] = rk[2] ^ rk[5];
768 rk[7] = rk[3] ^ rk[6];
769 if (++i == 10) {
770 return 0;
771 }
772 rk += 4;
773 }
774 }
775 rk[4] = GETU32(userKey + 16);
776 rk[5] = GETU32(userKey + 20);
777 if (bits == 192) {
778 while (1) {
779 temp = rk[ 5];
780 rk[ 6] = rk[ 0] ^
781 (Te4[(temp >> 16) & 0xff] & 0xff000000) ^
782 (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
783 (Te4[(temp ) & 0xff] & 0x0000ff00) ^
784 (Te4[(temp >> 24) ] & 0x000000ff) ^
785 rcon[i];
786 rk[ 7] = rk[ 1] ^ rk[ 6];
787 rk[ 8] = rk[ 2] ^ rk[ 7];
788 rk[ 9] = rk[ 3] ^ rk[ 8];
789 if (++i == 8) {
790 return 0;
791 }
792 rk[10] = rk[ 4] ^ rk[ 9];
793 rk[11] = rk[ 5] ^ rk[10];
794 rk += 6;
795 }
796 }
797 rk[6] = GETU32(userKey + 24);
798 rk[7] = GETU32(userKey + 28);
799 if (bits == 256) {
800 while (1) {
801 temp = rk[ 7];
802 rk[ 8] = rk[ 0] ^
803 (Te4[(temp >> 16) & 0xff] & 0xff000000) ^
804 (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
805 (Te4[(temp ) & 0xff] & 0x0000ff00) ^
806 (Te4[(temp >> 24) ] & 0x000000ff) ^
807 rcon[i];
808 rk[ 9] = rk[ 1] ^ rk[ 8];
809 rk[10] = rk[ 2] ^ rk[ 9];
810 rk[11] = rk[ 3] ^ rk[10];
811 if (++i == 7) {
812 return 0;
813 }
814 temp = rk[11];
815 rk[12] = rk[ 4] ^
816 (Te4[(temp >> 24) ] & 0xff000000) ^
817 (Te4[(temp >> 16) & 0xff] & 0x00ff0000) ^
818 (Te4[(temp >> 8) & 0xff] & 0x0000ff00) ^
819 (Te4[(temp ) & 0xff] & 0x000000ff);
820 rk[13] = rk[ 5] ^ rk[12];
821 rk[14] = rk[ 6] ^ rk[13];
822 rk[15] = rk[ 7] ^ rk[14];
823
824 rk += 8;
825 }
826 }
827 return 0;
828}
829
830/**
831 * Expand the cipher key into the decryption key schedule.
832 */
833int AES_set_decrypt_key(const unsigned char *userKey,
834 const FIPS_AES_SIZE_T bits, AES_KEY *key) {
835
836 u32 *rk;
837 int i, j, status;
838 u32 temp;
839
840 /* first, start with an encryption schedule */
841 status = AES_set_encrypt_key(userKey, bits, key);
842 if (status < 0)
843 return status;
844
845 rk = key->rd_key;
846
847 /* invert the order of the round keys: */
848 for (i = 0, j = 4*(key->rounds); i < j; i += 4, j -= 4) {
849 temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp;
850 temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
851 temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
852 temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
853 }
854 /* apply the inverse MixColumn transform to all round keys but the first and the last: */
855 for (i = 1; i < (key->rounds); i++) {
856 rk += 4;
857 rk[0] =
858 Td0[Te4[(rk[0] >> 24) ] & 0xff] ^
859 Td1[Te4[(rk[0] >> 16) & 0xff] & 0xff] ^
860 Td2[Te4[(rk[0] >> 8) & 0xff] & 0xff] ^
861 Td3[Te4[(rk[0] ) & 0xff] & 0xff];
862 rk[1] =
863 Td0[Te4[(rk[1] >> 24) ] & 0xff] ^
864 Td1[Te4[(rk[1] >> 16) & 0xff] & 0xff] ^
865 Td2[Te4[(rk[1] >> 8) & 0xff] & 0xff] ^
866 Td3[Te4[(rk[1] ) & 0xff] & 0xff];
867 rk[2] =
868 Td0[Te4[(rk[2] >> 24) ] & 0xff] ^
869 Td1[Te4[(rk[2] >> 16) & 0xff] & 0xff] ^
870 Td2[Te4[(rk[2] >> 8) & 0xff] & 0xff] ^
871 Td3[Te4[(rk[2] ) & 0xff] & 0xff];
872 rk[3] =
873 Td0[Te4[(rk[3] >> 24) ] & 0xff] ^
874 Td1[Te4[(rk[3] >> 16) & 0xff] & 0xff] ^
875 Td2[Te4[(rk[3] >> 8) & 0xff] & 0xff] ^
876 Td3[Te4[(rk[3] ) & 0xff] & 0xff];
877 }
878 return 0;
879}
880
881/*
882 * Encrypt a single block
883 * in and out can overlap
884 */
885void AES_encrypt(const unsigned char *in, unsigned char *out,
886 const AES_KEY *key) {
887
888 const u32 *rk;
889 u32 s0, s1, s2, s3, t0, t1, t2, t3;
890#ifndef FULL_UNROLL
891 int r;
892#endif /* ?FULL_UNROLL */
893
894 assert(in && out && key);
895 rk = key->rd_key;
896
897 /*
898 * map byte array block to cipher state
899 * and add initial round key:
900 */
901 s0 = GETU32(in ) ^ rk[0];
902 s1 = GETU32(in + 4) ^ rk[1];
903 s2 = GETU32(in + 8) ^ rk[2];
904 s3 = GETU32(in + 12) ^ rk[3];
905#ifdef FULL_UNROLL
906 /* round 1: */
907 t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[ 4];
908 t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[ 5];
909 t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[ 6];
910 t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[ 7];
911 /* round 2: */
912 s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[ 8];
913 s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[ 9];
914 s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[10];
915 s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[11];
916 /* round 3: */
917 t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[12];
918 t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[13];
919 t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[14];
920 t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[15];
921 /* round 4: */
922 s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[16];
923 s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[17];
924 s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[18];
925 s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[19];
926 /* round 5: */
927 t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[20];
928 t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[21];
929 t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[22];
930 t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[23];
931 /* round 6: */
932 s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[24];
933 s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[25];
934 s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[26];
935 s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[27];
936 /* round 7: */
937 t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[28];
938 t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[29];
939 t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[30];
940 t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[31];
941 /* round 8: */
942 s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[32];
943 s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[33];
944 s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[34];
945 s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[35];
946 /* round 9: */
947 t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[36];
948 t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[37];
949 t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[38];
950 t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[39];
951 if (key->rounds > 10) {
952 /* round 10: */
953 s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[40];
954 s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[41];
955 s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[42];
956 s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[43];
957 /* round 11: */
958 t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[44];
959 t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[45];
960 t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[46];
961 t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[47];
962 if (key->rounds > 12) {
963 /* round 12: */
964 s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[48];
965 s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[49];
966 s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[50];
967 s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[51];
968 /* round 13: */
969 t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[52];
970 t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[53];
971 t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[54];
972 t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[55];
973 }
974 }
975 rk += key->rounds << 2;
976#else /* !FULL_UNROLL */
977 /*
978 * Nr - 1 full rounds:
979 */
980 r = key->rounds >> 1;
981 for (;;) {
982 t0 =
983 Te0[(s0 >> 24) ] ^
984 Te1[(s1 >> 16) & 0xff] ^
985 Te2[(s2 >> 8) & 0xff] ^
986 Te3[(s3 ) & 0xff] ^
987 rk[4];
988 t1 =
989 Te0[(s1 >> 24) ] ^
990 Te1[(s2 >> 16) & 0xff] ^
991 Te2[(s3 >> 8) & 0xff] ^
992 Te3[(s0 ) & 0xff] ^
993 rk[5];
994 t2 =
995 Te0[(s2 >> 24) ] ^
996 Te1[(s3 >> 16) & 0xff] ^
997 Te2[(s0 >> 8) & 0xff] ^
998 Te3[(s1 ) & 0xff] ^
999 rk[6];
1000 t3 =
1001 Te0[(s3 >> 24) ] ^
1002 Te1[(s0 >> 16) & 0xff] ^
1003 Te2[(s1 >> 8) & 0xff] ^
1004 Te3[(s2 ) & 0xff] ^
1005 rk[7];
1006
1007 rk += 8;
1008 if (--r == 0) {
1009 break;
1010 }
1011
1012 s0 =
1013 Te0[(t0 >> 24) ] ^
1014 Te1[(t1 >> 16) & 0xff] ^
1015 Te2[(t2 >> 8) & 0xff] ^
1016 Te3[(t3 ) & 0xff] ^
1017 rk[0];
1018 s1 =
1019 Te0[(t1 >> 24) ] ^
1020 Te1[(t2 >> 16) & 0xff] ^
1021 Te2[(t3 >> 8) & 0xff] ^
1022 Te3[(t0 ) & 0xff] ^
1023 rk[1];
1024 s2 =
1025 Te0[(t2 >> 24) ] ^
1026 Te1[(t3 >> 16) & 0xff] ^
1027 Te2[(t0 >> 8) & 0xff] ^
1028 Te3[(t1 ) & 0xff] ^
1029 rk[2];
1030 s3 =
1031 Te0[(t3 >> 24) ] ^
1032 Te1[(t0 >> 16) & 0xff] ^
1033 Te2[(t1 >> 8) & 0xff] ^
1034 Te3[(t2 ) & 0xff] ^
1035 rk[3];
1036 }
1037#endif /* ?FULL_UNROLL */
1038 /*
1039 * apply last round and
1040 * map cipher state to byte array block:
1041 */
1042 s0 =
1043 (Te4[(t0 >> 24) ] & 0xff000000) ^
1044 (Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
1045 (Te4[(t2 >> 8) & 0xff] & 0x0000ff00) ^
1046 (Te4[(t3 ) & 0xff] & 0x000000ff) ^
1047 rk[0];
1048 PUTU32(out , s0);
1049 s1 =
1050 (Te4[(t1 >> 24) ] & 0xff000000) ^
1051 (Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
1052 (Te4[(t3 >> 8) & 0xff] & 0x0000ff00) ^
1053 (Te4[(t0 ) & 0xff] & 0x000000ff) ^
1054 rk[1];
1055 PUTU32(out + 4, s1);
1056 s2 =
1057 (Te4[(t2 >> 24) ] & 0xff000000) ^
1058 (Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
1059 (Te4[(t0 >> 8) & 0xff] & 0x0000ff00) ^
1060 (Te4[(t1 ) & 0xff] & 0x000000ff) ^
1061 rk[2];
1062 PUTU32(out + 8, s2);
1063 s3 =
1064 (Te4[(t3 >> 24) ] & 0xff000000) ^
1065 (Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
1066 (Te4[(t1 >> 8) & 0xff] & 0x0000ff00) ^
1067 (Te4[(t2 ) & 0xff] & 0x000000ff) ^
1068 rk[3];
1069 PUTU32(out + 12, s3);
1070}
1071
1072/*
1073 * Decrypt a single block
1074 * in and out can overlap
1075 */
1076void AES_decrypt(const unsigned char *in, unsigned char *out,
1077 const AES_KEY *key) {
1078
1079 const u32 *rk;
1080 u32 s0, s1, s2, s3, t0, t1, t2, t3;
1081#ifndef FULL_UNROLL
1082 int r;
1083#endif /* ?FULL_UNROLL */
1084
1085 assert(in && out && key);
1086 rk = key->rd_key;
1087
1088 /*
1089 * map byte array block to cipher state
1090 * and add initial round key:
1091 */
1092 s0 = GETU32(in ) ^ rk[0];
1093 s1 = GETU32(in + 4) ^ rk[1];
1094 s2 = GETU32(in + 8) ^ rk[2];
1095 s3 = GETU32(in + 12) ^ rk[3];
1096#ifdef FULL_UNROLL
1097 /* round 1: */
1098 t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[ 4];
1099 t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[ 5];
1100 t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[ 6];
1101 t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[ 7];
1102 /* round 2: */
1103 s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[ 8];
1104 s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[ 9];
1105 s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[10];
1106 s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[11];
1107 /* round 3: */
1108 t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[12];
1109 t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[13];
1110 t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[14];
1111 t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[15];
1112 /* round 4: */
1113 s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[16];
1114 s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[17];
1115 s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[18];
1116 s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[19];
1117 /* round 5: */
1118 t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[20];
1119 t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[21];
1120 t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[22];
1121 t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[23];
1122 /* round 6: */
1123 s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[24];
1124 s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[25];
1125 s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[26];
1126 s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[27];
1127 /* round 7: */
1128 t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[28];
1129 t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[29];
1130 t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[30];
1131 t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[31];
1132 /* round 8: */
1133 s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[32];
1134 s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[33];
1135 s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[34];
1136 s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[35];
1137 /* round 9: */
1138 t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[36];
1139 t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[37];
1140 t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[38];
1141 t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[39];
1142 if (key->rounds > 10) {
1143 /* round 10: */
1144 s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[40];
1145 s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[41];
1146 s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[42];
1147 s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[43];
1148 /* round 11: */
1149 t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[44];
1150 t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[45];
1151 t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[46];
1152 t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[47];
1153 if (key->rounds > 12) {
1154 /* round 12: */
1155 s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[48];
1156 s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[49];
1157 s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[50];
1158 s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[51];
1159 /* round 13: */
1160 t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[52];
1161 t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[53];
1162 t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[54];
1163 t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[55];
1164 }
1165 }
1166 rk += key->rounds << 2;
1167#else /* !FULL_UNROLL */
1168 /*
1169 * Nr - 1 full rounds:
1170 */
1171 r = key->rounds >> 1;
1172 for (;;) {
1173 t0 =
1174 Td0[(s0 >> 24) ] ^
1175 Td1[(s3 >> 16) & 0xff] ^
1176 Td2[(s2 >> 8) & 0xff] ^
1177 Td3[(s1 ) & 0xff] ^
1178 rk[4];
1179 t1 =
1180 Td0[(s1 >> 24) ] ^
1181 Td1[(s0 >> 16) & 0xff] ^
1182 Td2[(s3 >> 8) & 0xff] ^
1183 Td3[(s2 ) & 0xff] ^
1184 rk[5];
1185 t2 =
1186 Td0[(s2 >> 24) ] ^
1187 Td1[(s1 >> 16) & 0xff] ^
1188 Td2[(s0 >> 8) & 0xff] ^
1189 Td3[(s3 ) & 0xff] ^
1190 rk[6];
1191 t3 =
1192 Td0[(s3 >> 24) ] ^
1193 Td1[(s2 >> 16) & 0xff] ^
1194 Td2[(s1 >> 8) & 0xff] ^
1195 Td3[(s0 ) & 0xff] ^
1196 rk[7];
1197
1198 rk += 8;
1199 if (--r == 0) {
1200 break;
1201 }
1202
1203 s0 =
1204 Td0[(t0 >> 24) ] ^
1205 Td1[(t3 >> 16) & 0xff] ^
1206 Td2[(t2 >> 8) & 0xff] ^
1207 Td3[(t1 ) & 0xff] ^
1208 rk[0];
1209 s1 =
1210 Td0[(t1 >> 24) ] ^
1211 Td1[(t0 >> 16) & 0xff] ^
1212 Td2[(t3 >> 8) & 0xff] ^
1213 Td3[(t2 ) & 0xff] ^
1214 rk[1];
1215 s2 =
1216 Td0[(t2 >> 24) ] ^
1217 Td1[(t1 >> 16) & 0xff] ^
1218 Td2[(t0 >> 8) & 0xff] ^
1219 Td3[(t3 ) & 0xff] ^
1220 rk[2];
1221 s3 =
1222 Td0[(t3 >> 24) ] ^
1223 Td1[(t2 >> 16) & 0xff] ^
1224 Td2[(t1 >> 8) & 0xff] ^
1225 Td3[(t0 ) & 0xff] ^
1226 rk[3];
1227 }
1228#endif /* ?FULL_UNROLL */
1229 /*
1230 * apply last round and
1231 * map cipher state to byte array block:
1232 */
1233 s0 =
1234 (Td4[(t0 >> 24) ] & 0xff000000) ^
1235 (Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
1236 (Td4[(t2 >> 8) & 0xff] & 0x0000ff00) ^
1237 (Td4[(t1 ) & 0xff] & 0x000000ff) ^
1238 rk[0];
1239 PUTU32(out , s0);
1240 s1 =
1241 (Td4[(t1 >> 24) ] & 0xff000000) ^
1242 (Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
1243 (Td4[(t3 >> 8) & 0xff] & 0x0000ff00) ^
1244 (Td4[(t2 ) & 0xff] & 0x000000ff) ^
1245 rk[1];
1246 PUTU32(out + 4, s1);
1247 s2 =
1248 (Td4[(t2 >> 24) ] & 0xff000000) ^
1249 (Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
1250 (Td4[(t0 >> 8) & 0xff] & 0x0000ff00) ^
1251 (Td4[(t3 ) & 0xff] & 0x000000ff) ^
1252 rk[2];
1253 PUTU32(out + 8, s2);
1254 s3 =
1255 (Td4[(t3 >> 24) ] & 0xff000000) ^
1256 (Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
1257 (Td4[(t1 >> 8) & 0xff] & 0x0000ff00) ^
1258 (Td4[(t0 ) & 0xff] & 0x000000ff) ^
1259 rk[3];
1260 PUTU32(out + 12, s3);
1261}
1262
1263#endif /* def OPENSSL_FIPS */
diff --git a/src/lib/libssl/src/fips/aes/fips_aes_locl.h b/src/lib/libssl/src/fips/aes/fips_aes_locl.h
new file mode 100644
index 0000000000..4184729e34
--- /dev/null
+++ b/src/lib/libssl/src/fips/aes/fips_aes_locl.h
@@ -0,0 +1,85 @@
1/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */
2/* ====================================================================
3 * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * 3. All advertising materials mentioning features or use of this
18 * software must display the following acknowledgment:
19 * "This product includes software developed by the OpenSSL Project
20 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21 *
22 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23 * endorse or promote products derived from this software without
24 * prior written permission. For written permission, please contact
25 * openssl-core@openssl.org.
26 *
27 * 5. Products derived from this software may not be called "OpenSSL"
28 * nor may "OpenSSL" appear in their names without prior written
29 * permission of the OpenSSL Project.
30 *
31 * 6. Redistributions of any form whatsoever must retain the following
32 * acknowledgment:
33 * "This product includes software developed by the OpenSSL Project
34 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
35 *
36 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47 * OF THE POSSIBILITY OF SUCH DAMAGE.
48 * ====================================================================
49 *
50 */
51
52#ifndef HEADER_AES_LOCL_H
53#define HEADER_AES_LOCL_H
54
55#include <openssl/e_os2.h>
56
57#ifdef OPENSSL_NO_AES
58#error AES is disabled.
59#endif
60
61#include <stdio.h>
62#include <stdlib.h>
63#include <string.h>
64
65#if defined(_MSC_VER) && !defined(_M_IA64) && !defined(OPENSSL_SYS_WINCE)
66# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
67# define GETU32(p) SWAP(*((u32 *)(p)))
68# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
69#else
70# define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3]))
71# define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); }
72#endif
73
74typedef unsigned long u32;
75typedef unsigned short u16;
76typedef unsigned char u8;
77
78#define MAXKC (256/32)
79#define MAXKB (256/8)
80#define MAXNR 14
81
82/* This controls loop-unrolling in aes_core.c */
83#undef FULL_UNROLL
84
85#endif /* !HEADER_AES_LOCL_H */
diff --git a/src/lib/libssl/src/fips/des/asm/fips-dx86-elf.s b/src/lib/libssl/src/fips/des/asm/fips-dx86-elf.s
new file mode 100644
index 0000000000..c9939221e4
--- /dev/null
+++ b/src/lib/libssl/src/fips/des/asm/fips-dx86-elf.s
@@ -0,0 +1,2697 @@
1
2
3
4
5
6
7 .file "des-586.s"
8 .version "01.01"
9gcc2_compiled.:
10.text
11 .align 16
12.globl DES_encrypt1
13 .type DES_encrypt1,@function
14DES_encrypt1:
15 pushl %esi
16 pushl %edi
17
18
19 movl 12(%esp), %esi
20 xorl %ecx, %ecx
21 pushl %ebx
22 pushl %ebp
23 movl (%esi), %eax
24 movl 28(%esp), %ebx
25 movl 4(%esi), %edi
26
27
28 roll $4, %eax
29 movl %eax, %esi
30 xorl %edi, %eax
31 andl $0xf0f0f0f0, %eax
32 xorl %eax, %esi
33 xorl %eax, %edi
34
35 roll $20, %edi
36 movl %edi, %eax
37 xorl %esi, %edi
38 andl $0xfff0000f, %edi
39 xorl %edi, %eax
40 xorl %edi, %esi
41
42 roll $14, %eax
43 movl %eax, %edi
44 xorl %esi, %eax
45 andl $0x33333333, %eax
46 xorl %eax, %edi
47 xorl %eax, %esi
48
49 roll $22, %esi
50 movl %esi, %eax
51 xorl %edi, %esi
52 andl $0x03fc03fc, %esi
53 xorl %esi, %eax
54 xorl %esi, %edi
55
56 roll $9, %eax
57 movl %eax, %esi
58 xorl %edi, %eax
59 andl $0xaaaaaaaa, %eax
60 xorl %eax, %esi
61 xorl %eax, %edi
62
63.byte 209
64.byte 199
65 leal DES_SPtrans, %ebp
66 movl 24(%esp), %ecx
67 cmpl $0, %ebx
68 je .L000start_decrypt
69
70
71 movl (%ecx), %eax
72 xorl %ebx, %ebx
73 movl 4(%ecx), %edx
74 xorl %esi, %eax
75 xorl %ecx, %ecx
76 xorl %esi, %edx
77 andl $0xfcfcfcfc, %eax
78 andl $0xcfcfcfcf, %edx
79 movb %al, %bl
80 movb %ah, %cl
81 rorl $4, %edx
82 xorl (%ebp,%ebx),%edi
83 movb %dl, %bl
84 xorl 0x200(%ebp,%ecx),%edi
85 movb %dh, %cl
86 shrl $16, %eax
87 xorl 0x100(%ebp,%ebx),%edi
88 movb %ah, %bl
89 shrl $16, %edx
90 xorl 0x300(%ebp,%ecx),%edi
91 movb %dh, %cl
92 andl $0xff, %eax
93 andl $0xff, %edx
94 xorl 0x600(%ebp,%ebx),%edi
95 xorl 0x700(%ebp,%ecx),%edi
96 movl 24(%esp), %ecx
97 xorl 0x400(%ebp,%eax),%edi
98 xorl 0x500(%ebp,%edx),%edi
99
100
101 movl 8(%ecx), %eax
102 xorl %ebx, %ebx
103 movl 12(%ecx), %edx
104 xorl %edi, %eax
105 xorl %ecx, %ecx
106 xorl %edi, %edx
107 andl $0xfcfcfcfc, %eax
108 andl $0xcfcfcfcf, %edx
109 movb %al, %bl
110 movb %ah, %cl
111 rorl $4, %edx
112 xorl (%ebp,%ebx),%esi
113 movb %dl, %bl
114 xorl 0x200(%ebp,%ecx),%esi
115 movb %dh, %cl
116 shrl $16, %eax
117 xorl 0x100(%ebp,%ebx),%esi
118 movb %ah, %bl
119 shrl $16, %edx
120 xorl 0x300(%ebp,%ecx),%esi
121 movb %dh, %cl
122 andl $0xff, %eax
123 andl $0xff, %edx
124 xorl 0x600(%ebp,%ebx),%esi
125 xorl 0x700(%ebp,%ecx),%esi
126 movl 24(%esp), %ecx
127 xorl 0x400(%ebp,%eax),%esi
128 xorl 0x500(%ebp,%edx),%esi
129
130
131 movl 16(%ecx), %eax
132 xorl %ebx, %ebx
133 movl 20(%ecx), %edx
134 xorl %esi, %eax
135 xorl %ecx, %ecx
136 xorl %esi, %edx
137 andl $0xfcfcfcfc, %eax
138 andl $0xcfcfcfcf, %edx
139 movb %al, %bl
140 movb %ah, %cl
141 rorl $4, %edx
142 xorl (%ebp,%ebx),%edi
143 movb %dl, %bl
144 xorl 0x200(%ebp,%ecx),%edi
145 movb %dh, %cl
146 shrl $16, %eax
147 xorl 0x100(%ebp,%ebx),%edi
148 movb %ah, %bl
149 shrl $16, %edx
150 xorl 0x300(%ebp,%ecx),%edi
151 movb %dh, %cl
152 andl $0xff, %eax
153 andl $0xff, %edx
154 xorl 0x600(%ebp,%ebx),%edi
155 xorl 0x700(%ebp,%ecx),%edi
156 movl 24(%esp), %ecx
157 xorl 0x400(%ebp,%eax),%edi
158 xorl 0x500(%ebp,%edx),%edi
159
160
161 movl 24(%ecx), %eax
162 xorl %ebx, %ebx
163 movl 28(%ecx), %edx
164 xorl %edi, %eax
165 xorl %ecx, %ecx
166 xorl %edi, %edx
167 andl $0xfcfcfcfc, %eax
168 andl $0xcfcfcfcf, %edx
169 movb %al, %bl
170 movb %ah, %cl
171 rorl $4, %edx
172 xorl (%ebp,%ebx),%esi
173 movb %dl, %bl
174 xorl 0x200(%ebp,%ecx),%esi
175 movb %dh, %cl
176 shrl $16, %eax
177 xorl 0x100(%ebp,%ebx),%esi
178 movb %ah, %bl
179 shrl $16, %edx
180 xorl 0x300(%ebp,%ecx),%esi
181 movb %dh, %cl
182 andl $0xff, %eax
183 andl $0xff, %edx
184 xorl 0x600(%ebp,%ebx),%esi
185 xorl 0x700(%ebp,%ecx),%esi
186 movl 24(%esp), %ecx
187 xorl 0x400(%ebp,%eax),%esi
188 xorl 0x500(%ebp,%edx),%esi
189
190
191 movl 32(%ecx), %eax
192 xorl %ebx, %ebx
193 movl 36(%ecx), %edx
194 xorl %esi, %eax
195 xorl %ecx, %ecx
196 xorl %esi, %edx
197 andl $0xfcfcfcfc, %eax
198 andl $0xcfcfcfcf, %edx
199 movb %al, %bl
200 movb %ah, %cl
201 rorl $4, %edx
202 xorl (%ebp,%ebx),%edi
203 movb %dl, %bl
204 xorl 0x200(%ebp,%ecx),%edi
205 movb %dh, %cl
206 shrl $16, %eax
207 xorl 0x100(%ebp,%ebx),%edi
208 movb %ah, %bl
209 shrl $16, %edx
210 xorl 0x300(%ebp,%ecx),%edi
211 movb %dh, %cl
212 andl $0xff, %eax
213 andl $0xff, %edx
214 xorl 0x600(%ebp,%ebx),%edi
215 xorl 0x700(%ebp,%ecx),%edi
216 movl 24(%esp), %ecx
217 xorl 0x400(%ebp,%eax),%edi
218 xorl 0x500(%ebp,%edx),%edi
219
220
221 movl 40(%ecx), %eax
222 xorl %ebx, %ebx
223 movl 44(%ecx), %edx
224 xorl %edi, %eax
225 xorl %ecx, %ecx
226 xorl %edi, %edx
227 andl $0xfcfcfcfc, %eax
228 andl $0xcfcfcfcf, %edx
229 movb %al, %bl
230 movb %ah, %cl
231 rorl $4, %edx
232 xorl (%ebp,%ebx),%esi
233 movb %dl, %bl
234 xorl 0x200(%ebp,%ecx),%esi
235 movb %dh, %cl
236 shrl $16, %eax
237 xorl 0x100(%ebp,%ebx),%esi
238 movb %ah, %bl
239 shrl $16, %edx
240 xorl 0x300(%ebp,%ecx),%esi
241 movb %dh, %cl
242 andl $0xff, %eax
243 andl $0xff, %edx
244 xorl 0x600(%ebp,%ebx),%esi
245 xorl 0x700(%ebp,%ecx),%esi
246 movl 24(%esp), %ecx
247 xorl 0x400(%ebp,%eax),%esi
248 xorl 0x500(%ebp,%edx),%esi
249
250
251 movl 48(%ecx), %eax
252 xorl %ebx, %ebx
253 movl 52(%ecx), %edx
254 xorl %esi, %eax
255 xorl %ecx, %ecx
256 xorl %esi, %edx
257 andl $0xfcfcfcfc, %eax
258 andl $0xcfcfcfcf, %edx
259 movb %al, %bl
260 movb %ah, %cl
261 rorl $4, %edx
262 xorl (%ebp,%ebx),%edi
263 movb %dl, %bl
264 xorl 0x200(%ebp,%ecx),%edi
265 movb %dh, %cl
266 shrl $16, %eax
267 xorl 0x100(%ebp,%ebx),%edi
268 movb %ah, %bl
269 shrl $16, %edx
270 xorl 0x300(%ebp,%ecx),%edi
271 movb %dh, %cl
272 andl $0xff, %eax
273 andl $0xff, %edx
274 xorl 0x600(%ebp,%ebx),%edi
275 xorl 0x700(%ebp,%ecx),%edi
276 movl 24(%esp), %ecx
277 xorl 0x400(%ebp,%eax),%edi
278 xorl 0x500(%ebp,%edx),%edi
279
280
281 movl 56(%ecx), %eax
282 xorl %ebx, %ebx
283 movl 60(%ecx), %edx
284 xorl %edi, %eax
285 xorl %ecx, %ecx
286 xorl %edi, %edx
287 andl $0xfcfcfcfc, %eax
288 andl $0xcfcfcfcf, %edx
289 movb %al, %bl
290 movb %ah, %cl
291 rorl $4, %edx
292 xorl (%ebp,%ebx),%esi
293 movb %dl, %bl
294 xorl 0x200(%ebp,%ecx),%esi
295 movb %dh, %cl
296 shrl $16, %eax
297 xorl 0x100(%ebp,%ebx),%esi
298 movb %ah, %bl
299 shrl $16, %edx
300 xorl 0x300(%ebp,%ecx),%esi
301 movb %dh, %cl
302 andl $0xff, %eax
303 andl $0xff, %edx
304 xorl 0x600(%ebp,%ebx),%esi
305 xorl 0x700(%ebp,%ecx),%esi
306 movl 24(%esp), %ecx
307 xorl 0x400(%ebp,%eax),%esi
308 xorl 0x500(%ebp,%edx),%esi
309
310
311 movl 64(%ecx), %eax
312 xorl %ebx, %ebx
313 movl 68(%ecx), %edx
314 xorl %esi, %eax
315 xorl %ecx, %ecx
316 xorl %esi, %edx
317 andl $0xfcfcfcfc, %eax
318 andl $0xcfcfcfcf, %edx
319 movb %al, %bl
320 movb %ah, %cl
321 rorl $4, %edx
322 xorl (%ebp,%ebx),%edi
323 movb %dl, %bl
324 xorl 0x200(%ebp,%ecx),%edi
325 movb %dh, %cl
326 shrl $16, %eax
327 xorl 0x100(%ebp,%ebx),%edi
328 movb %ah, %bl
329 shrl $16, %edx
330 xorl 0x300(%ebp,%ecx),%edi
331 movb %dh, %cl
332 andl $0xff, %eax
333 andl $0xff, %edx
334 xorl 0x600(%ebp,%ebx),%edi
335 xorl 0x700(%ebp,%ecx),%edi
336 movl 24(%esp), %ecx
337 xorl 0x400(%ebp,%eax),%edi
338 xorl 0x500(%ebp,%edx),%edi
339
340
341 movl 72(%ecx), %eax
342 xorl %ebx, %ebx
343 movl 76(%ecx), %edx
344 xorl %edi, %eax
345 xorl %ecx, %ecx
346 xorl %edi, %edx
347 andl $0xfcfcfcfc, %eax
348 andl $0xcfcfcfcf, %edx
349 movb %al, %bl
350 movb %ah, %cl
351 rorl $4, %edx
352 xorl (%ebp,%ebx),%esi
353 movb %dl, %bl
354 xorl 0x200(%ebp,%ecx),%esi
355 movb %dh, %cl
356 shrl $16, %eax
357 xorl 0x100(%ebp,%ebx),%esi
358 movb %ah, %bl
359 shrl $16, %edx
360 xorl 0x300(%ebp,%ecx),%esi
361 movb %dh, %cl
362 andl $0xff, %eax
363 andl $0xff, %edx
364 xorl 0x600(%ebp,%ebx),%esi
365 xorl 0x700(%ebp,%ecx),%esi
366 movl 24(%esp), %ecx
367 xorl 0x400(%ebp,%eax),%esi
368 xorl 0x500(%ebp,%edx),%esi
369
370
371 movl 80(%ecx), %eax
372 xorl %ebx, %ebx
373 movl 84(%ecx), %edx
374 xorl %esi, %eax
375 xorl %ecx, %ecx
376 xorl %esi, %edx
377 andl $0xfcfcfcfc, %eax
378 andl $0xcfcfcfcf, %edx
379 movb %al, %bl
380 movb %ah, %cl
381 rorl $4, %edx
382 xorl (%ebp,%ebx),%edi
383 movb %dl, %bl
384 xorl 0x200(%ebp,%ecx),%edi
385 movb %dh, %cl
386 shrl $16, %eax
387 xorl 0x100(%ebp,%ebx),%edi
388 movb %ah, %bl
389 shrl $16, %edx
390 xorl 0x300(%ebp,%ecx),%edi
391 movb %dh, %cl
392 andl $0xff, %eax
393 andl $0xff, %edx
394 xorl 0x600(%ebp,%ebx),%edi
395 xorl 0x700(%ebp,%ecx),%edi
396 movl 24(%esp), %ecx
397 xorl 0x400(%ebp,%eax),%edi
398 xorl 0x500(%ebp,%edx),%edi
399
400
401 movl 88(%ecx), %eax
402 xorl %ebx, %ebx
403 movl 92(%ecx), %edx
404 xorl %edi, %eax
405 xorl %ecx, %ecx
406 xorl %edi, %edx
407 andl $0xfcfcfcfc, %eax
408 andl $0xcfcfcfcf, %edx
409 movb %al, %bl
410 movb %ah, %cl
411 rorl $4, %edx
412 xorl (%ebp,%ebx),%esi
413 movb %dl, %bl
414 xorl 0x200(%ebp,%ecx),%esi
415 movb %dh, %cl
416 shrl $16, %eax
417 xorl 0x100(%ebp,%ebx),%esi
418 movb %ah, %bl
419 shrl $16, %edx
420 xorl 0x300(%ebp,%ecx),%esi
421 movb %dh, %cl
422 andl $0xff, %eax
423 andl $0xff, %edx
424 xorl 0x600(%ebp,%ebx),%esi
425 xorl 0x700(%ebp,%ecx),%esi
426 movl 24(%esp), %ecx
427 xorl 0x400(%ebp,%eax),%esi
428 xorl 0x500(%ebp,%edx),%esi
429
430
431 movl 96(%ecx), %eax
432 xorl %ebx, %ebx
433 movl 100(%ecx), %edx
434 xorl %esi, %eax
435 xorl %ecx, %ecx
436 xorl %esi, %edx
437 andl $0xfcfcfcfc, %eax
438 andl $0xcfcfcfcf, %edx
439 movb %al, %bl
440 movb %ah, %cl
441 rorl $4, %edx
442 xorl (%ebp,%ebx),%edi
443 movb %dl, %bl
444 xorl 0x200(%ebp,%ecx),%edi
445 movb %dh, %cl
446 shrl $16, %eax
447 xorl 0x100(%ebp,%ebx),%edi
448 movb %ah, %bl
449 shrl $16, %edx
450 xorl 0x300(%ebp,%ecx),%edi
451 movb %dh, %cl
452 andl $0xff, %eax
453 andl $0xff, %edx
454 xorl 0x600(%ebp,%ebx),%edi
455 xorl 0x700(%ebp,%ecx),%edi
456 movl 24(%esp), %ecx
457 xorl 0x400(%ebp,%eax),%edi
458 xorl 0x500(%ebp,%edx),%edi
459
460
461 movl 104(%ecx), %eax
462 xorl %ebx, %ebx
463 movl 108(%ecx), %edx
464 xorl %edi, %eax
465 xorl %ecx, %ecx
466 xorl %edi, %edx
467 andl $0xfcfcfcfc, %eax
468 andl $0xcfcfcfcf, %edx
469 movb %al, %bl
470 movb %ah, %cl
471 rorl $4, %edx
472 xorl (%ebp,%ebx),%esi
473 movb %dl, %bl
474 xorl 0x200(%ebp,%ecx),%esi
475 movb %dh, %cl
476 shrl $16, %eax
477 xorl 0x100(%ebp,%ebx),%esi
478 movb %ah, %bl
479 shrl $16, %edx
480 xorl 0x300(%ebp,%ecx),%esi
481 movb %dh, %cl
482 andl $0xff, %eax
483 andl $0xff, %edx
484 xorl 0x600(%ebp,%ebx),%esi
485 xorl 0x700(%ebp,%ecx),%esi
486 movl 24(%esp), %ecx
487 xorl 0x400(%ebp,%eax),%esi
488 xorl 0x500(%ebp,%edx),%esi
489
490
491 movl 112(%ecx), %eax
492 xorl %ebx, %ebx
493 movl 116(%ecx), %edx
494 xorl %esi, %eax
495 xorl %ecx, %ecx
496 xorl %esi, %edx
497 andl $0xfcfcfcfc, %eax
498 andl $0xcfcfcfcf, %edx
499 movb %al, %bl
500 movb %ah, %cl
501 rorl $4, %edx
502 xorl (%ebp,%ebx),%edi
503 movb %dl, %bl
504 xorl 0x200(%ebp,%ecx),%edi
505 movb %dh, %cl
506 shrl $16, %eax
507 xorl 0x100(%ebp,%ebx),%edi
508 movb %ah, %bl
509 shrl $16, %edx
510 xorl 0x300(%ebp,%ecx),%edi
511 movb %dh, %cl
512 andl $0xff, %eax
513 andl $0xff, %edx
514 xorl 0x600(%ebp,%ebx),%edi
515 xorl 0x700(%ebp,%ecx),%edi
516 movl 24(%esp), %ecx
517 xorl 0x400(%ebp,%eax),%edi
518 xorl 0x500(%ebp,%edx),%edi
519
520
521 movl 120(%ecx), %eax
522 xorl %ebx, %ebx
523 movl 124(%ecx), %edx
524 xorl %edi, %eax
525 xorl %ecx, %ecx
526 xorl %edi, %edx
527 andl $0xfcfcfcfc, %eax
528 andl $0xcfcfcfcf, %edx
529 movb %al, %bl
530 movb %ah, %cl
531 rorl $4, %edx
532 xorl (%ebp,%ebx),%esi
533 movb %dl, %bl
534 xorl 0x200(%ebp,%ecx),%esi
535 movb %dh, %cl
536 shrl $16, %eax
537 xorl 0x100(%ebp,%ebx),%esi
538 movb %ah, %bl
539 shrl $16, %edx
540 xorl 0x300(%ebp,%ecx),%esi
541 movb %dh, %cl
542 andl $0xff, %eax
543 andl $0xff, %edx
544 xorl 0x600(%ebp,%ebx),%esi
545 xorl 0x700(%ebp,%ecx),%esi
546 movl 24(%esp), %ecx
547 xorl 0x400(%ebp,%eax),%esi
548 xorl 0x500(%ebp,%edx),%esi
549 jmp .L001end
550.L000start_decrypt:
551
552
553 movl 120(%ecx), %eax
554 xorl %ebx, %ebx
555 movl 124(%ecx), %edx
556 xorl %esi, %eax
557 xorl %ecx, %ecx
558 xorl %esi, %edx
559 andl $0xfcfcfcfc, %eax
560 andl $0xcfcfcfcf, %edx
561 movb %al, %bl
562 movb %ah, %cl
563 rorl $4, %edx
564 xorl (%ebp,%ebx),%edi
565 movb %dl, %bl
566 xorl 0x200(%ebp,%ecx),%edi
567 movb %dh, %cl
568 shrl $16, %eax
569 xorl 0x100(%ebp,%ebx),%edi
570 movb %ah, %bl
571 shrl $16, %edx
572 xorl 0x300(%ebp,%ecx),%edi
573 movb %dh, %cl
574 andl $0xff, %eax
575 andl $0xff, %edx
576 xorl 0x600(%ebp,%ebx),%edi
577 xorl 0x700(%ebp,%ecx),%edi
578 movl 24(%esp), %ecx
579 xorl 0x400(%ebp,%eax),%edi
580 xorl 0x500(%ebp,%edx),%edi
581
582
583 movl 112(%ecx), %eax
584 xorl %ebx, %ebx
585 movl 116(%ecx), %edx
586 xorl %edi, %eax
587 xorl %ecx, %ecx
588 xorl %edi, %edx
589 andl $0xfcfcfcfc, %eax
590 andl $0xcfcfcfcf, %edx
591 movb %al, %bl
592 movb %ah, %cl
593 rorl $4, %edx
594 xorl (%ebp,%ebx),%esi
595 movb %dl, %bl
596 xorl 0x200(%ebp,%ecx),%esi
597 movb %dh, %cl
598 shrl $16, %eax
599 xorl 0x100(%ebp,%ebx),%esi
600 movb %ah, %bl
601 shrl $16, %edx
602 xorl 0x300(%ebp,%ecx),%esi
603 movb %dh, %cl
604 andl $0xff, %eax
605 andl $0xff, %edx
606 xorl 0x600(%ebp,%ebx),%esi
607 xorl 0x700(%ebp,%ecx),%esi
608 movl 24(%esp), %ecx
609 xorl 0x400(%ebp,%eax),%esi
610 xorl 0x500(%ebp,%edx),%esi
611
612
613 movl 104(%ecx), %eax
614 xorl %ebx, %ebx
615 movl 108(%ecx), %edx
616 xorl %esi, %eax
617 xorl %ecx, %ecx
618 xorl %esi, %edx
619 andl $0xfcfcfcfc, %eax
620 andl $0xcfcfcfcf, %edx
621 movb %al, %bl
622 movb %ah, %cl
623 rorl $4, %edx
624 xorl (%ebp,%ebx),%edi
625 movb %dl, %bl
626 xorl 0x200(%ebp,%ecx),%edi
627 movb %dh, %cl
628 shrl $16, %eax
629 xorl 0x100(%ebp,%ebx),%edi
630 movb %ah, %bl
631 shrl $16, %edx
632 xorl 0x300(%ebp,%ecx),%edi
633 movb %dh, %cl
634 andl $0xff, %eax
635 andl $0xff, %edx
636 xorl 0x600(%ebp,%ebx),%edi
637 xorl 0x700(%ebp,%ecx),%edi
638 movl 24(%esp), %ecx
639 xorl 0x400(%ebp,%eax),%edi
640 xorl 0x500(%ebp,%edx),%edi
641
642
643 movl 96(%ecx), %eax
644 xorl %ebx, %ebx
645 movl 100(%ecx), %edx
646 xorl %edi, %eax
647 xorl %ecx, %ecx
648 xorl %edi, %edx
649 andl $0xfcfcfcfc, %eax
650 andl $0xcfcfcfcf, %edx
651 movb %al, %bl
652 movb %ah, %cl
653 rorl $4, %edx
654 xorl (%ebp,%ebx),%esi
655 movb %dl, %bl
656 xorl 0x200(%ebp,%ecx),%esi
657 movb %dh, %cl
658 shrl $16, %eax
659 xorl 0x100(%ebp,%ebx),%esi
660 movb %ah, %bl
661 shrl $16, %edx
662 xorl 0x300(%ebp,%ecx),%esi
663 movb %dh, %cl
664 andl $0xff, %eax
665 andl $0xff, %edx
666 xorl 0x600(%ebp,%ebx),%esi
667 xorl 0x700(%ebp,%ecx),%esi
668 movl 24(%esp), %ecx
669 xorl 0x400(%ebp,%eax),%esi
670 xorl 0x500(%ebp,%edx),%esi
671
672
673 movl 88(%ecx), %eax
674 xorl %ebx, %ebx
675 movl 92(%ecx), %edx
676 xorl %esi, %eax
677 xorl %ecx, %ecx
678 xorl %esi, %edx
679 andl $0xfcfcfcfc, %eax
680 andl $0xcfcfcfcf, %edx
681 movb %al, %bl
682 movb %ah, %cl
683 rorl $4, %edx
684 xorl (%ebp,%ebx),%edi
685 movb %dl, %bl
686 xorl 0x200(%ebp,%ecx),%edi
687 movb %dh, %cl
688 shrl $16, %eax
689 xorl 0x100(%ebp,%ebx),%edi
690 movb %ah, %bl
691 shrl $16, %edx
692 xorl 0x300(%ebp,%ecx),%edi
693 movb %dh, %cl
694 andl $0xff, %eax
695 andl $0xff, %edx
696 xorl 0x600(%ebp,%ebx),%edi
697 xorl 0x700(%ebp,%ecx),%edi
698 movl 24(%esp), %ecx
699 xorl 0x400(%ebp,%eax),%edi
700 xorl 0x500(%ebp,%edx),%edi
701
702
703 movl 80(%ecx), %eax
704 xorl %ebx, %ebx
705 movl 84(%ecx), %edx
706 xorl %edi, %eax
707 xorl %ecx, %ecx
708 xorl %edi, %edx
709 andl $0xfcfcfcfc, %eax
710 andl $0xcfcfcfcf, %edx
711 movb %al, %bl
712 movb %ah, %cl
713 rorl $4, %edx
714 xorl (%ebp,%ebx),%esi
715 movb %dl, %bl
716 xorl 0x200(%ebp,%ecx),%esi
717 movb %dh, %cl
718 shrl $16, %eax
719 xorl 0x100(%ebp,%ebx),%esi
720 movb %ah, %bl
721 shrl $16, %edx
722 xorl 0x300(%ebp,%ecx),%esi
723 movb %dh, %cl
724 andl $0xff, %eax
725 andl $0xff, %edx
726 xorl 0x600(%ebp,%ebx),%esi
727 xorl 0x700(%ebp,%ecx),%esi
728 movl 24(%esp), %ecx
729 xorl 0x400(%ebp,%eax),%esi
730 xorl 0x500(%ebp,%edx),%esi
731
732
733 movl 72(%ecx), %eax
734 xorl %ebx, %ebx
735 movl 76(%ecx), %edx
736 xorl %esi, %eax
737 xorl %ecx, %ecx
738 xorl %esi, %edx
739 andl $0xfcfcfcfc, %eax
740 andl $0xcfcfcfcf, %edx
741 movb %al, %bl
742 movb %ah, %cl
743 rorl $4, %edx
744 xorl (%ebp,%ebx),%edi
745 movb %dl, %bl
746 xorl 0x200(%ebp,%ecx),%edi
747 movb %dh, %cl
748 shrl $16, %eax
749 xorl 0x100(%ebp,%ebx),%edi
750 movb %ah, %bl
751 shrl $16, %edx
752 xorl 0x300(%ebp,%ecx),%edi
753 movb %dh, %cl
754 andl $0xff, %eax
755 andl $0xff, %edx
756 xorl 0x600(%ebp,%ebx),%edi
757 xorl 0x700(%ebp,%ecx),%edi
758 movl 24(%esp), %ecx
759 xorl 0x400(%ebp,%eax),%edi
760 xorl 0x500(%ebp,%edx),%edi
761
762
763 movl 64(%ecx), %eax
764 xorl %ebx, %ebx
765 movl 68(%ecx), %edx
766 xorl %edi, %eax
767 xorl %ecx, %ecx
768 xorl %edi, %edx
769 andl $0xfcfcfcfc, %eax
770 andl $0xcfcfcfcf, %edx
771 movb %al, %bl
772 movb %ah, %cl
773 rorl $4, %edx
774 xorl (%ebp,%ebx),%esi
775 movb %dl, %bl
776 xorl 0x200(%ebp,%ecx),%esi
777 movb %dh, %cl
778 shrl $16, %eax
779 xorl 0x100(%ebp,%ebx),%esi
780 movb %ah, %bl
781 shrl $16, %edx
782 xorl 0x300(%ebp,%ecx),%esi
783 movb %dh, %cl
784 andl $0xff, %eax
785 andl $0xff, %edx
786 xorl 0x600(%ebp,%ebx),%esi
787 xorl 0x700(%ebp,%ecx),%esi
788 movl 24(%esp), %ecx
789 xorl 0x400(%ebp,%eax),%esi
790 xorl 0x500(%ebp,%edx),%esi
791
792
793 movl 56(%ecx), %eax
794 xorl %ebx, %ebx
795 movl 60(%ecx), %edx
796 xorl %esi, %eax
797 xorl %ecx, %ecx
798 xorl %esi, %edx
799 andl $0xfcfcfcfc, %eax
800 andl $0xcfcfcfcf, %edx
801 movb %al, %bl
802 movb %ah, %cl
803 rorl $4, %edx
804 xorl (%ebp,%ebx),%edi
805 movb %dl, %bl
806 xorl 0x200(%ebp,%ecx),%edi
807 movb %dh, %cl
808 shrl $16, %eax
809 xorl 0x100(%ebp,%ebx),%edi
810 movb %ah, %bl
811 shrl $16, %edx
812 xorl 0x300(%ebp,%ecx),%edi
813 movb %dh, %cl
814 andl $0xff, %eax
815 andl $0xff, %edx
816 xorl 0x600(%ebp,%ebx),%edi
817 xorl 0x700(%ebp,%ecx),%edi
818 movl 24(%esp), %ecx
819 xorl 0x400(%ebp,%eax),%edi
820 xorl 0x500(%ebp,%edx),%edi
821
822
823 movl 48(%ecx), %eax
824 xorl %ebx, %ebx
825 movl 52(%ecx), %edx
826 xorl %edi, %eax
827 xorl %ecx, %ecx
828 xorl %edi, %edx
829 andl $0xfcfcfcfc, %eax
830 andl $0xcfcfcfcf, %edx
831 movb %al, %bl
832 movb %ah, %cl
833 rorl $4, %edx
834 xorl (%ebp,%ebx),%esi
835 movb %dl, %bl
836 xorl 0x200(%ebp,%ecx),%esi
837 movb %dh, %cl
838 shrl $16, %eax
839 xorl 0x100(%ebp,%ebx),%esi
840 movb %ah, %bl
841 shrl $16, %edx
842 xorl 0x300(%ebp,%ecx),%esi
843 movb %dh, %cl
844 andl $0xff, %eax
845 andl $0xff, %edx
846 xorl 0x600(%ebp,%ebx),%esi
847 xorl 0x700(%ebp,%ecx),%esi
848 movl 24(%esp), %ecx
849 xorl 0x400(%ebp,%eax),%esi
850 xorl 0x500(%ebp,%edx),%esi
851
852
853 movl 40(%ecx), %eax
854 xorl %ebx, %ebx
855 movl 44(%ecx), %edx
856 xorl %esi, %eax
857 xorl %ecx, %ecx
858 xorl %esi, %edx
859 andl $0xfcfcfcfc, %eax
860 andl $0xcfcfcfcf, %edx
861 movb %al, %bl
862 movb %ah, %cl
863 rorl $4, %edx
864 xorl (%ebp,%ebx),%edi
865 movb %dl, %bl
866 xorl 0x200(%ebp,%ecx),%edi
867 movb %dh, %cl
868 shrl $16, %eax
869 xorl 0x100(%ebp,%ebx),%edi
870 movb %ah, %bl
871 shrl $16, %edx
872 xorl 0x300(%ebp,%ecx),%edi
873 movb %dh, %cl
874 andl $0xff, %eax
875 andl $0xff, %edx
876 xorl 0x600(%ebp,%ebx),%edi
877 xorl 0x700(%ebp,%ecx),%edi
878 movl 24(%esp), %ecx
879 xorl 0x400(%ebp,%eax),%edi
880 xorl 0x500(%ebp,%edx),%edi
881
882
883 movl 32(%ecx), %eax
884 xorl %ebx, %ebx
885 movl 36(%ecx), %edx
886 xorl %edi, %eax
887 xorl %ecx, %ecx
888 xorl %edi, %edx
889 andl $0xfcfcfcfc, %eax
890 andl $0xcfcfcfcf, %edx
891 movb %al, %bl
892 movb %ah, %cl
893 rorl $4, %edx
894 xorl (%ebp,%ebx),%esi
895 movb %dl, %bl
896 xorl 0x200(%ebp,%ecx),%esi
897 movb %dh, %cl
898 shrl $16, %eax
899 xorl 0x100(%ebp,%ebx),%esi
900 movb %ah, %bl
901 shrl $16, %edx
902 xorl 0x300(%ebp,%ecx),%esi
903 movb %dh, %cl
904 andl $0xff, %eax
905 andl $0xff, %edx
906 xorl 0x600(%ebp,%ebx),%esi
907 xorl 0x700(%ebp,%ecx),%esi
908 movl 24(%esp), %ecx
909 xorl 0x400(%ebp,%eax),%esi
910 xorl 0x500(%ebp,%edx),%esi
911
912
913 movl 24(%ecx), %eax
914 xorl %ebx, %ebx
915 movl 28(%ecx), %edx
916 xorl %esi, %eax
917 xorl %ecx, %ecx
918 xorl %esi, %edx
919 andl $0xfcfcfcfc, %eax
920 andl $0xcfcfcfcf, %edx
921 movb %al, %bl
922 movb %ah, %cl
923 rorl $4, %edx
924 xorl (%ebp,%ebx),%edi
925 movb %dl, %bl
926 xorl 0x200(%ebp,%ecx),%edi
927 movb %dh, %cl
928 shrl $16, %eax
929 xorl 0x100(%ebp,%ebx),%edi
930 movb %ah, %bl
931 shrl $16, %edx
932 xorl 0x300(%ebp,%ecx),%edi
933 movb %dh, %cl
934 andl $0xff, %eax
935 andl $0xff, %edx
936 xorl 0x600(%ebp,%ebx),%edi
937 xorl 0x700(%ebp,%ecx),%edi
938 movl 24(%esp), %ecx
939 xorl 0x400(%ebp,%eax),%edi
940 xorl 0x500(%ebp,%edx),%edi
941
942
943 movl 16(%ecx), %eax
944 xorl %ebx, %ebx
945 movl 20(%ecx), %edx
946 xorl %edi, %eax
947 xorl %ecx, %ecx
948 xorl %edi, %edx
949 andl $0xfcfcfcfc, %eax
950 andl $0xcfcfcfcf, %edx
951 movb %al, %bl
952 movb %ah, %cl
953 rorl $4, %edx
954 xorl (%ebp,%ebx),%esi
955 movb %dl, %bl
956 xorl 0x200(%ebp,%ecx),%esi
957 movb %dh, %cl
958 shrl $16, %eax
959 xorl 0x100(%ebp,%ebx),%esi
960 movb %ah, %bl
961 shrl $16, %edx
962 xorl 0x300(%ebp,%ecx),%esi
963 movb %dh, %cl
964 andl $0xff, %eax
965 andl $0xff, %edx
966 xorl 0x600(%ebp,%ebx),%esi
967 xorl 0x700(%ebp,%ecx),%esi
968 movl 24(%esp), %ecx
969 xorl 0x400(%ebp,%eax),%esi
970 xorl 0x500(%ebp,%edx),%esi
971
972
973 movl 8(%ecx), %eax
974 xorl %ebx, %ebx
975 movl 12(%ecx), %edx
976 xorl %esi, %eax
977 xorl %ecx, %ecx
978 xorl %esi, %edx
979 andl $0xfcfcfcfc, %eax
980 andl $0xcfcfcfcf, %edx
981 movb %al, %bl
982 movb %ah, %cl
983 rorl $4, %edx
984 xorl (%ebp,%ebx),%edi
985 movb %dl, %bl
986 xorl 0x200(%ebp,%ecx),%edi
987 movb %dh, %cl
988 shrl $16, %eax
989 xorl 0x100(%ebp,%ebx),%edi
990 movb %ah, %bl
991 shrl $16, %edx
992 xorl 0x300(%ebp,%ecx),%edi
993 movb %dh, %cl
994 andl $0xff, %eax
995 andl $0xff, %edx
996 xorl 0x600(%ebp,%ebx),%edi
997 xorl 0x700(%ebp,%ecx),%edi
998 movl 24(%esp), %ecx
999 xorl 0x400(%ebp,%eax),%edi
1000 xorl 0x500(%ebp,%edx),%edi
1001
1002
1003 movl (%ecx), %eax
1004 xorl %ebx, %ebx
1005 movl 4(%ecx), %edx
1006 xorl %edi, %eax
1007 xorl %ecx, %ecx
1008 xorl %edi, %edx
1009 andl $0xfcfcfcfc, %eax
1010 andl $0xcfcfcfcf, %edx
1011 movb %al, %bl
1012 movb %ah, %cl
1013 rorl $4, %edx
1014 xorl (%ebp,%ebx),%esi
1015 movb %dl, %bl
1016 xorl 0x200(%ebp,%ecx),%esi
1017 movb %dh, %cl
1018 shrl $16, %eax
1019 xorl 0x100(%ebp,%ebx),%esi
1020 movb %ah, %bl
1021 shrl $16, %edx
1022 xorl 0x300(%ebp,%ecx),%esi
1023 movb %dh, %cl
1024 andl $0xff, %eax
1025 andl $0xff, %edx
1026 xorl 0x600(%ebp,%ebx),%esi
1027 xorl 0x700(%ebp,%ecx),%esi
1028 movl 24(%esp), %ecx
1029 xorl 0x400(%ebp,%eax),%esi
1030 xorl 0x500(%ebp,%edx),%esi
1031.L001end:
1032
1033
1034 movl 20(%esp), %edx
1035.byte 209
1036.byte 206
1037 movl %edi, %eax
1038 xorl %esi, %edi
1039 andl $0xaaaaaaaa, %edi
1040 xorl %edi, %eax
1041 xorl %edi, %esi
1042
1043 roll $23, %eax
1044 movl %eax, %edi
1045 xorl %esi, %eax
1046 andl $0x03fc03fc, %eax
1047 xorl %eax, %edi
1048 xorl %eax, %esi
1049
1050 roll $10, %edi
1051 movl %edi, %eax
1052 xorl %esi, %edi
1053 andl $0x33333333, %edi
1054 xorl %edi, %eax
1055 xorl %edi, %esi
1056
1057 roll $18, %esi
1058 movl %esi, %edi
1059 xorl %eax, %esi
1060 andl $0xfff0000f, %esi
1061 xorl %esi, %edi
1062 xorl %esi, %eax
1063
1064 roll $12, %edi
1065 movl %edi, %esi
1066 xorl %eax, %edi
1067 andl $0xf0f0f0f0, %edi
1068 xorl %edi, %esi
1069 xorl %edi, %eax
1070
1071 rorl $4, %eax
1072 movl %eax, (%edx)
1073 movl %esi, 4(%edx)
1074 popl %ebp
1075 popl %ebx
1076 popl %edi
1077 popl %esi
1078 ret
1079.L_DES_encrypt1_end:
1080 .size DES_encrypt1,.L_DES_encrypt1_end-DES_encrypt1
1081.ident "desasm.pl"
1082.text
1083 .align 16
1084.globl DES_encrypt2
1085 .type DES_encrypt2,@function
1086DES_encrypt2:
1087 pushl %esi
1088 pushl %edi
1089
1090
1091 movl 12(%esp), %eax
1092 xorl %ecx, %ecx
1093 pushl %ebx
1094 pushl %ebp
1095 movl (%eax), %esi
1096 movl 28(%esp), %ebx
1097 roll $3, %esi
1098 movl 4(%eax), %edi
1099 roll $3, %edi
1100 leal DES_SPtrans, %ebp
1101 movl 24(%esp), %ecx
1102 cmpl $0, %ebx
1103 je .L002start_decrypt
1104
1105
1106 movl (%ecx), %eax
1107 xorl %ebx, %ebx
1108 movl 4(%ecx), %edx
1109 xorl %esi, %eax
1110 xorl %ecx, %ecx
1111 xorl %esi, %edx
1112 andl $0xfcfcfcfc, %eax
1113 andl $0xcfcfcfcf, %edx
1114 movb %al, %bl
1115 movb %ah, %cl
1116 rorl $4, %edx
1117 xorl (%ebp,%ebx),%edi
1118 movb %dl, %bl
1119 xorl 0x200(%ebp,%ecx),%edi
1120 movb %dh, %cl
1121 shrl $16, %eax
1122 xorl 0x100(%ebp,%ebx),%edi
1123 movb %ah, %bl
1124 shrl $16, %edx
1125 xorl 0x300(%ebp,%ecx),%edi
1126 movb %dh, %cl
1127 andl $0xff, %eax
1128 andl $0xff, %edx
1129 xorl 0x600(%ebp,%ebx),%edi
1130 xorl 0x700(%ebp,%ecx),%edi
1131 movl 24(%esp), %ecx
1132 xorl 0x400(%ebp,%eax),%edi
1133 xorl 0x500(%ebp,%edx),%edi
1134
1135
1136 movl 8(%ecx), %eax
1137 xorl %ebx, %ebx
1138 movl 12(%ecx), %edx
1139 xorl %edi, %eax
1140 xorl %ecx, %ecx
1141 xorl %edi, %edx
1142 andl $0xfcfcfcfc, %eax
1143 andl $0xcfcfcfcf, %edx
1144 movb %al, %bl
1145 movb %ah, %cl
1146 rorl $4, %edx
1147 xorl (%ebp,%ebx),%esi
1148 movb %dl, %bl
1149 xorl 0x200(%ebp,%ecx),%esi
1150 movb %dh, %cl
1151 shrl $16, %eax
1152 xorl 0x100(%ebp,%ebx),%esi
1153 movb %ah, %bl
1154 shrl $16, %edx
1155 xorl 0x300(%ebp,%ecx),%esi
1156 movb %dh, %cl
1157 andl $0xff, %eax
1158 andl $0xff, %edx
1159 xorl 0x600(%ebp,%ebx),%esi
1160 xorl 0x700(%ebp,%ecx),%esi
1161 movl 24(%esp), %ecx
1162 xorl 0x400(%ebp,%eax),%esi
1163 xorl 0x500(%ebp,%edx),%esi
1164
1165
1166 movl 16(%ecx), %eax
1167 xorl %ebx, %ebx
1168 movl 20(%ecx), %edx
1169 xorl %esi, %eax
1170 xorl %ecx, %ecx
1171 xorl %esi, %edx
1172 andl $0xfcfcfcfc, %eax
1173 andl $0xcfcfcfcf, %edx
1174 movb %al, %bl
1175 movb %ah, %cl
1176 rorl $4, %edx
1177 xorl (%ebp,%ebx),%edi
1178 movb %dl, %bl
1179 xorl 0x200(%ebp,%ecx),%edi
1180 movb %dh, %cl
1181 shrl $16, %eax
1182 xorl 0x100(%ebp,%ebx),%edi
1183 movb %ah, %bl
1184 shrl $16, %edx
1185 xorl 0x300(%ebp,%ecx),%edi
1186 movb %dh, %cl
1187 andl $0xff, %eax
1188 andl $0xff, %edx
1189 xorl 0x600(%ebp,%ebx),%edi
1190 xorl 0x700(%ebp,%ecx),%edi
1191 movl 24(%esp), %ecx
1192 xorl 0x400(%ebp,%eax),%edi
1193 xorl 0x500(%ebp,%edx),%edi
1194
1195
1196 movl 24(%ecx), %eax
1197 xorl %ebx, %ebx
1198 movl 28(%ecx), %edx
1199 xorl %edi, %eax
1200 xorl %ecx, %ecx
1201 xorl %edi, %edx
1202 andl $0xfcfcfcfc, %eax
1203 andl $0xcfcfcfcf, %edx
1204 movb %al, %bl
1205 movb %ah, %cl
1206 rorl $4, %edx
1207 xorl (%ebp,%ebx),%esi
1208 movb %dl, %bl
1209 xorl 0x200(%ebp,%ecx),%esi
1210 movb %dh, %cl
1211 shrl $16, %eax
1212 xorl 0x100(%ebp,%ebx),%esi
1213 movb %ah, %bl
1214 shrl $16, %edx
1215 xorl 0x300(%ebp,%ecx),%esi
1216 movb %dh, %cl
1217 andl $0xff, %eax
1218 andl $0xff, %edx
1219 xorl 0x600(%ebp,%ebx),%esi
1220 xorl 0x700(%ebp,%ecx),%esi
1221 movl 24(%esp), %ecx
1222 xorl 0x400(%ebp,%eax),%esi
1223 xorl 0x500(%ebp,%edx),%esi
1224
1225
1226 movl 32(%ecx), %eax
1227 xorl %ebx, %ebx
1228 movl 36(%ecx), %edx
1229 xorl %esi, %eax
1230 xorl %ecx, %ecx
1231 xorl %esi, %edx
1232 andl $0xfcfcfcfc, %eax
1233 andl $0xcfcfcfcf, %edx
1234 movb %al, %bl
1235 movb %ah, %cl
1236 rorl $4, %edx
1237 xorl (%ebp,%ebx),%edi
1238 movb %dl, %bl
1239 xorl 0x200(%ebp,%ecx),%edi
1240 movb %dh, %cl
1241 shrl $16, %eax
1242 xorl 0x100(%ebp,%ebx),%edi
1243 movb %ah, %bl
1244 shrl $16, %edx
1245 xorl 0x300(%ebp,%ecx),%edi
1246 movb %dh, %cl
1247 andl $0xff, %eax
1248 andl $0xff, %edx
1249 xorl 0x600(%ebp,%ebx),%edi
1250 xorl 0x700(%ebp,%ecx),%edi
1251 movl 24(%esp), %ecx
1252 xorl 0x400(%ebp,%eax),%edi
1253 xorl 0x500(%ebp,%edx),%edi
1254
1255
1256 movl 40(%ecx), %eax
1257 xorl %ebx, %ebx
1258 movl 44(%ecx), %edx
1259 xorl %edi, %eax
1260 xorl %ecx, %ecx
1261 xorl %edi, %edx
1262 andl $0xfcfcfcfc, %eax
1263 andl $0xcfcfcfcf, %edx
1264 movb %al, %bl
1265 movb %ah, %cl
1266 rorl $4, %edx
1267 xorl (%ebp,%ebx),%esi
1268 movb %dl, %bl
1269 xorl 0x200(%ebp,%ecx),%esi
1270 movb %dh, %cl
1271 shrl $16, %eax
1272 xorl 0x100(%ebp,%ebx),%esi
1273 movb %ah, %bl
1274 shrl $16, %edx
1275 xorl 0x300(%ebp,%ecx),%esi
1276 movb %dh, %cl
1277 andl $0xff, %eax
1278 andl $0xff, %edx
1279 xorl 0x600(%ebp,%ebx),%esi
1280 xorl 0x700(%ebp,%ecx),%esi
1281 movl 24(%esp), %ecx
1282 xorl 0x400(%ebp,%eax),%esi
1283 xorl 0x500(%ebp,%edx),%esi
1284
1285
1286 movl 48(%ecx), %eax
1287 xorl %ebx, %ebx
1288 movl 52(%ecx), %edx
1289 xorl %esi, %eax
1290 xorl %ecx, %ecx
1291 xorl %esi, %edx
1292 andl $0xfcfcfcfc, %eax
1293 andl $0xcfcfcfcf, %edx
1294 movb %al, %bl
1295 movb %ah, %cl
1296 rorl $4, %edx
1297 xorl (%ebp,%ebx),%edi
1298 movb %dl, %bl
1299 xorl 0x200(%ebp,%ecx),%edi
1300 movb %dh, %cl
1301 shrl $16, %eax
1302 xorl 0x100(%ebp,%ebx),%edi
1303 movb %ah, %bl
1304 shrl $16, %edx
1305 xorl 0x300(%ebp,%ecx),%edi
1306 movb %dh, %cl
1307 andl $0xff, %eax
1308 andl $0xff, %edx
1309 xorl 0x600(%ebp,%ebx),%edi
1310 xorl 0x700(%ebp,%ecx),%edi
1311 movl 24(%esp), %ecx
1312 xorl 0x400(%ebp,%eax),%edi
1313 xorl 0x500(%ebp,%edx),%edi
1314
1315
1316 movl 56(%ecx), %eax
1317 xorl %ebx, %ebx
1318 movl 60(%ecx), %edx
1319 xorl %edi, %eax
1320 xorl %ecx, %ecx
1321 xorl %edi, %edx
1322 andl $0xfcfcfcfc, %eax
1323 andl $0xcfcfcfcf, %edx
1324 movb %al, %bl
1325 movb %ah, %cl
1326 rorl $4, %edx
1327 xorl (%ebp,%ebx),%esi
1328 movb %dl, %bl
1329 xorl 0x200(%ebp,%ecx),%esi
1330 movb %dh, %cl
1331 shrl $16, %eax
1332 xorl 0x100(%ebp,%ebx),%esi
1333 movb %ah, %bl
1334 shrl $16, %edx
1335 xorl 0x300(%ebp,%ecx),%esi
1336 movb %dh, %cl
1337 andl $0xff, %eax
1338 andl $0xff, %edx
1339 xorl 0x600(%ebp,%ebx),%esi
1340 xorl 0x700(%ebp,%ecx),%esi
1341 movl 24(%esp), %ecx
1342 xorl 0x400(%ebp,%eax),%esi
1343 xorl 0x500(%ebp,%edx),%esi
1344
1345
1346 movl 64(%ecx), %eax
1347 xorl %ebx, %ebx
1348 movl 68(%ecx), %edx
1349 xorl %esi, %eax
1350 xorl %ecx, %ecx
1351 xorl %esi, %edx
1352 andl $0xfcfcfcfc, %eax
1353 andl $0xcfcfcfcf, %edx
1354 movb %al, %bl
1355 movb %ah, %cl
1356 rorl $4, %edx
1357 xorl (%ebp,%ebx),%edi
1358 movb %dl, %bl
1359 xorl 0x200(%ebp,%ecx),%edi
1360 movb %dh, %cl
1361 shrl $16, %eax
1362 xorl 0x100(%ebp,%ebx),%edi
1363 movb %ah, %bl
1364 shrl $16, %edx
1365 xorl 0x300(%ebp,%ecx),%edi
1366 movb %dh, %cl
1367 andl $0xff, %eax
1368 andl $0xff, %edx
1369 xorl 0x600(%ebp,%ebx),%edi
1370 xorl 0x700(%ebp,%ecx),%edi
1371 movl 24(%esp), %ecx
1372 xorl 0x400(%ebp,%eax),%edi
1373 xorl 0x500(%ebp,%edx),%edi
1374
1375
1376 movl 72(%ecx), %eax
1377 xorl %ebx, %ebx
1378 movl 76(%ecx), %edx
1379 xorl %edi, %eax
1380 xorl %ecx, %ecx
1381 xorl %edi, %edx
1382 andl $0xfcfcfcfc, %eax
1383 andl $0xcfcfcfcf, %edx
1384 movb %al, %bl
1385 movb %ah, %cl
1386 rorl $4, %edx
1387 xorl (%ebp,%ebx),%esi
1388 movb %dl, %bl
1389 xorl 0x200(%ebp,%ecx),%esi
1390 movb %dh, %cl
1391 shrl $16, %eax
1392 xorl 0x100(%ebp,%ebx),%esi
1393 movb %ah, %bl
1394 shrl $16, %edx
1395 xorl 0x300(%ebp,%ecx),%esi
1396 movb %dh, %cl
1397 andl $0xff, %eax
1398 andl $0xff, %edx
1399 xorl 0x600(%ebp,%ebx),%esi
1400 xorl 0x700(%ebp,%ecx),%esi
1401 movl 24(%esp), %ecx
1402 xorl 0x400(%ebp,%eax),%esi
1403 xorl 0x500(%ebp,%edx),%esi
1404
1405
1406 movl 80(%ecx), %eax
1407 xorl %ebx, %ebx
1408 movl 84(%ecx), %edx
1409 xorl %esi, %eax
1410 xorl %ecx, %ecx
1411 xorl %esi, %edx
1412 andl $0xfcfcfcfc, %eax
1413 andl $0xcfcfcfcf, %edx
1414 movb %al, %bl
1415 movb %ah, %cl
1416 rorl $4, %edx
1417 xorl (%ebp,%ebx),%edi
1418 movb %dl, %bl
1419 xorl 0x200(%ebp,%ecx),%edi
1420 movb %dh, %cl
1421 shrl $16, %eax
1422 xorl 0x100(%ebp,%ebx),%edi
1423 movb %ah, %bl
1424 shrl $16, %edx
1425 xorl 0x300(%ebp,%ecx),%edi
1426 movb %dh, %cl
1427 andl $0xff, %eax
1428 andl $0xff, %edx
1429 xorl 0x600(%ebp,%ebx),%edi
1430 xorl 0x700(%ebp,%ecx),%edi
1431 movl 24(%esp), %ecx
1432 xorl 0x400(%ebp,%eax),%edi
1433 xorl 0x500(%ebp,%edx),%edi
1434
1435
1436 movl 88(%ecx), %eax
1437 xorl %ebx, %ebx
1438 movl 92(%ecx), %edx
1439 xorl %edi, %eax
1440 xorl %ecx, %ecx
1441 xorl %edi, %edx
1442 andl $0xfcfcfcfc, %eax
1443 andl $0xcfcfcfcf, %edx
1444 movb %al, %bl
1445 movb %ah, %cl
1446 rorl $4, %edx
1447 xorl (%ebp,%ebx),%esi
1448 movb %dl, %bl
1449 xorl 0x200(%ebp,%ecx),%esi
1450 movb %dh, %cl
1451 shrl $16, %eax
1452 xorl 0x100(%ebp,%ebx),%esi
1453 movb %ah, %bl
1454 shrl $16, %edx
1455 xorl 0x300(%ebp,%ecx),%esi
1456 movb %dh, %cl
1457 andl $0xff, %eax
1458 andl $0xff, %edx
1459 xorl 0x600(%ebp,%ebx),%esi
1460 xorl 0x700(%ebp,%ecx),%esi
1461 movl 24(%esp), %ecx
1462 xorl 0x400(%ebp,%eax),%esi
1463 xorl 0x500(%ebp,%edx),%esi
1464
1465
1466 movl 96(%ecx), %eax
1467 xorl %ebx, %ebx
1468 movl 100(%ecx), %edx
1469 xorl %esi, %eax
1470 xorl %ecx, %ecx
1471 xorl %esi, %edx
1472 andl $0xfcfcfcfc, %eax
1473 andl $0xcfcfcfcf, %edx
1474 movb %al, %bl
1475 movb %ah, %cl
1476 rorl $4, %edx
1477 xorl (%ebp,%ebx),%edi
1478 movb %dl, %bl
1479 xorl 0x200(%ebp,%ecx),%edi
1480 movb %dh, %cl
1481 shrl $16, %eax
1482 xorl 0x100(%ebp,%ebx),%edi
1483 movb %ah, %bl
1484 shrl $16, %edx
1485 xorl 0x300(%ebp,%ecx),%edi
1486 movb %dh, %cl
1487 andl $0xff, %eax
1488 andl $0xff, %edx
1489 xorl 0x600(%ebp,%ebx),%edi
1490 xorl 0x700(%ebp,%ecx),%edi
1491 movl 24(%esp), %ecx
1492 xorl 0x400(%ebp,%eax),%edi
1493 xorl 0x500(%ebp,%edx),%edi
1494
1495
1496 movl 104(%ecx), %eax
1497 xorl %ebx, %ebx
1498 movl 108(%ecx), %edx
1499 xorl %edi, %eax
1500 xorl %ecx, %ecx
1501 xorl %edi, %edx
1502 andl $0xfcfcfcfc, %eax
1503 andl $0xcfcfcfcf, %edx
1504 movb %al, %bl
1505 movb %ah, %cl
1506 rorl $4, %edx
1507 xorl (%ebp,%ebx),%esi
1508 movb %dl, %bl
1509 xorl 0x200(%ebp,%ecx),%esi
1510 movb %dh, %cl
1511 shrl $16, %eax
1512 xorl 0x100(%ebp,%ebx),%esi
1513 movb %ah, %bl
1514 shrl $16, %edx
1515 xorl 0x300(%ebp,%ecx),%esi
1516 movb %dh, %cl
1517 andl $0xff, %eax
1518 andl $0xff, %edx
1519 xorl 0x600(%ebp,%ebx),%esi
1520 xorl 0x700(%ebp,%ecx),%esi
1521 movl 24(%esp), %ecx
1522 xorl 0x400(%ebp,%eax),%esi
1523 xorl 0x500(%ebp,%edx),%esi
1524
1525
1526 movl 112(%ecx), %eax
1527 xorl %ebx, %ebx
1528 movl 116(%ecx), %edx
1529 xorl %esi, %eax
1530 xorl %ecx, %ecx
1531 xorl %esi, %edx
1532 andl $0xfcfcfcfc, %eax
1533 andl $0xcfcfcfcf, %edx
1534 movb %al, %bl
1535 movb %ah, %cl
1536 rorl $4, %edx
1537 xorl (%ebp,%ebx),%edi
1538 movb %dl, %bl
1539 xorl 0x200(%ebp,%ecx),%edi
1540 movb %dh, %cl
1541 shrl $16, %eax
1542 xorl 0x100(%ebp,%ebx),%edi
1543 movb %ah, %bl
1544 shrl $16, %edx
1545 xorl 0x300(%ebp,%ecx),%edi
1546 movb %dh, %cl
1547 andl $0xff, %eax
1548 andl $0xff, %edx
1549 xorl 0x600(%ebp,%ebx),%edi
1550 xorl 0x700(%ebp,%ecx),%edi
1551 movl 24(%esp), %ecx
1552 xorl 0x400(%ebp,%eax),%edi
1553 xorl 0x500(%ebp,%edx),%edi
1554
1555
1556 movl 120(%ecx), %eax
1557 xorl %ebx, %ebx
1558 movl 124(%ecx), %edx
1559 xorl %edi, %eax
1560 xorl %ecx, %ecx
1561 xorl %edi, %edx
1562 andl $0xfcfcfcfc, %eax
1563 andl $0xcfcfcfcf, %edx
1564 movb %al, %bl
1565 movb %ah, %cl
1566 rorl $4, %edx
1567 xorl (%ebp,%ebx),%esi
1568 movb %dl, %bl
1569 xorl 0x200(%ebp,%ecx),%esi
1570 movb %dh, %cl
1571 shrl $16, %eax
1572 xorl 0x100(%ebp,%ebx),%esi
1573 movb %ah, %bl
1574 shrl $16, %edx
1575 xorl 0x300(%ebp,%ecx),%esi
1576 movb %dh, %cl
1577 andl $0xff, %eax
1578 andl $0xff, %edx
1579 xorl 0x600(%ebp,%ebx),%esi
1580 xorl 0x700(%ebp,%ecx),%esi
1581 movl 24(%esp), %ecx
1582 xorl 0x400(%ebp,%eax),%esi
1583 xorl 0x500(%ebp,%edx),%esi
1584 jmp .L003end
1585.L002start_decrypt:
1586
1587
1588 movl 120(%ecx), %eax
1589 xorl %ebx, %ebx
1590 movl 124(%ecx), %edx
1591 xorl %esi, %eax
1592 xorl %ecx, %ecx
1593 xorl %esi, %edx
1594 andl $0xfcfcfcfc, %eax
1595 andl $0xcfcfcfcf, %edx
1596 movb %al, %bl
1597 movb %ah, %cl
1598 rorl $4, %edx
1599 xorl (%ebp,%ebx),%edi
1600 movb %dl, %bl
1601 xorl 0x200(%ebp,%ecx),%edi
1602 movb %dh, %cl
1603 shrl $16, %eax
1604 xorl 0x100(%ebp,%ebx),%edi
1605 movb %ah, %bl
1606 shrl $16, %edx
1607 xorl 0x300(%ebp,%ecx),%edi
1608 movb %dh, %cl
1609 andl $0xff, %eax
1610 andl $0xff, %edx
1611 xorl 0x600(%ebp,%ebx),%edi
1612 xorl 0x700(%ebp,%ecx),%edi
1613 movl 24(%esp), %ecx
1614 xorl 0x400(%ebp,%eax),%edi
1615 xorl 0x500(%ebp,%edx),%edi
1616
1617
1618 movl 112(%ecx), %eax
1619 xorl %ebx, %ebx
1620 movl 116(%ecx), %edx
1621 xorl %edi, %eax
1622 xorl %ecx, %ecx
1623 xorl %edi, %edx
1624 andl $0xfcfcfcfc, %eax
1625 andl $0xcfcfcfcf, %edx
1626 movb %al, %bl
1627 movb %ah, %cl
1628 rorl $4, %edx
1629 xorl (%ebp,%ebx),%esi
1630 movb %dl, %bl
1631 xorl 0x200(%ebp,%ecx),%esi
1632 movb %dh, %cl
1633 shrl $16, %eax
1634 xorl 0x100(%ebp,%ebx),%esi
1635 movb %ah, %bl
1636 shrl $16, %edx
1637 xorl 0x300(%ebp,%ecx),%esi
1638 movb %dh, %cl
1639 andl $0xff, %eax
1640 andl $0xff, %edx
1641 xorl 0x600(%ebp,%ebx),%esi
1642 xorl 0x700(%ebp,%ecx),%esi
1643 movl 24(%esp), %ecx
1644 xorl 0x400(%ebp,%eax),%esi
1645 xorl 0x500(%ebp,%edx),%esi
1646
1647
1648 movl 104(%ecx), %eax
1649 xorl %ebx, %ebx
1650 movl 108(%ecx), %edx
1651 xorl %esi, %eax
1652 xorl %ecx, %ecx
1653 xorl %esi, %edx
1654 andl $0xfcfcfcfc, %eax
1655 andl $0xcfcfcfcf, %edx
1656 movb %al, %bl
1657 movb %ah, %cl
1658 rorl $4, %edx
1659 xorl (%ebp,%ebx),%edi
1660 movb %dl, %bl
1661 xorl 0x200(%ebp,%ecx),%edi
1662 movb %dh, %cl
1663 shrl $16, %eax
1664 xorl 0x100(%ebp,%ebx),%edi
1665 movb %ah, %bl
1666 shrl $16, %edx
1667 xorl 0x300(%ebp,%ecx),%edi
1668 movb %dh, %cl
1669 andl $0xff, %eax
1670 andl $0xff, %edx
1671 xorl 0x600(%ebp,%ebx),%edi
1672 xorl 0x700(%ebp,%ecx),%edi
1673 movl 24(%esp), %ecx
1674 xorl 0x400(%ebp,%eax),%edi
1675 xorl 0x500(%ebp,%edx),%edi
1676
1677
1678 movl 96(%ecx), %eax
1679 xorl %ebx, %ebx
1680 movl 100(%ecx), %edx
1681 xorl %edi, %eax
1682 xorl %ecx, %ecx
1683 xorl %edi, %edx
1684 andl $0xfcfcfcfc, %eax
1685 andl $0xcfcfcfcf, %edx
1686 movb %al, %bl
1687 movb %ah, %cl
1688 rorl $4, %edx
1689 xorl (%ebp,%ebx),%esi
1690 movb %dl, %bl
1691 xorl 0x200(%ebp,%ecx),%esi
1692 movb %dh, %cl
1693 shrl $16, %eax
1694 xorl 0x100(%ebp,%ebx),%esi
1695 movb %ah, %bl
1696 shrl $16, %edx
1697 xorl 0x300(%ebp,%ecx),%esi
1698 movb %dh, %cl
1699 andl $0xff, %eax
1700 andl $0xff, %edx
1701 xorl 0x600(%ebp,%ebx),%esi
1702 xorl 0x700(%ebp,%ecx),%esi
1703 movl 24(%esp), %ecx
1704 xorl 0x400(%ebp,%eax),%esi
1705 xorl 0x500(%ebp,%edx),%esi
1706
1707
1708 movl 88(%ecx), %eax
1709 xorl %ebx, %ebx
1710 movl 92(%ecx), %edx
1711 xorl %esi, %eax
1712 xorl %ecx, %ecx
1713 xorl %esi, %edx
1714 andl $0xfcfcfcfc, %eax
1715 andl $0xcfcfcfcf, %edx
1716 movb %al, %bl
1717 movb %ah, %cl
1718 rorl $4, %edx
1719 xorl (%ebp,%ebx),%edi
1720 movb %dl, %bl
1721 xorl 0x200(%ebp,%ecx),%edi
1722 movb %dh, %cl
1723 shrl $16, %eax
1724 xorl 0x100(%ebp,%ebx),%edi
1725 movb %ah, %bl
1726 shrl $16, %edx
1727 xorl 0x300(%ebp,%ecx),%edi
1728 movb %dh, %cl
1729 andl $0xff, %eax
1730 andl $0xff, %edx
1731 xorl 0x600(%ebp,%ebx),%edi
1732 xorl 0x700(%ebp,%ecx),%edi
1733 movl 24(%esp), %ecx
1734 xorl 0x400(%ebp,%eax),%edi
1735 xorl 0x500(%ebp,%edx),%edi
1736
1737
1738 movl 80(%ecx), %eax
1739 xorl %ebx, %ebx
1740 movl 84(%ecx), %edx
1741 xorl %edi, %eax
1742 xorl %ecx, %ecx
1743 xorl %edi, %edx
1744 andl $0xfcfcfcfc, %eax
1745 andl $0xcfcfcfcf, %edx
1746 movb %al, %bl
1747 movb %ah, %cl
1748 rorl $4, %edx
1749 xorl (%ebp,%ebx),%esi
1750 movb %dl, %bl
1751 xorl 0x200(%ebp,%ecx),%esi
1752 movb %dh, %cl
1753 shrl $16, %eax
1754 xorl 0x100(%ebp,%ebx),%esi
1755 movb %ah, %bl
1756 shrl $16, %edx
1757 xorl 0x300(%ebp,%ecx),%esi
1758 movb %dh, %cl
1759 andl $0xff, %eax
1760 andl $0xff, %edx
1761 xorl 0x600(%ebp,%ebx),%esi
1762 xorl 0x700(%ebp,%ecx),%esi
1763 movl 24(%esp), %ecx
1764 xorl 0x400(%ebp,%eax),%esi
1765 xorl 0x500(%ebp,%edx),%esi
1766
1767
1768 movl 72(%ecx), %eax
1769 xorl %ebx, %ebx
1770 movl 76(%ecx), %edx
1771 xorl %esi, %eax
1772 xorl %ecx, %ecx
1773 xorl %esi, %edx
1774 andl $0xfcfcfcfc, %eax
1775 andl $0xcfcfcfcf, %edx
1776 movb %al, %bl
1777 movb %ah, %cl
1778 rorl $4, %edx
1779 xorl (%ebp,%ebx),%edi
1780 movb %dl, %bl
1781 xorl 0x200(%ebp,%ecx),%edi
1782 movb %dh, %cl
1783 shrl $16, %eax
1784 xorl 0x100(%ebp,%ebx),%edi
1785 movb %ah, %bl
1786 shrl $16, %edx
1787 xorl 0x300(%ebp,%ecx),%edi
1788 movb %dh, %cl
1789 andl $0xff, %eax
1790 andl $0xff, %edx
1791 xorl 0x600(%ebp,%ebx),%edi
1792 xorl 0x700(%ebp,%ecx),%edi
1793 movl 24(%esp), %ecx
1794 xorl 0x400(%ebp,%eax),%edi
1795 xorl 0x500(%ebp,%edx),%edi
1796
1797
1798 movl 64(%ecx), %eax
1799 xorl %ebx, %ebx
1800 movl 68(%ecx), %edx
1801 xorl %edi, %eax
1802 xorl %ecx, %ecx
1803 xorl %edi, %edx
1804 andl $0xfcfcfcfc, %eax
1805 andl $0xcfcfcfcf, %edx
1806 movb %al, %bl
1807 movb %ah, %cl
1808 rorl $4, %edx
1809 xorl (%ebp,%ebx),%esi
1810 movb %dl, %bl
1811 xorl 0x200(%ebp,%ecx),%esi
1812 movb %dh, %cl
1813 shrl $16, %eax
1814 xorl 0x100(%ebp,%ebx),%esi
1815 movb %ah, %bl
1816 shrl $16, %edx
1817 xorl 0x300(%ebp,%ecx),%esi
1818 movb %dh, %cl
1819 andl $0xff, %eax
1820 andl $0xff, %edx
1821 xorl 0x600(%ebp,%ebx),%esi
1822 xorl 0x700(%ebp,%ecx),%esi
1823 movl 24(%esp), %ecx
1824 xorl 0x400(%ebp,%eax),%esi
1825 xorl 0x500(%ebp,%edx),%esi
1826
1827
1828 movl 56(%ecx), %eax
1829 xorl %ebx, %ebx
1830 movl 60(%ecx), %edx
1831 xorl %esi, %eax
1832 xorl %ecx, %ecx
1833 xorl %esi, %edx
1834 andl $0xfcfcfcfc, %eax
1835 andl $0xcfcfcfcf, %edx
1836 movb %al, %bl
1837 movb %ah, %cl
1838 rorl $4, %edx
1839 xorl (%ebp,%ebx),%edi
1840 movb %dl, %bl
1841 xorl 0x200(%ebp,%ecx),%edi
1842 movb %dh, %cl
1843 shrl $16, %eax
1844 xorl 0x100(%ebp,%ebx),%edi
1845 movb %ah, %bl
1846 shrl $16, %edx
1847 xorl 0x300(%ebp,%ecx),%edi
1848 movb %dh, %cl
1849 andl $0xff, %eax
1850 andl $0xff, %edx
1851 xorl 0x600(%ebp,%ebx),%edi
1852 xorl 0x700(%ebp,%ecx),%edi
1853 movl 24(%esp), %ecx
1854 xorl 0x400(%ebp,%eax),%edi
1855 xorl 0x500(%ebp,%edx),%edi
1856
1857
1858 movl 48(%ecx), %eax
1859 xorl %ebx, %ebx
1860 movl 52(%ecx), %edx
1861 xorl %edi, %eax
1862 xorl %ecx, %ecx
1863 xorl %edi, %edx
1864 andl $0xfcfcfcfc, %eax
1865 andl $0xcfcfcfcf, %edx
1866 movb %al, %bl
1867 movb %ah, %cl
1868 rorl $4, %edx
1869 xorl (%ebp,%ebx),%esi
1870 movb %dl, %bl
1871 xorl 0x200(%ebp,%ecx),%esi
1872 movb %dh, %cl
1873 shrl $16, %eax
1874 xorl 0x100(%ebp,%ebx),%esi
1875 movb %ah, %bl
1876 shrl $16, %edx
1877 xorl 0x300(%ebp,%ecx),%esi
1878 movb %dh, %cl
1879 andl $0xff, %eax
1880 andl $0xff, %edx
1881 xorl 0x600(%ebp,%ebx),%esi
1882 xorl 0x700(%ebp,%ecx),%esi
1883 movl 24(%esp), %ecx
1884 xorl 0x400(%ebp,%eax),%esi
1885 xorl 0x500(%ebp,%edx),%esi
1886
1887
1888 movl 40(%ecx), %eax
1889 xorl %ebx, %ebx
1890 movl 44(%ecx), %edx
1891 xorl %esi, %eax
1892 xorl %ecx, %ecx
1893 xorl %esi, %edx
1894 andl $0xfcfcfcfc, %eax
1895 andl $0xcfcfcfcf, %edx
1896 movb %al, %bl
1897 movb %ah, %cl
1898 rorl $4, %edx
1899 xorl (%ebp,%ebx),%edi
1900 movb %dl, %bl
1901 xorl 0x200(%ebp,%ecx),%edi
1902 movb %dh, %cl
1903 shrl $16, %eax
1904 xorl 0x100(%ebp,%ebx),%edi
1905 movb %ah, %bl
1906 shrl $16, %edx
1907 xorl 0x300(%ebp,%ecx),%edi
1908 movb %dh, %cl
1909 andl $0xff, %eax
1910 andl $0xff, %edx
1911 xorl 0x600(%ebp,%ebx),%edi
1912 xorl 0x700(%ebp,%ecx),%edi
1913 movl 24(%esp), %ecx
1914 xorl 0x400(%ebp,%eax),%edi
1915 xorl 0x500(%ebp,%edx),%edi
1916
1917
1918 movl 32(%ecx), %eax
1919 xorl %ebx, %ebx
1920 movl 36(%ecx), %edx
1921 xorl %edi, %eax
1922 xorl %ecx, %ecx
1923 xorl %edi, %edx
1924 andl $0xfcfcfcfc, %eax
1925 andl $0xcfcfcfcf, %edx
1926 movb %al, %bl
1927 movb %ah, %cl
1928 rorl $4, %edx
1929 xorl (%ebp,%ebx),%esi
1930 movb %dl, %bl
1931 xorl 0x200(%ebp,%ecx),%esi
1932 movb %dh, %cl
1933 shrl $16, %eax
1934 xorl 0x100(%ebp,%ebx),%esi
1935 movb %ah, %bl
1936 shrl $16, %edx
1937 xorl 0x300(%ebp,%ecx),%esi
1938 movb %dh, %cl
1939 andl $0xff, %eax
1940 andl $0xff, %edx
1941 xorl 0x600(%ebp,%ebx),%esi
1942 xorl 0x700(%ebp,%ecx),%esi
1943 movl 24(%esp), %ecx
1944 xorl 0x400(%ebp,%eax),%esi
1945 xorl 0x500(%ebp,%edx),%esi
1946
1947
1948 movl 24(%ecx), %eax
1949 xorl %ebx, %ebx
1950 movl 28(%ecx), %edx
1951 xorl %esi, %eax
1952 xorl %ecx, %ecx
1953 xorl %esi, %edx
1954 andl $0xfcfcfcfc, %eax
1955 andl $0xcfcfcfcf, %edx
1956 movb %al, %bl
1957 movb %ah, %cl
1958 rorl $4, %edx
1959 xorl (%ebp,%ebx),%edi
1960 movb %dl, %bl
1961 xorl 0x200(%ebp,%ecx),%edi
1962 movb %dh, %cl
1963 shrl $16, %eax
1964 xorl 0x100(%ebp,%ebx),%edi
1965 movb %ah, %bl
1966 shrl $16, %edx
1967 xorl 0x300(%ebp,%ecx),%edi
1968 movb %dh, %cl
1969 andl $0xff, %eax
1970 andl $0xff, %edx
1971 xorl 0x600(%ebp,%ebx),%edi
1972 xorl 0x700(%ebp,%ecx),%edi
1973 movl 24(%esp), %ecx
1974 xorl 0x400(%ebp,%eax),%edi
1975 xorl 0x500(%ebp,%edx),%edi
1976
1977
1978 movl 16(%ecx), %eax
1979 xorl %ebx, %ebx
1980 movl 20(%ecx), %edx
1981 xorl %edi, %eax
1982 xorl %ecx, %ecx
1983 xorl %edi, %edx
1984 andl $0xfcfcfcfc, %eax
1985 andl $0xcfcfcfcf, %edx
1986 movb %al, %bl
1987 movb %ah, %cl
1988 rorl $4, %edx
1989 xorl (%ebp,%ebx),%esi
1990 movb %dl, %bl
1991 xorl 0x200(%ebp,%ecx),%esi
1992 movb %dh, %cl
1993 shrl $16, %eax
1994 xorl 0x100(%ebp,%ebx),%esi
1995 movb %ah, %bl
1996 shrl $16, %edx
1997 xorl 0x300(%ebp,%ecx),%esi
1998 movb %dh, %cl
1999 andl $0xff, %eax
2000 andl $0xff, %edx
2001 xorl 0x600(%ebp,%ebx),%esi
2002 xorl 0x700(%ebp,%ecx),%esi
2003 movl 24(%esp), %ecx
2004 xorl 0x400(%ebp,%eax),%esi
2005 xorl 0x500(%ebp,%edx),%esi
2006
2007
2008 movl 8(%ecx), %eax
2009 xorl %ebx, %ebx
2010 movl 12(%ecx), %edx
2011 xorl %esi, %eax
2012 xorl %ecx, %ecx
2013 xorl %esi, %edx
2014 andl $0xfcfcfcfc, %eax
2015 andl $0xcfcfcfcf, %edx
2016 movb %al, %bl
2017 movb %ah, %cl
2018 rorl $4, %edx
2019 xorl (%ebp,%ebx),%edi
2020 movb %dl, %bl
2021 xorl 0x200(%ebp,%ecx),%edi
2022 movb %dh, %cl
2023 shrl $16, %eax
2024 xorl 0x100(%ebp,%ebx),%edi
2025 movb %ah, %bl
2026 shrl $16, %edx
2027 xorl 0x300(%ebp,%ecx),%edi
2028 movb %dh, %cl
2029 andl $0xff, %eax
2030 andl $0xff, %edx
2031 xorl 0x600(%ebp,%ebx),%edi
2032 xorl 0x700(%ebp,%ecx),%edi
2033 movl 24(%esp), %ecx
2034 xorl 0x400(%ebp,%eax),%edi
2035 xorl 0x500(%ebp,%edx),%edi
2036
2037
2038 movl (%ecx), %eax
2039 xorl %ebx, %ebx
2040 movl 4(%ecx), %edx
2041 xorl %edi, %eax
2042 xorl %ecx, %ecx
2043 xorl %edi, %edx
2044 andl $0xfcfcfcfc, %eax
2045 andl $0xcfcfcfcf, %edx
2046 movb %al, %bl
2047 movb %ah, %cl
2048 rorl $4, %edx
2049 xorl (%ebp,%ebx),%esi
2050 movb %dl, %bl
2051 xorl 0x200(%ebp,%ecx),%esi
2052 movb %dh, %cl
2053 shrl $16, %eax
2054 xorl 0x100(%ebp,%ebx),%esi
2055 movb %ah, %bl
2056 shrl $16, %edx
2057 xorl 0x300(%ebp,%ecx),%esi
2058 movb %dh, %cl
2059 andl $0xff, %eax
2060 andl $0xff, %edx
2061 xorl 0x600(%ebp,%ebx),%esi
2062 xorl 0x700(%ebp,%ecx),%esi
2063 movl 24(%esp), %ecx
2064 xorl 0x400(%ebp,%eax),%esi
2065 xorl 0x500(%ebp,%edx),%esi
2066.L003end:
2067
2068
2069 rorl $3, %edi
2070 movl 20(%esp), %eax
2071 rorl $3, %esi
2072 movl %edi, (%eax)
2073 movl %esi, 4(%eax)
2074 popl %ebp
2075 popl %ebx
2076 popl %edi
2077 popl %esi
2078 ret
2079.L_DES_encrypt2_end:
2080 .size DES_encrypt2,.L_DES_encrypt2_end-DES_encrypt2
2081.ident "desasm.pl"
2082.text
2083 .align 16
2084.globl DES_encrypt3
2085 .type DES_encrypt3,@function
2086DES_encrypt3:
2087 pushl %ebx
2088 movl 8(%esp), %ebx
2089 pushl %ebp
2090 pushl %esi
2091 pushl %edi
2092
2093
2094 movl (%ebx), %edi
2095 movl 4(%ebx), %esi
2096 subl $12, %esp
2097
2098
2099 roll $4, %edi
2100 movl %edi, %edx
2101 xorl %esi, %edi
2102 andl $0xf0f0f0f0, %edi
2103 xorl %edi, %edx
2104 xorl %edi, %esi
2105
2106 roll $20, %esi
2107 movl %esi, %edi
2108 xorl %edx, %esi
2109 andl $0xfff0000f, %esi
2110 xorl %esi, %edi
2111 xorl %esi, %edx
2112
2113 roll $14, %edi
2114 movl %edi, %esi
2115 xorl %edx, %edi
2116 andl $0x33333333, %edi
2117 xorl %edi, %esi
2118 xorl %edi, %edx
2119
2120 roll $22, %edx
2121 movl %edx, %edi
2122 xorl %esi, %edx
2123 andl $0x03fc03fc, %edx
2124 xorl %edx, %edi
2125 xorl %edx, %esi
2126
2127 roll $9, %edi
2128 movl %edi, %edx
2129 xorl %esi, %edi
2130 andl $0xaaaaaaaa, %edi
2131 xorl %edi, %edx
2132 xorl %edi, %esi
2133
2134 rorl $3, %edx
2135 rorl $2, %esi
2136 movl %esi, 4(%ebx)
2137 movl 36(%esp), %eax
2138 movl %edx, (%ebx)
2139 movl 40(%esp), %edi
2140 movl 44(%esp), %esi
2141 movl $1, 8(%esp)
2142 movl %eax, 4(%esp)
2143 movl %ebx, (%esp)
2144 call DES_encrypt2
2145 movl $0, 8(%esp)
2146 movl %edi, 4(%esp)
2147 movl %ebx, (%esp)
2148 call DES_encrypt2
2149 movl $1, 8(%esp)
2150 movl %esi, 4(%esp)
2151 movl %ebx, (%esp)
2152 call DES_encrypt2
2153 addl $12, %esp
2154 movl (%ebx), %edi
2155 movl 4(%ebx), %esi
2156
2157
2158 roll $2, %esi
2159 roll $3, %edi
2160 movl %edi, %eax
2161 xorl %esi, %edi
2162 andl $0xaaaaaaaa, %edi
2163 xorl %edi, %eax
2164 xorl %edi, %esi
2165
2166 roll $23, %eax
2167 movl %eax, %edi
2168 xorl %esi, %eax
2169 andl $0x03fc03fc, %eax
2170 xorl %eax, %edi
2171 xorl %eax, %esi
2172
2173 roll $10, %edi
2174 movl %edi, %eax
2175 xorl %esi, %edi
2176 andl $0x33333333, %edi
2177 xorl %edi, %eax
2178 xorl %edi, %esi
2179
2180 roll $18, %esi
2181 movl %esi, %edi
2182 xorl %eax, %esi
2183 andl $0xfff0000f, %esi
2184 xorl %esi, %edi
2185 xorl %esi, %eax
2186
2187 roll $12, %edi
2188 movl %edi, %esi
2189 xorl %eax, %edi
2190 andl $0xf0f0f0f0, %edi
2191 xorl %edi, %esi
2192 xorl %edi, %eax
2193
2194 rorl $4, %eax
2195 movl %eax, (%ebx)
2196 movl %esi, 4(%ebx)
2197 popl %edi
2198 popl %esi
2199 popl %ebp
2200 popl %ebx
2201 ret
2202.L_DES_encrypt3_end:
2203 .size DES_encrypt3,.L_DES_encrypt3_end-DES_encrypt3
2204.ident "desasm.pl"
2205.text
2206 .align 16
2207.globl DES_decrypt3
2208 .type DES_decrypt3,@function
2209DES_decrypt3:
2210 pushl %ebx
2211 movl 8(%esp), %ebx
2212 pushl %ebp
2213 pushl %esi
2214 pushl %edi
2215
2216
2217 movl (%ebx), %edi
2218 movl 4(%ebx), %esi
2219 subl $12, %esp
2220
2221
2222 roll $4, %edi
2223 movl %edi, %edx
2224 xorl %esi, %edi
2225 andl $0xf0f0f0f0, %edi
2226 xorl %edi, %edx
2227 xorl %edi, %esi
2228
2229 roll $20, %esi
2230 movl %esi, %edi
2231 xorl %edx, %esi
2232 andl $0xfff0000f, %esi
2233 xorl %esi, %edi
2234 xorl %esi, %edx
2235
2236 roll $14, %edi
2237 movl %edi, %esi
2238 xorl %edx, %edi
2239 andl $0x33333333, %edi
2240 xorl %edi, %esi
2241 xorl %edi, %edx
2242
2243 roll $22, %edx
2244 movl %edx, %edi
2245 xorl %esi, %edx
2246 andl $0x03fc03fc, %edx
2247 xorl %edx, %edi
2248 xorl %edx, %esi
2249
2250 roll $9, %edi
2251 movl %edi, %edx
2252 xorl %esi, %edi
2253 andl $0xaaaaaaaa, %edi
2254 xorl %edi, %edx
2255 xorl %edi, %esi
2256
2257 rorl $3, %edx
2258 rorl $2, %esi
2259 movl %esi, 4(%ebx)
2260 movl 36(%esp), %esi
2261 movl %edx, (%ebx)
2262 movl 40(%esp), %edi
2263 movl 44(%esp), %eax
2264 movl $0, 8(%esp)
2265 movl %eax, 4(%esp)
2266 movl %ebx, (%esp)
2267 call DES_encrypt2
2268 movl $1, 8(%esp)
2269 movl %edi, 4(%esp)
2270 movl %ebx, (%esp)
2271 call DES_encrypt2
2272 movl $0, 8(%esp)
2273 movl %esi, 4(%esp)
2274 movl %ebx, (%esp)
2275 call DES_encrypt2
2276 addl $12, %esp
2277 movl (%ebx), %edi
2278 movl 4(%ebx), %esi
2279
2280
2281 roll $2, %esi
2282 roll $3, %edi
2283 movl %edi, %eax
2284 xorl %esi, %edi
2285 andl $0xaaaaaaaa, %edi
2286 xorl %edi, %eax
2287 xorl %edi, %esi
2288
2289 roll $23, %eax
2290 movl %eax, %edi
2291 xorl %esi, %eax
2292 andl $0x03fc03fc, %eax
2293 xorl %eax, %edi
2294 xorl %eax, %esi
2295
2296 roll $10, %edi
2297 movl %edi, %eax
2298 xorl %esi, %edi
2299 andl $0x33333333, %edi
2300 xorl %edi, %eax
2301 xorl %edi, %esi
2302
2303 roll $18, %esi
2304 movl %esi, %edi
2305 xorl %eax, %esi
2306 andl $0xfff0000f, %esi
2307 xorl %esi, %edi
2308 xorl %esi, %eax
2309
2310 roll $12, %edi
2311 movl %edi, %esi
2312 xorl %eax, %edi
2313 andl $0xf0f0f0f0, %edi
2314 xorl %edi, %esi
2315 xorl %edi, %eax
2316
2317 rorl $4, %eax
2318 movl %eax, (%ebx)
2319 movl %esi, 4(%ebx)
2320 popl %edi
2321 popl %esi
2322 popl %ebp
2323 popl %ebx
2324 ret
2325.L_DES_decrypt3_end:
2326 .size DES_decrypt3,.L_DES_decrypt3_end-DES_decrypt3
2327.ident "desasm.pl"
2328.text
2329 .align 16
2330.globl DES_ncbc_encrypt
2331 .type DES_ncbc_encrypt,@function
2332DES_ncbc_encrypt:
2333
2334 pushl %ebp
2335 pushl %ebx
2336 pushl %esi
2337 pushl %edi
2338 movl 28(%esp), %ebp
2339
2340 movl 36(%esp), %ebx
2341 movl (%ebx), %esi
2342 movl 4(%ebx), %edi
2343 pushl %edi
2344 pushl %esi
2345 pushl %edi
2346 pushl %esi
2347 movl %esp, %ebx
2348 movl 36(%esp), %esi
2349 movl 40(%esp), %edi
2350
2351 movl 56(%esp), %ecx
2352
2353 pushl %ecx
2354
2355 movl 52(%esp), %eax
2356 pushl %eax
2357 pushl %ebx
2358 cmpl $0, %ecx
2359 jz .L004decrypt
2360 andl $4294967288, %ebp
2361 movl 12(%esp), %eax
2362 movl 16(%esp), %ebx
2363 jz .L005encrypt_finish
2364.L006encrypt_loop:
2365 movl (%esi), %ecx
2366 movl 4(%esi), %edx
2367 xorl %ecx, %eax
2368 xorl %edx, %ebx
2369 movl %eax, 12(%esp)
2370 movl %ebx, 16(%esp)
2371 call DES_encrypt1
2372 movl 12(%esp), %eax
2373 movl 16(%esp), %ebx
2374 movl %eax, (%edi)
2375 movl %ebx, 4(%edi)
2376 addl $8, %esi
2377 addl $8, %edi
2378 subl $8, %ebp
2379 jnz .L006encrypt_loop
2380.L005encrypt_finish:
2381 movl 56(%esp), %ebp
2382 andl $7, %ebp
2383 jz .L007finish
2384 call .L008PIC_point
2385.L008PIC_point:
2386 popl %edx
2387 leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
2388 movl (%ecx,%ebp,4), %ebp
2389 addl %edx, %ebp
2390 xorl %ecx, %ecx
2391 xorl %edx, %edx
2392 jmp *%ebp
2393.L010ej7:
2394 movb 6(%esi), %dh
2395 sall $8, %edx
2396.L011ej6:
2397 movb 5(%esi), %dh
2398.L012ej5:
2399 movb 4(%esi), %dl
2400.L013ej4:
2401 movl (%esi), %ecx
2402 jmp .L014ejend
2403.L015ej3:
2404 movb 2(%esi), %ch
2405 sall $8, %ecx
2406.L016ej2:
2407 movb 1(%esi), %ch
2408.L017ej1:
2409 movb (%esi), %cl
2410.L014ejend:
2411 xorl %ecx, %eax
2412 xorl %edx, %ebx
2413 movl %eax, 12(%esp)
2414 movl %ebx, 16(%esp)
2415 call DES_encrypt1
2416 movl 12(%esp), %eax
2417 movl 16(%esp), %ebx
2418 movl %eax, (%edi)
2419 movl %ebx, 4(%edi)
2420 jmp .L007finish
2421.align 16
2422.L004decrypt:
2423 andl $4294967288, %ebp
2424 movl 20(%esp), %eax
2425 movl 24(%esp), %ebx
2426 jz .L018decrypt_finish
2427.L019decrypt_loop:
2428 movl (%esi), %eax
2429 movl 4(%esi), %ebx
2430 movl %eax, 12(%esp)
2431 movl %ebx, 16(%esp)
2432 call DES_encrypt1
2433 movl 12(%esp), %eax
2434 movl 16(%esp), %ebx
2435 movl 20(%esp), %ecx
2436 movl 24(%esp), %edx
2437 xorl %eax, %ecx
2438 xorl %ebx, %edx
2439 movl (%esi), %eax
2440 movl 4(%esi), %ebx
2441 movl %ecx, (%edi)
2442 movl %edx, 4(%edi)
2443 movl %eax, 20(%esp)
2444 movl %ebx, 24(%esp)
2445 addl $8, %esi
2446 addl $8, %edi
2447 subl $8, %ebp
2448 jnz .L019decrypt_loop
2449.L018decrypt_finish:
2450 movl 56(%esp), %ebp
2451 andl $7, %ebp
2452 jz .L007finish
2453 movl (%esi), %eax
2454 movl 4(%esi), %ebx
2455 movl %eax, 12(%esp)
2456 movl %ebx, 16(%esp)
2457 call DES_encrypt1
2458 movl 12(%esp), %eax
2459 movl 16(%esp), %ebx
2460 movl 20(%esp), %ecx
2461 movl 24(%esp), %edx
2462 xorl %eax, %ecx
2463 xorl %ebx, %edx
2464 movl (%esi), %eax
2465 movl 4(%esi), %ebx
2466.L020dj7:
2467 rorl $16, %edx
2468 movb %dl, 6(%edi)
2469 shrl $16, %edx
2470.L021dj6:
2471 movb %dh, 5(%edi)
2472.L022dj5:
2473 movb %dl, 4(%edi)
2474.L023dj4:
2475 movl %ecx, (%edi)
2476 jmp .L024djend
2477.L025dj3:
2478 rorl $16, %ecx
2479 movb %cl, 2(%edi)
2480 sall $16, %ecx
2481.L026dj2:
2482 movb %ch, 1(%esi)
2483.L027dj1:
2484 movb %cl, (%esi)
2485.L024djend:
2486 jmp .L007finish
2487.align 16
2488.L007finish:
2489 movl 64(%esp), %ecx
2490 addl $28, %esp
2491 movl %eax, (%ecx)
2492 movl %ebx, 4(%ecx)
2493 popl %edi
2494 popl %esi
2495 popl %ebx
2496 popl %ebp
2497 ret
2498.align 16
2499.L009cbc_enc_jmp_table:
2500 .long 0
2501 .long .L017ej1-.L008PIC_point
2502 .long .L016ej2-.L008PIC_point
2503 .long .L015ej3-.L008PIC_point
2504 .long .L013ej4-.L008PIC_point
2505 .long .L012ej5-.L008PIC_point
2506 .long .L011ej6-.L008PIC_point
2507 .long .L010ej7-.L008PIC_point
2508.L_DES_ncbc_encrypt_end:
2509 .size DES_ncbc_encrypt,.L_DES_ncbc_encrypt_end-DES_ncbc_encrypt
2510.ident "desasm.pl"
2511.text
2512 .align 16
2513.globl DES_ede3_cbc_encrypt
2514 .type DES_ede3_cbc_encrypt,@function
2515DES_ede3_cbc_encrypt:
2516
2517 pushl %ebp
2518 pushl %ebx
2519 pushl %esi
2520 pushl %edi
2521 movl 28(%esp), %ebp
2522
2523 movl 44(%esp), %ebx
2524 movl (%ebx), %esi
2525 movl 4(%ebx), %edi
2526 pushl %edi
2527 pushl %esi
2528 pushl %edi
2529 pushl %esi
2530 movl %esp, %ebx
2531 movl 36(%esp), %esi
2532 movl 40(%esp), %edi
2533
2534 movl 64(%esp), %ecx
2535
2536 movl 56(%esp), %eax
2537 pushl %eax
2538
2539 movl 56(%esp), %eax
2540 pushl %eax
2541
2542 movl 56(%esp), %eax
2543 pushl %eax
2544 pushl %ebx
2545 cmpl $0, %ecx
2546 jz .L028decrypt
2547 andl $4294967288, %ebp
2548 movl 16(%esp), %eax
2549 movl 20(%esp), %ebx
2550 jz .L029encrypt_finish
2551.L030encrypt_loop:
2552 movl (%esi), %ecx
2553 movl 4(%esi), %edx
2554 xorl %ecx, %eax
2555 xorl %edx, %ebx
2556 movl %eax, 16(%esp)
2557 movl %ebx, 20(%esp)
2558 call DES_encrypt3
2559 movl 16(%esp), %eax
2560 movl 20(%esp), %ebx
2561 movl %eax, (%edi)
2562 movl %ebx, 4(%edi)
2563 addl $8, %esi
2564 addl $8, %edi
2565 subl $8, %ebp
2566 jnz .L030encrypt_loop
2567.L029encrypt_finish:
2568 movl 60(%esp), %ebp
2569 andl $7, %ebp
2570 jz .L031finish
2571 call .L032PIC_point
2572.L032PIC_point:
2573 popl %edx
2574 leal .L033cbc_enc_jmp_table-.L032PIC_point(%edx),%ecx
2575 movl (%ecx,%ebp,4), %ebp
2576 addl %edx, %ebp
2577 xorl %ecx, %ecx
2578 xorl %edx, %edx
2579 jmp *%ebp
2580.L034ej7:
2581 movb 6(%esi), %dh
2582 sall $8, %edx
2583.L035ej6:
2584 movb 5(%esi), %dh
2585.L036ej5:
2586 movb 4(%esi), %dl
2587.L037ej4:
2588 movl (%esi), %ecx
2589 jmp .L038ejend
2590.L039ej3:
2591 movb 2(%esi), %ch
2592 sall $8, %ecx
2593.L040ej2:
2594 movb 1(%esi), %ch
2595.L041ej1:
2596 movb (%esi), %cl
2597.L038ejend:
2598 xorl %ecx, %eax
2599 xorl %edx, %ebx
2600 movl %eax, 16(%esp)
2601 movl %ebx, 20(%esp)
2602 call DES_encrypt3
2603 movl 16(%esp), %eax
2604 movl 20(%esp), %ebx
2605 movl %eax, (%edi)
2606 movl %ebx, 4(%edi)
2607 jmp .L031finish
2608.align 16
2609.L028decrypt:
2610 andl $4294967288, %ebp
2611 movl 24(%esp), %eax
2612 movl 28(%esp), %ebx
2613 jz .L042decrypt_finish
2614.L043decrypt_loop:
2615 movl (%esi), %eax
2616 movl 4(%esi), %ebx
2617 movl %eax, 16(%esp)
2618 movl %ebx, 20(%esp)
2619 call DES_decrypt3
2620 movl 16(%esp), %eax
2621 movl 20(%esp), %ebx
2622 movl 24(%esp), %ecx
2623 movl 28(%esp), %edx
2624 xorl %eax, %ecx
2625 xorl %ebx, %edx
2626 movl (%esi), %eax
2627 movl 4(%esi), %ebx
2628 movl %ecx, (%edi)
2629 movl %edx, 4(%edi)
2630 movl %eax, 24(%esp)
2631 movl %ebx, 28(%esp)
2632 addl $8, %esi
2633 addl $8, %edi
2634 subl $8, %ebp
2635 jnz .L043decrypt_loop
2636.L042decrypt_finish:
2637 movl 60(%esp), %ebp
2638 andl $7, %ebp
2639 jz .L031finish
2640 movl (%esi), %eax
2641 movl 4(%esi), %ebx
2642 movl %eax, 16(%esp)
2643 movl %ebx, 20(%esp)
2644 call DES_decrypt3
2645 movl 16(%esp), %eax
2646 movl 20(%esp), %ebx
2647 movl 24(%esp), %ecx
2648 movl 28(%esp), %edx
2649 xorl %eax, %ecx
2650 xorl %ebx, %edx
2651 movl (%esi), %eax
2652 movl 4(%esi), %ebx
2653.L044dj7:
2654 rorl $16, %edx
2655 movb %dl, 6(%edi)
2656 shrl $16, %edx
2657.L045dj6:
2658 movb %dh, 5(%edi)
2659.L046dj5:
2660 movb %dl, 4(%edi)
2661.L047dj4:
2662 movl %ecx, (%edi)
2663 jmp .L048djend
2664.L049dj3:
2665 rorl $16, %ecx
2666 movb %cl, 2(%edi)
2667 sall $16, %ecx
2668.L050dj2:
2669 movb %ch, 1(%esi)
2670.L051dj1:
2671 movb %cl, (%esi)
2672.L048djend:
2673 jmp .L031finish
2674.align 16
2675.L031finish:
2676 movl 76(%esp), %ecx
2677 addl $32, %esp
2678 movl %eax, (%ecx)
2679 movl %ebx, 4(%ecx)
2680 popl %edi
2681 popl %esi
2682 popl %ebx
2683 popl %ebp
2684 ret
2685.align 16
2686.L033cbc_enc_jmp_table:
2687 .long 0
2688 .long .L041ej1-.L032PIC_point
2689 .long .L040ej2-.L032PIC_point
2690 .long .L039ej3-.L032PIC_point
2691 .long .L037ej4-.L032PIC_point
2692 .long .L036ej5-.L032PIC_point
2693 .long .L035ej6-.L032PIC_point
2694 .long .L034ej7-.L032PIC_point
2695.L_DES_ede3_cbc_encrypt_end:
2696 .size DES_ede3_cbc_encrypt,.L_DES_ede3_cbc_encrypt_end-DES_ede3_cbc_encrypt
2697.ident "desasm.pl"
diff --git a/src/lib/libssl/src/fips/des/fingerprint.sha1 b/src/lib/libssl/src/fips/des/fingerprint.sha1
new file mode 100644
index 0000000000..83833d83d1
--- /dev/null
+++ b/src/lib/libssl/src/fips/des/fingerprint.sha1
@@ -0,0 +1,5 @@
1HMAC-SHA1(fips_des_enc.c)= 9527f8ea81602358f1aa11348237fdb1e9eeff32
2HMAC-SHA1(asm/fips-dx86-elf.s)= 2f85e8e86806c92ee4c12cf5354e19eccf6ed47d
3HMAC-SHA1(fips_des_selftest.c)= 3bc574e51647c5f5ab45d1007b2cf461d67764a9
4HMAC-SHA1(fips_set_key.c)= 2858450d3d9c8d4ab8edea683baa54fa34f3a605
5HMAC-SHA1(fips_des_locl.h)= 7053848e884df47f06de9f2248380b92e58ef4e5
diff --git a/src/lib/libssl/src/fips/des/fips_des_enc.c b/src/lib/libssl/src/fips/des/fips_des_enc.c
new file mode 100644
index 0000000000..40e25efa58
--- /dev/null
+++ b/src/lib/libssl/src/fips/des/fips_des_enc.c
@@ -0,0 +1,310 @@
1/* crypto/des/des_enc.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include "fips_des_locl.h"
60#include <openssl/fips.h>
61
62#ifdef OPENSSL_FIPS
63
64void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
65 {
66 register DES_LONG l,r,t,u;
67#ifdef DES_PTR
68 register const unsigned char *des_SP=(const unsigned char *)DES_SPtrans;
69#endif
70#ifndef DES_UNROLL
71 register int i;
72#endif
73 register DES_LONG *s;
74
75 if(FIPS_selftest_failed())
76 {
77 data[0]=data[1]=0;
78 return;
79 }
80
81 r=data[0];
82 l=data[1];
83
84 IP(r,l);
85 /* Things have been modified so that the initial rotate is
86 * done outside the loop. This required the
87 * DES_SPtrans values in sp.h to be rotated 1 bit to the right.
88 * One perl script later and things have a 5% speed up on a sparc2.
89 * Thanks to Richard Outerbridge <71755.204@CompuServe.COM>
90 * for pointing this out. */
91 /* clear the top bits on machines with 8byte longs */
92 /* shift left by 2 */
93 r=ROTATE(r,29)&0xffffffffL;
94 l=ROTATE(l,29)&0xffffffffL;
95
96 s=ks->ks->deslong;
97 /* I don't know if it is worth the effort of loop unrolling the
98 * inner loop */
99 if (enc)
100 {
101#ifdef DES_UNROLL
102 D_ENCRYPT(l,r, 0); /* 1 */
103 D_ENCRYPT(r,l, 2); /* 2 */
104 D_ENCRYPT(l,r, 4); /* 3 */
105 D_ENCRYPT(r,l, 6); /* 4 */
106 D_ENCRYPT(l,r, 8); /* 5 */
107 D_ENCRYPT(r,l,10); /* 6 */
108 D_ENCRYPT(l,r,12); /* 7 */
109 D_ENCRYPT(r,l,14); /* 8 */
110 D_ENCRYPT(l,r,16); /* 9 */
111 D_ENCRYPT(r,l,18); /* 10 */
112 D_ENCRYPT(l,r,20); /* 11 */
113 D_ENCRYPT(r,l,22); /* 12 */
114 D_ENCRYPT(l,r,24); /* 13 */
115 D_ENCRYPT(r,l,26); /* 14 */
116 D_ENCRYPT(l,r,28); /* 15 */
117 D_ENCRYPT(r,l,30); /* 16 */
118#else
119 for (i=0; i<32; i+=8)
120 {
121 D_ENCRYPT(l,r,i+0); /* 1 */
122 D_ENCRYPT(r,l,i+2); /* 2 */
123 D_ENCRYPT(l,r,i+4); /* 3 */
124 D_ENCRYPT(r,l,i+6); /* 4 */
125 }
126#endif
127 }
128 else
129 {
130#ifdef DES_UNROLL
131 D_ENCRYPT(l,r,30); /* 16 */
132 D_ENCRYPT(r,l,28); /* 15 */
133 D_ENCRYPT(l,r,26); /* 14 */
134 D_ENCRYPT(r,l,24); /* 13 */
135 D_ENCRYPT(l,r,22); /* 12 */
136 D_ENCRYPT(r,l,20); /* 11 */
137 D_ENCRYPT(l,r,18); /* 10 */
138 D_ENCRYPT(r,l,16); /* 9 */
139 D_ENCRYPT(l,r,14); /* 8 */
140 D_ENCRYPT(r,l,12); /* 7 */
141 D_ENCRYPT(l,r,10); /* 6 */
142 D_ENCRYPT(r,l, 8); /* 5 */
143 D_ENCRYPT(l,r, 6); /* 4 */
144 D_ENCRYPT(r,l, 4); /* 3 */
145 D_ENCRYPT(l,r, 2); /* 2 */
146 D_ENCRYPT(r,l, 0); /* 1 */
147#else
148 for (i=30; i>0; i-=8)
149 {
150 D_ENCRYPT(l,r,i-0); /* 16 */
151 D_ENCRYPT(r,l,i-2); /* 15 */
152 D_ENCRYPT(l,r,i-4); /* 14 */
153 D_ENCRYPT(r,l,i-6); /* 13 */
154 }
155#endif
156 }
157
158 /* rotate and clear the top bits on machines with 8byte longs */
159 l=ROTATE(l,3)&0xffffffffL;
160 r=ROTATE(r,3)&0xffffffffL;
161
162 FP(r,l);
163 data[0]=l;
164 data[1]=r;
165 l=r=t=u=0;
166 }
167
168void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc)
169 {
170 register DES_LONG l,r,t,u;
171#ifdef DES_PTR
172 register const unsigned char *des_SP=(const unsigned char *)DES_SPtrans;
173#endif
174#ifndef DES_UNROLL
175 register int i;
176#endif
177 register DES_LONG *s;
178
179 if(FIPS_selftest_failed())
180 {
181 data[0]=data[1]=0;
182 return;
183 }
184
185 r=data[0];
186 l=data[1];
187
188 /* Things have been modified so that the initial rotate is
189 * done outside the loop. This required the
190 * DES_SPtrans values in sp.h to be rotated 1 bit to the right.
191 * One perl script later and things have a 5% speed up on a sparc2.
192 * Thanks to Richard Outerbridge <71755.204@CompuServe.COM>
193 * for pointing this out. */
194 /* clear the top bits on machines with 8byte longs */
195 r=ROTATE(r,29)&0xffffffffL;
196 l=ROTATE(l,29)&0xffffffffL;
197
198 s=ks->ks->deslong;
199 /* I don't know if it is worth the effort of loop unrolling the
200 * inner loop */
201 if (enc)
202 {
203#ifdef DES_UNROLL
204 D_ENCRYPT(l,r, 0); /* 1 */
205 D_ENCRYPT(r,l, 2); /* 2 */
206 D_ENCRYPT(l,r, 4); /* 3 */
207 D_ENCRYPT(r,l, 6); /* 4 */
208 D_ENCRYPT(l,r, 8); /* 5 */
209 D_ENCRYPT(r,l,10); /* 6 */
210 D_ENCRYPT(l,r,12); /* 7 */
211 D_ENCRYPT(r,l,14); /* 8 */
212 D_ENCRYPT(l,r,16); /* 9 */
213 D_ENCRYPT(r,l,18); /* 10 */
214 D_ENCRYPT(l,r,20); /* 11 */
215 D_ENCRYPT(r,l,22); /* 12 */
216 D_ENCRYPT(l,r,24); /* 13 */
217 D_ENCRYPT(r,l,26); /* 14 */
218 D_ENCRYPT(l,r,28); /* 15 */
219 D_ENCRYPT(r,l,30); /* 16 */
220#else
221 for (i=0; i<32; i+=8)
222 {
223 D_ENCRYPT(l,r,i+0); /* 1 */
224 D_ENCRYPT(r,l,i+2); /* 2 */
225 D_ENCRYPT(l,r,i+4); /* 3 */
226 D_ENCRYPT(r,l,i+6); /* 4 */
227 }
228#endif
229 }
230 else
231 {
232#ifdef DES_UNROLL
233 D_ENCRYPT(l,r,30); /* 16 */
234 D_ENCRYPT(r,l,28); /* 15 */
235 D_ENCRYPT(l,r,26); /* 14 */
236 D_ENCRYPT(r,l,24); /* 13 */
237 D_ENCRYPT(l,r,22); /* 12 */
238 D_ENCRYPT(r,l,20); /* 11 */
239 D_ENCRYPT(l,r,18); /* 10 */
240 D_ENCRYPT(r,l,16); /* 9 */
241 D_ENCRYPT(l,r,14); /* 8 */
242 D_ENCRYPT(r,l,12); /* 7 */
243 D_ENCRYPT(l,r,10); /* 6 */
244 D_ENCRYPT(r,l, 8); /* 5 */
245 D_ENCRYPT(l,r, 6); /* 4 */
246 D_ENCRYPT(r,l, 4); /* 3 */
247 D_ENCRYPT(l,r, 2); /* 2 */
248 D_ENCRYPT(r,l, 0); /* 1 */
249#else
250 for (i=30; i>0; i-=8)
251 {
252 D_ENCRYPT(l,r,i-0); /* 16 */
253 D_ENCRYPT(r,l,i-2); /* 15 */
254 D_ENCRYPT(l,r,i-4); /* 14 */
255 D_ENCRYPT(r,l,i-6); /* 13 */
256 }
257#endif
258 }
259 /* rotate and clear the top bits on machines with 8byte longs */
260 data[0]=ROTATE(l,3)&0xffffffffL;
261 data[1]=ROTATE(r,3)&0xffffffffL;
262 l=r=t=u=0;
263 }
264
265void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,
266 DES_key_schedule *ks2, DES_key_schedule *ks3)
267 {
268 register DES_LONG l,r;
269
270 l=data[0];
271 r=data[1];
272 IP(l,r);
273 data[0]=l;
274 data[1]=r;
275 DES_encrypt2((DES_LONG *)data,ks1,DES_ENCRYPT);
276 DES_encrypt2((DES_LONG *)data,ks2,DES_DECRYPT);
277 DES_encrypt2((DES_LONG *)data,ks3,DES_ENCRYPT);
278 l=data[0];
279 r=data[1];
280 FP(r,l);
281 data[0]=l;
282 data[1]=r;
283 }
284
285void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
286 DES_key_schedule *ks2, DES_key_schedule *ks3)
287 {
288 register DES_LONG l,r;
289
290 l=data[0];
291 r=data[1];
292 IP(l,r);
293 data[0]=l;
294 data[1]=r;
295 DES_encrypt2((DES_LONG *)data,ks3,DES_DECRYPT);
296 DES_encrypt2((DES_LONG *)data,ks2,DES_ENCRYPT);
297 DES_encrypt2((DES_LONG *)data,ks1,DES_DECRYPT);
298 l=data[0];
299 r=data[1];
300 FP(r,l);
301 data[0]=l;
302 data[1]=r;
303 }
304
305#else /* ndef OPENSSL_FIPS */
306
307static void *dummy=&dummy;
308
309#endif /* ndef OPENSSL_FIPS */
310
diff --git a/src/lib/libssl/src/fips/des/fips_des_locl.h b/src/lib/libssl/src/fips/des/fips_des_locl.h
new file mode 100644
index 0000000000..ef9323a6d6
--- /dev/null
+++ b/src/lib/libssl/src/fips/des/fips_des_locl.h
@@ -0,0 +1,428 @@
1/* crypto/des/des_locl.h */
2/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#ifndef HEADER_DES_LOCL_H
60#define HEADER_DES_LOCL_H
61
62#include "e_os.h"
63
64#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN16)
65#ifndef OPENSSL_SYS_MSDOS
66#define OPENSSL_SYS_MSDOS
67#endif
68#endif
69
70#include <stdio.h>
71#include <stdlib.h>
72
73#ifndef OPENSSL_SYS_MSDOS
74#if !defined(OPENSSL_SYS_VMS) || defined(__DECC)
75#ifdef OPENSSL_UNISTD
76# include OPENSSL_UNISTD
77#else
78# include <unistd.h>
79#endif
80#include <math.h>
81#endif
82#endif
83#include <openssl/des.h>
84
85#ifdef OPENSSL_SYS_MSDOS /* Visual C++ 2.1 (Windows NT/95) */
86#include <stdlib.h>
87#include <errno.h>
88#include <time.h>
89#include <io.h>
90#endif
91
92#if defined(__STDC__) || defined(OPENSSL_SYS_VMS) || defined(M_XENIX) || defined(OPENSSL_SYS_MSDOS)
93#include <string.h>
94#endif
95
96#ifdef OPENSSL_BUILD_SHLIBCRYPTO
97# undef OPENSSL_EXTERN
98# define OPENSSL_EXTERN OPENSSL_EXPORT
99#endif
100
101#define ITERATIONS 16
102#define HALF_ITERATIONS 8
103
104/* used in des_read and des_write */
105#define MAXWRITE (1024*16)
106#define BSIZE (MAXWRITE+4)
107
108#define c2l(c,l) (l =((DES_LONG)(*((c)++))) , \
109 l|=((DES_LONG)(*((c)++)))<< 8L, \
110 l|=((DES_LONG)(*((c)++)))<<16L, \
111 l|=((DES_LONG)(*((c)++)))<<24L)
112
113/* NOTE - c is not incremented as per c2l */
114#define c2ln(c,l1,l2,n) { \
115 c+=n; \
116 l1=l2=0; \
117 switch (n) { \
118 case 8: l2 =((DES_LONG)(*(--(c))))<<24L; \
119 case 7: l2|=((DES_LONG)(*(--(c))))<<16L; \
120 case 6: l2|=((DES_LONG)(*(--(c))))<< 8L; \
121 case 5: l2|=((DES_LONG)(*(--(c)))); \
122 case 4: l1 =((DES_LONG)(*(--(c))))<<24L; \
123 case 3: l1|=((DES_LONG)(*(--(c))))<<16L; \
124 case 2: l1|=((DES_LONG)(*(--(c))))<< 8L; \
125 case 1: l1|=((DES_LONG)(*(--(c)))); \
126 } \
127 }
128
129#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
130 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
131 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
132 *((c)++)=(unsigned char)(((l)>>24L)&0xff))
133
134/* replacements for htonl and ntohl since I have no idea what to do
135 * when faced with machines with 8 byte longs. */
136#define HDRSIZE 4
137
138#define n2l(c,l) (l =((DES_LONG)(*((c)++)))<<24L, \
139 l|=((DES_LONG)(*((c)++)))<<16L, \
140 l|=((DES_LONG)(*((c)++)))<< 8L, \
141 l|=((DES_LONG)(*((c)++))))
142
143#define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24L)&0xff), \
144 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
145 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
146 *((c)++)=(unsigned char)(((l) )&0xff))
147
148/* NOTE - c is not incremented as per l2c */
149#define l2cn(l1,l2,c,n) { \
150 c+=n; \
151 switch (n) { \
152 case 8: *(--(c))=(unsigned char)(((l2)>>24L)&0xff); \
153 case 7: *(--(c))=(unsigned char)(((l2)>>16L)&0xff); \
154 case 6: *(--(c))=(unsigned char)(((l2)>> 8L)&0xff); \
155 case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \
156 case 4: *(--(c))=(unsigned char)(((l1)>>24L)&0xff); \
157 case 3: *(--(c))=(unsigned char)(((l1)>>16L)&0xff); \
158 case 2: *(--(c))=(unsigned char)(((l1)>> 8L)&0xff); \
159 case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \
160 } \
161 }
162
163#if defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER)
164#define ROTATE(a,n) (_lrotr(a,n))
165#elif defined(__GNUC__) && __GNUC__>=2 && !defined(__STRICT_ANSI__) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC)
166# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
167# define ROTATE(a,n) ({ register unsigned int ret; \
168 asm ("rorl %1,%0" \
169 : "=r"(ret) \
170 : "I"(n),"0"(a) \
171 : "cc"); \
172 ret; \
173 })
174# endif
175#endif
176#ifndef ROTATE
177#define ROTATE(a,n) (((a)>>(n))+((a)<<(32-(n))))
178#endif
179
180/* Don't worry about the LOAD_DATA() stuff, that is used by
181 * fcrypt() to add it's little bit to the front */
182
183#ifdef DES_FCRYPT
184
185#define LOAD_DATA_tmp(R,S,u,t,E0,E1) \
186 { DES_LONG tmp; LOAD_DATA(R,S,u,t,E0,E1,tmp); }
187
188#define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
189 t=R^(R>>16L); \
190 u=t&E0; t&=E1; \
191 tmp=(u<<16); u^=R^s[S ]; u^=tmp; \
192 tmp=(t<<16); t^=R^s[S+1]; t^=tmp
193#else
194#define LOAD_DATA_tmp(a,b,c,d,e,f) LOAD_DATA(a,b,c,d,e,f,g)
195#define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
196 u=R^s[S ]; \
197 t=R^s[S+1]
198#endif
199
200/* The changes to this macro may help or hinder, depending on the
201 * compiler and the architecture. gcc2 always seems to do well :-).
202 * Inspired by Dana How <how@isl.stanford.edu>
203 * DO NOT use the alternative version on machines with 8 byte longs.
204 * It does not seem to work on the Alpha, even when DES_LONG is 4
205 * bytes, probably an issue of accessing non-word aligned objects :-( */
206#ifdef DES_PTR
207
208/* It recently occurred to me that 0^0^0^0^0^0^0 == 0, so there
209 * is no reason to not xor all the sub items together. This potentially
210 * saves a register since things can be xored directly into L */
211
212#if defined(DES_RISC1) || defined(DES_RISC2)
213#ifdef DES_RISC1
214#define D_ENCRYPT(LL,R,S) { \
215 unsigned int u1,u2,u3; \
216 LOAD_DATA(R,S,u,t,E0,E1,u1); \
217 u2=(int)u>>8L; \
218 u1=(int)u&0xfc; \
219 u2&=0xfc; \
220 t=ROTATE(t,4); \
221 u>>=16L; \
222 LL^= *(const DES_LONG *)(des_SP +u1); \
223 LL^= *(const DES_LONG *)(des_SP+0x200+u2); \
224 u3=(int)(u>>8L); \
225 u1=(int)u&0xfc; \
226 u3&=0xfc; \
227 LL^= *(const DES_LONG *)(des_SP+0x400+u1); \
228 LL^= *(const DES_LONG *)(des_SP+0x600+u3); \
229 u2=(int)t>>8L; \
230 u1=(int)t&0xfc; \
231 u2&=0xfc; \
232 t>>=16L; \
233 LL^= *(const DES_LONG *)(des_SP+0x100+u1); \
234 LL^= *(const DES_LONG *)(des_SP+0x300+u2); \
235 u3=(int)t>>8L; \
236 u1=(int)t&0xfc; \
237 u3&=0xfc; \
238 LL^= *(const DES_LONG *)(des_SP+0x500+u1); \
239 LL^= *(const DES_LONG *)(des_SP+0x700+u3); }
240#endif
241#ifdef DES_RISC2
242#define D_ENCRYPT(LL,R,S) { \
243 unsigned int u1,u2,s1,s2; \
244 LOAD_DATA(R,S,u,t,E0,E1,u1); \
245 u2=(int)u>>8L; \
246 u1=(int)u&0xfc; \
247 u2&=0xfc; \
248 t=ROTATE(t,4); \
249 LL^= *(const DES_LONG *)(des_SP +u1); \
250 LL^= *(const DES_LONG *)(des_SP+0x200+u2); \
251 s1=(int)(u>>16L); \
252 s2=(int)(u>>24L); \
253 s1&=0xfc; \
254 s2&=0xfc; \
255 LL^= *(const DES_LONG *)(des_SP+0x400+s1); \
256 LL^= *(const DES_LONG *)(des_SP+0x600+s2); \
257 u2=(int)t>>8L; \
258 u1=(int)t&0xfc; \
259 u2&=0xfc; \
260 LL^= *(const DES_LONG *)(des_SP+0x100+u1); \
261 LL^= *(const DES_LONG *)(des_SP+0x300+u2); \
262 s1=(int)(t>>16L); \
263 s2=(int)(t>>24L); \
264 s1&=0xfc; \
265 s2&=0xfc; \
266 LL^= *(const DES_LONG *)(des_SP+0x500+s1); \
267 LL^= *(const DES_LONG *)(des_SP+0x700+s2); }
268#endif
269#else
270#define D_ENCRYPT(LL,R,S) { \
271 LOAD_DATA_tmp(R,S,u,t,E0,E1); \
272 t=ROTATE(t,4); \
273 LL^= \
274 *(const DES_LONG *)(des_SP +((u )&0xfc))^ \
275 *(const DES_LONG *)(des_SP+0x200+((u>> 8L)&0xfc))^ \
276 *(const DES_LONG *)(des_SP+0x400+((u>>16L)&0xfc))^ \
277 *(const DES_LONG *)(des_SP+0x600+((u>>24L)&0xfc))^ \
278 *(const DES_LONG *)(des_SP+0x100+((t )&0xfc))^ \
279 *(const DES_LONG *)(des_SP+0x300+((t>> 8L)&0xfc))^ \
280 *(const DES_LONG *)(des_SP+0x500+((t>>16L)&0xfc))^ \
281 *(const DES_LONG *)(des_SP+0x700+((t>>24L)&0xfc)); }
282#endif
283
284#else /* original version */
285
286#if defined(DES_RISC1) || defined(DES_RISC2)
287#ifdef DES_RISC1
288#define D_ENCRYPT(LL,R,S) {\
289 unsigned int u1,u2,u3; \
290 LOAD_DATA(R,S,u,t,E0,E1,u1); \
291 u>>=2L; \
292 t=ROTATE(t,6); \
293 u2=(int)u>>8L; \
294 u1=(int)u&0x3f; \
295 u2&=0x3f; \
296 u>>=16L; \
297 LL^=DES_SPtrans[0][u1]; \
298 LL^=DES_SPtrans[2][u2]; \
299 u3=(int)u>>8L; \
300 u1=(int)u&0x3f; \
301 u3&=0x3f; \
302 LL^=DES_SPtrans[4][u1]; \
303 LL^=DES_SPtrans[6][u3]; \
304 u2=(int)t>>8L; \
305 u1=(int)t&0x3f; \
306 u2&=0x3f; \
307 t>>=16L; \
308 LL^=DES_SPtrans[1][u1]; \
309 LL^=DES_SPtrans[3][u2]; \
310 u3=(int)t>>8L; \
311 u1=(int)t&0x3f; \
312 u3&=0x3f; \
313 LL^=DES_SPtrans[5][u1]; \
314 LL^=DES_SPtrans[7][u3]; }
315#endif
316#ifdef DES_RISC2
317#define D_ENCRYPT(LL,R,S) {\
318 unsigned int u1,u2,s1,s2; \
319 LOAD_DATA(R,S,u,t,E0,E1,u1); \
320 u>>=2L; \
321 t=ROTATE(t,6); \
322 u2=(int)u>>8L; \
323 u1=(int)u&0x3f; \
324 u2&=0x3f; \
325 LL^=DES_SPtrans[0][u1]; \
326 LL^=DES_SPtrans[2][u2]; \
327 s1=(int)u>>16L; \
328 s2=(int)u>>24L; \
329 s1&=0x3f; \
330 s2&=0x3f; \
331 LL^=DES_SPtrans[4][s1]; \
332 LL^=DES_SPtrans[6][s2]; \
333 u2=(int)t>>8L; \
334 u1=(int)t&0x3f; \
335 u2&=0x3f; \
336 LL^=DES_SPtrans[1][u1]; \
337 LL^=DES_SPtrans[3][u2]; \
338 s1=(int)t>>16; \
339 s2=(int)t>>24L; \
340 s1&=0x3f; \
341 s2&=0x3f; \
342 LL^=DES_SPtrans[5][s1]; \
343 LL^=DES_SPtrans[7][s2]; }
344#endif
345
346#else
347
348#define D_ENCRYPT(LL,R,S) {\
349 LOAD_DATA_tmp(R,S,u,t,E0,E1); \
350 t=ROTATE(t,4); \
351 LL^=\
352 DES_SPtrans[0][(u>> 2L)&0x3f]^ \
353 DES_SPtrans[2][(u>>10L)&0x3f]^ \
354 DES_SPtrans[4][(u>>18L)&0x3f]^ \
355 DES_SPtrans[6][(u>>26L)&0x3f]^ \
356 DES_SPtrans[1][(t>> 2L)&0x3f]^ \
357 DES_SPtrans[3][(t>>10L)&0x3f]^ \
358 DES_SPtrans[5][(t>>18L)&0x3f]^ \
359 DES_SPtrans[7][(t>>26L)&0x3f]; }
360#endif
361#endif
362
363 /* IP and FP
364 * The problem is more of a geometric problem that random bit fiddling.
365 0 1 2 3 4 5 6 7 62 54 46 38 30 22 14 6
366 8 9 10 11 12 13 14 15 60 52 44 36 28 20 12 4
367 16 17 18 19 20 21 22 23 58 50 42 34 26 18 10 2
368 24 25 26 27 28 29 30 31 to 56 48 40 32 24 16 8 0
369
370 32 33 34 35 36 37 38 39 63 55 47 39 31 23 15 7
371 40 41 42 43 44 45 46 47 61 53 45 37 29 21 13 5
372 48 49 50 51 52 53 54 55 59 51 43 35 27 19 11 3
373 56 57 58 59 60 61 62 63 57 49 41 33 25 17 9 1
374
375 The output has been subject to swaps of the form
376 0 1 -> 3 1 but the odd and even bits have been put into
377 2 3 2 0
378 different words. The main trick is to remember that
379 t=((l>>size)^r)&(mask);
380 r^=t;
381 l^=(t<<size);
382 can be used to swap and move bits between words.
383
384 So l = 0 1 2 3 r = 16 17 18 19
385 4 5 6 7 20 21 22 23
386 8 9 10 11 24 25 26 27
387 12 13 14 15 28 29 30 31
388 becomes (for size == 2 and mask == 0x3333)
389 t = 2^16 3^17 -- -- l = 0 1 16 17 r = 2 3 18 19
390 6^20 7^21 -- -- 4 5 20 21 6 7 22 23
391 10^24 11^25 -- -- 8 9 24 25 10 11 24 25
392 14^28 15^29 -- -- 12 13 28 29 14 15 28 29
393
394 Thanks for hints from Richard Outerbridge - he told me IP&FP
395 could be done in 15 xor, 10 shifts and 5 ands.
396 When I finally started to think of the problem in 2D
397 I first got ~42 operations without xors. When I remembered
398 how to use xors :-) I got it to its final state.
399 */
400#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
401 (b)^=(t),\
402 (a)^=((t)<<(n)))
403
404#define IP(l,r) \
405 { \
406 register DES_LONG tt; \
407 PERM_OP(r,l,tt, 4,0x0f0f0f0fL); \
408 PERM_OP(l,r,tt,16,0x0000ffffL); \
409 PERM_OP(r,l,tt, 2,0x33333333L); \
410 PERM_OP(l,r,tt, 8,0x00ff00ffL); \
411 PERM_OP(r,l,tt, 1,0x55555555L); \
412 }
413
414#define FP(l,r) \
415 { \
416 register DES_LONG tt; \
417 PERM_OP(l,r,tt, 1,0x55555555L); \
418 PERM_OP(r,l,tt, 8,0x00ff00ffL); \
419 PERM_OP(l,r,tt, 2,0x33333333L); \
420 PERM_OP(r,l,tt,16,0x0000ffffL); \
421 PERM_OP(l,r,tt, 4,0x0f0f0f0fL); \
422 }
423
424OPENSSL_EXTERN const DES_LONG DES_SPtrans[8][64];
425
426void fcrypt_body(DES_LONG *out,DES_key_schedule *ks,
427 DES_LONG Eswap0, DES_LONG Eswap1);
428#endif
diff --git a/src/lib/libssl/src/fips/des/fips_set_key.c b/src/lib/libssl/src/fips/des/fips_set_key.c
new file mode 100644
index 0000000000..1490a3cf54
--- /dev/null
+++ b/src/lib/libssl/src/fips/des/fips_set_key.c
@@ -0,0 +1,417 @@
1/* crypto/des/set_key.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59/* set_key.c v 1.4 eay 24/9/91
60 * 1.4 Speed up by 400% :-)
61 * 1.3 added register declarations.
62 * 1.2 unrolled make_key_sched a bit more
63 * 1.1 added norm_expand_bits
64 * 1.0 First working version
65 */
66#include "fips_des_locl.h"
67#include <openssl/fips.h>
68
69#ifdef OPENSSL_FIPS
70
71OPENSSL_IMPLEMENT_GLOBAL(int,DES_check_key); /* defaults to false */
72
73static const unsigned char odd_parity[256]={
74 1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11, 13, 13, 14, 14,
75 16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31,
76 32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47,
77 49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,
78 64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,
79 81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,
80 97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110,
81112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127,
82128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143,
83145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158,
84161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174,
85176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191,
86193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206,
87208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223,
88224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239,
89241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254};
90
91void DES_set_odd_parity(DES_cblock *key)
92 {
93 int i;
94
95 for (i=0; i<DES_KEY_SZ; i++)
96 (*key)[i]=odd_parity[(*key)[i]];
97 }
98
99int DES_check_key_parity(const_DES_cblock *key)
100 {
101 int i;
102
103 for (i=0; i<DES_KEY_SZ; i++)
104 {
105 if ((*key)[i] != odd_parity[(*key)[i]])
106 return(0);
107 }
108 return(1);
109 }
110
111/* Weak and semi week keys as take from
112 * %A D.W. Davies
113 * %A W.L. Price
114 * %T Security for Computer Networks
115 * %I John Wiley & Sons
116 * %D 1984
117 * Many thanks to smb@ulysses.att.com (Steven Bellovin) for the reference
118 * (and actual cblock values).
119 */
120#define NUM_WEAK_KEY 16
121static DES_cblock weak_keys[NUM_WEAK_KEY]={
122 /* weak keys */
123 {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},
124 {0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE},
125 {0x1F,0x1F,0x1F,0x1F,0x0E,0x0E,0x0E,0x0E},
126 {0xE0,0xE0,0xE0,0xE0,0xF1,0xF1,0xF1,0xF1},
127 /* semi-weak keys */
128 {0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE},
129 {0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01},
130 {0x1F,0xE0,0x1F,0xE0,0x0E,0xF1,0x0E,0xF1},
131 {0xE0,0x1F,0xE0,0x1F,0xF1,0x0E,0xF1,0x0E},
132 {0x01,0xE0,0x01,0xE0,0x01,0xF1,0x01,0xF1},
133 {0xE0,0x01,0xE0,0x01,0xF1,0x01,0xF1,0x01},
134 {0x1F,0xFE,0x1F,0xFE,0x0E,0xFE,0x0E,0xFE},
135 {0xFE,0x1F,0xFE,0x1F,0xFE,0x0E,0xFE,0x0E},
136 {0x01,0x1F,0x01,0x1F,0x01,0x0E,0x01,0x0E},
137 {0x1F,0x01,0x1F,0x01,0x0E,0x01,0x0E,0x01},
138 {0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE},
139 {0xFE,0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1}};
140
141int DES_is_weak_key(const_DES_cblock *key)
142 {
143 int i;
144
145 for (i=0; i<NUM_WEAK_KEY; i++)
146 /* Added == 0 to comparison, I obviously don't run
147 * this section very often :-(, thanks to
148 * engineering@MorningStar.Com for the fix
149 * eay 93/06/29
150 * Another problem, I was comparing only the first 4
151 * bytes, 97/03/18 */
152 if (memcmp(weak_keys[i],key,sizeof(DES_cblock)) == 0) return(1);
153 return(0);
154 }
155
156/* NOW DEFINED IN des_local.h
157 * See ecb_encrypt.c for a pseudo description of these macros.
158 * #define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
159 * (b)^=(t),\
160 * (a)=((a)^((t)<<(n))))
161 */
162
163#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\
164 (a)=(a)^(t)^(t>>(16-(n))))
165
166static const DES_LONG des_skb[8][64]={
167 {
168 /* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
169 0x00000000L,0x00000010L,0x20000000L,0x20000010L,
170 0x00010000L,0x00010010L,0x20010000L,0x20010010L,
171 0x00000800L,0x00000810L,0x20000800L,0x20000810L,
172 0x00010800L,0x00010810L,0x20010800L,0x20010810L,
173 0x00000020L,0x00000030L,0x20000020L,0x20000030L,
174 0x00010020L,0x00010030L,0x20010020L,0x20010030L,
175 0x00000820L,0x00000830L,0x20000820L,0x20000830L,
176 0x00010820L,0x00010830L,0x20010820L,0x20010830L,
177 0x00080000L,0x00080010L,0x20080000L,0x20080010L,
178 0x00090000L,0x00090010L,0x20090000L,0x20090010L,
179 0x00080800L,0x00080810L,0x20080800L,0x20080810L,
180 0x00090800L,0x00090810L,0x20090800L,0x20090810L,
181 0x00080020L,0x00080030L,0x20080020L,0x20080030L,
182 0x00090020L,0x00090030L,0x20090020L,0x20090030L,
183 0x00080820L,0x00080830L,0x20080820L,0x20080830L,
184 0x00090820L,0x00090830L,0x20090820L,0x20090830L,
185 },{
186 /* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
187 0x00000000L,0x02000000L,0x00002000L,0x02002000L,
188 0x00200000L,0x02200000L,0x00202000L,0x02202000L,
189 0x00000004L,0x02000004L,0x00002004L,0x02002004L,
190 0x00200004L,0x02200004L,0x00202004L,0x02202004L,
191 0x00000400L,0x02000400L,0x00002400L,0x02002400L,
192 0x00200400L,0x02200400L,0x00202400L,0x02202400L,
193 0x00000404L,0x02000404L,0x00002404L,0x02002404L,
194 0x00200404L,0x02200404L,0x00202404L,0x02202404L,
195 0x10000000L,0x12000000L,0x10002000L,0x12002000L,
196 0x10200000L,0x12200000L,0x10202000L,0x12202000L,
197 0x10000004L,0x12000004L,0x10002004L,0x12002004L,
198 0x10200004L,0x12200004L,0x10202004L,0x12202004L,
199 0x10000400L,0x12000400L,0x10002400L,0x12002400L,
200 0x10200400L,0x12200400L,0x10202400L,0x12202400L,
201 0x10000404L,0x12000404L,0x10002404L,0x12002404L,
202 0x10200404L,0x12200404L,0x10202404L,0x12202404L,
203 },{
204 /* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
205 0x00000000L,0x00000001L,0x00040000L,0x00040001L,
206 0x01000000L,0x01000001L,0x01040000L,0x01040001L,
207 0x00000002L,0x00000003L,0x00040002L,0x00040003L,
208 0x01000002L,0x01000003L,0x01040002L,0x01040003L,
209 0x00000200L,0x00000201L,0x00040200L,0x00040201L,
210 0x01000200L,0x01000201L,0x01040200L,0x01040201L,
211 0x00000202L,0x00000203L,0x00040202L,0x00040203L,
212 0x01000202L,0x01000203L,0x01040202L,0x01040203L,
213 0x08000000L,0x08000001L,0x08040000L,0x08040001L,
214 0x09000000L,0x09000001L,0x09040000L,0x09040001L,
215 0x08000002L,0x08000003L,0x08040002L,0x08040003L,
216 0x09000002L,0x09000003L,0x09040002L,0x09040003L,
217 0x08000200L,0x08000201L,0x08040200L,0x08040201L,
218 0x09000200L,0x09000201L,0x09040200L,0x09040201L,
219 0x08000202L,0x08000203L,0x08040202L,0x08040203L,
220 0x09000202L,0x09000203L,0x09040202L,0x09040203L,
221 },{
222 /* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
223 0x00000000L,0x00100000L,0x00000100L,0x00100100L,
224 0x00000008L,0x00100008L,0x00000108L,0x00100108L,
225 0x00001000L,0x00101000L,0x00001100L,0x00101100L,
226 0x00001008L,0x00101008L,0x00001108L,0x00101108L,
227 0x04000000L,0x04100000L,0x04000100L,0x04100100L,
228 0x04000008L,0x04100008L,0x04000108L,0x04100108L,
229 0x04001000L,0x04101000L,0x04001100L,0x04101100L,
230 0x04001008L,0x04101008L,0x04001108L,0x04101108L,
231 0x00020000L,0x00120000L,0x00020100L,0x00120100L,
232 0x00020008L,0x00120008L,0x00020108L,0x00120108L,
233 0x00021000L,0x00121000L,0x00021100L,0x00121100L,
234 0x00021008L,0x00121008L,0x00021108L,0x00121108L,
235 0x04020000L,0x04120000L,0x04020100L,0x04120100L,
236 0x04020008L,0x04120008L,0x04020108L,0x04120108L,
237 0x04021000L,0x04121000L,0x04021100L,0x04121100L,
238 0x04021008L,0x04121008L,0x04021108L,0x04121108L,
239 },{
240 /* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
241 0x00000000L,0x10000000L,0x00010000L,0x10010000L,
242 0x00000004L,0x10000004L,0x00010004L,0x10010004L,
243 0x20000000L,0x30000000L,0x20010000L,0x30010000L,
244 0x20000004L,0x30000004L,0x20010004L,0x30010004L,
245 0x00100000L,0x10100000L,0x00110000L,0x10110000L,
246 0x00100004L,0x10100004L,0x00110004L,0x10110004L,
247 0x20100000L,0x30100000L,0x20110000L,0x30110000L,
248 0x20100004L,0x30100004L,0x20110004L,0x30110004L,
249 0x00001000L,0x10001000L,0x00011000L,0x10011000L,
250 0x00001004L,0x10001004L,0x00011004L,0x10011004L,
251 0x20001000L,0x30001000L,0x20011000L,0x30011000L,
252 0x20001004L,0x30001004L,0x20011004L,0x30011004L,
253 0x00101000L,0x10101000L,0x00111000L,0x10111000L,
254 0x00101004L,0x10101004L,0x00111004L,0x10111004L,
255 0x20101000L,0x30101000L,0x20111000L,0x30111000L,
256 0x20101004L,0x30101004L,0x20111004L,0x30111004L,
257 },{
258 /* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
259 0x00000000L,0x08000000L,0x00000008L,0x08000008L,
260 0x00000400L,0x08000400L,0x00000408L,0x08000408L,
261 0x00020000L,0x08020000L,0x00020008L,0x08020008L,
262 0x00020400L,0x08020400L,0x00020408L,0x08020408L,
263 0x00000001L,0x08000001L,0x00000009L,0x08000009L,
264 0x00000401L,0x08000401L,0x00000409L,0x08000409L,
265 0x00020001L,0x08020001L,0x00020009L,0x08020009L,
266 0x00020401L,0x08020401L,0x00020409L,0x08020409L,
267 0x02000000L,0x0A000000L,0x02000008L,0x0A000008L,
268 0x02000400L,0x0A000400L,0x02000408L,0x0A000408L,
269 0x02020000L,0x0A020000L,0x02020008L,0x0A020008L,
270 0x02020400L,0x0A020400L,0x02020408L,0x0A020408L,
271 0x02000001L,0x0A000001L,0x02000009L,0x0A000009L,
272 0x02000401L,0x0A000401L,0x02000409L,0x0A000409L,
273 0x02020001L,0x0A020001L,0x02020009L,0x0A020009L,
274 0x02020401L,0x0A020401L,0x02020409L,0x0A020409L,
275 },{
276 /* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
277 0x00000000L,0x00000100L,0x00080000L,0x00080100L,
278 0x01000000L,0x01000100L,0x01080000L,0x01080100L,
279 0x00000010L,0x00000110L,0x00080010L,0x00080110L,
280 0x01000010L,0x01000110L,0x01080010L,0x01080110L,
281 0x00200000L,0x00200100L,0x00280000L,0x00280100L,
282 0x01200000L,0x01200100L,0x01280000L,0x01280100L,
283 0x00200010L,0x00200110L,0x00280010L,0x00280110L,
284 0x01200010L,0x01200110L,0x01280010L,0x01280110L,
285 0x00000200L,0x00000300L,0x00080200L,0x00080300L,
286 0x01000200L,0x01000300L,0x01080200L,0x01080300L,
287 0x00000210L,0x00000310L,0x00080210L,0x00080310L,
288 0x01000210L,0x01000310L,0x01080210L,0x01080310L,
289 0x00200200L,0x00200300L,0x00280200L,0x00280300L,
290 0x01200200L,0x01200300L,0x01280200L,0x01280300L,
291 0x00200210L,0x00200310L,0x00280210L,0x00280310L,
292 0x01200210L,0x01200310L,0x01280210L,0x01280310L,
293 },{
294 /* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
295 0x00000000L,0x04000000L,0x00040000L,0x04040000L,
296 0x00000002L,0x04000002L,0x00040002L,0x04040002L,
297 0x00002000L,0x04002000L,0x00042000L,0x04042000L,
298 0x00002002L,0x04002002L,0x00042002L,0x04042002L,
299 0x00000020L,0x04000020L,0x00040020L,0x04040020L,
300 0x00000022L,0x04000022L,0x00040022L,0x04040022L,
301 0x00002020L,0x04002020L,0x00042020L,0x04042020L,
302 0x00002022L,0x04002022L,0x00042022L,0x04042022L,
303 0x00000800L,0x04000800L,0x00040800L,0x04040800L,
304 0x00000802L,0x04000802L,0x00040802L,0x04040802L,
305 0x00002800L,0x04002800L,0x00042800L,0x04042800L,
306 0x00002802L,0x04002802L,0x00042802L,0x04042802L,
307 0x00000820L,0x04000820L,0x00040820L,0x04040820L,
308 0x00000822L,0x04000822L,0x00040822L,0x04040822L,
309 0x00002820L,0x04002820L,0x00042820L,0x04042820L,
310 0x00002822L,0x04002822L,0x00042822L,0x04042822L,
311 }};
312
313int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule)
314 {
315 if (FIPS_selftest_failed())
316 return -3;
317 if (DES_check_key)
318 {
319 return DES_set_key_checked(key, schedule);
320 }
321 else
322 {
323 DES_set_key_unchecked(key, schedule);
324 return 0;
325 }
326 }
327
328/* return 0 if key parity is odd (correct),
329 * return -1 if key parity error,
330 * return -2 if illegal weak key.
331 */
332int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule)
333 {
334 if (!DES_check_key_parity(key))
335 return(-1);
336 if (DES_is_weak_key(key))
337 return(-2);
338 if (FIPS_selftest_failed())
339 return -3;
340
341 DES_set_key_unchecked(key, schedule);
342 return 0;
343 }
344
345void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule)
346 {
347 static int shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0};
348 register DES_LONG c,d,t,s,t2;
349 register const unsigned char *in;
350 register DES_LONG *k;
351 register int i;
352
353#ifdef OPENBSD_DEV_CRYPTO
354 memcpy(schedule->key,key,sizeof schedule->key);
355 schedule->session=NULL;
356#endif
357 k = &schedule->ks->deslong[0];
358 in = &(*key)[0];
359
360 c2l(in,c);
361 c2l(in,d);
362
363 /* do PC1 in 47 simple operations :-)
364 * Thanks to John Fletcher (john_fletcher@lccmail.ocf.llnl.gov)
365 * for the inspiration. :-) */
366 PERM_OP (d,c,t,4,0x0f0f0f0fL);
367 HPERM_OP(c,t,-2,0xcccc0000L);
368 HPERM_OP(d,t,-2,0xcccc0000L);
369 PERM_OP (d,c,t,1,0x55555555L);
370 PERM_OP (c,d,t,8,0x00ff00ffL);
371 PERM_OP (d,c,t,1,0x55555555L);
372 d= (((d&0x000000ffL)<<16L)| (d&0x0000ff00L) |
373 ((d&0x00ff0000L)>>16L)|((c&0xf0000000L)>>4L));
374 c&=0x0fffffffL;
375
376 for (i=0; i<ITERATIONS; i++)
377 {
378 if (shifts2[i])
379 { c=((c>>2L)|(c<<26L)); d=((d>>2L)|(d<<26L)); }
380 else
381 { c=((c>>1L)|(c<<27L)); d=((d>>1L)|(d<<27L)); }
382 c&=0x0fffffffL;
383 d&=0x0fffffffL;
384 /* could be a few less shifts but I am to lazy at this
385 * point in time to investigate */
386 s= des_skb[0][ (c )&0x3f ]|
387 des_skb[1][((c>> 6L)&0x03)|((c>> 7L)&0x3c)]|
388 des_skb[2][((c>>13L)&0x0f)|((c>>14L)&0x30)]|
389 des_skb[3][((c>>20L)&0x01)|((c>>21L)&0x06) |
390 ((c>>22L)&0x38)];
391 t= des_skb[4][ (d )&0x3f ]|
392 des_skb[5][((d>> 7L)&0x03)|((d>> 8L)&0x3c)]|
393 des_skb[6][ (d>>15L)&0x3f ]|
394 des_skb[7][((d>>21L)&0x0f)|((d>>22L)&0x30)];
395
396 /* table contained 0213 4657 */
397 t2=((t<<16L)|(s&0x0000ffffL))&0xffffffffL;
398 *(k++)=ROTATE(t2,30)&0xffffffffL;
399
400 t2=((s>>16L)|(t&0xffff0000L));
401 *(k++)=ROTATE(t2,26)&0xffffffffL;
402 }
403 }
404
405int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule)
406 {
407 return(DES_set_key(key,schedule));
408 }
409/*
410#undef des_fixup_key_parity
411void des_fixup_key_parity(des_cblock *key)
412 {
413 des_set_odd_parity(key);
414 }
415*/
416
417#endif /* def OPENSSL_FIPS */
diff --git a/src/lib/libssl/src/fips/dh/fingerprint.sha1 b/src/lib/libssl/src/fips/dh/fingerprint.sha1
new file mode 100644
index 0000000000..6896d38649
--- /dev/null
+++ b/src/lib/libssl/src/fips/dh/fingerprint.sha1
@@ -0,0 +1,3 @@
1HMAC-SHA1(fips_dh_check.c)= 63347e2007e224381d4a7b6d871633889de72cf3
2HMAC-SHA1(fips_dh_gen.c)= 93fe69b758ca9d70d70cda1c57fff4eb5c668e85
3HMAC-SHA1(fips_dh_key.c)= 7bf23b329a776953bbe7c30ebd7f9faf5249ddbe
diff --git a/src/lib/libssl/src/fips/dsa/fingerprint.sha1 b/src/lib/libssl/src/fips/dsa/fingerprint.sha1
new file mode 100644
index 0000000000..4a89db5cf3
--- /dev/null
+++ b/src/lib/libssl/src/fips/dsa/fingerprint.sha1
@@ -0,0 +1,3 @@
1HMAC-SHA1(fips_dsa_ossl.c)= d5f718695397fe56d6bb46f7c410794cb895e206
2HMAC-SHA1(fips_dsa_gen.c)= c252db14699f3ff641db052311da7d7521569c53
3HMAC-SHA1(fips_dsa_selftest.c)= 4bfc5d3a6b977527b053f3a03d0760a822a26135
diff --git a/src/lib/libssl/src/fips/fingerprint.sha1 b/src/lib/libssl/src/fips/fingerprint.sha1
new file mode 100644
index 0000000000..1af4792eb1
--- /dev/null
+++ b/src/lib/libssl/src/fips/fingerprint.sha1
@@ -0,0 +1,4 @@
1HMAC-SHA1(fips.c)= 4eef19c535c1f3deacdf93eb806479ea3b374115
2HMAC-SHA1(fips_err_wrapper.c)= d3e2be316062510312269e98f964cb87e7577898
3HMAC-SHA1(fips.h)= fbedad5dbd8986ddd521ea576bf2a20e6881540a
4HMAC-SHA1(fips_err.h)= 4a73f2a88e206f1f88edfd9b26609a0eed818491
diff --git a/src/lib/libssl/src/fips/fips_check_sha1 b/src/lib/libssl/src/fips/fips_check_sha1
new file mode 100755
index 0000000000..d60404a51c
--- /dev/null
+++ b/src/lib/libssl/src/fips/fips_check_sha1
@@ -0,0 +1,8 @@
1#!/bin/sh
2
3FP=$1
4shift
5
6egrep 'define OPENSSL_FIPS' $TOP/include/openssl/opensslconf.h > /dev/null || exit 0
7
8$TOP/fips/sha1/fips_standalone_sha1 $@ | diff -w $FP - || { echo; echo "*** Your source code does not match the FIPS validated source ***"; echo; exit 1; }
diff --git a/src/lib/libssl/src/fips/fips_err.h b/src/lib/libssl/src/fips/fips_err.h
new file mode 100644
index 0000000000..d643c9f55f
--- /dev/null
+++ b/src/lib/libssl/src/fips/fips_err.h
@@ -0,0 +1,118 @@
1/* fips/fips_err.h */
2/* ====================================================================
3 * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * 3. All advertising materials mentioning features or use of this
18 * software must display the following acknowledgment:
19 * "This product includes software developed by the OpenSSL Project
20 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
21 *
22 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23 * endorse or promote products derived from this software without
24 * prior written permission. For written permission, please contact
25 * openssl-core@OpenSSL.org.
26 *
27 * 5. Products derived from this software may not be called "OpenSSL"
28 * nor may "OpenSSL" appear in their names without prior written
29 * permission of the OpenSSL Project.
30 *
31 * 6. Redistributions of any form whatsoever must retain the following
32 * acknowledgment:
33 * "This product includes software developed by the OpenSSL Project
34 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
35 *
36 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47 * OF THE POSSIBILITY OF SUCH DAMAGE.
48 * ====================================================================
49 *
50 * This product includes cryptographic software written by Eric Young
51 * (eay@cryptsoft.com). This product includes software written by Tim
52 * Hudson (tjh@cryptsoft.com).
53 *
54 */
55
56/* NOTE: this file was auto generated by the mkerr.pl script: any changes
57 * made to it will be overwritten when the script next updates this file,
58 * only reason strings will be preserved.
59 */
60
61#include <stdio.h>
62#include <openssl/err.h>
63#include <openssl/fips.h>
64
65/* BEGIN ERROR CODES */
66#ifndef OPENSSL_NO_ERR
67static ERR_STRING_DATA FIPS_str_functs[]=
68 {
69{ERR_PACK(0,FIPS_F_DSA_DO_SIGN,0), "DSA_do_sign"},
70{ERR_PACK(0,FIPS_F_DSA_DO_VERIFY,0), "DSA_do_verify"},
71{ERR_PACK(0,FIPS_F_DSA_GENERATE_PARAMETERS,0), "DSA_generate_parameters"},
72{ERR_PACK(0,FIPS_F_FIPS_CHECK_DSA,0), "FIPS_CHECK_DSA"},
73{ERR_PACK(0,FIPS_F_FIPS_CHECK_EXE,0), "FIPS_CHECK_EXE"},
74{ERR_PACK(0,FIPS_F_FIPS_CHECK_RSA,0), "FIPS_CHECK_RSA"},
75{ERR_PACK(0,FIPS_F_FIPS_DSA_CHECK,0), "FIPS_dsa_check"},
76{ERR_PACK(0,FIPS_F_FIPS_MODE_SET,0), "FIPS_mode_set"},
77{ERR_PACK(0,FIPS_F_FIPS_SELFTEST_AES,0), "FIPS_selftest_aes"},
78{ERR_PACK(0,FIPS_F_FIPS_SELFTEST_DES,0), "FIPS_selftest_des"},
79{ERR_PACK(0,FIPS_F_FIPS_SELFTEST_DSA,0), "FIPS_selftest_dsa"},
80{ERR_PACK(0,FIPS_F_FIPS_SELFTEST_RSA,0), "FIPS_selftest_rsa"},
81{ERR_PACK(0,FIPS_F_FIPS_SELFTEST_SHA1,0), "FIPS_selftest_sha1"},
82{ERR_PACK(0,FIPS_F_HASH_FINAL,0), "HASH_FINAL"},
83{ERR_PACK(0,FIPS_F_DH_GENERATE_PARAMETERS,0), "DH_generate_parameters"},
84{ERR_PACK(0,FIPS_F_RSA_EAY_PUBLIC_ENCRYPT,0), "RSA_EAY_PUBLIC_ENCRYPT"},
85{ERR_PACK(0,FIPS_F_RSA_GENERATE_KEY,0), "RSA_generate_key"},
86{ERR_PACK(0,FIPS_F_SSLEAY_RAND_BYTES,0), "SSLEAY_RAND_BYTES"},
87{0,NULL}
88 };
89
90static ERR_STRING_DATA FIPS_str_reasons[]=
91 {
92{FIPS_R_CANNOT_READ_EXE ,"cannot read exe"},
93{FIPS_R_CANNOT_READ_EXE_DIGEST ,"cannot read exe digest"},
94{FIPS_R_EXE_DIGEST_DOES_NOT_MATCH ,"exe digest does not match"},
95{FIPS_R_FIPS_MODE_ALREADY_SET ,"fips mode already set"},
96{FIPS_R_FIPS_SELFTEST_FAILED ,"fips selftest failed"},
97{FIPS_R_NON_FIPS_METHOD ,"non fips method"},
98{FIPS_R_PAIRWISE_TEST_FAILED ,"pairwise test failed"},
99{FIPS_R_SELFTEST_FAILED ,"selftest failed"},
100{0,NULL}
101 };
102
103#endif
104
105void ERR_load_FIPS_strings(void)
106 {
107 static int init=1;
108
109 if (init)
110 {
111 init=0;
112#ifndef OPENSSL_NO_ERR
113 ERR_load_strings(ERR_LIB_FIPS,FIPS_str_functs);
114 ERR_load_strings(ERR_LIB_FIPS,FIPS_str_reasons);
115#endif
116
117 }
118 }
diff --git a/src/lib/libssl/src/fips/fips_err_wrapper.c b/src/lib/libssl/src/fips/fips_err_wrapper.c
new file mode 100644
index 0000000000..09f11748f6
--- /dev/null
+++ b/src/lib/libssl/src/fips/fips_err_wrapper.c
@@ -0,0 +1,7 @@
1#include <openssl/opensslconf.h>
2
3#ifdef OPENSSL_FIPS
4# include "fips_err.h"
5#else
6static void *dummy=&dummy;
7#endif
diff --git a/src/lib/libssl/src/fips/fips_make_sha1 b/src/lib/libssl/src/fips/fips_make_sha1
new file mode 100755
index 0000000000..a326ea3a07
--- /dev/null
+++ b/src/lib/libssl/src/fips/fips_make_sha1
@@ -0,0 +1,30 @@
1#!/bin/sh
2
3S=`pwd`/fips/sha1/fips_standalone_sha1
4
5cd fips/sha1
6$S fips_sha1dgst.c fips_sha1_selftest.c asm/sx86-elf.s fips_standalone_sha1.c fips_sha_locl.h fips_md32_common.h > standalone.sha1
7
8cd ..
9$S fips.c fips_err_wrapper.c fips.h fips_err.h > fingerprint.sha1
10
11cd rand
12$S fips_rand.c fips_rand.h > fingerprint.sha1
13
14cd ../sha1
15$S fips_sha1dgst.c fips_sha1_selftest.c asm/sx86-elf.s fips_sha_locl.h fips_md32_common.h > fingerprint.sha1
16
17cd ../aes
18$S fips_aes_core.c fips_aes_selftest.c fips_aes_locl.h > fingerprint.sha1
19
20cd ../dsa
21$S fips_dsa_ossl.c fips_dsa_gen.c fips_dsa_selftest.c > fingerprint.sha1
22
23cd ../des
24$S fips_des_enc.c asm/fips-dx86-elf.s fips_des_selftest.c fips_set_key.c fips_des_locl.h > fingerprint.sha1
25
26cd ../rsa
27$S fips_rsa_eay.c fips_rsa_gen.c fips_rsa_selftest.c > fingerprint.sha1
28
29cd ../dh
30$S fips_dh_check.c fips_dh_gen.c fips_dh_key.c > fingerprint.sha1
diff --git a/src/lib/libssl/src/fips/rand/fingerprint.sha1 b/src/lib/libssl/src/fips/rand/fingerprint.sha1
new file mode 100644
index 0000000000..0b1d91104f
--- /dev/null
+++ b/src/lib/libssl/src/fips/rand/fingerprint.sha1
@@ -0,0 +1,2 @@
1HMAC-SHA1(fips_rand.c)= 5dc4aa11c0377a049bee01d427e5b0bc3dd9f10f
2HMAC-SHA1(fips_rand.h)= 0567b1fe9b0efe034a537f335659b0b681809791
diff --git a/src/lib/libssl/src/fips/rsa/fingerprint.sha1 b/src/lib/libssl/src/fips/rsa/fingerprint.sha1
new file mode 100644
index 0000000000..569434700c
--- /dev/null
+++ b/src/lib/libssl/src/fips/rsa/fingerprint.sha1
@@ -0,0 +1,3 @@
1HMAC-SHA1(fips_rsa_eay.c)= eabab59a2f11f3da4c21e1144efe1684f5e8f1ec
2HMAC-SHA1(fips_rsa_gen.c)= 4bbc0afcade1ac53f469aaa89f84c413678254bf
3HMAC-SHA1(fips_rsa_selftest.c)= 70553a5212e86f65b068564946d39b738a201e22
diff --git a/src/lib/libssl/src/fips/sha1/Makefile b/src/lib/libssl/src/fips/sha1/Makefile
new file mode 100644
index 0000000000..1fa25b32be
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/Makefile
@@ -0,0 +1,157 @@
1#
2# SSLeay/fips/sha1/Makefile
3#
4
5DIR= sha1
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= fips_sha1test.c
22TESTDATA= sha1vectors.txt sha1hashes.txt
23APPS=
24EXE= fips_standalone_sha1
25
26LIB=$(TOP)/libcrypto.a
27LIBSRC=fips_sha1dgst.c fips_sha1_selftest.c asm/sx86-elf.s
28LIBOBJ=fips_sha1dgst.o fips_sha1_selftest.o $(FIPS_SHA1_ASM_OBJ)
29
30SRC= $(LIBSRC) fips_standalone_sha1.c
31
32EXHEADER=
33HEADER= $(EXHEADER) fips_sha_locl.h fips_md32_common.h
34
35ALL= $(GENERAL) $(SRC) $(HEADER)
36
37top:
38 (cd $(TOP); $(MAKE) DIRS=fips SDIRS=$(DIR) sub_all)
39
40all: check_standalone check lib
41
42check:
43 TOP=`pwd`/$(TOP) ../fips_check_sha1 fingerprint.sha1 $(LIBSRC) $(HEADER)
44
45check_standalone: fips_standalone_sha1
46 TOP=`pwd`/$(TOP) ../fips_check_sha1 standalone.sha1 $(SRC) $(HEADER)
47
48lib: $(LIBOBJ)
49 $(AR) $(LIB) $(LIBOBJ)
50 $(RANLIB) $(LIB) || echo Never mind.
51 @sleep 2; touch lib
52
53fips_standalone_sha1: fips_standalone_sha1.o fips_sha1dgst.o $(FIPS_SHA1_ASM_OBJ)
54 $(CC) -o fips_standalone_sha1 $(CFLAGS) fips_standalone_sha1.o \
55 fips_sha1dgst.o $(FIPS_SHA1_ASM_OBJ)
56
57files:
58 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
59
60links:
61 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/include/openssl $(EXHEADER)
62 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TEST)
63 cp $(TESTDATA) $(TOP)/test
64 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
65
66install:
67 @headerlist="$(EXHEADER)"; for i in $$headerlist; \
68 do \
69 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
70 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
71 done
72
73tags:
74 ctags $(SRC)
75
76tests:
77
78top_fips_sha1test:
79 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=$(DIR) TARGET=fips_sha1test sub_target)
80
81fips_sha1test: fips_sha1test.o $(TOP)/libcrypto.a
82 $(CC) $(CFLAGS) -o fips_sha1test fips_sha1test.o $(PEX_LIBS) $(TOP)/libcrypto.a $(EX_LIBS)
83 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a fips_sha1test
84
85fips_test: top_fips_sha1test
86 -rm -rf ../testvectors/sha1/rsp
87 mkdir ../testvectors/sha1/rsp
88 ./fips_sha1test ../testvectors/sha1/req/sha.req > ../testvectors/sha1/rsp/sha.rsp
89
90lint:
91 lint -DLINT $(INCLUDES) $(SRC)>fluff
92
93depend:
94 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(SRC) $(TEST)
95
96dclean:
97 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
98 mv -f Makefile.new $(MAKEFILE)
99
100clean:
101 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
102
103# DO NOT DELETE THIS LINE -- make depend depends on it.
104
105fips_sha1_selftest.o: ../../include/openssl/bio.h
106fips_sha1_selftest.o: ../../include/openssl/crypto.h
107fips_sha1_selftest.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
108fips_sha1_selftest.o: ../../include/openssl/fips.h
109fips_sha1_selftest.o: ../../include/openssl/lhash.h
110fips_sha1_selftest.o: ../../include/openssl/opensslconf.h
111fips_sha1_selftest.o: ../../include/openssl/opensslv.h
112fips_sha1_selftest.o: ../../include/openssl/safestack.h
113fips_sha1_selftest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
114fips_sha1_selftest.o: ../../include/openssl/symhacks.h fips_sha1_selftest.c
115fips_sha1dgst.o: ../../include/openssl/opensslconf.h
116fips_sha1dgst.o: ../../include/openssl/opensslv.h fips_sha1dgst.c
117fips_sha1test.o: ../../e_os.h ../../include/openssl/bio.h
118fips_sha1test.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
119fips_sha1test.o: ../../include/openssl/err.h ../../include/openssl/fips.h
120fips_sha1test.o: ../../include/openssl/lhash.h
121fips_sha1test.o: ../../include/openssl/opensslconf.h
122fips_sha1test.o: ../../include/openssl/opensslv.h
123fips_sha1test.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
124fips_sha1test.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
125fips_sha1test.o: fips_sha1test.c
126fips_standalone_sha1.o: ../../include/openssl/aes.h
127fips_standalone_sha1.o: ../../include/openssl/asn1.h
128fips_standalone_sha1.o: ../../include/openssl/bio.h
129fips_standalone_sha1.o: ../../include/openssl/blowfish.h
130fips_standalone_sha1.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
131fips_standalone_sha1.o: ../../include/openssl/crypto.h
132fips_standalone_sha1.o: ../../include/openssl/des.h
133fips_standalone_sha1.o: ../../include/openssl/des_old.h
134fips_standalone_sha1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
135fips_standalone_sha1.o: ../../include/openssl/e_os2.h
136fips_standalone_sha1.o: ../../include/openssl/evp.h
137fips_standalone_sha1.o: ../../include/openssl/hmac.h
138fips_standalone_sha1.o: ../../include/openssl/idea.h
139fips_standalone_sha1.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
140fips_standalone_sha1.o: ../../include/openssl/md5.h
141fips_standalone_sha1.o: ../../include/openssl/mdc2.h
142fips_standalone_sha1.o: ../../include/openssl/obj_mac.h
143fips_standalone_sha1.o: ../../include/openssl/objects.h
144fips_standalone_sha1.o: ../../include/openssl/opensslconf.h
145fips_standalone_sha1.o: ../../include/openssl/opensslv.h
146fips_standalone_sha1.o: ../../include/openssl/ossl_typ.h
147fips_standalone_sha1.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
148fips_standalone_sha1.o: ../../include/openssl/rc5.h
149fips_standalone_sha1.o: ../../include/openssl/ripemd.h
150fips_standalone_sha1.o: ../../include/openssl/rsa.h
151fips_standalone_sha1.o: ../../include/openssl/safestack.h
152fips_standalone_sha1.o: ../../include/openssl/sha.h
153fips_standalone_sha1.o: ../../include/openssl/stack.h
154fips_standalone_sha1.o: ../../include/openssl/symhacks.h
155fips_standalone_sha1.o: ../../include/openssl/ui.h
156fips_standalone_sha1.o: ../../include/openssl/ui_compat.h
157fips_standalone_sha1.o: fips_standalone_sha1.c
diff --git a/src/lib/libssl/src/fips/sha1/asm/sx86-elf.s b/src/lib/libssl/src/fips/sha1/asm/sx86-elf.s
new file mode 100644
index 0000000000..2a4d98791d
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/asm/sx86-elf.s
@@ -0,0 +1,1568 @@
1
2
3
4
5
6
7 .file "sha1-586.s"
8 .version "01.01"
9gcc2_compiled.:
10.text
11 .align 16
12.globl sha1_block_asm_data_order
13 .type sha1_block_asm_data_order,@function
14sha1_block_asm_data_order:
15 movl 12(%esp), %ecx
16 pushl %esi
17 sall $6, %ecx
18 movl 12(%esp), %esi
19 pushl %ebp
20 addl %esi, %ecx
21 pushl %ebx
22 movl 16(%esp), %ebp
23 pushl %edi
24 movl 12(%ebp), %edx
25 subl $108, %esp
26 movl 16(%ebp), %edi
27 movl 8(%ebp), %ebx
28 movl %ecx, 68(%esp)
29
30.L000start:
31
32 movl (%esi), %eax
33 movl 4(%esi), %ecx
34
35 xchgb %al, %ah
36 rorl $16, %eax
37 xchgb %al, %ah
38
39 xchgb %cl, %ch
40 rorl $16, %ecx
41 xchgb %cl, %ch
42 movl %eax, (%esp)
43 movl %ecx, 4(%esp)
44 movl 8(%esi), %eax
45 movl 12(%esi), %ecx
46
47 xchgb %al, %ah
48 rorl $16, %eax
49 xchgb %al, %ah
50
51 xchgb %cl, %ch
52 rorl $16, %ecx
53 xchgb %cl, %ch
54 movl %eax, 8(%esp)
55 movl %ecx, 12(%esp)
56 movl 16(%esi), %eax
57 movl 20(%esi), %ecx
58
59 xchgb %al, %ah
60 rorl $16, %eax
61 xchgb %al, %ah
62
63 xchgb %cl, %ch
64 rorl $16, %ecx
65 xchgb %cl, %ch
66 movl %eax, 16(%esp)
67 movl %ecx, 20(%esp)
68 movl 24(%esi), %eax
69 movl 28(%esi), %ecx
70
71 xchgb %al, %ah
72 rorl $16, %eax
73 xchgb %al, %ah
74
75 xchgb %cl, %ch
76 rorl $16, %ecx
77 xchgb %cl, %ch
78 movl %eax, 24(%esp)
79 movl %ecx, 28(%esp)
80 movl 32(%esi), %eax
81 movl 36(%esi), %ecx
82
83 xchgb %al, %ah
84 rorl $16, %eax
85 xchgb %al, %ah
86
87 xchgb %cl, %ch
88 rorl $16, %ecx
89 xchgb %cl, %ch
90 movl %eax, 32(%esp)
91 movl %ecx, 36(%esp)
92 movl 40(%esi), %eax
93 movl 44(%esi), %ecx
94
95 xchgb %al, %ah
96 rorl $16, %eax
97 xchgb %al, %ah
98
99 xchgb %cl, %ch
100 rorl $16, %ecx
101 xchgb %cl, %ch
102 movl %eax, 40(%esp)
103 movl %ecx, 44(%esp)
104 movl 48(%esi), %eax
105 movl 52(%esi), %ecx
106
107 xchgb %al, %ah
108 rorl $16, %eax
109 xchgb %al, %ah
110
111 xchgb %cl, %ch
112 rorl $16, %ecx
113 xchgb %cl, %ch
114 movl %eax, 48(%esp)
115 movl %ecx, 52(%esp)
116 movl 56(%esi), %eax
117 movl 60(%esi), %ecx
118
119 xchgb %al, %ah
120 rorl $16, %eax
121 xchgb %al, %ah
122
123 xchgb %cl, %ch
124 rorl $16, %ecx
125 xchgb %cl, %ch
126 movl %eax, 56(%esp)
127 movl %ecx, 60(%esp)
128
129
130 movl %esi, 132(%esp)
131.L001shortcut:
132
133
134 movl (%ebp), %eax
135 movl 4(%ebp), %ecx
136
137 movl %eax, %ebp
138 movl %ebx, %esi
139 roll $5, %ebp
140 xorl %edx, %esi
141 andl %ecx, %esi
142 rorl $2, %ecx
143 addl %edi, %ebp
144 movl (%esp), %edi
145 xorl %edx, %esi
146 leal 1518500249(%ebp,%edi,1),%ebp
147 addl %ebp, %esi
148
149 movl %esi, %ebp
150 movl %ecx, %edi
151 roll $5, %ebp
152 xorl %ebx, %edi
153 andl %eax, %edi
154 rorl $2, %eax
155 addl %edx, %ebp
156 movl 4(%esp), %edx
157 xorl %ebx, %edi
158 leal 1518500249(%ebp,%edx,1),%ebp
159 addl %ebp, %edi
160
161 movl %edi, %ebp
162 movl %eax, %edx
163 roll $5, %ebp
164 xorl %ecx, %edx
165 andl %esi, %edx
166 rorl $2, %esi
167 addl %ebx, %ebp
168 movl 8(%esp), %ebx
169 xorl %ecx, %edx
170 leal 1518500249(%ebp,%ebx,1),%ebp
171 addl %ebp, %edx
172
173 movl %edx, %ebp
174 movl %esi, %ebx
175 roll $5, %ebp
176 xorl %eax, %ebx
177 andl %edi, %ebx
178 rorl $2, %edi
179 addl %ecx, %ebp
180 movl 12(%esp), %ecx
181 xorl %eax, %ebx
182 leal 1518500249(%ebp,%ecx,1),%ebp
183 addl %ebp, %ebx
184
185 movl %ebx, %ebp
186 movl %edi, %ecx
187 roll $5, %ebp
188 xorl %esi, %ecx
189 andl %edx, %ecx
190 rorl $2, %edx
191 addl %eax, %ebp
192 movl 16(%esp), %eax
193 xorl %esi, %ecx
194 leal 1518500249(%ebp,%eax,1),%ebp
195 addl %ebp, %ecx
196
197 movl %ecx, %ebp
198 movl %edx, %eax
199 roll $5, %ebp
200 xorl %edi, %eax
201 andl %ebx, %eax
202 rorl $2, %ebx
203 addl %esi, %ebp
204 movl 20(%esp), %esi
205 xorl %edi, %eax
206 leal 1518500249(%ebp,%esi,1),%ebp
207 addl %ebp, %eax
208
209 movl %eax, %ebp
210 movl %ebx, %esi
211 roll $5, %ebp
212 xorl %edx, %esi
213 andl %ecx, %esi
214 rorl $2, %ecx
215 addl %edi, %ebp
216 movl 24(%esp), %edi
217 xorl %edx, %esi
218 leal 1518500249(%ebp,%edi,1),%ebp
219 addl %ebp, %esi
220
221 movl %esi, %ebp
222 movl %ecx, %edi
223 roll $5, %ebp
224 xorl %ebx, %edi
225 andl %eax, %edi
226 rorl $2, %eax
227 addl %edx, %ebp
228 movl 28(%esp), %edx
229 xorl %ebx, %edi
230 leal 1518500249(%ebp,%edx,1),%ebp
231 addl %ebp, %edi
232
233 movl %edi, %ebp
234 movl %eax, %edx
235 roll $5, %ebp
236 xorl %ecx, %edx
237 andl %esi, %edx
238 rorl $2, %esi
239 addl %ebx, %ebp
240 movl 32(%esp), %ebx
241 xorl %ecx, %edx
242 leal 1518500249(%ebp,%ebx,1),%ebp
243 addl %ebp, %edx
244
245 movl %edx, %ebp
246 movl %esi, %ebx
247 roll $5, %ebp
248 xorl %eax, %ebx
249 andl %edi, %ebx
250 rorl $2, %edi
251 addl %ecx, %ebp
252 movl 36(%esp), %ecx
253 xorl %eax, %ebx
254 leal 1518500249(%ebp,%ecx,1),%ebp
255 addl %ebp, %ebx
256
257 movl %ebx, %ebp
258 movl %edi, %ecx
259 roll $5, %ebp
260 xorl %esi, %ecx
261 andl %edx, %ecx
262 rorl $2, %edx
263 addl %eax, %ebp
264 movl 40(%esp), %eax
265 xorl %esi, %ecx
266 leal 1518500249(%ebp,%eax,1),%ebp
267 addl %ebp, %ecx
268
269 movl %ecx, %ebp
270 movl %edx, %eax
271 roll $5, %ebp
272 xorl %edi, %eax
273 andl %ebx, %eax
274 rorl $2, %ebx
275 addl %esi, %ebp
276 movl 44(%esp), %esi
277 xorl %edi, %eax
278 leal 1518500249(%ebp,%esi,1),%ebp
279 addl %ebp, %eax
280
281 movl %eax, %ebp
282 movl %ebx, %esi
283 roll $5, %ebp
284 xorl %edx, %esi
285 andl %ecx, %esi
286 rorl $2, %ecx
287 addl %edi, %ebp
288 movl 48(%esp), %edi
289 xorl %edx, %esi
290 leal 1518500249(%ebp,%edi,1),%ebp
291 addl %ebp, %esi
292
293 movl %esi, %ebp
294 movl %ecx, %edi
295 roll $5, %ebp
296 xorl %ebx, %edi
297 andl %eax, %edi
298 rorl $2, %eax
299 addl %edx, %ebp
300 movl 52(%esp), %edx
301 xorl %ebx, %edi
302 leal 1518500249(%ebp,%edx,1),%ebp
303 addl %ebp, %edi
304
305 movl %edi, %ebp
306 movl %eax, %edx
307 roll $5, %ebp
308 xorl %ecx, %edx
309 andl %esi, %edx
310 rorl $2, %esi
311 addl %ebx, %ebp
312 movl 56(%esp), %ebx
313 xorl %ecx, %edx
314 leal 1518500249(%ebp,%ebx,1),%ebp
315 addl %ebp, %edx
316
317 movl %edx, %ebp
318 movl %esi, %ebx
319 roll $5, %ebp
320 xorl %eax, %ebx
321 andl %edi, %ebx
322 rorl $2, %edi
323 addl %ecx, %ebp
324 movl 60(%esp), %ecx
325 xorl %eax, %ebx
326 leal 1518500249(%ebp,%ecx,1),%ebp
327 addl %ebp, %ebx
328
329 movl 8(%esp), %ecx
330 movl %edi, %ebp
331 xorl (%esp), %ecx
332 xorl %esi, %ebp
333 xorl 32(%esp), %ecx
334 andl %edx, %ebp
335 xorl 52(%esp), %ecx
336 rorl $2, %edx
337 xorl %esi, %ebp
338.byte 209
339.byte 193
340 movl %ecx, (%esp)
341 leal 1518500249(%ecx,%eax,1),%ecx
342 movl %ebx, %eax
343 addl %ebp, %ecx
344 roll $5, %eax
345 addl %eax, %ecx
346
347 movl 12(%esp), %eax
348 movl %edx, %ebp
349 xorl 4(%esp), %eax
350 xorl %edi, %ebp
351 xorl 36(%esp), %eax
352 andl %ebx, %ebp
353 xorl 56(%esp), %eax
354 rorl $2, %ebx
355 xorl %edi, %ebp
356.byte 209
357.byte 192
358 movl %eax, 4(%esp)
359 leal 1518500249(%eax,%esi,1),%eax
360 movl %ecx, %esi
361 addl %ebp, %eax
362 roll $5, %esi
363 addl %esi, %eax
364
365 movl 16(%esp), %esi
366 movl %ebx, %ebp
367 xorl 8(%esp), %esi
368 xorl %edx, %ebp
369 xorl 40(%esp), %esi
370 andl %ecx, %ebp
371 xorl 60(%esp), %esi
372 rorl $2, %ecx
373 xorl %edx, %ebp
374.byte 209
375.byte 198
376 movl %esi, 8(%esp)
377 leal 1518500249(%esi,%edi,1),%esi
378 movl %eax, %edi
379 addl %ebp, %esi
380 roll $5, %edi
381 addl %edi, %esi
382
383 movl 20(%esp), %edi
384 movl %ecx, %ebp
385 xorl 12(%esp), %edi
386 xorl %ebx, %ebp
387 xorl 44(%esp), %edi
388 andl %eax, %ebp
389 xorl (%esp), %edi
390 rorl $2, %eax
391 xorl %ebx, %ebp
392.byte 209
393.byte 199
394 movl %edi, 12(%esp)
395 leal 1518500249(%edi,%edx,1),%edi
396 movl %esi, %edx
397 addl %ebp, %edi
398 roll $5, %edx
399 addl %edx, %edi
400
401 movl 16(%esp), %edx
402 movl %esi, %ebp
403 xorl 24(%esp), %edx
404 rorl $2, %esi
405 xorl 48(%esp), %edx
406 xorl %eax, %ebp
407 xorl 4(%esp), %edx
408 xorl %ecx, %ebp
409.byte 209
410.byte 194
411 movl %edx, 16(%esp)
412 leal 1859775393(%edx,%ebx,1),%edx
413 movl %edi, %ebx
414 roll $5, %ebx
415 addl %ebp, %edx
416 addl %ebx, %edx
417
418 movl 20(%esp), %ebx
419 movl %edi, %ebp
420 xorl 28(%esp), %ebx
421 rorl $2, %edi
422 xorl 52(%esp), %ebx
423 xorl %esi, %ebp
424 xorl 8(%esp), %ebx
425 xorl %eax, %ebp
426.byte 209
427.byte 195
428 movl %ebx, 20(%esp)
429 leal 1859775393(%ebx,%ecx,1),%ebx
430 movl %edx, %ecx
431 roll $5, %ecx
432 addl %ebp, %ebx
433 addl %ecx, %ebx
434
435 movl 24(%esp), %ecx
436 movl %edx, %ebp
437 xorl 32(%esp), %ecx
438 rorl $2, %edx
439 xorl 56(%esp), %ecx
440 xorl %edi, %ebp
441 xorl 12(%esp), %ecx
442 xorl %esi, %ebp
443.byte 209
444.byte 193
445 movl %ecx, 24(%esp)
446 leal 1859775393(%ecx,%eax,1),%ecx
447 movl %ebx, %eax
448 roll $5, %eax
449 addl %ebp, %ecx
450 addl %eax, %ecx
451
452 movl 28(%esp), %eax
453 movl %ebx, %ebp
454 xorl 36(%esp), %eax
455 rorl $2, %ebx
456 xorl 60(%esp), %eax
457 xorl %edx, %ebp
458 xorl 16(%esp), %eax
459 xorl %edi, %ebp
460.byte 209
461.byte 192
462 movl %eax, 28(%esp)
463 leal 1859775393(%eax,%esi,1),%eax
464 movl %ecx, %esi
465 roll $5, %esi
466 addl %ebp, %eax
467 addl %esi, %eax
468
469 movl 32(%esp), %esi
470 movl %ecx, %ebp
471 xorl 40(%esp), %esi
472 rorl $2, %ecx
473 xorl (%esp), %esi
474 xorl %ebx, %ebp
475 xorl 20(%esp), %esi
476 xorl %edx, %ebp
477.byte 209
478.byte 198
479 movl %esi, 32(%esp)
480 leal 1859775393(%esi,%edi,1),%esi
481 movl %eax, %edi
482 roll $5, %edi
483 addl %ebp, %esi
484 addl %edi, %esi
485
486 movl 36(%esp), %edi
487 movl %eax, %ebp
488 xorl 44(%esp), %edi
489 rorl $2, %eax
490 xorl 4(%esp), %edi
491 xorl %ecx, %ebp
492 xorl 24(%esp), %edi
493 xorl %ebx, %ebp
494.byte 209
495.byte 199
496 movl %edi, 36(%esp)
497 leal 1859775393(%edi,%edx,1),%edi
498 movl %esi, %edx
499 roll $5, %edx
500 addl %ebp, %edi
501 addl %edx, %edi
502
503 movl 40(%esp), %edx
504 movl %esi, %ebp
505 xorl 48(%esp), %edx
506 rorl $2, %esi
507 xorl 8(%esp), %edx
508 xorl %eax, %ebp
509 xorl 28(%esp), %edx
510 xorl %ecx, %ebp
511.byte 209
512.byte 194
513 movl %edx, 40(%esp)
514 leal 1859775393(%edx,%ebx,1),%edx
515 movl %edi, %ebx
516 roll $5, %ebx
517 addl %ebp, %edx
518 addl %ebx, %edx
519
520 movl 44(%esp), %ebx
521 movl %edi, %ebp
522 xorl 52(%esp), %ebx
523 rorl $2, %edi
524 xorl 12(%esp), %ebx
525 xorl %esi, %ebp
526 xorl 32(%esp), %ebx
527 xorl %eax, %ebp
528.byte 209
529.byte 195
530 movl %ebx, 44(%esp)
531 leal 1859775393(%ebx,%ecx,1),%ebx
532 movl %edx, %ecx
533 roll $5, %ecx
534 addl %ebp, %ebx
535 addl %ecx, %ebx
536
537 movl 48(%esp), %ecx
538 movl %edx, %ebp
539 xorl 56(%esp), %ecx
540 rorl $2, %edx
541 xorl 16(%esp), %ecx
542 xorl %edi, %ebp
543 xorl 36(%esp), %ecx
544 xorl %esi, %ebp
545.byte 209
546.byte 193
547 movl %ecx, 48(%esp)
548 leal 1859775393(%ecx,%eax,1),%ecx
549 movl %ebx, %eax
550 roll $5, %eax
551 addl %ebp, %ecx
552 addl %eax, %ecx
553
554 movl 52(%esp), %eax
555 movl %ebx, %ebp
556 xorl 60(%esp), %eax
557 rorl $2, %ebx
558 xorl 20(%esp), %eax
559 xorl %edx, %ebp
560 xorl 40(%esp), %eax
561 xorl %edi, %ebp
562.byte 209
563.byte 192
564 movl %eax, 52(%esp)
565 leal 1859775393(%eax,%esi,1),%eax
566 movl %ecx, %esi
567 roll $5, %esi
568 addl %ebp, %eax
569 addl %esi, %eax
570
571 movl 56(%esp), %esi
572 movl %ecx, %ebp
573 xorl (%esp), %esi
574 rorl $2, %ecx
575 xorl 24(%esp), %esi
576 xorl %ebx, %ebp
577 xorl 44(%esp), %esi
578 xorl %edx, %ebp
579.byte 209
580.byte 198
581 movl %esi, 56(%esp)
582 leal 1859775393(%esi,%edi,1),%esi
583 movl %eax, %edi
584 roll $5, %edi
585 addl %ebp, %esi
586 addl %edi, %esi
587
588 movl 60(%esp), %edi
589 movl %eax, %ebp
590 xorl 4(%esp), %edi
591 rorl $2, %eax
592 xorl 28(%esp), %edi
593 xorl %ecx, %ebp
594 xorl 48(%esp), %edi
595 xorl %ebx, %ebp
596.byte 209
597.byte 199
598 movl %edi, 60(%esp)
599 leal 1859775393(%edi,%edx,1),%edi
600 movl %esi, %edx
601 roll $5, %edx
602 addl %ebp, %edi
603 addl %edx, %edi
604
605 movl (%esp), %edx
606 movl %esi, %ebp
607 xorl 8(%esp), %edx
608 rorl $2, %esi
609 xorl 32(%esp), %edx
610 xorl %eax, %ebp
611 xorl 52(%esp), %edx
612 xorl %ecx, %ebp
613.byte 209
614.byte 194
615 movl %edx, (%esp)
616 leal 1859775393(%edx,%ebx,1),%edx
617 movl %edi, %ebx
618 roll $5, %ebx
619 addl %ebp, %edx
620 addl %ebx, %edx
621
622 movl 4(%esp), %ebx
623 movl %edi, %ebp
624 xorl 12(%esp), %ebx
625 rorl $2, %edi
626 xorl 36(%esp), %ebx
627 xorl %esi, %ebp
628 xorl 56(%esp), %ebx
629 xorl %eax, %ebp
630.byte 209
631.byte 195
632 movl %ebx, 4(%esp)
633 leal 1859775393(%ebx,%ecx,1),%ebx
634 movl %edx, %ecx
635 roll $5, %ecx
636 addl %ebp, %ebx
637 addl %ecx, %ebx
638
639 movl 8(%esp), %ecx
640 movl %edx, %ebp
641 xorl 16(%esp), %ecx
642 rorl $2, %edx
643 xorl 40(%esp), %ecx
644 xorl %edi, %ebp
645 xorl 60(%esp), %ecx
646 xorl %esi, %ebp
647.byte 209
648.byte 193
649 movl %ecx, 8(%esp)
650 leal 1859775393(%ecx,%eax,1),%ecx
651 movl %ebx, %eax
652 roll $5, %eax
653 addl %ebp, %ecx
654 addl %eax, %ecx
655
656 movl 12(%esp), %eax
657 movl %ebx, %ebp
658 xorl 20(%esp), %eax
659 rorl $2, %ebx
660 xorl 44(%esp), %eax
661 xorl %edx, %ebp
662 xorl (%esp), %eax
663 xorl %edi, %ebp
664.byte 209
665.byte 192
666 movl %eax, 12(%esp)
667 leal 1859775393(%eax,%esi,1),%eax
668 movl %ecx, %esi
669 roll $5, %esi
670 addl %ebp, %eax
671 addl %esi, %eax
672
673 movl 16(%esp), %esi
674 movl %ecx, %ebp
675 xorl 24(%esp), %esi
676 rorl $2, %ecx
677 xorl 48(%esp), %esi
678 xorl %ebx, %ebp
679 xorl 4(%esp), %esi
680 xorl %edx, %ebp
681.byte 209
682.byte 198
683 movl %esi, 16(%esp)
684 leal 1859775393(%esi,%edi,1),%esi
685 movl %eax, %edi
686 roll $5, %edi
687 addl %ebp, %esi
688 addl %edi, %esi
689
690 movl 20(%esp), %edi
691 movl %eax, %ebp
692 xorl 28(%esp), %edi
693 rorl $2, %eax
694 xorl 52(%esp), %edi
695 xorl %ecx, %ebp
696 xorl 8(%esp), %edi
697 xorl %ebx, %ebp
698.byte 209
699.byte 199
700 movl %edi, 20(%esp)
701 leal 1859775393(%edi,%edx,1),%edi
702 movl %esi, %edx
703 roll $5, %edx
704 addl %ebp, %edi
705 addl %edx, %edi
706
707 movl 24(%esp), %edx
708 movl %esi, %ebp
709 xorl 32(%esp), %edx
710 rorl $2, %esi
711 xorl 56(%esp), %edx
712 xorl %eax, %ebp
713 xorl 12(%esp), %edx
714 xorl %ecx, %ebp
715.byte 209
716.byte 194
717 movl %edx, 24(%esp)
718 leal 1859775393(%edx,%ebx,1),%edx
719 movl %edi, %ebx
720 roll $5, %ebx
721 addl %ebp, %edx
722 addl %ebx, %edx
723
724 movl 28(%esp), %ebx
725 movl %edi, %ebp
726 xorl 36(%esp), %ebx
727 rorl $2, %edi
728 xorl 60(%esp), %ebx
729 xorl %esi, %ebp
730 xorl 16(%esp), %ebx
731 xorl %eax, %ebp
732.byte 209
733.byte 195
734 movl %ebx, 28(%esp)
735 leal 1859775393(%ebx,%ecx,1),%ebx
736 movl %edx, %ecx
737 roll $5, %ecx
738 addl %ebp, %ebx
739 addl %ecx, %ebx
740
741 movl 32(%esp), %ecx
742 movl %edx, %ebp
743 xorl 40(%esp), %ecx
744 orl %edi, %ebp
745 xorl (%esp), %ecx
746 andl %esi, %ebp
747 xorl 20(%esp), %ecx
748.byte 209
749.byte 193
750 movl %ecx, 32(%esp)
751 leal 2400959708(%ecx,%eax,1),%ecx
752 movl %edx, %eax
753 rorl $2, %edx
754 andl %edi, %eax
755 orl %eax, %ebp
756 movl %ebx, %eax
757 roll $5, %eax
758 addl %eax, %ebp
759 addl %ebp, %ecx
760
761 movl 36(%esp), %eax
762 movl %ebx, %ebp
763 xorl 44(%esp), %eax
764 orl %edx, %ebp
765 xorl 4(%esp), %eax
766 andl %edi, %ebp
767 xorl 24(%esp), %eax
768.byte 209
769.byte 192
770 movl %eax, 36(%esp)
771 leal 2400959708(%eax,%esi,1),%eax
772 movl %ebx, %esi
773 rorl $2, %ebx
774 andl %edx, %esi
775 orl %esi, %ebp
776 movl %ecx, %esi
777 roll $5, %esi
778 addl %esi, %ebp
779 addl %ebp, %eax
780
781 movl 40(%esp), %esi
782 movl %ecx, %ebp
783 xorl 48(%esp), %esi
784 orl %ebx, %ebp
785 xorl 8(%esp), %esi
786 andl %edx, %ebp
787 xorl 28(%esp), %esi
788.byte 209
789.byte 198
790 movl %esi, 40(%esp)
791 leal 2400959708(%esi,%edi,1),%esi
792 movl %ecx, %edi
793 rorl $2, %ecx
794 andl %ebx, %edi
795 orl %edi, %ebp
796 movl %eax, %edi
797 roll $5, %edi
798 addl %edi, %ebp
799 addl %ebp, %esi
800
801 movl 44(%esp), %edi
802 movl %eax, %ebp
803 xorl 52(%esp), %edi
804 orl %ecx, %ebp
805 xorl 12(%esp), %edi
806 andl %ebx, %ebp
807 xorl 32(%esp), %edi
808.byte 209
809.byte 199
810 movl %edi, 44(%esp)
811 leal 2400959708(%edi,%edx,1),%edi
812 movl %eax, %edx
813 rorl $2, %eax
814 andl %ecx, %edx
815 orl %edx, %ebp
816 movl %esi, %edx
817 roll $5, %edx
818 addl %edx, %ebp
819 addl %ebp, %edi
820
821 movl 48(%esp), %edx
822 movl %esi, %ebp
823 xorl 56(%esp), %edx
824 orl %eax, %ebp
825 xorl 16(%esp), %edx
826 andl %ecx, %ebp
827 xorl 36(%esp), %edx
828.byte 209
829.byte 194
830 movl %edx, 48(%esp)
831 leal 2400959708(%edx,%ebx,1),%edx
832 movl %esi, %ebx
833 rorl $2, %esi
834 andl %eax, %ebx
835 orl %ebx, %ebp
836 movl %edi, %ebx
837 roll $5, %ebx
838 addl %ebx, %ebp
839 addl %ebp, %edx
840
841 movl 52(%esp), %ebx
842 movl %edi, %ebp
843 xorl 60(%esp), %ebx
844 orl %esi, %ebp
845 xorl 20(%esp), %ebx
846 andl %eax, %ebp
847 xorl 40(%esp), %ebx
848.byte 209
849.byte 195
850 movl %ebx, 52(%esp)
851 leal 2400959708(%ebx,%ecx,1),%ebx
852 movl %edi, %ecx
853 rorl $2, %edi
854 andl %esi, %ecx
855 orl %ecx, %ebp
856 movl %edx, %ecx
857 roll $5, %ecx
858 addl %ecx, %ebp
859 addl %ebp, %ebx
860
861 movl 56(%esp), %ecx
862 movl %edx, %ebp
863 xorl (%esp), %ecx
864 orl %edi, %ebp
865 xorl 24(%esp), %ecx
866 andl %esi, %ebp
867 xorl 44(%esp), %ecx
868.byte 209
869.byte 193
870 movl %ecx, 56(%esp)
871 leal 2400959708(%ecx,%eax,1),%ecx
872 movl %edx, %eax
873 rorl $2, %edx
874 andl %edi, %eax
875 orl %eax, %ebp
876 movl %ebx, %eax
877 roll $5, %eax
878 addl %eax, %ebp
879 addl %ebp, %ecx
880
881 movl 60(%esp), %eax
882 movl %ebx, %ebp
883 xorl 4(%esp), %eax
884 orl %edx, %ebp
885 xorl 28(%esp), %eax
886 andl %edi, %ebp
887 xorl 48(%esp), %eax
888.byte 209
889.byte 192
890 movl %eax, 60(%esp)
891 leal 2400959708(%eax,%esi,1),%eax
892 movl %ebx, %esi
893 rorl $2, %ebx
894 andl %edx, %esi
895 orl %esi, %ebp
896 movl %ecx, %esi
897 roll $5, %esi
898 addl %esi, %ebp
899 addl %ebp, %eax
900
901 movl (%esp), %esi
902 movl %ecx, %ebp
903 xorl 8(%esp), %esi
904 orl %ebx, %ebp
905 xorl 32(%esp), %esi
906 andl %edx, %ebp
907 xorl 52(%esp), %esi
908.byte 209
909.byte 198
910 movl %esi, (%esp)
911 leal 2400959708(%esi,%edi,1),%esi
912 movl %ecx, %edi
913 rorl $2, %ecx
914 andl %ebx, %edi
915 orl %edi, %ebp
916 movl %eax, %edi
917 roll $5, %edi
918 addl %edi, %ebp
919 addl %ebp, %esi
920
921 movl 4(%esp), %edi
922 movl %eax, %ebp
923 xorl 12(%esp), %edi
924 orl %ecx, %ebp
925 xorl 36(%esp), %edi
926 andl %ebx, %ebp
927 xorl 56(%esp), %edi
928.byte 209
929.byte 199
930 movl %edi, 4(%esp)
931 leal 2400959708(%edi,%edx,1),%edi
932 movl %eax, %edx
933 rorl $2, %eax
934 andl %ecx, %edx
935 orl %edx, %ebp
936 movl %esi, %edx
937 roll $5, %edx
938 addl %edx, %ebp
939 addl %ebp, %edi
940
941 movl 8(%esp), %edx
942 movl %esi, %ebp
943 xorl 16(%esp), %edx
944 orl %eax, %ebp
945 xorl 40(%esp), %edx
946 andl %ecx, %ebp
947 xorl 60(%esp), %edx
948.byte 209
949.byte 194
950 movl %edx, 8(%esp)
951 leal 2400959708(%edx,%ebx,1),%edx
952 movl %esi, %ebx
953 rorl $2, %esi
954 andl %eax, %ebx
955 orl %ebx, %ebp
956 movl %edi, %ebx
957 roll $5, %ebx
958 addl %ebx, %ebp
959 addl %ebp, %edx
960
961 movl 12(%esp), %ebx
962 movl %edi, %ebp
963 xorl 20(%esp), %ebx
964 orl %esi, %ebp
965 xorl 44(%esp), %ebx
966 andl %eax, %ebp
967 xorl (%esp), %ebx
968.byte 209
969.byte 195
970 movl %ebx, 12(%esp)
971 leal 2400959708(%ebx,%ecx,1),%ebx
972 movl %edi, %ecx
973 rorl $2, %edi
974 andl %esi, %ecx
975 orl %ecx, %ebp
976 movl %edx, %ecx
977 roll $5, %ecx
978 addl %ecx, %ebp
979 addl %ebp, %ebx
980
981 movl 16(%esp), %ecx
982 movl %edx, %ebp
983 xorl 24(%esp), %ecx
984 orl %edi, %ebp
985 xorl 48(%esp), %ecx
986 andl %esi, %ebp
987 xorl 4(%esp), %ecx
988.byte 209
989.byte 193
990 movl %ecx, 16(%esp)
991 leal 2400959708(%ecx,%eax,1),%ecx
992 movl %edx, %eax
993 rorl $2, %edx
994 andl %edi, %eax
995 orl %eax, %ebp
996 movl %ebx, %eax
997 roll $5, %eax
998 addl %eax, %ebp
999 addl %ebp, %ecx
1000
1001 movl 20(%esp), %eax
1002 movl %ebx, %ebp
1003 xorl 28(%esp), %eax
1004 orl %edx, %ebp
1005 xorl 52(%esp), %eax
1006 andl %edi, %ebp
1007 xorl 8(%esp), %eax
1008.byte 209
1009.byte 192
1010 movl %eax, 20(%esp)
1011 leal 2400959708(%eax,%esi,1),%eax
1012 movl %ebx, %esi
1013 rorl $2, %ebx
1014 andl %edx, %esi
1015 orl %esi, %ebp
1016 movl %ecx, %esi
1017 roll $5, %esi
1018 addl %esi, %ebp
1019 addl %ebp, %eax
1020
1021 movl 24(%esp), %esi
1022 movl %ecx, %ebp
1023 xorl 32(%esp), %esi
1024 orl %ebx, %ebp
1025 xorl 56(%esp), %esi
1026 andl %edx, %ebp
1027 xorl 12(%esp), %esi
1028.byte 209
1029.byte 198
1030 movl %esi, 24(%esp)
1031 leal 2400959708(%esi,%edi,1),%esi
1032 movl %ecx, %edi
1033 rorl $2, %ecx
1034 andl %ebx, %edi
1035 orl %edi, %ebp
1036 movl %eax, %edi
1037 roll $5, %edi
1038 addl %edi, %ebp
1039 addl %ebp, %esi
1040
1041 movl 28(%esp), %edi
1042 movl %eax, %ebp
1043 xorl 36(%esp), %edi
1044 orl %ecx, %ebp
1045 xorl 60(%esp), %edi
1046 andl %ebx, %ebp
1047 xorl 16(%esp), %edi
1048.byte 209
1049.byte 199
1050 movl %edi, 28(%esp)
1051 leal 2400959708(%edi,%edx,1),%edi
1052 movl %eax, %edx
1053 rorl $2, %eax
1054 andl %ecx, %edx
1055 orl %edx, %ebp
1056 movl %esi, %edx
1057 roll $5, %edx
1058 addl %edx, %ebp
1059 addl %ebp, %edi
1060
1061 movl 32(%esp), %edx
1062 movl %esi, %ebp
1063 xorl 40(%esp), %edx
1064 orl %eax, %ebp
1065 xorl (%esp), %edx
1066 andl %ecx, %ebp
1067 xorl 20(%esp), %edx
1068.byte 209
1069.byte 194
1070 movl %edx, 32(%esp)
1071 leal 2400959708(%edx,%ebx,1),%edx
1072 movl %esi, %ebx
1073 rorl $2, %esi
1074 andl %eax, %ebx
1075 orl %ebx, %ebp
1076 movl %edi, %ebx
1077 roll $5, %ebx
1078 addl %ebx, %ebp
1079 addl %ebp, %edx
1080
1081 movl 36(%esp), %ebx
1082 movl %edi, %ebp
1083 xorl 44(%esp), %ebx
1084 orl %esi, %ebp
1085 xorl 4(%esp), %ebx
1086 andl %eax, %ebp
1087 xorl 24(%esp), %ebx
1088.byte 209
1089.byte 195
1090 movl %ebx, 36(%esp)
1091 leal 2400959708(%ebx,%ecx,1),%ebx
1092 movl %edi, %ecx
1093 rorl $2, %edi
1094 andl %esi, %ecx
1095 orl %ecx, %ebp
1096 movl %edx, %ecx
1097 roll $5, %ecx
1098 addl %ecx, %ebp
1099 addl %ebp, %ebx
1100
1101 movl 40(%esp), %ecx
1102 movl %edx, %ebp
1103 xorl 48(%esp), %ecx
1104 orl %edi, %ebp
1105 xorl 8(%esp), %ecx
1106 andl %esi, %ebp
1107 xorl 28(%esp), %ecx
1108.byte 209
1109.byte 193
1110 movl %ecx, 40(%esp)
1111 leal 2400959708(%ecx,%eax,1),%ecx
1112 movl %edx, %eax
1113 rorl $2, %edx
1114 andl %edi, %eax
1115 orl %eax, %ebp
1116 movl %ebx, %eax
1117 roll $5, %eax
1118 addl %eax, %ebp
1119 addl %ebp, %ecx
1120
1121 movl 44(%esp), %eax
1122 movl %ebx, %ebp
1123 xorl 52(%esp), %eax
1124 orl %edx, %ebp
1125 xorl 12(%esp), %eax
1126 andl %edi, %ebp
1127 xorl 32(%esp), %eax
1128.byte 209
1129.byte 192
1130 movl %eax, 44(%esp)
1131 leal 2400959708(%eax,%esi,1),%eax
1132 movl %ebx, %esi
1133 rorl $2, %ebx
1134 andl %edx, %esi
1135 orl %esi, %ebp
1136 movl %ecx, %esi
1137 roll $5, %esi
1138 addl %esi, %ebp
1139 addl %ebp, %eax
1140
1141 movl 48(%esp), %esi
1142 movl %ecx, %ebp
1143 xorl 56(%esp), %esi
1144 rorl $2, %ecx
1145 xorl 16(%esp), %esi
1146 xorl %ebx, %ebp
1147 xorl 36(%esp), %esi
1148 xorl %edx, %ebp
1149.byte 209
1150.byte 198
1151 movl %esi, 48(%esp)
1152 leal 3395469782(%esi,%edi,1),%esi
1153 movl %eax, %edi
1154 roll $5, %edi
1155 addl %ebp, %esi
1156 addl %edi, %esi
1157
1158 movl 52(%esp), %edi
1159 movl %eax, %ebp
1160 xorl 60(%esp), %edi
1161 rorl $2, %eax
1162 xorl 20(%esp), %edi
1163 xorl %ecx, %ebp
1164 xorl 40(%esp), %edi
1165 xorl %ebx, %ebp
1166.byte 209
1167.byte 199
1168 movl %edi, 52(%esp)
1169 leal 3395469782(%edi,%edx,1),%edi
1170 movl %esi, %edx
1171 roll $5, %edx
1172 addl %ebp, %edi
1173 addl %edx, %edi
1174
1175 movl 56(%esp), %edx
1176 movl %esi, %ebp
1177 xorl (%esp), %edx
1178 rorl $2, %esi
1179 xorl 24(%esp), %edx
1180 xorl %eax, %ebp
1181 xorl 44(%esp), %edx
1182 xorl %ecx, %ebp
1183.byte 209
1184.byte 194
1185 movl %edx, 56(%esp)
1186 leal 3395469782(%edx,%ebx,1),%edx
1187 movl %edi, %ebx
1188 roll $5, %ebx
1189 addl %ebp, %edx
1190 addl %ebx, %edx
1191
1192 movl 60(%esp), %ebx
1193 movl %edi, %ebp
1194 xorl 4(%esp), %ebx
1195 rorl $2, %edi
1196 xorl 28(%esp), %ebx
1197 xorl %esi, %ebp
1198 xorl 48(%esp), %ebx
1199 xorl %eax, %ebp
1200.byte 209
1201.byte 195
1202 movl %ebx, 60(%esp)
1203 leal 3395469782(%ebx,%ecx,1),%ebx
1204 movl %edx, %ecx
1205 roll $5, %ecx
1206 addl %ebp, %ebx
1207 addl %ecx, %ebx
1208
1209 movl (%esp), %ecx
1210 movl %edx, %ebp
1211 xorl 8(%esp), %ecx
1212 rorl $2, %edx
1213 xorl 32(%esp), %ecx
1214 xorl %edi, %ebp
1215 xorl 52(%esp), %ecx
1216 xorl %esi, %ebp
1217.byte 209
1218.byte 193
1219 movl %ecx, (%esp)
1220 leal 3395469782(%ecx,%eax,1),%ecx
1221 movl %ebx, %eax
1222 roll $5, %eax
1223 addl %ebp, %ecx
1224 addl %eax, %ecx
1225
1226 movl 4(%esp), %eax
1227 movl %ebx, %ebp
1228 xorl 12(%esp), %eax
1229 rorl $2, %ebx
1230 xorl 36(%esp), %eax
1231 xorl %edx, %ebp
1232 xorl 56(%esp), %eax
1233 xorl %edi, %ebp
1234.byte 209
1235.byte 192
1236 movl %eax, 4(%esp)
1237 leal 3395469782(%eax,%esi,1),%eax
1238 movl %ecx, %esi
1239 roll $5, %esi
1240 addl %ebp, %eax
1241 addl %esi, %eax
1242
1243 movl 8(%esp), %esi
1244 movl %ecx, %ebp
1245 xorl 16(%esp), %esi
1246 rorl $2, %ecx
1247 xorl 40(%esp), %esi
1248 xorl %ebx, %ebp
1249 xorl 60(%esp), %esi
1250 xorl %edx, %ebp
1251.byte 209
1252.byte 198
1253 movl %esi, 8(%esp)
1254 leal 3395469782(%esi,%edi,1),%esi
1255 movl %eax, %edi
1256 roll $5, %edi
1257 addl %ebp, %esi
1258 addl %edi, %esi
1259
1260 movl 12(%esp), %edi
1261 movl %eax, %ebp
1262 xorl 20(%esp), %edi
1263 rorl $2, %eax
1264 xorl 44(%esp), %edi
1265 xorl %ecx, %ebp
1266 xorl (%esp), %edi
1267 xorl %ebx, %ebp
1268.byte 209
1269.byte 199
1270 movl %edi, 12(%esp)
1271 leal 3395469782(%edi,%edx,1),%edi
1272 movl %esi, %edx
1273 roll $5, %edx
1274 addl %ebp, %edi
1275 addl %edx, %edi
1276
1277 movl 16(%esp), %edx
1278 movl %esi, %ebp
1279 xorl 24(%esp), %edx
1280 rorl $2, %esi
1281 xorl 48(%esp), %edx
1282 xorl %eax, %ebp
1283 xorl 4(%esp), %edx
1284 xorl %ecx, %ebp
1285.byte 209
1286.byte 194
1287 movl %edx, 16(%esp)
1288 leal 3395469782(%edx,%ebx,1),%edx
1289 movl %edi, %ebx
1290 roll $5, %ebx
1291 addl %ebp, %edx
1292 addl %ebx, %edx
1293
1294 movl 20(%esp), %ebx
1295 movl %edi, %ebp
1296 xorl 28(%esp), %ebx
1297 rorl $2, %edi
1298 xorl 52(%esp), %ebx
1299 xorl %esi, %ebp
1300 xorl 8(%esp), %ebx
1301 xorl %eax, %ebp
1302.byte 209
1303.byte 195
1304 movl %ebx, 20(%esp)
1305 leal 3395469782(%ebx,%ecx,1),%ebx
1306 movl %edx, %ecx
1307 roll $5, %ecx
1308 addl %ebp, %ebx
1309 addl %ecx, %ebx
1310
1311 movl 24(%esp), %ecx
1312 movl %edx, %ebp
1313 xorl 32(%esp), %ecx
1314 rorl $2, %edx
1315 xorl 56(%esp), %ecx
1316 xorl %edi, %ebp
1317 xorl 12(%esp), %ecx
1318 xorl %esi, %ebp
1319.byte 209
1320.byte 193
1321 movl %ecx, 24(%esp)
1322 leal 3395469782(%ecx,%eax,1),%ecx
1323 movl %ebx, %eax
1324 roll $5, %eax
1325 addl %ebp, %ecx
1326 addl %eax, %ecx
1327
1328 movl 28(%esp), %eax
1329 movl %ebx, %ebp
1330 xorl 36(%esp), %eax
1331 rorl $2, %ebx
1332 xorl 60(%esp), %eax
1333 xorl %edx, %ebp
1334 xorl 16(%esp), %eax
1335 xorl %edi, %ebp
1336.byte 209
1337.byte 192
1338 movl %eax, 28(%esp)
1339 leal 3395469782(%eax,%esi,1),%eax
1340 movl %ecx, %esi
1341 roll $5, %esi
1342 addl %ebp, %eax
1343 addl %esi, %eax
1344
1345 movl 32(%esp), %esi
1346 movl %ecx, %ebp
1347 xorl 40(%esp), %esi
1348 rorl $2, %ecx
1349 xorl (%esp), %esi
1350 xorl %ebx, %ebp
1351 xorl 20(%esp), %esi
1352 xorl %edx, %ebp
1353.byte 209
1354.byte 198
1355 movl %esi, 32(%esp)
1356 leal 3395469782(%esi,%edi,1),%esi
1357 movl %eax, %edi
1358 roll $5, %edi
1359 addl %ebp, %esi
1360 addl %edi, %esi
1361
1362 movl 36(%esp), %edi
1363 movl %eax, %ebp
1364 xorl 44(%esp), %edi
1365 rorl $2, %eax
1366 xorl 4(%esp), %edi
1367 xorl %ecx, %ebp
1368 xorl 24(%esp), %edi
1369 xorl %ebx, %ebp
1370.byte 209
1371.byte 199
1372 movl %edi, 36(%esp)
1373 leal 3395469782(%edi,%edx,1),%edi
1374 movl %esi, %edx
1375 roll $5, %edx
1376 addl %ebp, %edi
1377 addl %edx, %edi
1378
1379 movl 40(%esp), %edx
1380 movl %esi, %ebp
1381 xorl 48(%esp), %edx
1382 rorl $2, %esi
1383 xorl 8(%esp), %edx
1384 xorl %eax, %ebp
1385 xorl 28(%esp), %edx
1386 xorl %ecx, %ebp
1387.byte 209
1388.byte 194
1389 movl %edx, 40(%esp)
1390 leal 3395469782(%edx,%ebx,1),%edx
1391 movl %edi, %ebx
1392 roll $5, %ebx
1393 addl %ebp, %edx
1394 addl %ebx, %edx
1395
1396 movl 44(%esp), %ebx
1397 movl %edi, %ebp
1398 xorl 52(%esp), %ebx
1399 rorl $2, %edi
1400 xorl 12(%esp), %ebx
1401 xorl %esi, %ebp
1402 xorl 32(%esp), %ebx
1403 xorl %eax, %ebp
1404.byte 209
1405.byte 195
1406 movl %ebx, 44(%esp)
1407 leal 3395469782(%ebx,%ecx,1),%ebx
1408 movl %edx, %ecx
1409 roll $5, %ecx
1410 addl %ebp, %ebx
1411 addl %ecx, %ebx
1412
1413 movl 48(%esp), %ecx
1414 movl %edx, %ebp
1415 xorl 56(%esp), %ecx
1416 rorl $2, %edx
1417 xorl 16(%esp), %ecx
1418 xorl %edi, %ebp
1419 xorl 36(%esp), %ecx
1420 xorl %esi, %ebp
1421.byte 209
1422.byte 193
1423 movl %ecx, 48(%esp)
1424 leal 3395469782(%ecx,%eax,1),%ecx
1425 movl %ebx, %eax
1426 roll $5, %eax
1427 addl %ebp, %ecx
1428 addl %eax, %ecx
1429
1430 movl 52(%esp), %eax
1431 movl %ebx, %ebp
1432 xorl 60(%esp), %eax
1433 rorl $2, %ebx
1434 xorl 20(%esp), %eax
1435 xorl %edx, %ebp
1436 xorl 40(%esp), %eax
1437 xorl %edi, %ebp
1438.byte 209
1439.byte 192
1440 movl %eax, 52(%esp)
1441 leal 3395469782(%eax,%esi,1),%eax
1442 movl %ecx, %esi
1443 roll $5, %esi
1444 addl %ebp, %eax
1445 addl %esi, %eax
1446
1447 movl 56(%esp), %esi
1448 movl %ecx, %ebp
1449 xorl (%esp), %esi
1450 rorl $2, %ecx
1451 xorl 24(%esp), %esi
1452 xorl %ebx, %ebp
1453 xorl 44(%esp), %esi
1454 xorl %edx, %ebp
1455.byte 209
1456.byte 198
1457 movl %esi, 56(%esp)
1458 leal 3395469782(%esi,%edi,1),%esi
1459 movl %eax, %edi
1460 roll $5, %edi
1461 addl %ebp, %esi
1462 addl %edi, %esi
1463
1464 movl 60(%esp), %edi
1465 movl %eax, %ebp
1466 xorl 4(%esp), %edi
1467 rorl $2, %eax
1468 xorl 28(%esp), %edi
1469 xorl %ecx, %ebp
1470 xorl 48(%esp), %edi
1471 xorl %ebx, %ebp
1472.byte 209
1473.byte 199
1474 movl %edi, 60(%esp)
1475 leal 3395469782(%edi,%edx,1),%edi
1476 movl %esi, %edx
1477 roll $5, %edx
1478 addl %ebp, %edi
1479 addl %edx, %edi
1480
1481
1482 movl 128(%esp), %ebp
1483 movl 12(%ebp), %edx
1484 addl %ecx, %edx
1485 movl 4(%ebp), %ecx
1486 addl %esi, %ecx
1487 movl %eax, %esi
1488 movl (%ebp), %eax
1489 movl %edx, 12(%ebp)
1490 addl %edi, %eax
1491 movl 16(%ebp), %edi
1492 addl %ebx, %edi
1493 movl 8(%ebp), %ebx
1494 addl %esi, %ebx
1495 movl %eax, (%ebp)
1496 movl 132(%esp), %esi
1497 movl %ebx, 8(%ebp)
1498 addl $64, %esi
1499 movl 68(%esp), %eax
1500 movl %edi, 16(%ebp)
1501 cmpl %eax, %esi
1502 movl %ecx, 4(%ebp)
1503 jb .L000start
1504 addl $108, %esp
1505 popl %edi
1506 popl %ebx
1507 popl %ebp
1508 popl %esi
1509 ret
1510.L_sha1_block_asm_data_order_end:
1511 .size sha1_block_asm_data_order,.L_sha1_block_asm_data_order_end-sha1_block_asm_data_order
1512.ident "desasm.pl"
1513.text
1514 .align 16
1515.globl sha1_block_asm_host_order
1516 .type sha1_block_asm_host_order,@function
1517sha1_block_asm_host_order:
1518 movl 12(%esp), %ecx
1519 pushl %esi
1520 sall $6, %ecx
1521 movl 12(%esp), %esi
1522 pushl %ebp
1523 addl %esi, %ecx
1524 pushl %ebx
1525 movl 16(%esp), %ebp
1526 pushl %edi
1527 movl 12(%ebp), %edx
1528 subl $108, %esp
1529 movl 16(%ebp), %edi
1530 movl 8(%ebp), %ebx
1531 movl %ecx, 68(%esp)
1532
1533 movl (%esi), %eax
1534 movl 4(%esi), %ecx
1535 movl %eax, (%esp)
1536 movl %ecx, 4(%esp)
1537 movl 8(%esi), %eax
1538 movl 12(%esi), %ecx
1539 movl %eax, 8(%esp)
1540 movl %ecx, 12(%esp)
1541 movl 16(%esi), %eax
1542 movl 20(%esi), %ecx
1543 movl %eax, 16(%esp)
1544 movl %ecx, 20(%esp)
1545 movl 24(%esi), %eax
1546 movl 28(%esi), %ecx
1547 movl %eax, 24(%esp)
1548 movl %ecx, 28(%esp)
1549 movl 32(%esi), %eax
1550 movl 36(%esi), %ecx
1551 movl %eax, 32(%esp)
1552 movl %ecx, 36(%esp)
1553 movl 40(%esi), %eax
1554 movl 44(%esi), %ecx
1555 movl %eax, 40(%esp)
1556 movl %ecx, 44(%esp)
1557 movl 48(%esi), %eax
1558 movl 52(%esi), %ecx
1559 movl %eax, 48(%esp)
1560 movl %ecx, 52(%esp)
1561 movl 56(%esi), %eax
1562 movl 60(%esi), %ecx
1563 movl %eax, 56(%esp)
1564 movl %ecx, 60(%esp)
1565 jmp .L001shortcut
1566.L_sha1_block_asm_host_order_end:
1567 .size sha1_block_asm_host_order,.L_sha1_block_asm_host_order_end-sha1_block_asm_host_order
1568.ident "desasm.pl"
diff --git a/src/lib/libssl/src/fips/sha1/fingerprint.sha1 b/src/lib/libssl/src/fips/sha1/fingerprint.sha1
new file mode 100644
index 0000000000..5cb919fdc5
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/fingerprint.sha1
@@ -0,0 +1,5 @@
1HMAC-SHA1(fips_sha1dgst.c)= 10575600a9540eb15188a7d3b0b031e60aedbc18
2HMAC-SHA1(fips_sha1_selftest.c)= 98910a0c85eff1688bd7adb23e738dc75b39546e
3HMAC-SHA1(asm/sx86-elf.s)= ae66fb23ab8e1a2287e87a0a2dd30a4b9039fe63
4HMAC-SHA1(fips_sha_locl.h)= c1b4c82eec5f0ee119658456690f3ea9d77ed1c5
5HMAC-SHA1(fips_md32_common.h)= 08a057a7b94acf5df4301ea6c894ce14082e1ec4
diff --git a/src/lib/libssl/src/fips/sha1/fips_md32_common.h b/src/lib/libssl/src/fips/sha1/fips_md32_common.h
new file mode 100644
index 0000000000..cf1110e897
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/fips_md32_common.h
@@ -0,0 +1,623 @@
1/* crypto/md32_common.h */
2/* ====================================================================
3 * Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * 3. All advertising materials mentioning features or use of this
18 * software must display the following acknowledgment:
19 * "This product includes software developed by the OpenSSL Project
20 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
21 *
22 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23 * endorse or promote products derived from this software without
24 * prior written permission. For written permission, please contact
25 * licensing@OpenSSL.org.
26 *
27 * 5. Products derived from this software may not be called "OpenSSL"
28 * nor may "OpenSSL" appear in their names without prior written
29 * permission of the OpenSSL Project.
30 *
31 * 6. Redistributions of any form whatsoever must retain the following
32 * acknowledgment:
33 * "This product includes software developed by the OpenSSL Project
34 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
35 *
36 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47 * OF THE POSSIBILITY OF SUCH DAMAGE.
48 * ====================================================================
49 *
50 * This product includes cryptographic software written by Eric Young
51 * (eay@cryptsoft.com). This product includes software written by Tim
52 * Hudson (tjh@cryptsoft.com).
53 *
54 */
55
56/*
57 * This is a generic 32 bit "collector" for message digest algorithms.
58 * Whenever needed it collects input character stream into chunks of
59 * 32 bit values and invokes a block function that performs actual hash
60 * calculations.
61 *
62 * Porting guide.
63 *
64 * Obligatory macros:
65 *
66 * DATA_ORDER_IS_BIG_ENDIAN or DATA_ORDER_IS_LITTLE_ENDIAN
67 * this macro defines byte order of input stream.
68 * HASH_CBLOCK
69 * size of a unit chunk HASH_BLOCK operates on.
70 * HASH_LONG
71 * has to be at lest 32 bit wide, if it's wider, then
72 * HASH_LONG_LOG2 *has to* be defined along
73 * HASH_CTX
74 * context structure that at least contains following
75 * members:
76 * typedef struct {
77 * ...
78 * HASH_LONG Nl,Nh;
79 * HASH_LONG data[HASH_LBLOCK];
80 * unsigned int num;
81 * ...
82 * } HASH_CTX;
83 * HASH_UPDATE
84 * name of "Update" function, implemented here.
85 * HASH_TRANSFORM
86 * name of "Transform" function, implemented here.
87 * HASH_FINAL
88 * name of "Final" function, implemented here.
89 * HASH_BLOCK_HOST_ORDER
90 * name of "block" function treating *aligned* input message
91 * in host byte order, implemented externally.
92 * HASH_BLOCK_DATA_ORDER
93 * name of "block" function treating *unaligned* input message
94 * in original (data) byte order, implemented externally (it
95 * actually is optional if data and host are of the same
96 * "endianess").
97 * HASH_MAKE_STRING
98 * macro convering context variables to an ASCII hash string.
99 *
100 * Optional macros:
101 *
102 * B_ENDIAN or L_ENDIAN
103 * defines host byte-order.
104 * HASH_LONG_LOG2
105 * defaults to 2 if not states otherwise.
106 * HASH_LBLOCK
107 * assumed to be HASH_CBLOCK/4 if not stated otherwise.
108 * HASH_BLOCK_DATA_ORDER_ALIGNED
109 * alternative "block" function capable of treating
110 * aligned input message in original (data) order,
111 * implemented externally.
112 *
113 * MD5 example:
114 *
115 * #define DATA_ORDER_IS_LITTLE_ENDIAN
116 *
117 * #define HASH_LONG MD5_LONG
118 * #define HASH_LONG_LOG2 MD5_LONG_LOG2
119 * #define HASH_CTX MD5_CTX
120 * #define HASH_CBLOCK MD5_CBLOCK
121 * #define HASH_LBLOCK MD5_LBLOCK
122 * #define HASH_UPDATE MD5_Update
123 * #define HASH_TRANSFORM MD5_Transform
124 * #define HASH_FINAL MD5_Final
125 * #define HASH_BLOCK_HOST_ORDER md5_block_host_order
126 * #define HASH_BLOCK_DATA_ORDER md5_block_data_order
127 *
128 * <appro@fy.chalmers.se>
129 */
130
131#if !defined(DATA_ORDER_IS_BIG_ENDIAN) && !defined(DATA_ORDER_IS_LITTLE_ENDIAN)
132#error "DATA_ORDER must be defined!"
133#endif
134
135#ifndef HASH_CBLOCK
136#error "HASH_CBLOCK must be defined!"
137#endif
138#ifndef HASH_LONG
139#error "HASH_LONG must be defined!"
140#endif
141#ifndef HASH_CTX
142#error "HASH_CTX must be defined!"
143#endif
144
145#ifndef HASH_UPDATE
146#error "HASH_UPDATE must be defined!"
147#endif
148#ifndef HASH_TRANSFORM
149#error "HASH_TRANSFORM must be defined!"
150#endif
151#ifndef HASH_FINAL
152#error "HASH_FINAL must be defined!"
153#endif
154
155#ifndef HASH_BLOCK_HOST_ORDER
156#error "HASH_BLOCK_HOST_ORDER must be defined!"
157#endif
158
159#if 0
160/*
161 * Moved below as it's required only if HASH_BLOCK_DATA_ORDER_ALIGNED
162 * isn't defined.
163 */
164#ifndef HASH_BLOCK_DATA_ORDER
165#error "HASH_BLOCK_DATA_ORDER must be defined!"
166#endif
167#endif
168
169#ifndef HASH_LBLOCK
170#define HASH_LBLOCK (HASH_CBLOCK/4)
171#endif
172
173#ifndef HASH_LONG_LOG2
174#define HASH_LONG_LOG2 2
175#endif
176
177/*
178 * Engage compiler specific rotate intrinsic function if available.
179 */
180#undef ROTATE
181#ifndef PEDANTIC
182# if defined(_MSC_VER) || defined(__ICC)
183# define ROTATE(a,n) _lrotl(a,n)
184# elif defined(__MWERKS__)
185# if defined(__POWERPC__)
186# define ROTATE(a,n) __rlwinm(a,n,0,31)
187# elif defined(__MC68K__)
188 /* Motorola specific tweak. <appro@fy.chalmers.se> */
189# define ROTATE(a,n) ( n<24 ? __rol(a,n) : __ror(a,32-n) )
190# else
191# define ROTATE(a,n) __rol(a,n)
192# endif
193# elif defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
194 /*
195 * Some GNU C inline assembler templates. Note that these are
196 * rotates by *constant* number of bits! But that's exactly
197 * what we need here...
198 * <appro@fy.chalmers.se>
199 */
200# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
201# define ROTATE(a,n) ({ register unsigned int ret; \
202 asm ( \
203 "roll %1,%0" \
204 : "=r"(ret) \
205 : "I"(n), "0"(a) \
206 : "cc"); \
207 ret; \
208 })
209# elif defined(__powerpc) || defined(__ppc)
210# define ROTATE(a,n) ({ register unsigned int ret; \
211 asm ( \
212 "rlwinm %0,%1,%2,0,31" \
213 : "=r"(ret) \
214 : "r"(a), "I"(n)); \
215 ret; \
216 })
217# endif
218# endif
219#endif /* PEDANTIC */
220
221#if HASH_LONG_LOG2==2 /* Engage only if sizeof(HASH_LONG)== 4 */
222/* A nice byte order reversal from Wei Dai <weidai@eskimo.com> */
223#ifdef ROTATE
224/* 5 instructions with rotate instruction, else 9 */
225#define REVERSE_FETCH32(a,l) ( \
226 l=*(const HASH_LONG *)(a), \
227 ((ROTATE(l,8)&0x00FF00FF)|(ROTATE((l&0x00FF00FF),24))) \
228 )
229#else
230/* 6 instructions with rotate instruction, else 8 */
231#define REVERSE_FETCH32(a,l) ( \
232 l=*(const HASH_LONG *)(a), \
233 l=(((l>>8)&0x00FF00FF)|((l&0x00FF00FF)<<8)), \
234 ROTATE(l,16) \
235 )
236/*
237 * Originally the middle line started with l=(((l&0xFF00FF00)>>8)|...
238 * It's rewritten as above for two reasons:
239 * - RISCs aren't good at long constants and have to explicitely
240 * compose 'em with several (well, usually 2) instructions in a
241 * register before performing the actual operation and (as you
242 * already realized:-) having same constant should inspire the
243 * compiler to permanently allocate the only register for it;
244 * - most modern CPUs have two ALUs, but usually only one has
245 * circuitry for shifts:-( this minor tweak inspires compiler
246 * to schedule shift instructions in a better way...
247 *
248 * <appro@fy.chalmers.se>
249 */
250#endif
251#endif
252
253#ifndef ROTATE
254#define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
255#endif
256
257/*
258 * Make some obvious choices. E.g., HASH_BLOCK_DATA_ORDER_ALIGNED
259 * and HASH_BLOCK_HOST_ORDER ought to be the same if input data
260 * and host are of the same "endianess". It's possible to mask
261 * this with blank #define HASH_BLOCK_DATA_ORDER though...
262 *
263 * <appro@fy.chalmers.se>
264 */
265#if defined(B_ENDIAN)
266# if defined(DATA_ORDER_IS_BIG_ENDIAN)
267# if !defined(HASH_BLOCK_DATA_ORDER_ALIGNED) && HASH_LONG_LOG2==2
268# define HASH_BLOCK_DATA_ORDER_ALIGNED HASH_BLOCK_HOST_ORDER
269# endif
270# endif
271#elif defined(L_ENDIAN)
272# if defined(DATA_ORDER_IS_LITTLE_ENDIAN)
273# if !defined(HASH_BLOCK_DATA_ORDER_ALIGNED) && HASH_LONG_LOG2==2
274# define HASH_BLOCK_DATA_ORDER_ALIGNED HASH_BLOCK_HOST_ORDER
275# endif
276# endif
277#endif
278
279#if !defined(HASH_BLOCK_DATA_ORDER_ALIGNED)
280#ifndef HASH_BLOCK_DATA_ORDER
281#error "HASH_BLOCK_DATA_ORDER must be defined!"
282#endif
283#endif
284
285#if defined(DATA_ORDER_IS_BIG_ENDIAN)
286
287#ifndef PEDANTIC
288# if defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
289# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
290 /*
291 * This gives ~30-40% performance improvement in SHA-256 compiled
292 * with gcc [on P4]. Well, first macro to be frank. We can pull
293 * this trick on x86* platforms only, because these CPUs can fetch
294 * unaligned data without raising an exception.
295 */
296# define HOST_c2l(c,l) ({ unsigned int r=*((const unsigned int *)(c)); \
297 asm ("bswapl %0":"=r"(r):"0"(r)); \
298 (c)+=4; (l)=r; })
299# define HOST_l2c(l,c) ({ unsigned int r=(l); \
300 asm ("bswapl %0":"=r"(r):"0"(r)); \
301 *((unsigned int *)(c))=r; (c)+=4; r; })
302# endif
303# endif
304#endif
305
306#ifndef HOST_c2l
307#define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++)))<<24), \
308 l|=(((unsigned long)(*((c)++)))<<16), \
309 l|=(((unsigned long)(*((c)++)))<< 8), \
310 l|=(((unsigned long)(*((c)++))) ), \
311 l)
312#endif
313#define HOST_p_c2l(c,l,n) { \
314 switch (n) { \
315 case 0: l =((unsigned long)(*((c)++)))<<24; \
316 case 1: l|=((unsigned long)(*((c)++)))<<16; \
317 case 2: l|=((unsigned long)(*((c)++)))<< 8; \
318 case 3: l|=((unsigned long)(*((c)++))); \
319 } }
320#define HOST_p_c2l_p(c,l,sc,len) { \
321 switch (sc) { \
322 case 0: l =((unsigned long)(*((c)++)))<<24; \
323 if (--len == 0) break; \
324 case 1: l|=((unsigned long)(*((c)++)))<<16; \
325 if (--len == 0) break; \
326 case 2: l|=((unsigned long)(*((c)++)))<< 8; \
327 } }
328/* NOTE the pointer is not incremented at the end of this */
329#define HOST_c2l_p(c,l,n) { \
330 l=0; (c)+=n; \
331 switch (n) { \
332 case 3: l =((unsigned long)(*(--(c))))<< 8; \
333 case 2: l|=((unsigned long)(*(--(c))))<<16; \
334 case 1: l|=((unsigned long)(*(--(c))))<<24; \
335 } }
336#ifndef HOST_l2c
337#define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
338 *((c)++)=(unsigned char)(((l)>>16)&0xff), \
339 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
340 *((c)++)=(unsigned char)(((l) )&0xff), \
341 l)
342#endif
343
344#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
345
346#if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
347 /* See comment in DATA_ORDER_IS_BIG_ENDIAN section. */
348# define HOST_c2l(c,l) ((l)=*((const unsigned int *)(c)), (c)+=4, l)
349# define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, l)
350#endif
351
352#ifndef HOST_c2l
353#define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++))) ), \
354 l|=(((unsigned long)(*((c)++)))<< 8), \
355 l|=(((unsigned long)(*((c)++)))<<16), \
356 l|=(((unsigned long)(*((c)++)))<<24), \
357 l)
358#endif
359#define HOST_p_c2l(c,l,n) { \
360 switch (n) { \
361 case 0: l =((unsigned long)(*((c)++))); \
362 case 1: l|=((unsigned long)(*((c)++)))<< 8; \
363 case 2: l|=((unsigned long)(*((c)++)))<<16; \
364 case 3: l|=((unsigned long)(*((c)++)))<<24; \
365 } }
366#define HOST_p_c2l_p(c,l,sc,len) { \
367 switch (sc) { \
368 case 0: l =((unsigned long)(*((c)++))); \
369 if (--len == 0) break; \
370 case 1: l|=((unsigned long)(*((c)++)))<< 8; \
371 if (--len == 0) break; \
372 case 2: l|=((unsigned long)(*((c)++)))<<16; \
373 } }
374/* NOTE the pointer is not incremented at the end of this */
375#define HOST_c2l_p(c,l,n) { \
376 l=0; (c)+=n; \
377 switch (n) { \
378 case 3: l =((unsigned long)(*(--(c))))<<16; \
379 case 2: l|=((unsigned long)(*(--(c))))<< 8; \
380 case 1: l|=((unsigned long)(*(--(c)))); \
381 } }
382#ifndef HOST_l2c
383#define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
384 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
385 *((c)++)=(unsigned char)(((l)>>16)&0xff), \
386 *((c)++)=(unsigned char)(((l)>>24)&0xff), \
387 l)
388#endif
389
390#endif
391
392/*
393 * Time for some action:-)
394 */
395
396int HASH_UPDATE (HASH_CTX *c, const void *data_, FIPS_SHA_SIZE_T len)
397 {
398 const unsigned char *data=data_;
399 register HASH_LONG * p;
400 register HASH_LONG l;
401 size_t sw,sc,ew,ec;
402
403 if(FIPS_selftest_failed())
404 return 0;
405
406 if (len==0) return 1;
407
408 l=(c->Nl+(((HASH_LONG)len)<<3))&0xffffffffUL;
409 /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to
410 * Wei Dai <weidai@eskimo.com> for pointing it out. */
411 if (l < c->Nl) /* overflow */
412 c->Nh++;
413 c->Nh+=(len>>29); /* might cause compiler warning on 16-bit */
414 c->Nl=l;
415
416 if (c->num != 0)
417 {
418 p=c->data;
419 sw=c->num>>2;
420 sc=c->num&0x03;
421
422 if ((c->num+len) >= HASH_CBLOCK)
423 {
424 l=p[sw]; HOST_p_c2l(data,l,sc); p[sw++]=l;
425 for (; sw<HASH_LBLOCK; sw++)
426 {
427 HOST_c2l(data,l); p[sw]=l;
428 }
429 HASH_BLOCK_HOST_ORDER (c,p,1);
430 len-=(HASH_CBLOCK-c->num);
431 c->num=0;
432 /* drop through and do the rest */
433 }
434 else
435 {
436 c->num+=(unsigned int)len;
437 if ((sc+len) < 4) /* ugly, add char's to a word */
438 {
439 l=p[sw]; HOST_p_c2l_p(data,l,sc,len); p[sw]=l;
440 }
441 else
442 {
443 ew=(c->num>>2);
444 ec=(c->num&0x03);
445 if (sc)
446 l=p[sw];
447 HOST_p_c2l(data,l,sc);
448 p[sw++]=l;
449 for (; sw < ew; sw++)
450 {
451 HOST_c2l(data,l); p[sw]=l;
452 }
453 if (ec)
454 {
455 HOST_c2l_p(data,l,ec); p[sw]=l;
456 }
457 }
458 return 1;
459 }
460 }
461
462 sw=len/HASH_CBLOCK;
463 if (sw > 0)
464 {
465#if defined(HASH_BLOCK_DATA_ORDER_ALIGNED)
466 /*
467 * Note that HASH_BLOCK_DATA_ORDER_ALIGNED gets defined
468 * only if sizeof(HASH_LONG)==4.
469 */
470 if ((((size_t)data)%4) == 0)
471 {
472 /* data is properly aligned so that we can cast it: */
473 HASH_BLOCK_DATA_ORDER_ALIGNED (c,(const HASH_LONG *)data,sw);
474 sw*=HASH_CBLOCK;
475 data+=sw;
476 len-=sw;
477 }
478 else
479#if !defined(HASH_BLOCK_DATA_ORDER)
480 while (sw--)
481 {
482 memcpy (p=c->data,data,HASH_CBLOCK);
483 HASH_BLOCK_DATA_ORDER_ALIGNED(c,p,1);
484 data+=HASH_CBLOCK;
485 len-=HASH_CBLOCK;
486 }
487#endif
488#endif
489#if defined(HASH_BLOCK_DATA_ORDER)
490 {
491 HASH_BLOCK_DATA_ORDER(c,data,sw);
492 sw*=HASH_CBLOCK;
493 data+=sw;
494 len-=sw;
495 }
496#endif
497 }
498
499 if (len!=0)
500 {
501 p = c->data;
502 c->num = len;
503 ew=len>>2; /* words to copy */
504 ec=len&0x03;
505 for (; ew; ew--,p++)
506 {
507 HOST_c2l(data,l); *p=l;
508 }
509 HOST_c2l_p(data,l,ec);
510 *p=l;
511 }
512 return 1;
513 }
514
515
516void HASH_TRANSFORM (HASH_CTX *c, const unsigned char *data)
517 {
518#if defined(HASH_BLOCK_DATA_ORDER_ALIGNED)
519 if ((((size_t)data)%4) == 0)
520 /* data is properly aligned so that we can cast it: */
521 HASH_BLOCK_DATA_ORDER_ALIGNED (c,(const HASH_LONG *)data,1);
522 else
523#if !defined(HASH_BLOCK_DATA_ORDER)
524 {
525 memcpy (c->data,data,HASH_CBLOCK);
526 HASH_BLOCK_DATA_ORDER_ALIGNED (c,c->data,1);
527 }
528#endif
529#endif
530#if defined(HASH_BLOCK_DATA_ORDER)
531 HASH_BLOCK_DATA_ORDER (c,data,1);
532#endif
533 }
534
535
536int HASH_FINAL (unsigned char *md, HASH_CTX *c)
537 {
538 register HASH_LONG *p;
539 register unsigned long l;
540 register int i,j;
541 static const unsigned char end[4]={0x80,0x00,0x00,0x00};
542 const unsigned char *cp=end;
543
544 /* c->num should definitly have room for at least one more byte. */
545 p=c->data;
546 i=c->num>>2;
547 j=c->num&0x03;
548
549#if 0
550 /* purify often complains about the following line as an
551 * Uninitialized Memory Read. While this can be true, the
552 * following p_c2l macro will reset l when that case is true.
553 * This is because j&0x03 contains the number of 'valid' bytes
554 * already in p[i]. If and only if j&0x03 == 0, the UMR will
555 * occur but this is also the only time p_c2l will do
556 * l= *(cp++) instead of l|= *(cp++)
557 * Many thanks to Alex Tang <altitude@cic.net> for pickup this
558 * 'potential bug' */
559#ifdef PURIFY
560 if (j==0) p[i]=0; /* Yeah, but that's not the way to fix it:-) */
561#endif
562 l=p[i];
563#else
564 l = (j==0) ? 0 : p[i];
565#endif
566 HOST_p_c2l(cp,l,j); p[i++]=l; /* i is the next 'undefined word' */
567
568 if (i>(HASH_LBLOCK-2)) /* save room for Nl and Nh */
569 {
570 if (i<HASH_LBLOCK) p[i]=0;
571 HASH_BLOCK_HOST_ORDER (c,p,1);
572 i=0;
573 }
574 for (; i<(HASH_LBLOCK-2); i++)
575 p[i]=0;
576
577#if defined(DATA_ORDER_IS_BIG_ENDIAN)
578 p[HASH_LBLOCK-2]=c->Nh;
579 p[HASH_LBLOCK-1]=c->Nl;
580#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
581 p[HASH_LBLOCK-2]=c->Nl;
582 p[HASH_LBLOCK-1]=c->Nh;
583#endif
584 HASH_BLOCK_HOST_ORDER (c,p,1);
585
586#ifndef HASH_MAKE_STRING
587#error "HASH_MAKE_STRING must be defined!"
588#else
589 HASH_MAKE_STRING(c,md);
590#endif
591
592 c->num=0;
593 /* clear stuff, HASH_BLOCK may be leaving some stuff on the stack
594 * but I'm not worried :-)
595 OPENSSL_cleanse((void *)c,sizeof(HASH_CTX));
596 */
597 return 1;
598 }
599
600#ifndef MD32_REG_T
601#define MD32_REG_T long
602/*
603 * This comment was originaly written for MD5, which is why it
604 * discusses A-D. But it basically applies to all 32-bit digests,
605 * which is why it was moved to common header file.
606 *
607 * In case you wonder why A-D are declared as long and not
608 * as MD5_LONG. Doing so results in slight performance
609 * boost on LP64 architectures. The catch is we don't
610 * really care if 32 MSBs of a 64-bit register get polluted
611 * with eventual overflows as we *save* only 32 LSBs in
612 * *either* case. Now declaring 'em long excuses the compiler
613 * from keeping 32 MSBs zeroed resulting in 13% performance
614 * improvement under SPARC Solaris7/64 and 5% under AlphaLinux.
615 * Well, to be honest it should say that this *prevents*
616 * performance degradation.
617 * <appro@fy.chalmers.se>
618 * Apparently there're LP64 compilers that generate better
619 * code if A-D are declared int. Most notably GCC-x86_64
620 * generates better code.
621 * <appro@fy.chalmers.se>
622 */
623#endif
diff --git a/src/lib/libssl/src/fips/sha1/fips_sha1_selftest.c b/src/lib/libssl/src/fips/sha1/fips_sha1_selftest.c
new file mode 100644
index 0000000000..248539acb0
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/fips_sha1_selftest.c
@@ -0,0 +1,97 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#include <string.h>
51#include <openssl/err.h>
52#include <openssl/fips.h>
53#include <openssl/sha.h>
54
55#ifdef OPENSSL_FIPS
56static char *test[]=
57 {
58 "",
59 "abc",
60 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
61 NULL,
62 };
63
64static unsigned char ret[][SHA_DIGEST_LENGTH]=
65 {
66 { 0xda,0x39,0xa3,0xee,0x5e,0x6b,0x4b,0x0d,0x32,0x55,
67 0xbf,0xef,0x95,0x60,0x18,0x90,0xaf,0xd8,0x07,0x09 },
68 { 0xa9,0x99,0x3e,0x36,0x47,0x06,0x81,0x6a,0xba,0x3e,
69 0x25,0x71,0x78,0x50,0xc2,0x6c,0x9c,0xd0,0xd8,0x9d },
70 { 0x84,0x98,0x3e,0x44,0x1c,0x3b,0xd2,0x6e,0xba,0xae,
71 0x4a,0xa1,0xf9,0x51,0x29,0xe5,0xe5,0x46,0x70,0xf1 },
72 };
73
74void FIPS_corrupt_sha1()
75 {
76 ret[0][0]++;
77 }
78
79int FIPS_selftest_sha1()
80 {
81 int n;
82
83 for(n=0 ; test[n] ; ++n)
84 {
85 unsigned char md[SHA_DIGEST_LENGTH];
86
87 SHA1((unsigned char*)test[n],strlen(test[n]),md);
88 if(memcmp(md,ret[n],sizeof md))
89 {
90 FIPSerr(FIPS_F_FIPS_SELFTEST_SHA1,FIPS_R_SELFTEST_FAILED);
91 return 0;
92 }
93 }
94 return 1;
95 }
96
97#endif
diff --git a/src/lib/libssl/src/crypto/mdc2/mdc2test.c b/src/lib/libssl/src/fips/sha1/fips_sha1dgst.c
index c9abe99d92..dc2ce7daf0 100644
--- a/src/lib/libssl/src/crypto/mdc2/mdc2test.c
+++ b/src/lib/libssl/src/fips/sha1/fips_sha1dgst.c
@@ -1,4 +1,4 @@
1/* crypto/mdc2/mdc2test.c */ 1/* crypto/sha/sha1dgst.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -56,91 +56,25 @@
56 * [including the GNU Public Licence.] 56 * [including the GNU Public Licence.]
57 */ 57 */
58 58
59#include <stdio.h> 59#if !defined(OPENSSL_NO_SHA1) && !defined(OPENSSL_NO_SHA)
60#include <stdlib.h>
61#include <string.h>
62 60
63#include "../e_os.h" 61#undef SHA_0
62#define SHA_1
64 63
65#if defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_MDC2) 64#include <openssl/opensslv.h>
66#define OPENSSL_NO_MDC2 65#include <openssl/opensslconf.h>
67#endif
68 66
69#ifdef OPENSSL_NO_MDC2 67#ifdef OPENSSL_FIPS
70int main(int argc, char *argv[]) 68const char *SHA1_version="SHA1" OPENSSL_VERSION_PTEXT;
71{
72 printf("No MDC2 support\n");
73 return(0);
74}
75#else
76#include <openssl/evp.h>
77#include <openssl/mdc2.h>
78 69
79#ifdef CHARSET_EBCDIC 70/* The implementation is in fips_md32_common.h */
80#include <openssl/ebcdic.h> 71#include "fips_sha_locl.h"
81#endif
82 72
83static unsigned char pad1[16]={ 73#else /* ndef OPENSSL_FIPS */
84 0x42,0xE5,0x0C,0xD2,0x24,0xBA,0xCE,0xBA,
85 0x76,0x0B,0xDD,0x2B,0xD4,0x09,0x28,0x1A
86 };
87 74
88static unsigned char pad2[16]={ 75static void *dummy=&dummy;
89 0x2E,0x46,0x79,0xB5,0xAD,0xD9,0xCA,0x75,
90 0x35,0xD8,0x7A,0xFE,0xAB,0x33,0xBE,0xE2
91 };
92 76
93int main(int argc, char *argv[]) 77#endif /* ndef OPENSSL_FIPS */
94 {
95 int ret=0;
96 unsigned char md[MDC2_DIGEST_LENGTH];
97 int i;
98 EVP_MD_CTX c;
99 static char *text="Now is the time for all ";
100 78
101#ifdef CHARSET_EBCDIC
102 ebcdic2ascii(text,text,strlen(text));
103#endif 79#endif
104 80
105 EVP_MD_CTX_init(&c);
106 EVP_DigestInit_ex(&c,EVP_mdc2(), NULL);
107 EVP_DigestUpdate(&c,(unsigned char *)text,strlen(text));
108 EVP_DigestFinal_ex(&c,&(md[0]),NULL);
109
110 if (memcmp(md,pad1,MDC2_DIGEST_LENGTH) != 0)
111 {
112 for (i=0; i<MDC2_DIGEST_LENGTH; i++)
113 printf("%02X",md[i]);
114 printf(" <- generated\n");
115 for (i=0; i<MDC2_DIGEST_LENGTH; i++)
116 printf("%02X",pad1[i]);
117 printf(" <- correct\n");
118 ret=1;
119 }
120 else
121 printf("pad1 - ok\n");
122
123 EVP_DigestInit_ex(&c,EVP_mdc2(), NULL);
124 /* FIXME: use a ctl function? */
125 ((MDC2_CTX *)c.md_data)->pad_type=2;
126 EVP_DigestUpdate(&c,(unsigned char *)text,strlen(text));
127 EVP_DigestFinal_ex(&c,&(md[0]),NULL);
128
129 if (memcmp(md,pad2,MDC2_DIGEST_LENGTH) != 0)
130 {
131 for (i=0; i<MDC2_DIGEST_LENGTH; i++)
132 printf("%02X",md[i]);
133 printf(" <- generated\n");
134 for (i=0; i<MDC2_DIGEST_LENGTH; i++)
135 printf("%02X",pad2[i]);
136 printf(" <- correct\n");
137 ret=1;
138 }
139 else
140 printf("pad2 - ok\n");
141
142 EVP_MD_CTX_cleanup(&c);
143 EXIT(ret);
144 return(ret);
145 }
146#endif
diff --git a/src/lib/libssl/src/fips/sha1/fips_sha1test.c b/src/lib/libssl/src/fips/sha1/fips_sha1test.c
new file mode 100644
index 0000000000..176d6009bb
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/fips_sha1test.c
@@ -0,0 +1,151 @@
1#include <stdio.h>
2#include <assert.h>
3#include <ctype.h>
4#include <string.h>
5#include <stdlib.h>
6#include <openssl/sha.h>
7#include <openssl/err.h>
8#include <openssl/fips.h>
9#ifdef FLAT_INC
10#include "e_os.h"
11#else
12#include "../e_os.h"
13#endif
14
15#ifndef OPENSSL_FIPS
16int main(int argc, char *argv[])
17{
18 printf("No FIPS SHA1 support\n");
19 return(0);
20}
21#else
22
23#define MAX_TEST_BITS 103432
24
25static void dump(const unsigned char *b,int n)
26 {
27 while(n-- > 0)
28 printf("%02X",*b++);
29 }
30
31static void bitfill(unsigned char *buf,int bit,int b,int n)
32 {
33 for( ; n > 0 ; --n,++bit)
34 {
35 assert(bit < MAX_TEST_BITS);
36 buf[bit/8]|=b << (7-bit%8);
37 }
38 }
39
40void montecarlo(unsigned char *seed,int n)
41 {
42 int i,j;
43 unsigned char m[10240];
44
45 memcpy(m,seed,n);
46 for(j=0 ; j < 100 ; ++j)
47 {
48 for(i=1 ; i <= 50000 ; ++i)
49 {
50 memset(m+n,'\0',j/4+3);
51 n+=j/4+3;
52 m[n++]=i >> 24;
53 m[n++]=i >> 16;
54 m[n++]=i >> 8;
55 m[n++]=i;
56/* putchar(' '); */
57/* dump(m,bit/8); */
58/* putchar('\n'); */
59 SHA1(m,n,m);
60 n=20;
61 }
62 dump(m,20);
63 puts(" ^");
64 }
65 }
66
67int main(int argc,char **argv)
68 {
69 FILE *fp;
70 int phase;
71
72 if(argc != 2)
73 {
74 fprintf(stderr,"%s <test vector file>\n",argv[0]);
75 EXIT(1);
76 }
77
78 if(!FIPS_mode_set(1,argv[0]))
79 {
80 ERR_load_crypto_strings();
81 ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
82 EXIT(1);
83 }
84 fp=fopen(argv[1],"r");
85 if(!fp)
86 {
87 perror(argv[1]);
88 EXIT(2);
89 }
90
91 for(phase=0 ; ; )
92 {
93 unsigned char buf[MAX_TEST_BITS/8];
94 unsigned char md[20];
95 char line[10240];
96 int n,t,b,bit;
97 char *p;
98
99 fgets(line,1024,fp);
100 if(feof(fp))
101 break;
102 n=strlen(line);
103 line[n-1]='\0';
104 if(!strcmp(line,"D>"))
105 ++phase;
106
107 if(!isdigit(line[0]))
108 {
109 puts(line);
110 continue;
111 }
112 for( ; ; )
113 {
114 assert(n > 1);
115 if(line[n-2] == '^')
116 break;
117 fgets(line+n-1,sizeof(line)-n+1,fp);
118 n=strlen(line);
119 /* printf("line=%s\n",line); */
120 assert(!feof(fp));
121 }
122
123 p=strtok(line," ");
124 t=atoi(p);
125 p=strtok(NULL," ");
126 b=atoi(p);
127 memset(buf,'\0',sizeof buf);
128 for(bit=0,p=strtok(NULL," ") ; p && *p != '^' ; p=strtok(NULL," "))
129 {
130 assert(t-- > 0);
131 bitfill(buf,bit,b,atoi(p));
132 bit+=atoi(p);
133 b=1-b;
134 }
135 assert(t == 0);
136 assert((bit%8) == 0);
137 /* dump(buf,bit/8); */
138 /* putchar('\n'); */
139 if(phase < 3)
140 {
141 SHA1(buf,bit/8,md);
142 dump(md,20);
143 puts(" ^");
144 }
145 else
146 montecarlo(buf,bit/8);
147 }
148 EXIT(0);
149 return(0);
150 }
151#endif
diff --git a/src/lib/libssl/src/fips/sha1/fips_sha_locl.h b/src/lib/libssl/src/fips/sha1/fips_sha_locl.h
new file mode 100644
index 0000000000..6146b07812
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/fips_sha_locl.h
@@ -0,0 +1,479 @@
1/* crypto/sha/sha_locl.h */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdlib.h>
60#include <string.h>
61
62#include <openssl/opensslconf.h>
63#include <openssl/sha.h>
64#include <openssl/fips.h>
65
66#ifndef SHA_LONG_LOG2
67#define SHA_LONG_LOG2 2 /* default to 32 bits */
68#endif
69
70#define DATA_ORDER_IS_BIG_ENDIAN
71
72#define HASH_LONG SHA_LONG
73#define HASH_LONG_LOG2 SHA_LONG_LOG2
74#define HASH_CTX SHA_CTX
75#define HASH_CBLOCK SHA_CBLOCK
76#define HASH_LBLOCK SHA_LBLOCK
77#define HASH_MAKE_STRING(c,s) do { \
78 unsigned long ll; \
79 ll=(c)->h0; HOST_l2c(ll,(s)); \
80 ll=(c)->h1; HOST_l2c(ll,(s)); \
81 ll=(c)->h2; HOST_l2c(ll,(s)); \
82 ll=(c)->h3; HOST_l2c(ll,(s)); \
83 ll=(c)->h4; HOST_l2c(ll,(s)); \
84 } while (0)
85
86#if defined(SHA_0)
87
88# define HASH_UPDATE SHA_Update
89# define HASH_TRANSFORM SHA_Transform
90# define HASH_FINAL SHA_Final
91# define HASH_INIT SHA_Init
92# define HASH_BLOCK_HOST_ORDER sha_block_host_order
93# define HASH_BLOCK_DATA_ORDER sha_block_data_order
94# define Xupdate(a,ix,ia,ib,ic,id) (ix=(a)=(ia^ib^ic^id))
95
96 void sha_block_host_order (SHA_CTX *c, const void *p,FIPS_SHA_SIZE_T num);
97 void sha_block_data_order (SHA_CTX *c, const void *p,FIPS_SHA_SIZE_T num);
98
99#elif defined(SHA_1)
100
101# define HASH_UPDATE SHA1_Update
102# define HASH_TRANSFORM SHA1_Transform
103# define HASH_FINAL SHA1_Final
104# define HASH_INIT SHA1_Init
105# define HASH_BLOCK_HOST_ORDER sha1_block_host_order
106# define HASH_BLOCK_DATA_ORDER sha1_block_data_order
107# if defined(__MWERKS__) && defined(__MC68K__)
108 /* Metrowerks for Motorola fails otherwise:-( <appro@fy.chalmers.se> */
109# define Xupdate(a,ix,ia,ib,ic,id) do { (a)=(ia^ib^ic^id); \
110 ix=(a)=ROTATE((a),1); \
111 } while (0)
112# else
113# define Xupdate(a,ix,ia,ib,ic,id) ( (a)=(ia^ib^ic^id), \
114 ix=(a)=ROTATE((a),1) \
115 )
116# endif
117
118# ifdef SHA1_ASM
119# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(__INTEL__)
120# define sha1_block_host_order sha1_block_asm_host_order
121# define DONT_IMPLEMENT_BLOCK_HOST_ORDER
122# define sha1_block_data_order sha1_block_asm_data_order
123# define DONT_IMPLEMENT_BLOCK_DATA_ORDER
124# define HASH_BLOCK_DATA_ORDER_ALIGNED sha1_block_asm_data_order
125# endif
126# endif
127 void sha1_block_host_order (SHA_CTX *c, const void *p,FIPS_SHA_SIZE_T num);
128 void sha1_block_data_order (SHA_CTX *c, const void *p,FIPS_SHA_SIZE_T num);
129
130#else
131# error "Either SHA_0 or SHA_1 must be defined."
132#endif
133
134#include "fips_md32_common.h"
135
136#define INIT_DATA_h0 0x67452301UL
137#define INIT_DATA_h1 0xefcdab89UL
138#define INIT_DATA_h2 0x98badcfeUL
139#define INIT_DATA_h3 0x10325476UL
140#define INIT_DATA_h4 0xc3d2e1f0UL
141
142int HASH_INIT (SHA_CTX *c)
143 {
144 c->h0=INIT_DATA_h0;
145 c->h1=INIT_DATA_h1;
146 c->h2=INIT_DATA_h2;
147 c->h3=INIT_DATA_h3;
148 c->h4=INIT_DATA_h4;
149 c->Nl=0;
150 c->Nh=0;
151 c->num=0;
152 return 1;
153 }
154
155#define K_00_19 0x5a827999UL
156#define K_20_39 0x6ed9eba1UL
157#define K_40_59 0x8f1bbcdcUL
158#define K_60_79 0xca62c1d6UL
159
160/* As pointed out by Wei Dai <weidai@eskimo.com>, F() below can be
161 * simplified to the code in F_00_19. Wei attributes these optimisations
162 * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
163 * #define F(x,y,z) (((x) & (y)) | ((~(x)) & (z)))
164 * I've just become aware of another tweak to be made, again from Wei Dai,
165 * in F_40_59, (x&a)|(y&a) -> (x|y)&a
166 */
167#define F_00_19(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
168#define F_20_39(b,c,d) ((b) ^ (c) ^ (d))
169#define F_40_59(b,c,d) (((b) & (c)) | (((b)|(c)) & (d)))
170#define F_60_79(b,c,d) F_20_39(b,c,d)
171
172#define BODY_00_15(i,a,b,c,d,e,f,xi) \
173 (f)=xi+(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \
174 (b)=ROTATE((b),30);
175
176#define BODY_16_19(i,a,b,c,d,e,f,xi,xa,xb,xc,xd) \
177 Xupdate(f,xi,xa,xb,xc,xd); \
178 (f)+=(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \
179 (b)=ROTATE((b),30);
180
181#define BODY_20_31(i,a,b,c,d,e,f,xi,xa,xb,xc,xd) \
182 Xupdate(f,xi,xa,xb,xc,xd); \
183 (f)+=(e)+K_20_39+ROTATE((a),5)+F_20_39((b),(c),(d)); \
184 (b)=ROTATE((b),30);
185
186#define BODY_32_39(i,a,b,c,d,e,f,xa,xb,xc,xd) \
187 Xupdate(f,xa,xa,xb,xc,xd); \
188 (f)+=(e)+K_20_39+ROTATE((a),5)+F_20_39((b),(c),(d)); \
189 (b)=ROTATE((b),30);
190
191#define BODY_40_59(i,a,b,c,d,e,f,xa,xb,xc,xd) \
192 Xupdate(f,xa,xa,xb,xc,xd); \
193 (f)+=(e)+K_40_59+ROTATE((a),5)+F_40_59((b),(c),(d)); \
194 (b)=ROTATE((b),30);
195
196#define BODY_60_79(i,a,b,c,d,e,f,xa,xb,xc,xd) \
197 Xupdate(f,xa,xa,xb,xc,xd); \
198 (f)=xa+(e)+K_60_79+ROTATE((a),5)+F_60_79((b),(c),(d)); \
199 (b)=ROTATE((b),30);
200
201#ifdef X
202#undef X
203#endif
204#ifndef MD32_XARRAY
205 /*
206 * Originally X was an array. As it's automatic it's natural
207 * to expect RISC compiler to accomodate at least part of it in
208 * the register bank, isn't it? Unfortunately not all compilers
209 * "find" this expectation reasonable:-( On order to make such
210 * compilers generate better code I replace X[] with a bunch of
211 * X0, X1, etc. See the function body below...
212 * <appro@fy.chalmers.se>
213 */
214# define X(i) XX##i
215#else
216 /*
217 * However! Some compilers (most notably HP C) get overwhelmed by
218 * that many local variables so that we have to have the way to
219 * fall down to the original behavior.
220 */
221# define X(i) XX[i]
222#endif
223
224#ifndef DONT_IMPLEMENT_BLOCK_HOST_ORDER
225void HASH_BLOCK_HOST_ORDER (SHA_CTX *c, const void *d, FIPS_SHA_SIZE_T num)
226 {
227 const SHA_LONG *W=d;
228 register unsigned MD32_REG_T A,B,C,D,E,T;
229#ifndef MD32_XARRAY
230 unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
231 XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
232#else
233 SHA_LONG XX[16];
234#endif
235
236 if(FIPS_selftest_failed())
237 return;
238
239 A=c->h0;
240 B=c->h1;
241 C=c->h2;
242 D=c->h3;
243 E=c->h4;
244
245 for (;;)
246 {
247 BODY_00_15( 0,A,B,C,D,E,T,W[ 0]);
248 BODY_00_15( 1,T,A,B,C,D,E,W[ 1]);
249 BODY_00_15( 2,E,T,A,B,C,D,W[ 2]);
250 BODY_00_15( 3,D,E,T,A,B,C,W[ 3]);
251 BODY_00_15( 4,C,D,E,T,A,B,W[ 4]);
252 BODY_00_15( 5,B,C,D,E,T,A,W[ 5]);
253 BODY_00_15( 6,A,B,C,D,E,T,W[ 6]);
254 BODY_00_15( 7,T,A,B,C,D,E,W[ 7]);
255 BODY_00_15( 8,E,T,A,B,C,D,W[ 8]);
256 BODY_00_15( 9,D,E,T,A,B,C,W[ 9]);
257 BODY_00_15(10,C,D,E,T,A,B,W[10]);
258 BODY_00_15(11,B,C,D,E,T,A,W[11]);
259 BODY_00_15(12,A,B,C,D,E,T,W[12]);
260 BODY_00_15(13,T,A,B,C,D,E,W[13]);
261 BODY_00_15(14,E,T,A,B,C,D,W[14]);
262 BODY_00_15(15,D,E,T,A,B,C,W[15]);
263
264 BODY_16_19(16,C,D,E,T,A,B,X( 0),W[ 0],W[ 2],W[ 8],W[13]);
265 BODY_16_19(17,B,C,D,E,T,A,X( 1),W[ 1],W[ 3],W[ 9],W[14]);
266 BODY_16_19(18,A,B,C,D,E,T,X( 2),W[ 2],W[ 4],W[10],W[15]);
267 BODY_16_19(19,T,A,B,C,D,E,X( 3),W[ 3],W[ 5],W[11],X( 0));
268
269 BODY_20_31(20,E,T,A,B,C,D,X( 4),W[ 4],W[ 6],W[12],X( 1));
270 BODY_20_31(21,D,E,T,A,B,C,X( 5),W[ 5],W[ 7],W[13],X( 2));
271 BODY_20_31(22,C,D,E,T,A,B,X( 6),W[ 6],W[ 8],W[14],X( 3));
272 BODY_20_31(23,B,C,D,E,T,A,X( 7),W[ 7],W[ 9],W[15],X( 4));
273 BODY_20_31(24,A,B,C,D,E,T,X( 8),W[ 8],W[10],X( 0),X( 5));
274 BODY_20_31(25,T,A,B,C,D,E,X( 9),W[ 9],W[11],X( 1),X( 6));
275 BODY_20_31(26,E,T,A,B,C,D,X(10),W[10],W[12],X( 2),X( 7));
276 BODY_20_31(27,D,E,T,A,B,C,X(11),W[11],W[13],X( 3),X( 8));
277 BODY_20_31(28,C,D,E,T,A,B,X(12),W[12],W[14],X( 4),X( 9));
278 BODY_20_31(29,B,C,D,E,T,A,X(13),W[13],W[15],X( 5),X(10));
279 BODY_20_31(30,A,B,C,D,E,T,X(14),W[14],X( 0),X( 6),X(11));
280 BODY_20_31(31,T,A,B,C,D,E,X(15),W[15],X( 1),X( 7),X(12));
281
282 BODY_32_39(32,E,T,A,B,C,D,X( 0),X( 2),X( 8),X(13));
283 BODY_32_39(33,D,E,T,A,B,C,X( 1),X( 3),X( 9),X(14));
284 BODY_32_39(34,C,D,E,T,A,B,X( 2),X( 4),X(10),X(15));
285 BODY_32_39(35,B,C,D,E,T,A,X( 3),X( 5),X(11),X( 0));
286 BODY_32_39(36,A,B,C,D,E,T,X( 4),X( 6),X(12),X( 1));
287 BODY_32_39(37,T,A,B,C,D,E,X( 5),X( 7),X(13),X( 2));
288 BODY_32_39(38,E,T,A,B,C,D,X( 6),X( 8),X(14),X( 3));
289 BODY_32_39(39,D,E,T,A,B,C,X( 7),X( 9),X(15),X( 4));
290
291 BODY_40_59(40,C,D,E,T,A,B,X( 8),X(10),X( 0),X( 5));
292 BODY_40_59(41,B,C,D,E,T,A,X( 9),X(11),X( 1),X( 6));
293 BODY_40_59(42,A,B,C,D,E,T,X(10),X(12),X( 2),X( 7));
294 BODY_40_59(43,T,A,B,C,D,E,X(11),X(13),X( 3),X( 8));
295 BODY_40_59(44,E,T,A,B,C,D,X(12),X(14),X( 4),X( 9));
296 BODY_40_59(45,D,E,T,A,B,C,X(13),X(15),X( 5),X(10));
297 BODY_40_59(46,C,D,E,T,A,B,X(14),X( 0),X( 6),X(11));
298 BODY_40_59(47,B,C,D,E,T,A,X(15),X( 1),X( 7),X(12));
299 BODY_40_59(48,A,B,C,D,E,T,X( 0),X( 2),X( 8),X(13));
300 BODY_40_59(49,T,A,B,C,D,E,X( 1),X( 3),X( 9),X(14));
301 BODY_40_59(50,E,T,A,B,C,D,X( 2),X( 4),X(10),X(15));
302 BODY_40_59(51,D,E,T,A,B,C,X( 3),X( 5),X(11),X( 0));
303 BODY_40_59(52,C,D,E,T,A,B,X( 4),X( 6),X(12),X( 1));
304 BODY_40_59(53,B,C,D,E,T,A,X( 5),X( 7),X(13),X( 2));
305 BODY_40_59(54,A,B,C,D,E,T,X( 6),X( 8),X(14),X( 3));
306 BODY_40_59(55,T,A,B,C,D,E,X( 7),X( 9),X(15),X( 4));
307 BODY_40_59(56,E,T,A,B,C,D,X( 8),X(10),X( 0),X( 5));
308 BODY_40_59(57,D,E,T,A,B,C,X( 9),X(11),X( 1),X( 6));
309 BODY_40_59(58,C,D,E,T,A,B,X(10),X(12),X( 2),X( 7));
310 BODY_40_59(59,B,C,D,E,T,A,X(11),X(13),X( 3),X( 8));
311
312 BODY_60_79(60,A,B,C,D,E,T,X(12),X(14),X( 4),X( 9));
313 BODY_60_79(61,T,A,B,C,D,E,X(13),X(15),X( 5),X(10));
314 BODY_60_79(62,E,T,A,B,C,D,X(14),X( 0),X( 6),X(11));
315 BODY_60_79(63,D,E,T,A,B,C,X(15),X( 1),X( 7),X(12));
316 BODY_60_79(64,C,D,E,T,A,B,X( 0),X( 2),X( 8),X(13));
317 BODY_60_79(65,B,C,D,E,T,A,X( 1),X( 3),X( 9),X(14));
318 BODY_60_79(66,A,B,C,D,E,T,X( 2),X( 4),X(10),X(15));
319 BODY_60_79(67,T,A,B,C,D,E,X( 3),X( 5),X(11),X( 0));
320 BODY_60_79(68,E,T,A,B,C,D,X( 4),X( 6),X(12),X( 1));
321 BODY_60_79(69,D,E,T,A,B,C,X( 5),X( 7),X(13),X( 2));
322 BODY_60_79(70,C,D,E,T,A,B,X( 6),X( 8),X(14),X( 3));
323 BODY_60_79(71,B,C,D,E,T,A,X( 7),X( 9),X(15),X( 4));
324 BODY_60_79(72,A,B,C,D,E,T,X( 8),X(10),X( 0),X( 5));
325 BODY_60_79(73,T,A,B,C,D,E,X( 9),X(11),X( 1),X( 6));
326 BODY_60_79(74,E,T,A,B,C,D,X(10),X(12),X( 2),X( 7));
327 BODY_60_79(75,D,E,T,A,B,C,X(11),X(13),X( 3),X( 8));
328 BODY_60_79(76,C,D,E,T,A,B,X(12),X(14),X( 4),X( 9));
329 BODY_60_79(77,B,C,D,E,T,A,X(13),X(15),X( 5),X(10));
330 BODY_60_79(78,A,B,C,D,E,T,X(14),X( 0),X( 6),X(11));
331 BODY_60_79(79,T,A,B,C,D,E,X(15),X( 1),X( 7),X(12));
332
333 c->h0=(c->h0+E)&0xffffffffL;
334 c->h1=(c->h1+T)&0xffffffffL;
335 c->h2=(c->h2+A)&0xffffffffL;
336 c->h3=(c->h3+B)&0xffffffffL;
337 c->h4=(c->h4+C)&0xffffffffL;
338
339 if (--num == 0) break;
340
341 A=c->h0;
342 B=c->h1;
343 C=c->h2;
344 D=c->h3;
345 E=c->h4;
346
347 W+=SHA_LBLOCK;
348 }
349 }
350#endif
351
352#ifndef DONT_IMPLEMENT_BLOCK_DATA_ORDER
353void HASH_BLOCK_DATA_ORDER (SHA_CTX *c, const void *p, FIPS_SHA_SIZE_T num)
354 {
355 const unsigned char *data=p;
356 register unsigned MD32_REG_T A,B,C,D,E,T,l;
357#ifndef MD32_XARRAY
358 unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
359 XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
360#else
361 SHA_LONG XX[16];
362#endif
363
364 if(FIPS_selftest_failed())
365 return;
366
367 A=c->h0;
368 B=c->h1;
369 C=c->h2;
370 D=c->h3;
371 E=c->h4;
372
373 for (;;)
374 {
375
376 HOST_c2l(data,l); X( 0)=l; HOST_c2l(data,l); X( 1)=l;
377 BODY_00_15( 0,A,B,C,D,E,T,X( 0)); HOST_c2l(data,l); X( 2)=l;
378 BODY_00_15( 1,T,A,B,C,D,E,X( 1)); HOST_c2l(data,l); X( 3)=l;
379 BODY_00_15( 2,E,T,A,B,C,D,X( 2)); HOST_c2l(data,l); X( 4)=l;
380 BODY_00_15( 3,D,E,T,A,B,C,X( 3)); HOST_c2l(data,l); X( 5)=l;
381 BODY_00_15( 4,C,D,E,T,A,B,X( 4)); HOST_c2l(data,l); X( 6)=l;
382 BODY_00_15( 5,B,C,D,E,T,A,X( 5)); HOST_c2l(data,l); X( 7)=l;
383 BODY_00_15( 6,A,B,C,D,E,T,X( 6)); HOST_c2l(data,l); X( 8)=l;
384 BODY_00_15( 7,T,A,B,C,D,E,X( 7)); HOST_c2l(data,l); X( 9)=l;
385 BODY_00_15( 8,E,T,A,B,C,D,X( 8)); HOST_c2l(data,l); X(10)=l;
386 BODY_00_15( 9,D,E,T,A,B,C,X( 9)); HOST_c2l(data,l); X(11)=l;
387 BODY_00_15(10,C,D,E,T,A,B,X(10)); HOST_c2l(data,l); X(12)=l;
388 BODY_00_15(11,B,C,D,E,T,A,X(11)); HOST_c2l(data,l); X(13)=l;
389 BODY_00_15(12,A,B,C,D,E,T,X(12)); HOST_c2l(data,l); X(14)=l;
390 BODY_00_15(13,T,A,B,C,D,E,X(13)); HOST_c2l(data,l); X(15)=l;
391 BODY_00_15(14,E,T,A,B,C,D,X(14));
392 BODY_00_15(15,D,E,T,A,B,C,X(15));
393
394 BODY_16_19(16,C,D,E,T,A,B,X( 0),X( 0),X( 2),X( 8),X(13));
395 BODY_16_19(17,B,C,D,E,T,A,X( 1),X( 1),X( 3),X( 9),X(14));
396 BODY_16_19(18,A,B,C,D,E,T,X( 2),X( 2),X( 4),X(10),X(15));
397 BODY_16_19(19,T,A,B,C,D,E,X( 3),X( 3),X( 5),X(11),X( 0));
398
399 BODY_20_31(20,E,T,A,B,C,D,X( 4),X( 4),X( 6),X(12),X( 1));
400 BODY_20_31(21,D,E,T,A,B,C,X( 5),X( 5),X( 7),X(13),X( 2));
401 BODY_20_31(22,C,D,E,T,A,B,X( 6),X( 6),X( 8),X(14),X( 3));
402 BODY_20_31(23,B,C,D,E,T,A,X( 7),X( 7),X( 9),X(15),X( 4));
403 BODY_20_31(24,A,B,C,D,E,T,X( 8),X( 8),X(10),X( 0),X( 5));
404 BODY_20_31(25,T,A,B,C,D,E,X( 9),X( 9),X(11),X( 1),X( 6));
405 BODY_20_31(26,E,T,A,B,C,D,X(10),X(10),X(12),X( 2),X( 7));
406 BODY_20_31(27,D,E,T,A,B,C,X(11),X(11),X(13),X( 3),X( 8));
407 BODY_20_31(28,C,D,E,T,A,B,X(12),X(12),X(14),X( 4),X( 9));
408 BODY_20_31(29,B,C,D,E,T,A,X(13),X(13),X(15),X( 5),X(10));
409 BODY_20_31(30,A,B,C,D,E,T,X(14),X(14),X( 0),X( 6),X(11));
410 BODY_20_31(31,T,A,B,C,D,E,X(15),X(15),X( 1),X( 7),X(12));
411
412 BODY_32_39(32,E,T,A,B,C,D,X( 0),X( 2),X( 8),X(13));
413 BODY_32_39(33,D,E,T,A,B,C,X( 1),X( 3),X( 9),X(14));
414 BODY_32_39(34,C,D,E,T,A,B,X( 2),X( 4),X(10),X(15));
415 BODY_32_39(35,B,C,D,E,T,A,X( 3),X( 5),X(11),X( 0));
416 BODY_32_39(36,A,B,C,D,E,T,X( 4),X( 6),X(12),X( 1));
417 BODY_32_39(37,T,A,B,C,D,E,X( 5),X( 7),X(13),X( 2));
418 BODY_32_39(38,E,T,A,B,C,D,X( 6),X( 8),X(14),X( 3));
419 BODY_32_39(39,D,E,T,A,B,C,X( 7),X( 9),X(15),X( 4));
420
421 BODY_40_59(40,C,D,E,T,A,B,X( 8),X(10),X( 0),X( 5));
422 BODY_40_59(41,B,C,D,E,T,A,X( 9),X(11),X( 1),X( 6));
423 BODY_40_59(42,A,B,C,D,E,T,X(10),X(12),X( 2),X( 7));
424 BODY_40_59(43,T,A,B,C,D,E,X(11),X(13),X( 3),X( 8));
425 BODY_40_59(44,E,T,A,B,C,D,X(12),X(14),X( 4),X( 9));
426 BODY_40_59(45,D,E,T,A,B,C,X(13),X(15),X( 5),X(10));
427 BODY_40_59(46,C,D,E,T,A,B,X(14),X( 0),X( 6),X(11));
428 BODY_40_59(47,B,C,D,E,T,A,X(15),X( 1),X( 7),X(12));
429 BODY_40_59(48,A,B,C,D,E,T,X( 0),X( 2),X( 8),X(13));
430 BODY_40_59(49,T,A,B,C,D,E,X( 1),X( 3),X( 9),X(14));
431 BODY_40_59(50,E,T,A,B,C,D,X( 2),X( 4),X(10),X(15));
432 BODY_40_59(51,D,E,T,A,B,C,X( 3),X( 5),X(11),X( 0));
433 BODY_40_59(52,C,D,E,T,A,B,X( 4),X( 6),X(12),X( 1));
434 BODY_40_59(53,B,C,D,E,T,A,X( 5),X( 7),X(13),X( 2));
435 BODY_40_59(54,A,B,C,D,E,T,X( 6),X( 8),X(14),X( 3));
436 BODY_40_59(55,T,A,B,C,D,E,X( 7),X( 9),X(15),X( 4));
437 BODY_40_59(56,E,T,A,B,C,D,X( 8),X(10),X( 0),X( 5));
438 BODY_40_59(57,D,E,T,A,B,C,X( 9),X(11),X( 1),X( 6));
439 BODY_40_59(58,C,D,E,T,A,B,X(10),X(12),X( 2),X( 7));
440 BODY_40_59(59,B,C,D,E,T,A,X(11),X(13),X( 3),X( 8));
441
442 BODY_60_79(60,A,B,C,D,E,T,X(12),X(14),X( 4),X( 9));
443 BODY_60_79(61,T,A,B,C,D,E,X(13),X(15),X( 5),X(10));
444 BODY_60_79(62,E,T,A,B,C,D,X(14),X( 0),X( 6),X(11));
445 BODY_60_79(63,D,E,T,A,B,C,X(15),X( 1),X( 7),X(12));
446 BODY_60_79(64,C,D,E,T,A,B,X( 0),X( 2),X( 8),X(13));
447 BODY_60_79(65,B,C,D,E,T,A,X( 1),X( 3),X( 9),X(14));
448 BODY_60_79(66,A,B,C,D,E,T,X( 2),X( 4),X(10),X(15));
449 BODY_60_79(67,T,A,B,C,D,E,X( 3),X( 5),X(11),X( 0));
450 BODY_60_79(68,E,T,A,B,C,D,X( 4),X( 6),X(12),X( 1));
451 BODY_60_79(69,D,E,T,A,B,C,X( 5),X( 7),X(13),X( 2));
452 BODY_60_79(70,C,D,E,T,A,B,X( 6),X( 8),X(14),X( 3));
453 BODY_60_79(71,B,C,D,E,T,A,X( 7),X( 9),X(15),X( 4));
454 BODY_60_79(72,A,B,C,D,E,T,X( 8),X(10),X( 0),X( 5));
455 BODY_60_79(73,T,A,B,C,D,E,X( 9),X(11),X( 1),X( 6));
456 BODY_60_79(74,E,T,A,B,C,D,X(10),X(12),X( 2),X( 7));
457 BODY_60_79(75,D,E,T,A,B,C,X(11),X(13),X( 3),X( 8));
458 BODY_60_79(76,C,D,E,T,A,B,X(12),X(14),X( 4),X( 9));
459 BODY_60_79(77,B,C,D,E,T,A,X(13),X(15),X( 5),X(10));
460 BODY_60_79(78,A,B,C,D,E,T,X(14),X( 0),X( 6),X(11));
461 BODY_60_79(79,T,A,B,C,D,E,X(15),X( 1),X( 7),X(12));
462
463 c->h0=(c->h0+E)&0xffffffffL;
464 c->h1=(c->h1+T)&0xffffffffL;
465 c->h2=(c->h2+A)&0xffffffffL;
466 c->h3=(c->h3+B)&0xffffffffL;
467 c->h4=(c->h4+C)&0xffffffffL;
468
469 if (--num == 0) break;
470
471 A=c->h0;
472 B=c->h1;
473 C=c->h2;
474 D=c->h3;
475 E=c->h4;
476
477 }
478 }
479#endif
diff --git a/src/lib/libssl/src/fips/sha1/fips_standalone_sha1.c b/src/lib/libssl/src/fips/sha1/fips_standalone_sha1.c
new file mode 100644
index 0000000000..1c2ec469e9
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/fips_standalone_sha1.c
@@ -0,0 +1,156 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#include <openssl/sha.h>
51#include <openssl/hmac.h>
52#include <openssl/opensslconf.h>
53#include <stdio.h>
54#include <stdlib.h>
55#include <string.h>
56
57int FIPS_selftest_failed() { return 0; }
58
59#ifdef OPENSSL_FIPS
60
61static void hmac_init(SHA_CTX *md_ctx,SHA_CTX *o_ctx,
62 const char *key)
63 {
64 int len=strlen(key);
65 int i;
66 unsigned char keymd[HMAC_MAX_MD_CBLOCK];
67 unsigned char pad[HMAC_MAX_MD_CBLOCK];
68
69 if (len > SHA_CBLOCK)
70 {
71 SHA1_Init(md_ctx);
72 SHA1_Update(md_ctx,key,len);
73 SHA1_Final(keymd,md_ctx);
74 len=20;
75 }
76 else
77 memcpy(keymd,key,len);
78 memset(&keymd[len],'\0',HMAC_MAX_MD_CBLOCK-len);
79
80 for(i=0 ; i < HMAC_MAX_MD_CBLOCK ; i++)
81 pad[i]=0x36^keymd[i];
82 SHA1_Init(md_ctx);
83 SHA1_Update(md_ctx,pad,SHA_CBLOCK);
84
85 for(i=0 ; i < HMAC_MAX_MD_CBLOCK ; i++)
86 pad[i]=0x5c^keymd[i];
87 SHA1_Init(o_ctx);
88 SHA1_Update(o_ctx,pad,SHA_CBLOCK);
89 }
90
91static void hmac_final(unsigned char *md,SHA_CTX *md_ctx,SHA_CTX *o_ctx)
92 {
93 unsigned char buf[20];
94
95 SHA1_Final(buf,md_ctx);
96 SHA1_Update(o_ctx,buf,sizeof buf);
97 SHA1_Final(md,o_ctx);
98 }
99
100#endif
101
102int main(int argc,char **argv)
103 {
104#ifdef OPENSSL_FIPS
105 static char key[]="etaonrishdlcupfm";
106 int n;
107
108 if(argc < 2)
109 {
110 fprintf(stderr,"%s [<file>]+\n",argv[0]);
111 exit(1);
112 }
113
114 for(n=1 ; n < argc ; ++n)
115 {
116 FILE *f=fopen(argv[n],"rb");
117 SHA_CTX md_ctx,o_ctx;
118 unsigned char md[20];
119 int i;
120
121 if(!f)
122 {
123 perror(argv[n]);
124 exit(2);
125 }
126
127 hmac_init(&md_ctx,&o_ctx,key);
128 for( ; ; )
129 {
130 char buf[1024];
131 int l=fread(buf,1,sizeof buf,f);
132
133 if(l == 0)
134 {
135 if(ferror(f))
136 {
137 perror(argv[n]);
138 exit(3);
139 }
140 else
141 break;
142 }
143 SHA1_Update(&md_ctx,buf,l);
144 }
145 hmac_final(md,&md_ctx,&o_ctx);
146
147 printf("HMAC-SHA1(%s)= ",argv[n]);
148 for(i=0 ; i < 20 ; ++i)
149 printf("%02x",md[i]);
150 printf("\n");
151 }
152#endif
153 return 0;
154 }
155
156
diff --git a/src/lib/libssl/src/fips/sha1/sha1hashes.txt b/src/lib/libssl/src/fips/sha1/sha1hashes.txt
new file mode 100644
index 0000000000..4adfa197e9
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/sha1hashes.txt
@@ -0,0 +1,342 @@
1# Configuration information for "SHA-1 Test"
2# SHA tests are configured for BYTE oriented implementations
3H>SHS Type 1 Hashes<H
4D>
5DA39A3EE5E6B4B0D3255BFEF95601890AFD80709 ^
63CDF2936DA2FC556BFA533AB1EB59CE710AC80E5 ^
719C1E2048FA7393CFBF2D310AD8209EC11D996E5 ^
8CA775D8C80FAA6F87FA62BECA6CA6089D63B56E5 ^
971AC973D0E4B50AE9E5043FF4D615381120A25A0 ^
10A6B5B9F854CFB76701C3BDDBF374B3094EA49CBA ^
11D87A0EE74E4B9AD72E6847C87BDEEB3D07844380 ^
121976B8DD509FE66BF09C9A8D33534D4EF4F63BFD ^
135A78F439B6DB845BB8A558E4CEB106CD7B7FF783 ^
14F871BCE62436C1E280357416695EE2EF9B83695C ^
1562B243D1B780E1D31CF1BA2DE3F01C72AEEA0E47 ^
161698994A273404848E56E7FDA4457B5900DE1342 ^
17056F4CDC02791DA7ED1EB2303314F7667518DEEF ^
189FE2DA967BD8441EEA1C32DF68DDAA9DC1FC8E4B ^
1973A31777B4ACE9384EFA8BBEAD45C51A71ABA6DD ^
203F9D7C4E2384EDDABFF5DD8A31E23DE3D03F42AC ^
214814908F72B93FFD011135BEE347DE9A08DA838F ^
220978374B67A412A3102C5AA0B10E1A6596FC68EB ^
2344AD6CB618BD935460D46D3F921D87B99AB91C1E ^
2402DC989AF265B09CF8485640842128DCF95E9F39 ^
2567507B8D497B35D6E99FC01976D73F54AECA75CF ^
261EAE0373C1317CB60C36A42A867B716039D441F5 ^
279C3834589E5BFFAC9F50950E0199B3EC2620BEC8 ^
28209F7ABC7F3B878EE46CDF3A1FBB9C21C3474F32 ^
2905FC054B00D97753A9B3E2DA8FBBA3EE808CEF22 ^
300C4980EA3A46C757DFBFC5BAA38AC6C8E72DDCE7 ^
3196A460D2972D276928B69864445BEA353BDCFFD2 ^
32F3EF04D8FA8C6FA9850F394A4554C080956FA64B ^
33F2A31D875D1D7B30874D416C4D2EA6BAF0FFBAFE ^
34F4942D3B9E9588DCFDC6312A84DF75D05F111C20 ^
35310207DF35B014E4676D30806FA34424813734DD ^
364DA1955B2FA7C7E74E3F47D7360CE530BBF57CA3 ^
3774C4BC5B26FB4A08602D40CCEC6C6161B6C11478 ^
380B103CE297338DFC7395F7715EE47539B556DDB6 ^
39EFC72D99E3D2311CE14190C0B726BDC68F4B0821 ^
40660EDAC0A8F4CE33DA0D8DBAE597650E97687250 ^
41FE0A55A988B3B93946A63EB36B23785A5E6EFC3E ^
420CBDF2A5781C59F907513147A0DE3CC774B54BF3 ^
43663E40FEE5A44BFCB1C99EA5935A6B5BC9F583B0 ^
4400162134256952DD9AE6B51EFB159B35C3C138C7 ^
45CEB88E4736E354416E2010FC1061B3B53B81664B ^
46A6A2C4B6BCC41DDC67278F3DF4D8D0B9DD7784EF ^
47C23D083CD8820B57800A869F5F261D45E02DC55D ^
48E8AC31927B78DDEC41A31CA7A44EB7177165E7AB ^
49E864EC5DBAB0F9FF6984AB6AD43A8C9B81CC9F9C ^
50CFED6269069417A84D6DE2347220F4B858BCD530 ^
51D9217BFB46C96348722C3783D29D4B1A3FEDA38C ^
52DEC24E5554F79697218D317315FA986229CE3350 ^
5383A099DF7071437BA5495A5B0BFBFEFE1C0EF7F3 ^
54AA3198E30891A83E33CE3BFA0587D86A197D4F80 ^
559B6ACBEB4989CBEE7015C7D515A75672FFDE3442 ^
56B021EB08A436B02658EAA7BA3C88D49F1219C035 ^
57CAE36DAB8AEA29F62E0855D9CB3CD8E7D39094B1 ^
5802DE8BA699F3C1B0CB5AD89A01F2346E630459D7 ^
5988021458847DD39B4495368F7254941859FAD44B ^
6091A165295C666FE85C2ADBC5A10329DAF0CB81A0 ^
614B31312EAF8B506811151A9DBD162961F7548C4B ^
623FE70971B20558F7E9BAC303ED2BC14BDE659A62 ^
6393FB769D5BF49D6C563685954E2AECC024DC02D6 ^
64BC8827C3E614D515E83DEA503989DEA4FDA6EA13 ^
65E83868DBE4A389AB48E61CFC4ED894F32AE112AC ^
6655C95459CDE4B33791B4B2BCAAF840930AF3F3BD ^
6736BB0E2BA438A3E03214D9ED2B28A4D5C578FCAA ^
683ACBF874199763EBA20F3789DFC59572ACA4CF33 ^
6986BE037C4D509C9202020767D860DAB039CADACE ^
7051B57D7080A87394EEC3EB2E0B242E553F2827C9 ^
711EFBFA78866315CE6A71E457F3A750A38FACAB41 ^
7257D6CB41AEEC20236F365B3A490C61D0CFA39611 ^
73C532CB64B4BA826372BCCF2B4B5793D5B88BB715 ^
7415833B5631032663E783686A209C6A2B47A1080E ^
75D04F2043C96E10CD83B574B1E1C217052CD4A6B2 ^
76E8882627C64DB743F7DB8B4413DD033FC63BEB20 ^
77CD2D32286B8867BC124A0AF2236FC74BE3622199 ^
78019B70D745375091ED5C7B218445EC986D0F5A82 ^
79E5FF5FEC1DADBAED02BF2DAD4026BE6A96B3F2AF ^
806F4E23B3F2E2C068D13921FE4E5E053FFED4E146 ^
8125E179602A575C915067566FBA6DA930E97F8678 ^
8267DED0E68E235C8A523E051E86108EEB757EFBFD ^
83AF78536EA83C822796745556D62A3EE82C7BE098 ^
8464D7AC52E47834BE72455F6C64325F9C358B610D ^
859D4866BAA3639C13E541F250FFA3D8BC157A491F ^
862E258811961D3EB876F30E7019241A01F9517BEC ^
878E0EBC487146F83BC9077A1630E0FB3AB3C89E63 ^
88CE8953741FFF3425D2311FBBF4AB481B669DEF70 ^
89789D1D2DAB52086BD90C0E137E2515ED9C6B59B5 ^
90B76CE7472700DD68D6328B7AA8437FB051D15745 ^
91F218669B596C5FFB0B1C14BD03C467FC873230A0 ^
921FF3BDBE0D504CB0CDFAB17E6C37ABA6B3CFFDED ^
932F3CBACBB14405A4652ED52793C1814FD8C4FCE0 ^
94982C8AB6CE164F481915AF59AAED9FFF2A391752 ^
955CD92012D488A07ECE0E47901D0E083B6BD93E3F ^
9669603FEC02920851D4B3B8782E07B92BB2963009 ^
973E90F76437B1EA44CF98A08D83EA24CECF6E6191 ^
9834C09F107C42D990EB4881D4BF2DDDCAB01563AE ^
99474BE0E5892EB2382109BFC5E3C8249A9283B03D ^
100A04B4F75051786682483252438F6A75BF4705EC6 ^
101BE88A6716083EB50ED9416719D6A247661299383 ^
102C67E38717FEE1A5F65EC6C7C7C42AFC00CD37F04 ^
103959AC4082388E19E9BE5DE571C047EF10C174A8D ^
104BAA7AA7B7753FA0ABDC4A541842B5D238D949F0A ^
105351394DCEBC08155D100FCD488578E6AE71D0E9C ^
106AB8BE94C5AF60D9477EF1252D604E58E27B2A9EE ^
1073429EC74A695FDD3228F152564952308AFE0680A ^
108907FA46C029BC67EAA8E4F46E3C2A232F85BD122 ^
1092644C87D1FBBBC0FC8D65F64BCA2492DA15BAAE4 ^
110110A3EEB408756E2E81ABAF4C5DCD4D4C6AFCF6D ^
111CD4FDC35FAC7E1ADB5DE40F47F256EF74D584959 ^
1128E6E273208AC256F9ECCF296F3F5A37BC8A0F9F7 ^
113FE0606100BDBC268DB39B503E0FDFE3766185828 ^
1146C63C3E58047BCDB35A17F74EEBA4E9B14420809 ^
115BCC2BD305F0BCDA8CF2D478EF9FE080486CB265F ^
116CE5223FD3DD920A3B666481D5625B16457DCB5E8 ^
117948886776E42E4F5FAE1B2D0C906AC3759E3F8B0 ^
1184C12A51FCFE242F832E3D7329304B11B75161EFB ^
119C54BDD2050504D92F551D378AD5FC72C9ED03932 ^
1208F53E8FA79EA09FD1B682AF5ED1515ECA965604C ^
1212D7E17F6294524CE78B33EAB72CDD08E5FF6E313 ^
12264582B4B57F782C9302BFE7D07F74AA176627A3A ^
1236D88795B71D3E386BBD1EB830FB9F161BA98869F ^
12486AD34A6463F12CEE6DE9596ABA72F0DF1397FD1 ^
1257EB46685A57C0D466152DC339C8122548C757ED1 ^
126E7A98FB0692684054407CC221ABC60C199D6F52A ^
12734DF1306662206FD0A5FC2969A4BEEC4EB0197F7 ^
12856CF7EBF08D10F0CB9FE7EE3B63A5C3A02BCB450 ^
1293BAE5CB8226642088DA760A6F78B0CF8EDDEA9F1 ^
1306475DF681E061FA506672C27CBABFA9AA6DDFF62 ^
13179D81991FA4E4957C8062753439DBFD47BBB277D ^
132BAE224477B20302E881F5249F52EC6C34DA8ECEF ^
133EDE4DEB4293CFE4138C2C056B7C46FF821CC0ACC ^
134<D
135
136H>SHS Type 2 Hashes<H
137D>
138A771FA5C812BD0C9596D869EC99E4F4AC988B13F ^
139E99D566212BBBCEEE903946F6100C9C96039A8F4 ^
140B48CE6B1D13903E3925AE0C88CB931388C013F9C ^
141E647D5BAF670D4BF3AFC0A6B72A2424B0C64F194 ^
14265C1CD932A06B05CD0B43AFB3BC7891F6BCEF45C ^
14370FFAE353A5CD0F8A65A8B2746D0F16281B25EC7 ^
144CC8221F2B829B8CF39646BF46888317C3EB378EA ^
14526ACCC2D6D51FF7BF3E5895588907765111BB69B ^
14601072915B8E868D9B28E759CF2BC1AEA4BB92165 ^
1473016115711D74236ADF0C371E47992F87A428598 ^
148BF30417999C1368F008C1F19FECA4D18A5E1C3C9 ^
14962BA49087185F2742C26E1C1F4844112178BF673 ^
150E1F6B9536F384DD3098285BBFD495A474140DC5A ^
151B522DAE1D67726EBA7C4136D4E2F6D6D645AC43E ^
152E9A021C3EB0B9F2C710554D4BF21B19F78E09478 ^
153DF13573188F3BF705E697A3E1F580145F2183377 ^
154188835CFE52ECFA0C4135C2825F245DC29973970 ^
15541B615A34EE2CEC9D84A91B141CFAB115821950B ^
156AB3DD6221D2AFE6613B815DA1C389EEC74AA0337 ^
1570706D414B4AA7FB4A9051AA70D6856A7264054FB ^
1583CBF8151F3A00B1D5A809CBB8C4F3135055A6BD1 ^
159DA5D6A0319272BBCCEA63ACFA6799756FFDA6840 ^
160FB4429C95F6277B346D3B389413758DFFFEEDC98 ^
1612C6E30D9C895B42DCCCFC84C906EC88C09B20DE1 ^
1623DE3189A5E19F225CDCE254DFF23DACD22C61363 ^
16393530A9BC9A817F6922518A73A1505C411D05DA2 ^
164E31354345F832D31E05C1B842D405D4BD4588EC8 ^
1653FF76957E80B60CF74D015AD431FCA147B3AF232 ^
16634AE3B806BE143A84DCE82E4B830EB7D3D2BAC69 ^
167D7447E53D66BB5E4C26E8B41F83EFD107BF4ADDA ^
16877DD2A4482705BC2E9DC96EC0A13395771AC850C ^
169EAA1465DB1F59DE3F25EB8629602B568E693BB57 ^
1709329D5B40E0DC43AA25FED69A0FA9C211A948411 ^
171E94C0B6AA62AA08C625FAF817DDF8F51EC645273 ^
1727FF02B909D82AD668E31E547E0FB66CB8E213771 ^
1735BB3570858FA1744123BAC2873B0BB9810F53FA1 ^
174905F43940B3591CE39D1145ACB1ECA80AB5E43CD ^
175336C79FBD82F33E490C577E3F791C3CBFE842AFF ^
1765C6D07A6B44F7A75A64F6CE592F3BAE91E022210 ^
1777E0D3E9D33127F4A30EB8D9C134A58409FA8695B ^
1789A5F50DFCFB19286206C229019F0ABF25283028C ^
179DCA737E269F9D8626D488988C996E06B352C0708 ^
180B8FFC1D4972FCE63241E0E77850AC46DDE75DBFA ^
181E9C9BF41C8549354151B977003CE1D830BE667DB ^
1820942908960B54F96CB43452E583F4F9CB66E398A ^
183FCE34051C34D4B81B85DDC4B543CDE8007E284B3 ^
18461E8916532503627F4024D13884640A46F1D61D4 ^
185F008D5D7853B6A17B7466CD9E18BD135E520FAF4 ^
186BD8D2E873CF659B5C77AAC1616827EF8A3B1A3B3 ^
187B25A04DD425302ED211A1C2412D2410FA10C63B6 ^
188A404E21588123E0893718B4B44E91414A785B91F ^
189A1E13BC55BF6DAD83CF3AABDA3287AD68681EA64 ^
190D5FD35FFABED6733C92365929DF0FB4CAE864D15 ^
191C12E9C280EE9C079E0506FF89F9B20536E0A83EF ^
192E22769DC00748A9BBD6C05BBC8E81F2CD1DC4E2D ^
193F29835A93475740E888E8C14318F3CA45A3C8606 ^
1941A1D77C6D0F97C4B620FAA90F3F8644408E4B13D ^
1954EC84870E9BDD25F523C6DFB6EDD605052CA4EAA ^
196D689513FED08B80C39B67371959BC4E3FECB0537 ^
197C4FED58F209FC3C34AD19F86A6DACADC86C04D33 ^
198051888C6D00029C176DE792B84DECE2DC1C74B00 ^
1991A3540BEE05518505827954F58B751C475AEECE0 ^
200DFA19180359D5A7A38E842F172359CAF4208FC05 ^
2017B0FA84EBBCFF7D7F4500F73D79660C4A3431B67 ^
2029E886081C9ACAAD0F97B10810D1DE6FCDCE6B5F4 ^
203A4D46E4BA0AE4B012F75B1B50D0534D578AE9CB6 ^
2046342B199EE64C7B2C9CBCD4F2DCB65ACEF51516F ^
205AABFD63688EB678357869130083E1B52F6EA861D ^
206F732B7372DAF44801F81EFFE3108726239837936 ^
2075E9347FE4574CDCB80281ED092191199BADD7B42 ^
208D5776B7DFFF75C1358ABDBBB3F27A20BB6CA7C55 ^
209022B7ADA472FB7A9DA9219621C9C5F563D3792F6 ^
2107F1DE4ECA20362DA624653D225A5B3F7964A9FF2 ^
211CA0F2B1BFB4469C11ED006A994734F0F2F5EFD17 ^
212833D63F5C2EA0CD43EC15F2B9DD97FF12B030479 ^
21314FD356190416C00592B86FF7CA50B622F85593A ^
2144AB6B57EDDEF1CE935622F935C1619AE7C1667D6 ^
215B456A6A968ACD66CAA974F96A9A916E700AA3C5D ^
216FD1C257FE046B2A27E2F0CD55ED2DECA845F01D7 ^
21766E0D01780F1063E2929EAAD74826BC64060E38C ^
218A8478DF406F179FD4EF97F4574D7F99EA1CE9EB8 ^
219248E58CF09A372114FC2F93B09C5FC14F3D0059E ^
220F15767DE91796A6816977EFA4FCED4B7FD9B8A57 ^
22136A6BC5E680E15675D9696338C88B36248BBBAF4 ^
2224DEA6251B2A6DF017A8093AB066EE3863A4EC369 ^
223D30E70E357D57E3D82CA554B8A3D58DFF528FA94 ^
22470CA84D827F7FD61446233F88CF2F990B0F3E2AA ^
2258D500C9CFDE0288530A2106B70BED39326C52C3C ^
226F3D4D139EDFC24596377BC97A96FB7621F27FFC7 ^
2275509BAFFAC6D507860CEFC5AB5832CB63CD4B687 ^
2280C0AEA0C2FD7A620C77866B1A177481E26B4F592 ^
229149176007FEE58A591E3F00F8DB658B605F8390C ^
23017C0D7B0256159F3626786FFDB20237AE154FA84 ^
231741A58618ABEB1D983D67AFDCBC49AA397A3B8E0 ^
232B738D6B3409EB9ED2F1719B84D13F7C36169CDEC ^
2333D33DE31F64055D3B128AC9A6AA3F92DFD4F5330 ^
234B6925F4DF94949B8844C867428BA3DEDF4CF2B51 ^
235CF5E7256292ABEC431D8E8B9CBEAF22AF072377E ^
236975DCE94902923977F129C0E4ACF40AD28DDB9AA ^
237333B0259B18CE64D6B52CF563DD3041E5F63A516 ^
238<D
239
240H>SHS Type 3 Hashes<H
241D>
24280E044703A880C20EC41F645120A8A5B5D194ECE ^
243E142829CA08FC9787F17AA16CE727396169B2713 ^
2446A2BAF62469D311F9257A0727F52C7EAA87CCEB4 ^
245362E3E7136CA611D7FBF687D3BBDC54CDA64843F ^
246F5900ADC6223A5D24A7526ABFC60FA8E2D59A5AB ^
247AD0CAC6A21D5B10833DDE7FA85927D74EDA142A9 ^
24847AD337EAFFDC177AAF7CBD035BE6F398B9D0536 ^
2499CF58595DF80872535BCC7C056E223546F0BB4EE ^
2507151CEB1918278CED2902B1D663D596F8D1B986F ^
251ADDC9F09AA4026EF6C4B7F1A84D3A13B4CDC65B3 ^
252921FE78A863A317B1FA1FB3CA3BE1948DE7EF754 ^
25364BE10732D71D52CE8A486DA23E6B453DF7C6FBD ^
2544A450659470DD759ABFAE1D73972A6D2E63AC16C ^
2550D665E4BBF30B7EAB955BDE84759E185EECAB4CB ^
2560C1B8EE94D61CDD0837EAED9FE33DE4A8334B596 ^
257D93BFE2A6227A4BF9B7C61EBCE4A8CDE131593FE ^
258BDA883F804B470C90BD6AC490DFC34EBC27F9648 ^
25946A0969373552213632591C52030C38E5DBDC49E ^
2604781289E48B910C550DC23CA7D3AF5324C03532D ^
261693A34CFCDDED0F3AC72E7197FCE9BB66A8E3981 ^
262AE088AF1D8865140963B3ABFB63E32E04CD1506F ^
263ADF0F8F1D85CA97586F5DC6DC5FD11FA39270F55 ^
264E484F5AD86C5F4D09E366ADF6E0DE73449F97B28 ^
26581C49842BA3D7072FB42288E03CE737A2672C091 ^
266F6CC71AD897C23A16835490DED289BFD45500AB0 ^
26723E71AED62FE8E28F34F58E7FE5594EC5EB0486C ^
26892BA7934AA5867EE52960F4E0EDFB90AA7B69305 ^
269C3D1CC8CBD1B6FFEE0D90CE962CD9C09AB1548AA ^
2703CE37A583B71A6A77BE325066A0F00C5D11DFC3E ^
27176EF5D236E1042D356A3234A422C092F86003064 ^
2728C3F703436C6C882E60263540A8E4C3E5646DC15 ^
2736138F9F3AB43B988DD3857422CCB304352459F40 ^
274B812DE98775B4690B4FC2ECFCAB61C73C7271DC7 ^
27506660985CD80D48E7B9F88455B4233924C3B64BB ^
27676AB4B6378D6F63499A94EB67EB1CB31AFF8D775 ^
277F31F6B0BE7AB059A1F59A46481967E88392979E6 ^
2780C1638498FBB7DB9600B98B4B22EF85E0FE245FB ^
2795607C6AF600939736795AC523FA43B736F41A118 ^
2808A03244866BDD21B9D8A82E98436C894FAD86ECC ^
2818A75BFD911AF87303B9B8FB7A1A47CCA52D3D98A ^
28216F0F3B5D37411236A1E3D6B1EDAB74CDA25ED4B ^
283AC72BF45477481F58A302628DC5299FFA32E7C9F ^
28474CFFD5881F75AC20726E1447DCF7F47024380EF ^
2855BFBECEECBC27DA05729C4D1AC8C1286EA6DCEC9 ^
286012AACBC0579FA4CB4F107E9A9AD1A86AD2F6A4D ^
287F7D552CBC5EF90F1A579388B5A8A9EC71EB67681 ^
28810C70115C4C34753274BFED477DF01440A67A361 ^
289078D2FACD293B6B6219D89899C16AA1AA8E3DE82 ^
29083C6BF9FB0D3091ADF374EBFA0A69916F17E6D26 ^
2912CDB1924DA62AB64C007C6505FF657E4ADDEA9C1 ^
292E95D209BCB9864B076FF4DFCA8F8BD75D62D1B48 ^
293632824CF5025F8F90AD2923BDDF449550D64C0F5 ^
29402B1C0B41FC27EC5A32E586F1AC480BF0061E56A ^
29528156BC6769AE390BF32C6512C46169181E1536D ^
296F730E6E287D992E7F3E013B6F1E088F0B9C41598 ^
297B056A6A832FA5FE964EF77FF3E0BE1C32E0D58C0 ^
298D5B3D19AFBB48FB56BA6D44A82DE6BD08DB208DE ^
2990215AD79BD6B8023C05FD2F8966211897DF6337A ^
300EC4CF38C244EB6526A44F70570925247145DA8CA ^
301C0D931262ECE93DA5A6ABC89CD6AD3162EA6B09E ^
3026BB48FAC26AA2B4859BBDEFCFB53AE4D1D9A0340 ^
30358611D43741E67A7F0DA9CB337A59DCD1EBE758E ^
3047C2AEC216AF231509E47B7EED06BB17859812B7E ^
305F60EE5DBF4A7A676EC98B3DDB1CDD6CDF3CDA33B ^
3060492E59B1F4C94E97F29A26C3EE7D57E1B0FDD72 ^
3074FCF549D902D9BE1101A756DB9E45415FB61BCD2 ^
30895C71D26AD6B38CC771376B4A4F962F12E1E3D4F ^
309F6A2449E773C72FB886B3C43E2B30EC2A1B7454A ^
310CDE86695E00AEC9A5DB6FDDB5D5A5934448D58E0 ^
311502318A758FABFF6AC53844E9E2BCD159C678510 ^
312589D295148F95F75DAE964DD743FE981FA236D4E ^
3137973DD33AE3599A556BACC77E8656E782E029EFF ^
3149F5BE43AADD43C6DB3883C9DA4B52E1A50257AEE ^
315454289D8FFB237A56D5214EAE88F0A9D328FEA1A ^
3167E686B36595BEB4C0D4528FF960EDB55088A028D ^
317F9789D1EF19A0084AC0E9F43A4BC0EE0478939EF ^
3182F32B0E7CC8BE19C325545C816E77056D7BBE70F ^
3196B1617746F073CFCD2CEBCAFBBE6FD0E28ED2D56 ^
320CF8D2EA3888AD76761799383E5A15979F6DB7A88 ^
321557AF6D9D5947203C60E98C9A79B92B8BD085E2B ^
322C61A217423DE68ED6CD34C91756C8DD3A650A2A2 ^
32373F3F79C151B6C1BD9369EDB26B932C2362B0593 ^
324364141E5FBCDE83F210C5BBBEB6810F6299DE14B ^
325F806BECD025D264FD59E93D9E3606A674C40F216 ^
326E0C761A57F00CBFB07D49BCB034C36A7122F4C5B ^
3275D3831044B9E0032FBE3C3425FFD13698F413B33 ^
3287EB1AB41E9997753C5D530DF118E71E72D7B86FC ^
329CC053EA1556269D7E8BCBA30B208FCBF0EE2EE64 ^
330A57739B1DD41E7DC0C40D6B6159A7E73CE2748AA ^
33190DA527C9DB9ACC2FD530D560A2F1191A80D0567 ^
3326AC1F2A0B8CA0E5ABC9FDF1ADCE588FBDF5CC53E ^
33343C1A0A0EE4163EC929726989F92B03639B233AB ^
3348927F299462413AC29A74080E54D8EE2DB7165E7 ^
3350C8D7E22226D91B423E781B508F31517EAAB607B ^
3367286E20D7F08D18A893254FBD3CC833F7973DCAF ^
3370CB8C235928B8E936C43B8F29EF3758B9FD54A7B ^
338F67C24CC23E440CA3F206CEEB5504ECA54CD5CA3 ^
339D78A25DEAA1E7ADADDB3C145ED0E5263BA4F2910 ^
34000AA68174D29492C578AC853FFCD55908292D41A ^
341D5570EEDB09A62A5948F7F311F7ED5EF247F9AD9 ^
342<D
diff --git a/src/lib/libssl/src/fips/sha1/sha1vectors.txt b/src/lib/libssl/src/fips/sha1/sha1vectors.txt
new file mode 100644
index 0000000000..c2ea186603
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/sha1vectors.txt
@@ -0,0 +1,2293 @@
1# Configuration information for "SHA-1 Test"
2# SHA tests are configured for BYTE oriented implementations
3H>SHS Type 1 Strings<H
4D>
50 1 ^
65 0 2 1 2 1 2 ^
75 0 1 3 4 4 4 ^
87 0 4 3 4 4 1 4 4 ^
910 0 4 1 5 3 4 4 3 1 3 4 ^
1010 0 3 1 6 5 5 1 3 6 6 4 ^
1113 1 3 2 5 3 3 3 4 6 6 1 4 6 2 ^
1216 1 3 5 5 1 2 1 3 3 6 3 5 2 3 5 7 2 ^
1315 1 8 1 5 3 2 7 4 5 6 7 3 3 1 6 3 ^
1415 1 4 6 8 2 1 4 2 5 1 6 8 8 6 4 7 ^
1518 1 1 2 7 3 8 6 7 5 4 3 4 3 5 3 3 2 6 8 ^
1616 0 9 8 1 8 1 7 6 7 7 1 2 6 9 5 4 7 ^
1718 0 7 1 7 3 9 4 7 7 5 2 8 1 7 8 2 7 2 9 ^
1819 1 2 3 1 8 8 6 9 10 3 10 8 9 2 4 1 5 1 5 9 ^
1919 1 8 5 4 8 1 3 9 5 7 7 2 7 2 7 8 7 4 8 10 ^
2020 1 1 9 7 4 1 4 5 1 10 8 6 4 4 9 9 9 8 2 9 10 ^
2119 1 11 6 7 7 2 6 2 6 10 6 9 10 5 11 1 6 8 11 4 ^
2222 0 10 5 10 3 7 8 9 9 1 1 1 10 2 1 5 10 2 9 9 9 7 8 ^
2321 0 1 10 1 6 9 4 2 5 2 11 8 12 12 9 8 1 3 10 7 11 12 ^
2424 1 3 9 5 12 3 4 2 9 12 11 6 6 1 1 9 5 9 1 4 9 4 10 8 9 ^
2525 1 3 2 3 11 1 12 5 6 2 7 8 4 8 8 9 9 8 4 9 1 4 8 10 9 9 ^
2623 0 11 10 7 10 10 6 10 9 4 5 10 5 8 4 1 10 12 4 6 1 8 11 6 ^
2722 0 12 8 10 4 3 8 5 5 7 11 13 11 12 11 4 12 3 6 5 11 10 5 ^
2826 1 10 9 6 9 7 2 10 4 4 5 5 2 12 13 5 3 1 10 1 4 7 8 13 13 12 9 ^
2931 0 2 6 5 4 7 3 10 6 13 6 3 9 6 2 10 5 3 8 4 1 11 3 5 3 7 11 1 12 9 12 5 ^
3027 1 14 5 1 3 7 2 3 9 3 4 14 4 4 10 8 5 14 1 11 12 12 10 4 13 7 11 9 ^
3130 1 4 9 5 5 8 9 5 10 4 2 4 7 9 9 6 3 5 1 8 3 2 13 3 14 9 8 9 10 14 10 ^
3227 0 12 9 5 8 7 2 14 12 3 8 14 6 6 4 7 5 7 10 7 11 10 1 9 6 7 12 14 ^
3324 0 12 9 9 2 11 13 12 11 11 6 14 13 10 5 6 8 10 4 3 11 11 14 5 14 ^
3424 0 15 4 5 3 8 12 15 8 14 15 9 12 12 3 10 13 6 11 10 4 13 14 8 8 ^
3528 1 1 8 1 5 11 4 9 12 4 13 15 5 9 11 7 14 11 1 11 7 8 8 11 1 13 15 12 13 ^
3632 1 5 8 3 8 10 7 8 1 5 13 12 14 5 3 6 4 12 15 6 6 10 11 13 9 1 11 6 10 3 7 14
372 ^
3831 0 10 3 5 1 14 11 11 16 1 2 2 11 6 13 15 12 6 5 16 2 14 2 10 12 2 5 5 6 10 13
3915 ^
4034 0 3 10 8 16 9 5 12 15 4 11 13 3 6 5 10 8 1 3 9 3 11 1 2 16 12 10 6 1 9 1 16
415 6 14 ^
4230 1 1 12 4 4 2 15 13 15 11 15 5 11 9 7 15 16 6 16 12 3 2 10 16 5 5 7 1 7 11 16
43^
4434 0 7 9 11 2 5 5 5 4 13 13 14 4 7 12 6 4 8 2 9 9 13 13 3 3 6 7 16 7 6 15 5 8
4515 14 ^
4636 1 4 6 16 15 11 14 14 4 7 10 3 4 10 3 6 7 14 4 6 6 5 2 7 8 16 2 12 16 10 14 3
472 3 7 14 3 ^
4832 0 15 10 9 1 14 10 14 6 6 16 3 2 3 8 3 12 8 11 17 3 9 7 16 14 4 11 15 5 13 9
495 17 ^
5030 0 17 17 13 8 2 6 8 16 1 12 5 17 2 9 8 10 13 14 11 17 12 5 14 9 11 9 11 4 11
5112 ^
5230 1 16 6 10 5 8 3 17 16 14 1 15 15 15 6 13 2 11 6 13 11 13 4 6 7 11 11 12 16
5313 16 ^
5433 1 16 16 14 16 2 4 16 11 6 15 7 4 17 6 5 7 6 3 14 16 5 17 11 13 1 1 14 13 3 6
5514 5 16 ^
5639 1 2 16 13 7 8 6 2 15 1 9 12 4 4 11 13 7 2 11 9 18 4 5 4 8 2 14 9 9 1 8 13 11
5715 8 5 9 10 16 7 ^
5834 0 2 7 1 1 17 13 6 11 10 8 5 12 15 6 15 10 12 4 18 1 2 8 11 12 16 10 12 18 11
5916 12 11 17 6 ^
6034 1 4 7 13 7 10 7 10 6 1 12 7 18 11 18 2 10 15 10 14 8 18 9 9 12 12 3 13 12 6
614 9 17 13 17 ^
6240 0 5 7 3 2 1 17 14 4 16 6 13 1 13 6 6 10 1 3 18 3 11 7 9 5 7 11 17 1 9 16 5
6315 10 17 3 8 15 17 8 12 ^
6440 0 11 3 15 17 11 1 1 4 3 14 18 4 2 18 8 15 6 4 6 3 15 11 16 10 17 17 9 6 3 2
656 16 4 9 12 6 8 1 11 17 ^
6637 1 2 19 12 8 16 14 2 9 16 2 6 6 7 9 10 9 11 9 14 11 15 5 16 9 2 17 2 8 15 8 4
673 14 14 16 16 12 ^
6837 1 11 10 16 12 11 7 14 14 14 6 10 10 1 6 13 19 5 6 4 7 12 12 10 5 10 15 15 8
695 13 17 13 5 6 14 1 19 ^
7038 1 2 6 5 17 9 11 18 18 8 6 13 15 3 3 15 5 13 18 3 2 5 5 14 7 13 4 17 7 2 17 3
7118 15 7 15 16 18 11 ^
7238 1 12 8 6 3 17 12 13 19 15 9 7 17 16 15 3 11 11 5 2 13 19 16 2 4 16 7 8 1 2 9
7317 12 3 5 18 19 11 9 ^
7439 1 14 16 14 8 9 16 5 1 6 3 17 18 16 9 1 15 9 10 9 19 1 3 3 20 11 13 17 1 19 8
753 4 3 7 1 14 19 19 19 ^
7637 1 18 13 11 5 18 4 19 10 6 19 11 17 10 10 7 9 13 16 9 10 18 4 12 5 16 5 20 12
773 8 10 1 18 1 6 20 14 ^
7836 0 8 9 6 12 11 7 7 3 17 13 6 20 17 9 20 16 10 12 17 8 11 8 11 10 5 10 14 18 8
7919 9 12 12 2 20 19 ^
8039 0 12 16 20 3 9 9 19 17 13 13 4 17 2 11 7 14 3 6 16 13 10 13 5 16 10 2 8 2 17
8119 4 17 7 19 6 9 15 15 6 ^
8243 0 7 2 18 5 7 18 5 2 15 7 11 10 9 3 2 14 19 3 11 8 18 15 5 3 5 12 15 16 10 17
837 19 16 2 1 16 6 3 19 12 5 18 16 ^
8449 1 9 11 2 1 12 11 14 12 14 10 4 11 6 8 16 7 5 11 20 8 17 4 14 4 15 3 2 2 4 3
852 3 14 15 10 2 12 7 3 7 20 20 19 10 2 3 1 10 20 ^
8636 0 19 20 12 5 19 21 5 21 11 14 19 1 17 8 9 4 19 3 17 1 14 21 14 7 6 5 20 14
8721 20 4 6 21 7 11 12 ^
8841 0 12 9 11 6 16 18 18 10 11 20 6 12 11 5 7 21 19 18 6 15 21 10 4 14 9 19 10 3
893 5 13 1 8 12 3 13 9 7 10 17 14 ^
9045 0 10 6 8 3 17 18 3 21 19 6 17 15 4 9 15 9 15 14 4 7 14 8 10 13 4 11 10 7 6
9121 1 14 5 11 7 7 2 13 13 3 9 13 8 14 20 ^
9239 1 3 7 18 4 9 9 5 15 13 17 10 15 16 20 8 19 9 10 9 1 19 14 21 2 18 13 10 4 18
9316 4 21 15 10 18 19 3 12 18 ^
9441 0 14 4 13 11 1 11 1 10 2 12 4 21 10 21 18 9 2 16 7 20 6 7 12 19 20 1 13 12
9510 8 21 15 7 19 13 6 8 19 20 18 19 ^
9637 0 11 18 1 17 14 15 20 16 20 8 2 17 10 4 21 5 19 19 14 22 21 18 13 14 1 3 12
9711 11 4 22 13 5 18 7 21 21 ^
9848 0 9 22 19 12 8 16 5 17 5 9 1 2 9 6 12 6 1 7 4 3 15 1 14 1 12 3 10 2 10 14 21
9913 17 6 6 17 1 21 2 14 16 17 9 11 20 21 11 18 ^
10050 1 12 8 20 13 2 9 20 9 14 10 1 16 2 22 6 4 16 14 15 1 12 4 14 9 21 3 3 9 8 21
10115 14 8 4 14 4 2 3 8 12 8 6 1 2 18 20 15 3 19 10 ^
10244 0 10 20 14 6 3 4 21 1 12 4 18 2 6 7 6 9 20 14 10 10 19 17 21 12 15 17 7 10
10311 8 10 12 1 19 19 9 18 21 4 18 11 9 22 5 ^
10447 0 15 8 15 3 5 6 2 19 12 17 4 20 8 11 20 2 18 4 16 20 12 9 9 6 16 21 16 3 16
10518 3 19 5 16 2 4 2 12 11 15 11 14 17 2 10 18 8 ^
10648 1 5 13 3 21 5 3 6 18 18 10 1 21 21 7 1 13 12 19 1 14 6 8 21 19 21 11 19 13 2
10713 4 1 10 22 16 4 9 4 10 16 3 7 15 11 9 13 17 12 ^
10845 0 14 7 6 2 20 3 6 19 19 10 2 22 12 17 12 1 20 7 7 15 20 6 18 8 3 14 23 18 15
1094 7 5 23 15 7 14 10 10 19 17 2 4 15 17 21 ^
11045 1 15 11 8 9 17 5 12 18 14 6 20 17 21 12 16 9 22 9 20 15 2 22 11 2 6 11 9 8 2
1114 14 19 3 21 21 23 8 2 11 4 8 4 20 22 11 ^
11238 0 21 18 22 10 19 9 14 17 23 21 10 7 15 13 16 5 4 10 13 14 20 23 12 20 23 18
11310 12 8 21 11 6 12 7 19 14 18 17 ^
11440 0 18 22 6 9 22 5 23 13 6 8 23 20 22 5 22 15 19 20 9 9 1 13 13 10 14 13 5 22
11514 21 9 21 19 14 14 4 18 13 12 14 ^
11648 1 7 3 15 5 17 14 23 14 5 17 22 11 1 8 13 23 6 21 3 6 11 7 23 8 6 21 4 4 22
11719 13 8 5 19 7 5 23 1 4 19 11 23 11 21 14 1 3 21 ^
11843 0 22 14 11 7 18 16 17 24 12 12 3 13 19 16 22 4 16 4 6 23 8 18 11 2 3 20 22 9
11921 8 23 1 23 20 7 16 13 23 4 13 3 7 22 ^
12047 1 23 6 13 19 2 3 7 2 9 9 15 6 13 4 22 6 19 20 1 9 7 14 1 15 3 23 24 22 18 12
12112 17 19 10 8 11 22 12 10 2 20 15 18 17 18 7 19 ^
12247 1 12 21 6 12 4 7 18 17 3 2 14 24 14 1 23 1 11 15 10 6 18 20 7 1 8 1 16 6 20
12323 23 21 10 10 12 24 10 11 23 2 12 23 9 3 24 24 10 ^
12452 0 14 10 18 15 14 5 16 11 22 2 15 24 8 22 1 4 24 9 10 15 3 9 5 4 17 15 9 12
12519 19 1 3 10 6 8 3 17 8 18 24 19 3 4 15 4 9 2 24 5 20 13 13 ^
12642 0 20 17 19 22 13 8 10 19 15 11 1 14 17 20 22 10 7 11 16 9 21 22 17 23 12 15
1274 24 7 21 18 2 21 16 1 19 18 20 11 3 15 17 ^
12850 0 18 1 6 14 5 5 5 19 13 10 24 19 16 24 15 13 2 19 15 24 21 17 4 13 17 1 1 9
1291 10 2 18 1 21 19 5 18 12 2 22 16 23 15 19 6 18 9 1 23 5 ^
13051 0 21 13 14 11 18 12 13 3 19 9 20 22 20 2 11 12 6 1 12 16 18 2 9 8 4 3 11 17
13111 5 4 19 16 11 23 13 18 1 20 8 2 16 16 21 4 19 5 5 20 24 16 ^
13253 1 20 25 17 11 8 4 19 25 17 7 16 21 6 4 8 2 15 9 2 9 19 3 6 3 3 10 25 13 15 7
1338 20 21 12 10 12 5 24 11 20 3 13 13 16 9 13 10 3 9 16 3 7 25 ^
13449 1 9 9 14 2 13 17 25 2 18 5 19 23 9 25 9 10 23 12 12 7 13 8 15 7 1 6 21 2 8 7
1356 16 14 14 12 15 13 24 10 15 11 10 8 14 15 21 25 21 25 ^
13647 0 9 18 20 22 21 20 11 14 23 22 10 13 14 8 19 12 2 11 20 23 13 4 10 6 5 7 23
13711 3 16 8 21 4 8 18 5 12 14 8 6 20 19 24 8 23 17 23 ^
13848 1 7 19 1 18 1 14 22 13 14 5 8 22 18 14 25 17 11 12 22 2 12 12 16 12 13 18 17
13912 17 14 18 8 25 9 23 5 3 8 14 24 17 7 3 3 23 17 22 19 ^
14051 1 19 17 16 22 24 14 16 20 23 20 9 19 16 7 12 16 5 8 9 7 10 21 24 10 11 19 1
14121 14 14 19 3 22 8 12 20 1 18 5 6 5 12 14 1 1 11 9 22 3 24 4 ^
14252 1 6 1 11 16 1 12 8 11 11 17 10 22 7 3 10 2 6 4 24 16 24 19 4 5 18 11 12 9 20
14321 25 2 21 18 10 20 25 21 3 17 17 5 8 22 25 19 8 10 19 7 11 18 ^
14444 0 26 14 21 25 25 4 9 13 5 8 9 21 8 12 26 24 9 24 15 1 23 22 16 14 8 22 15 19
14524 20 7 8 15 24 12 4 4 23 21 13 19 15 21 12 ^
14659 1 15 7 3 21 20 8 22 14 23 26 19 2 10 18 3 5 3 1 9 15 15 3 7 13 23 9 7 1 13
14717 14 25 9 16 2 2 6 13 7 19 25 17 1 5 21 2 7 22 5 6 25 3 12 19 6 2 4 24 17 ^
14860 0 9 18 20 19 4 11 14 1 6 8 26 6 9 22 4 10 2 7 21 9 8 24 25 14 22 12 22 3 23
1493 3 20 6 11 23 6 1 7 5 18 5 15 25 26 1 1 10 11 11 4 12 11 20 3 14 2 3 2 23 15 ^
15049 0 12 17 24 11 8 6 24 16 15 22 21 14 6 12 20 19 5 5 12 11 6 23 2 16 23 7 24 6
15121 2 17 17 5 25 11 25 20 25 24 18 6 12 19 25 7 6 5 2 25 ^
15254 1 12 16 1 15 7 1 26 19 19 13 20 11 17 6 20 5 24 24 1 21 11 9 20 21 15 10 19
15326 3 2 6 7 12 9 10 8 14 10 15 5 17 8 21 1 20 25 6 19 8 3 22 16 16 20 ^
15463 0 17 13 11 10 17 15 12 6 13 14 17 4 12 10 24 5 13 24 3 5 2 5 11 14 8 5 10 17
15516 8 4 14 21 15 3 6 17 25 8 2 3 3 19 10 13 22 22 8 2 13 25 17 2 1 19 1 14 20 2
1565 4 15 24 ^
15749 0 14 20 7 25 20 26 20 16 7 17 17 22 1 13 6 5 1 18 14 15 23 15 10 5 19 18 18
15826 12 13 3 25 12 21 16 24 4 16 3 6 26 26 10 20 13 1 20 24 15 ^
15956 0 3 8 14 5 5 7 11 13 11 26 11 4 26 17 20 19 11 10 3 10 14 9 6 9 7 16 10 4 4
16019 19 2 26 13 19 17 15 24 15 4 21 22 13 13 12 22 2 14 20 5 18 7 17 24 20 20 ^
16158 1 6 17 9 20 2 10 19 3 22 4 1 11 3 5 3 21 11 15 12 23 26 5 2 27 6 5 16 6 3 2
16223 5 3 20 20 4 24 2 18 21 7 14 10 27 23 6 24 6 19 23 3 9 22 16 21 17 19 23 ^
16358 1 17 7 21 19 6 16 15 15 20 14 2 25 19 14 18 19 7 9 1 14 11 10 16 3 23 14 26
16410 11 1 18 1 12 24 19 19 1 7 2 3 24 7 12 9 2 8 16 20 24 5 26 26 4 9 2 7 25 17 ^
16554 1 8 12 18 14 26 7 17 18 4 20 1 16 14 21 26 4 6 8 24 11 25 15 24 16 23 4 10
16623 21 24 15 10 9 26 7 14 24 21 6 20 5 17 16 17 1 3 12 1 4 13 3 9 21 26 ^
16756 1 7 18 11 1 19 20 23 12 12 27 13 13 15 16 13 1 16 15 12 26 3 16 16 8 17 13
16821 4 6 5 19 14 16 4 16 11 14 18 18 27 9 13 21 3 26 22 3 7 6 4 26 3 15 8 25 21 ^
16950 1 20 13 9 11 20 6 11 21 27 25 20 7 4 18 26 16 27 5 12 19 7 23 6 25 25 2 11
17013 25 21 18 17 6 12 14 13 24 11 14 19 26 27 25 6 1 15 4 7 27 15 ^
17151 0 15 16 26 27 23 14 12 28 22 15 8 19 2 20 13 1 24 2 25 1 6 19 19 8 11 24 24
17221 13 27 5 11 28 17 7 25 6 23 24 14 25 12 5 13 26 2 5 8 10 16 17 ^
17358 1 5 26 18 19 21 3 12 11 13 4 14 22 22 14 16 13 3 22 16 23 5 19 6 13 10 26 17
17427 26 4 3 25 6 14 2 3 5 7 23 11 22 8 25 2 9 25 18 17 8 2 14 4 19 1 5 27 13 24 ^
17553 0 2 27 28 2 17 23 10 27 18 26 7 22 16 3 27 1 26 21 28 10 3 6 2 2 10 17 13 16
1766 17 21 23 13 20 22 5 6 11 12 12 8 23 13 17 9 23 20 3 28 27 12 17 22 ^
17759 0 28 19 5 21 4 27 8 1 19 14 20 6 7 9 1 6 22 3 19 26 14 8 6 7 19 15 23 1 17
17816 6 26 14 5 22 25 4 7 10 16 21 10 18 19 24 16 23 8 3 17 28 18 10 2 5 3 21 21
17915 ^
18058 0 6 24 1 4 24 18 10 22 1 21 12 5 4 4 20 25 24 26 8 25 11 2 7 27 22 19 4 18
18127 10 28 4 12 24 8 16 12 11 16 17 25 8 12 16 1 9 9 10 5 24 23 18 5 14 18 8 4 28
182^
18361 0 5 17 8 28 1 22 4 11 3 2 17 3 14 9 27 13 18 24 9 8 7 28 25 14 21 27 24 6 18
18416 2 12 15 9 14 10 1 8 17 4 6 15 26 11 15 2 28 20 26 16 3 7 5 8 9 26 10 12 25
18511 22 ^
18653 0 9 13 24 15 20 2 4 8 2 22 20 19 4 15 14 28 13 25 10 10 12 28 24 22 26 28 15
1879 11 26 19 22 27 2 21 8 20 23 26 12 10 21 9 15 13 25 7 26 1 13 5 9 20 ^
18858 0 3 9 21 22 7 1 23 28 1 2 8 22 12 18 28 5 18 14 7 11 17 20 20 7 21 13 8 28
18921 22 2 16 20 15 28 9 3 22 13 10 23 4 16 11 14 1 10 8 14 14 15 18 13 12 21 18
19025 28 ^
19160 1 29 20 2 29 22 8 16 20 4 12 9 6 12 16 16 7 9 20 29 11 9 4 1 15 25 16 29 10
19222 7 2 8 5 18 14 23 24 4 6 26 3 11 6 12 1 7 14 24 14 6 10 21 16 23 29 25 6 14
19317 24 ^
19464 0 12 10 5 10 15 25 8 15 3 7 13 25 16 14 1 29 22 26 15 27 9 1 8 8 28 6 13 5
19513 3 15 5 23 8 23 2 5 5 4 17 13 14 7 17 12 27 3 18 5 7 5 26 18 15 22 28 16 13 7
1962 23 19 25 15 ^
19756 1 17 7 16 25 23 11 11 15 2 13 9 26 2 24 26 7 28 11 2 29 7 22 23 5 28 19 1 27
19829 1 24 11 18 20 3 13 11 7 3 15 17 24 1 18 13 6 3 25 27 16 28 18 24 8 23 22 ^
19951 1 29 28 6 28 14 12 28 27 22 4 14 25 1 3 9 7 11 14 15 16 10 19 12 19 11 20 13
20028 4 27 28 7 27 12 4 28 21 17 22 20 17 15 15 23 22 13 12 21 22 21 29 ^
20164 1 12 14 12 18 27 8 7 4 9 14 16 15 8 11 21 20 10 10 21 23 20 2 11 23 1 11 1 5
2023 23 16 15 27 14 5 16 3 22 2 3 24 3 19 29 4 4 10 8 20 14 15 1 26 12 27 25 4 28
20322 11 19 19 24 9 ^
20460 1 20 8 9 5 25 19 17 19 15 7 24 24 21 3 20 16 8 3 17 28 18 29 9 23 9 10 29 4
20512 24 15 5 8 22 17 29 12 3 8 29 15 21 21 4 7 20 7 10 7 26 10 16 24 6 7 12 8 12
20615 17 ^
20760 0 9 17 11 28 12 26 26 6 29 13 10 20 6 23 10 4 3 26 26 14 20 20 25 14 13 15
20824 14 11 4 23 27 24 20 9 16 17 24 13 12 6 1 14 26 25 7 8 21 1 19 3 2 2 17 21 13
2095 9 21 11 ^
21054 0 25 1 27 24 6 23 16 5 1 20 29 22 25 9 25 10 3 28 28 25 19 18 16 24 14 15 5
21128 12 28 26 29 2 15 15 9 5 18 19 22 12 15 4 6 15 24 16 9 4 26 25 18 27 12 ^
21261 1 20 4 26 12 3 22 1 22 30 3 28 10 9 24 14 29 6 30 3 10 20 14 6 3 19 21 21 28
21316 18 11 30 11 20 30 1 9 8 11 5 19 10 24 4 22 4 2 26 5 15 20 8 3 13 30 18 8 1
21425 28 19 ^
21556 1 20 15 21 18 18 12 16 13 24 9 21 2 28 6 1 23 9 18 27 27 4 9 13 10 8 14 16
21615 12 11 14 21 14 10 11 25 17 17 30 21 13 27 26 26 22 14 13 17 21 19 9 9 20 23
21713 28 ^
21859 1 10 28 24 10 22 27 23 27 8 17 14 6 4 21 26 15 1 8 29 27 6 28 15 3 27 25 25
21914 19 13 29 8 24 2 8 2 4 12 19 11 10 6 26 14 22 24 30 10 11 12 2 12 17 23 8 8
22012 28 12 ^
22156 0 14 28 2 17 4 8 3 26 9 23 21 30 30 20 4 13 28 29 9 3 17 7 19 30 28 1 2 20 9
22212 24 15 30 20 27 3 23 11 6 29 25 23 26 17 20 10 22 15 23 6 25 5 4 30 2 29 ^
22363 1 23 15 27 14 26 1 1 7 19 12 7 6 20 18 14 4 15 17 28 7 11 7 8 9 22 17 12 5
22423 18 25 18 6 12 26 30 12 30 14 3 1 18 10 20 27 21 8 6 24 26 20 11 24 7 2 4 18
22515 14 30 16 19 14 ^
22652 0 27 15 4 19 25 29 29 7 14 18 9 11 9 27 11 15 29 9 28 20 2 30 26 21 17 8 28
22717 22 29 24 8 11 18 29 15 6 7 27 27 17 24 18 23 11 19 8 30 5 24 22 24 ^
22866 1 25 15 28 23 5 10 21 5 8 7 3 10 19 17 6 9 15 29 10 7 4 1 16 21 16 29 13 18
2295 3 8 15 8 21 29 20 5 27 2 13 27 7 7 30 2 18 26 10 2 5 29 21 15 25 26 24 8 12
23020 3 9 10 30 7 12 29 ^
23153 1 30 26 20 11 22 19 27 2 16 10 6 4 24 17 20 25 20 15 8 23 23 20 30 18 16 3
23230 15 26 23 28 7 21 8 7 31 31 14 26 18 3 1 26 28 15 25 11 31 3 25 9 21 30 ^
23367 0 2 6 14 4 9 5 28 8 17 22 1 4 8 7 10 14 19 10 14 8 27 9 24 26 4 30 11 8 19 5
23421 7 2 27 20 16 20 20 22 14 13 16 26 14 10 3 25 22 25 23 21 10 15 15 29 8 13 4
2352 13 22 20 7 4 20 31 23 ^
23665 0 2 2 28 13 19 14 12 23 27 6 2 14 2 22 6 25 30 29 31 13 14 16 31 12 16 30 5
23714 31 11 4 1 1 25 21 13 26 22 21 5 22 14 29 1 21 3 14 30 4 2 29 12 15 23 3 15 5
2381 6 23 22 13 1 14 23 ^
23959 1 25 5 15 6 13 3 22 11 23 31 24 6 5 20 4 14 3 29 8 29 19 7 29 23 25 28 19 11
24015 27 21 14 1 19 20 26 12 7 12 1 18 13 29 28 23 29 14 23 7 1 9 29 24 5 30 18 5
24125 30 ^
24255 1 31 25 13 7 24 25 24 1 12 19 9 7 6 28 20 14 28 21 19 31 20 20 6 24 18 27 24
2434 18 21 1 31 15 1 15 2 27 4 26 25 4 23 19 2 31 22 30 21 22 5 27 12 30 28 31 ^
24462 0 27 15 18 14 25 15 17 7 28 11 28 29 30 1 17 12 10 2 18 20 21 2 11 12 5 4 12
24525 14 5 5 24 22 18 31 15 22 29 11 3 21 31 21 27 3 28 7 10 25 2 15 30 9 30 7 22
24615 9 3 20 24 14 ^
24760 0 28 14 18 9 27 14 22 27 31 10 8 14 7 15 7 20 5 26 1 29 7 17 17 8 3 13 27 18
2488 31 27 28 22 22 17 19 18 18 11 19 13 25 10 19 6 28 4 31 23 10 18 26 31 5 10 13
24912 8 15 27 ^
25060 1 24 22 4 29 22 31 28 20 4 16 21 3 1 15 5 15 6 30 3 29 29 7 27 20 2 20 31 22
25126 9 29 16 4 26 32 17 20 14 28 17 19 6 24 11 26 28 5 18 15 8 16 20 21 4 9 12 4
2528 17 29 ^
253<D
254
255H>SHS Type 2 Strings<H
256D>
25769 1 5 3 11 15 12 24 31 23 1 6 28 2 8 31 6 7 30 5 19 23 12 6 9 31 19 17 24 25
25822 6 12 16 3 7 9 9 11 29 4 11 2 5 13 29 10 12 30 32 18 28 18 27 3 30 4 4 26 6
25913 31 13 2 11 7 24 4 17 29 12 ^
26095 0 21 19 21 23 11 42 36 2 13 4 1 33 22 16 27 9 4 33 16 3 30 15 11 32 13 17 38
26132 9 38 4 36 15 32 27 19 42 18 6 36 22 10 29 12 25 40 15 29 23 28 30 4 8 11 24
2629 10 31 28 43 23 16 29 33 5 40 26 3 19 12 36 43 5 35 37 5 14 11 45 35 16 10 8
26332 4 15 35 26 2 39 22 37 22 30 29 ^
264106 1 18 14 51 2 6 32 51 9 32 50 44 46 51 8 11 53 45 55 16 10 3 52 8 20 20 46
26546 13 32 2 46 50 43 25 54 9 31 29 2 47 15 29 24 45 44 18 37 14 28 39 36 44 47
26616 50 10 44 24 53 35 22 40 20 15 51 22 18 22 42 6 54 49 38 21 7 13 30 16 7 52
26716 22 13 38 7 11 44 33 9 25 13 37 42 14 45 53 30 38 5 25 5 35 38 22 28 53 ^
268127 0 58 35 43 28 5 28 63 8 12 25 9 47 53 29 62 7 37 2 3 48 5 12 55 56 28 35 12
26963 6 58 27 27 48 44 35 14 17 22 56 10 8 1 16 15 42 63 14 51 57 19 41 7 8 56 47
27034 52 22 48 60 43 9 1 52 4 21 49 61 18 50 23 13 46 62 23 45 62 9 56 18 23 31 8
27130 27 36 13 38 4 58 53 47 24 18 41 58 19 12 18 52 42 29 44 45 26 63 34 32 41 64
27215 26 55 19 2 49 6 30 53 13 54 12 53 37 12 37 43 ^
273148 0 60 4 51 47 58 38 17 63 33 23 28 43 12 69 70 33 17 12 50 18 18 36 45 2 67
2744 45 20 4 33 38 29 45 8 22 58 39 71 38 32 53 35 19 53 31 29 51 35 4 63 18 33 26
27547 70 9 64 62 63 30 15 1 35 28 16 40 20 14 50 33 19 38 30 27 55 10 16 46 47 7
27655 12 53 26 56 33 29 55 25 17 48 43 21 43 18 24 63 27 68 46 38 33 35 10 18 11
27727 5 9 58 35 70 36 36 39 47 2 10 66 47 5 18 21 44 71 51 57 3 22 7 56 55 28 25
27814 40 16 24 48 37 66 50 24 45 18 39 53 55 ^
279165 1 15 62 35 29 15 40 19 76 67 4 5 71 46 61 26 8 77 48 1 23 12 60 40 24 44 33
28029 42 73 66 49 61 20 30 1 54 52 42 39 64 23 65 37 24 20 11 26 66 22 77 22 57 7
28138 57 33 61 73 7 64 1 49 35 76 14 27 21 45 68 38 58 73 13 72 47 73 33 8 66 23
28238 4 56 77 47 10 71 13 20 31 41 6 51 3 18 17 61 47 14 48 76 46 28 34 43 1 56 4
28325 7 65 41 1 34 37 23 59 59 27 26 13 15 14 75 60 14 1 28 59 26 65 61 16 23 17
28428 6 19 2 35 49 30 29 48 2 63 73 59 1 3 76 41 11 19 18 43 54 63 67 51 4 9 78 60
28566 ^
286181 0 18 19 84 17 12 10 57 18 77 51 52 16 39 74 49 52 63 38 72 2 15 64 83 62 49
28756 11 26 68 58 83 33 23 50 63 71 53 27 84 22 39 41 52 58 11 64 7 60 45 70 22 5
28873 38 30 30 48 21 75 80 40 21 8 53 9 26 30 34 81 71 71 51 23 75 33 41 23 32 5 8
28966 40 72 40 16 66 45 14 48 34 21 41 27 3 55 27 37 23 41 65 4 57 51 74 22 19 75
29042 16 19 46 16 10 48 20 19 37 41 14 57 9 17 55 38 5 60 7 46 20 43 36 39 52 20
29110 62 45 23 46 7 35 75 29 70 35 36 34 25 12 15 84 26 10 6 71 29 79 33 32 25 59
29276 82 64 58 7 8 19 41 74 2 53 65 24 1 55 51 36 21 79 7 ^
293184 1 60 66 66 6 3 9 73 12 7 40 70 18 71 70 65 51 14 14 27 50 9 87 81 50 22 19
29440 37 16 79 12 34 37 76 82 10 61 7 81 49 67 26 45 82 50 81 63 45 69 31 31 76 51
2959 59 34 51 54 34 83 10 33 51 86 81 82 69 18 8 22 64 19 86 62 58 33 37 17 34 5
29629 83 42 76 50 54 66 39 9 1 36 43 17 65 6 35 56 72 71 83 88 10 1 8 87 22 6 21
29778 25 89 43 62 40 55 85 31 89 74 63 46 28 24 26 31 17 7 8 27 19 12 85 17 20 27
29877 10 2 54 80 17 52 74 76 69 78 11 20 80 4 29 24 85 75 18 39 23 70 83 29 57 67
29972 70 33 4 15 46 42 2 69 13 53 33 69 64 33 64 14 40 69 59 78 54 ^
300193 1 68 43 95 53 38 58 55 28 20 16 67 48 17 86 32 44 68 67 28 16 14 79 25 15
30172 67 50 80 18 30 10 75 1 60 45 87 78 28 95 49 63 70 59 26 6 51 73 60 65 18 26
3028 87 5 58 31 25 57 40 46 78 57 34 78 61 36 66 57 38 80 22 32 68 71 30 74 37 81
30366 77 66 55 2 51 24 93 61 40 68 45 61 12 63 24 89 59 52 72 43 20 20 69 36 40 88
30446 9 62 55 77 84 20 18 6 77 15 52 39 75 3 26 4 85 17 62 29 11 92 46 58 29 59 28
30542 80 71 96 2 49 85 37 63 4 61 14 2 53 87 25 86 6 75 76 93 41 39 93 92 42 56 41
30663 26 28 18 77 11 50 78 79 1 12 12 91 29 13 58 5 56 92 66 59 4 39 47 95 5 5 62
30733 13 80 27 ^
308203 1 35 28 11 7 20 7 17 3 3 30 89 13 65 56 66 63 22 82 16 31 55 56 77 91 91 71
309101 13 10 85 101 95 17 99 98 91 33 14 20 48 32 7 64 29 38 35 25 4 95 23 34 1 85
31081 23 31 96 71 84 50 15 79 47 25 51 45 35 66 19 61 60 9 31 93 64 70 30 42 86 53
3111 71 46 42 22 38 96 10 99 34 76 26 55 73 63 63 97 23 92 81 64 46 1 30 31 35 86
31291 88 64 87 16 37 69 84 94 60 100 3 47 52 8 71 87 57 29 76 43 18 45 46 15 65 12
31344 42 66 60 15 68 19 58 39 62 76 9 92 101 57 32 4 34 15 41 62 32 89 71 43 35 31
31441 21 17 82 33 96 27 62 29 82 57 46 62 15 24 99 37 83 40 52 46 56 80 98 3 91 74
3156 27 7 58 94 10 41 79 97 84 77 74 26 99 35 ^
316212 1 26 101 17 91 45 97 80 59 102 30 68 4 85 9 4 39 16 18 85 70 11 87 62 72 78
31738 3 41 53 82 82 35 18 13 94 64 52 39 77 59 26 9 65 46 64 98 32 29 86 79 16 63
31854 76 56 98 16 98 78 22 72 33 103 104 52 84 12 65 15 85 101 97 84 31 51 26 100
319100 38 80 13 2 78 7 24 44 84 103 27 7 28 16 33 99 25 103 54 14 42 62 87 92 27
32022 42 5 52 100 84 73 72 63 24 48 56 52 23 5 17 76 31 1 95 58 43 60 50 62 30 23
32135 79 20 35 3 72 32 45 51 87 41 84 27 79 77 70 102 15 54 15 100 8 52 69 105 3
32230 84 42 93 66 89 69 74 24 33 42 97 4 38 99 106 13 93 6 106 74 100 54 45 21 59
32356 37 9 50 32 75 79 31 77 9 61 1 8 68 6 60 81 7 100 99 14 61 48 25 73 26 70 72
32494 34 ^
325233 0 11 98 110 88 35 110 35 64 49 88 93 28 85 6 78 65 90 52 24 97 51 39 51 59
32623 1 3 49 33 11 78 27 35 55 64 5 102 4 70 25 56 58 38 66 11 31 96 66 104 59 41
32786 58 29 79 41 40 72 51 12 92 34 52 44 69 104 21 97 89 96 48 21 4 61 40 28 67
32834 23 85 44 22 62 52 33 84 23 30 73 74 4 79 12 81 47 80 53 47 89 40 19 80 62 34
32961 29 41 95 43 1 70 63 55 53 18 19 13 48 10 19 89 49 4 52 53 56 76 10 8 104 77
33015 28 38 75 109 3 85 90 8 40 8 93 90 43 39 14 60 17 36 78 56 105 80 35 75 36 58
33182 50 100 98 45 74 13 66 95 72 71 95 34 14 98 72 33 38 37 52 6 14 107 59 3 29
33261 67 98 92 5 93 17 98 36 87 41 75 71 57 88 17 25 91 84 3 58 20 92 69 51 50 36
33331 14 25 18 30 18 1 41 104 30 82 59 87 70 34 96 28 47 62 81 103 48 ^
334234 1 63 90 108 108 102 64 82 88 4 111 76 97 22 1 108 41 34 91 33 20 25 24 26 8
33583 11 31 7 85 109 106 4 105 85 68 28 33 99 53 8 16 12 11 74 17 83 66 70 16 30 9
33667 68 34 24 81 47 92 72 47 37 33 38 92 17 8 28 88 22 62 69 32 89 75 3 72 96 85
33713 105 24 38 37 94 115 83 72 108 114 24 93 76 103 60 99 102 9 43 10 59 95 46 33
33893 15 26 69 44 2 86 107 55 45 61 65 92 66 9 55 39 70 83 29 98 67 13 111 15 20
33931 62 8 2 51 20 19 33 44 14 115 71 112 97 10 41 28 53 51 26 57 15 38 98 55 106
34022 56 31 50 95 107 110 84 70 10 108 96 73 100 25 36 55 88 71 63 96 30 90 96 79
34122 7 30 23 28 59 89 8 51 99 47 86 34 18 43 65 98 104 107 49 7 79 71 8 57 21 29
34280 2 74 78 44 57 9 61 22 13 68 52 91 74 98 43 30 58 68 95 101 72 102 76 42 99
34361 ^
344249 0 27 117 45 119 80 2 59 52 8 76 20 94 102 69 96 42 46 106 67 9 110 89 71 69
34534 31 15 85 16 29 100 82 37 62 68 95 108 44 23 114 34 36 56 93 11 30 96 12 31
34667 14 114 14 66 70 30 81 46 53 119 85 6 104 47 92 72 70 5 70 15 115 68 105 33
34797 13 85 106 14 61 29 22 86 45 57 69 91 38 38 28 66 13 60 95 103 3 15 5 113 38
34823 62 5 65 94 107 73 104 37 47 102 117 3 78 35 7 95 56 78 45 52 28 46 43 37 32
34953 19 55 29 47 97 76 115 83 71 11 45 62 73 99 116 2 24 116 7 28 41 2 29 37 52
35023 5 118 79 31 57 89 61 24 101 78 50 93 73 41 7 33 45 47 24 1 48 73 36 3 25 87
35146 28 108 54 68 53 67 119 28 36 118 104 42 88 27 112 4 74 85 1 63 39 97 71 74
35275 76 10 49 12 79 11 50 103 118 94 117 118 37 27 12 94 60 28 51 47 82 110 17 15
353105 23 52 43 12 21 22 81 41 12 74 90 42 108 117 98 67 4 69 85 ^
354243 0 76 81 26 101 13 68 62 106 87 19 98 32 81 63 79 93 31 121 123 75 52 11 66
35541 54 87 38 5 104 62 51 38 55 29 31 120 44 16 48 94 46 105 91 66 78 27 43 6 64
3562 55 79 75 84 113 22 4 113 109 31 33 17 96 11 29 63 98 103 107 116 34 14 9 95
35738 18 51 75 33 109 118 55 66 4 76 7 75 70 82 74 23 1 26 69 40 112 99 47 65 31
35870 119 52 103 88 85 86 28 16 12 76 25 22 78 64 21 86 27 61 77 72 108 2 18 106
359119 121 54 16 85 72 2 73 26 88 66 60 80 35 24 117 63 24 44 67 52 122 119 33 72
36016 99 98 69 54 19 42 28 53 114 32 117 81 100 57 49 123 56 21 68 80 53 95 1 45
36195 107 98 87 1 27 24 99 116 16 67 1 113 91 84 25 40 25 72 3 28 90 87 112 80 16
362117 45 77 36 90 105 59 88 122 64 108 108 71 98 18 50 115 93 105 77 35 6 46 55
36347 102 4 26 87 111 120 81 113 4 57 105 3 84 94 115 61 73 ^
364255 1 91 47 51 9 57 9 55 94 61 61 68 46 107 6 35 81 114 78 96 74 14 89 73 67 67
36569 113 107 11 98 113 109 20 92 17 67 70 88 57 10 124 9 60 122 93 91 45 7 15 24
36651 5 98 115 24 49 90 104 117 66 128 94 64 80 12 43 91 46 111 59 58 77 30 14 88
36760 123 68 41 44 68 40 104 118 41 43 93 90 105 92 16 127 26 54 125 114 79 71 24
36848 21 25 118 40 103 49 91 44 67 65 25 119 109 18 48 23 69 112 38 61 64 87 84
369104 119 110 122 92 22 1 8 83 34 100 32 62 41 46 112 34 102 76 56 39 4 127 30 13
37019 110 124 7 16 128 95 4 124 11 104 116 126 49 95 3 55 96 70 90 101 4 122 96 75
371118 39 128 99 92 18 42 20 87 83 35 75 111 61 67 71 28 101 9 56 34 105 95 71 23
37273 71 26 57 15 23 76 55 99 89 128 98 117 68 43 88 62 38 62 39 2 83 36 15 26 60
373128 96 73 74 10 1 12 42 22 2 77 33 33 32 57 13 14 82 57 12 39 3 58 80 14 87 85
37444 69 109 119 ^
375283 0 102 55 53 41 60 88 25 67 58 76 44 22 68 118 108 40 95 96 81 90 85 28 77
37618 11 37 72 93 60 110 124 119 95 131 91 37 109 126 8 73 69 72 80 17 83 5 76 20
37732 15 10 1 103 18 22 116 98 9 51 104 102 44 33 15 12 24 31 89 1 6 28 101 8 64
37872 106 30 5 52 89 111 39 108 64 85 17 57 124 22 105 78 115 3 40 108 66 108 77
379128 103 44 35 38 13 95 10 111 63 98 117 61 51 126 69 96 70 70 59 39 13 97 33
380112 2 77 7 123 70 83 29 66 67 49 79 19 104 115 14 60 2 55 40 71 33 28 114 51 91
38117 46 45 128 57 87 62 25 115 38 50 55 90 74 8 51 102 79 43 94 36 122 94 12 41
38236 25 104 91 24 7 99 80 30 126 32 63 122 107 114 27 28 79 41 12 35 51 115 122
38370 22 79 65 2 88 27 17 59 15 23 44 57 5 65 6 26 78 80 125 93 84 100 45 22 129
38468 36 111 74 118 11 50 42 120 47 21 8 86 112 26 67 60 99 45 93 47 8 38 59 52 56
385124 20 82 18 117 24 18 46 106 19 117 26 41 47 45 130 7 15 1 4 5 100 10 85 50 44
38611 48 92 119 108 42 118 125 ^
387272 0 8 61 99 70 96 20 87 123 134 82 22 2 110 118 33 86 5 7 5 94 56 15 60 96 54
38813 22 55 99 4 25 105 17 37 69 10 38 117 117 30 70 13 9 109 115 62 94 52 66 117
389100 135 7 75 23 5 81 110 31 118 29 1 62 11 41 88 109 119 102 37 3 30 123 47 31
39056 134 29 124 116 118 99 21 56 77 91 23 37 135 81 44 51 67 95 51 133 30 57 67
391116 122 48 100 7 132 97 106 69 93 4 95 125 102 103 119 81 57 133 96 37 118 50
392117 113 81 127 17 45 103 32 121 129 60 43 65 127 30 36 132 110 52 53 35 71 12
39376 22 72 130 112 99 76 26 21 73 63 63 97 23 58 115 132 114 1 132 31 35 18 23 54
39430 53 118 37 35 84 94 60 100 3 47 18 110 105 87 57 63 76 43 52 45 46 49 65 12
39510 42 66 60 117 34 19 92 5 28 76 9 126 101 125 32 38 34 15 7 62 32 21 3 43 69
39631 109 123 51 116 135 130 129 130 63 14 57 80 62 15 126 31 105 83 108 120 80
397124 46 98 105 91 6 6 27 7 58 128 78 7 79 63 84 77 74 128 65 61 95 121 17 24 123
398117 51 122 ^
399284 0 44 71 43 20 126 58 53 47 98 18 19 119 93 29 70 39 94 112 44 115 135 98 82
40010 67 29 102 113 68 80 19 75 1 91 114 87 80 7 40 37 86 120 16 104 136 117 82
401138 32 65 114 119 137 121 8 12 46 126 26 119 73 130 60 76 113 100 14 133 26 116
40234 120 80 95 84 53 15 24 44 51 4 10 23 77 24 99 66 37 54 63 42 136 21 34 76 5
40317 128 101 1 59 40 113 112 32 97 31 93 105 79 91 18 39 1 103 132 51 68 124 111
40413 97 43 128 69 84 85 72 15 12 26 87 16 16 92 101 13 77 4 118 89 103 56 42 16
40560 44 39 126 46 18 83 93 41 105 3 82 106 115 91 6 4 54 115 15 120 109 113 48 41
4069 95 20 62 67 105 111 25 132 7 116 46 138 44 83 61 124 131 35 107 6 109 81 114
40767 41 137 77 56 74 73 34 12 14 69 52 11 98 47 54 83 81 6 1 15 88 35 139 80 83
40849 89 27 47 130 92 133 87 51 112 76 49 109 49 57 93 73 22 117 50 64 58 97 139
40936 131 111 133 58 33 8 88 55 38 90 46 30 118 57 29 82 74 41 117 38 46 94 92 5
410105 15 117 70 103 68 60 120 48 21 110 85 40 81 66 ^
411291 0 46 113 52 134 79 74 64 57 18 23 9 52 8 16 103 57 138 59 59 65 92 2 7 130
41292 8 34 40 86 131 140 100 112 4 42 1 110 108 43 37 15 67 19 35 94 61 130 98 35
41388 34 65 104 56 126 118 50 87 10 81 109 90 86 118 32 6 114 88 39 38 39 62 3 12
414134 72 137 35 75 81 115 106 140 112 11 123 41 103 45 95 84 71 107 13 26 110 96
41562 16 109 84 59 53 38 27 8 28 13 32 137 17 138 41 122 36 99 65 99 83 36 112 29
41649 70 96 126 136 131 116 3 18 17 126 142 14 37 141 141 123 42 13 20 83 42 139
41783 54 49 58 42 7 137 29 48 16 121 127 34 52 140 106 128 58 36 124 83 24 69 54
41861 112 17 6 95 97 24 57 86 124 59 71 119 67 1 109 54 68 49 57 132 32 5 71 113
41940 80 104 75 106 133 31 126 130 104 62 9 39 44 66 116 141 135 96 132 19 41 121
420126 124 77 8 4 60 82 6 101 124 89 51 123 48 40 85 77 21 112 10 69 66 115 87 16
421108 30 84 65 80 103 32 131 134 73 47 10 63 39 50 93 37 135 114 69 48 34 58 23
42227 133 37 9 40 98 41 115 99 70 83 29 42 67 133 55 79 80 91 122 12 2 115 112 47 ^
423293 1 33 13 99 138 1 42 89 118 87 113 99 12 134 142 100 38 5 55 75 14 110 108
42442 64 130 79 138 62 64 69 57 11 123 25 59 16 111 94 24 65 30 51 119 48 107 92
42584 69 28 136 143 54 20 6 70 47 142 64 4 65 59 73 99 134 146 102 125 116 57 137
426137 72 48 128 78 5 80 63 54 85 30 22 129 68 21 21 74 28 128 107 27 60 2 93 95
42771 37 11 37 15 39 102 3 104 65 80 59 52 113 34 20 67 60 27 81 135 46 106 106
428102 68 128 17 15 100 124 15 43 136 122 100 67 142 35 14 53 120 2 89 93 99 73 9
429122 39 77 15 96 90 43 79 134 60 92 105 55 96 31 119 77 97 72 23 140 38 30 43 83
430136 88 107 117 72 109 118 58 91 119 73 95 100 59 138 123 54 49 143 50 133 66
431106 45 80 88 42 93 5 59 77 101 74 110 104 40 92 19 77 76 86 102 129 3 144 101
432139 134 56 90 18 91 94 85 55 10 137 11 58 1 107 113 70 22 7 56 29 143 111 8 46
43345 116 122 129 89 7 121 53 95 14 49 118 62 125 91 37 97 15 35 100 63 140 63 50
43451 58 26 127 6 45 59 102 121 114 85 141 135 10 72 19 106 66 66 41 53 13 38 1 21
435103 50 108 46 119 ^
436297 1 46 31 132 112 28 63 124 97 129 43 40 72 99 107 132 137 96 139 99 145 121
437144 118 37 81 39 94 60 55 109 47 109 110 75 42 12 139 137 43 128 106 107 19 126
43812 101 148 127 15 117 125 125 62 96 13 76 70 96 101 110 138 8 95 76 143 17 32
43997 79 149 39 31 94 123 21 41 135 55 84 70 33 135 118 50 62 121 81 1 45 144 93
44060 5 64 137 8 105 91 82 67 27 113 119 53 18 98 79 48 84 32 135 128 5 1 20 76 17
44185 108 72 36 141 140 49 150 105 104 3 149 14 54 18 148 64 49 125 37 28 28 101
44222 104 91 32 82 117 12 114 69 58 2 58 115 9 108 47 59 65 14 92 7 4 86 98 16 82
44392 95 38 94 10 10 48 97 104 66 115 97 142 115 122 119 40 97 16 32 47 34 88 89
44426 50 12 76 80 51 40 9 133 24 44 40 122 84 108 22 142 140 99 44 15 54 8 42 125
445150 130 21 79 124 62 46 119 15 29 91 57 150 42 138 71 61 68 80 114 6 1 70 121
44618 35 113 56 87 86 10 73 14 29 41 72 89 1 133 87 101 123 59 90 142 77 133 52 78
44748 34 138 134 27 17 60 131 147 61 93 148 39 132 49 62 71 36 91 4 139 49 100 120
44843 113 144 30 94 73 127 40 125 ^
449313 1 35 97 95 76 105 88 32 138 30 69 61 40 47 21 107 6 39 81 114 53 125 53 147
45014 4 73 146 96 98 13 136 11 98 117 138 153 67 146 71 99 88 7 139 24 13 35 47 97
451145 74 36 119 3 51 84 48 119 53 49 15 79 17 120 103 148 64 30 41 97 120 75 111
45263 58 131 134 18 13 10 48 18 16 48 43 15 54 18 41 47 122 144 80 92 145 77 1 33
45389 54 46 78 48 21 54 43 40 53 24 16 73 42 94 29 44 34 151 152 23 123 12 142 140
45443 37 88 29 19 35 72 96 151 130 62 112 34 36 91 120 50 112 138 2 105 60 68 137
455131 5 17 19 139 74 11 120 78 149 58 128 15 104 16 126 78 20 57 134 71 49 90 76
456108 126 100 54 68 39 132 153 42 147 146 124 62 87 35 75 61 65 46 100 82 105 113
45731 63 5 95 54 71 77 127 150 80 36 144 2 130 59 74 39 3 152 121 122 18 117 12
458117 141 118 135 62 36 69 5 39 53 150 52 153 143 30 66 96 126 131 56 137 8 7 86
459142 14 7 111 141 93 136 137 134 43 12 89 23 44 9 152 146 121 97 19 38 110 91 67
46014 32 110 66 68 8 130 84 73 118 59 24 41 72 121 150 55 37 138 27 104 66 124 9
46151 109 47 125 109 148 8 29 47 72 146 149 61 93 10 20 54 15 76 133 125 106 110
46267 ^
463330 0 23 9 26 136 27 51 115 122 44 106 6 146 108 113 85 51 8 96 47 56 137 62 59
46489 143 71 140 14 85 156 139 99 154 30 53 115 35 147 108 148 58 52 28 103 19 92
46595 152 152 10 11 13 155 67 11 83 101 69 153 152 45 141 14 120 129 140 119 59 2
46689 73 70 83 29 16 67 81 29 1 54 65 96 117 2 37 47 128 33 3 89 108 98 139 49 78
46727 103 39 119 94 132 90 38 132 55 65 131 90 58 2 54 100 69 118 22 44 19 7 148
46893 25 29 123 81 64 131 55 30 1 89 38 97 82 64 9 28 86 123 151 10 133 40 154 102
4694 111 65 9 63 59 124 116 72 105 76 57 137 97 32 145 108 78 112 50 43 34 75 20
47022 129 68 11 118 74 125 118 57 17 20 129 53 65 61 144 1 17 142 156 52 100 54 15
47120 59 52 63 131 20 57 124 31 125 46 106 76 92 8 98 154 152 80 114 15 140 136
472112 100 17 92 25 151 150 80 99 69 83 49 43 156 102 19 57 122 96 30 3 39 134 40
47332 75 5 76 127 138 99 17 57 52 150 130 18 127 33 23 116 107 78 77 77 42 69 68
47448 41 69 33 75 40 49 128 103 4 146 93 10 83 66 96 152 30 38 12 33 5 39 47 41 34
47560 74 20 42 156 67 46 56 102 89 3 124 81 99 104 56 50 8 61 74 55 15 87 108 28
476138 47 93 60 2 124 46 126 103 91 145 36 25 116 122 51 ^
477322 0 75 7 107 158 81 105 154 90 20 125 77 114 69 92 7 58 21 98 154 50 128 149
478117 127 153 45 3 18 121 86 29 71 79 101 2 5 22 143 10 27 53 146 157 148 112 33
47922 80 123 24 147 1 112 82 159 63 74 97 109 33 151 32 89 87 132 117 46 129 59
480115 91 114 118 37 21 9 94 60 25 89 47 79 110 55 12 143 99 87 43 88 56 57 160 76
48112 71 128 77 146 117 95 105 42 66 3 76 20 76 101 100 118 149 45 26 143 148 32
48257 39 129 19 31 84 123 1 152 135 5 54 30 13 125 68 30 62 101 51 142 5 94 83 20
483116 24 107 109 105 91 42 17 27 93 69 3 139 68 79 38 84 2 85 128 126 122 131 46
48417 35 98 42 26 111 100 29 120 55 84 114 109 145 14 18 138 14 9 85 7 18 129 91 2
48594 51 133 82 87 123 64 39 8 103 38 75 110 78 7 9 45 115 42 138 135 86 78 16 62
48652 75 159 54 151 121 149 77 74 16 85 47 102 105 82 119 10 67 137 153 148 135 28
48749 26 151 153 36 80 11 130 113 24 44 30 102 24 58 133 122 140 99 24 156 54 119
48842 115 140 90 132 19 94 2 157 99 136 19 71 7 130 153 108 51 21 58 70 74 137 1
48940 111 149 5 103 6 27 76 141 23 125 140 1 72 29 152 103 87 51 93 29 80 132 77
490123 153 68 159 14 98 114 158 121 158 81 131 ^
491322 0 35 93 109 125 119 10 10 19 135 26 4 74 135 35 120 129 113 92 17 29 47 88
49214 159 149 87 45 36 75 68 22 138 20 59 61 144 151 11 107 6 153 81 114 43 85 157
49397 148 118 73 126 56 58 137 96 11 98 67 98 103 57 146 21 59 88 151 139 148 127
49425 17 47 115 34 160 109 107 51 64 28 69 13 49 149 69 141 90 93 118 64 10 1 67
49580 35 111 13 58 101 124 132 147 154 18 162 6 162 33 5 34 142 41 161 82 114 70
49692 145 57 155 137 114 79 44 36 48 48 21 14 13 40 33 14 150 33 32 54 143 14 4
497101 142 23 93 136 132 120 147 17 38 163 143 5 52 46 151 130 32 72 34 124 150 51
498100 112 128 126 65 10 28 87 81 159 131 19 99 54 125 110 58 119 28 78 129 104
499140 126 38 154 27 114 61 153 90 66 98 76 50 158 48 39 82 123 22 147 136 114 52
50037 35 75 41 15 150 60 52 55 103 21 23 129 95 24 71 47 97 130 50 140 144 106 100
5019 64 19 117 122 71 92 8 77 156 97 121 98 85 2 36 39 109 143 23 120 156 133 93
502154 36 66 116 131 160 127 162 161 46 142 14 141 81 141 63 86 117 104 3 146 39
503127 34 133 102 106 91 57 9 28 60 61 7 158 12 80 26 8 122 80 44 63 68 49 158 21
50432 81 150 15 141 108 161 64 46 124 123 31 99 27 105 109 98 112 144 ^
505336 1 34 161 107 149 48 67 138 109 156 104 37 133 60 80 84 81 160 9 16 96 164 1
50695 112 4 86 163 116 98 103 55 31 8 56 37 36 127 32 9 89 103 31 100 161 85 106
507119 89 154 43 115 162 137 108 128 38 42 155 103 9 62 65 102 122 10 138 160 125
50847 158 43 91 69 123 132 35 121 4 110 89 130 69 29 139 69 53 70 83 29 163 67 41
5099 108 34 45 76 87 2 144 164 98 33 160 79 78 48 89 9 38 134 93 146 79 54 122 80
51038 112 55 55 101 70 8 129 44 70 59 98 149 24 136 124 138 63 25 166 83 51 34 91
51145 30 118 59 28 87 72 44 116 28 36 103 101 113 10 114 62 111 71 65 126 53 19
512114 86 42 85 36 57 137 57 159 95 88 78 72 20 23 14 65 10 22 129 68 1 68 74 75
513108 7 7 147 109 13 35 51 104 158 164 122 126 2 50 4 132 127 59 52 13 81 20 47
514107 74 148 115 46 106 46 82 115 68 144 142 60 104 15 90 136 102 100 134 42 15
515141 100 40 49 49 73 166 13 156 82 166 37 82 96 137 130 166 134 20 139 45 122 56
516107 98 79 124 17 32 130 120 165 77 23 130 96 67 68 47 37 12 29 18 38 158 19 160
51755 147 39 118 83 121 96 43 137 33 66 86 112 147 155 149 140 5 19 17 148 161 10
51844 159 146 57 16 26 102 49 3 104 61 59 74 56 10 165 31 54 25 142 157 37 58 165
519128 154 73 50 149 94 137 ^
520330 1 61 51 65 132 23 169 116 122 14 66 7 98 131 72 69 127 72 163 125 68 69 51
52147 159 31 164 71 118 50 83 113 81 127 153 45 137 134 121 68 163 26 43 65 127
522166 138 98 144 18 53 137 139 148 76 158 4 62 78 167 102 144 94 55 141 63 29 97
52391 24 115 166 80 69 132 99 1 120 23 88 64 87 118 37 137 152 94 60 168 71 47 52
524110 37 155 125 63 42 43 52 11 12 151 31 12 44 110 32 128 117 68 87 24 39 164 76
525145 58 101 91 100 140 151 143 130 32 21 3 111 1 31 75 123 153 116 135 130 27
526164 165 116 23 12 62 83 24 133 139 49 74 154 80 158 80 64 105 91 6 142 27 75 24
527128 112 41 79 29 84 145 40 128 99 95 95 19 17 160 89 15 17 84 64 11 93 10 66 78
52873 127 148 18 129 139 143 49 150 9 84 82 154 85 15 88 82 60 87 19 12 133 58 20
52939 65 51 141 134 27 70 167 120 117 86 60 16 44 16 57 132 18 142 85 104 59 47
530141 58 2 66 96 46 119 153 40 110 126 103 90 144 13 26 106 144 80 145 134 103 95
53124 44 21 84 140 13 97 104 140 99 6 147 54 83 42 106 131 54 96 135 67 118 121 81
532109 10 53 132 112 117 81 33 155 49 61 38 119 1 13 102 131 148 94 131 143 67 123
533148 89 104 135 72 145 152 76 87 6 66 2 71 123 77 114 108 59 123 166 62 96 140
53494 149 116 169 ^
535349 0 125 17 93 82 80 110 156 147 156 99 154 4 29 90 163 120 84 113 56 8 157 29
53661 169 141 113 78 48 50 13 138 11 50 61 99 106 2 107 6 117 81 114 34 49 112 52
537130 82 73 108 20 22 110 60 11 98 22 62 58 48 146 149 23 88 142 139 121 91 16
538163 2 88 171 133 100 62 51 46 10 24 150 49 131 60 114 63 84 91 64 165 138 40 44
539172 111 141 58 74 115 96 129 145 164 153 170 126 24 169 16 115 41 125 46 87 61
54092 145 39 155 92 78 70 35 27 21 48 21 151 159 40 15 5 132 170 23 18 107 160 150
54156 133 23 66 109 123 102 102 172 166 145 116 151 34 1 151 130 5 36 34 97 114 15
54282 128 112 119 99 29 138 165 42 36 159 95 19 63 36 89 101 40 92 1 33 93 104 113
543126 2 136 96 52 108 90 57 89 31 5 113 30 39 37 96 4 147 127 105 43 165 35 75 23
544143 105 24 25 10 94 12 160 102 95 170 71 20 70 112 23 95 144 61 73 137 55 1 81
54595 26 65 172 41 147 79 103 80 40 121 36 12 64 98 169 93 111 115 48 127 9 39 107
546131 115 118 162 161 10 142 14 123 54 141 36 41 99 77 140 128 167 82 25 106 57
54770 64 21 19 15 34 126 149 167 53 163 127 86 35 8 54 23 40 140 3 169 45 150 152
54896 81 143 28 28 124 87 13 90 9 87 109 53 67 164 28 131 89 149 42 55 126 79 132
54974 19 133 30 68 72 75 148 9 10 72 152 144 83 106 153 74 163 98 152 ^
550375 1 94 28 13 8 20 28 18 118 5 140 89 67 171 64 152 85 61 101 80 154 149 34
551115 135 128 108 110 20 33 128 103 35 38 57 95 10 111 151 98 29 149 7 82 69 96
552114 26 103 171 101 53 121 24 2 121 51 35 70 83 29 154 67 5 167 63 16 27 58 60 2
55399 128 71 33 160 70 51 3 44 149 2 89 84 101 43 18 113 71 38 94 55 46 74 52 139
554102 35 43 50 80 122 6 100 88 129 36 25 148 47 24 7 55 36 30 82 32 19 78 63 26
55571 28 167 85 56 167 95 159 78 26 66 35 65 90 44 159 105 59 15 67 57 137 21 132
55650 70 78 36 169 5 172 56 1 22 129 68 168 23 74 30 99 138 174 120 91 153 8 42 68
557158 155 104 99 133 5 135 96 82 59 52 144 36 20 38 62 29 112 106 46 106 19 73 70
55841 135 133 42 95 15 45 136 93 100 98 173 6 132 55 4 4 31 64 130 162 156 64 157
55919 46 96 92 103 139 134 2 94 18 86 38 89 62 61 79 157 14 112 111 156 32 14 85
56078 31 59 20 1 161 169 149 29 122 150 133 37 102 30 109 65 85 51 174 110 164 66
56177 76 111 119 131 95 5 1 166 103 134 141 17 158 123 137 48 165 175 102 13 3 86
56243 23 47 56 150 165 4 36 174 115 157 168 13 147 119 109 55 41 140 67 27 31 27
56353 126 17 163 116 122 160 60 7 92 113 66 45 109 60 151 125 62 39 39 17 153 13
564152 53 94 50 53 89 57 127 153 45 119 104 121 56 145 172 19 41 103 166 108 68
565126 12 53 131 127 148 52 134 168 50 48 155 72 132 82 37 129 63 175 160 ^
566366 1 73 15 79 139 71 51 132 81 135 111 166 61 37 60 118 37 92 134 94 60 150 53
56747 25 110 19 137 107 27 176 43 16 145 146 142 165 12 17 92 166 110 117 41 69 6
56812 164 76 109 40 101 82 82 131 134 115 143 112 32 164 146 93 162 31 66 123 144
56980 135 94 137 156 107 157 173 62 65 176 124 112 4 65 127 44 131 53 19 105 91
570149 106 27 57 158 92 85 14 79 20 84 127 174 128 72 68 59 171 17 124 80 167 8 57
57128 172 66 144 48 42 37 109 121 18 120 103 116 13 132 39 73 145 76 158 43 82 33
57251 153 164 97 13 2 3 20 24 114 98 9 25 131 102 99 86 42 16 26 159 39 105 161
573133 49 59 41 20 105 31 136 30 87 10 119 135 13 83 99 58 45 99 156 26 61 135 143
57480 118 107 76 77 24 44 12 66 95 147 61 86 140 99 167 138 54 47 42 97 122 18 60
57590 40 73 85 63 82 1 35 96 94 81 54 15 128 40 52 2 101 1 165 93 113 130 85 95 98
57658 105 112 53 68 108 72 100 152 49 87 140 39 154 62 114 77 105 63 50 87 157 26
57778 122 67 140 71 170 119 5 93 64 50 104 144 129 138 75 130 4 178 60 139 120 54
578113 32 2 133 17 43 163 129 89 72 149 155 30 38 7 138 5 44 61 69 76 175 107 6 93
57981 114 28 25 82 22 118 58 73 96 175 177 92 36 11 98 171 38 28 42 146 125 178 88
580136 139 103 67 10 151 151 70 153 115 94 32 51 34 177 173 132 49 119 54 96 45 78
58173 64 159 120 22 20 154 111 117 58 56 109 72 143 ^
582372 1 136 146 144 170 90 15 169 180 88 41 89 10 60 52 92 145 21 155 47 42 61 26
58318 176 48 21 124 141 40 179 178 114 143 14 164 71 142 132 11 124 23 39 82 114
58484 57 163 130 127 89 133 16 138 151 130 160 34 70 78 161 64 92 112 110 72 175
585102 138 179 173 159 59 19 27 18 53 92 22 65 156 170 57 104 86 126 148 118 155
58678 43 63 90 48 80 168 142 68 12 39 174 69 168 147 118 96 34 129 35 75 5 107 60
587170 180 147 85 3 133 75 95 152 71 175 43 94 178 50 144 16 46 101 46 165 45 68
588163 38 172 5 138 61 85 62 177 76 36 167 19 53 151 66 66 97 3 100 164 12 98 131
58970 109 162 161 156 142 14 105 27 141 9 178 81 50 113 110 131 37 16 79 12 34 37
590167 173 10 152 7 81 140 158 26 136 82 50 172 154 45 160 31 122 167 142 9 150
591125 51 54 125 174 10 124 51 177 81 173 69 109 8 22 155 19 86 62 149 33 37 108
59234 96 29 174 133 167 50 54 66 130 9 1 36 134 108 65 97 126 56 163 71 83 88 10 1
5938 178 22 6 112 169 116 89 43 153 40 146 85 31 89 74 154 137 28 115 117 122 108
59498 8 27 110 103 176 17 20 27 77 10 93 145 80 17 143 165 76 69 78 102 20 91 171
59595 29 115 176 166 109 39 23 70 83 29 148 67 163 161 33 4 15 46 42 2 69 104 53
59633 160 64 33 155 14 131 160 59 78 71 19 176 107 65 38 82 55 40 56 40 115 84 29
59725 44 68 104 176 76 64 123 18 25 136 23 6 171 31 30 30 58 14 13 72 57 14 41 177
598^
599363 0 135 69 16 167 79 143 46 178 26 3 65 58 36 135 97 35 175 51 152 57 137 173
600108 10 54 78 4 153 173 164 48 177 22 129 68 168 167 74 174 91 106 174 96 75 129
601168 34 36 158 147 88 75 101 149 103 64 42 59 52 112 180 20 30 22 173 80 98 46
602106 179 65 30 17 127 125 26 87 15 5 136 85 100 66 141 182 124 15 156 148 15 56
60398 146 156 48 149 3 14 96 52 79 115 134 170 54 178 54 22 73 30 45 39 133 182 96
604103 148 176 6 45 62 183 51 180 153 145 145 117 21 90 118 109 21 62 22 101 49 53
60511 142 86 132 66 69 44 79 87 115 55 5 169 150 63 110 109 177 150 91 129 40 149
606159 102 165 3 70 27 175 23 56 126 165 164 20 158 91 157 136 157 131 111 69 39
60733 132 43 19 175 179 37 118 9 155 116 122 128 52 7 84 89 58 13 85 44 135 125 54
608183 23 161 145 173 136 29 62 50 13 57 25 127 153 45 95 64 121 40 121 140 171 9
60971 166 68 28 102 4 53 123 111 148 20 102 160 34 8 139 32 116 66 13 113 63 143
61097 63 10 59 124 66 41 132 71 115 106 151 46 22 45 118 37 67 124 94 60 140 43 47
61110 110 9 127 97 7 156 43 180 125 126 137 145 12 2 82 146 100 117 26 59 180 181
612164 76 89 30 101 77 72 126 114 95 143 102 32 149 131 83 157 31 61 123 139 60
613135 74 169 122 151 102 137 168 62 55 166 119 97 163 60 112 24 116 38 178 105 91
614134 86 27 47 138 72 70 183 79 15 84 117 154 128 57 53 39 161 88 ^
615393 1 92 72 151 33 183 164 42 112 32 10 5 93 97 18 112 71 92 168 116 179 186 65
616137 68 134 3 82 9 19 121 148 65 160 173 158 167 90 66 180 172 99 86 83 86 26 16
61710 135 23 81 137 125 17 19 25 183 73 7 104 185 79 165 119 119 176 59 75 18 5 59
618132 26 21 127 119 80 94 83 52 61 24 44 4 50 55 115 29 70 140 99 159 130 54 15
61942 89 114 173 28 50 16 33 53 47 58 180 19 64 78 49 30 186 104 32 44 157 85 1
620149 85 97 114 77 63 58 50 89 80 21 36 84 72 60 152 25 87 108 15 138 54 106 77
62197 23 42 55 149 181 62 106 43 132 31 138 111 176 93 40 10 96 128 105 114 43 98
6224 146 20 107 120 14 113 181 101 1 19 155 113 57 64 117 131 6 22 186 138 184 36
62361 29 36 175 107 6 61 81 114 20 180 42 169 102 26 73 80 151 153 68 4 11 98 139
6246 175 34 146 93 154 88 128 139 79 35 2 135 119 46 129 91 86 179 51 18 169 141
625108 49 103 46 72 21 70 49 64 151 96 185 175 130 111 85 58 32 101 40 101 131 136
626139 170 70 10 169 175 73 41 69 177 45 47 92 145 11 155 22 22 56 21 13 166 48 21
627109 131 40 174 178 104 128 9 149 51 132 122 173 119 23 24 67 109 74 32 158 110
628117 74 123 6 118 151 130 150 167 34 55 58 146 54 72 112 105 57 160 82 123 159
629153 159 39 19 7 8 33 87 12 50 146 150 37 104 71 126 133 108 145 68 38 38 90 43
63075 148 122 43 2 39 154 54 163 147 113 91 29 109 35 75 182 87 35 155 170 127 80
631185 118 60 95 142 71 165 28 84 168 25 144 178 31 81 41 160 25 53 143 ^
632381 1 14 172 163 130 45 69 46 145 36 36 151 169 13 135 42 26 81 153 76 148 178
63390 131 30 101 162 161 132 142 14 89 3 141 175 146 65 26 89 94 99 187 8 55 162 2
63413 143 173 2 120 173 41 132 150 2 112 42 18 140 130 37 128 23 106 159 118 167
635150 101 11 30 109 150 184 124 19 169 73 165 53 109 158 172 147 11 46 38 149 25
63621 92 184 64 179 158 133 135 34 38 58 114 9 183 4 118 76 49 89 102 40 163 47 75
63780 176 175 8 154 14 180 104 153 84 89 11 129 8 138 85 181 73 66 154 121 20 115
63893 114 108 82 182 19 86 103 176 183 186 177 53 10 69 137 56 1 135 141 68 69 54
63986 12 75 171 87 187 107 144 150 93 23 7 70 83 29 140 67 139 153 183 178 189 30
64018 2 29 72 29 33 160 56 9 123 164 107 136 19 70 31 177 152 99 57 38 66 55 32 32
64124 83 60 21 1 36 52 80 168 44 32 115 184 25 120 181 172 155 189 22 30 26 180 5
64264 49 188 1 28 111 57 176 167 67 131 22 160 186 169 65 34 30 117 91 17 163 39
643134 57 137 155 90 170 42 78 170 141 167 158 42 177 22 129 68 168 143 74 150 85
64482 174 78 63 111 156 28 12 158 141 76 57 77 125 79 40 12 59 52 88 156 20 24 182
645149 56 92 46 106 167 59 189 121 119 14 81 15 165 136 79 100 42 117 182 118 175
646138 124 3 50 74 134 156 36 143 181 180 96 22 61 97 134 164 24 166 30 10 61 6 33
6479 115 176 84 97 142 152 15 50 165 45 168 135 133 127 93 15 66 94 91 9 32 16 95
64837 29 171 118 68 108 66 63 20 55 186 ^
649396 1 97 10 5 160 132 18 83 73 159 141 55 120 31 131 141 102 138 3 52 9 148 189
65056 99 165 146 2 140 64 157 100 121 113 102 24 21 24 123 16 10 139 152 19 109
651146 116 122 92 43 7 75 62 49 170 58 26 117 125 45 147 5 125 136 155 118 2 26 50
652161 21 182 127 153 45 68 19 121 22 94 104 144 166 35 166 23 176 75 188 53 114
65393 148 177 66 151 16 156 121 180 98 48 179 95 63 107 97 45 1 23 97 57 23 132 53
65479 97 124 19 188 18 118 37 22 106 94 60 122 25 47 176 110 184 109 79 164 120 43
655153 89 90 128 109 12 168 64 110 82 117 192 41 171 163 164 76 53 12 101 68 54
656117 78 59 143 84 32 122 104 65 148 31 52 123 130 24 135 38 151 95 142 93 101
657159 62 37 148 110 70 127 51 85 181 89 11 142 105 91 107 50 27 29 102 36 43 165
65879 6 84 99 118 128 30 26 3 143 17 68 66 139 187 15 165 158 24 88 20 179 174 81
65979 18 106 47 74 150 104 179 162 59 131 62 116 166 82 184 188 97 136 41 136 167
660140 143 175 72 42 174 148 75 74 71 86 14 16 191 117 11 63 119 119 186 182 13
661171 49 182 80 167 73 147 119 107 164 41 57 181 168 29 114 26 184 121 101 80 76
66265 34 49 24 44 191 38 25 91 5 58 140 99 153 124 54 184 42 83 108 155 4 20 191 3
66329 35 40 180 7 40 66 25 12 180 86 26 38 139 73 1 137 79 85 102 71 39 28 44 77
66456 190 12 66 72 30 152 7 87 84 190 126 48 100 77 91 186 36 31 143 163 50 94 25
665126 1 114 105 170 93 22 173 90 116 87 96 19 74 4 122 183 83 120 177 113 169 181
66677 182 1 149 186 ^
667384 1 25 56 85 107 177 6 186 138 184 28 61 184 191 175 107 6 29 81 114 12 156 2
668137 86 189 73 64 127 129 44 167 11 98 107 169 143 26 146 61 130 88 120 139 55 3
669189 119 87 22 105 67 78 147 51 2 161 109 84 49 87 38 48 192 62 25 64 143 72 169
670151 106 111 53 58 8 93 8 85 123 120 131 170 38 2 169 167 49 41 37 153 21 39 92
671145 190 155 177 185 48 13 5 150 48 21 85 115 40 166 178 88 104 1 125 19 116 106
672141 111 23 43 101 58 187 150 78 101 50 107 185 86 151 130 134 143 34 31 26 122
67338 40 112 97 33 136 50 99 127 121 159 7 19 170 187 1 79 191 26 130 118 5 104 47
674126 109 92 129 52 30 193 90 35 67 116 90 3 181 39 122 30 155 147 105 83 21 77
67535 75 174 55 190 131 154 95 72 185 94 36 95 126 71 149 4 68 152 180 144 146 7
67649 33 152 188 29 111 194 172 148 125 35 59 36 125 11 36 141 149 183 125 27 1 71
677133 61 138 168 85 131 5 96 162 161 117 142 14 79 183 141 165 126 55 11 74 84 79
678167 3 40 142 177 193 128 173 192 100 163 16 127 145 182 97 17 193 120 115 32
679108 18 96 154 103 152 150 86 181 15 99 135 179 124 194 164 68 160 43 109 138
680152 142 6 21 23 149 20 11 82 164 44 159 148 133 115 24 28 53 104 9 183 179 108
68156 39 84 87 30 163 32 70 75 166 170 8 139 9 175 99 143 64 89 186 114 183 133 85
682161 63 61 154 111 15 115 78 109 108 72 177 14 71 103 176 173 176 157 38 10 54
683132 41 186 130 126 63 69 39 76 7 65 171 82 172 102 124 140 83 113 ^
684396 1 189 70 83 29 132 67 115 145 151 170 181 14 192 2 187 40 5 33 160 48 183
68591 132 83 112 177 62 189 153 128 91 49 38 50 55 24 8 8 51 36 13 175 28 36 56
686160 12 107 168 25 104 157 156 139 165 14 30 192 164 195 56 41 180 159 28 79 41
687144 167 51 115 188 136 154 145 65 2 22 93 83 191 147 23 110 57 137 131 66 138
68826 78 146 125 159 150 34 177 22 129 68 168 111 74 118 77 50 174 54 47 87 140 20
689178 158 133 60 33 45 93 47 8 170 59 52 56 124 20 16 150 117 24 84 46 106 151 51
690158 173 113 111 196 73 15 133 136 71 100 10 85 182 110 143 114 92 185 42 42 118
691156 20 135 173 156 96 180 37 73 134 156 182 150 196 192 45 172 17 167 91 168 68
69289 134 120 190 173 34 141 37 152 111 117 103 61 7 34 62 67 191 190 8 87 21 195
693139 86 44 76 66 55 186 23 31 87 183 5 155 122 191 68 53 149 136 35 115 26 121
694131 102 123 3 42 197 133 179 56 84 165 136 190 130 49 157 80 101 103 97 197 11
69519 118 1 5 119 137 9 104 193 141 116 122 72 38 7 70 47 44 155 43 16 107 125 40
696127 193 105 131 145 108 185 6 50 141 1 167 127 153 45 53 192 121 12 79 84 129
697151 15 166 196 156 60 188 53 109 83 148 162 46 146 6 136 111 160 88 38 169 85
69863 87 97 35 194 3 82 52 13 132 43 59 92 109 4 178 3 118 37 195 96 94 60 112 15
69947 166 110 179 99 69 149 100 43 138 69 70 123 89 12 158 54 90 72 117 182 31 166
700153 164 76 33 2 101 63 44 112 58 39 143 74 32 107 89 55 143 31 47 123 125 4 135
70118 141 80 137 88 81 154 187 ^
702406 0 23 134 103 49 99 44 64 160 68 190 114 105 91 86 22 27 15 74 8 22 151 79
703199 84 85 90 128 9 5 175 129 17 40 59 125 187 194 144 151 3 60 6 158 153 67 58
70418 99 19 53 129 90 179 134 52 124 55 95 138 82 170 167 69 122 13 108 160 119
705115 161 51 14 167 120 47 60 57 86 16 184 96 197 42 98 112 165 154 199 157 21
706168 52 146 66 126 119 93 150 20 36 153 140 194 93 26 156 114 80 80 55 44 13 35
70724 44 191 24 190 63 177 44 140 99 146 117 54 163 42 76 101 134 176 185 177 168
7081 21 19 180 193 12 52 197 191 173 65 19 31 118 59 1 123 72 71 88 64 11 193 37
70963 28 169 184 45 72 195 152 186 87 56 176 112 41 93 77 84 158 29 3 136 142 36
71080 4 119 166 86 98 163 93 1 145 83 102 66 75 191 46 4 94 155 55 120 149 113 148
711181 49 175 180 142 87 5 51 65 92 167 196 186 138 184 23 61 164 171 175 107 6 9
71281 114 7 141 177 117 76 174 73 54 112 114 29 152 11 98 87 154 123 21 146 41 115
71388 115 139 40 183 189 109 67 7 90 52 73 127 51 192 156 89 69 49 77 33 33 182 57
71410 64 138 57 159 136 91 111 33 58 193 88 188 75 118 110 126 170 18 197 169 162
71534 41 17 138 6 34 92 145 185 155 157 170 43 8 140 48 21 70 105 40 161 178 78 89
716196 110 199 106 96 121 106 23 185 28 96 48 167 145 58 91 35 97 180 66 151 130
717124 128 34 16 6 107 28 20 112 92 18 121 30 84 107 101 159 187 19 155 182 181 74
718186 11 120 98 185 104 32 126 94 82 119 42 25 173 90 30 62 96 70 178 176 39 102
71915 150 147 100 78 16 57 35 75 169 35 170 116 144 75 146 ^
720409 1 185 70 12 95 110 71 133 183 52 136 148 144 114 186 17 25 144 164 5 79 178
721172 124 117 19 43 20 93 174 36 125 117 151 109 3 164 55 101 37 122 152 77 131
722168 88 162 161 93 142 14 63 167 141 149 94 39 190 50 68 47 135 198 16 110 153
723177 104 173 192 68 147 179 119 137 166 73 180 169 88 91 24 76 10 80 146 79 128
724150 62 149 194 83 111 171 124 170 156 60 152 27 109 106 120 134 201 184 202 149
72512 198 66 132 12 127 132 133 83 8 12 45 88 9 183 155 92 24 23 76 63 14 163 8 62
72667 150 162 8 115 1 167 91 127 32 89 162 90 159 125 85 129 47 53 154 95 7 115 54
727101 108 56 169 6 47 103 176 157 160 125 14 10 30 124 17 178 122 102 55 69 15 60
728202 49 171 74 148 94 92 124 67 200 184 70 83 29 127 67 100 140 131 165 176 4
729182 2 167 20 193 33 160 43 173 71 112 68 97 157 57 169 138 113 86 44 38 40 55
73019 196 201 31 21 8 165 23 26 41 155 195 183 102 158 25 94 142 146 129 150 9 30
731177 154 195 51 36 175 139 28 59 31 124 167 41 105 173 121 134 130 65 185 17 78
73278 181 137 13 95 57 137 116 51 118 16 78 131 115 154 145 29 177 22 129 68 168
73391 74 98 72 30 174 39 37 72 130 15 163 158 128 50 18 25 73 27 191 150 59 52 36
734104 20 11 130 97 4 79 46 106 141 46 138 163 108 106 191 68 15 113 136 66 100
735193 65 182 105 123 99 72 180 37 22 108 156 10 130 168 141 96 160 22 58 134 151
736162 140 181 187 35 157 7 147 76 163 58 84 129 100 190 153 24 126 32 142 96 107
73788 41 2 14 42 52 186 170 3 82 11 180 119 66 29 56 66 50 171 3 11 77 163 5 150
738112 128 ^
739413 1 47 25 135 129 7 108 19 107 117 102 102 3 28 190 112 165 56 63 165 122 183
740116 28 157 52 73 89 90 169 202 12 111 185 203 91 116 200 97 193 134 116 122 44
74131 7 63 26 37 134 22 2 93 125 33 99 186 77 124 131 94 171 183 50 113 178 146
742127 153 45 32 164 121 203 58 56 108 130 192 166 168 128 39 188 53 102 69 148
743141 18 139 197 108 97 132 74 24 155 71 63 59 97 21 194 180 61 45 204 132 29 31
74485 88 188 164 187 118 37 167 82 94 60 98 1 47 152 110 172 85 55 128 72 43 117
74541 42 116 61 12 144 40 62 58 117 168 17 159 139 164 76 5 193 101 56 30 105 30
74611 143 60 32 86 68 41 136 31 40 123 118 181 135 195 127 59 130 81 53 147 62 13
747124 98 34 79 39 49 145 53 180 94 105 91 71 2 27 5 54 193 7 141 79 199 84 75 70
748128 199 195 160 119 17 20 54 115 187 184 129 146 193 40 201 143 138 57 43 18 94
749204 38 114 80 179 114 47 119 50 80 118 82 160 152 49 112 198 88 155 104 95 151
75036 199 162 100 27 50 47 86 195 16 179 81 192 27 83 107 150 134 194 147 1 158 32
751131 61 111 119 83 140 5 21 133 120 174 78 26 136 109 65 80 40 29 203 25 24 44
752191 14 170 43 162 34 140 99 141 112 54 148 42 71 96 119 161 165 167 148 186 11
7534 180 188 197 42 182 181 168 50 14 26 103 49 1 113 67 61 78 59 196 173 32 53 8
754154 169 30 72 175 152 176 87 36 166 102 36 88 77 79 138 24 188 131 127 26 70
755194 114 146 66 93 158 93 191 125 78 92 51 60 176 26 4 74 135 35 120 129 113 133
756181 29 170 170 137 77 190 46 45 77 157 191 186 138 184 18 61 144 151 175 107 6
757194 81 114 2 126 110 ^
758427 1 85 60 150 73 38 88 90 5 128 11 98 55 130 91 13 146 9 91 88 107 139 16 159
759189 93 35 191 66 28 65 95 51 184 148 57 45 49 61 25 9 166 49 194 64 130 33 143
760112 67 111 1 58 177 80 164 59 110 94 118 170 194 197 169 154 10 41 193 114 190
76126 92 145 177 155 125 146 35 200 124 48 21 46 89 40 153 178 62 65 196 86 175 90
76280 89 98 23 169 4 88 32 135 137 26 75 11 81 172 34 151 130 108 104 34 200 182
76383 12 196 112 84 202 97 206 60 75 69 159 163 19 131 174 157 66 178 195 104 66
764161 104 8 126 70 66 103 26 17 141 90 22 54 64 38 146 168 39 70 199 142 147 92
76570 8 25 35 75 161 3 138 92 128 43 59 185 55 205 95 100 71 123 173 42 126 128
766144 94 176 205 20 139 149 198 59 168 172 109 112 9 33 10 73 154 36 115 97 131
76799 196 144 45 81 22 112 142 72 131 148 83 162 161 78 142 14 53 157 141 139 74
76829 180 35 58 27 115 198 1 90 138 167 89 173 192 48 137 159 114 132 156 58 160
769154 68 76 19 56 5 70 141 64 113 150 47 129 184 73 96 166 124 155 151 55 147 17
770109 86 100 129 201 164 192 149 7 193 56 112 200 107 122 133 63 206 2 40 78 9
771183 140 82 4 13 71 48 4 163 201 57 62 140 157 8 100 204 162 86 117 12 89 147 75
772144 120 85 109 37 48 154 85 2 115 39 96 108 46 164 1 32 103 176 147 150 105 207
77310 15 119 2 173 117 87 50 69 50 202 39 171 69 133 89 72 114 57 195 179 70 83 29
774122 67 85 135 111 160 171 202 172 2 147 183 33 160 38 163 51 92 53 82 137 52
775149 123 98 81 39 38 30 55 14 186 196 11 6 3 155 18 16 26 150 180 168 97 148 25
77684 127 136 119 135 4 30 162 144 195 46 31 170 119 28 190 ^
777443 1 17 96 167 27 91 152 100 106 109 65 164 10 57 71 167 123 209 74 57 137 95
77830 90 2 78 110 101 147 138 22 177 22 129 68 168 63 74 70 65 2 174 18 23 51 116
7798 142 158 121 36 207 207 45 209 170 122 59 52 8 76 20 4 102 69 186 72 46 106
780127 39 110 149 101 99 184 61 15 85 136 59 100 172 37 182 98 95 78 44 173 30 204
78194 156 206 123 161 120 96 132 1 37 134 144 134 126 160 180 21 136 203 119 55
782156 44 77 122 72 190 125 10 105 25 128 75 93 67 13 205 196 14 31 179 142 206 75
783207 159 91 38 8 28 66 43 150 185 193 63 135 5 143 98 143 32 5 125 124 197 103
78414 97 107 102 87 3 18 185 97 155 56 48 165 112 178 106 13 157 32 53 79 85 149
785197 7 106 175 203 71 101 195 92 193 129 116 122 24 26 7 58 11 32 119 7 202 83
786125 28 79 181 57 119 121 84 161 168 50 93 163 131 127 153 45 17 144 121 198 43
78736 93 115 177 166 148 108 24 188 53 97 59 148 126 208 134 192 88 87 112 64 14
788145 61 63 39 97 11 194 165 46 40 199 132 19 11 80 73 178 154 177 118 37 147 72
78994 60 88 201 47 142 110 167 75 45 113 52 43 102 21 22 111 41 12 134 30 42 48
790117 158 7 154 129 164 76 195 188 101 51 20 100 10 201 143 50 32 71 53 31 131 31
79135 123 113 166 135 180 117 44 125 76 33 142 62 3 114 93 19 59 34 34 130 38 170
79274 105 91 56 192 27 205 34 178 202 131 79 199 84 65 50 128 189 185 145 109 17
79349 105 187 174 114 141 183 20 196 128 123 47 28 18 89 189 23 99 70 179 94 42
794114 45 65 98 82 150 137 29 102 183 68 150 89 75 141 21 184 157 80 7 40 37 86
795190 16 174 66 187 12 68 102 135 114 189 137 191 148 12 116 56 96 119 73 130 200
7966 113 100 154 63 26 116 104 50 80 25 14 193 83 ^
797436 1 24 44 191 211 138 11 138 18 140 99 133 104 54 124 42 63 88 95 137 133 151
798116 162 208 193 180 180 173 26 158 165 160 26 6 18 79 33 1 97 59 45 62 51 172
799141 24 37 189 130 145 6 72 143 152 160 87 4 150 86 28 80 77 71 106 16 164 123
800103 10 54 178 106 114 34 85 150 93 175 93 70 76 27 36 152 207 4 42 103 3 120 97
801113 109 181 210 162 154 129 61 166 38 13 53 141 183 186 138 184 10 61 112 119
802175 107 6 170 81 114 207 102 125 65 50 135 73 28 73 75 203 113 11 98 35 115 71
8038 146 202 76 88 102 139 1 144 189 83 15 181 51 13 60 75 51 179 143 37 30 49 51
80420 207 156 44 184 64 125 18 133 97 52 111 194 58 167 75 149 49 105 84 113 170
805179 197 169 149 208 41 178 99 180 21 92 145 172 155 105 131 30 208 200 114 48
80621 31 79 40 148 178 52 50 196 71 160 80 70 69 93 23 159 202 83 22 115 132 6 65
807209 71 167 14 151 130 98 89 34 190 167 68 2 181 112 79 192 82 191 45 55 49 159
808148 19 116 169 142 61 173 185 94 46 146 104 206 126 55 56 93 16 12 121 90 17 49
80944 18 126 163 39 50 189 137 147 87 65 3 5 35 75 156 196 118 77 118 23 54 185 40
810195 95 90 71 113 163 32 116 108 144 74 166 190 15 134 134 188 39 158 172 94 107
811212 23 53 134 36 105 77 111 89 186 124 35 61 7 102 132 67 131 128 78 162 161 63
812142 14 43 147 141 129 54 19 170 20 48 7 95 198 199 70 123 157 74 173 192 28 127
813139 109 127 146 43 140 139 48 61 14 36 60 136 49 98 150 32 109 174 63 81 161
814124 140 146 50 142 7 109 66 80 124 201 144 182 149 2 188 46 92 185 87 112 133
81543 201 205 35 68 9 183 125 72 197 3 66 33 207 163 191 52 57 130 152 8 85 204
816157 81 107 205 187 ^
817462 1 126 54 123 113 85 81 23 41 154 71 210 115 18 89 108 32 157 209 11 103 176
818133 136 77 193 10 209 112 196 166 110 66 43 69 194 36 202 25 171 62 112 82 44
819100 43 188 172 70 83 29 115 67 64 128 83 153 164 195 158 2 119 187 169 33 160
82031 149 23 64 32 61 109 45 121 102 77 74 32 38 16 55 7 172 189 198 200 211 141
82111 2 5 143 159 147 90 134 25 70 106 122 105 114 212 30 141 130 195 39 24 163 91
82228 11 7 76 167 17 81 137 85 86 94 65 149 5 42 66 157 113 204 59 57 137 80 15 70
823207 78 95 91 142 133 17 177 22 129 68 168 43 74 50 60 197 174 3 13 36 106 3 127
824158 116 26 197 192 25 194 155 102 59 52 203 56 20 214 82 49 171 67 46 106 117
82534 90 139 96 94 179 56 15 65 136 54 100 157 17 182 93 75 63 24 168 25 189 84
826156 201 118 156 105 96 112 201 22 134 139 114 116 145 175 11 121 198 99 40 151
82734 72 117 52 190 105 90 20 118 60 83 52 208 205 181 209 16 174 122 206 70 202
828144 71 18 208 8 66 38 135 170 178 53 115 5 138 88 123 17 200 115 119 182 98 9
82987 97 102 72 3 8 180 82 145 56 33 165 102 173 96 213 157 12 33 69 80 129 192 2
830101 165 203 51 86 190 87 193 124 116 122 4 21 7 53 211 27 104 207 197 73 125 23
83159 176 37 114 111 74 151 153 50 73 148 116 127 153 45 2 124 121 193 28 16 78
832100 162 166 128 88 9 188 53 92 49 148 111 193 129 187 68 77 92 54 4 135 51 63
83319 97 1 194 150 31 35 194 132 9 206 75 58 168 144 167 118 37 127 62 94 60 78
834196 47 132 110 162 65 35 98 32 43 87 1 2 106 21 12 124 20 22 38 117 148 212 149
835119 164 76 180 183 101 46 10 95 205 186 143 40 32 56 38 21 126 31 30 123 108
836151 135 165 107 29 120 71 13 137 62 208 104 88 4 39 29 19 115 23 160 54 105 91
83741 177 27 200 14 163 124 ^
838453 0 115 79 199 84 49 18 128 173 169 121 93 17 186 41 89 187 158 90 133 167
839206 188 104 99 31 4 18 81 165 217 75 54 179 62 34 106 37 41 66 82 134 113 215
84086 159 36 142 65 43 125 215 160 149 48 193 24 21 86 182 16 166 42 179 206 44 94
841111 82 181 121 167 132 198 92 48 72 119 57 114 184 200 81 68 122 39 26 84 96 26
84280 1 208 177 217 24 44 191 206 118 209 123 8 140 99 128 99 54 109 42 58 83 80
843122 113 141 96 147 203 183 180 175 158 16 143 155 155 11 1 13 64 23 1 87 54 35
84452 46 157 121 19 27 174 115 130 209 72 123 152 150 87 202 140 76 23 75 77 66 86
84511 149 118 88 44 168 101 94 14 80 145 93 165 73 65 66 12 21 137 192 4 22 83 201
846120 77 113 94 181 195 157 144 124 51 151 33 211 38 131 178 186 138 184 5 61 92
84799 175 107 6 155 81 114 207 87 105 45 40 120 73 18 58 60 193 98 11 98 15 100 51
8483 146 187 61 88 97 139 204 129 189 73 213 171 36 216 55 55 51 174 138 17 15 49
84941 15 197 146 39 174 64 120 3 123 82 37 111 179 58 157 70 134 39 100 74 108 170
850164 197 169 144 198 41 163 84 170 16 92 145 167 155 85 116 25 208 200 104 48 21
85116 69 40 143 178 42 35 196 56 145 70 60 49 88 23 149 192 78 12 95 127 204 55
852199 61 162 212 151 130 88 74 34 180 152 53 210 166 112 74 182 67 176 30 35 29
853159 133 19 101 164 127 56 168 175 84 26 131 104 196 126 40 46 83 6 7 101 90 12
85444 24 216 106 158 39 30 179 132 147 82 60 216 203 35 75 151 181 98 62 108 3 49
855185 25 185 95 80 71 103 153 22 106 88 144 54 156 175 10 129 119 178 19 148 172
85679 102 207 13 208 33 114 36 95 57 91 79 176 104 25 41 210 92 122 62 131 108 73
857162 161 48 142 14 33 137 141 119 34 9 160 5 38 205 75 198 189 50 108 112 ^
858454 1 53 173 192 113 111 102 120 132 22 112 118 20 40 7 8 213 46 129 28 77 150
85911 81 160 49 60 154 124 119 139 43 135 213 109 38 52 117 201 116 168 149 215
860181 32 64 164 59 98 133 15 194 198 28 54 9 183 104 58 176 209 59 12 200 163 177
86145 50 116 145 8 64 204 150 74 93 184 89 111 39 108 108 85 61 13 36 154 61 210
862115 3 84 108 22 152 209 216 103 176 123 126 57 183 10 199 107 186 161 105 51 38
86369 184 26 202 15 171 57 97 77 24 90 33 183 167 70 83 29 110 67 49 123 63 148
864159 190 148 2 99 172 159 33 160 26 139 3 44 17 46 89 40 101 87 62 69 27 38 6 55
8652 162 184 183 190 211 131 6 212 210 138 144 132 85 124 25 60 91 112 95 99 212
86630 126 120 195 34 19 158 71 28 211 217 56 167 7 71 122 70 66 79 65 134 27 61
867147 103 199 44 57 137 65 50 202 78 80 81 137 128 12 177 22 129 68 168 23 74 30
86855 182 174 208 3 21 96 218 112 158 111 16 187 177 5 179 140 82 59 52 188 36 20
869214 62 29 156 62 46 106 107 29 70 129 91 89 174 51 15 45 136 49 100 142 217 182
87088 55 48 4 163 20 174 74 156 196 113 151 90 96 92 191 7 134 134 94 106 130 170
8711 106 193 79 25 146 24 67 112 32 190 85 210 75 15 108 45 73 37 193 205 166 194
8721 169 102 206 65 197 129 51 218 198 208 66 33 120 155 163 43 95 5 133 78 103 2
873185 105 114 167 93 4 77 87 102 57 3 218 175 67 135 56 18 165 92 168 86 203 157
874212 13 59 75 109 187 217 96 155 203 31 71 185 82 193 119 116 122 204 16 7 48
875201 22 89 197 192 63 125 18 39 171 17 109 101 64 141 138 50 53 133 101 127 153
87645 207 104 121 188 13 216 63 85 147 166 108 68 214 188 53 87 39 148 96 178 124
877182 48 67 72 44 214 125 41 63 219 97 211 194 135 16 30 189 132 219 191 70 43
878158 181 ^
879475 0 153 118 37 99 48 94 60 64 189 47 118 110 155 51 21 77 4 43 66 195 196 99
880215 12 110 6 216 24 117 134 205 142 105 164 76 159 176 101 39 218 88 184 165
881143 26 32 35 17 7 119 31 23 123 101 130 135 144 93 8 113 64 207 130 62 201 90
88281 205 11 22 220 94 2 146 26 105 91 20 156 27 193 208 142 178 107 79 199 84 41
8832 128 165 161 109 85 17 174 37 81 187 150 78 129 159 194 184 92 87 23 214 18 77
884153 209 63 46 179 46 30 102 33 29 50 82 126 101 203 78 147 20 138 53 27 117 207
885148 145 32 181 16 13 86 178 16 162 30 175 198 32 90 99 66 177 113 155 124 186
88680 44 60 119 49 106 176 192 65 52 106 27 26 68 92 14 80 211 200 169 213 24 44
887191 202 102 197 111 140 99 124 95 54 97 42 54 79 68 110 97 133 80 135 199 175
888180 171 146 8 131 147 151 221 219 9 52 15 1 79 50 27 44 42 145 105 15 19 162
889103 118 201 72 107 152 142 87 190 132 68 19 71 77 62 70 7 137 114 76 214 36 160
89097 78 220 76 141 93 157 57 61 58 9 125 180 4 6 67 189 120 61 113 82 181 183 153
891136 120 43 139 29 199 26 123 174 186 138 184 1 61 76 83 175 107 6 143 81 114
892207 75 89 29 32 108 73 10 46 48 185 86 11 98 221 88 35 221 146 175 49 88 93 139
893196 117 189 65 201 163 24 208 51 39 51 170 134 1 3 49 33 11 189 138 35 166 64
894116 213 115 70 25 111 167 58 149 66 122 31 96 66 104 170 152 197 169 140 190 41
895151 72 162 12 92 145 163 155 69 104 21 208 200 96 48 21 4 61 40 139 178 34 23
896196 44 133 62 52 33 84 23 141 184 74 4 79 123 192 47 191 53 158 200 151 130 80
89762 34 172 140 41 206 154 112 70 174 55 164 18 19 13 159 121 19 89 160 115 52
898164 167 76 10 119 104 188 126 28 38 75 220 3 85 90 8 40 8 204 90 154 39 14 171
899128 147 78 56 216 191 35 75 147 169 82 50 100 209 45 185 13 177 95 150 ^
900471 0 71 89 139 8 92 60 144 26 142 154 3 122 98 164 216 134 172 58 95 200 224
901201 5 86 36 81 29 63 65 162 76 11 13 196 78 108 55 131 80 66 162 161 27 142 14
90219 123 141 105 6 220 146 209 24 184 47 198 175 22 87 133 38 173 192 205 103 91
90397 115 122 7 92 103 25 2 213 213 36 124 13 62 150 221 61 150 39 45 149 124 104
904134 38 130 208 109 18 32 112 201 96 158 149 215 176 22 44 149 39 88 133 220 189
905193 23 44 9 183 89 48 161 204 54 222 195 163 167 40 45 106 140 8 49 204 145 69
90683 169 89 96 24 93 103 85 41 3 31 154 51 210 115 213 79 108 12 147 209 206 103
907176 113 116 37 173 10 189 102 176 156 100 36 33 69 174 16 202 5 171 52 82 72 4
90880 23 178 162 70 83 29 105 67 34 118 43 143 154 185 138 2 79 157 149 33 160 21
909129 208 24 2 31 69 35 81 72 47 64 22 38 221 55 222 152 179 168 180 211 121 1
910207 200 133 129 117 80 114 25 50 76 102 85 84 212 30 111 110 195 29 14 153 51
91128 196 212 36 167 222 61 107 55 46 64 65 119 220 12 56 137 93 194 29 57 137 50
912210 30 197 78 65 71 132 123 7 177 22 129 68 168 3 74 10 50 167 174 198 218 6 86
913218 97 158 106 6 177 162 210 164 125 62 59 52 173 16 20 214 42 9 141 57 46 106
91497 24 50 119 86 84 169 46 15 25 136 44 100 127 202 182 83 35 33 209 158 15 159
91564 156 191 108 146 75 96 72 181 217 134 129 74 96 115 165 216 91 188 59 10 141
91614 62 107 12 190 65 205 60 10 98 30 63 22 178 205 151 179 211 164 82 206 60 192
917114 31 203 188 193 66 28 105 140 148 33 75 5 128 68 83 212 170 95 109 152 88
918224 67 77 102 42 3 213 170 52 125 56 3 165 82 163 76 193 157 197 218 49 70 89
919182 217 91 145 203 11 56 180 77 193 114 116 122 189 11 7 43 191 17 74 187 187
92053 125 13 19 166 222 104 91 54 131 123 50 33 118 86 127 167 ^
921480 1 45 193 76 121 181 219 195 42 64 126 166 80 40 200 188 53 80 25 148 75 157
922117 175 20 53 44 30 207 111 27 63 198 97 204 194 114 222 23 182 132 212 170 63
92322 144 120 143 118 37 79 38 94 60 54 184 47 108 110 150 41 11 62 211 43 51 180
924181 94 200 12 100 223 201 14 117 124 200 137 95 164 76 144 171 101 34 213 83
925169 150 143 16 32 20 2 224 114 31 18 123 96 115 135 129 83 220 108 59 192 125
92662 196 80 76 195 218 17 210 79 214 136 6 105 91 5 141 27 188 193 127 168 97 79
927199 84 31 209 128 155 151 94 75 17 159 32 71 187 140 63 124 149 179 179 77 72
92813 204 18 72 138 199 48 36 179 26 25 97 28 14 30 82 116 86 188 68 132 133 38 7
929107 197 133 140 12 166 6 3 86 173 16 157 15 170 188 17 85 84 46 172 103 140 114
930171 65 39 45 119 39 96 166 182 45 32 86 12 26 48 87 226 80 201 190 159 208 24
93144 191 197 82 182 96 217 140 99 119 90 54 82 42 49 74 53 95 77 123 60 120 194
932165 180 166 131 225 116 137 146 211 219 4 37 5 1 69 45 17 34 37 130 85 10 9 147
93388 103 191 72 87 152 132 87 175 122 58 14 66 77 57 50 2 122 109 61 209 26 150
93492 58 205 71 136 93 147 37 56 48 212 221 110 165 4 213 47 174 120 41 113 67 181
935168 148 126 115 33 124 24 184 11 113 169 186 138 184 223 61 56 63 175 107 6 128
93681 114 207 60 69 9 22 93 73 31 33 175 71 11 98 206 73 15 221 146 160 34 88 88
937139 186 102 189 55 186 153 9 198 46 19 51 165 129 208 215 49 23 6 179 128 30
938156 64 111 203 105 55 10 111 152 58 139 61 107 21 91 56 99 170 137 197 169 135
939180 41 136 57 152 7 92 145 158 155 49 89 16 208 200 86 48 21 216 51 40 134 178
94024 8 196 29 118 52 42 13 79 23 131 174 69 221 59 118 177 37 181 43 153 185 151
941130 70 47 34 162 125 26 201 139 112 65 164 40 149 3 226 220 159 106 19 74 155
942100 47 159 157 193 ^
943471 0 211 98 104 174 126 7 24 61 213 225 57 90 1 33 209 183 62 147 39 215 157
944121 147 71 49 216 170 35 75 140 148 54 29 86 188 38 185 221 163 95 58 71 81 131
94584 44 144 10 134 142 228 118 86 156 204 126 172 46 91 196 220 197 218 70 36 73
94613 47 57 154 60 3 226 188 70 100 51 131 64 62 162 161 15 142 14 11 115 141 97
947219 216 138 201 16 172 31 198 167 6 75 125 26 173 192 193 95 75 93 111 114 224
94876 91 213 13 227 201 213 28 120 1 50 150 213 45 142 31 33 145 124 92 130 34 126
949204 109 2 16 108 201 80 150 149 215 172 14 28 137 23 80 133 208 185 189 19 36 9
950183 77 40 149 200 50 214 191 163 159 36 41 98 136 8 37 204 141 65 75 157 89 84
95112 81 99 85 25 224 27 154 43 210 115 205 75 108 4 143 209 198 103 176 105 108
95221 165 10 181 98 168 152 96 24 29 69 166 8 202 226 171 48 70 68 217 72 15 174
953158 70 83 29 101 67 22 114 27 139 150 181 130 2 63 145 141 33 160 17 121 196 8
954219 19 53 31 65 60 35 60 18 38 217 55 222 144 175 156 172 211 113 226 203 192
955129 117 105 76 106 25 42 64 94 77 72 212 30 99 102 195 25 10 149 35 28 184 208
95620 167 218 53 95 43 30 52 65 107 220 52 129 85 190 17 57 137 38 202 14 193 78
95753 63 128 119 3 177 22 129 68 168 216 74 223 46 155 174 190 214 223 78 218 85
958158 102 227 169 150 198 152 113 46 59 52 161 20 214 26 222 129 53 46 106 89 20
95934 111 82 80 165 42 15 9 136 40 100 115 190 182 79 19 21 197 154 11 147 56 156
960187 104 142 63 96 56 173 209 134 125 58 88 103 161 212 79 184 43 227 137 6 58
961103 225 190 49 201 48 6 90 18 55 10 166 205 139 167 203 160 66 206 56 188 102
96215 191 180 181 66 24 93 128 136 25 59 5 124 60 67 204 158 87 105 140 84 224 59
96369 102 30 3 209 166 40 117 56 220 165 74 159 68 185 157 185 206 41 66 167 ^
964490 1 176 217 85 133 203 218 38 174 71 193 108 116 122 171 5 7 37 179 11 56 175
965181 41 125 7 226 160 204 98 79 42 119 105 50 9 100 68 127 153 45 185 60 121 177
966211 183 30 52 114 166 64 24 192 188 53 76 17 148 63 145 113 171 4 45 28 22 203
967103 19 63 186 97 200 194 102 214 19 178 132 208 158 59 10 136 112 135 118 37 63
96830 94 60 46 180 47 100 110 146 33 3 50 199 43 39 168 169 90 188 12 92 219 189 6
969117 116 196 133 87 164 76 132 167 101 30 209 79 157 138 143 8 32 8 221 220 110
97031 14 123 92 103 135 117 75 212 104 55 180 121 62 192 72 72 187 206 13 202 67
971206 128 221 105 91 224 129 27 184 181 115 160 89 79 199 84 23 197 128 147 143
97282 67 17 147 28 63 187 132 51 120 141 167 175 65 60 5 196 18 68 126 191 36 28
973179 10 21 93 24 2 14 82 108 74 176 60 120 215 129 26 222 99 189 121 136 227 154
974229 226 86 169 16 153 3 166 180 5 81 72 30 168 95 128 106 159 53 35 33 119 31
97588 158 174 29 16 70 26 32 83 218 80 193 182 151 204 24 44 191 193 66 170 84 213
976140 99 115 86 54 70 42 45 70 41 83 61 115 44 108 190 157 180 162 119 221 104
977129 142 203 219 25 228 1 61 41 9 26 33 118 69 6 1 135 76 91 183 72 71 152 124
97887 163 114 50 10 62 77 53 34 229 110 105 49 205 18 142 88 42 193 67 132 93 139
97921 52 40 204 213 98 153 4 201 31 162 120 25 113 55 181 156 144 118 111 25 112
98020 172 230 105 165 186 138 184 223 61 40 47 175 107 6 116 81 114 207 48 53 224
98114 81 73 223 19 21 167 59 11 98 194 61 230 221 146 148 22 88 84 139 178 90 189
98247 174 145 228 190 42 3 51 161 125 196 207 49 15 2 171 120 26 148 64 107 195 97
98343 229 111 140 58 131 57 95 13 87 48 95 170 125 197 169 131 172 41 124 45 144 3
98492 145 154 155 33 77 12 208 200 78 48 21 208 43 40 130 178 16 227 196 17 106 44
98534 228 75 23 123 166 65 217 43 114 165 29 173 35 200 ^
986479 0 167 151 130 58 29 34 150 107 8 195 121 112 59 152 22 131 218 208 202 159
98788 19 56 149 82 41 153 145 54 199 86 104 166 126 228 16 53 209 225 41 90 230 29
988197 171 46 143 39 203 149 117 147 67 45 216 158 35 75 136 136 38 17 78 176 34
989185 213 155 95 50 71 73 123 225 76 28 144 227 126 130 228 114 74 148 192 118
990172 34 87 192 216 193 206 54 36 65 230 31 49 146 44 228 214 180 62 92 47 131 48
99158 162 161 3 142 14 3 107 141 89 207 212 130 193 8 160 15 198 159 223 63 117 14
992173 192 181 87 59 89 107 106 216 60 79 201 1 227 189 213 20 116 222 38 150 205
99329 134 23 21 141 124 80 126 30 122 200 109 219 104 201 64 142 149 215 168 6 12
994125 7 72 133 196 181 185 15 28 9 183 65 32 137 196 46 206 187 163 151 32 37 90
995132 8 25 204 137 61 67 145 89 72 69 95 85 9 220 23 154 35 210 115 197 71 108
996229 139 209 190 103 176 97 100 5 157 10 173 94 160 148 92 12 25 69 158 202 222
997171 44 58 64 205 64 7 170 154 70 83 29 97 67 10 110 11 135 146 177 122 2 47 133
998133 33 160 13 113 184 225 211 7 37 27 49 48 23 56 14 38 213 55 222 136 171 144
999164 211 105 226 199 184 125 105 93 72 98 25 34 52 86 69 60 212 30 87 94 195 21
10006 145 19 28 172 204 4 167 214 45 83 31 14 40 65 95 220 221 48 121 77 186 5 57
1001137 26 194 231 189 78 41 55 124 115 232 177 22 129 68 168 204 74 211 42 143 174
1002182 210 215 70 218 73 158 98 223 161 138 186 140 101 30 59 52 149 217 20 214 10
1003210 117 49 46 106 81 16 18 103 78 76 161 38 15 226 136 36 100 103 178 182 75 3
10049 185 150 7 135 48 156 183 100 138 51 96 40 165 201 134 121 42 80 91 157 208 67
1005180 27 219 133 231 54 99 213 190 33 197 36 2 82 6 47 231 154 205 127 155 195
1006156 50 206 52 184 90 232 179 172 169 66 20 81 116 124 17 43 5 120 52 51 196 146
100779 101 128 80 224 65 ^
1008503 1 55 102 9 3 202 159 19 103 56 206 165 60 152 54 171 157 164 185 27 59 45
1009171 217 80 123 203 203 23 169 66 193 103 116 122 156 7 32 169 6 41 165 176 31
1010125 2 211 155 189 93 69 32 109 90 50 225 85 53 127 153 45 175 40 121 172 201
1011168 15 37 99 166 44 4 182 188 53 71 7 148 48 130 108 166 220 35 8 12 198 93 9
101263 171 97 195 194 87 204 14 173 132 203 143 54 231 126 102 125 118 37 43 20 94
101360 36 175 47 90 110 141 23 229 35 184 43 24 153 154 85 173 12 82 214 174 232
1014117 106 191 128 77 164 76 117 162 101 25 204 74 142 123 143 234 32 229 211 215
1015105 31 9 123 87 88 135 102 65 202 99 50 165 116 62 187 62 67 177 191 8 192 52
1016196 118 206 105 91 214 114 27 179 166 100 150 79 79 199 84 13 182 128 137 133
101767 57 17 132 23 53 187 122 36 115 131 152 170 50 45 231 186 18 63 111 181 21 18
1018179 226 16 88 19 223 230 82 98 59 161 50 105 200 124 11 207 89 179 106 131 212
1019139 224 221 86 164 16 148 224 161 170 226 76 57 10 163 85 113 96 144 38 30 18
1020119 21 78 148 164 9 232 50 221 26 12 78 208 80 183 172 141 199 24 44 191 188 46
1021155 69 208 140 99 110 81 54 55 42 40 65 26 68 41 105 24 93 185 147 180 157 104
1022216 89 119 137 193 219 231 10 223 1 51 36 235 16 28 103 49 1 227 120 61 76 173
102372 51 152 114 87 148 104 40 5 57 77 48 14 229 95 100 34 200 8 132 83 22 178 62
1024127 93 129 1 47 30 194 203 83 138 4 186 11 147 120 5 113 40 181 141 139 108 106
102515 97 15 157 220 95 160 186 138 184 223 61 20 27 175 107 6 101 81 114 207 33 33
1026209 4 66 73 218 4 6 157 44 11 98 179 46 215 221 146 133 7 88 79 139 168 75 189
102737 159 135 218 180 37 219 51 156 120 181 197 49 5 233 161 110 21 138 64 102 185
102887 28 219 111 125 58 121 52 80 3 82 38 90 170 110 197 169 126 162 41 109 30 134
1029234 92 145 149 155 13 62 7 208 200 68 48 21 198 33 40 125 178 6 217 196 2 91 34
103024 213 70 23 113 161 ^
1031470 0 58 210 15 107 144 15 159 21 142 152 151 130 48 14 34 140 92 231 190 106
1032112 54 142 7 116 208 193 187 159 73 19 41 144 67 36 148 135 44 184 71 104 156
1033126 218 6 43 204 225 21 90 230 24 182 156 26 138 39 188 139 112 147 62 40 216
1034143 35 75 131 121 18 2 68 161 29 185 203 145 95 40 71 63 113 220 66 8 144 212
1035116 115 228 109 59 138 177 108 172 19 82 187 211 188 191 34 36 55 215 11 39 136
103624 223 199 170 52 82 42 131 28 53 162 161 226 142 14 231 97 141 79 192 207 120
1037183 236 145 233 198 149 208 48 107 237 173 192 166 77 39 84 102 96 206 40 64
1038186 224 227 174 213 10 111 212 23 150 195 9 124 13 6 136 124 65 121 25 117 195
1039109 204 218 99 201 44 132 149 215 163 234 230 110 225 62 133 181 176 180 10 18
10409 183 50 22 122 191 41 196 182 163 141 27 32 80 127 8 10 204 132 56 57 130 89
104157 223 54 90 85 227 215 18 154 25 210 115 187 66 108 224 134 209 180 103 176 87
104290 223 147 10 163 89 150 143 87 235 20 69 148 228 202 217 171 39 43 59 190 54
1043235 165 149 70 83 29 92 67 233 105 229 130 141 172 112 2 27 118 123 33 160 8
1044103 169 210 201 230 17 22 29 33 8 51 9 38 208 55 222 126 166 129 154 211 95 226
1045194 174 120 90 78 67 88 25 24 37 76 59 45 212 30 72 84 195 16 1 140 237 28 157
1046199 222 167 209 35 68 16 232 25 65 80 220 211 43 111 67 181 228 57 137 11 184
1047216 184 78 26 45 119 110 232 177 22 129 68 168 189 74 196 37 128 174 172 205
1048205 60 218 58 158 93 218 151 123 171 125 86 10 59 52 134 202 20 214 228 195 102
104944 46 106 71 11 236 93 73 71 156 33 15 211 136 31 100 88 163 182 70 221 232 170
1050145 2 120 38 156 178 95 133 36 96 20 155 191 134 116 22 70 76 152 203 52 175 7
1051209 128 226 49 94 198 190 13 192 21 235 72 229 37 221 139 205 112 140 185 151
105230 206 47 179 75 217 101 ^
1053502 0 158 148 66 13 60 95 103 3 15 5 113 38 23 182 125 65 94 107 73 224 37 47
1054102 237 3 198 155 7 95 56 198 165 52 148 46 163 157 152 173 19 55 29 167 217 76
1055115 203 191 11 165 62 193 99 116 122 144 236 7 28 161 2 29 157 172 23 125 238
1056199 151 177 89 61 24 101 78 50 213 73 41 127 153 45 167 24 121 168 193 156 3 25
105787 166 28 228 174 188 53 67 239 148 36 118 104 162 208 27 232 4 194 85 1 63 159
105897 191 194 75 196 10 169 132 199 131 50 223 118 94 117 118 37 27 12 94 60 28
1059171 47 82 110 137 15 225 23 172 43 12 141 142 81 161 12 74 210 162 228 117 98
1060187 124 69 164 76 105 158 101 21 200 70 130 111 143 230 32 221 203 211 101 31 5
1061123 83 76 135 90 57 194 95 46 153 112 62 183 54 63 169 179 4 184 40 188 110 194
1062105 91 206 102 27 175 154 88 142 71 79 199 84 5 170 128 129 125 55 49 17 120 19
106345 187 114 24 111 123 140 166 38 33 227 178 18 59 99 173 9 10 179 214 12 84 15
1064215 218 82 90 47 149 42 93 188 120 239 195 81 171 94 127 200 127 220 217 86 160
106516 144 216 157 162 218 72 45 234 159 77 101 88 132 26 26 6 119 13 70 140 156
1066233 220 34 213 26 236 74 200 80 175 164 133 195 24 44 191 184 30 143 57 204 140
106799 106 77 54 43 42 36 61 14 56 25 97 8 81 181 139 180 153 92 212 77 111 133 185
1068219 231 238 219 1 43 32 231 8 24 91 33 237 223 108 49 64 165 72 35 152 106 87
1069136 96 32 1 53 77 44 238 229 83 96 22 196 124 79 6 166 58 123 93 121 225 43 22
1070186 195 71 126 4 174 235 135 120 229 113 28 181 129 135 100 102 7 85 11 145 212
107187 156 186 138 184 223 61 4 11 175 107 6 89 81 114 207 21 17 197 236 54 73 214
1072232 234 149 32 11 98 167 34 203 221 146 121 235 88 75 139 160 63 189 29 147 127
1073210 172 33 207 51 152 116 169 189 49 237 233 153 102 17 130 64 98 177 79 16 211
1074111 113 58 113 48 68 235 78 30 86 170 98 197 169 122 154 41 97 18 126 234 92
1075145 145 155 237 50 209 ^
1076481 1 208 200 56 48 21 186 21 40 119 178 236 205 196 226 73 22 12 195 64 23 101
1077144 54 206 241 103 132 7 151 13 138 140 151 130 40 2 34 132 80 223 186 94 112
107850 134 237 104 200 181 175 159 61 19 29 140 55 32 144 127 36 172 59 104 148 126
1079210 240 35 200 225 5 90 230 20 170 144 10 134 39 176 131 108 147 58 36 216 131
108035 75 127 109 2 232 60 149 25 185 195 137 95 32 71 55 105 216 58 234 144 200
1081108 103 228 105 47 130 165 100 172 7 78 183 207 184 179 18 36 47 203 237 31 128
10828 219 187 162 44 74 38 131 12 49 162 161 218 142 14 227 89 141 71 180 203 112
1083175 232 133 221 198 141 196 36 99 229 173 192 154 69 23 80 98 88 198 24 52 174
1084216 227 162 213 2 107 204 11 150 187 235 116 5 236 132 124 53 117 21 113 191
1085109 192 206 95 201 28 124 149 215 159 230 218 98 213 54 133 169 172 176 6 10 9
1086183 38 14 110 187 37 188 178 163 133 23 28 72 123 8 240 204 128 52 49 118 89 45
1087215 42 86 85 215 211 14 154 17 210 115 179 62 108 220 130 209 172 103 176 79 82
1088211 139 10 155 85 142 139 83 227 16 69 140 224 202 213 171 35 31 55 178 46 231
1089161 145 70 83 29 88 67 225 101 217 126 137 168 104 2 11 106 115 33 160 4 95 157
1090198 193 222 1 18 13 21 238 47 5 38 204 55 222 118 162 117 146 211 87 226 190
1091166 116 78 66 63 80 25 16 25 68 51 33 212 30 60 76 195 12 239 136 225 28 145
1092195 210 167 205 27 56 4 220 13 65 68 220 203 39 103 59 177 220 57 137 241 176
1093204 180 78 14 37 115 106 232 177 22 129 68 168 177 74 184 33 116 174 164 201
1094197 52 218 46 158 89 214 143 111 159 113 74 236 59 52 122 190 20 214 216 183 90
109540 46 106 63 7 224 85 69 67 152 29 15 199 136 27 100 76 151 182 66 209 224 158
1096141 240 108 30 156 174 91 129 24 96 4 147 183 134 112 6 62 64 148 199 40 171
1097233 201 124 222 45 90 186 190 239 188 9 235 64 221 29 213 127 178 ^
1098508 1 94 122 173 145 6 206 41 173 57 199 146 150 136 66 9 48 83 91 239 243 5
1099109 30 7 174 113 57 90 95 69 224 29 39 102 229 3 194 151 239 87 56 190 165 44
1100144 38 155 157 140 161 11 51 13 163 217 72 107 203 179 243 161 58 193 95 116
1101122 132 236 7 24 153 242 17 149 168 15 125 238 187 147 165 85 53 16 93 66 50
1102201 61 29 127 153 45 159 8 121 164 185 144 235 13 75 166 12 216 166 188 53 63
1103235 148 24 106 100 158 196 19 220 240 190 77 237 63 147 97 187 194 63 188 6 165
1104132 195 119 46 215 110 86 109 118 37 11 4 94 60 20 167 47 74 110 133 7 221 11
1105160 43 129 130 77 149 12 66 206 150 224 117 90 183 120 61 164 76 93 154 101 17
1106196 66 118 99 143 226 32 213 195 207 97 31 1 123 79 64 135 78 49 186 91 42 141
1107108 62 179 46 59 161 167 176 28 180 102 182 105 91 198 90 27 171 142 76 134 63
110879 199 84 241 158 128 121 117 43 41 17 108 15 37 187 106 12 107 115 128 162 26
110921 223 170 18 55 87 165 241 2 179 202 8 80 11 207 206 82 82 35 137 34 81 176
1110116 231 183 73 163 82 123 188 115 216 213 86 156 16 140 208 153 154 210 68 33
1111222 155 69 89 80 120 14 22 238 119 5 62 132 148 221 208 18 205 26 224 70 192 80
1112167 156 125 191 24 44 191 180 14 131 45 200 140 99 102 73 54 31 42 32 57 2 44 9
111389 236 69 177 131 180 149 80 208 65 103 129 177 219 231 230 215 1 35 28 227 20
111479 17 237 219 96 37 52 157 72 19 152 98 87 124 88 24 241 49 77 40 226 229 71 92
111510 192 236 116 75 234 154 54 119 93 113 213 39 14 178 187 59 114 4 162 223 123
1116120 217 113 16 181 117 131 92 98 243 73 7 133 204 79 152 186 138 184 223 61 232
1117239 175 107 6 77 81 114 207 9 1 185 232 42 73 210 224 226 141 20 11 98 155 22
1118191 221 146 109 227 88 71 139 152 51 189 21 135 119 202 164 29 195 51 148 112
1119157 181 49 233 233 145 94 13 122 64 94 169 71 4 203 111 101 58 105 44 56 231 74
112022 82 170 86 197 169 118 146 41 85 6 118 234 92 145 141 149 ^
1121484 1 219 32 243 208 200 48 48 21 178 13 40 115 178 232 197 196 218 61 14 4 183
112260 23 93 136 50 202 229 99 120 245 143 5 134 128 151 130 32 236 34 124 68 215
1123182 82 112 46 126 229 92 192 169 163 159 49 19 17 136 43 28 140 119 28 160 47
1124104 140 126 202 236 27 196 225 235 90 230 16 158 132 240 130 39 164 123 104 147
112554 32 216 119 35 75 123 97 232 224 52 137 21 185 187 129 95 24 71 47 97 212 50
1126222 144 188 100 91 228 101 35 122 153 92 172 241 74 179 203 180 167 2 36 39 191
1127225 23 120 238 215 175 154 36 66 34 131 242 45 162 161 210 142 14 223 81 141 63
1128168 199 104 167 228 121 209 198 133 184 24 91 221 173 192 142 61 7 76 94 80 190
11298 40 162 208 227 150 213 240 103 196 245 150 179 223 108 243 228 128 124 41 113
113017 109 187 109 180 194 91 201 12 116 149 215 155 226 206 86 201 46 133 157 168
1131172 2 2 9 183 26 6 98 183 33 180 174 163 125 19 24 64 119 8 232 204 124 48 41
1132106 89 33 207 30 82 85 203 207 10 154 9 210 115 171 58 108 216 126 209 164 103
1133176 71 74 199 131 10 147 81 134 135 79 219 12 69 132 220 202 209 171 31 19 51
1134166 38 227 157 141 70 83 29 84 67 217 97 205 122 133 164 96 2 241 94 107 33 160
113587 145 186 185 214 231 14 243 9 230 43 1 38 200 55 222 110 158 105 138 211 79
1136226 186 158 112 66 54 59 72 25 8 13 60 43 21 212 30 48 68 195 8 239 132 213 28
1137133 191 198 167 201 19 44 238 208 1 65 56 220 195 35 95 51 173 212 57 137 233
1138168 192 176 78 2 29 111 102 232 177 22 129 68 168 165 74 172 29 104 174 156 197
1139189 44 218 34 158 85 210 135 99 147 101 62 224 59 52 110 178 20 214 204 171 78
114036 46 106 55 3 212 77 65 63 148 25 15 187 136 23 100 64 139 182 62 197 216 146
1141137 240 96 22 156 170 87 125 12 96 234 139 175 134 108 236 54 52 144 195 28 167
1142221 193 120 218 41 86 174 190 227 184 243 235 56 213 21 205 115 205 71 ^
1143506 0 110 165 141 238 206 37 169 45 187 134 142 124 66 5 36 71 79 235 231 5 105
114422 239 166 101 49 86 83 65 224 21 31 102 221 3 190 147 231 79 56 182 165 36 140
114530 147 157 128 149 3 47 245 159 217 68 99 203 167 235 157 54 193 91 116 122 120
1146236 7 20 145 242 5 141 164 7 125 238 175 143 153 81 45 8 85 54 50 189 49 17 127
1147153 45 151 240 121 160 177 132 227 1 63 166 244 204 158 188 53 59 231 148 12 94
114896 154 184 11 208 236 186 69 233 63 135 97 183 194 51 180 2 161 132 191 107 42
1149207 102 78 101 118 37 243 244 94 60 12 163 47 66 110 129 247 217 247 148 43 236
1150117 118 73 137 12 58 202 138 220 117 82 179 116 53 164 76 81 150 101 13 192 62
1151106 87 143 222 32 205 187 203 93 31 245 123 75 52 135 66 41 178 87 38 129 104
115262 175 38 55 153 155 244 168 16 172 94 170 105 91 190 78 27 167 130 64 126 55
115379 199 84 237 146 128 113 109 31 33 17 96 11 29 187 98 103 107 116 158 14 9 219
1154162 18 51 75 157 233 242 179 190 4 76 7 199 194 82 74 23 125 26 69 164 112 223
1155171 65 155 70 119 176 103 212 209 86 152 16 136 200 149 146 202 64 21 210 151
115661 77 72 108 2 18 230 119 245 54 124 140 209 196 2 197 26 212 66 184 80 159 148
1157117 187 24 44 191 176 246 119 33 196 140 99 98 69 54 19 42 28 53 238 32 241 81
1158224 57 173 123 180 145 68 204 53 95 125 169 219 231 222 211 1 27 24 223 240 16
115967 1 237 215 84 25 40 149 72 3 152 90 87 112 80 16 241 45 77 36 214 229 59 88
1160246 188 232 108 71 222 142 50 115 93 105 201 35 6 170 179 47 102 4 150 211 111
1161120 205 113 4 181 105 127 84 94 239 61 3 121 196 71 148 186 138 184 223 61 220
1162227 175 107 6 65 81 114 207 245 233 173 228 30 73 206 216 218 133 8 11 98 143
116310 179 221 146 97 219 88 67 139 144 39 189 13 123 111 194 156 25 183 51 144 108
1164145 173 49 229 233 137 86 9 114 64 90 161 63 240 195 111 89 58 97 40 44 227 70
116514 78 170 74 197 169 114 138 41 73 242 110 234 177 ^
1166491 0 145 135 155 207 20 243 208 200 40 48 21 170 5 40 111 178 228 189 196 210
116749 6 246 171 56 23 85 128 46 198 217 95 108 241 135 247 130 116 151 130 24 228
116834 116 56 207 178 70 112 42 118 221 80 184 157 151 159 37 19 5 132 31 24 136
1169111 20 148 35 104 132 126 194 232 19 192 225 223 90 230 12 146 120 228 126 39
1170152 115 100 147 50 28 216 107 35 75 119 85 220 216 44 125 17 185 179 121 95 16
117171 39 89 208 42 210 144 176 92 79 228 97 23 114 141 84 172 233 70 175 199 176
1172155 236 36 31 179 213 15 112 226 211 163 146 28 58 30 131 230 41 162 161 202
1173142 14 219 73 141 55 156 195 96 159 224 109 197 198 125 172 12 83 213 173 192
1174130 53 241 72 90 72 182 242 28 150 200 227 138 213 236 99 188 237 150 171 211
1175100 239 220 124 124 29 109 13 105 183 109 168 182 87 201 246 108 149 215 151
1176222 194 74 189 38 133 145 164 168 248 244 9 183 14 248 86 179 29 172 170 163
1177117 15 20 56 115 8 224 204 120 44 33 94 89 21 199 18 78 85 191 203 6 154 1 210
1178115 163 54 108 212 122 209 156 103 176 63 66 187 123 10 139 77 126 131 75 211 8
117969 124 216 202 205 171 27 7 47 154 30 223 153 137 70 83 29 80 67 209 93 193 118
1180129 160 88 2 229 82 99 33 160 246 79 133 174 177 206 219 10 231 247 222 39 247
118138 196 55 222 102 154 93 130 211 71 226 182 150 108 54 42 55 64 25 1 52 35 9
1182212 30 36 60 195 4 239 128 201 28 121 187 186 167 197 11 32 230 196 239 65 44
1183220 187 31 87 43 169 204 57 137 225 160 180 172 78 240 21 107 98 232 177 22 129
118468 168 153 74 160 25 92 174 148 193 181 36 218 22 158 81 206 127 87 135 89 50
1185212 59 52 98 166 20 214 192 159 66 32 46 106 47 249 200 69 61 59 144 21 15 175
1186136 19 100 52 127 182 58 185 208 134 133 240 84 14 156 166 83 121 96 222 131
1187167 134 104 224 46 40 140 191 16 163 209 185 116 214 37 82 162 190 215 180 235
1188235 48 205 13 197 103 205 76 104 161 139 232 146 ^
1189516 0 33 165 33 175 122 134 112 66 1 24 59 67 231 219 5 101 14 227 158 89 41 82
119071 61 224 13 23 102 213 3 186 143 223 71 56 174 165 28 136 22 139 157 116 137
1191247 43 233 155 217 64 91 203 155 227 153 50 193 87 116 122 108 236 7 16 137 242
1192245 133 160 251 125 238 163 139 141 77 37 77 42 50 177 37 5 127 153 45 143 228
1193121 156 169 120 219 241 51 166 232 192 150 188 53 55 227 148 82 92 150 172 3
1194196 232 182 61 229 63 123 97 179 194 39 172 250 157 132 187 95 38 199 94 70 93
1195118 37 231 240 94 60 4 159 47 58 110 125 243 213 239 136 43 228 105 106 69 125
119612 50 198 126 216 117 74 175 112 45 164 76 69 146 101 9 188 58 94 75 143 218 32
1197197 179 199 89 31 245 123 71 40 135 54 33 170 83 34 117 100 62 171 30 51 145
1198143 244 160 4 164 86 158 105 91 182 66 27 163 118 52 118 47 79 199 84 233 134
1199128 105 101 19 25 17 84 7 21 187 90 240 99 99 104 154 2 249 215 154 18 47 63
1200149 225 238 179 178 72 3 191 182 82 66 11 113 18 57 152 108 215 159 57 147 58
1201115 164 91 208 205 86 148 16 132 192 145 138 194 60 9 198 147 53 65 64 96 242
120214 222 119 241 46 116 132 197 184 238 189 26 200 62 176 80 151 140 109 183 24
120344 191 172 234 107 21 192 140 99 94 65 54 7 42 24 49 230 20 229 73 212 45 169
1204115 180 141 56 200 41 87 121 161 219 231 214 207 1 19 20 219 236 12 55 237 237
1205211 72 13 28 141 72 239 152 82 87 100 72 8 241 41 77 32 202 229 47 84 238 184
1206228 100 67 210 130 46 111 93 97 189 31 250 162 171 35 90 4 138 199 99 120 193
1207113 244 181 93 123 76 90 235 49 251 109 188 63 144 186 138 184 223 61 208 215
1208175 107 6 53 81 114 207 237 221 161 224 18 73 202 208 210 125 248 11 98 131 250
1209167 221 146 85 211 88 63 139 136 27 189 5 111 103 186 148 21 171 51 140 104 133
1210165 49 225 233 129 78 5 106 64 86 153 55 232 187 111 77 58 89 36 32 223 66 6 74
1211170 62 197 169 110 130 41 61 234 102 234 92 145 133 155 201 14 243 208 200 36
121248 21 166 1 40 109 178 147 ^
1213522 0 179 196 200 34 251 241 156 51 23 75 118 41 193 202 90 93 236 125 242 125
1214101 151 130 14 218 34 106 41 197 173 55 112 37 108 211 65 174 142 136 159 22 19
1215245 127 16 19 131 101 10 133 20 104 122 126 184 227 9 187 225 208 90 230 7 131
1216105 213 121 39 137 105 95 147 45 23 216 92 35 75 114 70 205 206 34 110 12 185
1217169 111 95 6 71 29 79 203 32 195 144 161 82 64 228 92 8 104 126 74 172 223 65
1218170 194 171 140 221 36 21 164 198 5 102 211 206 148 136 18 48 25 131 215 36 162
1219161 192 142 14 214 63 141 45 141 190 86 149 219 94 182 198 115 157 252 73 203
1220173 192 115 43 226 67 85 62 172 227 13 135 190 227 123 213 231 94 178 227 150
1221161 196 90 234 210 119 124 14 104 8 100 178 109 153 167 82 201 231 98 149 215
1222146 217 179 59 174 28 133 130 159 163 248 239 9 183 254 243 71 174 24 162 165
1223163 107 10 15 46 110 8 214 204 115 39 23 79 89 6 189 3 73 85 176 198 1 154 246
1224210 115 153 49 108 207 117 209 146 103 176 53 56 172 113 10 129 72 116 126 70
1225201 3 69 114 211 202 200 171 22 247 42 139 20 218 148 132 70 83 29 75 67 199 88
1226178 113 124 155 78 2 214 67 89 33 160 246 69 118 159 167 196 204 5 216 237 212
122734 247 38 191 55 222 92 149 78 120 211 61 226 177 140 103 39 27 50 54 25 245
1228241 42 25 249 212 30 21 50 195 254 239 123 186 28 106 182 171 167 192 1 17 220
1229181 229 65 29 220 177 26 77 33 164 194 57 137 215 150 165 167 78 230 11 102 93
1230232 177 22 129 68 168 138 74 145 20 77 174 138 188 171 26 218 7 158 76 201 117
123172 120 74 35 197 59 52 83 151 20 214 177 144 51 27 46 106 37 249 185 59 56 54
1232139 16 15 160 136 14 100 37 112 182 53 170 198 119 128 240 69 4 156 161 78 116
1233240 96 207 121 157 134 99 209 36 25 135 186 1 158 194 175 111 209 32 77 147 190
1234200 175 225 235 38 195 3 187 88 205 61 89 151 134 217 206 30 162 24 166 113 128
1235103 66 253 15 50 58 228 210 5 98 8 218 152 80 35 79 62 58 224 7 17 102 207 3
1236183 140 217 65 56 168 165 22 133 16 133 157 107 128 244 12 ^
1237517 1 218 150 217 59 81 203 140 217 148 45 193 82 116 122 93 236 7 11 127 242
1238235 123 155 246 125 238 148 134 126 72 27 247 67 27 50 162 22 247 127 153 45
1239133 213 121 151 159 105 209 231 36 166 217 177 140 188 53 50 222 148 242 67 87
1240145 157 250 181 227 177 51 224 63 108 97 174 194 24 162 250 152 132 182 80 33
1241189 84 60 83 118 37 216 235 94 60 251 154 47 48 110 120 238 208 229 121 43 218
124290 91 64 110 12 40 193 111 211 117 64 170 107 35 164 76 54 141 101 4 183 53 79
124360 143 213 32 187 169 194 84 31 245 123 66 25 135 39 23 160 78 29 102 95 62 166
124420 46 135 128 244 150 246 154 76 143 105 91 172 51 27 158 103 37 108 37 79 199
124584 228 119 128 95 91 4 15 17 69 2 11 187 80 230 94 89 89 149 244 239 210 144 18
124642 48 139 215 233 179 163 252 67 255 181 167 82 56 253 98 8 42 137 103 205 144
124747 137 43 110 149 76 203 200 86 143 16 127 182 140 128 184 55 251 183 142 43 50
124854 81 232 9 212 119 236 36 106 122 182 169 223 179 26 185 57 166 80 141 130 99
1249178 24 44 191 167 219 92 6 187 140 99 89 60 54 249 42 19 44 220 5 214 63 197 30
1250164 105 180 136 41 195 26 77 116 151 219 231 204 202 1 9 15 214 231 7 40 222
1251237 206 57 255 13 131 72 224 152 72 87 85 62 255 241 36 77 27 187 229 32 79 228
1252179 223 90 62 195 115 41 106 93 87 174 26 245 152 161 20 75 4 123 184 84 120
1253178 113 234 181 78 118 66 85 230 34 251 94 178 53 139 186 138 184 223 61 193
1254200 175 107 6 38 81 114 207 227 206 146 219 3 73 197 198 200 115 238 11 98 116
1255240 152 221 146 70 201 88 58 139 126 12 189 252 96 93 176 138 16 156 51 135 99
1256118 155 49 220 233 119 68 96 64 81 143 45 222 177 111 62 58 79 31 17 218 61 253
125769 170 47 197 169 105 120 41 46 224 92 234 92 145 128 155 186 256 243 208 200
125826 48 21 156 248 40 104 178 221 175 196 196 28 249 239 150 49 23 71 114 39 191
1259196 88 87 234 121 240 123 95 151 130 10 214 34 102 35 193 171 49 112 35 104 207
126059 170 136 130 159 16 19 241 125 213 ^
1261529 1 15 127 93 2 121 8 104 114 126 176 223 1 183 225 196 90 230 3 119 93 201
1262117 39 125 97 91 147 41 19 216 80 35 75 110 58 193 198 26 98 8 185 161 103 95
1263257 71 21 71 199 24 183 144 149 74 52 228 88 255 96 114 66 172 215 61 166 190
1264167 128 209 36 13 152 186 256 94 199 202 136 128 10 40 21 131 203 32 162 161
1265184 142 14 210 55 141 37 129 186 78 141 215 82 170 198 107 145 244 65 195 173
1266192 103 35 214 63 81 54 164 215 1 123 182 227 111 213 227 90 170 219 150 153
1267184 82 230 202 115 124 2 100 4 96 174 109 141 155 78 201 219 90 149 215 142 213
1268167 47 162 20 133 118 155 159 248 235 9 183 246 239 59 170 20 154 161 163 99 6
126911 38 106 8 206 204 111 35 15 67 89 253 181 250 69 85 164 194 256 154 242 210
1270115 145 45 108 203 113 209 138 103 176 45 48 160 105 10 121 68 108 122 66 193
1271258 69 106 207 202 196 171 18 239 38 127 12 214 144 128 70 83 29 71 67 191 84
1272166 109 120 151 70 2 202 55 81 33 160 246 61 106 147 159 188 192 1 204 229 204
127330 247 38 187 55 222 84 145 66 112 211 53 226 173 132 99 27 15 46 46 25 241 233
127434 17 241 212 30 9 42 195 254 239 119 174 28 94 178 159 167 188 252 5 212 169
1275221 65 17 220 169 22 69 25 160 186 57 137 207 142 153 163 78 222 3 98 89 232
1276177 22 129 68 168 126 74 133 16 65 174 130 184 163 18 218 254 158 72 197 109 60
1277108 62 23 185 59 52 71 139 20 214 165 132 39 23 46 106 29 249 173 51 52 50 135
127812 15 148 136 10 100 25 100 182 49 158 190 107 124 240 57 255 156 157 74 112
1279232 96 195 113 149 134 95 197 28 13 131 182 248 154 182 167 107 205 28 73 135
1280190 188 171 217 235 30 187 254 179 76 205 49 77 143 130 205 206 26 158 12 154
1281101 120 91 66 253 3 38 46 224 198 5 94 206 144 68 27 75 50 54 224 258 9 102 199
12823 179 136 209 57 56 160 165 14 129 8 125 157 95 116 240 36 212 148 217 57 77
1283203 134 213 146 43 193 80 116 122 87 236 7 9 123 242 231 119 153 244 125 238
1284142 132 120 70 23 245 63 21 50 156 16 243 127 153 45 129 207 121 149 155 99 205
1285227 30 166 211 57 ^
1286548 0 134 188 53 47 219 148 236 58 84 142 148 247 172 224 174 45 221 63 99 97
1287171 194 15 156 250 149 132 179 71 30 183 78 54 77 118 37 207 232 94 60 248 151
128847 42 110 117 235 205 223 112 43 212 81 82 61 101 12 34 190 102 208 117 58 167
1289104 29 164 76 45 138 101 1 180 50 70 51 143 210 32 181 163 191 81 31 245 123 63
129016 135 30 17 154 75 26 93 92 62 163 14 43 129 119 244 144 240 148 70 134 105 91
1291166 42 27 155 94 28 102 31 79 199 84 225 110 128 89 85 255 9 17 60 259 5 187 74
1292224 91 83 80 146 238 233 207 138 18 39 39 133 209 230 179 154 252 64 255 175
1293158 82 50 247 89 2 33 128 100 199 135 41 131 34 107 140 67 200 197 86 140 16
1294124 176 137 122 178 52 245 174 139 37 41 48 72 226 6 206 119 233 30 100 116 173
1295160 214 173 26 176 54 160 80 135 124 93 175 24 44 191 164 210 83 257 184 140 99
129686 57 54 243 42 16 41 214 256 205 57 188 21 161 99 180 133 32 192 17 71 113 145
1297219 231 198 199 1 3 12 211 228 4 31 213 237 203 48 249 4 125 72 215 152 66 87
129876 56 252 241 33 77 24 178 229 23 76 222 176 220 84 59 186 106 38 103 93 81 165
129923 242 146 155 11 66 4 114 175 75 120 169 113 228 181 69 115 60 82 227 25 251
130085 172 47 136 186 138 184 223 61 184 191 175 107 6 29 81 114 207 221 197 137
1301216 254 73 194 192 194 109 232 11 98 107 234 143 221 146 61 195 88 55 139 120 3
1302189 249 87 87 170 132 13 147 51 132 96 109 149 49 217 233 113 62 257 90 64 78
1303137 39 216 171 111 53 58 73 28 8 215 58 250 66 170 38 197 169 102 114 41 37 218
130486 234 92 145 125 155 177 250 243 208 200 20 48 21 150 245 40 101 178 218 169
1305196 190 19 246 236 141 46 23 65 108 36 188 187 85 78 231 115 237 120 86 151 130
13064 208 34 96 26 187 168 40 112 32 98 201 50 164 127 121 159 7 19 235 122 1 14
1307126 91 118 5 104 112 126 174 222 259 182 225 193 90 230 2 116 90 198 116 39 122
130895 90 147 40 18 216 77 35 75 109 55 190 196 24 95 7 185 159 101 95 256 71 19 69
1309198 22 180 144 146 72 49 228 87 253 94 111 64 172 213 60 165 189 166 125 206 36
131011 149 183 255 92 196 201 133 126 8 38 20 131 213 ^
1311547 0 29 162 161 178 142 14 207 49 141 31 120 183 72 135 212 73 161 198 101 136
1312238 59 189 173 192 94 29 205 60 78 48 158 206 254 114 176 227 102 213 224 87
1313164 213 150 147 175 76 227 196 112 124 255 97 1 93 171 109 132 146 75 201 210
131484 149 215 139 210 158 38 153 14 133 109 152 156 248 232 9 183 240 236 50 167
131517 148 158 163 93 3 8 32 103 8 200 204 108 32 9 58 89 247 175 244 66 85 155 191
1316256 154 239 210 115 139 42 108 200 110 209 132 103 176 39 42 151 99 10 115 65
1317102 119 63 187 258 69 100 204 202 193 171 15 233 35 118 6 211 141 125 70 83 29
131868 67 185 81 157 106 117 148 64 2 193 46 75 33 160 246 55 97 138 153 182 183
1319260 195 223 198 27 247 38 184 55 222 78 142 57 106 211 47 226 170 126 96 18 6
132043 40 25 238 227 28 11 235 212 30 36 195 254 239 116 165 28 85 175 150 167 185
1321249 258 206 160 215 65 8 220 163 19 63 19 157 180 57 137 201 136 144 160 78 216
1322259 95 86 232 177 22 129 68 168 117 74 124 13 56 174 124 181 157 12 218 248 158
132369 194 103 51 99 53 14 176 59 52 62 130 20 214 156 123 30 20 46 106 23 249 164
132445 49 47 132 9 15 139 136 7 100 16 91 182 46 149 184 98 121 240 48 252 156 154
132571 109 226 96 186 107 143 134 92 188 22 4 128 179 242 151 173 161 104 202 25 70
1326126 190 179 168 211 235 24 181 251 173 67 205 40 68 137 127 196 206 23 155 3
1327145 92 114 82 66 253 256 29 37 221 189 5 91 256 197 138 59 21 72 41 51 224 255
13283 102 193 3 176 133 203 51 56 154 165 8 126 2 119 157 86 107 237 33 203 145 217
132954 71 203 125 207 143 40 193 77 116 122 78 236 7 6 117 242 225 113 150 241 125
1330238 133 129 111 67 17 242 57 12 50 147 7 237 127 153 45 123 198 121 146 149 90
1331199 221 21 166 202 162 130 188 53 45 217 148 232 52 82 140 142 245 166 222 172
133241 219 63 93 97 169 194 9 152 250 147 132 177 65 28 179 74 50 73 118 37 201 230
133394 60 246 149 47 38 110 115 233 203 219 106 43 208 75 76 59 95 12 30 188 96 206
1334117 54 165 102 25 164 76 39 136 101 261 178 48 64 45 143 208 32 177 159 189 79
133531 245 123 61 10 135 24 13 150 73 24 87 90 62 161 10 41 125 209 ^
1336542 1 244 136 232 140 62 122 105 91 158 30 27 151 82 16 94 23 79 199 84 221 98
1337128 81 77 247 1 17 48 259 261 187 66 216 87 75 68 142 230 225 203 130 18 35 27
1338125 201 226 179 142 252 60 255 167 146 82 42 239 77 258 21 116 96 191 123 33
1339123 22 103 128 55 196 193 86 136 16 120 168 133 114 170 48 237 162 135 29 29 40
134060 218 2 198 119 229 22 92 108 161 148 202 165 26 164 50 152 80 127 116 85 171
134124 44 191 160 198 71 249 180 140 99 82 53 54 235 42 12 37 206 248 193 49 176 9
1342157 91 180 129 20 188 5 63 109 137 219 231 190 195 1 259 8 207 224 19 201 237
1343199 36 241 256 117 72 203 152 58 87 64 48 248 241 29 77 20 166 229 11 72 214
1344172 216 76 55 174 94 34 99 93 73 153 19 238 138 147 263 54 4 102 163 63 120 157
1345113 220 181 57 111 52 78 223 13 251 73 164 39 132 186 138 184 223 61 172 179
1346175 107 6 17 81 114 207 213 185 125 212 246 73 190 184 186 101 224 11 98 95 226
1347131 221 146 49 187 88 51 139 112 255 189 245 75 79 162 124 9 135 51 128 92 97
1348141 49 213 233 105 54 257 82 64 74 129 31 208 163 111 41 58 65 24 260 211 54
1349246 62 170 26 197 169 98 106 41 25 210 78 234 92 145 121 155 165 242 243 208
1350200 12 48 21 142 241 40 97 178 214 161 196 182 7 242 232 129 42 23 57 100 32
1351184 175 81 66 227 107 233 116 74 151 130 260 200 34 88 14 179 164 28 112 28 90
1352193 38 156 115 109 159 259 19 227 118 253 10 122 83 256 106 257 104 104 126 166
1353218 255 178 225 181 90 230 262 104 78 186 112 39 110 87 86 147 36 14 216 65 35
135475 105 43 178 188 16 83 3 185 151 93 95 252 71 11 61 194 14 168 144 134 64 37
1355228 83 245 86 99 56 172 205 56 161 185 162 113 194 36 3 137 171 251 84 184 197
1356121 118 30 16 131 188 27 162 161 174 142 14 205 45 141 27 114 181 68 131 210 67
1357155 198 97 130 234 55 185 173 192 88 25 199 58 76 44 154 200 250 108 172 227 96
1358213 222 85 160 209 150 143 169 72 225 192 110 124 251 95 263 91 169 109 126 140
135973 201 204 80 149 215 137 208 152 32 147 10 133 103 150 154 248 230 9 183 236
1360234 44 165 15 144 156 163 89 1 6 28 101 8 196 204 106 164 ^
1361567 0 1 46 89 239 167 236 62 85 143 187 256 154 235 210 115 131 38 108 196 106
1362209 124 103 176 31 34 139 91 10 107 61 94 115 59 179 258 69 92 200 202 189 171
136311 225 31 106 264 207 137 121 70 83 29 64 67 177 77 145 102 113 144 56 2 181 34
136467 33 160 246 47 85 126 145 174 171 260 183 215 190 23 247 38 180 55 222 70 138
136545 98 211 39 226 166 118 92 6 260 39 32 25 234 219 20 3 227 212 30 254 28 195
1366254 239 112 153 28 73 171 138 167 181 245 250 198 148 207 65 262 220 155 15 55
136711 153 172 57 137 193 128 132 156 78 208 255 91 82 232 177 22 129 68 168 105 74
1368112 9 44 174 116 177 149 4 218 240 158 65 190 95 39 87 41 2 164 59 52 50 118 20
1369214 144 111 18 16 46 106 15 249 152 37 45 43 128 5 15 127 136 3 100 4 79 182 42
1370137 176 86 117 240 36 248 156 150 67 105 218 96 174 99 135 134 88 176 14 258
1371124 175 234 147 161 153 100 198 21 66 114 190 167 164 203 235 16 173 247 165 55
1372205 28 56 129 123 184 206 19 151 257 133 80 106 70 66 253 248 17 25 217 177 5
137387 252 185 130 47 13 68 29 47 224 251 261 102 185 3 172 129 195 43 56 146 165
1374122 260 111 157 74 95 233 29 191 141 217 50 63 203 113 199 139 36 193 73 116
1375122 66 236 7 2 109 242 217 105 146 237 125 238 121 125 99 63 9 238 49 50 135
1376261 229 127 153 45 115 186 121 142 141 78 191 213 9 166 190 150 122 188 53 41
1377213 148 224 40 78 136 130 241 154 218 168 33 215 63 81 97 165 194 263 144 250
1378143 132 173 53 24 171 66 42 65 118 37 189 226 94 60 242 145 47 30 110 111 229
1379199 211 94 43 200 63 64 55 83 12 22 184 84 202 117 46 161 98 17 164 76 27 132
1380101 261 174 44 52 33 143 204 32 169 151 185 75 31 245 123 57 264 135 12 5 142
138169 20 75 86 62 157 2 37 117 101 244 132 228 136 58 116 105 91 154 24 27 149 76
138210 90 19 79 199 84 219 92 128 77 73 243 263 17 42 259 259 187 62 212 85 71 62
1383140 226 221 201 126 18 33 21 121 197 224 179 136 252 58 255 163 140 82 38 235
138471 256 15 110 94 187 117 29 119 16 101 122 49 194 191 86 134 16 118 164 131 110
1385166 46 233 156 133 25 23 36 54 214 194 119 227 18 88 104 155 142 196 161 26 158
138648 148 80 123 112 81 169 24 44 191 158 192 65 245 178 140 223 ^
1387551 1 78 49 54 227 42 8 33 198 240 181 41 164 265 153 83 180 125 8 184 261 55
1388105 129 219 231 182 191 1 255 4 203 220 264 7 189 237 195 24 233 248 109 72 191
1389152 50 87 52 40 244 241 25 77 16 154 229 267 68 206 168 212 68 51 162 82 30 95
139093 65 141 15 234 130 139 255 42 4 90 151 51 120 145 113 212 181 45 107 44 74
1391219 1 251 61 156 31 128 186 138 184 223 61 160 167 175 107 6 5 81 114 207 205
1392173 113 208 238 73 186 176 178 93 216 11 98 83 218 119 221 146 37 179 88 47 139
1393104 247 189 241 63 71 154 116 5 123 51 124 88 85 133 49 209 233 97 46 257 74 64
139470 121 23 200 155 111 29 58 57 20 252 207 50 242 58 170 14 197 169 94 98 41 13
1395202 70 234 92 145 117 155 153 234 243 208 200 4 48 21 134 237 40 93 178 210 153
1396196 174 263 238 228 117 38 23 49 92 28 180 163 77 54 223 99 229 112 62 151 130
1397256 192 34 80 2 171 160 16 112 24 82 185 26 148 103 97 159 251 19 219 114 245 6
1398118 75 252 94 249 104 96 126 158 214 251 174 225 169 90 230 262 92 66 174 108
139939 98 79 82 147 32 10 216 53 35 75 101 31 166 180 8 71 267 185 143 85 95 248 71
14003 53 190 6 156 144 122 56 25 228 79 237 78 87 48 172 197 52 157 181 158 101 182
140136 263 125 159 247 76 172 193 109 110 260 22 12 131 176 23 162 161 166 142 14
1402201 37 141 19 102 177 60 123 206 55 143 198 89 118 226 47 177 173 192 76 17 187
140354 72 36 146 188 242 96 164 227 84 213 218 81 152 201 150 135 157 64 221 184
1404106 124 243 91 263 87 165 109 114 128 69 201 192 72 149 215 133 204 140 20 135
14052 133 91 146 150 248 226 9 183 228 230 32 161 11 136 152 163 81 265 2 20 97 8
1406188 204 102 26 265 40 89 235 163 232 60 85 137 185 256 154 233 210 115 127 36
1407108 194 104 209 120 103 176 27 30 133 87 10 103 59 90 113 57 175 258 69 88 198
1408202 187 171 9 221 29 100 262 205 135 119 70 83 29 62 67 173 75 139 100 111 142
140952 2 175 28 63 33 160 246 43 79 120 141 170 165 260 177 211 186 21 247 38 178
141055 222 66 136 39 94 211 35 226 164 114 90 256 37 28 25 232 215 16 267 223 212
141130 250 24 195 254 239 110 147 28 67 169 132 167 179 243 246 194 142 203 65 263 ^
1412578 0 220 147 11 47 3 149 164 57 137 185 120 120 152 78 200 251 87 78 232 177
141322 129 68 168 93 74 100 5 32 174 108 173 141 266 218 232 158 61 186 87 27 75 29
1414260 152 59 52 38 106 20 214 132 99 6 12 46 106 7 249 140 29 41 39 124 1 15 115
1415136 269 100 262 67 182 38 125 168 74 113 240 24 244 156 146 63 101 210 96 162
141691 127 134 84 164 6 250 120 171 226 143 149 145 96 194 17 62 102 190 155 160
1417195 235 8 165 243 157 43 205 16 44 121 119 172 206 15 147 249 121 68 98 58 66
1418253 240 5 13 213 165 5 83 248 173 122 35 5 64 17 43 224 247 257 102 177 3 168
1419125 187 35 56 138 165 262 118 256 103 157 62 83 229 25 179 137 217 46 55 203
1420101 191 135 32 193 69 116 122 54 236 7 268 101 242 209 97 142 233 125 238 109
1421121 87 59 1 234 41 258 50 123 253 221 127 153 45 107 174 121 138 133 66 183 205
1422267 166 178 138 114 188 53 37 209 148 216 28 74 132 118 237 142 214 164 25 211
142363 69 97 161 194 255 136 250 139 132 169 41 20 163 58 34 57 118 37 177 222 94
142460 238 141 47 22 110 107 225 195 203 82 43 192 51 52 51 71 12 14 180 72 198 117
142538 157 94 9 164 76 15 128 101 261 170 40 40 21 143 200 32 161 143 181 71 31 245
1426123 53 256 135 267 134 65 16 63 82 62 153 264 33 109 89 244 124 220 128 50 104
1427105 91 146 12 27 145 64 268 82 11 79 199 84 215 80 128 69 65 235 259 17 30 259
1428255 187 54 204 81 63 50 136 218 213 197 118 18 29 9 113 189 220 179 124 252 54
1429255 155 128 82 30 227 59 252 3 98 90 179 105 21 111 4 97 110 37 190 187 86 130
143016 114 156 127 102 158 42 225 144 129 17 11 28 42 206 266 186 119 223 10 80 96
1431143 130 184 153 26 146 44 140 80 115 104 73 165 24 44 191 154 180 53 237 174
1432140 99 76 47 54 223 42 6 31 194 236 175 37 158 261 151 79 180 123 2 182 257 51
1433103 125 219 231 178 189 1 253 2 201 218 264 1 183 237 193 18 229 244 105 72 185
1434152 46 87 46 36 242 241 23 77 14 148 229 263 66 202 166 210 64 49 156 76 28 93
143593 61 135 13 232 126 135 251 36 4 84 145 45 120 139 113 208 181 39 105 40 72
1436217 265 251 55 152 27 126 186 138 184 223 61 154 161 175 107 6 269 81 114 207
1437201 167 107 206 234 73 184 172 174 89 212 11 98 77 214 113 221 146 31 175 88 45
1438139 100 243 189 213 ^
1439578 1 51 63 146 108 1 111 51 120 84 73 125 49 205 233 89 38 257 66 64 66 113 15
1440192 147 111 17 58 49 16 244 203 46 238 54 170 2 197 169 90 90 41 1 194 62 234
144192 145 113 155 141 226 243 208 200 268 48 21 126 233 40 89 178 206 145 196 166
1442255 234 224 105 34 23 41 84 24 176 151 73 42 219 91 225 108 50 151 130 252 184
144334 72 262 163 156 4 112 20 74 177 14 140 91 85 159 243 19 211 110 237 2 114 67
1444248 82 241 104 88 126 150 210 247 170 225 157 90 230 262 80 54 162 104 39 86 71
144578 147 28 6 216 41 35 75 97 19 154 172 59 267 185 135 77 95 244 71 267 45 186
1446270 144 144 110 48 13 228 75 229 70 75 40 172 189 48 153 177 154 89 170 36 259
1447113 147 243 68 160 189 97 102 256 14 8 131 164 19 162 161 158 142 14 197 29 141
144811 90 173 52 115 202 43 131 198 81 106 218 39 169 173 192 64 9 175 50 68 28 138
1449176 234 84 156 227 72 213 214 77 144 193 150 127 145 56 217 176 102 124 235 87
1450263 83 161 109 102 116 65 201 180 64 149 215 129 200 128 8 123 266 133 79 142
1451146 248 222 9 183 220 226 20 157 7 128 148 163 73 265 270 12 93 8 180 204 98 22
1452261 28 89 227 155 224 56 85 125 181 256 154 229 210 115 119 32 108 190 100 209
1453112 103 176 19 22 121 79 10 95 55 82 109 53 167 258 69 80 194 202 183 171 5 213
145425 88 258 201 131 115 70 83 29 58 67 165 71 127 96 107 138 44 2 163 16 55 33
1455160 246 35 67 108 133 162 153 260 165 203 178 17 247 38 174 55 222 58 132 27 86
1456211 27 226 160 106 86 260 248 33 20 25 228 207 8 263 215 212 30 242 16 195 254
1457239 106 135 28 55 165 120 167 175 239 238 186 130 195 65 250 220 143 9 43 271
1458147 160 57 137 181 116 114 150 78 196 249 85 76 232 177 22 129 68 168 87 74 94
14593 26 174 104 171 137 264 218 228 158 59 184 83 21 69 23 256 146 59 52 32 100 20
1460214 126 93 10 46 106 3 249 134 25 39 37 122 271 15 109 136 269 100 258 61 182
146136 119 164 68 111 240 18 242 156 144 61 99 206 96 156 87 123 134 82 158 2 246
1462118 169 222 141 143 141 94 192 15 60 96 190 149 158 191 235 4 161 241 153 37
1463205 10 38 117 117 166 206 13 145 245 115 62 94 52 66 253 236 271 7 211 159 5 81
1464246 167 118 29 1 62 11 41 224 245 255 102 173 3 166 123 183 31 56 134 165 260
1465116 254 81 ^
1466583 1 157 50 71 225 21 167 133 217 42 47 203 89 183 131 28 193 65 116 122 42
1467236 7 268 93 242 201 89 138 229 125 238 97 117 75 55 267 230 33 250 50 111 245
1468213 127 153 45 99 162 121 134 125 54 175 197 259 166 166 126 106 188 53 33 205
1469148 208 16 70 128 106 233 130 210 160 17 207 63 57 97 157 194 247 128 250 135
1470132 165 29 16 155 50 26 49 118 37 165 218 94 60 234 137 47 14 110 103 221 191
1471195 70 43 184 39 40 47 59 12 6 176 60 194 117 30 153 90 1 164 76 3 124 101 261
1472166 36 28 9 143 196 32 153 135 177 67 31 245 123 49 248 135 262 263 126 61 12
147351 78 62 149 260 29 101 77 244 116 212 120 42 92 105 91 138 27 141 52 260 74 3
147479 199 84 211 68 128 61 57 227 255 17 18 259 251 187 46 196 77 55 38 132 210
1475205 193 110 18 25 271 105 181 216 179 112 252 50 255 147 116 82 22 219 47 248
1476265 86 86 171 93 13 103 266 93 98 25 186 183 86 126 16 110 148 123 94 150 38
1477217 132 125 9 273 20 30 198 266 178 119 219 2 72 88 131 118 172 145 26 134 40
1478132 80 107 96 65 161 24 44 191 150 168 41 229 170 140 99 72 43 54 215 42 2 27
1479186 228 163 29 146 253 147 71 180 119 264 178 249 43 99 117 219 231 170 185 1
1480249 272 197 214 264 263 171 237 189 6 221 236 97 72 173 152 38 87 34 28 238 241
148119 77 10 136 229 255 62 194 162 206 56 45 144 64 24 89 93 53 123 9 228 118 127
1482243 24 4 72 133 33 120 127 113 200 181 27 101 32 68 213 257 251 43 144 19 122
1483186 138 184 223 61 142 149 175 107 6 261 81 114 207 193 155 95 202 226 73 180
1484164 166 81 204 11 98 65 206 101 221 146 19 167 88 41 139 92 235 189 235 45 59
1485142 104 273 105 51 118 82 67 121 49 203 233 85 34 257 62 64 64 109 11 188 143
1486111 11 58 45 14 240 201 44 236 52 170 270 197 169 88 86 41 269 190 58 234 92
1487145 111 155 135 222 243 208 200 266 48 21 122 231 40 87 178 204 141 196 162 251
1488232 222 99 32 23 37 80 22 174 145 71 36 217 87 223 106 44 151 130 250 180 34 68
1489258 159 154 272 112 18 70 173 8 136 85 79 159 239 19 207 108 233 112 63 246 76
1490237 104 84 126 146 208 245 168 225 151 90 230 262 74 48 156 102 39 80 67 76 147
149126 4 216 35 35 75 95 13 148 168 270 53 267 185 131 73 95 242 71 265 41 184 268
1492138 144 104 44 7 228 73 225 66 69 36 272 ^
1493588 0 181 44 149 173 150 77 158 36 255 101 135 239 60 148 185 85 94 252 6 4 131
1494152 15 162 161 150 142 14 193 21 141 3 78 169 44 107 198 31 119 198 73 94 210
149531 161 173 192 52 1 163 46 64 20 130 164 226 72 148 227 60 213 210 73 136 185
1496150 119 133 48 213 168 98 124 227 83 263 79 157 109 90 104 61 201 168 56 149
1497215 125 196 116 272 111 262 133 67 138 142 248 218 9 183 212 222 8 153 3 120
1498144 163 65 265 270 4 89 8 172 204 94 18 257 16 89 219 147 216 52 85 113 177 256
1499154 225 210 115 111 28 108 186 96 209 104 103 176 11 14 109 71 10 87 51 74 105
150049 159 258 69 72 190 202 179 171 1 205 21 76 254 197 127 111 70 83 29 54 67 157
150167 115 92 103 134 36 2 151 4 47 33 160 246 27 55 96 125 154 141 260 153 195 170
150213 247 38 170 55 222 50 128 15 78 211 19 226 156 98 82 252 240 29 12 25 224 199
1503259 207 212 30 234 8 195 254 239 102 123 28 43 161 108 167 171 235 230 178 118
1504187 65 242 220 135 5 35 267 143 152 57 137 173 108 102 146 78 188 245 81 72 232
1505177 22 129 68 168 75 74 82 275 14 174 96 167 129 260 218 220 158 55 180 75 9 57
150611 248 134 59 52 20 88 20 214 114 81 264 6 46 106 271 249 122 17 35 33 118 271
150715 97 136 269 100 250 49 182 32 107 156 56 107 240 6 238 156 140 57 95 198 96
1508144 79 115 134 78 146 270 238 114 165 214 137 131 133 90 188 11 56 84 190 137
1509154 183 235 272 153 237 145 25 205 274 26 109 113 154 206 9 141 237 103 50 86
151040 66 253 228 263 271 207 147 5 77 242 155 110 17 269 58 275 37 224 241 251 102
1511165 3 162 119 175 23 56 126 165 256 112 250 91 157 44 65 223 19 161 131 217 40
151243 203 83 179 129 26 193 63 116 122 36 236 7 268 89 242 197 85 136 227 125 238
151391 115 69 53 265 228 29 246 50 105 241 209 127 153 45 95 156 121 132 121 48 171
1514193 255 166 160 120 102 188 53 31 203 148 204 10 68 126 100 231 124 208 158 13
1515205 63 51 97 155 194 243 124 250 133 132 163 23 14 151 46 22 45 118 37 159 216
151694 60 232 135 47 10 110 101 219 189 191 64 43 180 33 34 45 53 12 2 174 54 192
1517117 26 151 88 273 164 76 273 122 101 261 164 34 22 3 143 194 32 149 131 175 65
151831 245 123 47 244 135 258 261 122 59 10 45 76 62 147 258 27 97 71 244 112 208
1519116 38 86 105 91 134 270 27 139 46 256 70 275 79 199 160 ^
1520594 0 207 56 128 53 49 219 251 17 6 259 247 187 38 188 73 47 26 128 202 197 189
1521102 18 21 263 97 173 212 179 100 252 46 255 139 104 82 14 211 35 244 257 74 82
1522163 81 5 95 258 89 86 13 182 179 86 122 16 106 140 119 86 142 34 209 120 121 1
1523265 12 18 190 266 170 119 215 272 64 80 119 106 160 137 26 122 36 124 80 99 88
152457 157 24 44 191 146 156 29 221 166 140 99 68 39 54 207 42 276 23 178 220 151
152521 134 245 143 63 180 115 256 174 241 35 95 109 219 231 162 181 1 245 272 193
1526210 264 255 159 237 185 272 213 228 89 72 161 152 30 87 22 20 234 241 15 77 6
1527124 229 247 58 186 158 202 48 41 132 52 20 85 93 45 111 5 224 110 119 235 12 4
152860 121 21 120 115 113 192 181 15 97 24 64 209 249 251 31 136 11 118 186 138 184
1529223 61 130 137 175 107 6 253 81 114 207 185 143 83 198 218 73 176 156 158 73
1530196 11 98 53 198 89 221 146 7 159 88 37 139 84 227 189 231 33 51 134 96 273 93
153151 114 78 55 113 49 199 233 77 26 257 54 64 60 101 3 180 135 111 277 58 37 10
1532232 197 40 232 48 170 262 197 169 84 78 41 261 182 50 234 92 145 107 155 123
1533214 243 208 200 262 48 21 114 227 40 83 178 200 133 196 154 243 228 218 87 28
153423 29 72 18 170 133 67 24 213 79 219 102 32 151 130 246 172 34 60 250 151 150
1535264 112 14 62 165 274 128 73 67 159 231 19 199 104 225 274 108 55 242 64 229
1536104 76 126 138 204 241 164 225 139 90 230 262 62 36 144 98 39 68 59 72 147 22
1537216 23 35 75 91 1 136 160 266 41 267 185 123 65 95 238 71 261 33 180 264 126
1538144 92 36 273 228 69 217 58 57 28 172 177 42 147 171 148 71 152 36 253 95 129
1539237 56 142 183 79 90 250 2 2 131 146 13 162 161 146 142 14 191 17 141 277 72
1540167 40 103 196 25 113 198 69 88 206 27 157 173 192 46 275 157 44 62 16 126 158
1541222 66 144 227 54 213 208 71 132 181 150 115 127 44 211 164 96 124 223 81 263
154277 155 109 84 98 59 201 162 52 149 215 123 194 110 268 105 260 133 61 136 140
1543248 216 9 183 208 220 2 151 1 116 142 163 61 265 270 87 8 168 204 92 16 255 10
154489 215 143 212 50 85 107 175 256 154 223 210 115 107 26 108 184 94 209 100 103
1545176 7 10 103 67 10 83 49 70 103 47 155 258 69 68 188 202 177 171 277 201 19 70
1546252 195 125 109 70 83 29 52 67 153 65 109 90 101 132 32 2 145 276 43 33 160 246
154723 259 ^
1548600 1 87 119 148 132 260 144 189 164 10 247 38 167 55 222 44 125 6 72 211 13
1549226 153 92 79 246 234 26 6 25 221 193 273 256 201 212 30 228 2 195 254 239 99
1550114 28 34 158 99 167 168 232 224 172 109 181 65 236 220 129 2 29 264 140 146 57
1551137 167 102 93 143 78 182 242 78 69 232 177 22 129 68 168 66 74 73 275 5 174 90
1552164 123 257 218 214 158 52 177 69 48 2 242 125 59 52 11 79 20 214 105 72 258 3
155346 106 268 249 113 11 32 30 115 271 15 88 136 269 100 244 40 182 29 98 150 47
1554104 240 276 235 156 137 54 92 192 96 135 73 109 134 75 137 267 232 111 162 208
1555134 122 127 87 185 8 53 75 190 128 151 177 235 269 147 234 139 16 205 268 17
1556103 110 145 206 6 138 231 94 41 80 31 66 253 222 257 265 204 138 5 74 239 146
1557104 8 266 55 269 34 224 238 248 102 159 3 159 116 169 17 56 120 165 253 109 247
155885 157 35 56 220 16 152 128 217 37 37 203 74 173 126 23 193 60 116 122 27 236 7
1559268 83 242 191 79 133 224 125 238 82 112 60 50 262 225 23 240 50 96 235 203 127
1560153 45 89 147 121 129 115 39 165 187 249 166 151 111 96 188 53 28 200 148 198 1
156165 123 91 228 115 205 155 7 202 63 42 97 152 194 237 118 250 130 132 160 14 11
1562145 40 16 39 118 37 150 213 94 60 229 132 47 4 110 98 216 186 185 55 43 174 24
156325 42 44 12 275 171 45 189 117 20 148 85 270 164 76 267 119 101 261 161 31 13
1564273 143 191 32 143 125 172 62 31 245 123 44 238 135 252 258 116 56 7 36 73 62
1565144 255 24 91 62 244 106 202 110 32 77 105 91 128 264 27 136 37 250 64 272 79
1566199 84 206 53 128 51 47 217 250 17 3 259 246 187 36 186 72 45 23 127 200 195
1567188 100 18 20 261 95 171 211 179 97 252 45 255 137 101 82 12 209 32 243 255 71
156881 161 78 3 93 256 88 83 10 181 178 86 121 16 105 138 118 84 140 33 207 117 120
1569278 263 10 15 188 266 168 119 214 271 62 78 116 103 157 135 26 119 35 122 80 97
157086 55 156 24 44 191 145 153 26 219 165 140 99 67 38 54 205 42 276 22 176 218
1571148 19 131 243 142 61 180 114 254 173 239 33 94 107 219 231 160 180 1 244 272
1572192 209 264 253 156 237 184 270 211 226 87 72 158 152 28 87 19 18 233 241 14 77
15735 121 229 245 57 184 157 201 46 40 129 49 19 84 93 43 108 4 223 108 117 233 9 4
157457 118 18 120 112 113 190 181 12 96 22 63 208 247 251 28 134 9 117 186 138 184
1575223 61 127 216 ^
1576590 1 175 107 6 247 81 114 207 179 134 74 195 212 73 173 150 152 67 190 11 98
157744 192 80 221 146 279 153 88 34 139 78 221 189 228 24 45 128 90 273 84 51 111
157875 46 107 49 196 233 71 20 257 48 64 57 95 278 174 129 111 271 58 31 7 226 194
157937 229 45 170 256 197 169 81 72 41 255 176 44 234 92 145 104 155 114 208 243
1580208 200 259 48 21 108 224 40 80 178 197 127 196 148 237 225 215 78 25 23 23 66
158115 167 124 64 15 210 73 216 99 23 151 130 243 166 34 54 244 145 147 258 112 11
158256 159 268 122 64 58 159 225 19 193 101 219 274 105 49 239 55 223 104 70 126
1583132 201 238 161 225 130 90 230 262 53 27 135 95 39 59 53 69 147 19 278 216 14
158435 75 88 273 127 154 263 32 267 185 117 59 95 235 71 258 27 177 261 117 144 83
158530 267 228 66 211 52 48 22 172 171 39 144 168 145 62 143 36 250 86 120 234 50
1586133 180 70 84 247 277 280 131 137 10 162 161 140 142 14 188 11 141 274 63 164
158734 97 193 16 104 198 63 79 200 21 151 173 192 37 272 148 41 59 10 120 149 216
158857 138 227 45 213 205 68 126 175 150 109 118 38 208 158 93 124 217 78 263 74
1589152 109 75 89 56 201 153 46 149 215 120 191 101 262 96 257 133 52 133 137 248
1590213 9 183 202 217 274 148 279 110 139 163 55 265 270 275 84 8 162 204 89 13 252
15911 89 209 137 206 47 85 98 172 256 154 220 210 115 101 23 108 181 91 209 94 103
1592176 1 4 94 61 10 77 46 64 100 44 149 258 69 62 185 202 174 171 277 195 16 61
1593249 192 122 106 70 83 29 49 67 147 62 100 87 98 129 26 2 136 270 37 33 160 246
159417 40 81 115 144 126 260 138 185 160 8 247 38 165 55 222 40 123 68 211 9 226
1595151 88 77 242 230 24 2 25 219 189 271 254 197 212 30 224 279 195 254 239 97 108
159628 28 156 93 167 166 230 220 168 103 177 65 232 220 125 25 262 138 142 57 137
1597163 98 87 141 78 178 240 76 67 232 177 22 129 68 168 60 74 67 275 280 174 86
1598162 119 255 218 210 158 50 175 65 275 42 277 238 119 59 52 5 73 20 214 99 66
1599254 1 46 106 266 249 107 7 30 28 113 271 15 82 136 269 100 240 34 182 27 92 146
160041 102 240 272 233 156 135 52 90 188 96 129 69 105 134 73 131 265 228 109 160
1601204 132 116 123 85 183 6 51 69 190 122 149 173 235 267 143 232 135 10 205 264
160211 99 108 139 206 4 136 227 88 35 76 25 66 253 218 253 261 202 132 5 72 237 140
1603203 ^
1604620 0 279 262 51 261 30 224 234 244 102 151 3 155 112 161 9 56 112 165 249 105
1605243 77 157 23 44 216 12 140 124 217 33 29 203 62 165 122 19 193 56 116 122 15
1606236 7 268 75 242 183 71 129 220 125 238 70 108 48 46 258 221 15 232 50 84 227
1607195 127 153 45 81 135 121 125 107 27 157 179 241 166 139 99 88 188 53 24 196
1608148 190 272 61 119 79 224 103 201 151 282 198 63 30 97 148 194 229 110 250 126
1609132 156 2 7 137 32 8 31 118 37 138 209 94 60 225 128 47 279 110 94 212 182 177
161043 43 166 12 13 38 32 12 271 167 33 185 117 12 144 81 266 164 76 259 115 101
1611261 157 27 1 265 143 187 32 135 117 168 58 31 245 123 40 230 135 244 254 108 52
16123 24 69 62 140 251 20 83 50 244 98 194 102 24 65 105 91 120 256 27 132 25 242
161356 268 79 199 84 202 41 128 43 39 209 246 17 274 259 242 187 28 178 68 37 11
1614123 192 187 184 92 18 16 253 87 163 207 179 85 252 41 255 129 89 82 4 201 20
1615239 247 59 77 153 66 278 85 248 84 71 281 177 174 86 117 16 101 130 114 76 132
161629 199 105 116 274 255 2 3 180 266 160 119 210 267 54 70 104 91 145 127 26 107
161731 114 80 89 78 47 152 24 44 191 141 141 14 211 161 140 99 63 34 54 197 42 276
161818 168 210 136 11 119 235 138 53 180 110 246 169 231 25 90 99 219 231 152 176 1
1619240 272 188 205 264 245 144 237 180 262 203 218 79 72 146 152 20 87 7 10 229
1620241 10 77 1 109 229 237 53 176 153 197 38 36 117 37 15 80 93 35 96 219 100 109
1621225 280 4 45 106 6 120 100 113 182 181 92 14 59 204 239 251 16 126 1 113 186
1622138 184 223 61 115 122 175 107 6 243 81 114 207 175 128 68 193 208 73 171 146
1623148 63 186 11 98 38 188 74 221 146 275 149 88 32 139 74 217 189 226 18 41 124
162486 273 78 51 109 73 40 103 49 194 233 67 16 257 44 64 55 91 276 170 125 111 267
162558 27 5 222 192 35 227 43 170 252 197 169 79 68 41 251 172 40 234 92 145 102
1626155 108 204 243 208 200 257 48 21 104 222 40 78 178 195 123 196 144 233 223 213
162772 23 23 19 62 13 165 118 62 9 208 69 214 97 17 151 130 241 162 34 50 240 141
1628145 254 112 9 52 155 264 118 58 52 159 221 19 189 99 215 274 103 45 237 49 219
1629104 66 126 128 199 236 159 225 124 90 230 262 47 21 129 93 39 53 49 67 147 17
1630278 216 8 35 75 86 269 121 150 261 26 267 185 113 55 95 233 71 256 23 175 259
1631111 144 77 26 263 228 64 207 48 42 18 172 167 37 142 166 143 56 137 36 248 80
1632114 232 46 127 257 ^
1633605 1 58 76 243 273 280 131 125 6 162 161 132 142 14 184 3 141 270 51 160 26 89
1634189 4 92 198 55 67 192 13 143 173 192 25 268 136 37 55 2 112 137 208 45 130 227
163533 213 201 64 118 167 150 101 106 30 204 150 89 124 209 74 263 70 148 109 63 77
163652 201 141 38 149 215 116 187 89 254 84 253 133 40 129 133 248 209 9 183 194
1637213 266 144 279 102 135 163 47 265 270 271 80 8 154 204 85 9 248 274 89 201 129
1638198 43 85 86 168 256 154 216 210 115 93 19 108 177 87 209 86 103 176 278 281 82
163953 10 69 42 56 96 40 141 258 69 54 181 202 170 171 277 187 12 49 245 188 118
1640102 70 83 29 45 67 139 58 88 83 94 125 18 2 124 262 29 33 160 246 9 28 69 107
1641136 114 260 126 177 152 4 247 38 161 55 222 32 119 273 60 211 1 226 147 80 73
1642234 222 20 279 25 215 181 267 250 189 212 30 216 275 195 254 239 93 96 28 16
1643152 81 167 162 226 212 160 91 169 65 224 220 117 281 17 258 134 134 57 137 155
164490 75 137 78 170 236 72 63 232 177 22 129 68 168 48 74 55 275 272 174 78 158
1645111 251 218 202 158 46 171 57 267 30 269 230 107 59 52 278 61 20 214 87 54 246
1646282 46 106 262 249 95 284 26 24 109 271 15 70 136 269 100 232 22 182 23 80 138
164729 98 240 264 229 156 131 48 86 180 96 117 61 97 134 69 119 261 220 105 156 196
1648128 104 115 81 179 2 47 57 190 110 145 165 235 263 135 228 127 283 205 256 284
164991 104 127 206 132 219 76 23 68 13 66 253 210 245 253 198 120 5 68 233 128 92
1650275 260 49 257 28 224 232 242 102 147 3 153 110 157 5 56 108 165 247 103 241 73
1651157 17 38 214 10 134 122 217 31 25 203 56 161 120 17 193 54 116 122 9 236 7 268
165271 242 179 67 127 218 125 238 64 106 42 44 256 219 11 228 50 78 223 191 127 153
165345 77 129 121 123 103 21 153 175 237 166 133 93 84 188 53 22 194 148 186 268 59
1654117 73 222 97 199 149 280 196 63 24 97 146 194 225 106 250 124 132 154 281 5
1655133 28 4 27 118 37 132 207 94 60 223 126 47 277 110 92 210 180 173 37 43 162 6
16567 36 26 12 269 165 27 183 117 8 142 79 264 164 76 255 113 101 261 155 25 280
1657261 143 185 32 131 113 166 56 31 245 123 38 226 135 240 252 104 50 1 18 67 62
1658138 249 18 79 44 244 94 190 98 20 59 105 91 116 252 27 130 19 238 52 266 79 199
165984 200 35 128 39 35 205 244 17 270 259 240 187 24 174 66 33 5 121 188 183 182
166088 18 14 249 83 159 205 179 79 252 186 ^
1661615 0 255 121 77 82 283 193 8 235 239 47 73 145 54 274 77 240 80 59 273 173 170
166286 113 16 97 122 110 68 124 25 191 93 112 270 247 281 278 172 266 152 119 206
1663263 46 62 92 79 133 119 26 95 27 106 80 81 70 39 148 24 44 191 137 129 2 203
1664157 140 99 59 30 54 189 42 276 14 160 202 124 3 107 227 134 45 180 106 238 165
1665223 17 86 91 219 231 144 172 1 236 272 184 201 264 237 132 237 176 254 195 210
166671 72 134 152 12 87 282 2 225 241 6 77 284 97 229 229 49 168 149 193 30 32 105
166725 11 76 93 27 84 283 215 92 101 217 272 4 33 94 281 120 88 113 174 181 275 88
16686 55 200 231 251 4 118 280 109 186 138 184 223 61 103 110 175 107 6 235 81 114
1669207 167 116 56 189 200 73 167 138 140 55 178 11 98 26 180 62 221 146 267 141 88
167028 139 66 209 189 222 6 33 116 78 273 66 51 105 69 28 95 49 190 233 59 8 257 36
167164 51 83 272 162 117 111 259 58 19 1 214 188 31 223 39 170 244 197 169 75 60 41
1672243 164 32 234 92 145 98 155 96 196 243 208 200 253 48 21 96 218 40 74 178 191
1673115 196 136 225 219 209 60 19 23 11 54 9 161 106 58 284 204 61 210 93 5 151 130
1674237 154 34 42 232 133 141 246 112 5 44 147 256 110 46 40 159 213 19 181 95 207
1675274 99 37 233 37 211 104 58 126 120 195 232 155 225 112 90 230 262 35 9 117 89
167639 41 41 63 147 13 278 216 283 35 75 82 261 109 142 257 14 267 185 105 47 95
1677229 71 252 15 171 255 99 144 65 18 255 228 60 199 40 30 10 172 159 33 138 162
1678139 44 125 36 244 68 102 228 38 115 174 52 72 241 271 280 131 119 4 162 161 128
1679142 14 182 286 141 268 45 158 22 85 187 285 86 198 51 61 188 9 139 173 192 19
1680266 130 35 53 285 108 131 204 39 126 227 27 213 199 62 114 163 150 97 100 26
1681202 146 87 124 205 72 263 68 146 109 57 71 50 201 135 34 149 215 114 185 83 250
168278 251 133 34 127 131 248 207 9 183 190 211 262 142 279 98 133 163 43 265 270
1683269 78 8 150 204 83 7 246 270 89 197 125 194 41 85 80 166 256 154 214 210 115
168489 17 108 175 85 209 82 103 176 276 279 76 49 10 65 40 52 94 38 137 258 69 50
1685179 202 168 171 277 183 10 43 243 186 116 100 70 83 29 43 67 135 56 82 81 92
1686123 14 2 118 258 25 33 160 246 5 22 63 103 132 108 260 120 173 148 2 247 38 159
168755 222 28 117 269 56 211 284 226 145 76 71 230 218 18 277 25 213 177 265 248
1688185 212 30 212 273 195 254 239 91 90 28 10 150 75 167 160 224 175 ^
1689613 0 152 79 161 65 216 220 109 281 9 254 130 126 57 137 147 82 63 133 78 162
1690232 68 59 232 177 22 129 68 168 36 74 43 275 264 174 70 154 103 247 218 194 158
169142 167 49 259 18 261 222 95 59 52 270 49 20 214 75 42 238 282 46 106 258 249 83
1692280 22 20 105 271 15 58 136 269 100 224 10 182 19 68 130 17 94 240 256 225 156
1693127 44 82 172 96 105 53 89 134 65 107 257 212 101 152 188 124 92 107 77 175 287
169443 45 190 98 141 157 235 259 127 224 119 275 205 248 276 83 100 115 206 285 128
1695211 64 11 60 1 66 253 202 237 245 194 108 5 64 229 116 84 267 256 45 249 24 224
1696228 238 102 139 3 149 106 149 286 56 100 165 243 99 237 65 157 5 26 210 6 122
1697118 217 27 17 203 44 153 116 13 193 50 116 122 286 236 7 268 63 242 171 59 123
1698214 125 238 52 102 30 40 252 215 3 220 50 66 215 183 127 153 45 69 117 121 119
169995 9 145 167 229 166 121 81 76 188 53 18 190 148 178 260 55 113 61 218 85 195
1700145 276 192 63 12 97 142 194 217 98 250 120 132 150 273 1 125 20 285 19 118 37
1701120 203 94 60 219 122 47 273 110 88 206 176 165 25 43 154 283 284 32 14 12 265
1702161 15 179 117 138 75 260 164 76 247 109 101 261 151 21 272 253 143 181 32 123
1703105 162 52 31 245 123 34 218 135 232 248 96 46 286 6 63 62 134 245 14 71 32 244
170486 182 90 12 47 105 91 108 244 27 126 7 230 44 262 79 199 84 196 23 128 31 27
1705197 240 17 262 259 236 187 16 166 62 25 282 117 180 175 178 80 18 10 241 75 151
1706201 179 67 252 35 255 117 71 82 281 189 2 233 235 41 71 141 48 272 73 236 78 53
1707269 171 168 86 111 16 95 118 108 64 120 23 187 87 110 268 243 279 274 168 266
1708148 119 204 261 42 58 86 73 127 115 26 89 25 102 80 77 66 35 146 24 44 191 135
1709123 285 199 155 140 99 57 28 54 185 42 276 12 156 198 118 288 101 223 132 41
1710180 104 234 163 219 13 84 87 219 231 140 170 1 234 272 182 199 264 233 126 237
1711174 250 191 206 67 72 128 152 8 87 278 287 223 241 4 77 284 91 229 225 47 164
1712147 191 26 30 99 19 9 74 93 23 78 283 213 88 97 213 268 4 27 88 277 120 82 113
1713170 181 271 86 2 53 198 227 251 287 114 278 107 186 138 184 223 61 97 104 175
1714107 6 231 81 114 207 163 110 50 187 196 73 165 134 136 51 174 11 98 20 176 56
1715221 146 263 137 88 26 139 62 205 189 220 29 112 74 273 60 51 103 67 22 91 49
1716188 233 55 4 257 32 64 49 79 270 158 113 111 255 58 15 288 210 213 ^
1717624 1 28 220 36 170 238 197 169 72 54 41 237 158 26 234 92 145 95 155 87 190
1718243 208 200 250 48 21 90 215 40 71 178 188 109 196 130 219 216 206 51 16 23 5
171948 6 158 97 55 278 201 55 207 90 286 151 130 234 148 34 36 226 127 138 240 112
17202 38 141 250 104 37 31 159 207 19 175 92 201 274 96 31 230 28 205 104 52 126
1721114 192 229 152 225 103 90 230 262 26 108 86 39 32 35 60 147 10 278 216 277 35
172275 79 255 100 136 254 5 267 185 99 41 95 226 71 249 9 168 252 90 144 56 12 249
1723228 57 193 34 21 4 172 153 30 135 159 136 35 116 36 241 59 93 225 32 106 171 43
172466 238 268 280 131 110 1 162 161 122 142 14 179 283 141 265 36 155 16 79 184
1725279 77 198 45 52 182 3 133 173 192 10 263 121 32 50 282 102 122 198 30 120 227
172618 213 196 59 108 157 150 91 91 20 199 140 84 124 199 69 263 65 143 109 48 62
172747 201 126 28 149 215 111 182 74 244 69 248 133 25 124 128 248 204 9 183 184
1728208 256 139 279 92 130 163 37 265 270 266 75 8 144 204 80 4 243 264 89 191 119
1729188 38 85 71 163 256 154 211 210 115 83 14 108 172 82 209 76 103 176 273 276 67
173043 10 59 37 46 91 35 131 258 69 44 176 202 165 171 277 177 7 34 240 183 113 97
173170 83 29 40 67 129 53 73 78 89 120 8 2 109 252 19 33 160 246 289 13 54 97 126
173299 260 111 167 142 289 247 38 156 55 222 22 114 263 50 211 281 226 142 70 68
1733224 212 15 274 25 210 171 262 245 179 212 30 206 270 195 254 239 88 81 28 1 147
173466 167 157 221 202 150 76 159 65 214 220 107 281 7 253 129 124 57 137 145 80 60
1735132 78 160 231 67 58 232 177 22 129 68 168 33 74 40 275 262 174 68 153 101 246
1736218 192 158 41 166 47 257 15 259 220 92 59 52 268 46 20 214 72 39 236 282 46
1737106 257 249 80 279 21 19 104 271 15 55 136 269 100 222 7 182 18 65 128 14 93
1738240 254 224 156 126 43 81 170 96 102 51 87 134 64 104 256 210 100 151 186 123
173989 105 76 174 287 42 42 190 95 140 155 235 258 125 223 117 273 205 246 274 81
174099 112 206 285 127 209 61 8 58 288 66 253 200 235 243 193 105 5 63 228 113 82
1741265 255 44 247 23 224 227 237 102 137 3 148 105 147 285 56 98 165 242 98 236 63
1742157 2 23 209 5 119 117 217 26 15 203 41 151 115 12 193 49 116 122 284 236 7 268
174361 242 169 57 122 213 125 238 49 101 27 39 251 214 1 218 50 63 213 181 127 153
174445 67 114 121 118 93 6 143 165 227 166 118 78 74 188 53 17 189 148 176 258 54
1745112 58 217 82 194 144 275 191 141 ^
1746628 1 3 97 139 194 211 92 250 117 132 147 267 290 119 14 282 13 118 37 111 200
174794 60 216 119 47 270 110 85 203 173 159 16 43 148 277 278 29 5 12 262 158 6 176
1748117 286 135 72 257 164 76 241 106 101 261 148 18 266 247 143 178 32 117 99 159
174949 31 245 123 31 212 135 226 245 90 43 286 289 60 62 131 242 11 65 23 244 80
1750176 84 6 38 105 91 102 238 27 123 290 224 38 259 79 199 84 193 14 128 25 21 191
1751237 17 256 259 233 187 10 160 59 19 276 114 174 169 175 74 18 7 235 69 145 198
1752179 58 252 32 255 111 62 82 278 183 285 230 229 32 68 135 39 269 67 230 75 44
1753263 168 165 86 108 16 92 112 105 58 114 20 181 78 107 265 237 276 268 162 266
1754142 119 201 258 36 52 77 64 118 109 26 80 22 96 80 71 60 29 143 24 44 191 132
1755114 279 193 152 140 99 54 25 54 179 42 276 9 150 192 109 285 92 217 129 35 180
1756101 228 160 213 7 81 81 219 231 134 167 1 231 272 179 196 264 227 117 237 171
1757244 185 200 61 72 119 152 2 87 272 284 220 241 1 77 284 82 229 219 44 158 144
1758188 20 27 90 10 6 71 93 17 69 283 210 82 91 207 262 4 18 79 271 120 73 113 164
1759181 265 83 288 50 195 221 251 281 108 275 104 186 138 184 223 61 88 95 175 107
17606 225 81 114 207 157 101 41 184 190 73 162 128 130 45 168 11 98 11 170 47 221
1761146 257 131 88 23 139 56 199 189 217 283 23 106 68 273 51 51 100 64 13 85 49
1762185 233 49 290 257 26 64 46 73 267 152 107 111 249 58 9 288 204 183 26 218 34
1763170 234 197 169 70 50 41 233 154 22 234 92 145 93 155 81 186 243 208 200 248 48
176421 86 213 40 69 178 186 105 196 126 215 214 204 45 14 23 1 44 4 156 91 53 274
1765199 51 205 88 282 151 130 232 144 34 32 222 123 136 236 112 34 137 246 100 31
176625 159 203 19 171 90 197 274 94 27 228 22 201 104 48 126 110 190 227 150 225 97
176790 230 262 20 286 102 84 39 26 31 58 147 8 278 216 273 35 75 77 251 94 132 252
1768291 267 185 95 37 95 224 71 247 5 166 250 84 144 50 8 245 228 55 189 30 15 172
1769149 28 133 157 134 29 110 36 239 53 87 223 28 100 169 37 62 236 266 280 131 104
1770291 162 161 118 142 14 177 281 141 263 30 153 12 75 182 275 71 198 41 46 178
1771291 129 173 192 4 261 115 30 48 280 98 116 194 24 116 227 12 213 194 57 104 153
1772150 87 85 16 197 136 82 124 195 67 263 63 141 109 42 56 45 201 120 24 149 215
1773109 180 68 240 63 246 133 19 122 126 248 202 9 183 180 206 252 137 279 88 128
1774163 33 265 270 264 73 8 140 204 78 2 241 76 ^
1775622 0 89 183 111 180 34 85 59 159 256 154 207 210 115 75 10 108 168 78 209 68
1776103 176 269 272 55 35 10 51 33 38 87 31 123 258 69 36 172 202 161 171 277 169 3
177722 236 179 109 93 70 83 29 36 67 121 49 61 74 85 116 2 97 244 11 33 160 246 285
17781 42 89 118 87 260 99 159 134 289 247 38 152 55 222 14 110 255 42 211 277 226
1779138 62 64 216 204 11 270 25 206 163 258 241 171 212 30 198 266 195 254 239 84
178069 28 283 143 54 167 153 217 194 142 64 151 65 206 220 99 281 293 249 125 116
178157 137 137 72 48 128 78 152 227 63 54 232 177 22 129 68 168 21 74 28 275 254
1782174 60 149 93 242 218 184 158 37 162 39 249 3 251 212 80 59 52 260 34 20 214 60
178327 228 282 46 106 253 249 68 275 17 15 100 271 15 43 136 269 100 214 289 182 14
178453 120 2 89 240 246 220 156 122 39 77 162 96 90 43 79 134 60 92 252 202 96 147
1785178 119 77 97 72 170 287 38 30 190 83 136 147 235 254 117 219 109 265 205 238
1786266 73 95 100 206 285 123 201 49 290 50 280 66 253 192 227 235 189 93 5 59 224
1787101 74 257 251 40 239 19 224 223 233 102 129 3 144 101 139 281 56 90 165 238 94
1788232 55 157 284 11 205 1 107 113 217 22 7 203 29 143 111 8 193 45 116 122 276
1789236 7 268 53 242 161 49 118 209 125 238 37 97 15 35 247 210 287 210 50 51 205
1790173 127 153 45 59 102 121 114 85 288 135 157 219 166 106 66 66 188 53 13 185
1791148 168 250 50 108 46 213 70 190 140 271 187 63 291 97 137 194 207 88 250 115
1792132 145 263 290 115 10 280 9 118 37 105 198 94 60 214 117 47 268 110 83 201 171
1793155 10 43 144 273 274 27 293 12 260 156 174 117 284 133 70 255 164 76 237 104
1794101 261 146 16 262 243 143 176 32 113 95 157 47 31 245 123 29 208 135 222 243
179586 41 286 285 58 62 129 240 9 61 17 244 76 172 80 2 32 105 91 98 234 27 121 286
1796220 34 257 79 199 84 191 8 128 21 17 187 235 17 252 259 231 187 6 156 57 15 272
1797112 170 165 173 70 18 5 231 65 141 196 179 52 252 30 255 107 56 82 276 179 281
1798228 225 26 66 131 33 267 63 226 73 38 259 166 163 86 106 16 90 108 103 54 110
179918 177 72 105 263 233 274 264 158 266 138 119 199 256 32 48 71 58 112 105 26 74
180020 92 80 67 56 25 141 24 44 191 130 108 275 189 150 140 99 52 23 54 175 42 276
18017 146 188 103 283 86 213 127 31 180 99 224 158 209 3 79 77 219 231 130 165 1
1802229 272 177 194 264 223 111 237 169 240 181 196 57 72 113 152 292 87 268 282
1803218 241 293 77 284 76 229 80 ^
1804635 1 40 150 140 184 12 23 78 294 2 67 93 9 57 283 206 74 83 199 254 4 6 67 263
1805120 61 113 156 181 257 79 284 46 191 213 251 273 100 271 100 186 138 184 223 61
180676 83 175 107 6 217 81 114 207 149 89 29 180 182 73 158 120 122 37 160 11 98
1807295 162 35 221 146 249 123 88 19 139 48 191 189 213 275 15 98 60 273 39 51 96
180860 1 77 49 181 233 41 286 257 18 64 42 65 263 144 99 111 241 58 1 288 196 179
180922 214 30 170 226 197 169 66 42 41 225 146 14 234 92 145 89 155 69 178 243 208
1810200 244 48 21 78 209 40 65 178 182 97 196 118 207 210 200 33 10 23 289 36 152
181179 49 266 195 43 201 84 274 151 130 228 136 34 24 214 115 132 228 112 292 26
1812129 238 92 19 13 159 195 19 163 86 189 274 90 19 224 10 193 104 40 126 102 186
1813223 146 225 85 90 230 262 8 278 90 80 39 14 23 54 147 4 278 216 265 35 75 73
1814243 82 124 248 283 267 185 87 29 95 220 71 243 293 162 246 72 144 38 237 228 51
1815181 22 3 288 172 141 24 129 153 130 17 98 36 235 41 75 219 20 88 165 25 54 232
1816262 280 131 92 291 162 161 110 142 14 173 277 141 259 18 149 4 67 178 267 59
1817198 33 34 170 287 121 173 192 288 257 103 26 44 276 90 104 186 12 108 227 213
1818190 53 96 145 150 79 73 8 193 128 78 124 187 63 263 59 137 109 30 44 41 201 108
181916 149 215 105 176 56 232 51 242 133 7 118 122 248 198 9 183 172 202 244 133
1820279 80 124 163 25 265 270 260 69 8 132 204 74 294 237 252 89 179 107 176 32 85
182153 157 256 154 205 210 115 71 8 108 166 76 209 64 103 176 267 270 49 31 10 47
182231 34 85 29 119 258 69 32 170 202 159 171 277 165 1 16 234 177 107 91 70 83 29
182334 67 117 47 55 72 83 114 292 2 91 240 7 33 160 246 283 291 36 85 114 81 260 93
1824155 130 289 247 38 150 55 222 10 108 251 38 211 275 226 136 58 62 212 200 9 268
182525 204 159 256 239 167 212 30 194 264 195 254 239 82 63 28 279 141 48 167 151
1826215 190 138 58 147 65 202 220 95 281 291 247 123 112 57 137 133 68 42 126 78
1827148 225 61 52 232 177 22 129 68 168 15 74 22 275 250 174 56 147 89 240 218 180
1828158 35 160 35 245 293 247 208 74 59 52 256 28 20 214 54 21 224 282 46 106 251
1829249 62 273 15 13 98 271 15 37 136 269 100 210 285 182 12 47 116 292 87 240 242
1830218 156 120 37 75 158 96 84 39 75 134 58 86 250 198 94 145 174 117 71 93 70 168
1831287 36 24 190 77 134 143 235 252 113 217 105 261 205 234 262 69 93 94 206 285
1832121 197 43 286 46 276 66 253 188 223 231 187 87 5 57 222 95 285 ^
1833636 0 251 248 37 233 16 224 220 230 102 123 3 141 98 133 278 56 84 165 235 91
1834229 49 157 278 2 202 295 98 110 217 19 1 203 20 137 108 5 193 42 116 122 270
1835236 7 268 47 242 155 43 115 206 125 238 28 94 6 32 244 207 284 204 50 42 199
1836167 127 153 45 53 93 121 111 79 282 129 151 213 166 97 57 60 188 53 10 182 148
1837162 244 47 105 37 210 61 187 137 268 184 63 285 97 134 194 201 82 250 112 132
1838142 257 290 109 4 277 3 118 37 96 195 94 60 211 114 47 265 110 80 198 168 149 1
183943 138 267 268 24 287 12 257 153 288 171 117 281 130 67 252 164 76 231 101 101
1840261 143 13 256 237 143 173 32 107 89 154 44 31 245 123 26 202 135 216 240 80 38
1841286 279 55 62 126 237 6 55 8 244 70 166 74 293 23 105 91 92 228 27 118 280 214
184228 254 79 199 84 188 296 128 15 11 181 232 17 246 259 228 187 150 54 9 266 109
1843164 159 170 64 18 2 225 59 135 193 179 43 252 27 255 101 47 82 273 173 275 225
1844219 17 63 125 24 264 57 220 70 29 253 163 160 86 103 16 87 102 100 48 104 15
1845171 63 102 260 227 271 258 152 266 132 119 196 253 26 42 62 49 103 99 26 65 17
184686 80 61 50 19 138 24 44 191 127 99 269 183 147 140 99 49 20 54 169 42 276 4
1847140 182 94 280 77 207 124 25 180 96 218 155 203 294 76 71 219 231 124 162 1 226
1848272 174 191 264 217 102 237 166 234 175 190 51 72 104 152 289 87 262 279 215
1849241 293 77 284 67 229 209 39 148 139 183 10 22 75 292 1 66 93 7 54 283 205 72
185081 197 252 4 3 64 261 120 58 113 154 181 255 78 283 45 190 211 251 271 98 270
185199 186 138 184 223 61 73 80 175 107 6 215 81 114 207 147 86 26 179 180 73 157
1852118 120 35 158 11 98 293 160 32 221 146 247 121 88 18 139 46 189 189 212 273 13
185396 58 273 36 51 95 59 295 75 49 180 233 39 285 257 16 64 41 63 262 142 97 111
1854239 58 296 288 194 178 21 213 29 170 224 197 169 65 40 41 223 144 12 234 92 145
185588 155 66 176 243 208 200 243 48 21 76 208 40 64 178 181 95 196 116 205 209 199
185630 9 23 288 34 296 151 76 48 264 194 41 200 83 272 151 130 227 134 34 22 212
1857113 131 226 112 292 24 127 236 90 16 10 159 193 19 161 85 187 274 89 17 223 7
1858191 104 38 126 100 185 222 145 225 82 90 230 262 5 276 87 79 39 11 21 53 147 3
1859278 216 263 35 75 72 241 79 122 247 281 267 185 85 27 95 219 71 242 292 161 245
186069 144 35 295 235 228 50 179 20 287 172 139 23 128 152 129 14 95 36 234 38 72
1861218 18 85 164 22 52 231 261 280 131 89 291 162 161 108 142 14 172 276 91 ^
1862635 1 256 9 146 297 61 175 261 50 198 27 25 164 284 115 173 192 282 254 94 23
186341 273 84 95 180 3 102 227 290 213 187 50 90 139 150 73 64 2 190 122 75 124 181
186460 263 56 134 109 21 35 38 201 99 10 149 215 102 173 47 226 42 239 133 297 115
1865119 248 195 9 183 166 199 238 130 279 74 121 163 19 265 270 257 66 8 126 204 71
1866294 234 246 89 173 101 170 29 85 44 154 256 154 202 210 115 65 5 108 163 73 209
186758 103 176 264 267 40 25 10 41 28 28 82 26 113 258 69 26 167 202 156 171 277
1868159 297 7 231 174 104 88 70 83 29 31 67 111 44 46 69 80 111 289 2 82 234 1 33
1869160 246 280 285 27 79 108 72 260 84 149 124 289 247 38 147 55 222 4 105 245 32
1870211 272 226 133 52 59 206 194 6 265 25 201 153 253 236 161 212 30 188 261 195
1871254 239 79 54 28 273 138 39 167 148 212 184 132 49 141 65 196 220 89 281 288
1872244 120 106 57 137 127 62 33 123 78 142 222 58 49 232 177 22 129 68 168 6 74 13
1873275 244 174 50 144 83 237 218 174 158 32 157 29 239 287 241 202 65 59 52 250 19
187420 214 45 12 218 282 46 106 248 249 53 270 12 10 95 271 15 28 136 269 100 204
1875279 182 9 38 110 286 84 240 236 215 156 117 34 72 152 96 75 33 69 134 55 77 247
1876192 91 142 168 114 62 87 67 165 287 33 15 190 68 131 137 235 249 107 214 99 255
1877205 228 256 63 90 85 206 285 118 191 34 280 40 270 66 253 182 217 225 184 78 5
187854 219 86 64 247 246 35 229 14 224 218 228 102 119 3 139 96 129 276 56 80 165
1879233 89 227 45 157 274 295 200 295 92 108 217 17 296 203 14 133 106 3 193 40 116
1880122 266 236 7 268 43 242 151 39 113 204 125 238 22 92 30 242 205 282 200 50 36
1881195 163 127 153 45 49 87 121 109 75 278 125 147 209 166 91 51 56 188 53 8 180
1882148 158 240 45 103 31 208 55 185 135 266 182 63 281 97 132 194 197 78 250 110
1883132 140 253 290 105 275 298 118 37 90 193 94 60 209 112 47 263 110 78 196 166
1884145 294 43 134 263 264 22 283 12 255 151 284 169 117 279 128 65 250 164 76 227
188599 101 261 141 11 252 233 143 171 32 103 85 152 42 31 245 123 24 198 135 212
1886238 76 36 286 275 53 62 124 235 4 51 2 244 66 162 70 291 17 105 91 88 224 27
1887116 276 210 24 252 79 199 84 186 292 128 11 7 177 230 17 242 259 226 187 295
1888146 52 5 262 107 160 155 168 60 18 221 55 131 191 179 37 252 25 255 97 41 82
1889271 169 271 223 215 11 61 121 18 262 53 216 68 23 249 161 158 86 101 16 85 98
189098 44 100 13 167 57 100 258 223 269 254 148 266 128 119 194 251 22 38 56 43 275
1891^
1892642 0 91 26 53 13 78 80 53 42 11 134 24 44 191 123 87 261 175 143 140 99 45 16
189354 161 42 276 132 174 82 276 65 199 120 17 180 92 210 151 195 290 72 63 219 231
1894116 158 1 222 272 170 187 264 209 90 237 162 226 167 182 43 72 92 152 285 87
1895254 275 211 241 293 77 284 55 229 201 35 140 135 179 2 18 63 284 298 62 93 300
189642 283 201 64 73 189 244 4 292 52 253 120 46 113 146 181 247 74 279 41 186 203
1897251 263 90 266 95 186 138 184 223 61 61 68 175 107 6 207 81 114 207 139 74 14
1898175 172 73 153 110 112 27 150 11 98 285 152 20 221 146 239 113 88 14 139 38 181
1899189 208 265 5 88 50 273 24 51 91 55 287 67 49 176 233 31 281 257 8 64 37 55 258
1900134 89 111 231 58 292 288 186 174 17 209 25 170 216 197 169 61 32 41 215 136 4
1901234 92 145 84 155 54 168 243 208 200 239 48 21 68 204 40 60 178 177 87 196 108
1902197 205 195 18 5 23 284 26 296 147 64 44 256 190 33 196 79 264 151 130 223 126
190334 14 204 105 127 218 112 292 16 119 228 82 4 299 159 185 19 153 81 179 274 85
19049 219 296 183 104 30 126 92 181 218 141 225 70 90 230 262 294 268 75 75 39 300
190513 49 147 300 278 216 255 35 75 68 233 67 114 243 273 267 185 77 19 95 215 71
1906238 288 157 241 57 144 23 291 227 228 46 171 12 289 283 172 131 19 124 148 125
19072 83 36 230 26 60 214 10 73 160 10 44 227 257 280 131 77 291 162 161 100 142 14
1908168 272 141 254 3 144 295 57 173 257 44 198 23 19 160 282 111 173 192 278 252
190988 21 39 271 80 89 176 298 98 227 286 213 185 48 86 135 150 69 58 299 188 118
191073 124 177 58 263 54 132 109 15 29 36 201 93 6 149 215 100 171 41 222 36 237
1911133 293 113 117 248 193 9 183 162 197 234 128 279 70 119 163 15 265 270 255 64
19128 122 204 69 294 232 242 89 169 97 166 27 85 38 152 256 154 200 210 115 61 3
1913108 161 71 209 54 103 176 262 265 34 21 10 37 26 24 80 24 109 258 69 22 165 202
1914154 171 277 155 297 1 229 172 102 86 70 83 29 29 67 107 42 40 67 78 109 287 2
191576 230 298 33 160 246 278 281 21 75 104 66 260 78 145 120 289 247 38 145 55 222
1916103 241 28 211 270 226 131 48 57 202 190 4 263 25 199 149 251 234 157 212 30
1917184 259 195 254 239 77 48 28 269 136 33 167 146 210 180 128 43 137 65 192 220
191885 281 286 242 118 102 57 137 123 58 27 121 78 138 220 56 47 232 177 22 129 68
1919168 74 7 275 240 174 46 142 79 235 218 170 158 30 155 25 235 283 237 198 59 59
192052 246 13 20 214 39 6 214 282 46 106 246 249 47 268 10 8 93 271 15 22 136 269
1921100 200 275 42 ^
1922644 0 6 29 104 280 81 240 230 212 156 114 31 69 146 96 66 27 63 134 52 68 244
1923186 88 139 162 111 53 81 64 162 287 30 6 190 59 128 131 235 246 101 211 93 249
1924205 222 250 57 87 76 206 285 115 185 25 274 34 264 66 253 176 211 219 181 69 5
192551 216 77 58 241 243 32 223 11 224 215 225 102 113 3 136 93 123 273 56 74 165
1926230 86 224 39 157 268 289 197 295 83 105 217 14 293 203 5 127 103 193 37 116
1927122 260 236 7 268 37 242 145 33 110 201 125 238 13 89 293 27 239 202 279 194 50
192827 189 157 127 153 45 43 78 121 106 69 272 119 141 203 166 82 42 50 188 53 5
1929177 148 152 234 42 100 22 205 46 182 132 263 179 63 275 97 129 194 191 72 250
1930107 132 137 247 290 99 296 272 295 118 37 81 190 94 60 206 109 47 260 110 75
1931193 163 139 288 43 128 257 258 19 277 12 252 148 278 166 117 276 125 62 247 164
193276 221 96 101 261 138 8 246 227 143 168 32 97 79 149 39 31 245 123 21 192 135
1933206 235 70 33 286 269 50 62 121 232 1 45 295 244 60 156 64 288 8 105 91 82 218
193427 113 270 204 18 249 79 199 84 183 286 128 5 1 171 227 17 236 259 223 187 292
1935140 49 301 256 104 154 149 165 54 18 299 215 49 125 188 179 28 252 22 255 91 32
193682 268 163 265 220 209 2 58 115 9 259 47 210 65 14 243 158 155 86 98 16 82 92
193795 38 94 10 161 48 97 255 217 266 248 142 266 122 119 191 248 16 32 47 34 88 89
193826 50 12 76 80 51 40 9 133 24 44 191 122 84 259 173 142 140 99 44 15 54 159 42
1939276 301 130 172 79 275 62 197 119 15 180 91 208 150 193 289 71 61 219 231 114
1940157 1 221 272 169 186 264 207 87 237 161 224 165 180 41 72 89 152 284 87 252
1941274 210 241 293 77 284 52 229 199 34 138 134 178 17 60 282 298 61 93 299 39 283
1942200 62 71 187 242 4 290 49 251 120 43 113 144 181 245 73 278 40 185 201 251 261
194388 265 94 186 138 184 223 61 58 65 175 107 6 205 81 114 207 137 71 11 174 170
194473 152 108 110 25 148 11 98 283 150 17 221 146 237 111 88 13 139 36 179 189 207
1945263 3 86 48 273 21 51 90 54 285 65 49 175 233 29 280 257 6 64 36 53 257 132 87
1946111 229 58 291 288 184 173 16 208 24 170 214 197 169 60 30 41 213 134 2 234 92
1947145 83 155 51 166 243 208 200 238 48 21 66 203 40 59 178 176 85 196 106 195 204
1948194 15 4 23 283 24 296 146 61 43 254 189 31 195 78 262 151 130 222 124 34 12
1949202 103 126 216 112 292 14 117 226 80 1 297 159 183 19 151 80 177 274 84 7 218
1950294 181 104 28 126 90 180 217 140 225 67 90 230 262 292 266 72 74 39 298 11 48
1951147 300 278 216 253 265 ^
1952638 1 75 65 227 58 108 240 267 267 185 71 13 95 212 71 235 285 154 238 48 144
195314 288 221 228 43 165 6 283 280 172 125 16 121 145 122 297 74 36 227 17 51 211
19544 64 157 1 38 224 254 280 131 68 291 162 161 94 142 14 165 269 141 251 298 141
1955292 51 170 251 35 198 17 10 154 279 105 173 192 272 249 79 18 36 268 74 80 170
1956292 92 227 280 213 182 45 80 129 150 63 49 296 185 112 70 124 171 55 263 51 129
1957109 6 20 33 201 84 149 215 97 168 32 216 27 234 133 287 110 114 248 190 9 183
1958156 194 228 125 279 64 116 163 9 265 270 252 61 8 116 204 66 294 229 236 89 163
195991 160 24 85 29 149 256 154 197 210 115 55 108 158 68 209 48 103 176 259 262 25
196015 10 31 23 18 77 21 103 258 69 16 162 202 151 171 277 149 297 296 226 169 99
196183 70 83 29 26 67 101 39 31 64 75 106 284 2 67 224 295 33 160 246 275 275 12 69
196298 57 260 69 139 114 289 247 38 142 55 222 298 100 235 22 211 267 226 128 42 54
1963196 184 1 260 25 196 143 248 231 151 212 30 178 256 195 254 239 74 39 28 263
1964133 24 167 143 207 174 122 34 131 65 186 220 79 281 283 239 115 96 57 137 117
196552 18 118 78 132 217 53 44 232 177 22 129 68 168 295 74 302 275 234 174 40 139
196673 232 218 164 158 27 152 19 229 277 231 192 50 59 52 240 4 20 214 30 301 208
1967282 46 106 243 249 38 265 7 5 90 271 15 13 136 269 100 194 269 182 4 23 100 276
196879 240 226 210 156 112 29 67 142 96 60 23 59 134 50 62 242 182 86 137 158 109
196947 77 62 160 287 28 190 53 126 127 235 244 97 209 89 245 205 218 246 53 85 70
1970206 285 113 181 19 270 30 260 66 253 172 207 215 179 63 5 49 214 71 54 237 241
197130 219 9 224 213 223 102 109 3 134 91 119 271 56 70 165 228 84 222 35 157 264
1972285 195 295 77 103 217 12 291 203 303 123 101 302 193 35 116 122 256 236 7 268
197333 242 141 29 108 199 125 238 7 87 289 25 237 200 277 190 50 21 185 153 127 153
197445 39 72 121 104 65 268 115 137 199 166 76 36 46 188 53 3 175 148 148 230 40 98
197516 203 40 180 130 261 177 63 271 97 127 194 187 68 250 105 132 135 243 290 95
1976294 270 293 118 37 75 188 94 60 204 107 47 258 110 73 191 161 135 284 43 124
1977253 254 17 273 12 250 146 274 164 117 274 123 60 245 164 76 217 94 101 261 136
19786 242 223 143 166 32 93 75 147 37 31 245 123 19 188 135 202 233 66 31 286 265
197948 62 119 230 303 41 291 244 56 152 60 286 2 105 91 78 214 27 111 266 200 14
1980247 79 199 84 181 282 128 1 301 167 225 17 232 259 221 187 290 136 47 299 252
1981102 150 145 163 157 ^
1982653 0 18 299 207 41 117 184 179 16 252 18 255 83 20 82 264 155 257 216 201 296
198354 107 303 255 39 202 61 2 235 154 151 86 94 16 78 84 91 30 86 6 153 36 93 251
1984209 262 240 134 266 114 119 187 244 8 24 35 22 76 81 26 38 8 68 80 43 32 1 129
198524 44 191 118 72 251 165 138 140 99 40 11 54 151 42 276 301 122 164 67 271 50
1986189 115 7 180 87 200 146 185 285 67 53 219 231 106 153 1 217 272 165 182 264
1987199 75 237 157 216 157 172 33 72 77 152 280 87 244 270 206 241 293 77 284 40
1988229 191 30 130 130 174 298 13 48 274 298 57 93 295 27 283 196 54 63 179 234 4
1989282 37 243 120 31 113 136 181 237 69 274 36 181 193 251 253 80 261 90 186 138
1990184 223 61 46 53 175 107 6 197 81 114 207 129 59 305 170 162 73 148 100 102 17
1991140 11 98 275 142 5 221 146 229 103 88 9 139 28 171 189 203 255 301 78 40 273 9
199251 86 50 277 57 49 171 233 21 276 257 304 64 32 45 253 124 79 111 221 58 287
1993288 176 169 12 204 20 170 206 197 169 56 22 41 205 126 300 234 92 145 79 155 39
1994158 243 208 200 234 48 21 58 199 40 55 178 172 77 196 98 187 200 190 3 23 279
199516 296 142 49 39 246 185 23 191 74 254 151 130 218 116 34 4 194 95 122 208 112
1996292 6 109 218 72 295 289 159 175 19 143 76 169 274 80 305 214 286 173 104 20
1997126 82 176 213 136 225 55 90 230 262 284 258 60 70 39 290 3 44 147 300 278 216
1998245 35 75 63 223 52 104 238 263 267 185 67 9 95 210 71 233 283 152 236 42 144 8
1999286 217 228 41 161 2 279 278 172 121 14 119 143 120 293 68 36 225 11 45 209 58
2000155 301 34 222 252 280 131 62 291 162 161 90 142 14 163 267 141 249 294 139 290
200147 168 247 29 198 13 4 150 277 101 173 192 268 247 73 16 34 266 70 74 166 288
200288 227 276 213 180 43 76 125 150 59 43 294 183 108 68 124 167 53 263 49 127 109
200314 31 201 78 302 149 215 95 166 26 212 21 232 133 283 108 112 248 188 9 183 152
2004192 224 123 279 60 114 163 5 265 270 250 59 8 112 204 64 294 227 232 89 159 87
2005156 22 85 23 147 256 154 195 210 115 51 304 108 156 66 209 44 103 176 257 260
200619 11 10 27 21 14 75 19 99 258 69 12 160 202 149 171 277 145 297 292 224 167 97
200781 70 83 29 24 67 97 37 25 62 73 104 282 2 61 220 293 33 160 246 273 271 6 65
200894 51 260 63 135 110 289 247 38 140 55 222 296 98 231 18 211 265 226 126 38 52
2009192 180 305 258 25 194 139 246 229 147 212 30 174 254 195 254 239 72 33 28 259
2010131 18 167 141 205 170 118 28 127 65 182 220 75 281 281 237 113 92 57 137 113
201148 12 116 78 128 215 51 42 232 177 22 129 68 168 291 161 ^
2012653 0 296 275 228 174 34 136 67 229 218 158 158 24 149 13 223 271 225 186 41 59
201352 234 302 20 214 21 295 202 282 46 106 240 249 29 262 4 2 87 271 15 4 136 269
2014100 188 263 182 1 14 94 270 76 240 220 207 156 109 26 64 136 96 51 17 53 134 47
201553 239 176 83 134 152 106 38 71 59 157 287 25 298 190 44 123 121 235 241 91 206
201683 239 205 212 240 47 82 61 206 285 110 175 10 264 24 254 66 253 166 201 209
2017176 54 5 46 211 62 48 231 238 27 213 6 224 210 220 102 103 3 131 88 113 268 56
201864 165 225 81 219 29 157 258 279 192 295 68 100 217 9 288 203 297 117 98 302
2019193 32 116 122 250 236 7 268 27 242 135 23 105 196 125 238 305 84 283 22 234
2020197 274 184 50 12 179 147 127 153 45 33 63 121 101 59 262 109 131 193 166 67 27
202140 188 53 172 148 142 224 37 95 7 200 31 177 127 258 174 63 265 97 124 194 181
202262 250 102 132 132 237 290 89 291 267 290 118 37 66 185 94 60 201 104 47 255
2023110 70 188 158 129 278 43 118 247 248 14 267 12 247 143 268 161 117 271 120 57
2024242 164 76 211 91 101 261 133 3 236 217 143 163 32 87 69 144 34 31 245 123 16
2025182 135 196 230 60 28 286 259 45 62 116 227 303 35 285 244 50 146 54 283 300
2026105 91 72 208 27 108 260 194 8 244 79 199 84 178 276 128 302 298 161 222 17 226
2027259 218 187 287 130 44 296 246 99 144 139 160 44 18 299 205 39 115 183 179 13
2028252 17 255 81 17 82 263 153 255 215 199 294 53 105 301 254 37 200 60 306 233
2029153 150 86 93 16 77 82 90 28 84 5 151 33 92 250 207 261 238 132 266 112 119 186
2030243 6 22 32 19 73 79 26 35 7 66 80 41 30 306 128 24 44 191 117 69 249 163 137
2031140 99 39 10 54 149 42 276 301 120 162 64 270 47 187 114 5 180 86 198 145 183
2032284 66 51 219 231 104 152 1 216 272 164 181 264 197 72 237 156 214 155 170 31
203372 74 152 279 87 242 269 205 241 293 77 284 37 229 189 29 128 129 173 297 12 45
2034272 298 56 93 294 24 283 195 52 61 177 232 4 280 34 241 120 28 113 134 181 235
203568 273 35 180 191 251 251 78 260 89 186 138 184 223 61 43 50 175 107 6 195 81
2036114 207 127 56 303 169 160 73 147 98 100 15 138 11 98 273 140 2 221 146 227 101
203788 8 139 26 169 189 202 253 300 76 38 273 6 51 85 49 275 55 49 170 233 19 275
2038257 303 64 31 43 252 122 77 111 219 58 286 288 174 168 11 203 19 170 204 197
2039169 55 20 41 203 124 299 234 92 145 78 155 36 156 243 208 200 233 48 21 56 198
204040 54 178 171 75 196 96 185 199 189 306 23 278 14 296 141 46 38 244 184 21 190
204173 252 151 130 217 114 34 2 192 93 121 206 112 292 4 107 216 70 293 112 ^
2042646 1 159 169 19 137 73 163 274 77 302 211 280 167 104 14 126 76 173 210 133
2043225 46 90 230 262 278 252 51 67 39 284 306 41 147 300 278 216 239 35 75 60 217
204443 98 235 257 267 185 61 3 95 207 71 230 280 149 233 33 144 308 283 211 228 38
2045155 305 273 275 172 115 11 116 140 117 287 59 36 222 2 36 206 303 49 152 295 28
2046219 249 280 131 53 291 162 161 84 142 14 160 264 141 246 288 136 287 41 165 241
204720 198 7 304 144 274 95 173 192 262 244 64 13 31 263 64 65 160 282 82 227 270
2048213 177 40 70 119 150 53 34 291 180 102 65 124 161 50 263 46 124 109 300 5 28
2049201 69 299 149 215 92 163 17 206 12 229 133 277 105 109 248 185 9 183 146 189
2050218 120 279 54 111 163 308 265 270 247 56 8 106 204 61 294 224 226 89 153 81
2051150 19 85 14 144 256 154 192 210 115 45 304 108 153 63 209 38 103 176 254 257
205210 5 10 21 18 8 72 16 93 258 69 6 157 202 146 171 277 139 297 286 221 164 94 78
205370 83 29 21 67 91 34 16 59 70 101 279 2 52 214 290 33 160 246 270 265 306 59 88
205442 260 54 129 104 289 247 38 137 55 222 293 95 225 12 211 262 226 123 32 49 186
2055174 305 255 25 191 133 243 226 141 212 30 168 251 195 254 239 69 24 28 253 128
20569 167 138 202 164 112 19 121 65 176 220 69 281 278 234 110 86 57 137 107 42 3
2057113 78 122 212 48 39 232 177 22 129 68 168 285 74 292 275 224 174 30 134 63 227
2058218 154 158 22 147 9 219 267 221 182 35 59 52 230 298 20 214 15 291 198 282 46
2059106 238 249 23 260 2 85 271 15 307 136 269 100 184 259 182 308 8 90 266 74 240
2060216 205 156 107 24 62 132 96 45 13 49 134 45 47 237 172 81 132 148 104 32 67 57
2061155 287 23 294 190 38 121 117 235 239 87 204 79 235 205 208 236 43 80 55 206
2062285 108 171 4 260 20 250 66 253 162 197 205 174 48 5 44 209 56 44 227 236 25
2063209 4 224 208 218 102 99 3 129 86 109 266 56 60 165 223 79 217 25 157 254 275
2064190 295 62 98 217 7 286 203 293 113 96 302 193 30 116 122 246 236 7 268 23 242
2065131 19 103 194 125 238 301 82 279 20 232 195 272 180 50 6 175 143 127 153 45 29
206657 121 99 55 258 105 127 189 166 61 21 36 188 53 307 170 148 138 220 35 93 1
2067198 25 175 125 256 172 63 261 97 122 194 177 58 250 100 132 130 233 290 85 289
2068265 288 118 37 60 183 94 60 199 102 47 253 110 68 186 156 125 274 43 114 243
2069244 12 263 12 245 141 264 159 117 269 118 55 240 164 76 207 89 101 261 131 1
2070232 213 143 161 32 83 65 142 32 31 245 123 14 178 135 192 228 56 26 286 255 43
207162 114 225 303 31 281 244 46 142 50 281 296 105 91 238 ^
2072647 0 200 27 104 252 186 240 79 199 84 174 268 128 298 294 153 218 17 218 259
2073214 187 283 122 40 292 238 95 136 131 156 36 18 299 197 31 107 179 179 1 252 13
2074255 73 5 82 259 145 247 211 191 286 49 97 293 250 29 192 56 298 225 149 146 86
207589 16 73 74 86 20 76 1 143 21 88 246 199 257 230 124 266 104 119 182 239 309 14
207620 7 61 71 26 23 3 58 80 33 22 302 124 24 44 191 113 57 241 155 133 140 99 35 6
207754 141 42 276 301 112 154 52 266 35 179 110 308 180 82 190 141 175 280 62 43
2078219 231 96 148 1 212 272 160 177 264 189 60 237 152 206 147 162 23 72 62 152
2079275 87 234 265 201 241 293 77 284 25 229 181 25 120 125 169 293 8 33 264 298 52
208093 290 12 283 191 44 53 169 224 4 272 22 233 120 16 113 126 181 227 64 269 31
2081176 183 251 243 70 256 85 186 138 184 223 61 31 38 175 107 6 187 81 114 207 119
208244 295 165 152 73 143 90 92 7 130 11 98 265 132 301 221 146 219 93 88 4 139 18
2083161 189 198 245 296 68 30 273 305 51 81 45 267 47 49 166 233 11 271 257 299 64
208427 35 248 114 69 111 211 58 282 288 166 164 7 199 15 170 196 197 169 51 12 41
2085195 116 295 234 92 145 74 155 24 148 243 208 200 229 48 21 48 194 40 50 178 167
208667 196 88 177 195 185 299 306 23 274 6 296 137 34 34 236 180 13 186 69 244 151
2087130 213 106 34 305 184 85 117 198 112 292 307 99 208 62 285 279 159 165 19 133
208871 159 274 75 300 209 276 163 104 10 126 72 171 208 131 225 40 90 230 262 274
2089248 45 65 39 280 304 39 147 300 278 216 235 35 75 58 213 37 94 233 253 267 185
209057 310 95 205 71 228 278 147 231 27 144 304 281 207 228 36 151 303 269 273 172
2091111 9 114 138 115 283 53 36 220 307 30 204 301 43 150 291 24 217 247 280 131 47
2092291 162 161 80 142 14 158 262 141 244 284 134 285 37 163 237 14 198 3 300 140
2093272 91 173 192 258 242 58 11 29 261 60 59 156 278 78 227 266 213 175 38 66 115
2094150 49 28 289 178 98 63 124 157 48 263 44 122 109 296 310 26 201 63 297 149 215
209590 161 11 202 6 227 133 273 103 107 248 183 9 183 142 187 214 118 279 50 109
2096163 306 265 270 245 54 8 102 204 59 294 222 222 89 149 77 146 17 85 8 142 256
2097154 190 210 115 41 304 108 151 61 209 34 103 176 252 255 4 1 10 17 16 4 70 14
209889 258 69 2 155 202 144 171 277 135 297 282 219 162 92 76 70 83 29 19 67 87 32
209910 57 68 99 277 2 46 210 288 33 160 246 268 261 302 55 84 36 260 48 125 100 289
2100247 38 135 55 222 291 93 221 8 211 260 226 121 28 47 182 170 305 253 25 189 129
2101241 224 137 212 30 164 249 195 254 239 86 ^
2102665 0 15 28 247 125 167 135 199 158 106 10 115 65 170 220 63 281 275 231 107 80
210357 137 101 36 306 110 78 116 209 45 36 232 177 22 129 68 168 279 74 286 275 218
2104174 24 131 57 224 218 148 158 19 144 3 213 261 215 176 26 59 52 224 292 20 214
21056 285 192 282 46 106 235 249 14 257 311 309 82 271 15 301 136 269 100 178 253
2106182 308 311 84 260 71 240 210 202 156 104 21 59 126 96 36 7 43 134 42 38 234
2107166 78 129 142 101 23 61 54 152 287 20 288 190 29 118 111 235 236 81 201 73 229
2108205 202 230 37 77 46 206 285 105 165 307 254 14 244 66 253 156 191 199 171 39 5
210941 206 47 38 221 233 22 203 1 224 205 215 102 93 3 126 83 103 263 56 54 165 220
211076 214 19 157 248 269 187 295 53 95 217 4 283 203 287 107 93 302 193 27 116 122
2111240 236 7 268 17 242 125 13 100 191 125 238 295 79 273 17 229 192 269 174 50
2112309 169 137 127 153 45 23 48 121 96 49 252 99 121 183 166 52 12 30 188 53 307
2113167 148 132 214 32 90 304 195 16 172 122 253 169 63 255 97 119 194 171 52 250
211497 132 127 227 290 79 286 262 285 118 37 51 180 94 60 196 99 47 250 110 65 183
2115153 119 268 43 108 237 238 9 257 12 242 138 258 156 117 266 115 52 237 164 76
2116201 86 101 261 128 310 226 207 143 158 32 77 59 139 29 31 245 123 11 172 135
2117186 225 50 23 286 249 40 62 111 222 303 25 275 244 40 136 44 278 290 105 91 62
2118198 27 103 250 184 310 239 79 199 84 173 266 128 297 293 151 217 17 216 259 213
2119187 282 120 39 291 236 94 134 129 155 34 18 299 195 29 105 178 179 310 252 12
2120255 71 2 82 258 143 245 210 189 284 48 95 291 249 27 190 55 296 223 148 145 86
212188 16 72 72 85 18 74 141 18 87 245 197 256 228 122 266 102 119 181 238 308 12
212217 4 58 69 26 20 2 56 80 31 20 301 123 24 44 191 112 54 239 153 132 140 99 34 5
212354 139 42 276 301 110 152 49 265 32 177 109 307 180 81 188 140 173 279 61 41
2124219 231 94 147 1 211 272 159 176 264 187 57 237 151 204 145 160 21 72 59 152
2125274 87 232 264 200 241 293 77 284 22 229 179 24 118 124 168 292 7 30 262 298 51
212693 289 9 283 190 42 51 167 222 4 270 19 231 120 13 113 124 181 225 63 268 30
2127175 181 251 241 68 255 84 186 138 184 223 61 28 35 175 107 6 185 81 114 207 117
212841 293 164 150 73 142 88 90 5 128 11 98 263 130 299 221 146 217 91 88 3 139 16
2129159 189 197 243 295 66 28 273 303 51 80 44 265 45 49 165 233 9 270 257 298 64
213026 33 247 112 67 111 209 58 281 288 164 163 6 198 14 170 194 197 169 50 10 41
2131193 114 294 234 92 145 73 155 21 146 243 208 200 228 48 21 46 193 40 49 178 166
213265 196 86 175 194 184 297 306 23 273 206 ^
2133641 0 296 134 25 31 230 177 7 183 66 238 151 130 210 100 34 302 178 79 114 192
2134112 292 304 93 202 56 279 273 159 159 19 127 68 153 274 72 297 206 270 157 104
21354 126 66 168 205 128 225 31 90 230 262 268 242 36 62 39 274 301 36 147 300 278
2136216 229 35 75 55 207 28 88 230 247 267 185 51 307 95 202 71 225 275 144 228 18
2137144 298 278 201 228 33 145 300 263 270 172 105 6 111 135 112 277 44 36 217 301
213821 201 298 34 147 285 18 214 244 280 131 38 291 162 161 74 142 14 155 259 141
2139241 278 131 282 31 160 231 5 198 311 294 134 269 85 173 192 252 239 49 8 26 258
214054 50 150 272 72 227 260 213 172 35 60 109 150 43 19 286 175 92 60 124 151 45
2141263 41 119 109 290 304 23 201 54 294 149 215 87 158 2 196 311 224 133 267 100
2142104 248 180 9 183 136 184 208 115 279 44 106 163 303 265 270 242 51 8 96 204 56
2143294 219 216 89 143 71 140 14 85 313 139 256 154 187 210 115 35 304 108 148 58
2144209 28 103 176 249 252 309 309 10 11 13 312 67 11 83 258 69 310 152 202 141 171
2145277 129 297 276 216 159 89 73 70 83 29 16 67 81 29 1 54 65 96 274 2 37 204 285
214633 160 246 265 255 296 49 78 27 260 39 119 94 289 247 38 132 55 222 288 90 215
21472 211 257 226 118 22 44 176 164 305 250 25 186 123 238 221 131 212 30 158 246
2148195 254 239 64 9 28 243 123 308 167 133 197 154 102 4 111 65 166 220 59 281 273
2149229 105 76 57 137 97 32 302 108 78 112 207 43 34 232 177 22 129 68 168 275 74
2150282 275 214 174 20 129 53 222 218 144 158 17 142 313 209 257 211 172 20 59 52
2151220 288 20 214 281 188 282 46 106 233 249 8 255 311 309 80 271 15 297 136 269
2152100 174 249 182 308 307 80 256 69 240 206 200 156 102 19 57 122 96 30 3 39 134
215340 32 232 162 76 127 138 99 17 57 52 150 287 18 284 190 23 116 107 235 234 77
2154199 69 225 205 198 226 33 75 40 206 285 103 161 303 250 10 240 66 253 152 187
2155195 169 33 5 39 204 41 34 217 231 20 199 313 224 203 213 102 89 3 124 81 99 261
215656 50 165 218 74 212 15 157 244 265 185 295 47 93 217 2 281 203 283 103 91 302
2157193 25 116 122 236 236 7 268 13 242 121 9 98 189 125 238 291 77 269 15 227 190
2158267 170 50 305 165 133 127 153 45 19 42 121 94 45 248 95 117 179 166 46 6 26
2159188 53 307 165 148 128 210 30 88 300 193 10 170 120 251 167 63 251 97 117 194
2160167 48 250 95 132 125 223 290 75 284 260 283 118 37 45 178 94 60 194 97 47 248
2161110 63 181 151 115 264 43 104 233 234 7 253 12 240 136 254 154 117 264 113 50
2162235 164 76 197 84 101 261 126 310 222 203 143 276 ^
2163656 0 32 69 51 135 25 31 245 123 7 164 135 178 221 42 19 286 241 36 62 107 218
2164303 17 267 244 32 128 36 274 282 105 91 54 190 27 99 242 176 306 235 79 199 84
2165169 258 128 293 289 143 213 17 208 259 209 187 278 112 35 287 228 90 126 121
2166151 26 18 299 187 21 97 174 179 302 252 8 255 63 306 82 254 135 237 206 181 276
216744 87 283 245 19 182 51 288 215 144 141 86 84 16 68 64 81 10 66 312 133 6 83
2168241 189 252 220 114 266 94 119 177 234 304 4 5 308 46 61 26 8 314 48 80 23 12
2169297 119 24 44 191 108 42 231 145 128 140 99 30 1 54 131 42 276 301 102 144 37
2170261 20 169 105 303 180 77 180 136 165 275 57 33 219 231 86 143 1 207 272 155
2171172 264 179 45 237 147 196 137 152 13 72 47 152 270 87 224 260 196 241 293 77
2172284 10 229 171 20 110 120 164 288 3 18 254 298 47 93 285 313 283 186 34 43 159
2173214 4 262 7 223 120 1 113 116 181 217 59 264 26 171 173 251 233 60 251 80 186
2174138 184 223 61 16 23 175 107 6 177 81 114 207 109 29 285 160 142 73 138 80 82
2175313 120 11 98 255 122 291 221 146 209 83 88 315 139 8 151 189 193 235 291 58 20
2176273 295 51 76 40 257 37 49 161 233 1 266 257 294 64 22 25 243 104 59 111 201 58
2177277 288 156 159 2 194 10 170 186 197 169 46 2 41 185 106 290 234 92 145 69 155
21789 138 243 208 200 224 48 21 38 189 40 45 178 162 57 196 78 167 190 180 289 306
217923 269 312 296 132 19 29 226 175 3 181 64 234 151 130 208 96 34 300 174 75 112
2180188 112 292 302 89 198 52 275 269 159 155 19 123 66 149 274 70 295 204 266 153
2181104 126 62 166 203 126 225 25 90 230 262 264 238 30 60 39 270 299 34 147 300
2182278 216 225 35 75 53 203 22 84 228 243 267 185 47 305 95 200 71 223 273 142 226
218312 144 294 276 197 228 31 141 298 259 268 172 101 4 109 133 110 273 38 36 215
2184297 15 199 296 28 145 281 14 212 242 280 131 32 291 162 161 70 142 14 153 257
2185141 239 274 129 280 27 158 227 315 198 309 290 130 267 81 173 192 248 237 43 6
218624 256 50 44 146 268 68 227 256 213 170 33 56 105 150 39 13 284 173 88 58 124
2187147 43 263 39 117 109 286 300 21 201 48 292 149 215 85 156 312 192 307 222 133
2188263 98 102 248 178 9 183 132 182 204 113 279 40 104 163 301 265 270 240 49 8 92
2189204 54 294 217 212 89 139 67 136 12 85 309 137 256 154 185 210 115 31 304 108
2190146 56 209 24 103 176 247 250 305 307 10 7 11 310 65 9 79 258 69 308 150 202
2191139 171 277 125 297 272 214 157 87 71 70 83 29 14 67 77 27 311 52 63 94 272 2
219231 200 283 33 160 246 263 251 292 45 74 21 260 33 115 90 289 247 38 130 55 222
2193286 88 211 227 ^
2194668 0 211 254 226 115 16 41 170 158 305 247 25 183 117 235 218 125 212 30 152
2195243 195 254 239 61 28 237 120 302 167 130 194 148 96 312 105 65 160 220 53 281
2196270 226 102 70 57 137 91 26 296 105 78 106 204 40 31 232 177 22 129 68 168 269
219774 276 275 208 174 14 126 47 219 218 138 158 14 139 310 203 251 205 166 11 59
219852 214 282 20 214 308 275 182 282 46 106 230 249 316 252 311 309 77 271 15 291
2199136 269 100 168 243 182 308 301 74 250 66 240 200 197 156 99 16 54 116 96 21
2200314 33 134 37 23 229 156 73 124 132 96 8 51 49 147 287 15 278 190 14 113 101
2201235 231 71 196 63 219 205 192 220 27 72 31 206 285 100 155 297 244 4 234 66 253
2202146 181 189 166 24 5 36 201 32 28 211 228 17 193 313 224 200 210 102 83 3 121
220378 93 258 56 44 165 215 71 209 9 157 238 259 182 295 38 90 217 316 278 203 277
220497 88 302 193 22 116 122 230 236 7 268 7 242 115 3 95 186 125 238 285 74 263 12
2205224 187 264 164 50 299 159 127 127 153 45 13 33 121 91 39 242 89 111 173 166 37
2206314 20 188 53 307 162 148 122 204 27 85 294 190 1 167 117 248 164 63 245 97 114
2207194 161 42 250 92 132 122 217 290 69 281 257 280 118 37 36 175 94 60 191 94 47
2208245 110 60 178 148 109 258 43 98 227 228 4 247 12 237 133 248 151 117 261 110
220947 232 164 76 191 81 101 261 123 310 216 197 143 153 32 67 49 134 24 31 245 123
22106 162 135 176 220 40 18 286 239 35 62 106 217 303 15 265 244 30 126 34 273 280
2211105 91 52 188 27 98 240 174 305 234 79 199 84 168 256 128 292 288 141 212 17
2212206 259 208 187 277 110 34 286 226 89 124 119 150 24 18 299 185 19 95 173 179
2213300 252 7 255 61 304 82 253 133 235 205 179 274 43 85 281 244 17 180 50 286 213
2214143 140 86 83 16 67 62 80 8 64 312 131 3 82 240 187 251 218 112 266 92 119 176
2215233 303 2 2 306 43 59 26 5 314 46 80 21 10 296 118 24 44 191 107 39 229 143 127
2216140 99 29 54 129 42 276 301 100 142 34 260 17 167 104 302 180 76 178 135 163
2217274 56 31 219 231 84 142 1 206 272 154 171 264 177 42 237 146 194 135 150 11 72
221844 152 269 87 222 259 195 241 293 77 284 7 229 169 19 108 119 163 287 2 15 252
2219298 46 93 284 311 283 185 32 41 157 212 4 260 4 221 120 315 113 114 181 215 58
2220263 25 170 171 251 231 58 250 79 186 138 184 223 61 13 20 175 107 6 175 81 114
2221207 107 26 283 159 140 73 137 78 80 312 118 11 98 253 120 289 221 146 207 81 88
2222315 139 6 149 189 192 233 290 56 18 273 293 51 75 39 255 35 49 160 233 316 265
2223257 293 64 21 23 242 102 57 111 199 58 276 288 154 158 1 193 9 170 184 197 169
222445 41 183 104 289 234 92 145 68 155 6 136 243 208 203 ^
2225656 0 221 48 21 32 186 40 42 178 159 51 196 72 161 187 177 283 306 23 266 309
2226296 129 10 26 220 172 316 178 61 228 151 130 205 90 34 297 168 69 109 182 112
2227292 299 83 192 46 269 263 159 149 19 117 63 143 274 67 292 201 260 147 104 313
2228126 56 163 200 123 225 16 90 230 262 258 232 21 57 39 264 296 31 147 300 278
2229216 219 35 75 50 197 13 78 225 237 267 185 41 302 95 197 71 220 270 139 223 3
2230144 288 273 191 228 28 135 295 253 265 172 95 1 106 130 107 267 29 36 212 291 6
2231196 293 19 142 275 8 209 239 280 131 23 291 162 161 64 142 14 150 254 141 236
2232268 126 277 21 155 221 309 198 306 284 124 264 75 173 192 242 234 34 3 21 253
223344 35 140 262 62 227 250 213 167 30 50 99 150 33 4 281 170 82 55 124 141 40 263
223436 114 109 280 294 18 201 39 289 149 215 82 153 306 186 301 219 133 257 95 99
2235248 175 9 183 126 179 198 110 279 34 101 163 298 265 270 237 46 8 86 204 51 294
2236214 206 89 133 61 130 9 85 303 134 256 154 182 210 115 25 304 108 143 53 209 18
2237103 176 244 247 299 304 10 1 8 307 62 6 73 258 69 305 147 202 136 171 277 119
2238297 266 211 154 84 68 70 83 29 11 67 71 24 305 49 60 91 269 2 22 194 280 33 160
2239246 260 245 286 39 68 12 260 24 109 84 289 247 38 127 55 222 283 85 205 311 211
2240252 226 113 12 39 166 154 305 245 25 181 113 233 216 121 212 30 148 241 195 254
2241239 59 313 28 233 118 298 167 128 192 144 92 308 101 65 156 220 49 281 268 224
2242100 66 57 137 87 22 292 103 78 102 202 38 29 232 177 22 129 68 168 265 74 272
2243275 204 174 10 124 43 217 218 134 158 12 137 308 199 247 201 162 5 59 52 210
2244278 20 214 304 271 178 282 46 106 228 249 312 250 311 309 75 271 15 287 136 269
2245100 164 239 182 308 297 70 246 64 240 196 195 156 97 14 52 112 96 15 312 29 134
224635 17 227 152 71 122 128 94 2 47 47 145 287 13 274 190 8 111 97 235 229 67 194
224759 215 205 188 216 23 70 25 206 285 98 151 293 240 230 66 253 142 177 185 164
224818 5 34 199 26 24 207 226 15 189 313 224 198 208 102 79 3 119 76 89 256 56 40
2249165 213 69 207 5 157 234 255 180 295 32 88 217 316 276 203 273 93 86 302 193 20
2250116 122 226 236 7 268 3 242 111 318 93 184 125 238 281 72 259 10 222 185 262
2251160 50 295 155 123 127 153 45 9 27 121 89 35 238 85 107 169 166 31 310 16 188
225253 307 160 148 118 200 25 83 290 188 314 165 115 246 162 63 241 97 112 194 157
225338 250 90 132 120 213 290 65 279 255 278 118 37 30 173 94 60 189 92 47 243 110
225458 176 146 105 254 43 94 223 224 2 243 12 235 131 244 149 117 259 108 45 230
2255164 76 187 79 101 261 109 ^
2256656 0 310 208 189 143 149 32 59 41 130 20 31 245 123 2 154 135 168 216 32 14
2257286 231 31 62 102 213 303 7 257 244 22 118 26 269 272 105 91 44 180 27 94 232
2258166 301 230 79 199 84 164 248 128 288 284 133 208 17 198 259 204 187 273 102 30
2259282 218 85 116 111 146 16 18 299 177 11 87 169 179 292 252 3 255 53 296 82 249
2260125 227 201 171 266 39 77 273 240 9 172 46 278 205 139 136 86 79 16 63 54 76 56
2261312 123 312 78 236 179 247 210 104 266 84 119 172 229 299 315 311 298 31 51 26
2262314 314 38 80 13 2 292 114 24 44 191 103 27 221 135 123 140 99 25 317 54 121 42
2263276 301 92 134 22 256 5 159 100 298 180 72 170 131 155 270 52 23 219 231 76 138
22641 202 272 150 167 264 169 30 237 142 186 127 142 3 72 32 152 265 87 214 255 191
2265241 293 77 284 316 229 161 15 100 115 159 283 319 3 244 298 42 93 280 303 283
2266181 24 33 149 204 4 252 313 213 120 307 113 106 181 207 54 259 21 166 163 251
2267223 50 246 75 186 138 184 223 61 1 8 175 107 6 167 81 114 207 99 14 275 155 132
226873 133 70 72 308 110 11 98 245 112 281 221 146 199 73 88 315 139 319 141 189
2269188 225 286 48 10 273 285 51 71 35 247 27 49 156 233 312 261 257 289 64 17 15
2270238 94 49 111 191 58 272 288 146 154 318 189 5 170 176 197 169 41 313 41 175 96
2271285 234 92 145 64 155 315 128 243 208 200 219 48 21 28 184 40 40 178 157 47 196
227268 157 185 175 279 306 23 264 307 296 127 4 24 216 170 314 176 59 224 151 130
2273203 86 34 295 164 65 107 178 112 292 297 79 188 42 265 259 159 145 19 113 61
2274139 274 65 290 199 256 143 104 311 126 52 161 198 121 225 10 90 230 262 254 228
227515 55 39 260 294 29 147 300 278 216 215 35 75 48 193 7 74 223 233 267 185 37
2276300 95 195 71 218 268 137 221 318 144 284 271 187 228 26 131 293 249 263 172 91
2277320 104 128 105 263 23 36 210 287 194 291 13 140 271 4 207 237 280 131 17 291
2278162 161 60 142 14 148 252 141 234 264 124 275 17 153 217 305 198 304 280 120
2279262 71 173 192 238 232 28 1 19 251 40 29 136 258 58 227 246 213 165 28 46 95
2280150 29 319 279 168 78 53 124 137 38 263 34 112 109 276 290 16 201 33 287 149
2281215 80 151 302 182 297 217 133 253 93 97 248 173 9 183 122 177 194 108 279 30
228299 163 296 265 270 235 44 8 82 204 49 294 212 202 89 129 57 126 7 85 299 132
2283256 154 180 210 115 21 304 108 141 51 209 14 103 176 242 245 295 302 10 318 6
2284305 60 4 69 258 69 303 145 202 134 171 277 115 297 262 209 152 82 66 70 83 29 9
228567 67 22 301 47 58 89 267 2 16 190 278 33 160 246 258 241 282 35 64 6 260 18
2286105 80 289 247 38 125 55 292 ^
2287<D
2288
2289H>SHS Type 3 Strings<H
2290D>
229145 0 14 5 3 1 4 16 12 20 1 6 15 11 18 4 17 16 6 10 3 2 9 9 14 6 2 8 6 7 10 17
229212 20 6 7 5 16 1 4 2 17 10 15 8 20 1 ^
2293<D
diff --git a/src/lib/libssl/src/fips/sha1/standalone.sha1 b/src/lib/libssl/src/fips/sha1/standalone.sha1
new file mode 100644
index 0000000000..7279c82541
--- /dev/null
+++ b/src/lib/libssl/src/fips/sha1/standalone.sha1
@@ -0,0 +1,6 @@
1HMAC-SHA1(fips_sha1dgst.c)= 10575600a9540eb15188a7d3b0b031e60aedbc18
2HMAC-SHA1(fips_sha1_selftest.c)= 98910a0c85eff1688bd7adb23e738dc75b39546e
3HMAC-SHA1(asm/sx86-elf.s)= ae66fb23ab8e1a2287e87a0a2dd30a4b9039fe63
4HMAC-SHA1(fips_standalone_sha1.c)= 93203c569097189b47a0085bc9fc55193867d4ce
5HMAC-SHA1(fips_sha_locl.h)= c1b4c82eec5f0ee119658456690f3ea9d77ed1c5
6HMAC-SHA1(fips_md32_common.h)= 08a057a7b94acf5df4301ea6c894ce14082e1ec4
diff --git a/src/lib/libssl/src/test/sha1hashes.txt b/src/lib/libssl/src/test/sha1hashes.txt
new file mode 100644
index 0000000000..4adfa197e9
--- /dev/null
+++ b/src/lib/libssl/src/test/sha1hashes.txt
@@ -0,0 +1,342 @@
1# Configuration information for "SHA-1 Test"
2# SHA tests are configured for BYTE oriented implementations
3H>SHS Type 1 Hashes<H
4D>
5DA39A3EE5E6B4B0D3255BFEF95601890AFD80709 ^
63CDF2936DA2FC556BFA533AB1EB59CE710AC80E5 ^
719C1E2048FA7393CFBF2D310AD8209EC11D996E5 ^
8CA775D8C80FAA6F87FA62BECA6CA6089D63B56E5 ^
971AC973D0E4B50AE9E5043FF4D615381120A25A0 ^
10A6B5B9F854CFB76701C3BDDBF374B3094EA49CBA ^
11D87A0EE74E4B9AD72E6847C87BDEEB3D07844380 ^
121976B8DD509FE66BF09C9A8D33534D4EF4F63BFD ^
135A78F439B6DB845BB8A558E4CEB106CD7B7FF783 ^
14F871BCE62436C1E280357416695EE2EF9B83695C ^
1562B243D1B780E1D31CF1BA2DE3F01C72AEEA0E47 ^
161698994A273404848E56E7FDA4457B5900DE1342 ^
17056F4CDC02791DA7ED1EB2303314F7667518DEEF ^
189FE2DA967BD8441EEA1C32DF68DDAA9DC1FC8E4B ^
1973A31777B4ACE9384EFA8BBEAD45C51A71ABA6DD ^
203F9D7C4E2384EDDABFF5DD8A31E23DE3D03F42AC ^
214814908F72B93FFD011135BEE347DE9A08DA838F ^
220978374B67A412A3102C5AA0B10E1A6596FC68EB ^
2344AD6CB618BD935460D46D3F921D87B99AB91C1E ^
2402DC989AF265B09CF8485640842128DCF95E9F39 ^
2567507B8D497B35D6E99FC01976D73F54AECA75CF ^
261EAE0373C1317CB60C36A42A867B716039D441F5 ^
279C3834589E5BFFAC9F50950E0199B3EC2620BEC8 ^
28209F7ABC7F3B878EE46CDF3A1FBB9C21C3474F32 ^
2905FC054B00D97753A9B3E2DA8FBBA3EE808CEF22 ^
300C4980EA3A46C757DFBFC5BAA38AC6C8E72DDCE7 ^
3196A460D2972D276928B69864445BEA353BDCFFD2 ^
32F3EF04D8FA8C6FA9850F394A4554C080956FA64B ^
33F2A31D875D1D7B30874D416C4D2EA6BAF0FFBAFE ^
34F4942D3B9E9588DCFDC6312A84DF75D05F111C20 ^
35310207DF35B014E4676D30806FA34424813734DD ^
364DA1955B2FA7C7E74E3F47D7360CE530BBF57CA3 ^
3774C4BC5B26FB4A08602D40CCEC6C6161B6C11478 ^
380B103CE297338DFC7395F7715EE47539B556DDB6 ^
39EFC72D99E3D2311CE14190C0B726BDC68F4B0821 ^
40660EDAC0A8F4CE33DA0D8DBAE597650E97687250 ^
41FE0A55A988B3B93946A63EB36B23785A5E6EFC3E ^
420CBDF2A5781C59F907513147A0DE3CC774B54BF3 ^
43663E40FEE5A44BFCB1C99EA5935A6B5BC9F583B0 ^
4400162134256952DD9AE6B51EFB159B35C3C138C7 ^
45CEB88E4736E354416E2010FC1061B3B53B81664B ^
46A6A2C4B6BCC41DDC67278F3DF4D8D0B9DD7784EF ^
47C23D083CD8820B57800A869F5F261D45E02DC55D ^
48E8AC31927B78DDEC41A31CA7A44EB7177165E7AB ^
49E864EC5DBAB0F9FF6984AB6AD43A8C9B81CC9F9C ^
50CFED6269069417A84D6DE2347220F4B858BCD530 ^
51D9217BFB46C96348722C3783D29D4B1A3FEDA38C ^
52DEC24E5554F79697218D317315FA986229CE3350 ^
5383A099DF7071437BA5495A5B0BFBFEFE1C0EF7F3 ^
54AA3198E30891A83E33CE3BFA0587D86A197D4F80 ^
559B6ACBEB4989CBEE7015C7D515A75672FFDE3442 ^
56B021EB08A436B02658EAA7BA3C88D49F1219C035 ^
57CAE36DAB8AEA29F62E0855D9CB3CD8E7D39094B1 ^
5802DE8BA699F3C1B0CB5AD89A01F2346E630459D7 ^
5988021458847DD39B4495368F7254941859FAD44B ^
6091A165295C666FE85C2ADBC5A10329DAF0CB81A0 ^
614B31312EAF8B506811151A9DBD162961F7548C4B ^
623FE70971B20558F7E9BAC303ED2BC14BDE659A62 ^
6393FB769D5BF49D6C563685954E2AECC024DC02D6 ^
64BC8827C3E614D515E83DEA503989DEA4FDA6EA13 ^
65E83868DBE4A389AB48E61CFC4ED894F32AE112AC ^
6655C95459CDE4B33791B4B2BCAAF840930AF3F3BD ^
6736BB0E2BA438A3E03214D9ED2B28A4D5C578FCAA ^
683ACBF874199763EBA20F3789DFC59572ACA4CF33 ^
6986BE037C4D509C9202020767D860DAB039CADACE ^
7051B57D7080A87394EEC3EB2E0B242E553F2827C9 ^
711EFBFA78866315CE6A71E457F3A750A38FACAB41 ^
7257D6CB41AEEC20236F365B3A490C61D0CFA39611 ^
73C532CB64B4BA826372BCCF2B4B5793D5B88BB715 ^
7415833B5631032663E783686A209C6A2B47A1080E ^
75D04F2043C96E10CD83B574B1E1C217052CD4A6B2 ^
76E8882627C64DB743F7DB8B4413DD033FC63BEB20 ^
77CD2D32286B8867BC124A0AF2236FC74BE3622199 ^
78019B70D745375091ED5C7B218445EC986D0F5A82 ^
79E5FF5FEC1DADBAED02BF2DAD4026BE6A96B3F2AF ^
806F4E23B3F2E2C068D13921FE4E5E053FFED4E146 ^
8125E179602A575C915067566FBA6DA930E97F8678 ^
8267DED0E68E235C8A523E051E86108EEB757EFBFD ^
83AF78536EA83C822796745556D62A3EE82C7BE098 ^
8464D7AC52E47834BE72455F6C64325F9C358B610D ^
859D4866BAA3639C13E541F250FFA3D8BC157A491F ^
862E258811961D3EB876F30E7019241A01F9517BEC ^
878E0EBC487146F83BC9077A1630E0FB3AB3C89E63 ^
88CE8953741FFF3425D2311FBBF4AB481B669DEF70 ^
89789D1D2DAB52086BD90C0E137E2515ED9C6B59B5 ^
90B76CE7472700DD68D6328B7AA8437FB051D15745 ^
91F218669B596C5FFB0B1C14BD03C467FC873230A0 ^
921FF3BDBE0D504CB0CDFAB17E6C37ABA6B3CFFDED ^
932F3CBACBB14405A4652ED52793C1814FD8C4FCE0 ^
94982C8AB6CE164F481915AF59AAED9FFF2A391752 ^
955CD92012D488A07ECE0E47901D0E083B6BD93E3F ^
9669603FEC02920851D4B3B8782E07B92BB2963009 ^
973E90F76437B1EA44CF98A08D83EA24CECF6E6191 ^
9834C09F107C42D990EB4881D4BF2DDDCAB01563AE ^
99474BE0E5892EB2382109BFC5E3C8249A9283B03D ^
100A04B4F75051786682483252438F6A75BF4705EC6 ^
101BE88A6716083EB50ED9416719D6A247661299383 ^
102C67E38717FEE1A5F65EC6C7C7C42AFC00CD37F04 ^
103959AC4082388E19E9BE5DE571C047EF10C174A8D ^
104BAA7AA7B7753FA0ABDC4A541842B5D238D949F0A ^
105351394DCEBC08155D100FCD488578E6AE71D0E9C ^
106AB8BE94C5AF60D9477EF1252D604E58E27B2A9EE ^
1073429EC74A695FDD3228F152564952308AFE0680A ^
108907FA46C029BC67EAA8E4F46E3C2A232F85BD122 ^
1092644C87D1FBBBC0FC8D65F64BCA2492DA15BAAE4 ^
110110A3EEB408756E2E81ABAF4C5DCD4D4C6AFCF6D ^
111CD4FDC35FAC7E1ADB5DE40F47F256EF74D584959 ^
1128E6E273208AC256F9ECCF296F3F5A37BC8A0F9F7 ^
113FE0606100BDBC268DB39B503E0FDFE3766185828 ^
1146C63C3E58047BCDB35A17F74EEBA4E9B14420809 ^
115BCC2BD305F0BCDA8CF2D478EF9FE080486CB265F ^
116CE5223FD3DD920A3B666481D5625B16457DCB5E8 ^
117948886776E42E4F5FAE1B2D0C906AC3759E3F8B0 ^
1184C12A51FCFE242F832E3D7329304B11B75161EFB ^
119C54BDD2050504D92F551D378AD5FC72C9ED03932 ^
1208F53E8FA79EA09FD1B682AF5ED1515ECA965604C ^
1212D7E17F6294524CE78B33EAB72CDD08E5FF6E313 ^
12264582B4B57F782C9302BFE7D07F74AA176627A3A ^
1236D88795B71D3E386BBD1EB830FB9F161BA98869F ^
12486AD34A6463F12CEE6DE9596ABA72F0DF1397FD1 ^
1257EB46685A57C0D466152DC339C8122548C757ED1 ^
126E7A98FB0692684054407CC221ABC60C199D6F52A ^
12734DF1306662206FD0A5FC2969A4BEEC4EB0197F7 ^
12856CF7EBF08D10F0CB9FE7EE3B63A5C3A02BCB450 ^
1293BAE5CB8226642088DA760A6F78B0CF8EDDEA9F1 ^
1306475DF681E061FA506672C27CBABFA9AA6DDFF62 ^
13179D81991FA4E4957C8062753439DBFD47BBB277D ^
132BAE224477B20302E881F5249F52EC6C34DA8ECEF ^
133EDE4DEB4293CFE4138C2C056B7C46FF821CC0ACC ^
134<D
135
136H>SHS Type 2 Hashes<H
137D>
138A771FA5C812BD0C9596D869EC99E4F4AC988B13F ^
139E99D566212BBBCEEE903946F6100C9C96039A8F4 ^
140B48CE6B1D13903E3925AE0C88CB931388C013F9C ^
141E647D5BAF670D4BF3AFC0A6B72A2424B0C64F194 ^
14265C1CD932A06B05CD0B43AFB3BC7891F6BCEF45C ^
14370FFAE353A5CD0F8A65A8B2746D0F16281B25EC7 ^
144CC8221F2B829B8CF39646BF46888317C3EB378EA ^
14526ACCC2D6D51FF7BF3E5895588907765111BB69B ^
14601072915B8E868D9B28E759CF2BC1AEA4BB92165 ^
1473016115711D74236ADF0C371E47992F87A428598 ^
148BF30417999C1368F008C1F19FECA4D18A5E1C3C9 ^
14962BA49087185F2742C26E1C1F4844112178BF673 ^
150E1F6B9536F384DD3098285BBFD495A474140DC5A ^
151B522DAE1D67726EBA7C4136D4E2F6D6D645AC43E ^
152E9A021C3EB0B9F2C710554D4BF21B19F78E09478 ^
153DF13573188F3BF705E697A3E1F580145F2183377 ^
154188835CFE52ECFA0C4135C2825F245DC29973970 ^
15541B615A34EE2CEC9D84A91B141CFAB115821950B ^
156AB3DD6221D2AFE6613B815DA1C389EEC74AA0337 ^
1570706D414B4AA7FB4A9051AA70D6856A7264054FB ^
1583CBF8151F3A00B1D5A809CBB8C4F3135055A6BD1 ^
159DA5D6A0319272BBCCEA63ACFA6799756FFDA6840 ^
160FB4429C95F6277B346D3B389413758DFFFEEDC98 ^
1612C6E30D9C895B42DCCCFC84C906EC88C09B20DE1 ^
1623DE3189A5E19F225CDCE254DFF23DACD22C61363 ^
16393530A9BC9A817F6922518A73A1505C411D05DA2 ^
164E31354345F832D31E05C1B842D405D4BD4588EC8 ^
1653FF76957E80B60CF74D015AD431FCA147B3AF232 ^
16634AE3B806BE143A84DCE82E4B830EB7D3D2BAC69 ^
167D7447E53D66BB5E4C26E8B41F83EFD107BF4ADDA ^
16877DD2A4482705BC2E9DC96EC0A13395771AC850C ^
169EAA1465DB1F59DE3F25EB8629602B568E693BB57 ^
1709329D5B40E0DC43AA25FED69A0FA9C211A948411 ^
171E94C0B6AA62AA08C625FAF817DDF8F51EC645273 ^
1727FF02B909D82AD668E31E547E0FB66CB8E213771 ^
1735BB3570858FA1744123BAC2873B0BB9810F53FA1 ^
174905F43940B3591CE39D1145ACB1ECA80AB5E43CD ^
175336C79FBD82F33E490C577E3F791C3CBFE842AFF ^
1765C6D07A6B44F7A75A64F6CE592F3BAE91E022210 ^
1777E0D3E9D33127F4A30EB8D9C134A58409FA8695B ^
1789A5F50DFCFB19286206C229019F0ABF25283028C ^
179DCA737E269F9D8626D488988C996E06B352C0708 ^
180B8FFC1D4972FCE63241E0E77850AC46DDE75DBFA ^
181E9C9BF41C8549354151B977003CE1D830BE667DB ^
1820942908960B54F96CB43452E583F4F9CB66E398A ^
183FCE34051C34D4B81B85DDC4B543CDE8007E284B3 ^
18461E8916532503627F4024D13884640A46F1D61D4 ^
185F008D5D7853B6A17B7466CD9E18BD135E520FAF4 ^
186BD8D2E873CF659B5C77AAC1616827EF8A3B1A3B3 ^
187B25A04DD425302ED211A1C2412D2410FA10C63B6 ^
188A404E21588123E0893718B4B44E91414A785B91F ^
189A1E13BC55BF6DAD83CF3AABDA3287AD68681EA64 ^
190D5FD35FFABED6733C92365929DF0FB4CAE864D15 ^
191C12E9C280EE9C079E0506FF89F9B20536E0A83EF ^
192E22769DC00748A9BBD6C05BBC8E81F2CD1DC4E2D ^
193F29835A93475740E888E8C14318F3CA45A3C8606 ^
1941A1D77C6D0F97C4B620FAA90F3F8644408E4B13D ^
1954EC84870E9BDD25F523C6DFB6EDD605052CA4EAA ^
196D689513FED08B80C39B67371959BC4E3FECB0537 ^
197C4FED58F209FC3C34AD19F86A6DACADC86C04D33 ^
198051888C6D00029C176DE792B84DECE2DC1C74B00 ^
1991A3540BEE05518505827954F58B751C475AEECE0 ^
200DFA19180359D5A7A38E842F172359CAF4208FC05 ^
2017B0FA84EBBCFF7D7F4500F73D79660C4A3431B67 ^
2029E886081C9ACAAD0F97B10810D1DE6FCDCE6B5F4 ^
203A4D46E4BA0AE4B012F75B1B50D0534D578AE9CB6 ^
2046342B199EE64C7B2C9CBCD4F2DCB65ACEF51516F ^
205AABFD63688EB678357869130083E1B52F6EA861D ^
206F732B7372DAF44801F81EFFE3108726239837936 ^
2075E9347FE4574CDCB80281ED092191199BADD7B42 ^
208D5776B7DFFF75C1358ABDBBB3F27A20BB6CA7C55 ^
209022B7ADA472FB7A9DA9219621C9C5F563D3792F6 ^
2107F1DE4ECA20362DA624653D225A5B3F7964A9FF2 ^
211CA0F2B1BFB4469C11ED006A994734F0F2F5EFD17 ^
212833D63F5C2EA0CD43EC15F2B9DD97FF12B030479 ^
21314FD356190416C00592B86FF7CA50B622F85593A ^
2144AB6B57EDDEF1CE935622F935C1619AE7C1667D6 ^
215B456A6A968ACD66CAA974F96A9A916E700AA3C5D ^
216FD1C257FE046B2A27E2F0CD55ED2DECA845F01D7 ^
21766E0D01780F1063E2929EAAD74826BC64060E38C ^
218A8478DF406F179FD4EF97F4574D7F99EA1CE9EB8 ^
219248E58CF09A372114FC2F93B09C5FC14F3D0059E ^
220F15767DE91796A6816977EFA4FCED4B7FD9B8A57 ^
22136A6BC5E680E15675D9696338C88B36248BBBAF4 ^
2224DEA6251B2A6DF017A8093AB066EE3863A4EC369 ^
223D30E70E357D57E3D82CA554B8A3D58DFF528FA94 ^
22470CA84D827F7FD61446233F88CF2F990B0F3E2AA ^
2258D500C9CFDE0288530A2106B70BED39326C52C3C ^
226F3D4D139EDFC24596377BC97A96FB7621F27FFC7 ^
2275509BAFFAC6D507860CEFC5AB5832CB63CD4B687 ^
2280C0AEA0C2FD7A620C77866B1A177481E26B4F592 ^
229149176007FEE58A591E3F00F8DB658B605F8390C ^
23017C0D7B0256159F3626786FFDB20237AE154FA84 ^
231741A58618ABEB1D983D67AFDCBC49AA397A3B8E0 ^
232B738D6B3409EB9ED2F1719B84D13F7C36169CDEC ^
2333D33DE31F64055D3B128AC9A6AA3F92DFD4F5330 ^
234B6925F4DF94949B8844C867428BA3DEDF4CF2B51 ^
235CF5E7256292ABEC431D8E8B9CBEAF22AF072377E ^
236975DCE94902923977F129C0E4ACF40AD28DDB9AA ^
237333B0259B18CE64D6B52CF563DD3041E5F63A516 ^
238<D
239
240H>SHS Type 3 Hashes<H
241D>
24280E044703A880C20EC41F645120A8A5B5D194ECE ^
243E142829CA08FC9787F17AA16CE727396169B2713 ^
2446A2BAF62469D311F9257A0727F52C7EAA87CCEB4 ^
245362E3E7136CA611D7FBF687D3BBDC54CDA64843F ^
246F5900ADC6223A5D24A7526ABFC60FA8E2D59A5AB ^
247AD0CAC6A21D5B10833DDE7FA85927D74EDA142A9 ^
24847AD337EAFFDC177AAF7CBD035BE6F398B9D0536 ^
2499CF58595DF80872535BCC7C056E223546F0BB4EE ^
2507151CEB1918278CED2902B1D663D596F8D1B986F ^
251ADDC9F09AA4026EF6C4B7F1A84D3A13B4CDC65B3 ^
252921FE78A863A317B1FA1FB3CA3BE1948DE7EF754 ^
25364BE10732D71D52CE8A486DA23E6B453DF7C6FBD ^
2544A450659470DD759ABFAE1D73972A6D2E63AC16C ^
2550D665E4BBF30B7EAB955BDE84759E185EECAB4CB ^
2560C1B8EE94D61CDD0837EAED9FE33DE4A8334B596 ^
257D93BFE2A6227A4BF9B7C61EBCE4A8CDE131593FE ^
258BDA883F804B470C90BD6AC490DFC34EBC27F9648 ^
25946A0969373552213632591C52030C38E5DBDC49E ^
2604781289E48B910C550DC23CA7D3AF5324C03532D ^
261693A34CFCDDED0F3AC72E7197FCE9BB66A8E3981 ^
262AE088AF1D8865140963B3ABFB63E32E04CD1506F ^
263ADF0F8F1D85CA97586F5DC6DC5FD11FA39270F55 ^
264E484F5AD86C5F4D09E366ADF6E0DE73449F97B28 ^
26581C49842BA3D7072FB42288E03CE737A2672C091 ^
266F6CC71AD897C23A16835490DED289BFD45500AB0 ^
26723E71AED62FE8E28F34F58E7FE5594EC5EB0486C ^
26892BA7934AA5867EE52960F4E0EDFB90AA7B69305 ^
269C3D1CC8CBD1B6FFEE0D90CE962CD9C09AB1548AA ^
2703CE37A583B71A6A77BE325066A0F00C5D11DFC3E ^
27176EF5D236E1042D356A3234A422C092F86003064 ^
2728C3F703436C6C882E60263540A8E4C3E5646DC15 ^
2736138F9F3AB43B988DD3857422CCB304352459F40 ^
274B812DE98775B4690B4FC2ECFCAB61C73C7271DC7 ^
27506660985CD80D48E7B9F88455B4233924C3B64BB ^
27676AB4B6378D6F63499A94EB67EB1CB31AFF8D775 ^
277F31F6B0BE7AB059A1F59A46481967E88392979E6 ^
2780C1638498FBB7DB9600B98B4B22EF85E0FE245FB ^
2795607C6AF600939736795AC523FA43B736F41A118 ^
2808A03244866BDD21B9D8A82E98436C894FAD86ECC ^
2818A75BFD911AF87303B9B8FB7A1A47CCA52D3D98A ^
28216F0F3B5D37411236A1E3D6B1EDAB74CDA25ED4B ^
283AC72BF45477481F58A302628DC5299FFA32E7C9F ^
28474CFFD5881F75AC20726E1447DCF7F47024380EF ^
2855BFBECEECBC27DA05729C4D1AC8C1286EA6DCEC9 ^
286012AACBC0579FA4CB4F107E9A9AD1A86AD2F6A4D ^
287F7D552CBC5EF90F1A579388B5A8A9EC71EB67681 ^
28810C70115C4C34753274BFED477DF01440A67A361 ^
289078D2FACD293B6B6219D89899C16AA1AA8E3DE82 ^
29083C6BF9FB0D3091ADF374EBFA0A69916F17E6D26 ^
2912CDB1924DA62AB64C007C6505FF657E4ADDEA9C1 ^
292E95D209BCB9864B076FF4DFCA8F8BD75D62D1B48 ^
293632824CF5025F8F90AD2923BDDF449550D64C0F5 ^
29402B1C0B41FC27EC5A32E586F1AC480BF0061E56A ^
29528156BC6769AE390BF32C6512C46169181E1536D ^
296F730E6E287D992E7F3E013B6F1E088F0B9C41598 ^
297B056A6A832FA5FE964EF77FF3E0BE1C32E0D58C0 ^
298D5B3D19AFBB48FB56BA6D44A82DE6BD08DB208DE ^
2990215AD79BD6B8023C05FD2F8966211897DF6337A ^
300EC4CF38C244EB6526A44F70570925247145DA8CA ^
301C0D931262ECE93DA5A6ABC89CD6AD3162EA6B09E ^
3026BB48FAC26AA2B4859BBDEFCFB53AE4D1D9A0340 ^
30358611D43741E67A7F0DA9CB337A59DCD1EBE758E ^
3047C2AEC216AF231509E47B7EED06BB17859812B7E ^
305F60EE5DBF4A7A676EC98B3DDB1CDD6CDF3CDA33B ^
3060492E59B1F4C94E97F29A26C3EE7D57E1B0FDD72 ^
3074FCF549D902D9BE1101A756DB9E45415FB61BCD2 ^
30895C71D26AD6B38CC771376B4A4F962F12E1E3D4F ^
309F6A2449E773C72FB886B3C43E2B30EC2A1B7454A ^
310CDE86695E00AEC9A5DB6FDDB5D5A5934448D58E0 ^
311502318A758FABFF6AC53844E9E2BCD159C678510 ^
312589D295148F95F75DAE964DD743FE981FA236D4E ^
3137973DD33AE3599A556BACC77E8656E782E029EFF ^
3149F5BE43AADD43C6DB3883C9DA4B52E1A50257AEE ^
315454289D8FFB237A56D5214EAE88F0A9D328FEA1A ^
3167E686B36595BEB4C0D4528FF960EDB55088A028D ^
317F9789D1EF19A0084AC0E9F43A4BC0EE0478939EF ^
3182F32B0E7CC8BE19C325545C816E77056D7BBE70F ^
3196B1617746F073CFCD2CEBCAFBBE6FD0E28ED2D56 ^
320CF8D2EA3888AD76761799383E5A15979F6DB7A88 ^
321557AF6D9D5947203C60E98C9A79B92B8BD085E2B ^
322C61A217423DE68ED6CD34C91756C8DD3A650A2A2 ^
32373F3F79C151B6C1BD9369EDB26B932C2362B0593 ^
324364141E5FBCDE83F210C5BBBEB6810F6299DE14B ^
325F806BECD025D264FD59E93D9E3606A674C40F216 ^
326E0C761A57F00CBFB07D49BCB034C36A7122F4C5B ^
3275D3831044B9E0032FBE3C3425FFD13698F413B33 ^
3287EB1AB41E9997753C5D530DF118E71E72D7B86FC ^
329CC053EA1556269D7E8BCBA30B208FCBF0EE2EE64 ^
330A57739B1DD41E7DC0C40D6B6159A7E73CE2748AA ^
33190DA527C9DB9ACC2FD530D560A2F1191A80D0567 ^
3326AC1F2A0B8CA0E5ABC9FDF1ADCE588FBDF5CC53E ^
33343C1A0A0EE4163EC929726989F92B03639B233AB ^
3348927F299462413AC29A74080E54D8EE2DB7165E7 ^
3350C8D7E22226D91B423E781B508F31517EAAB607B ^
3367286E20D7F08D18A893254FBD3CC833F7973DCAF ^
3370CB8C235928B8E936C43B8F29EF3758B9FD54A7B ^
338F67C24CC23E440CA3F206CEEB5504ECA54CD5CA3 ^
339D78A25DEAA1E7ADADDB3C145ED0E5263BA4F2910 ^
34000AA68174D29492C578AC853FFCD55908292D41A ^
341D5570EEDB09A62A5948F7F311F7ED5EF247F9AD9 ^
342<D
diff --git a/src/lib/libssl/src/test/sha1vectors.txt b/src/lib/libssl/src/test/sha1vectors.txt
new file mode 100644
index 0000000000..c2ea186603
--- /dev/null
+++ b/src/lib/libssl/src/test/sha1vectors.txt
@@ -0,0 +1,2293 @@
1# Configuration information for "SHA-1 Test"
2# SHA tests are configured for BYTE oriented implementations
3H>SHS Type 1 Strings<H
4D>
50 1 ^
65 0 2 1 2 1 2 ^
75 0 1 3 4 4 4 ^
87 0 4 3 4 4 1 4 4 ^
910 0 4 1 5 3 4 4 3 1 3 4 ^
1010 0 3 1 6 5 5 1 3 6 6 4 ^
1113 1 3 2 5 3 3 3 4 6 6 1 4 6 2 ^
1216 1 3 5 5 1 2 1 3 3 6 3 5 2 3 5 7 2 ^
1315 1 8 1 5 3 2 7 4 5 6 7 3 3 1 6 3 ^
1415 1 4 6 8 2 1 4 2 5 1 6 8 8 6 4 7 ^
1518 1 1 2 7 3 8 6 7 5 4 3 4 3 5 3 3 2 6 8 ^
1616 0 9 8 1 8 1 7 6 7 7 1 2 6 9 5 4 7 ^
1718 0 7 1 7 3 9 4 7 7 5 2 8 1 7 8 2 7 2 9 ^
1819 1 2 3 1 8 8 6 9 10 3 10 8 9 2 4 1 5 1 5 9 ^
1919 1 8 5 4 8 1 3 9 5 7 7 2 7 2 7 8 7 4 8 10 ^
2020 1 1 9 7 4 1 4 5 1 10 8 6 4 4 9 9 9 8 2 9 10 ^
2119 1 11 6 7 7 2 6 2 6 10 6 9 10 5 11 1 6 8 11 4 ^
2222 0 10 5 10 3 7 8 9 9 1 1 1 10 2 1 5 10 2 9 9 9 7 8 ^
2321 0 1 10 1 6 9 4 2 5 2 11 8 12 12 9 8 1 3 10 7 11 12 ^
2424 1 3 9 5 12 3 4 2 9 12 11 6 6 1 1 9 5 9 1 4 9 4 10 8 9 ^
2525 1 3 2 3 11 1 12 5 6 2 7 8 4 8 8 9 9 8 4 9 1 4 8 10 9 9 ^
2623 0 11 10 7 10 10 6 10 9 4 5 10 5 8 4 1 10 12 4 6 1 8 11 6 ^
2722 0 12 8 10 4 3 8 5 5 7 11 13 11 12 11 4 12 3 6 5 11 10 5 ^
2826 1 10 9 6 9 7 2 10 4 4 5 5 2 12 13 5 3 1 10 1 4 7 8 13 13 12 9 ^
2931 0 2 6 5 4 7 3 10 6 13 6 3 9 6 2 10 5 3 8 4 1 11 3 5 3 7 11 1 12 9 12 5 ^
3027 1 14 5 1 3 7 2 3 9 3 4 14 4 4 10 8 5 14 1 11 12 12 10 4 13 7 11 9 ^
3130 1 4 9 5 5 8 9 5 10 4 2 4 7 9 9 6 3 5 1 8 3 2 13 3 14 9 8 9 10 14 10 ^
3227 0 12 9 5 8 7 2 14 12 3 8 14 6 6 4 7 5 7 10 7 11 10 1 9 6 7 12 14 ^
3324 0 12 9 9 2 11 13 12 11 11 6 14 13 10 5 6 8 10 4 3 11 11 14 5 14 ^
3424 0 15 4 5 3 8 12 15 8 14 15 9 12 12 3 10 13 6 11 10 4 13 14 8 8 ^
3528 1 1 8 1 5 11 4 9 12 4 13 15 5 9 11 7 14 11 1 11 7 8 8 11 1 13 15 12 13 ^
3632 1 5 8 3 8 10 7 8 1 5 13 12 14 5 3 6 4 12 15 6 6 10 11 13 9 1 11 6 10 3 7 14
372 ^
3831 0 10 3 5 1 14 11 11 16 1 2 2 11 6 13 15 12 6 5 16 2 14 2 10 12 2 5 5 6 10 13
3915 ^
4034 0 3 10 8 16 9 5 12 15 4 11 13 3 6 5 10 8 1 3 9 3 11 1 2 16 12 10 6 1 9 1 16
415 6 14 ^
4230 1 1 12 4 4 2 15 13 15 11 15 5 11 9 7 15 16 6 16 12 3 2 10 16 5 5 7 1 7 11 16
43^
4434 0 7 9 11 2 5 5 5 4 13 13 14 4 7 12 6 4 8 2 9 9 13 13 3 3 6 7 16 7 6 15 5 8
4515 14 ^
4636 1 4 6 16 15 11 14 14 4 7 10 3 4 10 3 6 7 14 4 6 6 5 2 7 8 16 2 12 16 10 14 3
472 3 7 14 3 ^
4832 0 15 10 9 1 14 10 14 6 6 16 3 2 3 8 3 12 8 11 17 3 9 7 16 14 4 11 15 5 13 9
495 17 ^
5030 0 17 17 13 8 2 6 8 16 1 12 5 17 2 9 8 10 13 14 11 17 12 5 14 9 11 9 11 4 11
5112 ^
5230 1 16 6 10 5 8 3 17 16 14 1 15 15 15 6 13 2 11 6 13 11 13 4 6 7 11 11 12 16
5313 16 ^
5433 1 16 16 14 16 2 4 16 11 6 15 7 4 17 6 5 7 6 3 14 16 5 17 11 13 1 1 14 13 3 6
5514 5 16 ^
5639 1 2 16 13 7 8 6 2 15 1 9 12 4 4 11 13 7 2 11 9 18 4 5 4 8 2 14 9 9 1 8 13 11
5715 8 5 9 10 16 7 ^
5834 0 2 7 1 1 17 13 6 11 10 8 5 12 15 6 15 10 12 4 18 1 2 8 11 12 16 10 12 18 11
5916 12 11 17 6 ^
6034 1 4 7 13 7 10 7 10 6 1 12 7 18 11 18 2 10 15 10 14 8 18 9 9 12 12 3 13 12 6
614 9 17 13 17 ^
6240 0 5 7 3 2 1 17 14 4 16 6 13 1 13 6 6 10 1 3 18 3 11 7 9 5 7 11 17 1 9 16 5
6315 10 17 3 8 15 17 8 12 ^
6440 0 11 3 15 17 11 1 1 4 3 14 18 4 2 18 8 15 6 4 6 3 15 11 16 10 17 17 9 6 3 2
656 16 4 9 12 6 8 1 11 17 ^
6637 1 2 19 12 8 16 14 2 9 16 2 6 6 7 9 10 9 11 9 14 11 15 5 16 9 2 17 2 8 15 8 4
673 14 14 16 16 12 ^
6837 1 11 10 16 12 11 7 14 14 14 6 10 10 1 6 13 19 5 6 4 7 12 12 10 5 10 15 15 8
695 13 17 13 5 6 14 1 19 ^
7038 1 2 6 5 17 9 11 18 18 8 6 13 15 3 3 15 5 13 18 3 2 5 5 14 7 13 4 17 7 2 17 3
7118 15 7 15 16 18 11 ^
7238 1 12 8 6 3 17 12 13 19 15 9 7 17 16 15 3 11 11 5 2 13 19 16 2 4 16 7 8 1 2 9
7317 12 3 5 18 19 11 9 ^
7439 1 14 16 14 8 9 16 5 1 6 3 17 18 16 9 1 15 9 10 9 19 1 3 3 20 11 13 17 1 19 8
753 4 3 7 1 14 19 19 19 ^
7637 1 18 13 11 5 18 4 19 10 6 19 11 17 10 10 7 9 13 16 9 10 18 4 12 5 16 5 20 12
773 8 10 1 18 1 6 20 14 ^
7836 0 8 9 6 12 11 7 7 3 17 13 6 20 17 9 20 16 10 12 17 8 11 8 11 10 5 10 14 18 8
7919 9 12 12 2 20 19 ^
8039 0 12 16 20 3 9 9 19 17 13 13 4 17 2 11 7 14 3 6 16 13 10 13 5 16 10 2 8 2 17
8119 4 17 7 19 6 9 15 15 6 ^
8243 0 7 2 18 5 7 18 5 2 15 7 11 10 9 3 2 14 19 3 11 8 18 15 5 3 5 12 15 16 10 17
837 19 16 2 1 16 6 3 19 12 5 18 16 ^
8449 1 9 11 2 1 12 11 14 12 14 10 4 11 6 8 16 7 5 11 20 8 17 4 14 4 15 3 2 2 4 3
852 3 14 15 10 2 12 7 3 7 20 20 19 10 2 3 1 10 20 ^
8636 0 19 20 12 5 19 21 5 21 11 14 19 1 17 8 9 4 19 3 17 1 14 21 14 7 6 5 20 14
8721 20 4 6 21 7 11 12 ^
8841 0 12 9 11 6 16 18 18 10 11 20 6 12 11 5 7 21 19 18 6 15 21 10 4 14 9 19 10 3
893 5 13 1 8 12 3 13 9 7 10 17 14 ^
9045 0 10 6 8 3 17 18 3 21 19 6 17 15 4 9 15 9 15 14 4 7 14 8 10 13 4 11 10 7 6
9121 1 14 5 11 7 7 2 13 13 3 9 13 8 14 20 ^
9239 1 3 7 18 4 9 9 5 15 13 17 10 15 16 20 8 19 9 10 9 1 19 14 21 2 18 13 10 4 18
9316 4 21 15 10 18 19 3 12 18 ^
9441 0 14 4 13 11 1 11 1 10 2 12 4 21 10 21 18 9 2 16 7 20 6 7 12 19 20 1 13 12
9510 8 21 15 7 19 13 6 8 19 20 18 19 ^
9637 0 11 18 1 17 14 15 20 16 20 8 2 17 10 4 21 5 19 19 14 22 21 18 13 14 1 3 12
9711 11 4 22 13 5 18 7 21 21 ^
9848 0 9 22 19 12 8 16 5 17 5 9 1 2 9 6 12 6 1 7 4 3 15 1 14 1 12 3 10 2 10 14 21
9913 17 6 6 17 1 21 2 14 16 17 9 11 20 21 11 18 ^
10050 1 12 8 20 13 2 9 20 9 14 10 1 16 2 22 6 4 16 14 15 1 12 4 14 9 21 3 3 9 8 21
10115 14 8 4 14 4 2 3 8 12 8 6 1 2 18 20 15 3 19 10 ^
10244 0 10 20 14 6 3 4 21 1 12 4 18 2 6 7 6 9 20 14 10 10 19 17 21 12 15 17 7 10
10311 8 10 12 1 19 19 9 18 21 4 18 11 9 22 5 ^
10447 0 15 8 15 3 5 6 2 19 12 17 4 20 8 11 20 2 18 4 16 20 12 9 9 6 16 21 16 3 16
10518 3 19 5 16 2 4 2 12 11 15 11 14 17 2 10 18 8 ^
10648 1 5 13 3 21 5 3 6 18 18 10 1 21 21 7 1 13 12 19 1 14 6 8 21 19 21 11 19 13 2
10713 4 1 10 22 16 4 9 4 10 16 3 7 15 11 9 13 17 12 ^
10845 0 14 7 6 2 20 3 6 19 19 10 2 22 12 17 12 1 20 7 7 15 20 6 18 8 3 14 23 18 15
1094 7 5 23 15 7 14 10 10 19 17 2 4 15 17 21 ^
11045 1 15 11 8 9 17 5 12 18 14 6 20 17 21 12 16 9 22 9 20 15 2 22 11 2 6 11 9 8 2
1114 14 19 3 21 21 23 8 2 11 4 8 4 20 22 11 ^
11238 0 21 18 22 10 19 9 14 17 23 21 10 7 15 13 16 5 4 10 13 14 20 23 12 20 23 18
11310 12 8 21 11 6 12 7 19 14 18 17 ^
11440 0 18 22 6 9 22 5 23 13 6 8 23 20 22 5 22 15 19 20 9 9 1 13 13 10 14 13 5 22
11514 21 9 21 19 14 14 4 18 13 12 14 ^
11648 1 7 3 15 5 17 14 23 14 5 17 22 11 1 8 13 23 6 21 3 6 11 7 23 8 6 21 4 4 22
11719 13 8 5 19 7 5 23 1 4 19 11 23 11 21 14 1 3 21 ^
11843 0 22 14 11 7 18 16 17 24 12 12 3 13 19 16 22 4 16 4 6 23 8 18 11 2 3 20 22 9
11921 8 23 1 23 20 7 16 13 23 4 13 3 7 22 ^
12047 1 23 6 13 19 2 3 7 2 9 9 15 6 13 4 22 6 19 20 1 9 7 14 1 15 3 23 24 22 18 12
12112 17 19 10 8 11 22 12 10 2 20 15 18 17 18 7 19 ^
12247 1 12 21 6 12 4 7 18 17 3 2 14 24 14 1 23 1 11 15 10 6 18 20 7 1 8 1 16 6 20
12323 23 21 10 10 12 24 10 11 23 2 12 23 9 3 24 24 10 ^
12452 0 14 10 18 15 14 5 16 11 22 2 15 24 8 22 1 4 24 9 10 15 3 9 5 4 17 15 9 12
12519 19 1 3 10 6 8 3 17 8 18 24 19 3 4 15 4 9 2 24 5 20 13 13 ^
12642 0 20 17 19 22 13 8 10 19 15 11 1 14 17 20 22 10 7 11 16 9 21 22 17 23 12 15
1274 24 7 21 18 2 21 16 1 19 18 20 11 3 15 17 ^
12850 0 18 1 6 14 5 5 5 19 13 10 24 19 16 24 15 13 2 19 15 24 21 17 4 13 17 1 1 9
1291 10 2 18 1 21 19 5 18 12 2 22 16 23 15 19 6 18 9 1 23 5 ^
13051 0 21 13 14 11 18 12 13 3 19 9 20 22 20 2 11 12 6 1 12 16 18 2 9 8 4 3 11 17
13111 5 4 19 16 11 23 13 18 1 20 8 2 16 16 21 4 19 5 5 20 24 16 ^
13253 1 20 25 17 11 8 4 19 25 17 7 16 21 6 4 8 2 15 9 2 9 19 3 6 3 3 10 25 13 15 7
1338 20 21 12 10 12 5 24 11 20 3 13 13 16 9 13 10 3 9 16 3 7 25 ^
13449 1 9 9 14 2 13 17 25 2 18 5 19 23 9 25 9 10 23 12 12 7 13 8 15 7 1 6 21 2 8 7
1356 16 14 14 12 15 13 24 10 15 11 10 8 14 15 21 25 21 25 ^
13647 0 9 18 20 22 21 20 11 14 23 22 10 13 14 8 19 12 2 11 20 23 13 4 10 6 5 7 23
13711 3 16 8 21 4 8 18 5 12 14 8 6 20 19 24 8 23 17 23 ^
13848 1 7 19 1 18 1 14 22 13 14 5 8 22 18 14 25 17 11 12 22 2 12 12 16 12 13 18 17
13912 17 14 18 8 25 9 23 5 3 8 14 24 17 7 3 3 23 17 22 19 ^
14051 1 19 17 16 22 24 14 16 20 23 20 9 19 16 7 12 16 5 8 9 7 10 21 24 10 11 19 1
14121 14 14 19 3 22 8 12 20 1 18 5 6 5 12 14 1 1 11 9 22 3 24 4 ^
14252 1 6 1 11 16 1 12 8 11 11 17 10 22 7 3 10 2 6 4 24 16 24 19 4 5 18 11 12 9 20
14321 25 2 21 18 10 20 25 21 3 17 17 5 8 22 25 19 8 10 19 7 11 18 ^
14444 0 26 14 21 25 25 4 9 13 5 8 9 21 8 12 26 24 9 24 15 1 23 22 16 14 8 22 15 19
14524 20 7 8 15 24 12 4 4 23 21 13 19 15 21 12 ^
14659 1 15 7 3 21 20 8 22 14 23 26 19 2 10 18 3 5 3 1 9 15 15 3 7 13 23 9 7 1 13
14717 14 25 9 16 2 2 6 13 7 19 25 17 1 5 21 2 7 22 5 6 25 3 12 19 6 2 4 24 17 ^
14860 0 9 18 20 19 4 11 14 1 6 8 26 6 9 22 4 10 2 7 21 9 8 24 25 14 22 12 22 3 23
1493 3 20 6 11 23 6 1 7 5 18 5 15 25 26 1 1 10 11 11 4 12 11 20 3 14 2 3 2 23 15 ^
15049 0 12 17 24 11 8 6 24 16 15 22 21 14 6 12 20 19 5 5 12 11 6 23 2 16 23 7 24 6
15121 2 17 17 5 25 11 25 20 25 24 18 6 12 19 25 7 6 5 2 25 ^
15254 1 12 16 1 15 7 1 26 19 19 13 20 11 17 6 20 5 24 24 1 21 11 9 20 21 15 10 19
15326 3 2 6 7 12 9 10 8 14 10 15 5 17 8 21 1 20 25 6 19 8 3 22 16 16 20 ^
15463 0 17 13 11 10 17 15 12 6 13 14 17 4 12 10 24 5 13 24 3 5 2 5 11 14 8 5 10 17
15516 8 4 14 21 15 3 6 17 25 8 2 3 3 19 10 13 22 22 8 2 13 25 17 2 1 19 1 14 20 2
1565 4 15 24 ^
15749 0 14 20 7 25 20 26 20 16 7 17 17 22 1 13 6 5 1 18 14 15 23 15 10 5 19 18 18
15826 12 13 3 25 12 21 16 24 4 16 3 6 26 26 10 20 13 1 20 24 15 ^
15956 0 3 8 14 5 5 7 11 13 11 26 11 4 26 17 20 19 11 10 3 10 14 9 6 9 7 16 10 4 4
16019 19 2 26 13 19 17 15 24 15 4 21 22 13 13 12 22 2 14 20 5 18 7 17 24 20 20 ^
16158 1 6 17 9 20 2 10 19 3 22 4 1 11 3 5 3 21 11 15 12 23 26 5 2 27 6 5 16 6 3 2
16223 5 3 20 20 4 24 2 18 21 7 14 10 27 23 6 24 6 19 23 3 9 22 16 21 17 19 23 ^
16358 1 17 7 21 19 6 16 15 15 20 14 2 25 19 14 18 19 7 9 1 14 11 10 16 3 23 14 26
16410 11 1 18 1 12 24 19 19 1 7 2 3 24 7 12 9 2 8 16 20 24 5 26 26 4 9 2 7 25 17 ^
16554 1 8 12 18 14 26 7 17 18 4 20 1 16 14 21 26 4 6 8 24 11 25 15 24 16 23 4 10
16623 21 24 15 10 9 26 7 14 24 21 6 20 5 17 16 17 1 3 12 1 4 13 3 9 21 26 ^
16756 1 7 18 11 1 19 20 23 12 12 27 13 13 15 16 13 1 16 15 12 26 3 16 16 8 17 13
16821 4 6 5 19 14 16 4 16 11 14 18 18 27 9 13 21 3 26 22 3 7 6 4 26 3 15 8 25 21 ^
16950 1 20 13 9 11 20 6 11 21 27 25 20 7 4 18 26 16 27 5 12 19 7 23 6 25 25 2 11
17013 25 21 18 17 6 12 14 13 24 11 14 19 26 27 25 6 1 15 4 7 27 15 ^
17151 0 15 16 26 27 23 14 12 28 22 15 8 19 2 20 13 1 24 2 25 1 6 19 19 8 11 24 24
17221 13 27 5 11 28 17 7 25 6 23 24 14 25 12 5 13 26 2 5 8 10 16 17 ^
17358 1 5 26 18 19 21 3 12 11 13 4 14 22 22 14 16 13 3 22 16 23 5 19 6 13 10 26 17
17427 26 4 3 25 6 14 2 3 5 7 23 11 22 8 25 2 9 25 18 17 8 2 14 4 19 1 5 27 13 24 ^
17553 0 2 27 28 2 17 23 10 27 18 26 7 22 16 3 27 1 26 21 28 10 3 6 2 2 10 17 13 16
1766 17 21 23 13 20 22 5 6 11 12 12 8 23 13 17 9 23 20 3 28 27 12 17 22 ^
17759 0 28 19 5 21 4 27 8 1 19 14 20 6 7 9 1 6 22 3 19 26 14 8 6 7 19 15 23 1 17
17816 6 26 14 5 22 25 4 7 10 16 21 10 18 19 24 16 23 8 3 17 28 18 10 2 5 3 21 21
17915 ^
18058 0 6 24 1 4 24 18 10 22 1 21 12 5 4 4 20 25 24 26 8 25 11 2 7 27 22 19 4 18
18127 10 28 4 12 24 8 16 12 11 16 17 25 8 12 16 1 9 9 10 5 24 23 18 5 14 18 8 4 28
182^
18361 0 5 17 8 28 1 22 4 11 3 2 17 3 14 9 27 13 18 24 9 8 7 28 25 14 21 27 24 6 18
18416 2 12 15 9 14 10 1 8 17 4 6 15 26 11 15 2 28 20 26 16 3 7 5 8 9 26 10 12 25
18511 22 ^
18653 0 9 13 24 15 20 2 4 8 2 22 20 19 4 15 14 28 13 25 10 10 12 28 24 22 26 28 15
1879 11 26 19 22 27 2 21 8 20 23 26 12 10 21 9 15 13 25 7 26 1 13 5 9 20 ^
18858 0 3 9 21 22 7 1 23 28 1 2 8 22 12 18 28 5 18 14 7 11 17 20 20 7 21 13 8 28
18921 22 2 16 20 15 28 9 3 22 13 10 23 4 16 11 14 1 10 8 14 14 15 18 13 12 21 18
19025 28 ^
19160 1 29 20 2 29 22 8 16 20 4 12 9 6 12 16 16 7 9 20 29 11 9 4 1 15 25 16 29 10
19222 7 2 8 5 18 14 23 24 4 6 26 3 11 6 12 1 7 14 24 14 6 10 21 16 23 29 25 6 14
19317 24 ^
19464 0 12 10 5 10 15 25 8 15 3 7 13 25 16 14 1 29 22 26 15 27 9 1 8 8 28 6 13 5
19513 3 15 5 23 8 23 2 5 5 4 17 13 14 7 17 12 27 3 18 5 7 5 26 18 15 22 28 16 13 7
1962 23 19 25 15 ^
19756 1 17 7 16 25 23 11 11 15 2 13 9 26 2 24 26 7 28 11 2 29 7 22 23 5 28 19 1 27
19829 1 24 11 18 20 3 13 11 7 3 15 17 24 1 18 13 6 3 25 27 16 28 18 24 8 23 22 ^
19951 1 29 28 6 28 14 12 28 27 22 4 14 25 1 3 9 7 11 14 15 16 10 19 12 19 11 20 13
20028 4 27 28 7 27 12 4 28 21 17 22 20 17 15 15 23 22 13 12 21 22 21 29 ^
20164 1 12 14 12 18 27 8 7 4 9 14 16 15 8 11 21 20 10 10 21 23 20 2 11 23 1 11 1 5
2023 23 16 15 27 14 5 16 3 22 2 3 24 3 19 29 4 4 10 8 20 14 15 1 26 12 27 25 4 28
20322 11 19 19 24 9 ^
20460 1 20 8 9 5 25 19 17 19 15 7 24 24 21 3 20 16 8 3 17 28 18 29 9 23 9 10 29 4
20512 24 15 5 8 22 17 29 12 3 8 29 15 21 21 4 7 20 7 10 7 26 10 16 24 6 7 12 8 12
20615 17 ^
20760 0 9 17 11 28 12 26 26 6 29 13 10 20 6 23 10 4 3 26 26 14 20 20 25 14 13 15
20824 14 11 4 23 27 24 20 9 16 17 24 13 12 6 1 14 26 25 7 8 21 1 19 3 2 2 17 21 13
2095 9 21 11 ^
21054 0 25 1 27 24 6 23 16 5 1 20 29 22 25 9 25 10 3 28 28 25 19 18 16 24 14 15 5
21128 12 28 26 29 2 15 15 9 5 18 19 22 12 15 4 6 15 24 16 9 4 26 25 18 27 12 ^
21261 1 20 4 26 12 3 22 1 22 30 3 28 10 9 24 14 29 6 30 3 10 20 14 6 3 19 21 21 28
21316 18 11 30 11 20 30 1 9 8 11 5 19 10 24 4 22 4 2 26 5 15 20 8 3 13 30 18 8 1
21425 28 19 ^
21556 1 20 15 21 18 18 12 16 13 24 9 21 2 28 6 1 23 9 18 27 27 4 9 13 10 8 14 16
21615 12 11 14 21 14 10 11 25 17 17 30 21 13 27 26 26 22 14 13 17 21 19 9 9 20 23
21713 28 ^
21859 1 10 28 24 10 22 27 23 27 8 17 14 6 4 21 26 15 1 8 29 27 6 28 15 3 27 25 25
21914 19 13 29 8 24 2 8 2 4 12 19 11 10 6 26 14 22 24 30 10 11 12 2 12 17 23 8 8
22012 28 12 ^
22156 0 14 28 2 17 4 8 3 26 9 23 21 30 30 20 4 13 28 29 9 3 17 7 19 30 28 1 2 20 9
22212 24 15 30 20 27 3 23 11 6 29 25 23 26 17 20 10 22 15 23 6 25 5 4 30 2 29 ^
22363 1 23 15 27 14 26 1 1 7 19 12 7 6 20 18 14 4 15 17 28 7 11 7 8 9 22 17 12 5
22423 18 25 18 6 12 26 30 12 30 14 3 1 18 10 20 27 21 8 6 24 26 20 11 24 7 2 4 18
22515 14 30 16 19 14 ^
22652 0 27 15 4 19 25 29 29 7 14 18 9 11 9 27 11 15 29 9 28 20 2 30 26 21 17 8 28
22717 22 29 24 8 11 18 29 15 6 7 27 27 17 24 18 23 11 19 8 30 5 24 22 24 ^
22866 1 25 15 28 23 5 10 21 5 8 7 3 10 19 17 6 9 15 29 10 7 4 1 16 21 16 29 13 18
2295 3 8 15 8 21 29 20 5 27 2 13 27 7 7 30 2 18 26 10 2 5 29 21 15 25 26 24 8 12
23020 3 9 10 30 7 12 29 ^
23153 1 30 26 20 11 22 19 27 2 16 10 6 4 24 17 20 25 20 15 8 23 23 20 30 18 16 3
23230 15 26 23 28 7 21 8 7 31 31 14 26 18 3 1 26 28 15 25 11 31 3 25 9 21 30 ^
23367 0 2 6 14 4 9 5 28 8 17 22 1 4 8 7 10 14 19 10 14 8 27 9 24 26 4 30 11 8 19 5
23421 7 2 27 20 16 20 20 22 14 13 16 26 14 10 3 25 22 25 23 21 10 15 15 29 8 13 4
2352 13 22 20 7 4 20 31 23 ^
23665 0 2 2 28 13 19 14 12 23 27 6 2 14 2 22 6 25 30 29 31 13 14 16 31 12 16 30 5
23714 31 11 4 1 1 25 21 13 26 22 21 5 22 14 29 1 21 3 14 30 4 2 29 12 15 23 3 15 5
2381 6 23 22 13 1 14 23 ^
23959 1 25 5 15 6 13 3 22 11 23 31 24 6 5 20 4 14 3 29 8 29 19 7 29 23 25 28 19 11
24015 27 21 14 1 19 20 26 12 7 12 1 18 13 29 28 23 29 14 23 7 1 9 29 24 5 30 18 5
24125 30 ^
24255 1 31 25 13 7 24 25 24 1 12 19 9 7 6 28 20 14 28 21 19 31 20 20 6 24 18 27 24
2434 18 21 1 31 15 1 15 2 27 4 26 25 4 23 19 2 31 22 30 21 22 5 27 12 30 28 31 ^
24462 0 27 15 18 14 25 15 17 7 28 11 28 29 30 1 17 12 10 2 18 20 21 2 11 12 5 4 12
24525 14 5 5 24 22 18 31 15 22 29 11 3 21 31 21 27 3 28 7 10 25 2 15 30 9 30 7 22
24615 9 3 20 24 14 ^
24760 0 28 14 18 9 27 14 22 27 31 10 8 14 7 15 7 20 5 26 1 29 7 17 17 8 3 13 27 18
2488 31 27 28 22 22 17 19 18 18 11 19 13 25 10 19 6 28 4 31 23 10 18 26 31 5 10 13
24912 8 15 27 ^
25060 1 24 22 4 29 22 31 28 20 4 16 21 3 1 15 5 15 6 30 3 29 29 7 27 20 2 20 31 22
25126 9 29 16 4 26 32 17 20 14 28 17 19 6 24 11 26 28 5 18 15 8 16 20 21 4 9 12 4
2528 17 29 ^
253<D
254
255H>SHS Type 2 Strings<H
256D>
25769 1 5 3 11 15 12 24 31 23 1 6 28 2 8 31 6 7 30 5 19 23 12 6 9 31 19 17 24 25
25822 6 12 16 3 7 9 9 11 29 4 11 2 5 13 29 10 12 30 32 18 28 18 27 3 30 4 4 26 6
25913 31 13 2 11 7 24 4 17 29 12 ^
26095 0 21 19 21 23 11 42 36 2 13 4 1 33 22 16 27 9 4 33 16 3 30 15 11 32 13 17 38
26132 9 38 4 36 15 32 27 19 42 18 6 36 22 10 29 12 25 40 15 29 23 28 30 4 8 11 24
2629 10 31 28 43 23 16 29 33 5 40 26 3 19 12 36 43 5 35 37 5 14 11 45 35 16 10 8
26332 4 15 35 26 2 39 22 37 22 30 29 ^
264106 1 18 14 51 2 6 32 51 9 32 50 44 46 51 8 11 53 45 55 16 10 3 52 8 20 20 46
26546 13 32 2 46 50 43 25 54 9 31 29 2 47 15 29 24 45 44 18 37 14 28 39 36 44 47
26616 50 10 44 24 53 35 22 40 20 15 51 22 18 22 42 6 54 49 38 21 7 13 30 16 7 52
26716 22 13 38 7 11 44 33 9 25 13 37 42 14 45 53 30 38 5 25 5 35 38 22 28 53 ^
268127 0 58 35 43 28 5 28 63 8 12 25 9 47 53 29 62 7 37 2 3 48 5 12 55 56 28 35 12
26963 6 58 27 27 48 44 35 14 17 22 56 10 8 1 16 15 42 63 14 51 57 19 41 7 8 56 47
27034 52 22 48 60 43 9 1 52 4 21 49 61 18 50 23 13 46 62 23 45 62 9 56 18 23 31 8
27130 27 36 13 38 4 58 53 47 24 18 41 58 19 12 18 52 42 29 44 45 26 63 34 32 41 64
27215 26 55 19 2 49 6 30 53 13 54 12 53 37 12 37 43 ^
273148 0 60 4 51 47 58 38 17 63 33 23 28 43 12 69 70 33 17 12 50 18 18 36 45 2 67
2744 45 20 4 33 38 29 45 8 22 58 39 71 38 32 53 35 19 53 31 29 51 35 4 63 18 33 26
27547 70 9 64 62 63 30 15 1 35 28 16 40 20 14 50 33 19 38 30 27 55 10 16 46 47 7
27655 12 53 26 56 33 29 55 25 17 48 43 21 43 18 24 63 27 68 46 38 33 35 10 18 11
27727 5 9 58 35 70 36 36 39 47 2 10 66 47 5 18 21 44 71 51 57 3 22 7 56 55 28 25
27814 40 16 24 48 37 66 50 24 45 18 39 53 55 ^
279165 1 15 62 35 29 15 40 19 76 67 4 5 71 46 61 26 8 77 48 1 23 12 60 40 24 44 33
28029 42 73 66 49 61 20 30 1 54 52 42 39 64 23 65 37 24 20 11 26 66 22 77 22 57 7
28138 57 33 61 73 7 64 1 49 35 76 14 27 21 45 68 38 58 73 13 72 47 73 33 8 66 23
28238 4 56 77 47 10 71 13 20 31 41 6 51 3 18 17 61 47 14 48 76 46 28 34 43 1 56 4
28325 7 65 41 1 34 37 23 59 59 27 26 13 15 14 75 60 14 1 28 59 26 65 61 16 23 17
28428 6 19 2 35 49 30 29 48 2 63 73 59 1 3 76 41 11 19 18 43 54 63 67 51 4 9 78 60
28566 ^
286181 0 18 19 84 17 12 10 57 18 77 51 52 16 39 74 49 52 63 38 72 2 15 64 83 62 49
28756 11 26 68 58 83 33 23 50 63 71 53 27 84 22 39 41 52 58 11 64 7 60 45 70 22 5
28873 38 30 30 48 21 75 80 40 21 8 53 9 26 30 34 81 71 71 51 23 75 33 41 23 32 5 8
28966 40 72 40 16 66 45 14 48 34 21 41 27 3 55 27 37 23 41 65 4 57 51 74 22 19 75
29042 16 19 46 16 10 48 20 19 37 41 14 57 9 17 55 38 5 60 7 46 20 43 36 39 52 20
29110 62 45 23 46 7 35 75 29 70 35 36 34 25 12 15 84 26 10 6 71 29 79 33 32 25 59
29276 82 64 58 7 8 19 41 74 2 53 65 24 1 55 51 36 21 79 7 ^
293184 1 60 66 66 6 3 9 73 12 7 40 70 18 71 70 65 51 14 14 27 50 9 87 81 50 22 19
29440 37 16 79 12 34 37 76 82 10 61 7 81 49 67 26 45 82 50 81 63 45 69 31 31 76 51
2959 59 34 51 54 34 83 10 33 51 86 81 82 69 18 8 22 64 19 86 62 58 33 37 17 34 5
29629 83 42 76 50 54 66 39 9 1 36 43 17 65 6 35 56 72 71 83 88 10 1 8 87 22 6 21
29778 25 89 43 62 40 55 85 31 89 74 63 46 28 24 26 31 17 7 8 27 19 12 85 17 20 27
29877 10 2 54 80 17 52 74 76 69 78 11 20 80 4 29 24 85 75 18 39 23 70 83 29 57 67
29972 70 33 4 15 46 42 2 69 13 53 33 69 64 33 64 14 40 69 59 78 54 ^
300193 1 68 43 95 53 38 58 55 28 20 16 67 48 17 86 32 44 68 67 28 16 14 79 25 15
30172 67 50 80 18 30 10 75 1 60 45 87 78 28 95 49 63 70 59 26 6 51 73 60 65 18 26
3028 87 5 58 31 25 57 40 46 78 57 34 78 61 36 66 57 38 80 22 32 68 71 30 74 37 81
30366 77 66 55 2 51 24 93 61 40 68 45 61 12 63 24 89 59 52 72 43 20 20 69 36 40 88
30446 9 62 55 77 84 20 18 6 77 15 52 39 75 3 26 4 85 17 62 29 11 92 46 58 29 59 28
30542 80 71 96 2 49 85 37 63 4 61 14 2 53 87 25 86 6 75 76 93 41 39 93 92 42 56 41
30663 26 28 18 77 11 50 78 79 1 12 12 91 29 13 58 5 56 92 66 59 4 39 47 95 5 5 62
30733 13 80 27 ^
308203 1 35 28 11 7 20 7 17 3 3 30 89 13 65 56 66 63 22 82 16 31 55 56 77 91 91 71
309101 13 10 85 101 95 17 99 98 91 33 14 20 48 32 7 64 29 38 35 25 4 95 23 34 1 85
31081 23 31 96 71 84 50 15 79 47 25 51 45 35 66 19 61 60 9 31 93 64 70 30 42 86 53
3111 71 46 42 22 38 96 10 99 34 76 26 55 73 63 63 97 23 92 81 64 46 1 30 31 35 86
31291 88 64 87 16 37 69 84 94 60 100 3 47 52 8 71 87 57 29 76 43 18 45 46 15 65 12
31344 42 66 60 15 68 19 58 39 62 76 9 92 101 57 32 4 34 15 41 62 32 89 71 43 35 31
31441 21 17 82 33 96 27 62 29 82 57 46 62 15 24 99 37 83 40 52 46 56 80 98 3 91 74
3156 27 7 58 94 10 41 79 97 84 77 74 26 99 35 ^
316212 1 26 101 17 91 45 97 80 59 102 30 68 4 85 9 4 39 16 18 85 70 11 87 62 72 78
31738 3 41 53 82 82 35 18 13 94 64 52 39 77 59 26 9 65 46 64 98 32 29 86 79 16 63
31854 76 56 98 16 98 78 22 72 33 103 104 52 84 12 65 15 85 101 97 84 31 51 26 100
319100 38 80 13 2 78 7 24 44 84 103 27 7 28 16 33 99 25 103 54 14 42 62 87 92 27
32022 42 5 52 100 84 73 72 63 24 48 56 52 23 5 17 76 31 1 95 58 43 60 50 62 30 23
32135 79 20 35 3 72 32 45 51 87 41 84 27 79 77 70 102 15 54 15 100 8 52 69 105 3
32230 84 42 93 66 89 69 74 24 33 42 97 4 38 99 106 13 93 6 106 74 100 54 45 21 59
32356 37 9 50 32 75 79 31 77 9 61 1 8 68 6 60 81 7 100 99 14 61 48 25 73 26 70 72
32494 34 ^
325233 0 11 98 110 88 35 110 35 64 49 88 93 28 85 6 78 65 90 52 24 97 51 39 51 59
32623 1 3 49 33 11 78 27 35 55 64 5 102 4 70 25 56 58 38 66 11 31 96 66 104 59 41
32786 58 29 79 41 40 72 51 12 92 34 52 44 69 104 21 97 89 96 48 21 4 61 40 28 67
32834 23 85 44 22 62 52 33 84 23 30 73 74 4 79 12 81 47 80 53 47 89 40 19 80 62 34
32961 29 41 95 43 1 70 63 55 53 18 19 13 48 10 19 89 49 4 52 53 56 76 10 8 104 77
33015 28 38 75 109 3 85 90 8 40 8 93 90 43 39 14 60 17 36 78 56 105 80 35 75 36 58
33182 50 100 98 45 74 13 66 95 72 71 95 34 14 98 72 33 38 37 52 6 14 107 59 3 29
33261 67 98 92 5 93 17 98 36 87 41 75 71 57 88 17 25 91 84 3 58 20 92 69 51 50 36
33331 14 25 18 30 18 1 41 104 30 82 59 87 70 34 96 28 47 62 81 103 48 ^
334234 1 63 90 108 108 102 64 82 88 4 111 76 97 22 1 108 41 34 91 33 20 25 24 26 8
33583 11 31 7 85 109 106 4 105 85 68 28 33 99 53 8 16 12 11 74 17 83 66 70 16 30 9
33667 68 34 24 81 47 92 72 47 37 33 38 92 17 8 28 88 22 62 69 32 89 75 3 72 96 85
33713 105 24 38 37 94 115 83 72 108 114 24 93 76 103 60 99 102 9 43 10 59 95 46 33
33893 15 26 69 44 2 86 107 55 45 61 65 92 66 9 55 39 70 83 29 98 67 13 111 15 20
33931 62 8 2 51 20 19 33 44 14 115 71 112 97 10 41 28 53 51 26 57 15 38 98 55 106
34022 56 31 50 95 107 110 84 70 10 108 96 73 100 25 36 55 88 71 63 96 30 90 96 79
34122 7 30 23 28 59 89 8 51 99 47 86 34 18 43 65 98 104 107 49 7 79 71 8 57 21 29
34280 2 74 78 44 57 9 61 22 13 68 52 91 74 98 43 30 58 68 95 101 72 102 76 42 99
34361 ^
344249 0 27 117 45 119 80 2 59 52 8 76 20 94 102 69 96 42 46 106 67 9 110 89 71 69
34534 31 15 85 16 29 100 82 37 62 68 95 108 44 23 114 34 36 56 93 11 30 96 12 31
34667 14 114 14 66 70 30 81 46 53 119 85 6 104 47 92 72 70 5 70 15 115 68 105 33
34797 13 85 106 14 61 29 22 86 45 57 69 91 38 38 28 66 13 60 95 103 3 15 5 113 38
34823 62 5 65 94 107 73 104 37 47 102 117 3 78 35 7 95 56 78 45 52 28 46 43 37 32
34953 19 55 29 47 97 76 115 83 71 11 45 62 73 99 116 2 24 116 7 28 41 2 29 37 52
35023 5 118 79 31 57 89 61 24 101 78 50 93 73 41 7 33 45 47 24 1 48 73 36 3 25 87
35146 28 108 54 68 53 67 119 28 36 118 104 42 88 27 112 4 74 85 1 63 39 97 71 74
35275 76 10 49 12 79 11 50 103 118 94 117 118 37 27 12 94 60 28 51 47 82 110 17 15
353105 23 52 43 12 21 22 81 41 12 74 90 42 108 117 98 67 4 69 85 ^
354243 0 76 81 26 101 13 68 62 106 87 19 98 32 81 63 79 93 31 121 123 75 52 11 66
35541 54 87 38 5 104 62 51 38 55 29 31 120 44 16 48 94 46 105 91 66 78 27 43 6 64
3562 55 79 75 84 113 22 4 113 109 31 33 17 96 11 29 63 98 103 107 116 34 14 9 95
35738 18 51 75 33 109 118 55 66 4 76 7 75 70 82 74 23 1 26 69 40 112 99 47 65 31
35870 119 52 103 88 85 86 28 16 12 76 25 22 78 64 21 86 27 61 77 72 108 2 18 106
359119 121 54 16 85 72 2 73 26 88 66 60 80 35 24 117 63 24 44 67 52 122 119 33 72
36016 99 98 69 54 19 42 28 53 114 32 117 81 100 57 49 123 56 21 68 80 53 95 1 45
36195 107 98 87 1 27 24 99 116 16 67 1 113 91 84 25 40 25 72 3 28 90 87 112 80 16
362117 45 77 36 90 105 59 88 122 64 108 108 71 98 18 50 115 93 105 77 35 6 46 55
36347 102 4 26 87 111 120 81 113 4 57 105 3 84 94 115 61 73 ^
364255 1 91 47 51 9 57 9 55 94 61 61 68 46 107 6 35 81 114 78 96 74 14 89 73 67 67
36569 113 107 11 98 113 109 20 92 17 67 70 88 57 10 124 9 60 122 93 91 45 7 15 24
36651 5 98 115 24 49 90 104 117 66 128 94 64 80 12 43 91 46 111 59 58 77 30 14 88
36760 123 68 41 44 68 40 104 118 41 43 93 90 105 92 16 127 26 54 125 114 79 71 24
36848 21 25 118 40 103 49 91 44 67 65 25 119 109 18 48 23 69 112 38 61 64 87 84
369104 119 110 122 92 22 1 8 83 34 100 32 62 41 46 112 34 102 76 56 39 4 127 30 13
37019 110 124 7 16 128 95 4 124 11 104 116 126 49 95 3 55 96 70 90 101 4 122 96 75
371118 39 128 99 92 18 42 20 87 83 35 75 111 61 67 71 28 101 9 56 34 105 95 71 23
37273 71 26 57 15 23 76 55 99 89 128 98 117 68 43 88 62 38 62 39 2 83 36 15 26 60
373128 96 73 74 10 1 12 42 22 2 77 33 33 32 57 13 14 82 57 12 39 3 58 80 14 87 85
37444 69 109 119 ^
375283 0 102 55 53 41 60 88 25 67 58 76 44 22 68 118 108 40 95 96 81 90 85 28 77
37618 11 37 72 93 60 110 124 119 95 131 91 37 109 126 8 73 69 72 80 17 83 5 76 20
37732 15 10 1 103 18 22 116 98 9 51 104 102 44 33 15 12 24 31 89 1 6 28 101 8 64
37872 106 30 5 52 89 111 39 108 64 85 17 57 124 22 105 78 115 3 40 108 66 108 77
379128 103 44 35 38 13 95 10 111 63 98 117 61 51 126 69 96 70 70 59 39 13 97 33
380112 2 77 7 123 70 83 29 66 67 49 79 19 104 115 14 60 2 55 40 71 33 28 114 51 91
38117 46 45 128 57 87 62 25 115 38 50 55 90 74 8 51 102 79 43 94 36 122 94 12 41
38236 25 104 91 24 7 99 80 30 126 32 63 122 107 114 27 28 79 41 12 35 51 115 122
38370 22 79 65 2 88 27 17 59 15 23 44 57 5 65 6 26 78 80 125 93 84 100 45 22 129
38468 36 111 74 118 11 50 42 120 47 21 8 86 112 26 67 60 99 45 93 47 8 38 59 52 56
385124 20 82 18 117 24 18 46 106 19 117 26 41 47 45 130 7 15 1 4 5 100 10 85 50 44
38611 48 92 119 108 42 118 125 ^
387272 0 8 61 99 70 96 20 87 123 134 82 22 2 110 118 33 86 5 7 5 94 56 15 60 96 54
38813 22 55 99 4 25 105 17 37 69 10 38 117 117 30 70 13 9 109 115 62 94 52 66 117
389100 135 7 75 23 5 81 110 31 118 29 1 62 11 41 88 109 119 102 37 3 30 123 47 31
39056 134 29 124 116 118 99 21 56 77 91 23 37 135 81 44 51 67 95 51 133 30 57 67
391116 122 48 100 7 132 97 106 69 93 4 95 125 102 103 119 81 57 133 96 37 118 50
392117 113 81 127 17 45 103 32 121 129 60 43 65 127 30 36 132 110 52 53 35 71 12
39376 22 72 130 112 99 76 26 21 73 63 63 97 23 58 115 132 114 1 132 31 35 18 23 54
39430 53 118 37 35 84 94 60 100 3 47 18 110 105 87 57 63 76 43 52 45 46 49 65 12
39510 42 66 60 117 34 19 92 5 28 76 9 126 101 125 32 38 34 15 7 62 32 21 3 43 69
39631 109 123 51 116 135 130 129 130 63 14 57 80 62 15 126 31 105 83 108 120 80
397124 46 98 105 91 6 6 27 7 58 128 78 7 79 63 84 77 74 128 65 61 95 121 17 24 123
398117 51 122 ^
399284 0 44 71 43 20 126 58 53 47 98 18 19 119 93 29 70 39 94 112 44 115 135 98 82
40010 67 29 102 113 68 80 19 75 1 91 114 87 80 7 40 37 86 120 16 104 136 117 82
401138 32 65 114 119 137 121 8 12 46 126 26 119 73 130 60 76 113 100 14 133 26 116
40234 120 80 95 84 53 15 24 44 51 4 10 23 77 24 99 66 37 54 63 42 136 21 34 76 5
40317 128 101 1 59 40 113 112 32 97 31 93 105 79 91 18 39 1 103 132 51 68 124 111
40413 97 43 128 69 84 85 72 15 12 26 87 16 16 92 101 13 77 4 118 89 103 56 42 16
40560 44 39 126 46 18 83 93 41 105 3 82 106 115 91 6 4 54 115 15 120 109 113 48 41
4069 95 20 62 67 105 111 25 132 7 116 46 138 44 83 61 124 131 35 107 6 109 81 114
40767 41 137 77 56 74 73 34 12 14 69 52 11 98 47 54 83 81 6 1 15 88 35 139 80 83
40849 89 27 47 130 92 133 87 51 112 76 49 109 49 57 93 73 22 117 50 64 58 97 139
40936 131 111 133 58 33 8 88 55 38 90 46 30 118 57 29 82 74 41 117 38 46 94 92 5
410105 15 117 70 103 68 60 120 48 21 110 85 40 81 66 ^
411291 0 46 113 52 134 79 74 64 57 18 23 9 52 8 16 103 57 138 59 59 65 92 2 7 130
41292 8 34 40 86 131 140 100 112 4 42 1 110 108 43 37 15 67 19 35 94 61 130 98 35
41388 34 65 104 56 126 118 50 87 10 81 109 90 86 118 32 6 114 88 39 38 39 62 3 12
414134 72 137 35 75 81 115 106 140 112 11 123 41 103 45 95 84 71 107 13 26 110 96
41562 16 109 84 59 53 38 27 8 28 13 32 137 17 138 41 122 36 99 65 99 83 36 112 29
41649 70 96 126 136 131 116 3 18 17 126 142 14 37 141 141 123 42 13 20 83 42 139
41783 54 49 58 42 7 137 29 48 16 121 127 34 52 140 106 128 58 36 124 83 24 69 54
41861 112 17 6 95 97 24 57 86 124 59 71 119 67 1 109 54 68 49 57 132 32 5 71 113
41940 80 104 75 106 133 31 126 130 104 62 9 39 44 66 116 141 135 96 132 19 41 121
420126 124 77 8 4 60 82 6 101 124 89 51 123 48 40 85 77 21 112 10 69 66 115 87 16
421108 30 84 65 80 103 32 131 134 73 47 10 63 39 50 93 37 135 114 69 48 34 58 23
42227 133 37 9 40 98 41 115 99 70 83 29 42 67 133 55 79 80 91 122 12 2 115 112 47 ^
423293 1 33 13 99 138 1 42 89 118 87 113 99 12 134 142 100 38 5 55 75 14 110 108
42442 64 130 79 138 62 64 69 57 11 123 25 59 16 111 94 24 65 30 51 119 48 107 92
42584 69 28 136 143 54 20 6 70 47 142 64 4 65 59 73 99 134 146 102 125 116 57 137
426137 72 48 128 78 5 80 63 54 85 30 22 129 68 21 21 74 28 128 107 27 60 2 93 95
42771 37 11 37 15 39 102 3 104 65 80 59 52 113 34 20 67 60 27 81 135 46 106 106
428102 68 128 17 15 100 124 15 43 136 122 100 67 142 35 14 53 120 2 89 93 99 73 9
429122 39 77 15 96 90 43 79 134 60 92 105 55 96 31 119 77 97 72 23 140 38 30 43 83
430136 88 107 117 72 109 118 58 91 119 73 95 100 59 138 123 54 49 143 50 133 66
431106 45 80 88 42 93 5 59 77 101 74 110 104 40 92 19 77 76 86 102 129 3 144 101
432139 134 56 90 18 91 94 85 55 10 137 11 58 1 107 113 70 22 7 56 29 143 111 8 46
43345 116 122 129 89 7 121 53 95 14 49 118 62 125 91 37 97 15 35 100 63 140 63 50
43451 58 26 127 6 45 59 102 121 114 85 141 135 10 72 19 106 66 66 41 53 13 38 1 21
435103 50 108 46 119 ^
436297 1 46 31 132 112 28 63 124 97 129 43 40 72 99 107 132 137 96 139 99 145 121
437144 118 37 81 39 94 60 55 109 47 109 110 75 42 12 139 137 43 128 106 107 19 126
43812 101 148 127 15 117 125 125 62 96 13 76 70 96 101 110 138 8 95 76 143 17 32
43997 79 149 39 31 94 123 21 41 135 55 84 70 33 135 118 50 62 121 81 1 45 144 93
44060 5 64 137 8 105 91 82 67 27 113 119 53 18 98 79 48 84 32 135 128 5 1 20 76 17
44185 108 72 36 141 140 49 150 105 104 3 149 14 54 18 148 64 49 125 37 28 28 101
44222 104 91 32 82 117 12 114 69 58 2 58 115 9 108 47 59 65 14 92 7 4 86 98 16 82
44392 95 38 94 10 10 48 97 104 66 115 97 142 115 122 119 40 97 16 32 47 34 88 89
44426 50 12 76 80 51 40 9 133 24 44 40 122 84 108 22 142 140 99 44 15 54 8 42 125
445150 130 21 79 124 62 46 119 15 29 91 57 150 42 138 71 61 68 80 114 6 1 70 121
44618 35 113 56 87 86 10 73 14 29 41 72 89 1 133 87 101 123 59 90 142 77 133 52 78
44748 34 138 134 27 17 60 131 147 61 93 148 39 132 49 62 71 36 91 4 139 49 100 120
44843 113 144 30 94 73 127 40 125 ^
449313 1 35 97 95 76 105 88 32 138 30 69 61 40 47 21 107 6 39 81 114 53 125 53 147
45014 4 73 146 96 98 13 136 11 98 117 138 153 67 146 71 99 88 7 139 24 13 35 47 97
451145 74 36 119 3 51 84 48 119 53 49 15 79 17 120 103 148 64 30 41 97 120 75 111
45263 58 131 134 18 13 10 48 18 16 48 43 15 54 18 41 47 122 144 80 92 145 77 1 33
45389 54 46 78 48 21 54 43 40 53 24 16 73 42 94 29 44 34 151 152 23 123 12 142 140
45443 37 88 29 19 35 72 96 151 130 62 112 34 36 91 120 50 112 138 2 105 60 68 137
455131 5 17 19 139 74 11 120 78 149 58 128 15 104 16 126 78 20 57 134 71 49 90 76
456108 126 100 54 68 39 132 153 42 147 146 124 62 87 35 75 61 65 46 100 82 105 113
45731 63 5 95 54 71 77 127 150 80 36 144 2 130 59 74 39 3 152 121 122 18 117 12
458117 141 118 135 62 36 69 5 39 53 150 52 153 143 30 66 96 126 131 56 137 8 7 86
459142 14 7 111 141 93 136 137 134 43 12 89 23 44 9 152 146 121 97 19 38 110 91 67
46014 32 110 66 68 8 130 84 73 118 59 24 41 72 121 150 55 37 138 27 104 66 124 9
46151 109 47 125 109 148 8 29 47 72 146 149 61 93 10 20 54 15 76 133 125 106 110
46267 ^
463330 0 23 9 26 136 27 51 115 122 44 106 6 146 108 113 85 51 8 96 47 56 137 62 59
46489 143 71 140 14 85 156 139 99 154 30 53 115 35 147 108 148 58 52 28 103 19 92
46595 152 152 10 11 13 155 67 11 83 101 69 153 152 45 141 14 120 129 140 119 59 2
46689 73 70 83 29 16 67 81 29 1 54 65 96 117 2 37 47 128 33 3 89 108 98 139 49 78
46727 103 39 119 94 132 90 38 132 55 65 131 90 58 2 54 100 69 118 22 44 19 7 148
46893 25 29 123 81 64 131 55 30 1 89 38 97 82 64 9 28 86 123 151 10 133 40 154 102
4694 111 65 9 63 59 124 116 72 105 76 57 137 97 32 145 108 78 112 50 43 34 75 20
47022 129 68 11 118 74 125 118 57 17 20 129 53 65 61 144 1 17 142 156 52 100 54 15
47120 59 52 63 131 20 57 124 31 125 46 106 76 92 8 98 154 152 80 114 15 140 136
472112 100 17 92 25 151 150 80 99 69 83 49 43 156 102 19 57 122 96 30 3 39 134 40
47332 75 5 76 127 138 99 17 57 52 150 130 18 127 33 23 116 107 78 77 77 42 69 68
47448 41 69 33 75 40 49 128 103 4 146 93 10 83 66 96 152 30 38 12 33 5 39 47 41 34
47560 74 20 42 156 67 46 56 102 89 3 124 81 99 104 56 50 8 61 74 55 15 87 108 28
476138 47 93 60 2 124 46 126 103 91 145 36 25 116 122 51 ^
477322 0 75 7 107 158 81 105 154 90 20 125 77 114 69 92 7 58 21 98 154 50 128 149
478117 127 153 45 3 18 121 86 29 71 79 101 2 5 22 143 10 27 53 146 157 148 112 33
47922 80 123 24 147 1 112 82 159 63 74 97 109 33 151 32 89 87 132 117 46 129 59
480115 91 114 118 37 21 9 94 60 25 89 47 79 110 55 12 143 99 87 43 88 56 57 160 76
48112 71 128 77 146 117 95 105 42 66 3 76 20 76 101 100 118 149 45 26 143 148 32
48257 39 129 19 31 84 123 1 152 135 5 54 30 13 125 68 30 62 101 51 142 5 94 83 20
483116 24 107 109 105 91 42 17 27 93 69 3 139 68 79 38 84 2 85 128 126 122 131 46
48417 35 98 42 26 111 100 29 120 55 84 114 109 145 14 18 138 14 9 85 7 18 129 91 2
48594 51 133 82 87 123 64 39 8 103 38 75 110 78 7 9 45 115 42 138 135 86 78 16 62
48652 75 159 54 151 121 149 77 74 16 85 47 102 105 82 119 10 67 137 153 148 135 28
48749 26 151 153 36 80 11 130 113 24 44 30 102 24 58 133 122 140 99 24 156 54 119
48842 115 140 90 132 19 94 2 157 99 136 19 71 7 130 153 108 51 21 58 70 74 137 1
48940 111 149 5 103 6 27 76 141 23 125 140 1 72 29 152 103 87 51 93 29 80 132 77
490123 153 68 159 14 98 114 158 121 158 81 131 ^
491322 0 35 93 109 125 119 10 10 19 135 26 4 74 135 35 120 129 113 92 17 29 47 88
49214 159 149 87 45 36 75 68 22 138 20 59 61 144 151 11 107 6 153 81 114 43 85 157
49397 148 118 73 126 56 58 137 96 11 98 67 98 103 57 146 21 59 88 151 139 148 127
49425 17 47 115 34 160 109 107 51 64 28 69 13 49 149 69 141 90 93 118 64 10 1 67
49580 35 111 13 58 101 124 132 147 154 18 162 6 162 33 5 34 142 41 161 82 114 70
49692 145 57 155 137 114 79 44 36 48 48 21 14 13 40 33 14 150 33 32 54 143 14 4
497101 142 23 93 136 132 120 147 17 38 163 143 5 52 46 151 130 32 72 34 124 150 51
498100 112 128 126 65 10 28 87 81 159 131 19 99 54 125 110 58 119 28 78 129 104
499140 126 38 154 27 114 61 153 90 66 98 76 50 158 48 39 82 123 22 147 136 114 52
50037 35 75 41 15 150 60 52 55 103 21 23 129 95 24 71 47 97 130 50 140 144 106 100
5019 64 19 117 122 71 92 8 77 156 97 121 98 85 2 36 39 109 143 23 120 156 133 93
502154 36 66 116 131 160 127 162 161 46 142 14 141 81 141 63 86 117 104 3 146 39
503127 34 133 102 106 91 57 9 28 60 61 7 158 12 80 26 8 122 80 44 63 68 49 158 21
50432 81 150 15 141 108 161 64 46 124 123 31 99 27 105 109 98 112 144 ^
505336 1 34 161 107 149 48 67 138 109 156 104 37 133 60 80 84 81 160 9 16 96 164 1
50695 112 4 86 163 116 98 103 55 31 8 56 37 36 127 32 9 89 103 31 100 161 85 106
507119 89 154 43 115 162 137 108 128 38 42 155 103 9 62 65 102 122 10 138 160 125
50847 158 43 91 69 123 132 35 121 4 110 89 130 69 29 139 69 53 70 83 29 163 67 41
5099 108 34 45 76 87 2 144 164 98 33 160 79 78 48 89 9 38 134 93 146 79 54 122 80
51038 112 55 55 101 70 8 129 44 70 59 98 149 24 136 124 138 63 25 166 83 51 34 91
51145 30 118 59 28 87 72 44 116 28 36 103 101 113 10 114 62 111 71 65 126 53 19
512114 86 42 85 36 57 137 57 159 95 88 78 72 20 23 14 65 10 22 129 68 1 68 74 75
513108 7 7 147 109 13 35 51 104 158 164 122 126 2 50 4 132 127 59 52 13 81 20 47
514107 74 148 115 46 106 46 82 115 68 144 142 60 104 15 90 136 102 100 134 42 15
515141 100 40 49 49 73 166 13 156 82 166 37 82 96 137 130 166 134 20 139 45 122 56
516107 98 79 124 17 32 130 120 165 77 23 130 96 67 68 47 37 12 29 18 38 158 19 160
51755 147 39 118 83 121 96 43 137 33 66 86 112 147 155 149 140 5 19 17 148 161 10
51844 159 146 57 16 26 102 49 3 104 61 59 74 56 10 165 31 54 25 142 157 37 58 165
519128 154 73 50 149 94 137 ^
520330 1 61 51 65 132 23 169 116 122 14 66 7 98 131 72 69 127 72 163 125 68 69 51
52147 159 31 164 71 118 50 83 113 81 127 153 45 137 134 121 68 163 26 43 65 127
522166 138 98 144 18 53 137 139 148 76 158 4 62 78 167 102 144 94 55 141 63 29 97
52391 24 115 166 80 69 132 99 1 120 23 88 64 87 118 37 137 152 94 60 168 71 47 52
524110 37 155 125 63 42 43 52 11 12 151 31 12 44 110 32 128 117 68 87 24 39 164 76
525145 58 101 91 100 140 151 143 130 32 21 3 111 1 31 75 123 153 116 135 130 27
526164 165 116 23 12 62 83 24 133 139 49 74 154 80 158 80 64 105 91 6 142 27 75 24
527128 112 41 79 29 84 145 40 128 99 95 95 19 17 160 89 15 17 84 64 11 93 10 66 78
52873 127 148 18 129 139 143 49 150 9 84 82 154 85 15 88 82 60 87 19 12 133 58 20
52939 65 51 141 134 27 70 167 120 117 86 60 16 44 16 57 132 18 142 85 104 59 47
530141 58 2 66 96 46 119 153 40 110 126 103 90 144 13 26 106 144 80 145 134 103 95
53124 44 21 84 140 13 97 104 140 99 6 147 54 83 42 106 131 54 96 135 67 118 121 81
532109 10 53 132 112 117 81 33 155 49 61 38 119 1 13 102 131 148 94 131 143 67 123
533148 89 104 135 72 145 152 76 87 6 66 2 71 123 77 114 108 59 123 166 62 96 140
53494 149 116 169 ^
535349 0 125 17 93 82 80 110 156 147 156 99 154 4 29 90 163 120 84 113 56 8 157 29
53661 169 141 113 78 48 50 13 138 11 50 61 99 106 2 107 6 117 81 114 34 49 112 52
537130 82 73 108 20 22 110 60 11 98 22 62 58 48 146 149 23 88 142 139 121 91 16
538163 2 88 171 133 100 62 51 46 10 24 150 49 131 60 114 63 84 91 64 165 138 40 44
539172 111 141 58 74 115 96 129 145 164 153 170 126 24 169 16 115 41 125 46 87 61
54092 145 39 155 92 78 70 35 27 21 48 21 151 159 40 15 5 132 170 23 18 107 160 150
54156 133 23 66 109 123 102 102 172 166 145 116 151 34 1 151 130 5 36 34 97 114 15
54282 128 112 119 99 29 138 165 42 36 159 95 19 63 36 89 101 40 92 1 33 93 104 113
543126 2 136 96 52 108 90 57 89 31 5 113 30 39 37 96 4 147 127 105 43 165 35 75 23
544143 105 24 25 10 94 12 160 102 95 170 71 20 70 112 23 95 144 61 73 137 55 1 81
54595 26 65 172 41 147 79 103 80 40 121 36 12 64 98 169 93 111 115 48 127 9 39 107
546131 115 118 162 161 10 142 14 123 54 141 36 41 99 77 140 128 167 82 25 106 57
54770 64 21 19 15 34 126 149 167 53 163 127 86 35 8 54 23 40 140 3 169 45 150 152
54896 81 143 28 28 124 87 13 90 9 87 109 53 67 164 28 131 89 149 42 55 126 79 132
54974 19 133 30 68 72 75 148 9 10 72 152 144 83 106 153 74 163 98 152 ^
550375 1 94 28 13 8 20 28 18 118 5 140 89 67 171 64 152 85 61 101 80 154 149 34
551115 135 128 108 110 20 33 128 103 35 38 57 95 10 111 151 98 29 149 7 82 69 96
552114 26 103 171 101 53 121 24 2 121 51 35 70 83 29 154 67 5 167 63 16 27 58 60 2
55399 128 71 33 160 70 51 3 44 149 2 89 84 101 43 18 113 71 38 94 55 46 74 52 139
554102 35 43 50 80 122 6 100 88 129 36 25 148 47 24 7 55 36 30 82 32 19 78 63 26
55571 28 167 85 56 167 95 159 78 26 66 35 65 90 44 159 105 59 15 67 57 137 21 132
55650 70 78 36 169 5 172 56 1 22 129 68 168 23 74 30 99 138 174 120 91 153 8 42 68
557158 155 104 99 133 5 135 96 82 59 52 144 36 20 38 62 29 112 106 46 106 19 73 70
55841 135 133 42 95 15 45 136 93 100 98 173 6 132 55 4 4 31 64 130 162 156 64 157
55919 46 96 92 103 139 134 2 94 18 86 38 89 62 61 79 157 14 112 111 156 32 14 85
56078 31 59 20 1 161 169 149 29 122 150 133 37 102 30 109 65 85 51 174 110 164 66
56177 76 111 119 131 95 5 1 166 103 134 141 17 158 123 137 48 165 175 102 13 3 86
56243 23 47 56 150 165 4 36 174 115 157 168 13 147 119 109 55 41 140 67 27 31 27
56353 126 17 163 116 122 160 60 7 92 113 66 45 109 60 151 125 62 39 39 17 153 13
564152 53 94 50 53 89 57 127 153 45 119 104 121 56 145 172 19 41 103 166 108 68
565126 12 53 131 127 148 52 134 168 50 48 155 72 132 82 37 129 63 175 160 ^
566366 1 73 15 79 139 71 51 132 81 135 111 166 61 37 60 118 37 92 134 94 60 150 53
56747 25 110 19 137 107 27 176 43 16 145 146 142 165 12 17 92 166 110 117 41 69 6
56812 164 76 109 40 101 82 82 131 134 115 143 112 32 164 146 93 162 31 66 123 144
56980 135 94 137 156 107 157 173 62 65 176 124 112 4 65 127 44 131 53 19 105 91
570149 106 27 57 158 92 85 14 79 20 84 127 174 128 72 68 59 171 17 124 80 167 8 57
57128 172 66 144 48 42 37 109 121 18 120 103 116 13 132 39 73 145 76 158 43 82 33
57251 153 164 97 13 2 3 20 24 114 98 9 25 131 102 99 86 42 16 26 159 39 105 161
573133 49 59 41 20 105 31 136 30 87 10 119 135 13 83 99 58 45 99 156 26 61 135 143
57480 118 107 76 77 24 44 12 66 95 147 61 86 140 99 167 138 54 47 42 97 122 18 60
57590 40 73 85 63 82 1 35 96 94 81 54 15 128 40 52 2 101 1 165 93 113 130 85 95 98
57658 105 112 53 68 108 72 100 152 49 87 140 39 154 62 114 77 105 63 50 87 157 26
57778 122 67 140 71 170 119 5 93 64 50 104 144 129 138 75 130 4 178 60 139 120 54
578113 32 2 133 17 43 163 129 89 72 149 155 30 38 7 138 5 44 61 69 76 175 107 6 93
57981 114 28 25 82 22 118 58 73 96 175 177 92 36 11 98 171 38 28 42 146 125 178 88
580136 139 103 67 10 151 151 70 153 115 94 32 51 34 177 173 132 49 119 54 96 45 78
58173 64 159 120 22 20 154 111 117 58 56 109 72 143 ^
582372 1 136 146 144 170 90 15 169 180 88 41 89 10 60 52 92 145 21 155 47 42 61 26
58318 176 48 21 124 141 40 179 178 114 143 14 164 71 142 132 11 124 23 39 82 114
58484 57 163 130 127 89 133 16 138 151 130 160 34 70 78 161 64 92 112 110 72 175
585102 138 179 173 159 59 19 27 18 53 92 22 65 156 170 57 104 86 126 148 118 155
58678 43 63 90 48 80 168 142 68 12 39 174 69 168 147 118 96 34 129 35 75 5 107 60
587170 180 147 85 3 133 75 95 152 71 175 43 94 178 50 144 16 46 101 46 165 45 68
588163 38 172 5 138 61 85 62 177 76 36 167 19 53 151 66 66 97 3 100 164 12 98 131
58970 109 162 161 156 142 14 105 27 141 9 178 81 50 113 110 131 37 16 79 12 34 37
590167 173 10 152 7 81 140 158 26 136 82 50 172 154 45 160 31 122 167 142 9 150
591125 51 54 125 174 10 124 51 177 81 173 69 109 8 22 155 19 86 62 149 33 37 108
59234 96 29 174 133 167 50 54 66 130 9 1 36 134 108 65 97 126 56 163 71 83 88 10 1
5938 178 22 6 112 169 116 89 43 153 40 146 85 31 89 74 154 137 28 115 117 122 108
59498 8 27 110 103 176 17 20 27 77 10 93 145 80 17 143 165 76 69 78 102 20 91 171
59595 29 115 176 166 109 39 23 70 83 29 148 67 163 161 33 4 15 46 42 2 69 104 53
59633 160 64 33 155 14 131 160 59 78 71 19 176 107 65 38 82 55 40 56 40 115 84 29
59725 44 68 104 176 76 64 123 18 25 136 23 6 171 31 30 30 58 14 13 72 57 14 41 177
598^
599363 0 135 69 16 167 79 143 46 178 26 3 65 58 36 135 97 35 175 51 152 57 137 173
600108 10 54 78 4 153 173 164 48 177 22 129 68 168 167 74 174 91 106 174 96 75 129
601168 34 36 158 147 88 75 101 149 103 64 42 59 52 112 180 20 30 22 173 80 98 46
602106 179 65 30 17 127 125 26 87 15 5 136 85 100 66 141 182 124 15 156 148 15 56
60398 146 156 48 149 3 14 96 52 79 115 134 170 54 178 54 22 73 30 45 39 133 182 96
604103 148 176 6 45 62 183 51 180 153 145 145 117 21 90 118 109 21 62 22 101 49 53
60511 142 86 132 66 69 44 79 87 115 55 5 169 150 63 110 109 177 150 91 129 40 149
606159 102 165 3 70 27 175 23 56 126 165 164 20 158 91 157 136 157 131 111 69 39
60733 132 43 19 175 179 37 118 9 155 116 122 128 52 7 84 89 58 13 85 44 135 125 54
608183 23 161 145 173 136 29 62 50 13 57 25 127 153 45 95 64 121 40 121 140 171 9
60971 166 68 28 102 4 53 123 111 148 20 102 160 34 8 139 32 116 66 13 113 63 143
61097 63 10 59 124 66 41 132 71 115 106 151 46 22 45 118 37 67 124 94 60 140 43 47
61110 110 9 127 97 7 156 43 180 125 126 137 145 12 2 82 146 100 117 26 59 180 181
612164 76 89 30 101 77 72 126 114 95 143 102 32 149 131 83 157 31 61 123 139 60
613135 74 169 122 151 102 137 168 62 55 166 119 97 163 60 112 24 116 38 178 105 91
614134 86 27 47 138 72 70 183 79 15 84 117 154 128 57 53 39 161 88 ^
615393 1 92 72 151 33 183 164 42 112 32 10 5 93 97 18 112 71 92 168 116 179 186 65
616137 68 134 3 82 9 19 121 148 65 160 173 158 167 90 66 180 172 99 86 83 86 26 16
61710 135 23 81 137 125 17 19 25 183 73 7 104 185 79 165 119 119 176 59 75 18 5 59
618132 26 21 127 119 80 94 83 52 61 24 44 4 50 55 115 29 70 140 99 159 130 54 15
61942 89 114 173 28 50 16 33 53 47 58 180 19 64 78 49 30 186 104 32 44 157 85 1
620149 85 97 114 77 63 58 50 89 80 21 36 84 72 60 152 25 87 108 15 138 54 106 77
62197 23 42 55 149 181 62 106 43 132 31 138 111 176 93 40 10 96 128 105 114 43 98
6224 146 20 107 120 14 113 181 101 1 19 155 113 57 64 117 131 6 22 186 138 184 36
62361 29 36 175 107 6 61 81 114 20 180 42 169 102 26 73 80 151 153 68 4 11 98 139
6246 175 34 146 93 154 88 128 139 79 35 2 135 119 46 129 91 86 179 51 18 169 141
625108 49 103 46 72 21 70 49 64 151 96 185 175 130 111 85 58 32 101 40 101 131 136
626139 170 70 10 169 175 73 41 69 177 45 47 92 145 11 155 22 22 56 21 13 166 48 21
627109 131 40 174 178 104 128 9 149 51 132 122 173 119 23 24 67 109 74 32 158 110
628117 74 123 6 118 151 130 150 167 34 55 58 146 54 72 112 105 57 160 82 123 159
629153 159 39 19 7 8 33 87 12 50 146 150 37 104 71 126 133 108 145 68 38 38 90 43
63075 148 122 43 2 39 154 54 163 147 113 91 29 109 35 75 182 87 35 155 170 127 80
631185 118 60 95 142 71 165 28 84 168 25 144 178 31 81 41 160 25 53 143 ^
632381 1 14 172 163 130 45 69 46 145 36 36 151 169 13 135 42 26 81 153 76 148 178
63390 131 30 101 162 161 132 142 14 89 3 141 175 146 65 26 89 94 99 187 8 55 162 2
63413 143 173 2 120 173 41 132 150 2 112 42 18 140 130 37 128 23 106 159 118 167
635150 101 11 30 109 150 184 124 19 169 73 165 53 109 158 172 147 11 46 38 149 25
63621 92 184 64 179 158 133 135 34 38 58 114 9 183 4 118 76 49 89 102 40 163 47 75
63780 176 175 8 154 14 180 104 153 84 89 11 129 8 138 85 181 73 66 154 121 20 115
63893 114 108 82 182 19 86 103 176 183 186 177 53 10 69 137 56 1 135 141 68 69 54
63986 12 75 171 87 187 107 144 150 93 23 7 70 83 29 140 67 139 153 183 178 189 30
64018 2 29 72 29 33 160 56 9 123 164 107 136 19 70 31 177 152 99 57 38 66 55 32 32
64124 83 60 21 1 36 52 80 168 44 32 115 184 25 120 181 172 155 189 22 30 26 180 5
64264 49 188 1 28 111 57 176 167 67 131 22 160 186 169 65 34 30 117 91 17 163 39
643134 57 137 155 90 170 42 78 170 141 167 158 42 177 22 129 68 168 143 74 150 85
64482 174 78 63 111 156 28 12 158 141 76 57 77 125 79 40 12 59 52 88 156 20 24 182
645149 56 92 46 106 167 59 189 121 119 14 81 15 165 136 79 100 42 117 182 118 175
646138 124 3 50 74 134 156 36 143 181 180 96 22 61 97 134 164 24 166 30 10 61 6 33
6479 115 176 84 97 142 152 15 50 165 45 168 135 133 127 93 15 66 94 91 9 32 16 95
64837 29 171 118 68 108 66 63 20 55 186 ^
649396 1 97 10 5 160 132 18 83 73 159 141 55 120 31 131 141 102 138 3 52 9 148 189
65056 99 165 146 2 140 64 157 100 121 113 102 24 21 24 123 16 10 139 152 19 109
651146 116 122 92 43 7 75 62 49 170 58 26 117 125 45 147 5 125 136 155 118 2 26 50
652161 21 182 127 153 45 68 19 121 22 94 104 144 166 35 166 23 176 75 188 53 114
65393 148 177 66 151 16 156 121 180 98 48 179 95 63 107 97 45 1 23 97 57 23 132 53
65479 97 124 19 188 18 118 37 22 106 94 60 122 25 47 176 110 184 109 79 164 120 43
655153 89 90 128 109 12 168 64 110 82 117 192 41 171 163 164 76 53 12 101 68 54
656117 78 59 143 84 32 122 104 65 148 31 52 123 130 24 135 38 151 95 142 93 101
657159 62 37 148 110 70 127 51 85 181 89 11 142 105 91 107 50 27 29 102 36 43 165
65879 6 84 99 118 128 30 26 3 143 17 68 66 139 187 15 165 158 24 88 20 179 174 81
65979 18 106 47 74 150 104 179 162 59 131 62 116 166 82 184 188 97 136 41 136 167
660140 143 175 72 42 174 148 75 74 71 86 14 16 191 117 11 63 119 119 186 182 13
661171 49 182 80 167 73 147 119 107 164 41 57 181 168 29 114 26 184 121 101 80 76
66265 34 49 24 44 191 38 25 91 5 58 140 99 153 124 54 184 42 83 108 155 4 20 191 3
66329 35 40 180 7 40 66 25 12 180 86 26 38 139 73 1 137 79 85 102 71 39 28 44 77
66456 190 12 66 72 30 152 7 87 84 190 126 48 100 77 91 186 36 31 143 163 50 94 25
665126 1 114 105 170 93 22 173 90 116 87 96 19 74 4 122 183 83 120 177 113 169 181
66677 182 1 149 186 ^
667384 1 25 56 85 107 177 6 186 138 184 28 61 184 191 175 107 6 29 81 114 12 156 2
668137 86 189 73 64 127 129 44 167 11 98 107 169 143 26 146 61 130 88 120 139 55 3
669189 119 87 22 105 67 78 147 51 2 161 109 84 49 87 38 48 192 62 25 64 143 72 169
670151 106 111 53 58 8 93 8 85 123 120 131 170 38 2 169 167 49 41 37 153 21 39 92
671145 190 155 177 185 48 13 5 150 48 21 85 115 40 166 178 88 104 1 125 19 116 106
672141 111 23 43 101 58 187 150 78 101 50 107 185 86 151 130 134 143 34 31 26 122
67338 40 112 97 33 136 50 99 127 121 159 7 19 170 187 1 79 191 26 130 118 5 104 47
674126 109 92 129 52 30 193 90 35 67 116 90 3 181 39 122 30 155 147 105 83 21 77
67535 75 174 55 190 131 154 95 72 185 94 36 95 126 71 149 4 68 152 180 144 146 7
67649 33 152 188 29 111 194 172 148 125 35 59 36 125 11 36 141 149 183 125 27 1 71
677133 61 138 168 85 131 5 96 162 161 117 142 14 79 183 141 165 126 55 11 74 84 79
678167 3 40 142 177 193 128 173 192 100 163 16 127 145 182 97 17 193 120 115 32
679108 18 96 154 103 152 150 86 181 15 99 135 179 124 194 164 68 160 43 109 138
680152 142 6 21 23 149 20 11 82 164 44 159 148 133 115 24 28 53 104 9 183 179 108
68156 39 84 87 30 163 32 70 75 166 170 8 139 9 175 99 143 64 89 186 114 183 133 85
682161 63 61 154 111 15 115 78 109 108 72 177 14 71 103 176 173 176 157 38 10 54
683132 41 186 130 126 63 69 39 76 7 65 171 82 172 102 124 140 83 113 ^
684396 1 189 70 83 29 132 67 115 145 151 170 181 14 192 2 187 40 5 33 160 48 183
68591 132 83 112 177 62 189 153 128 91 49 38 50 55 24 8 8 51 36 13 175 28 36 56
686160 12 107 168 25 104 157 156 139 165 14 30 192 164 195 56 41 180 159 28 79 41
687144 167 51 115 188 136 154 145 65 2 22 93 83 191 147 23 110 57 137 131 66 138
68826 78 146 125 159 150 34 177 22 129 68 168 111 74 118 77 50 174 54 47 87 140 20
689178 158 133 60 33 45 93 47 8 170 59 52 56 124 20 16 150 117 24 84 46 106 151 51
690158 173 113 111 196 73 15 133 136 71 100 10 85 182 110 143 114 92 185 42 42 118
691156 20 135 173 156 96 180 37 73 134 156 182 150 196 192 45 172 17 167 91 168 68
69289 134 120 190 173 34 141 37 152 111 117 103 61 7 34 62 67 191 190 8 87 21 195
693139 86 44 76 66 55 186 23 31 87 183 5 155 122 191 68 53 149 136 35 115 26 121
694131 102 123 3 42 197 133 179 56 84 165 136 190 130 49 157 80 101 103 97 197 11
69519 118 1 5 119 137 9 104 193 141 116 122 72 38 7 70 47 44 155 43 16 107 125 40
696127 193 105 131 145 108 185 6 50 141 1 167 127 153 45 53 192 121 12 79 84 129
697151 15 166 196 156 60 188 53 109 83 148 162 46 146 6 136 111 160 88 38 169 85
69863 87 97 35 194 3 82 52 13 132 43 59 92 109 4 178 3 118 37 195 96 94 60 112 15
69947 166 110 179 99 69 149 100 43 138 69 70 123 89 12 158 54 90 72 117 182 31 166
700153 164 76 33 2 101 63 44 112 58 39 143 74 32 107 89 55 143 31 47 123 125 4 135
70118 141 80 137 88 81 154 187 ^
702406 0 23 134 103 49 99 44 64 160 68 190 114 105 91 86 22 27 15 74 8 22 151 79
703199 84 85 90 128 9 5 175 129 17 40 59 125 187 194 144 151 3 60 6 158 153 67 58
70418 99 19 53 129 90 179 134 52 124 55 95 138 82 170 167 69 122 13 108 160 119
705115 161 51 14 167 120 47 60 57 86 16 184 96 197 42 98 112 165 154 199 157 21
706168 52 146 66 126 119 93 150 20 36 153 140 194 93 26 156 114 80 80 55 44 13 35
70724 44 191 24 190 63 177 44 140 99 146 117 54 163 42 76 101 134 176 185 177 168
7081 21 19 180 193 12 52 197 191 173 65 19 31 118 59 1 123 72 71 88 64 11 193 37
70963 28 169 184 45 72 195 152 186 87 56 176 112 41 93 77 84 158 29 3 136 142 36
71080 4 119 166 86 98 163 93 1 145 83 102 66 75 191 46 4 94 155 55 120 149 113 148
711181 49 175 180 142 87 5 51 65 92 167 196 186 138 184 23 61 164 171 175 107 6 9
71281 114 7 141 177 117 76 174 73 54 112 114 29 152 11 98 87 154 123 21 146 41 115
71388 115 139 40 183 189 109 67 7 90 52 73 127 51 192 156 89 69 49 77 33 33 182 57
71410 64 138 57 159 136 91 111 33 58 193 88 188 75 118 110 126 170 18 197 169 162
71534 41 17 138 6 34 92 145 185 155 157 170 43 8 140 48 21 70 105 40 161 178 78 89
716196 110 199 106 96 121 106 23 185 28 96 48 167 145 58 91 35 97 180 66 151 130
717124 128 34 16 6 107 28 20 112 92 18 121 30 84 107 101 159 187 19 155 182 181 74
718186 11 120 98 185 104 32 126 94 82 119 42 25 173 90 30 62 96 70 178 176 39 102
71915 150 147 100 78 16 57 35 75 169 35 170 116 144 75 146 ^
720409 1 185 70 12 95 110 71 133 183 52 136 148 144 114 186 17 25 144 164 5 79 178
721172 124 117 19 43 20 93 174 36 125 117 151 109 3 164 55 101 37 122 152 77 131
722168 88 162 161 93 142 14 63 167 141 149 94 39 190 50 68 47 135 198 16 110 153
723177 104 173 192 68 147 179 119 137 166 73 180 169 88 91 24 76 10 80 146 79 128
724150 62 149 194 83 111 171 124 170 156 60 152 27 109 106 120 134 201 184 202 149
72512 198 66 132 12 127 132 133 83 8 12 45 88 9 183 155 92 24 23 76 63 14 163 8 62
72667 150 162 8 115 1 167 91 127 32 89 162 90 159 125 85 129 47 53 154 95 7 115 54
727101 108 56 169 6 47 103 176 157 160 125 14 10 30 124 17 178 122 102 55 69 15 60
728202 49 171 74 148 94 92 124 67 200 184 70 83 29 127 67 100 140 131 165 176 4
729182 2 167 20 193 33 160 43 173 71 112 68 97 157 57 169 138 113 86 44 38 40 55
73019 196 201 31 21 8 165 23 26 41 155 195 183 102 158 25 94 142 146 129 150 9 30
731177 154 195 51 36 175 139 28 59 31 124 167 41 105 173 121 134 130 65 185 17 78
73278 181 137 13 95 57 137 116 51 118 16 78 131 115 154 145 29 177 22 129 68 168
73391 74 98 72 30 174 39 37 72 130 15 163 158 128 50 18 25 73 27 191 150 59 52 36
734104 20 11 130 97 4 79 46 106 141 46 138 163 108 106 191 68 15 113 136 66 100
735193 65 182 105 123 99 72 180 37 22 108 156 10 130 168 141 96 160 22 58 134 151
736162 140 181 187 35 157 7 147 76 163 58 84 129 100 190 153 24 126 32 142 96 107
73788 41 2 14 42 52 186 170 3 82 11 180 119 66 29 56 66 50 171 3 11 77 163 5 150
738112 128 ^
739413 1 47 25 135 129 7 108 19 107 117 102 102 3 28 190 112 165 56 63 165 122 183
740116 28 157 52 73 89 90 169 202 12 111 185 203 91 116 200 97 193 134 116 122 44
74131 7 63 26 37 134 22 2 93 125 33 99 186 77 124 131 94 171 183 50 113 178 146
742127 153 45 32 164 121 203 58 56 108 130 192 166 168 128 39 188 53 102 69 148
743141 18 139 197 108 97 132 74 24 155 71 63 59 97 21 194 180 61 45 204 132 29 31
74485 88 188 164 187 118 37 167 82 94 60 98 1 47 152 110 172 85 55 128 72 43 117
74541 42 116 61 12 144 40 62 58 117 168 17 159 139 164 76 5 193 101 56 30 105 30
74611 143 60 32 86 68 41 136 31 40 123 118 181 135 195 127 59 130 81 53 147 62 13
747124 98 34 79 39 49 145 53 180 94 105 91 71 2 27 5 54 193 7 141 79 199 84 75 70
748128 199 195 160 119 17 20 54 115 187 184 129 146 193 40 201 143 138 57 43 18 94
749204 38 114 80 179 114 47 119 50 80 118 82 160 152 49 112 198 88 155 104 95 151
75036 199 162 100 27 50 47 86 195 16 179 81 192 27 83 107 150 134 194 147 1 158 32
751131 61 111 119 83 140 5 21 133 120 174 78 26 136 109 65 80 40 29 203 25 24 44
752191 14 170 43 162 34 140 99 141 112 54 148 42 71 96 119 161 165 167 148 186 11
7534 180 188 197 42 182 181 168 50 14 26 103 49 1 113 67 61 78 59 196 173 32 53 8
754154 169 30 72 175 152 176 87 36 166 102 36 88 77 79 138 24 188 131 127 26 70
755194 114 146 66 93 158 93 191 125 78 92 51 60 176 26 4 74 135 35 120 129 113 133
756181 29 170 170 137 77 190 46 45 77 157 191 186 138 184 18 61 144 151 175 107 6
757194 81 114 2 126 110 ^
758427 1 85 60 150 73 38 88 90 5 128 11 98 55 130 91 13 146 9 91 88 107 139 16 159
759189 93 35 191 66 28 65 95 51 184 148 57 45 49 61 25 9 166 49 194 64 130 33 143
760112 67 111 1 58 177 80 164 59 110 94 118 170 194 197 169 154 10 41 193 114 190
76126 92 145 177 155 125 146 35 200 124 48 21 46 89 40 153 178 62 65 196 86 175 90
76280 89 98 23 169 4 88 32 135 137 26 75 11 81 172 34 151 130 108 104 34 200 182
76383 12 196 112 84 202 97 206 60 75 69 159 163 19 131 174 157 66 178 195 104 66
764161 104 8 126 70 66 103 26 17 141 90 22 54 64 38 146 168 39 70 199 142 147 92
76570 8 25 35 75 161 3 138 92 128 43 59 185 55 205 95 100 71 123 173 42 126 128
766144 94 176 205 20 139 149 198 59 168 172 109 112 9 33 10 73 154 36 115 97 131
76799 196 144 45 81 22 112 142 72 131 148 83 162 161 78 142 14 53 157 141 139 74
76829 180 35 58 27 115 198 1 90 138 167 89 173 192 48 137 159 114 132 156 58 160
769154 68 76 19 56 5 70 141 64 113 150 47 129 184 73 96 166 124 155 151 55 147 17
770109 86 100 129 201 164 192 149 7 193 56 112 200 107 122 133 63 206 2 40 78 9
771183 140 82 4 13 71 48 4 163 201 57 62 140 157 8 100 204 162 86 117 12 89 147 75
772144 120 85 109 37 48 154 85 2 115 39 96 108 46 164 1 32 103 176 147 150 105 207
77310 15 119 2 173 117 87 50 69 50 202 39 171 69 133 89 72 114 57 195 179 70 83 29
774122 67 85 135 111 160 171 202 172 2 147 183 33 160 38 163 51 92 53 82 137 52
775149 123 98 81 39 38 30 55 14 186 196 11 6 3 155 18 16 26 150 180 168 97 148 25
77684 127 136 119 135 4 30 162 144 195 46 31 170 119 28 190 ^
777443 1 17 96 167 27 91 152 100 106 109 65 164 10 57 71 167 123 209 74 57 137 95
77830 90 2 78 110 101 147 138 22 177 22 129 68 168 63 74 70 65 2 174 18 23 51 116
7798 142 158 121 36 207 207 45 209 170 122 59 52 8 76 20 4 102 69 186 72 46 106
780127 39 110 149 101 99 184 61 15 85 136 59 100 172 37 182 98 95 78 44 173 30 204
78194 156 206 123 161 120 96 132 1 37 134 144 134 126 160 180 21 136 203 119 55
782156 44 77 122 72 190 125 10 105 25 128 75 93 67 13 205 196 14 31 179 142 206 75
783207 159 91 38 8 28 66 43 150 185 193 63 135 5 143 98 143 32 5 125 124 197 103
78414 97 107 102 87 3 18 185 97 155 56 48 165 112 178 106 13 157 32 53 79 85 149
785197 7 106 175 203 71 101 195 92 193 129 116 122 24 26 7 58 11 32 119 7 202 83
786125 28 79 181 57 119 121 84 161 168 50 93 163 131 127 153 45 17 144 121 198 43
78736 93 115 177 166 148 108 24 188 53 97 59 148 126 208 134 192 88 87 112 64 14
788145 61 63 39 97 11 194 165 46 40 199 132 19 11 80 73 178 154 177 118 37 147 72
78994 60 88 201 47 142 110 167 75 45 113 52 43 102 21 22 111 41 12 134 30 42 48
790117 158 7 154 129 164 76 195 188 101 51 20 100 10 201 143 50 32 71 53 31 131 31
79135 123 113 166 135 180 117 44 125 76 33 142 62 3 114 93 19 59 34 34 130 38 170
79274 105 91 56 192 27 205 34 178 202 131 79 199 84 65 50 128 189 185 145 109 17
79349 105 187 174 114 141 183 20 196 128 123 47 28 18 89 189 23 99 70 179 94 42
794114 45 65 98 82 150 137 29 102 183 68 150 89 75 141 21 184 157 80 7 40 37 86
795190 16 174 66 187 12 68 102 135 114 189 137 191 148 12 116 56 96 119 73 130 200
7966 113 100 154 63 26 116 104 50 80 25 14 193 83 ^
797436 1 24 44 191 211 138 11 138 18 140 99 133 104 54 124 42 63 88 95 137 133 151
798116 162 208 193 180 180 173 26 158 165 160 26 6 18 79 33 1 97 59 45 62 51 172
799141 24 37 189 130 145 6 72 143 152 160 87 4 150 86 28 80 77 71 106 16 164 123
800103 10 54 178 106 114 34 85 150 93 175 93 70 76 27 36 152 207 4 42 103 3 120 97
801113 109 181 210 162 154 129 61 166 38 13 53 141 183 186 138 184 10 61 112 119
802175 107 6 170 81 114 207 102 125 65 50 135 73 28 73 75 203 113 11 98 35 115 71
8038 146 202 76 88 102 139 1 144 189 83 15 181 51 13 60 75 51 179 143 37 30 49 51
80420 207 156 44 184 64 125 18 133 97 52 111 194 58 167 75 149 49 105 84 113 170
805179 197 169 149 208 41 178 99 180 21 92 145 172 155 105 131 30 208 200 114 48
80621 31 79 40 148 178 52 50 196 71 160 80 70 69 93 23 159 202 83 22 115 132 6 65
807209 71 167 14 151 130 98 89 34 190 167 68 2 181 112 79 192 82 191 45 55 49 159
808148 19 116 169 142 61 173 185 94 46 146 104 206 126 55 56 93 16 12 121 90 17 49
80944 18 126 163 39 50 189 137 147 87 65 3 5 35 75 156 196 118 77 118 23 54 185 40
810195 95 90 71 113 163 32 116 108 144 74 166 190 15 134 134 188 39 158 172 94 107
811212 23 53 134 36 105 77 111 89 186 124 35 61 7 102 132 67 131 128 78 162 161 63
812142 14 43 147 141 129 54 19 170 20 48 7 95 198 199 70 123 157 74 173 192 28 127
813139 109 127 146 43 140 139 48 61 14 36 60 136 49 98 150 32 109 174 63 81 161
814124 140 146 50 142 7 109 66 80 124 201 144 182 149 2 188 46 92 185 87 112 133
81543 201 205 35 68 9 183 125 72 197 3 66 33 207 163 191 52 57 130 152 8 85 204
816157 81 107 205 187 ^
817462 1 126 54 123 113 85 81 23 41 154 71 210 115 18 89 108 32 157 209 11 103 176
818133 136 77 193 10 209 112 196 166 110 66 43 69 194 36 202 25 171 62 112 82 44
819100 43 188 172 70 83 29 115 67 64 128 83 153 164 195 158 2 119 187 169 33 160
82031 149 23 64 32 61 109 45 121 102 77 74 32 38 16 55 7 172 189 198 200 211 141
82111 2 5 143 159 147 90 134 25 70 106 122 105 114 212 30 141 130 195 39 24 163 91
82228 11 7 76 167 17 81 137 85 86 94 65 149 5 42 66 157 113 204 59 57 137 80 15 70
823207 78 95 91 142 133 17 177 22 129 68 168 43 74 50 60 197 174 3 13 36 106 3 127
824158 116 26 197 192 25 194 155 102 59 52 203 56 20 214 82 49 171 67 46 106 117
82534 90 139 96 94 179 56 15 65 136 54 100 157 17 182 93 75 63 24 168 25 189 84
826156 201 118 156 105 96 112 201 22 134 139 114 116 145 175 11 121 198 99 40 151
82734 72 117 52 190 105 90 20 118 60 83 52 208 205 181 209 16 174 122 206 70 202
828144 71 18 208 8 66 38 135 170 178 53 115 5 138 88 123 17 200 115 119 182 98 9
82987 97 102 72 3 8 180 82 145 56 33 165 102 173 96 213 157 12 33 69 80 129 192 2
830101 165 203 51 86 190 87 193 124 116 122 4 21 7 53 211 27 104 207 197 73 125 23
83159 176 37 114 111 74 151 153 50 73 148 116 127 153 45 2 124 121 193 28 16 78
832100 162 166 128 88 9 188 53 92 49 148 111 193 129 187 68 77 92 54 4 135 51 63
83319 97 1 194 150 31 35 194 132 9 206 75 58 168 144 167 118 37 127 62 94 60 78
834196 47 132 110 162 65 35 98 32 43 87 1 2 106 21 12 124 20 22 38 117 148 212 149
835119 164 76 180 183 101 46 10 95 205 186 143 40 32 56 38 21 126 31 30 123 108
836151 135 165 107 29 120 71 13 137 62 208 104 88 4 39 29 19 115 23 160 54 105 91
83741 177 27 200 14 163 124 ^
838453 0 115 79 199 84 49 18 128 173 169 121 93 17 186 41 89 187 158 90 133 167
839206 188 104 99 31 4 18 81 165 217 75 54 179 62 34 106 37 41 66 82 134 113 215
84086 159 36 142 65 43 125 215 160 149 48 193 24 21 86 182 16 166 42 179 206 44 94
841111 82 181 121 167 132 198 92 48 72 119 57 114 184 200 81 68 122 39 26 84 96 26
84280 1 208 177 217 24 44 191 206 118 209 123 8 140 99 128 99 54 109 42 58 83 80
843122 113 141 96 147 203 183 180 175 158 16 143 155 155 11 1 13 64 23 1 87 54 35
84452 46 157 121 19 27 174 115 130 209 72 123 152 150 87 202 140 76 23 75 77 66 86
84511 149 118 88 44 168 101 94 14 80 145 93 165 73 65 66 12 21 137 192 4 22 83 201
846120 77 113 94 181 195 157 144 124 51 151 33 211 38 131 178 186 138 184 5 61 92
84799 175 107 6 155 81 114 207 87 105 45 40 120 73 18 58 60 193 98 11 98 15 100 51
8483 146 187 61 88 97 139 204 129 189 73 213 171 36 216 55 55 51 174 138 17 15 49
84941 15 197 146 39 174 64 120 3 123 82 37 111 179 58 157 70 134 39 100 74 108 170
850164 197 169 144 198 41 163 84 170 16 92 145 167 155 85 116 25 208 200 104 48 21
85116 69 40 143 178 42 35 196 56 145 70 60 49 88 23 149 192 78 12 95 127 204 55
852199 61 162 212 151 130 88 74 34 180 152 53 210 166 112 74 182 67 176 30 35 29
853159 133 19 101 164 127 56 168 175 84 26 131 104 196 126 40 46 83 6 7 101 90 12
85444 24 216 106 158 39 30 179 132 147 82 60 216 203 35 75 151 181 98 62 108 3 49
855185 25 185 95 80 71 103 153 22 106 88 144 54 156 175 10 129 119 178 19 148 172
85679 102 207 13 208 33 114 36 95 57 91 79 176 104 25 41 210 92 122 62 131 108 73
857162 161 48 142 14 33 137 141 119 34 9 160 5 38 205 75 198 189 50 108 112 ^
858454 1 53 173 192 113 111 102 120 132 22 112 118 20 40 7 8 213 46 129 28 77 150
85911 81 160 49 60 154 124 119 139 43 135 213 109 38 52 117 201 116 168 149 215
860181 32 64 164 59 98 133 15 194 198 28 54 9 183 104 58 176 209 59 12 200 163 177
86145 50 116 145 8 64 204 150 74 93 184 89 111 39 108 108 85 61 13 36 154 61 210
862115 3 84 108 22 152 209 216 103 176 123 126 57 183 10 199 107 186 161 105 51 38
86369 184 26 202 15 171 57 97 77 24 90 33 183 167 70 83 29 110 67 49 123 63 148
864159 190 148 2 99 172 159 33 160 26 139 3 44 17 46 89 40 101 87 62 69 27 38 6 55
8652 162 184 183 190 211 131 6 212 210 138 144 132 85 124 25 60 91 112 95 99 212
86630 126 120 195 34 19 158 71 28 211 217 56 167 7 71 122 70 66 79 65 134 27 61
867147 103 199 44 57 137 65 50 202 78 80 81 137 128 12 177 22 129 68 168 23 74 30
86855 182 174 208 3 21 96 218 112 158 111 16 187 177 5 179 140 82 59 52 188 36 20
869214 62 29 156 62 46 106 107 29 70 129 91 89 174 51 15 45 136 49 100 142 217 182
87088 55 48 4 163 20 174 74 156 196 113 151 90 96 92 191 7 134 134 94 106 130 170
8711 106 193 79 25 146 24 67 112 32 190 85 210 75 15 108 45 73 37 193 205 166 194
8721 169 102 206 65 197 129 51 218 198 208 66 33 120 155 163 43 95 5 133 78 103 2
873185 105 114 167 93 4 77 87 102 57 3 218 175 67 135 56 18 165 92 168 86 203 157
874212 13 59 75 109 187 217 96 155 203 31 71 185 82 193 119 116 122 204 16 7 48
875201 22 89 197 192 63 125 18 39 171 17 109 101 64 141 138 50 53 133 101 127 153
87645 207 104 121 188 13 216 63 85 147 166 108 68 214 188 53 87 39 148 96 178 124
877182 48 67 72 44 214 125 41 63 219 97 211 194 135 16 30 189 132 219 191 70 43
878158 181 ^
879475 0 153 118 37 99 48 94 60 64 189 47 118 110 155 51 21 77 4 43 66 195 196 99
880215 12 110 6 216 24 117 134 205 142 105 164 76 159 176 101 39 218 88 184 165
881143 26 32 35 17 7 119 31 23 123 101 130 135 144 93 8 113 64 207 130 62 201 90
88281 205 11 22 220 94 2 146 26 105 91 20 156 27 193 208 142 178 107 79 199 84 41
8832 128 165 161 109 85 17 174 37 81 187 150 78 129 159 194 184 92 87 23 214 18 77
884153 209 63 46 179 46 30 102 33 29 50 82 126 101 203 78 147 20 138 53 27 117 207
885148 145 32 181 16 13 86 178 16 162 30 175 198 32 90 99 66 177 113 155 124 186
88680 44 60 119 49 106 176 192 65 52 106 27 26 68 92 14 80 211 200 169 213 24 44
887191 202 102 197 111 140 99 124 95 54 97 42 54 79 68 110 97 133 80 135 199 175
888180 171 146 8 131 147 151 221 219 9 52 15 1 79 50 27 44 42 145 105 15 19 162
889103 118 201 72 107 152 142 87 190 132 68 19 71 77 62 70 7 137 114 76 214 36 160
89097 78 220 76 141 93 157 57 61 58 9 125 180 4 6 67 189 120 61 113 82 181 183 153
891136 120 43 139 29 199 26 123 174 186 138 184 1 61 76 83 175 107 6 143 81 114
892207 75 89 29 32 108 73 10 46 48 185 86 11 98 221 88 35 221 146 175 49 88 93 139
893196 117 189 65 201 163 24 208 51 39 51 170 134 1 3 49 33 11 189 138 35 166 64
894116 213 115 70 25 111 167 58 149 66 122 31 96 66 104 170 152 197 169 140 190 41
895151 72 162 12 92 145 163 155 69 104 21 208 200 96 48 21 4 61 40 139 178 34 23
896196 44 133 62 52 33 84 23 141 184 74 4 79 123 192 47 191 53 158 200 151 130 80
89762 34 172 140 41 206 154 112 70 174 55 164 18 19 13 159 121 19 89 160 115 52
898164 167 76 10 119 104 188 126 28 38 75 220 3 85 90 8 40 8 204 90 154 39 14 171
899128 147 78 56 216 191 35 75 147 169 82 50 100 209 45 185 13 177 95 150 ^
900471 0 71 89 139 8 92 60 144 26 142 154 3 122 98 164 216 134 172 58 95 200 224
901201 5 86 36 81 29 63 65 162 76 11 13 196 78 108 55 131 80 66 162 161 27 142 14
90219 123 141 105 6 220 146 209 24 184 47 198 175 22 87 133 38 173 192 205 103 91
90397 115 122 7 92 103 25 2 213 213 36 124 13 62 150 221 61 150 39 45 149 124 104
904134 38 130 208 109 18 32 112 201 96 158 149 215 176 22 44 149 39 88 133 220 189
905193 23 44 9 183 89 48 161 204 54 222 195 163 167 40 45 106 140 8 49 204 145 69
90683 169 89 96 24 93 103 85 41 3 31 154 51 210 115 213 79 108 12 147 209 206 103
907176 113 116 37 173 10 189 102 176 156 100 36 33 69 174 16 202 5 171 52 82 72 4
90880 23 178 162 70 83 29 105 67 34 118 43 143 154 185 138 2 79 157 149 33 160 21
909129 208 24 2 31 69 35 81 72 47 64 22 38 221 55 222 152 179 168 180 211 121 1
910207 200 133 129 117 80 114 25 50 76 102 85 84 212 30 111 110 195 29 14 153 51
91128 196 212 36 167 222 61 107 55 46 64 65 119 220 12 56 137 93 194 29 57 137 50
912210 30 197 78 65 71 132 123 7 177 22 129 68 168 3 74 10 50 167 174 198 218 6 86
913218 97 158 106 6 177 162 210 164 125 62 59 52 173 16 20 214 42 9 141 57 46 106
91497 24 50 119 86 84 169 46 15 25 136 44 100 127 202 182 83 35 33 209 158 15 159
91564 156 191 108 146 75 96 72 181 217 134 129 74 96 115 165 216 91 188 59 10 141
91614 62 107 12 190 65 205 60 10 98 30 63 22 178 205 151 179 211 164 82 206 60 192
917114 31 203 188 193 66 28 105 140 148 33 75 5 128 68 83 212 170 95 109 152 88
918224 67 77 102 42 3 213 170 52 125 56 3 165 82 163 76 193 157 197 218 49 70 89
919182 217 91 145 203 11 56 180 77 193 114 116 122 189 11 7 43 191 17 74 187 187
92053 125 13 19 166 222 104 91 54 131 123 50 33 118 86 127 167 ^
921480 1 45 193 76 121 181 219 195 42 64 126 166 80 40 200 188 53 80 25 148 75 157
922117 175 20 53 44 30 207 111 27 63 198 97 204 194 114 222 23 182 132 212 170 63
92322 144 120 143 118 37 79 38 94 60 54 184 47 108 110 150 41 11 62 211 43 51 180
924181 94 200 12 100 223 201 14 117 124 200 137 95 164 76 144 171 101 34 213 83
925169 150 143 16 32 20 2 224 114 31 18 123 96 115 135 129 83 220 108 59 192 125
92662 196 80 76 195 218 17 210 79 214 136 6 105 91 5 141 27 188 193 127 168 97 79
927199 84 31 209 128 155 151 94 75 17 159 32 71 187 140 63 124 149 179 179 77 72
92813 204 18 72 138 199 48 36 179 26 25 97 28 14 30 82 116 86 188 68 132 133 38 7
929107 197 133 140 12 166 6 3 86 173 16 157 15 170 188 17 85 84 46 172 103 140 114
930171 65 39 45 119 39 96 166 182 45 32 86 12 26 48 87 226 80 201 190 159 208 24
93144 191 197 82 182 96 217 140 99 119 90 54 82 42 49 74 53 95 77 123 60 120 194
932165 180 166 131 225 116 137 146 211 219 4 37 5 1 69 45 17 34 37 130 85 10 9 147
93388 103 191 72 87 152 132 87 175 122 58 14 66 77 57 50 2 122 109 61 209 26 150
93492 58 205 71 136 93 147 37 56 48 212 221 110 165 4 213 47 174 120 41 113 67 181
935168 148 126 115 33 124 24 184 11 113 169 186 138 184 223 61 56 63 175 107 6 128
93681 114 207 60 69 9 22 93 73 31 33 175 71 11 98 206 73 15 221 146 160 34 88 88
937139 186 102 189 55 186 153 9 198 46 19 51 165 129 208 215 49 23 6 179 128 30
938156 64 111 203 105 55 10 111 152 58 139 61 107 21 91 56 99 170 137 197 169 135
939180 41 136 57 152 7 92 145 158 155 49 89 16 208 200 86 48 21 216 51 40 134 178
94024 8 196 29 118 52 42 13 79 23 131 174 69 221 59 118 177 37 181 43 153 185 151
941130 70 47 34 162 125 26 201 139 112 65 164 40 149 3 226 220 159 106 19 74 155
942100 47 159 157 193 ^
943471 0 211 98 104 174 126 7 24 61 213 225 57 90 1 33 209 183 62 147 39 215 157
944121 147 71 49 216 170 35 75 140 148 54 29 86 188 38 185 221 163 95 58 71 81 131
94584 44 144 10 134 142 228 118 86 156 204 126 172 46 91 196 220 197 218 70 36 73
94613 47 57 154 60 3 226 188 70 100 51 131 64 62 162 161 15 142 14 11 115 141 97
947219 216 138 201 16 172 31 198 167 6 75 125 26 173 192 193 95 75 93 111 114 224
94876 91 213 13 227 201 213 28 120 1 50 150 213 45 142 31 33 145 124 92 130 34 126
949204 109 2 16 108 201 80 150 149 215 172 14 28 137 23 80 133 208 185 189 19 36 9
950183 77 40 149 200 50 214 191 163 159 36 41 98 136 8 37 204 141 65 75 157 89 84
95112 81 99 85 25 224 27 154 43 210 115 205 75 108 4 143 209 198 103 176 105 108
95221 165 10 181 98 168 152 96 24 29 69 166 8 202 226 171 48 70 68 217 72 15 174
953158 70 83 29 101 67 22 114 27 139 150 181 130 2 63 145 141 33 160 17 121 196 8
954219 19 53 31 65 60 35 60 18 38 217 55 222 144 175 156 172 211 113 226 203 192
955129 117 105 76 106 25 42 64 94 77 72 212 30 99 102 195 25 10 149 35 28 184 208
95620 167 218 53 95 43 30 52 65 107 220 52 129 85 190 17 57 137 38 202 14 193 78
95753 63 128 119 3 177 22 129 68 168 216 74 223 46 155 174 190 214 223 78 218 85
958158 102 227 169 150 198 152 113 46 59 52 161 20 214 26 222 129 53 46 106 89 20
95934 111 82 80 165 42 15 9 136 40 100 115 190 182 79 19 21 197 154 11 147 56 156
960187 104 142 63 96 56 173 209 134 125 58 88 103 161 212 79 184 43 227 137 6 58
961103 225 190 49 201 48 6 90 18 55 10 166 205 139 167 203 160 66 206 56 188 102
96215 191 180 181 66 24 93 128 136 25 59 5 124 60 67 204 158 87 105 140 84 224 59
96369 102 30 3 209 166 40 117 56 220 165 74 159 68 185 157 185 206 41 66 167 ^
964490 1 176 217 85 133 203 218 38 174 71 193 108 116 122 171 5 7 37 179 11 56 175
965181 41 125 7 226 160 204 98 79 42 119 105 50 9 100 68 127 153 45 185 60 121 177
966211 183 30 52 114 166 64 24 192 188 53 76 17 148 63 145 113 171 4 45 28 22 203
967103 19 63 186 97 200 194 102 214 19 178 132 208 158 59 10 136 112 135 118 37 63
96830 94 60 46 180 47 100 110 146 33 3 50 199 43 39 168 169 90 188 12 92 219 189 6
969117 116 196 133 87 164 76 132 167 101 30 209 79 157 138 143 8 32 8 221 220 110
97031 14 123 92 103 135 117 75 212 104 55 180 121 62 192 72 72 187 206 13 202 67
971206 128 221 105 91 224 129 27 184 181 115 160 89 79 199 84 23 197 128 147 143
97282 67 17 147 28 63 187 132 51 120 141 167 175 65 60 5 196 18 68 126 191 36 28
973179 10 21 93 24 2 14 82 108 74 176 60 120 215 129 26 222 99 189 121 136 227 154
974229 226 86 169 16 153 3 166 180 5 81 72 30 168 95 128 106 159 53 35 33 119 31
97588 158 174 29 16 70 26 32 83 218 80 193 182 151 204 24 44 191 193 66 170 84 213
976140 99 115 86 54 70 42 45 70 41 83 61 115 44 108 190 157 180 162 119 221 104
977129 142 203 219 25 228 1 61 41 9 26 33 118 69 6 1 135 76 91 183 72 71 152 124
97887 163 114 50 10 62 77 53 34 229 110 105 49 205 18 142 88 42 193 67 132 93 139
97921 52 40 204 213 98 153 4 201 31 162 120 25 113 55 181 156 144 118 111 25 112
98020 172 230 105 165 186 138 184 223 61 40 47 175 107 6 116 81 114 207 48 53 224
98114 81 73 223 19 21 167 59 11 98 194 61 230 221 146 148 22 88 84 139 178 90 189
98247 174 145 228 190 42 3 51 161 125 196 207 49 15 2 171 120 26 148 64 107 195 97
98343 229 111 140 58 131 57 95 13 87 48 95 170 125 197 169 131 172 41 124 45 144 3
98492 145 154 155 33 77 12 208 200 78 48 21 208 43 40 130 178 16 227 196 17 106 44
98534 228 75 23 123 166 65 217 43 114 165 29 173 35 200 ^
986479 0 167 151 130 58 29 34 150 107 8 195 121 112 59 152 22 131 218 208 202 159
98788 19 56 149 82 41 153 145 54 199 86 104 166 126 228 16 53 209 225 41 90 230 29
988197 171 46 143 39 203 149 117 147 67 45 216 158 35 75 136 136 38 17 78 176 34
989185 213 155 95 50 71 73 123 225 76 28 144 227 126 130 228 114 74 148 192 118
990172 34 87 192 216 193 206 54 36 65 230 31 49 146 44 228 214 180 62 92 47 131 48
99158 162 161 3 142 14 3 107 141 89 207 212 130 193 8 160 15 198 159 223 63 117 14
992173 192 181 87 59 89 107 106 216 60 79 201 1 227 189 213 20 116 222 38 150 205
99329 134 23 21 141 124 80 126 30 122 200 109 219 104 201 64 142 149 215 168 6 12
994125 7 72 133 196 181 185 15 28 9 183 65 32 137 196 46 206 187 163 151 32 37 90
995132 8 25 204 137 61 67 145 89 72 69 95 85 9 220 23 154 35 210 115 197 71 108
996229 139 209 190 103 176 97 100 5 157 10 173 94 160 148 92 12 25 69 158 202 222
997171 44 58 64 205 64 7 170 154 70 83 29 97 67 10 110 11 135 146 177 122 2 47 133
998133 33 160 13 113 184 225 211 7 37 27 49 48 23 56 14 38 213 55 222 136 171 144
999164 211 105 226 199 184 125 105 93 72 98 25 34 52 86 69 60 212 30 87 94 195 21
10006 145 19 28 172 204 4 167 214 45 83 31 14 40 65 95 220 221 48 121 77 186 5 57
1001137 26 194 231 189 78 41 55 124 115 232 177 22 129 68 168 204 74 211 42 143 174
1002182 210 215 70 218 73 158 98 223 161 138 186 140 101 30 59 52 149 217 20 214 10
1003210 117 49 46 106 81 16 18 103 78 76 161 38 15 226 136 36 100 103 178 182 75 3
10049 185 150 7 135 48 156 183 100 138 51 96 40 165 201 134 121 42 80 91 157 208 67
1005180 27 219 133 231 54 99 213 190 33 197 36 2 82 6 47 231 154 205 127 155 195
1006156 50 206 52 184 90 232 179 172 169 66 20 81 116 124 17 43 5 120 52 51 196 146
100779 101 128 80 224 65 ^
1008503 1 55 102 9 3 202 159 19 103 56 206 165 60 152 54 171 157 164 185 27 59 45
1009171 217 80 123 203 203 23 169 66 193 103 116 122 156 7 32 169 6 41 165 176 31
1010125 2 211 155 189 93 69 32 109 90 50 225 85 53 127 153 45 175 40 121 172 201
1011168 15 37 99 166 44 4 182 188 53 71 7 148 48 130 108 166 220 35 8 12 198 93 9
101263 171 97 195 194 87 204 14 173 132 203 143 54 231 126 102 125 118 37 43 20 94
101360 36 175 47 90 110 141 23 229 35 184 43 24 153 154 85 173 12 82 214 174 232
1014117 106 191 128 77 164 76 117 162 101 25 204 74 142 123 143 234 32 229 211 215
1015105 31 9 123 87 88 135 102 65 202 99 50 165 116 62 187 62 67 177 191 8 192 52
1016196 118 206 105 91 214 114 27 179 166 100 150 79 79 199 84 13 182 128 137 133
101767 57 17 132 23 53 187 122 36 115 131 152 170 50 45 231 186 18 63 111 181 21 18
1018179 226 16 88 19 223 230 82 98 59 161 50 105 200 124 11 207 89 179 106 131 212
1019139 224 221 86 164 16 148 224 161 170 226 76 57 10 163 85 113 96 144 38 30 18
1020119 21 78 148 164 9 232 50 221 26 12 78 208 80 183 172 141 199 24 44 191 188 46
1021155 69 208 140 99 110 81 54 55 42 40 65 26 68 41 105 24 93 185 147 180 157 104
1022216 89 119 137 193 219 231 10 223 1 51 36 235 16 28 103 49 1 227 120 61 76 173
102372 51 152 114 87 148 104 40 5 57 77 48 14 229 95 100 34 200 8 132 83 22 178 62
1024127 93 129 1 47 30 194 203 83 138 4 186 11 147 120 5 113 40 181 141 139 108 106
102515 97 15 157 220 95 160 186 138 184 223 61 20 27 175 107 6 101 81 114 207 33 33
1026209 4 66 73 218 4 6 157 44 11 98 179 46 215 221 146 133 7 88 79 139 168 75 189
102737 159 135 218 180 37 219 51 156 120 181 197 49 5 233 161 110 21 138 64 102 185
102887 28 219 111 125 58 121 52 80 3 82 38 90 170 110 197 169 126 162 41 109 30 134
1029234 92 145 149 155 13 62 7 208 200 68 48 21 198 33 40 125 178 6 217 196 2 91 34
103024 213 70 23 113 161 ^
1031470 0 58 210 15 107 144 15 159 21 142 152 151 130 48 14 34 140 92 231 190 106
1032112 54 142 7 116 208 193 187 159 73 19 41 144 67 36 148 135 44 184 71 104 156
1033126 218 6 43 204 225 21 90 230 24 182 156 26 138 39 188 139 112 147 62 40 216
1034143 35 75 131 121 18 2 68 161 29 185 203 145 95 40 71 63 113 220 66 8 144 212
1035116 115 228 109 59 138 177 108 172 19 82 187 211 188 191 34 36 55 215 11 39 136
103624 223 199 170 52 82 42 131 28 53 162 161 226 142 14 231 97 141 79 192 207 120
1037183 236 145 233 198 149 208 48 107 237 173 192 166 77 39 84 102 96 206 40 64
1038186 224 227 174 213 10 111 212 23 150 195 9 124 13 6 136 124 65 121 25 117 195
1039109 204 218 99 201 44 132 149 215 163 234 230 110 225 62 133 181 176 180 10 18
10409 183 50 22 122 191 41 196 182 163 141 27 32 80 127 8 10 204 132 56 57 130 89
104157 223 54 90 85 227 215 18 154 25 210 115 187 66 108 224 134 209 180 103 176 87
104290 223 147 10 163 89 150 143 87 235 20 69 148 228 202 217 171 39 43 59 190 54
1043235 165 149 70 83 29 92 67 233 105 229 130 141 172 112 2 27 118 123 33 160 8
1044103 169 210 201 230 17 22 29 33 8 51 9 38 208 55 222 126 166 129 154 211 95 226
1045194 174 120 90 78 67 88 25 24 37 76 59 45 212 30 72 84 195 16 1 140 237 28 157
1046199 222 167 209 35 68 16 232 25 65 80 220 211 43 111 67 181 228 57 137 11 184
1047216 184 78 26 45 119 110 232 177 22 129 68 168 189 74 196 37 128 174 172 205
1048205 60 218 58 158 93 218 151 123 171 125 86 10 59 52 134 202 20 214 228 195 102
104944 46 106 71 11 236 93 73 71 156 33 15 211 136 31 100 88 163 182 70 221 232 170
1050145 2 120 38 156 178 95 133 36 96 20 155 191 134 116 22 70 76 152 203 52 175 7
1051209 128 226 49 94 198 190 13 192 21 235 72 229 37 221 139 205 112 140 185 151
105230 206 47 179 75 217 101 ^
1053502 0 158 148 66 13 60 95 103 3 15 5 113 38 23 182 125 65 94 107 73 224 37 47
1054102 237 3 198 155 7 95 56 198 165 52 148 46 163 157 152 173 19 55 29 167 217 76
1055115 203 191 11 165 62 193 99 116 122 144 236 7 28 161 2 29 157 172 23 125 238
1056199 151 177 89 61 24 101 78 50 213 73 41 127 153 45 167 24 121 168 193 156 3 25
105787 166 28 228 174 188 53 67 239 148 36 118 104 162 208 27 232 4 194 85 1 63 159
105897 191 194 75 196 10 169 132 199 131 50 223 118 94 117 118 37 27 12 94 60 28
1059171 47 82 110 137 15 225 23 172 43 12 141 142 81 161 12 74 210 162 228 117 98
1060187 124 69 164 76 105 158 101 21 200 70 130 111 143 230 32 221 203 211 101 31 5
1061123 83 76 135 90 57 194 95 46 153 112 62 183 54 63 169 179 4 184 40 188 110 194
1062105 91 206 102 27 175 154 88 142 71 79 199 84 5 170 128 129 125 55 49 17 120 19
106345 187 114 24 111 123 140 166 38 33 227 178 18 59 99 173 9 10 179 214 12 84 15
1064215 218 82 90 47 149 42 93 188 120 239 195 81 171 94 127 200 127 220 217 86 160
106516 144 216 157 162 218 72 45 234 159 77 101 88 132 26 26 6 119 13 70 140 156
1066233 220 34 213 26 236 74 200 80 175 164 133 195 24 44 191 184 30 143 57 204 140
106799 106 77 54 43 42 36 61 14 56 25 97 8 81 181 139 180 153 92 212 77 111 133 185
1068219 231 238 219 1 43 32 231 8 24 91 33 237 223 108 49 64 165 72 35 152 106 87
1069136 96 32 1 53 77 44 238 229 83 96 22 196 124 79 6 166 58 123 93 121 225 43 22
1070186 195 71 126 4 174 235 135 120 229 113 28 181 129 135 100 102 7 85 11 145 212
107187 156 186 138 184 223 61 4 11 175 107 6 89 81 114 207 21 17 197 236 54 73 214
1072232 234 149 32 11 98 167 34 203 221 146 121 235 88 75 139 160 63 189 29 147 127
1073210 172 33 207 51 152 116 169 189 49 237 233 153 102 17 130 64 98 177 79 16 211
1074111 113 58 113 48 68 235 78 30 86 170 98 197 169 122 154 41 97 18 126 234 92
1075145 145 155 237 50 209 ^
1076481 1 208 200 56 48 21 186 21 40 119 178 236 205 196 226 73 22 12 195 64 23 101
1077144 54 206 241 103 132 7 151 13 138 140 151 130 40 2 34 132 80 223 186 94 112
107850 134 237 104 200 181 175 159 61 19 29 140 55 32 144 127 36 172 59 104 148 126
1079210 240 35 200 225 5 90 230 20 170 144 10 134 39 176 131 108 147 58 36 216 131
108035 75 127 109 2 232 60 149 25 185 195 137 95 32 71 55 105 216 58 234 144 200
1081108 103 228 105 47 130 165 100 172 7 78 183 207 184 179 18 36 47 203 237 31 128
10828 219 187 162 44 74 38 131 12 49 162 161 218 142 14 227 89 141 71 180 203 112
1083175 232 133 221 198 141 196 36 99 229 173 192 154 69 23 80 98 88 198 24 52 174
1084216 227 162 213 2 107 204 11 150 187 235 116 5 236 132 124 53 117 21 113 191
1085109 192 206 95 201 28 124 149 215 159 230 218 98 213 54 133 169 172 176 6 10 9
1086183 38 14 110 187 37 188 178 163 133 23 28 72 123 8 240 204 128 52 49 118 89 45
1087215 42 86 85 215 211 14 154 17 210 115 179 62 108 220 130 209 172 103 176 79 82
1088211 139 10 155 85 142 139 83 227 16 69 140 224 202 213 171 35 31 55 178 46 231
1089161 145 70 83 29 88 67 225 101 217 126 137 168 104 2 11 106 115 33 160 4 95 157
1090198 193 222 1 18 13 21 238 47 5 38 204 55 222 118 162 117 146 211 87 226 190
1091166 116 78 66 63 80 25 16 25 68 51 33 212 30 60 76 195 12 239 136 225 28 145
1092195 210 167 205 27 56 4 220 13 65 68 220 203 39 103 59 177 220 57 137 241 176
1093204 180 78 14 37 115 106 232 177 22 129 68 168 177 74 184 33 116 174 164 201
1094197 52 218 46 158 89 214 143 111 159 113 74 236 59 52 122 190 20 214 216 183 90
109540 46 106 63 7 224 85 69 67 152 29 15 199 136 27 100 76 151 182 66 209 224 158
1096141 240 108 30 156 174 91 129 24 96 4 147 183 134 112 6 62 64 148 199 40 171
1097233 201 124 222 45 90 186 190 239 188 9 235 64 221 29 213 127 178 ^
1098508 1 94 122 173 145 6 206 41 173 57 199 146 150 136 66 9 48 83 91 239 243 5
1099109 30 7 174 113 57 90 95 69 224 29 39 102 229 3 194 151 239 87 56 190 165 44
1100144 38 155 157 140 161 11 51 13 163 217 72 107 203 179 243 161 58 193 95 116
1101122 132 236 7 24 153 242 17 149 168 15 125 238 187 147 165 85 53 16 93 66 50
1102201 61 29 127 153 45 159 8 121 164 185 144 235 13 75 166 12 216 166 188 53 63
1103235 148 24 106 100 158 196 19 220 240 190 77 237 63 147 97 187 194 63 188 6 165
1104132 195 119 46 215 110 86 109 118 37 11 4 94 60 20 167 47 74 110 133 7 221 11
1105160 43 129 130 77 149 12 66 206 150 224 117 90 183 120 61 164 76 93 154 101 17
1106196 66 118 99 143 226 32 213 195 207 97 31 1 123 79 64 135 78 49 186 91 42 141
1107108 62 179 46 59 161 167 176 28 180 102 182 105 91 198 90 27 171 142 76 134 63
110879 199 84 241 158 128 121 117 43 41 17 108 15 37 187 106 12 107 115 128 162 26
110921 223 170 18 55 87 165 241 2 179 202 8 80 11 207 206 82 82 35 137 34 81 176
1110116 231 183 73 163 82 123 188 115 216 213 86 156 16 140 208 153 154 210 68 33
1111222 155 69 89 80 120 14 22 238 119 5 62 132 148 221 208 18 205 26 224 70 192 80
1112167 156 125 191 24 44 191 180 14 131 45 200 140 99 102 73 54 31 42 32 57 2 44 9
111389 236 69 177 131 180 149 80 208 65 103 129 177 219 231 230 215 1 35 28 227 20
111479 17 237 219 96 37 52 157 72 19 152 98 87 124 88 24 241 49 77 40 226 229 71 92
111510 192 236 116 75 234 154 54 119 93 113 213 39 14 178 187 59 114 4 162 223 123
1116120 217 113 16 181 117 131 92 98 243 73 7 133 204 79 152 186 138 184 223 61 232
1117239 175 107 6 77 81 114 207 9 1 185 232 42 73 210 224 226 141 20 11 98 155 22
1118191 221 146 109 227 88 71 139 152 51 189 21 135 119 202 164 29 195 51 148 112
1119157 181 49 233 233 145 94 13 122 64 94 169 71 4 203 111 101 58 105 44 56 231 74
112022 82 170 86 197 169 118 146 41 85 6 118 234 92 145 141 149 ^
1121484 1 219 32 243 208 200 48 48 21 178 13 40 115 178 232 197 196 218 61 14 4 183
112260 23 93 136 50 202 229 99 120 245 143 5 134 128 151 130 32 236 34 124 68 215
1123182 82 112 46 126 229 92 192 169 163 159 49 19 17 136 43 28 140 119 28 160 47
1124104 140 126 202 236 27 196 225 235 90 230 16 158 132 240 130 39 164 123 104 147
112554 32 216 119 35 75 123 97 232 224 52 137 21 185 187 129 95 24 71 47 97 212 50
1126222 144 188 100 91 228 101 35 122 153 92 172 241 74 179 203 180 167 2 36 39 191
1127225 23 120 238 215 175 154 36 66 34 131 242 45 162 161 210 142 14 223 81 141 63
1128168 199 104 167 228 121 209 198 133 184 24 91 221 173 192 142 61 7 76 94 80 190
11298 40 162 208 227 150 213 240 103 196 245 150 179 223 108 243 228 128 124 41 113
113017 109 187 109 180 194 91 201 12 116 149 215 155 226 206 86 201 46 133 157 168
1131172 2 2 9 183 26 6 98 183 33 180 174 163 125 19 24 64 119 8 232 204 124 48 41
1132106 89 33 207 30 82 85 203 207 10 154 9 210 115 171 58 108 216 126 209 164 103
1133176 71 74 199 131 10 147 81 134 135 79 219 12 69 132 220 202 209 171 31 19 51
1134166 38 227 157 141 70 83 29 84 67 217 97 205 122 133 164 96 2 241 94 107 33 160
113587 145 186 185 214 231 14 243 9 230 43 1 38 200 55 222 110 158 105 138 211 79
1136226 186 158 112 66 54 59 72 25 8 13 60 43 21 212 30 48 68 195 8 239 132 213 28
1137133 191 198 167 201 19 44 238 208 1 65 56 220 195 35 95 51 173 212 57 137 233
1138168 192 176 78 2 29 111 102 232 177 22 129 68 168 165 74 172 29 104 174 156 197
1139189 44 218 34 158 85 210 135 99 147 101 62 224 59 52 110 178 20 214 204 171 78
114036 46 106 55 3 212 77 65 63 148 25 15 187 136 23 100 64 139 182 62 197 216 146
1141137 240 96 22 156 170 87 125 12 96 234 139 175 134 108 236 54 52 144 195 28 167
1142221 193 120 218 41 86 174 190 227 184 243 235 56 213 21 205 115 205 71 ^
1143506 0 110 165 141 238 206 37 169 45 187 134 142 124 66 5 36 71 79 235 231 5 105
114422 239 166 101 49 86 83 65 224 21 31 102 221 3 190 147 231 79 56 182 165 36 140
114530 147 157 128 149 3 47 245 159 217 68 99 203 167 235 157 54 193 91 116 122 120
1146236 7 20 145 242 5 141 164 7 125 238 175 143 153 81 45 8 85 54 50 189 49 17 127
1147153 45 151 240 121 160 177 132 227 1 63 166 244 204 158 188 53 59 231 148 12 94
114896 154 184 11 208 236 186 69 233 63 135 97 183 194 51 180 2 161 132 191 107 42
1149207 102 78 101 118 37 243 244 94 60 12 163 47 66 110 129 247 217 247 148 43 236
1150117 118 73 137 12 58 202 138 220 117 82 179 116 53 164 76 81 150 101 13 192 62
1151106 87 143 222 32 205 187 203 93 31 245 123 75 52 135 66 41 178 87 38 129 104
115262 175 38 55 153 155 244 168 16 172 94 170 105 91 190 78 27 167 130 64 126 55
115379 199 84 237 146 128 113 109 31 33 17 96 11 29 187 98 103 107 116 158 14 9 219
1154162 18 51 75 157 233 242 179 190 4 76 7 199 194 82 74 23 125 26 69 164 112 223
1155171 65 155 70 119 176 103 212 209 86 152 16 136 200 149 146 202 64 21 210 151
115661 77 72 108 2 18 230 119 245 54 124 140 209 196 2 197 26 212 66 184 80 159 148
1157117 187 24 44 191 176 246 119 33 196 140 99 98 69 54 19 42 28 53 238 32 241 81
1158224 57 173 123 180 145 68 204 53 95 125 169 219 231 222 211 1 27 24 223 240 16
115967 1 237 215 84 25 40 149 72 3 152 90 87 112 80 16 241 45 77 36 214 229 59 88
1160246 188 232 108 71 222 142 50 115 93 105 201 35 6 170 179 47 102 4 150 211 111
1161120 205 113 4 181 105 127 84 94 239 61 3 121 196 71 148 186 138 184 223 61 220
1162227 175 107 6 65 81 114 207 245 233 173 228 30 73 206 216 218 133 8 11 98 143
116310 179 221 146 97 219 88 67 139 144 39 189 13 123 111 194 156 25 183 51 144 108
1164145 173 49 229 233 137 86 9 114 64 90 161 63 240 195 111 89 58 97 40 44 227 70
116514 78 170 74 197 169 114 138 41 73 242 110 234 177 ^
1166491 0 145 135 155 207 20 243 208 200 40 48 21 170 5 40 111 178 228 189 196 210
116749 6 246 171 56 23 85 128 46 198 217 95 108 241 135 247 130 116 151 130 24 228
116834 116 56 207 178 70 112 42 118 221 80 184 157 151 159 37 19 5 132 31 24 136
1169111 20 148 35 104 132 126 194 232 19 192 225 223 90 230 12 146 120 228 126 39
1170152 115 100 147 50 28 216 107 35 75 119 85 220 216 44 125 17 185 179 121 95 16
117171 39 89 208 42 210 144 176 92 79 228 97 23 114 141 84 172 233 70 175 199 176
1172155 236 36 31 179 213 15 112 226 211 163 146 28 58 30 131 230 41 162 161 202
1173142 14 219 73 141 55 156 195 96 159 224 109 197 198 125 172 12 83 213 173 192
1174130 53 241 72 90 72 182 242 28 150 200 227 138 213 236 99 188 237 150 171 211
1175100 239 220 124 124 29 109 13 105 183 109 168 182 87 201 246 108 149 215 151
1176222 194 74 189 38 133 145 164 168 248 244 9 183 14 248 86 179 29 172 170 163
1177117 15 20 56 115 8 224 204 120 44 33 94 89 21 199 18 78 85 191 203 6 154 1 210
1178115 163 54 108 212 122 209 156 103 176 63 66 187 123 10 139 77 126 131 75 211 8
117969 124 216 202 205 171 27 7 47 154 30 223 153 137 70 83 29 80 67 209 93 193 118
1180129 160 88 2 229 82 99 33 160 246 79 133 174 177 206 219 10 231 247 222 39 247
118138 196 55 222 102 154 93 130 211 71 226 182 150 108 54 42 55 64 25 1 52 35 9
1182212 30 36 60 195 4 239 128 201 28 121 187 186 167 197 11 32 230 196 239 65 44
1183220 187 31 87 43 169 204 57 137 225 160 180 172 78 240 21 107 98 232 177 22 129
118468 168 153 74 160 25 92 174 148 193 181 36 218 22 158 81 206 127 87 135 89 50
1185212 59 52 98 166 20 214 192 159 66 32 46 106 47 249 200 69 61 59 144 21 15 175
1186136 19 100 52 127 182 58 185 208 134 133 240 84 14 156 166 83 121 96 222 131
1187167 134 104 224 46 40 140 191 16 163 209 185 116 214 37 82 162 190 215 180 235
1188235 48 205 13 197 103 205 76 104 161 139 232 146 ^
1189516 0 33 165 33 175 122 134 112 66 1 24 59 67 231 219 5 101 14 227 158 89 41 82
119071 61 224 13 23 102 213 3 186 143 223 71 56 174 165 28 136 22 139 157 116 137
1191247 43 233 155 217 64 91 203 155 227 153 50 193 87 116 122 108 236 7 16 137 242
1192245 133 160 251 125 238 163 139 141 77 37 77 42 50 177 37 5 127 153 45 143 228
1193121 156 169 120 219 241 51 166 232 192 150 188 53 55 227 148 82 92 150 172 3
1194196 232 182 61 229 63 123 97 179 194 39 172 250 157 132 187 95 38 199 94 70 93
1195118 37 231 240 94 60 4 159 47 58 110 125 243 213 239 136 43 228 105 106 69 125
119612 50 198 126 216 117 74 175 112 45 164 76 69 146 101 9 188 58 94 75 143 218 32
1197197 179 199 89 31 245 123 71 40 135 54 33 170 83 34 117 100 62 171 30 51 145
1198143 244 160 4 164 86 158 105 91 182 66 27 163 118 52 118 47 79 199 84 233 134
1199128 105 101 19 25 17 84 7 21 187 90 240 99 99 104 154 2 249 215 154 18 47 63
1200149 225 238 179 178 72 3 191 182 82 66 11 113 18 57 152 108 215 159 57 147 58
1201115 164 91 208 205 86 148 16 132 192 145 138 194 60 9 198 147 53 65 64 96 242
120214 222 119 241 46 116 132 197 184 238 189 26 200 62 176 80 151 140 109 183 24
120344 191 172 234 107 21 192 140 99 94 65 54 7 42 24 49 230 20 229 73 212 45 169
1204115 180 141 56 200 41 87 121 161 219 231 214 207 1 19 20 219 236 12 55 237 237
1205211 72 13 28 141 72 239 152 82 87 100 72 8 241 41 77 32 202 229 47 84 238 184
1206228 100 67 210 130 46 111 93 97 189 31 250 162 171 35 90 4 138 199 99 120 193
1207113 244 181 93 123 76 90 235 49 251 109 188 63 144 186 138 184 223 61 208 215
1208175 107 6 53 81 114 207 237 221 161 224 18 73 202 208 210 125 248 11 98 131 250
1209167 221 146 85 211 88 63 139 136 27 189 5 111 103 186 148 21 171 51 140 104 133
1210165 49 225 233 129 78 5 106 64 86 153 55 232 187 111 77 58 89 36 32 223 66 6 74
1211170 62 197 169 110 130 41 61 234 102 234 92 145 133 155 201 14 243 208 200 36
121248 21 166 1 40 109 178 147 ^
1213522 0 179 196 200 34 251 241 156 51 23 75 118 41 193 202 90 93 236 125 242 125
1214101 151 130 14 218 34 106 41 197 173 55 112 37 108 211 65 174 142 136 159 22 19
1215245 127 16 19 131 101 10 133 20 104 122 126 184 227 9 187 225 208 90 230 7 131
1216105 213 121 39 137 105 95 147 45 23 216 92 35 75 114 70 205 206 34 110 12 185
1217169 111 95 6 71 29 79 203 32 195 144 161 82 64 228 92 8 104 126 74 172 223 65
1218170 194 171 140 221 36 21 164 198 5 102 211 206 148 136 18 48 25 131 215 36 162
1219161 192 142 14 214 63 141 45 141 190 86 149 219 94 182 198 115 157 252 73 203
1220173 192 115 43 226 67 85 62 172 227 13 135 190 227 123 213 231 94 178 227 150
1221161 196 90 234 210 119 124 14 104 8 100 178 109 153 167 82 201 231 98 149 215
1222146 217 179 59 174 28 133 130 159 163 248 239 9 183 254 243 71 174 24 162 165
1223163 107 10 15 46 110 8 214 204 115 39 23 79 89 6 189 3 73 85 176 198 1 154 246
1224210 115 153 49 108 207 117 209 146 103 176 53 56 172 113 10 129 72 116 126 70
1225201 3 69 114 211 202 200 171 22 247 42 139 20 218 148 132 70 83 29 75 67 199 88
1226178 113 124 155 78 2 214 67 89 33 160 246 69 118 159 167 196 204 5 216 237 212
122734 247 38 191 55 222 92 149 78 120 211 61 226 177 140 103 39 27 50 54 25 245
1228241 42 25 249 212 30 21 50 195 254 239 123 186 28 106 182 171 167 192 1 17 220
1229181 229 65 29 220 177 26 77 33 164 194 57 137 215 150 165 167 78 230 11 102 93
1230232 177 22 129 68 168 138 74 145 20 77 174 138 188 171 26 218 7 158 76 201 117
123172 120 74 35 197 59 52 83 151 20 214 177 144 51 27 46 106 37 249 185 59 56 54
1232139 16 15 160 136 14 100 37 112 182 53 170 198 119 128 240 69 4 156 161 78 116
1233240 96 207 121 157 134 99 209 36 25 135 186 1 158 194 175 111 209 32 77 147 190
1234200 175 225 235 38 195 3 187 88 205 61 89 151 134 217 206 30 162 24 166 113 128
1235103 66 253 15 50 58 228 210 5 98 8 218 152 80 35 79 62 58 224 7 17 102 207 3
1236183 140 217 65 56 168 165 22 133 16 133 157 107 128 244 12 ^
1237517 1 218 150 217 59 81 203 140 217 148 45 193 82 116 122 93 236 7 11 127 242
1238235 123 155 246 125 238 148 134 126 72 27 247 67 27 50 162 22 247 127 153 45
1239133 213 121 151 159 105 209 231 36 166 217 177 140 188 53 50 222 148 242 67 87
1240145 157 250 181 227 177 51 224 63 108 97 174 194 24 162 250 152 132 182 80 33
1241189 84 60 83 118 37 216 235 94 60 251 154 47 48 110 120 238 208 229 121 43 218
124290 91 64 110 12 40 193 111 211 117 64 170 107 35 164 76 54 141 101 4 183 53 79
124360 143 213 32 187 169 194 84 31 245 123 66 25 135 39 23 160 78 29 102 95 62 166
124420 46 135 128 244 150 246 154 76 143 105 91 172 51 27 158 103 37 108 37 79 199
124584 228 119 128 95 91 4 15 17 69 2 11 187 80 230 94 89 89 149 244 239 210 144 18
124642 48 139 215 233 179 163 252 67 255 181 167 82 56 253 98 8 42 137 103 205 144
124747 137 43 110 149 76 203 200 86 143 16 127 182 140 128 184 55 251 183 142 43 50
124854 81 232 9 212 119 236 36 106 122 182 169 223 179 26 185 57 166 80 141 130 99
1249178 24 44 191 167 219 92 6 187 140 99 89 60 54 249 42 19 44 220 5 214 63 197 30
1250164 105 180 136 41 195 26 77 116 151 219 231 204 202 1 9 15 214 231 7 40 222
1251237 206 57 255 13 131 72 224 152 72 87 85 62 255 241 36 77 27 187 229 32 79 228
1252179 223 90 62 195 115 41 106 93 87 174 26 245 152 161 20 75 4 123 184 84 120
1253178 113 234 181 78 118 66 85 230 34 251 94 178 53 139 186 138 184 223 61 193
1254200 175 107 6 38 81 114 207 227 206 146 219 3 73 197 198 200 115 238 11 98 116
1255240 152 221 146 70 201 88 58 139 126 12 189 252 96 93 176 138 16 156 51 135 99
1256118 155 49 220 233 119 68 96 64 81 143 45 222 177 111 62 58 79 31 17 218 61 253
125769 170 47 197 169 105 120 41 46 224 92 234 92 145 128 155 186 256 243 208 200
125826 48 21 156 248 40 104 178 221 175 196 196 28 249 239 150 49 23 71 114 39 191
1259196 88 87 234 121 240 123 95 151 130 10 214 34 102 35 193 171 49 112 35 104 207
126059 170 136 130 159 16 19 241 125 213 ^
1261529 1 15 127 93 2 121 8 104 114 126 176 223 1 183 225 196 90 230 3 119 93 201
1262117 39 125 97 91 147 41 19 216 80 35 75 110 58 193 198 26 98 8 185 161 103 95
1263257 71 21 71 199 24 183 144 149 74 52 228 88 255 96 114 66 172 215 61 166 190
1264167 128 209 36 13 152 186 256 94 199 202 136 128 10 40 21 131 203 32 162 161
1265184 142 14 210 55 141 37 129 186 78 141 215 82 170 198 107 145 244 65 195 173
1266192 103 35 214 63 81 54 164 215 1 123 182 227 111 213 227 90 170 219 150 153
1267184 82 230 202 115 124 2 100 4 96 174 109 141 155 78 201 219 90 149 215 142 213
1268167 47 162 20 133 118 155 159 248 235 9 183 246 239 59 170 20 154 161 163 99 6
126911 38 106 8 206 204 111 35 15 67 89 253 181 250 69 85 164 194 256 154 242 210
1270115 145 45 108 203 113 209 138 103 176 45 48 160 105 10 121 68 108 122 66 193
1271258 69 106 207 202 196 171 18 239 38 127 12 214 144 128 70 83 29 71 67 191 84
1272166 109 120 151 70 2 202 55 81 33 160 246 61 106 147 159 188 192 1 204 229 204
127330 247 38 187 55 222 84 145 66 112 211 53 226 173 132 99 27 15 46 46 25 241 233
127434 17 241 212 30 9 42 195 254 239 119 174 28 94 178 159 167 188 252 5 212 169
1275221 65 17 220 169 22 69 25 160 186 57 137 207 142 153 163 78 222 3 98 89 232
1276177 22 129 68 168 126 74 133 16 65 174 130 184 163 18 218 254 158 72 197 109 60
1277108 62 23 185 59 52 71 139 20 214 165 132 39 23 46 106 29 249 173 51 52 50 135
127812 15 148 136 10 100 25 100 182 49 158 190 107 124 240 57 255 156 157 74 112
1279232 96 195 113 149 134 95 197 28 13 131 182 248 154 182 167 107 205 28 73 135
1280190 188 171 217 235 30 187 254 179 76 205 49 77 143 130 205 206 26 158 12 154
1281101 120 91 66 253 3 38 46 224 198 5 94 206 144 68 27 75 50 54 224 258 9 102 199
12823 179 136 209 57 56 160 165 14 129 8 125 157 95 116 240 36 212 148 217 57 77
1283203 134 213 146 43 193 80 116 122 87 236 7 9 123 242 231 119 153 244 125 238
1284142 132 120 70 23 245 63 21 50 156 16 243 127 153 45 129 207 121 149 155 99 205
1285227 30 166 211 57 ^
1286548 0 134 188 53 47 219 148 236 58 84 142 148 247 172 224 174 45 221 63 99 97
1287171 194 15 156 250 149 132 179 71 30 183 78 54 77 118 37 207 232 94 60 248 151
128847 42 110 117 235 205 223 112 43 212 81 82 61 101 12 34 190 102 208 117 58 167
1289104 29 164 76 45 138 101 1 180 50 70 51 143 210 32 181 163 191 81 31 245 123 63
129016 135 30 17 154 75 26 93 92 62 163 14 43 129 119 244 144 240 148 70 134 105 91
1291166 42 27 155 94 28 102 31 79 199 84 225 110 128 89 85 255 9 17 60 259 5 187 74
1292224 91 83 80 146 238 233 207 138 18 39 39 133 209 230 179 154 252 64 255 175
1293158 82 50 247 89 2 33 128 100 199 135 41 131 34 107 140 67 200 197 86 140 16
1294124 176 137 122 178 52 245 174 139 37 41 48 72 226 6 206 119 233 30 100 116 173
1295160 214 173 26 176 54 160 80 135 124 93 175 24 44 191 164 210 83 257 184 140 99
129686 57 54 243 42 16 41 214 256 205 57 188 21 161 99 180 133 32 192 17 71 113 145
1297219 231 198 199 1 3 12 211 228 4 31 213 237 203 48 249 4 125 72 215 152 66 87
129876 56 252 241 33 77 24 178 229 23 76 222 176 220 84 59 186 106 38 103 93 81 165
129923 242 146 155 11 66 4 114 175 75 120 169 113 228 181 69 115 60 82 227 25 251
130085 172 47 136 186 138 184 223 61 184 191 175 107 6 29 81 114 207 221 197 137
1301216 254 73 194 192 194 109 232 11 98 107 234 143 221 146 61 195 88 55 139 120 3
1302189 249 87 87 170 132 13 147 51 132 96 109 149 49 217 233 113 62 257 90 64 78
1303137 39 216 171 111 53 58 73 28 8 215 58 250 66 170 38 197 169 102 114 41 37 218
130486 234 92 145 125 155 177 250 243 208 200 20 48 21 150 245 40 101 178 218 169
1305196 190 19 246 236 141 46 23 65 108 36 188 187 85 78 231 115 237 120 86 151 130
13064 208 34 96 26 187 168 40 112 32 98 201 50 164 127 121 159 7 19 235 122 1 14
1307126 91 118 5 104 112 126 174 222 259 182 225 193 90 230 2 116 90 198 116 39 122
130895 90 147 40 18 216 77 35 75 109 55 190 196 24 95 7 185 159 101 95 256 71 19 69
1309198 22 180 144 146 72 49 228 87 253 94 111 64 172 213 60 165 189 166 125 206 36
131011 149 183 255 92 196 201 133 126 8 38 20 131 213 ^
1311547 0 29 162 161 178 142 14 207 49 141 31 120 183 72 135 212 73 161 198 101 136
1312238 59 189 173 192 94 29 205 60 78 48 158 206 254 114 176 227 102 213 224 87
1313164 213 150 147 175 76 227 196 112 124 255 97 1 93 171 109 132 146 75 201 210
131484 149 215 139 210 158 38 153 14 133 109 152 156 248 232 9 183 240 236 50 167
131517 148 158 163 93 3 8 32 103 8 200 204 108 32 9 58 89 247 175 244 66 85 155 191
1316256 154 239 210 115 139 42 108 200 110 209 132 103 176 39 42 151 99 10 115 65
1317102 119 63 187 258 69 100 204 202 193 171 15 233 35 118 6 211 141 125 70 83 29
131868 67 185 81 157 106 117 148 64 2 193 46 75 33 160 246 55 97 138 153 182 183
1319260 195 223 198 27 247 38 184 55 222 78 142 57 106 211 47 226 170 126 96 18 6
132043 40 25 238 227 28 11 235 212 30 36 195 254 239 116 165 28 85 175 150 167 185
1321249 258 206 160 215 65 8 220 163 19 63 19 157 180 57 137 201 136 144 160 78 216
1322259 95 86 232 177 22 129 68 168 117 74 124 13 56 174 124 181 157 12 218 248 158
132369 194 103 51 99 53 14 176 59 52 62 130 20 214 156 123 30 20 46 106 23 249 164
132445 49 47 132 9 15 139 136 7 100 16 91 182 46 149 184 98 121 240 48 252 156 154
132571 109 226 96 186 107 143 134 92 188 22 4 128 179 242 151 173 161 104 202 25 70
1326126 190 179 168 211 235 24 181 251 173 67 205 40 68 137 127 196 206 23 155 3
1327145 92 114 82 66 253 256 29 37 221 189 5 91 256 197 138 59 21 72 41 51 224 255
13283 102 193 3 176 133 203 51 56 154 165 8 126 2 119 157 86 107 237 33 203 145 217
132954 71 203 125 207 143 40 193 77 116 122 78 236 7 6 117 242 225 113 150 241 125
1330238 133 129 111 67 17 242 57 12 50 147 7 237 127 153 45 123 198 121 146 149 90
1331199 221 21 166 202 162 130 188 53 45 217 148 232 52 82 140 142 245 166 222 172
133241 219 63 93 97 169 194 9 152 250 147 132 177 65 28 179 74 50 73 118 37 201 230
133394 60 246 149 47 38 110 115 233 203 219 106 43 208 75 76 59 95 12 30 188 96 206
1334117 54 165 102 25 164 76 39 136 101 261 178 48 64 45 143 208 32 177 159 189 79
133531 245 123 61 10 135 24 13 150 73 24 87 90 62 161 10 41 125 209 ^
1336542 1 244 136 232 140 62 122 105 91 158 30 27 151 82 16 94 23 79 199 84 221 98
1337128 81 77 247 1 17 48 259 261 187 66 216 87 75 68 142 230 225 203 130 18 35 27
1338125 201 226 179 142 252 60 255 167 146 82 42 239 77 258 21 116 96 191 123 33
1339123 22 103 128 55 196 193 86 136 16 120 168 133 114 170 48 237 162 135 29 29 40
134060 218 2 198 119 229 22 92 108 161 148 202 165 26 164 50 152 80 127 116 85 171
134124 44 191 160 198 71 249 180 140 99 82 53 54 235 42 12 37 206 248 193 49 176 9
1342157 91 180 129 20 188 5 63 109 137 219 231 190 195 1 259 8 207 224 19 201 237
1343199 36 241 256 117 72 203 152 58 87 64 48 248 241 29 77 20 166 229 11 72 214
1344172 216 76 55 174 94 34 99 93 73 153 19 238 138 147 263 54 4 102 163 63 120 157
1345113 220 181 57 111 52 78 223 13 251 73 164 39 132 186 138 184 223 61 172 179
1346175 107 6 17 81 114 207 213 185 125 212 246 73 190 184 186 101 224 11 98 95 226
1347131 221 146 49 187 88 51 139 112 255 189 245 75 79 162 124 9 135 51 128 92 97
1348141 49 213 233 105 54 257 82 64 74 129 31 208 163 111 41 58 65 24 260 211 54
1349246 62 170 26 197 169 98 106 41 25 210 78 234 92 145 121 155 165 242 243 208
1350200 12 48 21 142 241 40 97 178 214 161 196 182 7 242 232 129 42 23 57 100 32
1351184 175 81 66 227 107 233 116 74 151 130 260 200 34 88 14 179 164 28 112 28 90
1352193 38 156 115 109 159 259 19 227 118 253 10 122 83 256 106 257 104 104 126 166
1353218 255 178 225 181 90 230 262 104 78 186 112 39 110 87 86 147 36 14 216 65 35
135475 105 43 178 188 16 83 3 185 151 93 95 252 71 11 61 194 14 168 144 134 64 37
1355228 83 245 86 99 56 172 205 56 161 185 162 113 194 36 3 137 171 251 84 184 197
1356121 118 30 16 131 188 27 162 161 174 142 14 205 45 141 27 114 181 68 131 210 67
1357155 198 97 130 234 55 185 173 192 88 25 199 58 76 44 154 200 250 108 172 227 96
1358213 222 85 160 209 150 143 169 72 225 192 110 124 251 95 263 91 169 109 126 140
135973 201 204 80 149 215 137 208 152 32 147 10 133 103 150 154 248 230 9 183 236
1360234 44 165 15 144 156 163 89 1 6 28 101 8 196 204 106 164 ^
1361567 0 1 46 89 239 167 236 62 85 143 187 256 154 235 210 115 131 38 108 196 106
1362209 124 103 176 31 34 139 91 10 107 61 94 115 59 179 258 69 92 200 202 189 171
136311 225 31 106 264 207 137 121 70 83 29 64 67 177 77 145 102 113 144 56 2 181 34
136467 33 160 246 47 85 126 145 174 171 260 183 215 190 23 247 38 180 55 222 70 138
136545 98 211 39 226 166 118 92 6 260 39 32 25 234 219 20 3 227 212 30 254 28 195
1366254 239 112 153 28 73 171 138 167 181 245 250 198 148 207 65 262 220 155 15 55
136711 153 172 57 137 193 128 132 156 78 208 255 91 82 232 177 22 129 68 168 105 74
1368112 9 44 174 116 177 149 4 218 240 158 65 190 95 39 87 41 2 164 59 52 50 118 20
1369214 144 111 18 16 46 106 15 249 152 37 45 43 128 5 15 127 136 3 100 4 79 182 42
1370137 176 86 117 240 36 248 156 150 67 105 218 96 174 99 135 134 88 176 14 258
1371124 175 234 147 161 153 100 198 21 66 114 190 167 164 203 235 16 173 247 165 55
1372205 28 56 129 123 184 206 19 151 257 133 80 106 70 66 253 248 17 25 217 177 5
137387 252 185 130 47 13 68 29 47 224 251 261 102 185 3 172 129 195 43 56 146 165
1374122 260 111 157 74 95 233 29 191 141 217 50 63 203 113 199 139 36 193 73 116
1375122 66 236 7 2 109 242 217 105 146 237 125 238 121 125 99 63 9 238 49 50 135
1376261 229 127 153 45 115 186 121 142 141 78 191 213 9 166 190 150 122 188 53 41
1377213 148 224 40 78 136 130 241 154 218 168 33 215 63 81 97 165 194 263 144 250
1378143 132 173 53 24 171 66 42 65 118 37 189 226 94 60 242 145 47 30 110 111 229
1379199 211 94 43 200 63 64 55 83 12 22 184 84 202 117 46 161 98 17 164 76 27 132
1380101 261 174 44 52 33 143 204 32 169 151 185 75 31 245 123 57 264 135 12 5 142
138169 20 75 86 62 157 2 37 117 101 244 132 228 136 58 116 105 91 154 24 27 149 76
138210 90 19 79 199 84 219 92 128 77 73 243 263 17 42 259 259 187 62 212 85 71 62
1383140 226 221 201 126 18 33 21 121 197 224 179 136 252 58 255 163 140 82 38 235
138471 256 15 110 94 187 117 29 119 16 101 122 49 194 191 86 134 16 118 164 131 110
1385166 46 233 156 133 25 23 36 54 214 194 119 227 18 88 104 155 142 196 161 26 158
138648 148 80 123 112 81 169 24 44 191 158 192 65 245 178 140 223 ^
1387551 1 78 49 54 227 42 8 33 198 240 181 41 164 265 153 83 180 125 8 184 261 55
1388105 129 219 231 182 191 1 255 4 203 220 264 7 189 237 195 24 233 248 109 72 191
1389152 50 87 52 40 244 241 25 77 16 154 229 267 68 206 168 212 68 51 162 82 30 95
139093 65 141 15 234 130 139 255 42 4 90 151 51 120 145 113 212 181 45 107 44 74
1391219 1 251 61 156 31 128 186 138 184 223 61 160 167 175 107 6 5 81 114 207 205
1392173 113 208 238 73 186 176 178 93 216 11 98 83 218 119 221 146 37 179 88 47 139
1393104 247 189 241 63 71 154 116 5 123 51 124 88 85 133 49 209 233 97 46 257 74 64
139470 121 23 200 155 111 29 58 57 20 252 207 50 242 58 170 14 197 169 94 98 41 13
1395202 70 234 92 145 117 155 153 234 243 208 200 4 48 21 134 237 40 93 178 210 153
1396196 174 263 238 228 117 38 23 49 92 28 180 163 77 54 223 99 229 112 62 151 130
1397256 192 34 80 2 171 160 16 112 24 82 185 26 148 103 97 159 251 19 219 114 245 6
1398118 75 252 94 249 104 96 126 158 214 251 174 225 169 90 230 262 92 66 174 108
139939 98 79 82 147 32 10 216 53 35 75 101 31 166 180 8 71 267 185 143 85 95 248 71
14003 53 190 6 156 144 122 56 25 228 79 237 78 87 48 172 197 52 157 181 158 101 182
140136 263 125 159 247 76 172 193 109 110 260 22 12 131 176 23 162 161 166 142 14
1402201 37 141 19 102 177 60 123 206 55 143 198 89 118 226 47 177 173 192 76 17 187
140354 72 36 146 188 242 96 164 227 84 213 218 81 152 201 150 135 157 64 221 184
1404106 124 243 91 263 87 165 109 114 128 69 201 192 72 149 215 133 204 140 20 135
14052 133 91 146 150 248 226 9 183 228 230 32 161 11 136 152 163 81 265 2 20 97 8
1406188 204 102 26 265 40 89 235 163 232 60 85 137 185 256 154 233 210 115 127 36
1407108 194 104 209 120 103 176 27 30 133 87 10 103 59 90 113 57 175 258 69 88 198
1408202 187 171 9 221 29 100 262 205 135 119 70 83 29 62 67 173 75 139 100 111 142
140952 2 175 28 63 33 160 246 43 79 120 141 170 165 260 177 211 186 21 247 38 178
141055 222 66 136 39 94 211 35 226 164 114 90 256 37 28 25 232 215 16 267 223 212
141130 250 24 195 254 239 110 147 28 67 169 132 167 179 243 246 194 142 203 65 263 ^
1412578 0 220 147 11 47 3 149 164 57 137 185 120 120 152 78 200 251 87 78 232 177
141322 129 68 168 93 74 100 5 32 174 108 173 141 266 218 232 158 61 186 87 27 75 29
1414260 152 59 52 38 106 20 214 132 99 6 12 46 106 7 249 140 29 41 39 124 1 15 115
1415136 269 100 262 67 182 38 125 168 74 113 240 24 244 156 146 63 101 210 96 162
141691 127 134 84 164 6 250 120 171 226 143 149 145 96 194 17 62 102 190 155 160
1417195 235 8 165 243 157 43 205 16 44 121 119 172 206 15 147 249 121 68 98 58 66
1418253 240 5 13 213 165 5 83 248 173 122 35 5 64 17 43 224 247 257 102 177 3 168
1419125 187 35 56 138 165 262 118 256 103 157 62 83 229 25 179 137 217 46 55 203
1420101 191 135 32 193 69 116 122 54 236 7 268 101 242 209 97 142 233 125 238 109
1421121 87 59 1 234 41 258 50 123 253 221 127 153 45 107 174 121 138 133 66 183 205
1422267 166 178 138 114 188 53 37 209 148 216 28 74 132 118 237 142 214 164 25 211
142363 69 97 161 194 255 136 250 139 132 169 41 20 163 58 34 57 118 37 177 222 94
142460 238 141 47 22 110 107 225 195 203 82 43 192 51 52 51 71 12 14 180 72 198 117
142538 157 94 9 164 76 15 128 101 261 170 40 40 21 143 200 32 161 143 181 71 31 245
1426123 53 256 135 267 134 65 16 63 82 62 153 264 33 109 89 244 124 220 128 50 104
1427105 91 146 12 27 145 64 268 82 11 79 199 84 215 80 128 69 65 235 259 17 30 259
1428255 187 54 204 81 63 50 136 218 213 197 118 18 29 9 113 189 220 179 124 252 54
1429255 155 128 82 30 227 59 252 3 98 90 179 105 21 111 4 97 110 37 190 187 86 130
143016 114 156 127 102 158 42 225 144 129 17 11 28 42 206 266 186 119 223 10 80 96
1431143 130 184 153 26 146 44 140 80 115 104 73 165 24 44 191 154 180 53 237 174
1432140 99 76 47 54 223 42 6 31 194 236 175 37 158 261 151 79 180 123 2 182 257 51
1433103 125 219 231 178 189 1 253 2 201 218 264 1 183 237 193 18 229 244 105 72 185
1434152 46 87 46 36 242 241 23 77 14 148 229 263 66 202 166 210 64 49 156 76 28 93
143593 61 135 13 232 126 135 251 36 4 84 145 45 120 139 113 208 181 39 105 40 72
1436217 265 251 55 152 27 126 186 138 184 223 61 154 161 175 107 6 269 81 114 207
1437201 167 107 206 234 73 184 172 174 89 212 11 98 77 214 113 221 146 31 175 88 45
1438139 100 243 189 213 ^
1439578 1 51 63 146 108 1 111 51 120 84 73 125 49 205 233 89 38 257 66 64 66 113 15
1440192 147 111 17 58 49 16 244 203 46 238 54 170 2 197 169 90 90 41 1 194 62 234
144192 145 113 155 141 226 243 208 200 268 48 21 126 233 40 89 178 206 145 196 166
1442255 234 224 105 34 23 41 84 24 176 151 73 42 219 91 225 108 50 151 130 252 184
144334 72 262 163 156 4 112 20 74 177 14 140 91 85 159 243 19 211 110 237 2 114 67
1444248 82 241 104 88 126 150 210 247 170 225 157 90 230 262 80 54 162 104 39 86 71
144578 147 28 6 216 41 35 75 97 19 154 172 59 267 185 135 77 95 244 71 267 45 186
1446270 144 144 110 48 13 228 75 229 70 75 40 172 189 48 153 177 154 89 170 36 259
1447113 147 243 68 160 189 97 102 256 14 8 131 164 19 162 161 158 142 14 197 29 141
144811 90 173 52 115 202 43 131 198 81 106 218 39 169 173 192 64 9 175 50 68 28 138
1449176 234 84 156 227 72 213 214 77 144 193 150 127 145 56 217 176 102 124 235 87
1450263 83 161 109 102 116 65 201 180 64 149 215 129 200 128 8 123 266 133 79 142
1451146 248 222 9 183 220 226 20 157 7 128 148 163 73 265 270 12 93 8 180 204 98 22
1452261 28 89 227 155 224 56 85 125 181 256 154 229 210 115 119 32 108 190 100 209
1453112 103 176 19 22 121 79 10 95 55 82 109 53 167 258 69 80 194 202 183 171 5 213
145425 88 258 201 131 115 70 83 29 58 67 165 71 127 96 107 138 44 2 163 16 55 33
1455160 246 35 67 108 133 162 153 260 165 203 178 17 247 38 174 55 222 58 132 27 86
1456211 27 226 160 106 86 260 248 33 20 25 228 207 8 263 215 212 30 242 16 195 254
1457239 106 135 28 55 165 120 167 175 239 238 186 130 195 65 250 220 143 9 43 271
1458147 160 57 137 181 116 114 150 78 196 249 85 76 232 177 22 129 68 168 87 74 94
14593 26 174 104 171 137 264 218 228 158 59 184 83 21 69 23 256 146 59 52 32 100 20
1460214 126 93 10 46 106 3 249 134 25 39 37 122 271 15 109 136 269 100 258 61 182
146136 119 164 68 111 240 18 242 156 144 61 99 206 96 156 87 123 134 82 158 2 246
1462118 169 222 141 143 141 94 192 15 60 96 190 149 158 191 235 4 161 241 153 37
1463205 10 38 117 117 166 206 13 145 245 115 62 94 52 66 253 236 271 7 211 159 5 81
1464246 167 118 29 1 62 11 41 224 245 255 102 173 3 166 123 183 31 56 134 165 260
1465116 254 81 ^
1466583 1 157 50 71 225 21 167 133 217 42 47 203 89 183 131 28 193 65 116 122 42
1467236 7 268 93 242 201 89 138 229 125 238 97 117 75 55 267 230 33 250 50 111 245
1468213 127 153 45 99 162 121 134 125 54 175 197 259 166 166 126 106 188 53 33 205
1469148 208 16 70 128 106 233 130 210 160 17 207 63 57 97 157 194 247 128 250 135
1470132 165 29 16 155 50 26 49 118 37 165 218 94 60 234 137 47 14 110 103 221 191
1471195 70 43 184 39 40 47 59 12 6 176 60 194 117 30 153 90 1 164 76 3 124 101 261
1472166 36 28 9 143 196 32 153 135 177 67 31 245 123 49 248 135 262 263 126 61 12
147351 78 62 149 260 29 101 77 244 116 212 120 42 92 105 91 138 27 141 52 260 74 3
147479 199 84 211 68 128 61 57 227 255 17 18 259 251 187 46 196 77 55 38 132 210
1475205 193 110 18 25 271 105 181 216 179 112 252 50 255 147 116 82 22 219 47 248
1476265 86 86 171 93 13 103 266 93 98 25 186 183 86 126 16 110 148 123 94 150 38
1477217 132 125 9 273 20 30 198 266 178 119 219 2 72 88 131 118 172 145 26 134 40
1478132 80 107 96 65 161 24 44 191 150 168 41 229 170 140 99 72 43 54 215 42 2 27
1479186 228 163 29 146 253 147 71 180 119 264 178 249 43 99 117 219 231 170 185 1
1480249 272 197 214 264 263 171 237 189 6 221 236 97 72 173 152 38 87 34 28 238 241
148119 77 10 136 229 255 62 194 162 206 56 45 144 64 24 89 93 53 123 9 228 118 127
1482243 24 4 72 133 33 120 127 113 200 181 27 101 32 68 213 257 251 43 144 19 122
1483186 138 184 223 61 142 149 175 107 6 261 81 114 207 193 155 95 202 226 73 180
1484164 166 81 204 11 98 65 206 101 221 146 19 167 88 41 139 92 235 189 235 45 59
1485142 104 273 105 51 118 82 67 121 49 203 233 85 34 257 62 64 64 109 11 188 143
1486111 11 58 45 14 240 201 44 236 52 170 270 197 169 88 86 41 269 190 58 234 92
1487145 111 155 135 222 243 208 200 266 48 21 122 231 40 87 178 204 141 196 162 251
1488232 222 99 32 23 37 80 22 174 145 71 36 217 87 223 106 44 151 130 250 180 34 68
1489258 159 154 272 112 18 70 173 8 136 85 79 159 239 19 207 108 233 112 63 246 76
1490237 104 84 126 146 208 245 168 225 151 90 230 262 74 48 156 102 39 80 67 76 147
149126 4 216 35 35 75 95 13 148 168 270 53 267 185 131 73 95 242 71 265 41 184 268
1492138 144 104 44 7 228 73 225 66 69 36 272 ^
1493588 0 181 44 149 173 150 77 158 36 255 101 135 239 60 148 185 85 94 252 6 4 131
1494152 15 162 161 150 142 14 193 21 141 3 78 169 44 107 198 31 119 198 73 94 210
149531 161 173 192 52 1 163 46 64 20 130 164 226 72 148 227 60 213 210 73 136 185
1496150 119 133 48 213 168 98 124 227 83 263 79 157 109 90 104 61 201 168 56 149
1497215 125 196 116 272 111 262 133 67 138 142 248 218 9 183 212 222 8 153 3 120
1498144 163 65 265 270 4 89 8 172 204 94 18 257 16 89 219 147 216 52 85 113 177 256
1499154 225 210 115 111 28 108 186 96 209 104 103 176 11 14 109 71 10 87 51 74 105
150049 159 258 69 72 190 202 179 171 1 205 21 76 254 197 127 111 70 83 29 54 67 157
150167 115 92 103 134 36 2 151 4 47 33 160 246 27 55 96 125 154 141 260 153 195 170
150213 247 38 170 55 222 50 128 15 78 211 19 226 156 98 82 252 240 29 12 25 224 199
1503259 207 212 30 234 8 195 254 239 102 123 28 43 161 108 167 171 235 230 178 118
1504187 65 242 220 135 5 35 267 143 152 57 137 173 108 102 146 78 188 245 81 72 232
1505177 22 129 68 168 75 74 82 275 14 174 96 167 129 260 218 220 158 55 180 75 9 57
150611 248 134 59 52 20 88 20 214 114 81 264 6 46 106 271 249 122 17 35 33 118 271
150715 97 136 269 100 250 49 182 32 107 156 56 107 240 6 238 156 140 57 95 198 96
1508144 79 115 134 78 146 270 238 114 165 214 137 131 133 90 188 11 56 84 190 137
1509154 183 235 272 153 237 145 25 205 274 26 109 113 154 206 9 141 237 103 50 86
151040 66 253 228 263 271 207 147 5 77 242 155 110 17 269 58 275 37 224 241 251 102
1511165 3 162 119 175 23 56 126 165 256 112 250 91 157 44 65 223 19 161 131 217 40
151243 203 83 179 129 26 193 63 116 122 36 236 7 268 89 242 197 85 136 227 125 238
151391 115 69 53 265 228 29 246 50 105 241 209 127 153 45 95 156 121 132 121 48 171
1514193 255 166 160 120 102 188 53 31 203 148 204 10 68 126 100 231 124 208 158 13
1515205 63 51 97 155 194 243 124 250 133 132 163 23 14 151 46 22 45 118 37 159 216
151694 60 232 135 47 10 110 101 219 189 191 64 43 180 33 34 45 53 12 2 174 54 192
1517117 26 151 88 273 164 76 273 122 101 261 164 34 22 3 143 194 32 149 131 175 65
151831 245 123 47 244 135 258 261 122 59 10 45 76 62 147 258 27 97 71 244 112 208
1519116 38 86 105 91 134 270 27 139 46 256 70 275 79 199 160 ^
1520594 0 207 56 128 53 49 219 251 17 6 259 247 187 38 188 73 47 26 128 202 197 189
1521102 18 21 263 97 173 212 179 100 252 46 255 139 104 82 14 211 35 244 257 74 82
1522163 81 5 95 258 89 86 13 182 179 86 122 16 106 140 119 86 142 34 209 120 121 1
1523265 12 18 190 266 170 119 215 272 64 80 119 106 160 137 26 122 36 124 80 99 88
152457 157 24 44 191 146 156 29 221 166 140 99 68 39 54 207 42 276 23 178 220 151
152521 134 245 143 63 180 115 256 174 241 35 95 109 219 231 162 181 1 245 272 193
1526210 264 255 159 237 185 272 213 228 89 72 161 152 30 87 22 20 234 241 15 77 6
1527124 229 247 58 186 158 202 48 41 132 52 20 85 93 45 111 5 224 110 119 235 12 4
152860 121 21 120 115 113 192 181 15 97 24 64 209 249 251 31 136 11 118 186 138 184
1529223 61 130 137 175 107 6 253 81 114 207 185 143 83 198 218 73 176 156 158 73
1530196 11 98 53 198 89 221 146 7 159 88 37 139 84 227 189 231 33 51 134 96 273 93
153151 114 78 55 113 49 199 233 77 26 257 54 64 60 101 3 180 135 111 277 58 37 10
1532232 197 40 232 48 170 262 197 169 84 78 41 261 182 50 234 92 145 107 155 123
1533214 243 208 200 262 48 21 114 227 40 83 178 200 133 196 154 243 228 218 87 28
153423 29 72 18 170 133 67 24 213 79 219 102 32 151 130 246 172 34 60 250 151 150
1535264 112 14 62 165 274 128 73 67 159 231 19 199 104 225 274 108 55 242 64 229
1536104 76 126 138 204 241 164 225 139 90 230 262 62 36 144 98 39 68 59 72 147 22
1537216 23 35 75 91 1 136 160 266 41 267 185 123 65 95 238 71 261 33 180 264 126
1538144 92 36 273 228 69 217 58 57 28 172 177 42 147 171 148 71 152 36 253 95 129
1539237 56 142 183 79 90 250 2 2 131 146 13 162 161 146 142 14 191 17 141 277 72
1540167 40 103 196 25 113 198 69 88 206 27 157 173 192 46 275 157 44 62 16 126 158
1541222 66 144 227 54 213 208 71 132 181 150 115 127 44 211 164 96 124 223 81 263
154277 155 109 84 98 59 201 162 52 149 215 123 194 110 268 105 260 133 61 136 140
1543248 216 9 183 208 220 2 151 1 116 142 163 61 265 270 87 8 168 204 92 16 255 10
154489 215 143 212 50 85 107 175 256 154 223 210 115 107 26 108 184 94 209 100 103
1545176 7 10 103 67 10 83 49 70 103 47 155 258 69 68 188 202 177 171 277 201 19 70
1546252 195 125 109 70 83 29 52 67 153 65 109 90 101 132 32 2 145 276 43 33 160 246
154723 259 ^
1548600 1 87 119 148 132 260 144 189 164 10 247 38 167 55 222 44 125 6 72 211 13
1549226 153 92 79 246 234 26 6 25 221 193 273 256 201 212 30 228 2 195 254 239 99
1550114 28 34 158 99 167 168 232 224 172 109 181 65 236 220 129 2 29 264 140 146 57
1551137 167 102 93 143 78 182 242 78 69 232 177 22 129 68 168 66 74 73 275 5 174 90
1552164 123 257 218 214 158 52 177 69 48 2 242 125 59 52 11 79 20 214 105 72 258 3
155346 106 268 249 113 11 32 30 115 271 15 88 136 269 100 244 40 182 29 98 150 47
1554104 240 276 235 156 137 54 92 192 96 135 73 109 134 75 137 267 232 111 162 208
1555134 122 127 87 185 8 53 75 190 128 151 177 235 269 147 234 139 16 205 268 17
1556103 110 145 206 6 138 231 94 41 80 31 66 253 222 257 265 204 138 5 74 239 146
1557104 8 266 55 269 34 224 238 248 102 159 3 159 116 169 17 56 120 165 253 109 247
155885 157 35 56 220 16 152 128 217 37 37 203 74 173 126 23 193 60 116 122 27 236 7
1559268 83 242 191 79 133 224 125 238 82 112 60 50 262 225 23 240 50 96 235 203 127
1560153 45 89 147 121 129 115 39 165 187 249 166 151 111 96 188 53 28 200 148 198 1
156165 123 91 228 115 205 155 7 202 63 42 97 152 194 237 118 250 130 132 160 14 11
1562145 40 16 39 118 37 150 213 94 60 229 132 47 4 110 98 216 186 185 55 43 174 24
156325 42 44 12 275 171 45 189 117 20 148 85 270 164 76 267 119 101 261 161 31 13
1564273 143 191 32 143 125 172 62 31 245 123 44 238 135 252 258 116 56 7 36 73 62
1565144 255 24 91 62 244 106 202 110 32 77 105 91 128 264 27 136 37 250 64 272 79
1566199 84 206 53 128 51 47 217 250 17 3 259 246 187 36 186 72 45 23 127 200 195
1567188 100 18 20 261 95 171 211 179 97 252 45 255 137 101 82 12 209 32 243 255 71
156881 161 78 3 93 256 88 83 10 181 178 86 121 16 105 138 118 84 140 33 207 117 120
1569278 263 10 15 188 266 168 119 214 271 62 78 116 103 157 135 26 119 35 122 80 97
157086 55 156 24 44 191 145 153 26 219 165 140 99 67 38 54 205 42 276 22 176 218
1571148 19 131 243 142 61 180 114 254 173 239 33 94 107 219 231 160 180 1 244 272
1572192 209 264 253 156 237 184 270 211 226 87 72 158 152 28 87 19 18 233 241 14 77
15735 121 229 245 57 184 157 201 46 40 129 49 19 84 93 43 108 4 223 108 117 233 9 4
157457 118 18 120 112 113 190 181 12 96 22 63 208 247 251 28 134 9 117 186 138 184
1575223 61 127 216 ^
1576590 1 175 107 6 247 81 114 207 179 134 74 195 212 73 173 150 152 67 190 11 98
157744 192 80 221 146 279 153 88 34 139 78 221 189 228 24 45 128 90 273 84 51 111
157875 46 107 49 196 233 71 20 257 48 64 57 95 278 174 129 111 271 58 31 7 226 194
157937 229 45 170 256 197 169 81 72 41 255 176 44 234 92 145 104 155 114 208 243
1580208 200 259 48 21 108 224 40 80 178 197 127 196 148 237 225 215 78 25 23 23 66
158115 167 124 64 15 210 73 216 99 23 151 130 243 166 34 54 244 145 147 258 112 11
158256 159 268 122 64 58 159 225 19 193 101 219 274 105 49 239 55 223 104 70 126
1583132 201 238 161 225 130 90 230 262 53 27 135 95 39 59 53 69 147 19 278 216 14
158435 75 88 273 127 154 263 32 267 185 117 59 95 235 71 258 27 177 261 117 144 83
158530 267 228 66 211 52 48 22 172 171 39 144 168 145 62 143 36 250 86 120 234 50
1586133 180 70 84 247 277 280 131 137 10 162 161 140 142 14 188 11 141 274 63 164
158734 97 193 16 104 198 63 79 200 21 151 173 192 37 272 148 41 59 10 120 149 216
158857 138 227 45 213 205 68 126 175 150 109 118 38 208 158 93 124 217 78 263 74
1589152 109 75 89 56 201 153 46 149 215 120 191 101 262 96 257 133 52 133 137 248
1590213 9 183 202 217 274 148 279 110 139 163 55 265 270 275 84 8 162 204 89 13 252
15911 89 209 137 206 47 85 98 172 256 154 220 210 115 101 23 108 181 91 209 94 103
1592176 1 4 94 61 10 77 46 64 100 44 149 258 69 62 185 202 174 171 277 195 16 61
1593249 192 122 106 70 83 29 49 67 147 62 100 87 98 129 26 2 136 270 37 33 160 246
159417 40 81 115 144 126 260 138 185 160 8 247 38 165 55 222 40 123 68 211 9 226
1595151 88 77 242 230 24 2 25 219 189 271 254 197 212 30 224 279 195 254 239 97 108
159628 28 156 93 167 166 230 220 168 103 177 65 232 220 125 25 262 138 142 57 137
1597163 98 87 141 78 178 240 76 67 232 177 22 129 68 168 60 74 67 275 280 174 86
1598162 119 255 218 210 158 50 175 65 275 42 277 238 119 59 52 5 73 20 214 99 66
1599254 1 46 106 266 249 107 7 30 28 113 271 15 82 136 269 100 240 34 182 27 92 146
160041 102 240 272 233 156 135 52 90 188 96 129 69 105 134 73 131 265 228 109 160
1601204 132 116 123 85 183 6 51 69 190 122 149 173 235 267 143 232 135 10 205 264
160211 99 108 139 206 4 136 227 88 35 76 25 66 253 218 253 261 202 132 5 72 237 140
1603203 ^
1604620 0 279 262 51 261 30 224 234 244 102 151 3 155 112 161 9 56 112 165 249 105
1605243 77 157 23 44 216 12 140 124 217 33 29 203 62 165 122 19 193 56 116 122 15
1606236 7 268 75 242 183 71 129 220 125 238 70 108 48 46 258 221 15 232 50 84 227
1607195 127 153 45 81 135 121 125 107 27 157 179 241 166 139 99 88 188 53 24 196
1608148 190 272 61 119 79 224 103 201 151 282 198 63 30 97 148 194 229 110 250 126
1609132 156 2 7 137 32 8 31 118 37 138 209 94 60 225 128 47 279 110 94 212 182 177
161043 43 166 12 13 38 32 12 271 167 33 185 117 12 144 81 266 164 76 259 115 101
1611261 157 27 1 265 143 187 32 135 117 168 58 31 245 123 40 230 135 244 254 108 52
16123 24 69 62 140 251 20 83 50 244 98 194 102 24 65 105 91 120 256 27 132 25 242
161356 268 79 199 84 202 41 128 43 39 209 246 17 274 259 242 187 28 178 68 37 11
1614123 192 187 184 92 18 16 253 87 163 207 179 85 252 41 255 129 89 82 4 201 20
1615239 247 59 77 153 66 278 85 248 84 71 281 177 174 86 117 16 101 130 114 76 132
161629 199 105 116 274 255 2 3 180 266 160 119 210 267 54 70 104 91 145 127 26 107
161731 114 80 89 78 47 152 24 44 191 141 141 14 211 161 140 99 63 34 54 197 42 276
161818 168 210 136 11 119 235 138 53 180 110 246 169 231 25 90 99 219 231 152 176 1
1619240 272 188 205 264 245 144 237 180 262 203 218 79 72 146 152 20 87 7 10 229
1620241 10 77 1 109 229 237 53 176 153 197 38 36 117 37 15 80 93 35 96 219 100 109
1621225 280 4 45 106 6 120 100 113 182 181 92 14 59 204 239 251 16 126 1 113 186
1622138 184 223 61 115 122 175 107 6 243 81 114 207 175 128 68 193 208 73 171 146
1623148 63 186 11 98 38 188 74 221 146 275 149 88 32 139 74 217 189 226 18 41 124
162486 273 78 51 109 73 40 103 49 194 233 67 16 257 44 64 55 91 276 170 125 111 267
162558 27 5 222 192 35 227 43 170 252 197 169 79 68 41 251 172 40 234 92 145 102
1626155 108 204 243 208 200 257 48 21 104 222 40 78 178 195 123 196 144 233 223 213
162772 23 23 19 62 13 165 118 62 9 208 69 214 97 17 151 130 241 162 34 50 240 141
1628145 254 112 9 52 155 264 118 58 52 159 221 19 189 99 215 274 103 45 237 49 219
1629104 66 126 128 199 236 159 225 124 90 230 262 47 21 129 93 39 53 49 67 147 17
1630278 216 8 35 75 86 269 121 150 261 26 267 185 113 55 95 233 71 256 23 175 259
1631111 144 77 26 263 228 64 207 48 42 18 172 167 37 142 166 143 56 137 36 248 80
1632114 232 46 127 257 ^
1633605 1 58 76 243 273 280 131 125 6 162 161 132 142 14 184 3 141 270 51 160 26 89
1634189 4 92 198 55 67 192 13 143 173 192 25 268 136 37 55 2 112 137 208 45 130 227
163533 213 201 64 118 167 150 101 106 30 204 150 89 124 209 74 263 70 148 109 63 77
163652 201 141 38 149 215 116 187 89 254 84 253 133 40 129 133 248 209 9 183 194
1637213 266 144 279 102 135 163 47 265 270 271 80 8 154 204 85 9 248 274 89 201 129
1638198 43 85 86 168 256 154 216 210 115 93 19 108 177 87 209 86 103 176 278 281 82
163953 10 69 42 56 96 40 141 258 69 54 181 202 170 171 277 187 12 49 245 188 118
1640102 70 83 29 45 67 139 58 88 83 94 125 18 2 124 262 29 33 160 246 9 28 69 107
1641136 114 260 126 177 152 4 247 38 161 55 222 32 119 273 60 211 1 226 147 80 73
1642234 222 20 279 25 215 181 267 250 189 212 30 216 275 195 254 239 93 96 28 16
1643152 81 167 162 226 212 160 91 169 65 224 220 117 281 17 258 134 134 57 137 155
164490 75 137 78 170 236 72 63 232 177 22 129 68 168 48 74 55 275 272 174 78 158
1645111 251 218 202 158 46 171 57 267 30 269 230 107 59 52 278 61 20 214 87 54 246
1646282 46 106 262 249 95 284 26 24 109 271 15 70 136 269 100 232 22 182 23 80 138
164729 98 240 264 229 156 131 48 86 180 96 117 61 97 134 69 119 261 220 105 156 196
1648128 104 115 81 179 2 47 57 190 110 145 165 235 263 135 228 127 283 205 256 284
164991 104 127 206 132 219 76 23 68 13 66 253 210 245 253 198 120 5 68 233 128 92
1650275 260 49 257 28 224 232 242 102 147 3 153 110 157 5 56 108 165 247 103 241 73
1651157 17 38 214 10 134 122 217 31 25 203 56 161 120 17 193 54 116 122 9 236 7 268
165271 242 179 67 127 218 125 238 64 106 42 44 256 219 11 228 50 78 223 191 127 153
165345 77 129 121 123 103 21 153 175 237 166 133 93 84 188 53 22 194 148 186 268 59
1654117 73 222 97 199 149 280 196 63 24 97 146 194 225 106 250 124 132 154 281 5
1655133 28 4 27 118 37 132 207 94 60 223 126 47 277 110 92 210 180 173 37 43 162 6
16567 36 26 12 269 165 27 183 117 8 142 79 264 164 76 255 113 101 261 155 25 280
1657261 143 185 32 131 113 166 56 31 245 123 38 226 135 240 252 104 50 1 18 67 62
1658138 249 18 79 44 244 94 190 98 20 59 105 91 116 252 27 130 19 238 52 266 79 199
165984 200 35 128 39 35 205 244 17 270 259 240 187 24 174 66 33 5 121 188 183 182
166088 18 14 249 83 159 205 179 79 252 186 ^
1661615 0 255 121 77 82 283 193 8 235 239 47 73 145 54 274 77 240 80 59 273 173 170
166286 113 16 97 122 110 68 124 25 191 93 112 270 247 281 278 172 266 152 119 206
1663263 46 62 92 79 133 119 26 95 27 106 80 81 70 39 148 24 44 191 137 129 2 203
1664157 140 99 59 30 54 189 42 276 14 160 202 124 3 107 227 134 45 180 106 238 165
1665223 17 86 91 219 231 144 172 1 236 272 184 201 264 237 132 237 176 254 195 210
166671 72 134 152 12 87 282 2 225 241 6 77 284 97 229 229 49 168 149 193 30 32 105
166725 11 76 93 27 84 283 215 92 101 217 272 4 33 94 281 120 88 113 174 181 275 88
16686 55 200 231 251 4 118 280 109 186 138 184 223 61 103 110 175 107 6 235 81 114
1669207 167 116 56 189 200 73 167 138 140 55 178 11 98 26 180 62 221 146 267 141 88
167028 139 66 209 189 222 6 33 116 78 273 66 51 105 69 28 95 49 190 233 59 8 257 36
167164 51 83 272 162 117 111 259 58 19 1 214 188 31 223 39 170 244 197 169 75 60 41
1672243 164 32 234 92 145 98 155 96 196 243 208 200 253 48 21 96 218 40 74 178 191
1673115 196 136 225 219 209 60 19 23 11 54 9 161 106 58 284 204 61 210 93 5 151 130
1674237 154 34 42 232 133 141 246 112 5 44 147 256 110 46 40 159 213 19 181 95 207
1675274 99 37 233 37 211 104 58 126 120 195 232 155 225 112 90 230 262 35 9 117 89
167639 41 41 63 147 13 278 216 283 35 75 82 261 109 142 257 14 267 185 105 47 95
1677229 71 252 15 171 255 99 144 65 18 255 228 60 199 40 30 10 172 159 33 138 162
1678139 44 125 36 244 68 102 228 38 115 174 52 72 241 271 280 131 119 4 162 161 128
1679142 14 182 286 141 268 45 158 22 85 187 285 86 198 51 61 188 9 139 173 192 19
1680266 130 35 53 285 108 131 204 39 126 227 27 213 199 62 114 163 150 97 100 26
1681202 146 87 124 205 72 263 68 146 109 57 71 50 201 135 34 149 215 114 185 83 250
168278 251 133 34 127 131 248 207 9 183 190 211 262 142 279 98 133 163 43 265 270
1683269 78 8 150 204 83 7 246 270 89 197 125 194 41 85 80 166 256 154 214 210 115
168489 17 108 175 85 209 82 103 176 276 279 76 49 10 65 40 52 94 38 137 258 69 50
1685179 202 168 171 277 183 10 43 243 186 116 100 70 83 29 43 67 135 56 82 81 92
1686123 14 2 118 258 25 33 160 246 5 22 63 103 132 108 260 120 173 148 2 247 38 159
168755 222 28 117 269 56 211 284 226 145 76 71 230 218 18 277 25 213 177 265 248
1688185 212 30 212 273 195 254 239 91 90 28 10 150 75 167 160 224 175 ^
1689613 0 152 79 161 65 216 220 109 281 9 254 130 126 57 137 147 82 63 133 78 162
1690232 68 59 232 177 22 129 68 168 36 74 43 275 264 174 70 154 103 247 218 194 158
169142 167 49 259 18 261 222 95 59 52 270 49 20 214 75 42 238 282 46 106 258 249 83
1692280 22 20 105 271 15 58 136 269 100 224 10 182 19 68 130 17 94 240 256 225 156
1693127 44 82 172 96 105 53 89 134 65 107 257 212 101 152 188 124 92 107 77 175 287
169443 45 190 98 141 157 235 259 127 224 119 275 205 248 276 83 100 115 206 285 128
1695211 64 11 60 1 66 253 202 237 245 194 108 5 64 229 116 84 267 256 45 249 24 224
1696228 238 102 139 3 149 106 149 286 56 100 165 243 99 237 65 157 5 26 210 6 122
1697118 217 27 17 203 44 153 116 13 193 50 116 122 286 236 7 268 63 242 171 59 123
1698214 125 238 52 102 30 40 252 215 3 220 50 66 215 183 127 153 45 69 117 121 119
169995 9 145 167 229 166 121 81 76 188 53 18 190 148 178 260 55 113 61 218 85 195
1700145 276 192 63 12 97 142 194 217 98 250 120 132 150 273 1 125 20 285 19 118 37
1701120 203 94 60 219 122 47 273 110 88 206 176 165 25 43 154 283 284 32 14 12 265
1702161 15 179 117 138 75 260 164 76 247 109 101 261 151 21 272 253 143 181 32 123
1703105 162 52 31 245 123 34 218 135 232 248 96 46 286 6 63 62 134 245 14 71 32 244
170486 182 90 12 47 105 91 108 244 27 126 7 230 44 262 79 199 84 196 23 128 31 27
1705197 240 17 262 259 236 187 16 166 62 25 282 117 180 175 178 80 18 10 241 75 151
1706201 179 67 252 35 255 117 71 82 281 189 2 233 235 41 71 141 48 272 73 236 78 53
1707269 171 168 86 111 16 95 118 108 64 120 23 187 87 110 268 243 279 274 168 266
1708148 119 204 261 42 58 86 73 127 115 26 89 25 102 80 77 66 35 146 24 44 191 135
1709123 285 199 155 140 99 57 28 54 185 42 276 12 156 198 118 288 101 223 132 41
1710180 104 234 163 219 13 84 87 219 231 140 170 1 234 272 182 199 264 233 126 237
1711174 250 191 206 67 72 128 152 8 87 278 287 223 241 4 77 284 91 229 225 47 164
1712147 191 26 30 99 19 9 74 93 23 78 283 213 88 97 213 268 4 27 88 277 120 82 113
1713170 181 271 86 2 53 198 227 251 287 114 278 107 186 138 184 223 61 97 104 175
1714107 6 231 81 114 207 163 110 50 187 196 73 165 134 136 51 174 11 98 20 176 56
1715221 146 263 137 88 26 139 62 205 189 220 29 112 74 273 60 51 103 67 22 91 49
1716188 233 55 4 257 32 64 49 79 270 158 113 111 255 58 15 288 210 213 ^
1717624 1 28 220 36 170 238 197 169 72 54 41 237 158 26 234 92 145 95 155 87 190
1718243 208 200 250 48 21 90 215 40 71 178 188 109 196 130 219 216 206 51 16 23 5
171948 6 158 97 55 278 201 55 207 90 286 151 130 234 148 34 36 226 127 138 240 112
17202 38 141 250 104 37 31 159 207 19 175 92 201 274 96 31 230 28 205 104 52 126
1721114 192 229 152 225 103 90 230 262 26 108 86 39 32 35 60 147 10 278 216 277 35
172275 79 255 100 136 254 5 267 185 99 41 95 226 71 249 9 168 252 90 144 56 12 249
1723228 57 193 34 21 4 172 153 30 135 159 136 35 116 36 241 59 93 225 32 106 171 43
172466 238 268 280 131 110 1 162 161 122 142 14 179 283 141 265 36 155 16 79 184
1725279 77 198 45 52 182 3 133 173 192 10 263 121 32 50 282 102 122 198 30 120 227
172618 213 196 59 108 157 150 91 91 20 199 140 84 124 199 69 263 65 143 109 48 62
172747 201 126 28 149 215 111 182 74 244 69 248 133 25 124 128 248 204 9 183 184
1728208 256 139 279 92 130 163 37 265 270 266 75 8 144 204 80 4 243 264 89 191 119
1729188 38 85 71 163 256 154 211 210 115 83 14 108 172 82 209 76 103 176 273 276 67
173043 10 59 37 46 91 35 131 258 69 44 176 202 165 171 277 177 7 34 240 183 113 97
173170 83 29 40 67 129 53 73 78 89 120 8 2 109 252 19 33 160 246 289 13 54 97 126
173299 260 111 167 142 289 247 38 156 55 222 22 114 263 50 211 281 226 142 70 68
1733224 212 15 274 25 210 171 262 245 179 212 30 206 270 195 254 239 88 81 28 1 147
173466 167 157 221 202 150 76 159 65 214 220 107 281 7 253 129 124 57 137 145 80 60
1735132 78 160 231 67 58 232 177 22 129 68 168 33 74 40 275 262 174 68 153 101 246
1736218 192 158 41 166 47 257 15 259 220 92 59 52 268 46 20 214 72 39 236 282 46
1737106 257 249 80 279 21 19 104 271 15 55 136 269 100 222 7 182 18 65 128 14 93
1738240 254 224 156 126 43 81 170 96 102 51 87 134 64 104 256 210 100 151 186 123
173989 105 76 174 287 42 42 190 95 140 155 235 258 125 223 117 273 205 246 274 81
174099 112 206 285 127 209 61 8 58 288 66 253 200 235 243 193 105 5 63 228 113 82
1741265 255 44 247 23 224 227 237 102 137 3 148 105 147 285 56 98 165 242 98 236 63
1742157 2 23 209 5 119 117 217 26 15 203 41 151 115 12 193 49 116 122 284 236 7 268
174361 242 169 57 122 213 125 238 49 101 27 39 251 214 1 218 50 63 213 181 127 153
174445 67 114 121 118 93 6 143 165 227 166 118 78 74 188 53 17 189 148 176 258 54
1745112 58 217 82 194 144 275 191 141 ^
1746628 1 3 97 139 194 211 92 250 117 132 147 267 290 119 14 282 13 118 37 111 200
174794 60 216 119 47 270 110 85 203 173 159 16 43 148 277 278 29 5 12 262 158 6 176
1748117 286 135 72 257 164 76 241 106 101 261 148 18 266 247 143 178 32 117 99 159
174949 31 245 123 31 212 135 226 245 90 43 286 289 60 62 131 242 11 65 23 244 80
1750176 84 6 38 105 91 102 238 27 123 290 224 38 259 79 199 84 193 14 128 25 21 191
1751237 17 256 259 233 187 10 160 59 19 276 114 174 169 175 74 18 7 235 69 145 198
1752179 58 252 32 255 111 62 82 278 183 285 230 229 32 68 135 39 269 67 230 75 44
1753263 168 165 86 108 16 92 112 105 58 114 20 181 78 107 265 237 276 268 162 266
1754142 119 201 258 36 52 77 64 118 109 26 80 22 96 80 71 60 29 143 24 44 191 132
1755114 279 193 152 140 99 54 25 54 179 42 276 9 150 192 109 285 92 217 129 35 180
1756101 228 160 213 7 81 81 219 231 134 167 1 231 272 179 196 264 227 117 237 171
1757244 185 200 61 72 119 152 2 87 272 284 220 241 1 77 284 82 229 219 44 158 144
1758188 20 27 90 10 6 71 93 17 69 283 210 82 91 207 262 4 18 79 271 120 73 113 164
1759181 265 83 288 50 195 221 251 281 108 275 104 186 138 184 223 61 88 95 175 107
17606 225 81 114 207 157 101 41 184 190 73 162 128 130 45 168 11 98 11 170 47 221
1761146 257 131 88 23 139 56 199 189 217 283 23 106 68 273 51 51 100 64 13 85 49
1762185 233 49 290 257 26 64 46 73 267 152 107 111 249 58 9 288 204 183 26 218 34
1763170 234 197 169 70 50 41 233 154 22 234 92 145 93 155 81 186 243 208 200 248 48
176421 86 213 40 69 178 186 105 196 126 215 214 204 45 14 23 1 44 4 156 91 53 274
1765199 51 205 88 282 151 130 232 144 34 32 222 123 136 236 112 34 137 246 100 31
176625 159 203 19 171 90 197 274 94 27 228 22 201 104 48 126 110 190 227 150 225 97
176790 230 262 20 286 102 84 39 26 31 58 147 8 278 216 273 35 75 77 251 94 132 252
1768291 267 185 95 37 95 224 71 247 5 166 250 84 144 50 8 245 228 55 189 30 15 172
1769149 28 133 157 134 29 110 36 239 53 87 223 28 100 169 37 62 236 266 280 131 104
1770291 162 161 118 142 14 177 281 141 263 30 153 12 75 182 275 71 198 41 46 178
1771291 129 173 192 4 261 115 30 48 280 98 116 194 24 116 227 12 213 194 57 104 153
1772150 87 85 16 197 136 82 124 195 67 263 63 141 109 42 56 45 201 120 24 149 215
1773109 180 68 240 63 246 133 19 122 126 248 202 9 183 180 206 252 137 279 88 128
1774163 33 265 270 264 73 8 140 204 78 2 241 76 ^
1775622 0 89 183 111 180 34 85 59 159 256 154 207 210 115 75 10 108 168 78 209 68
1776103 176 269 272 55 35 10 51 33 38 87 31 123 258 69 36 172 202 161 171 277 169 3
177722 236 179 109 93 70 83 29 36 67 121 49 61 74 85 116 2 97 244 11 33 160 246 285
17781 42 89 118 87 260 99 159 134 289 247 38 152 55 222 14 110 255 42 211 277 226
1779138 62 64 216 204 11 270 25 206 163 258 241 171 212 30 198 266 195 254 239 84
178069 28 283 143 54 167 153 217 194 142 64 151 65 206 220 99 281 293 249 125 116
178157 137 137 72 48 128 78 152 227 63 54 232 177 22 129 68 168 21 74 28 275 254
1782174 60 149 93 242 218 184 158 37 162 39 249 3 251 212 80 59 52 260 34 20 214 60
178327 228 282 46 106 253 249 68 275 17 15 100 271 15 43 136 269 100 214 289 182 14
178453 120 2 89 240 246 220 156 122 39 77 162 96 90 43 79 134 60 92 252 202 96 147
1785178 119 77 97 72 170 287 38 30 190 83 136 147 235 254 117 219 109 265 205 238
1786266 73 95 100 206 285 123 201 49 290 50 280 66 253 192 227 235 189 93 5 59 224
1787101 74 257 251 40 239 19 224 223 233 102 129 3 144 101 139 281 56 90 165 238 94
1788232 55 157 284 11 205 1 107 113 217 22 7 203 29 143 111 8 193 45 116 122 276
1789236 7 268 53 242 161 49 118 209 125 238 37 97 15 35 247 210 287 210 50 51 205
1790173 127 153 45 59 102 121 114 85 288 135 157 219 166 106 66 66 188 53 13 185
1791148 168 250 50 108 46 213 70 190 140 271 187 63 291 97 137 194 207 88 250 115
1792132 145 263 290 115 10 280 9 118 37 105 198 94 60 214 117 47 268 110 83 201 171
1793155 10 43 144 273 274 27 293 12 260 156 174 117 284 133 70 255 164 76 237 104
1794101 261 146 16 262 243 143 176 32 113 95 157 47 31 245 123 29 208 135 222 243
179586 41 286 285 58 62 129 240 9 61 17 244 76 172 80 2 32 105 91 98 234 27 121 286
1796220 34 257 79 199 84 191 8 128 21 17 187 235 17 252 259 231 187 6 156 57 15 272
1797112 170 165 173 70 18 5 231 65 141 196 179 52 252 30 255 107 56 82 276 179 281
1798228 225 26 66 131 33 267 63 226 73 38 259 166 163 86 106 16 90 108 103 54 110
179918 177 72 105 263 233 274 264 158 266 138 119 199 256 32 48 71 58 112 105 26 74
180020 92 80 67 56 25 141 24 44 191 130 108 275 189 150 140 99 52 23 54 175 42 276
18017 146 188 103 283 86 213 127 31 180 99 224 158 209 3 79 77 219 231 130 165 1
1802229 272 177 194 264 223 111 237 169 240 181 196 57 72 113 152 292 87 268 282
1803218 241 293 77 284 76 229 80 ^
1804635 1 40 150 140 184 12 23 78 294 2 67 93 9 57 283 206 74 83 199 254 4 6 67 263
1805120 61 113 156 181 257 79 284 46 191 213 251 273 100 271 100 186 138 184 223 61
180676 83 175 107 6 217 81 114 207 149 89 29 180 182 73 158 120 122 37 160 11 98
1807295 162 35 221 146 249 123 88 19 139 48 191 189 213 275 15 98 60 273 39 51 96
180860 1 77 49 181 233 41 286 257 18 64 42 65 263 144 99 111 241 58 1 288 196 179
180922 214 30 170 226 197 169 66 42 41 225 146 14 234 92 145 89 155 69 178 243 208
1810200 244 48 21 78 209 40 65 178 182 97 196 118 207 210 200 33 10 23 289 36 152
181179 49 266 195 43 201 84 274 151 130 228 136 34 24 214 115 132 228 112 292 26
1812129 238 92 19 13 159 195 19 163 86 189 274 90 19 224 10 193 104 40 126 102 186
1813223 146 225 85 90 230 262 8 278 90 80 39 14 23 54 147 4 278 216 265 35 75 73
1814243 82 124 248 283 267 185 87 29 95 220 71 243 293 162 246 72 144 38 237 228 51
1815181 22 3 288 172 141 24 129 153 130 17 98 36 235 41 75 219 20 88 165 25 54 232
1816262 280 131 92 291 162 161 110 142 14 173 277 141 259 18 149 4 67 178 267 59
1817198 33 34 170 287 121 173 192 288 257 103 26 44 276 90 104 186 12 108 227 213
1818190 53 96 145 150 79 73 8 193 128 78 124 187 63 263 59 137 109 30 44 41 201 108
181916 149 215 105 176 56 232 51 242 133 7 118 122 248 198 9 183 172 202 244 133
1820279 80 124 163 25 265 270 260 69 8 132 204 74 294 237 252 89 179 107 176 32 85
182153 157 256 154 205 210 115 71 8 108 166 76 209 64 103 176 267 270 49 31 10 47
182231 34 85 29 119 258 69 32 170 202 159 171 277 165 1 16 234 177 107 91 70 83 29
182334 67 117 47 55 72 83 114 292 2 91 240 7 33 160 246 283 291 36 85 114 81 260 93
1824155 130 289 247 38 150 55 222 10 108 251 38 211 275 226 136 58 62 212 200 9 268
182525 204 159 256 239 167 212 30 194 264 195 254 239 82 63 28 279 141 48 167 151
1826215 190 138 58 147 65 202 220 95 281 291 247 123 112 57 137 133 68 42 126 78
1827148 225 61 52 232 177 22 129 68 168 15 74 22 275 250 174 56 147 89 240 218 180
1828158 35 160 35 245 293 247 208 74 59 52 256 28 20 214 54 21 224 282 46 106 251
1829249 62 273 15 13 98 271 15 37 136 269 100 210 285 182 12 47 116 292 87 240 242
1830218 156 120 37 75 158 96 84 39 75 134 58 86 250 198 94 145 174 117 71 93 70 168
1831287 36 24 190 77 134 143 235 252 113 217 105 261 205 234 262 69 93 94 206 285
1832121 197 43 286 46 276 66 253 188 223 231 187 87 5 57 222 95 285 ^
1833636 0 251 248 37 233 16 224 220 230 102 123 3 141 98 133 278 56 84 165 235 91
1834229 49 157 278 2 202 295 98 110 217 19 1 203 20 137 108 5 193 42 116 122 270
1835236 7 268 47 242 155 43 115 206 125 238 28 94 6 32 244 207 284 204 50 42 199
1836167 127 153 45 53 93 121 111 79 282 129 151 213 166 97 57 60 188 53 10 182 148
1837162 244 47 105 37 210 61 187 137 268 184 63 285 97 134 194 201 82 250 112 132
1838142 257 290 109 4 277 3 118 37 96 195 94 60 211 114 47 265 110 80 198 168 149 1
183943 138 267 268 24 287 12 257 153 288 171 117 281 130 67 252 164 76 231 101 101
1840261 143 13 256 237 143 173 32 107 89 154 44 31 245 123 26 202 135 216 240 80 38
1841286 279 55 62 126 237 6 55 8 244 70 166 74 293 23 105 91 92 228 27 118 280 214
184228 254 79 199 84 188 296 128 15 11 181 232 17 246 259 228 187 150 54 9 266 109
1843164 159 170 64 18 2 225 59 135 193 179 43 252 27 255 101 47 82 273 173 275 225
1844219 17 63 125 24 264 57 220 70 29 253 163 160 86 103 16 87 102 100 48 104 15
1845171 63 102 260 227 271 258 152 266 132 119 196 253 26 42 62 49 103 99 26 65 17
184686 80 61 50 19 138 24 44 191 127 99 269 183 147 140 99 49 20 54 169 42 276 4
1847140 182 94 280 77 207 124 25 180 96 218 155 203 294 76 71 219 231 124 162 1 226
1848272 174 191 264 217 102 237 166 234 175 190 51 72 104 152 289 87 262 279 215
1849241 293 77 284 67 229 209 39 148 139 183 10 22 75 292 1 66 93 7 54 283 205 72
185081 197 252 4 3 64 261 120 58 113 154 181 255 78 283 45 190 211 251 271 98 270
185199 186 138 184 223 61 73 80 175 107 6 215 81 114 207 147 86 26 179 180 73 157
1852118 120 35 158 11 98 293 160 32 221 146 247 121 88 18 139 46 189 189 212 273 13
185396 58 273 36 51 95 59 295 75 49 180 233 39 285 257 16 64 41 63 262 142 97 111
1854239 58 296 288 194 178 21 213 29 170 224 197 169 65 40 41 223 144 12 234 92 145
185588 155 66 176 243 208 200 243 48 21 76 208 40 64 178 181 95 196 116 205 209 199
185630 9 23 288 34 296 151 76 48 264 194 41 200 83 272 151 130 227 134 34 22 212
1857113 131 226 112 292 24 127 236 90 16 10 159 193 19 161 85 187 274 89 17 223 7
1858191 104 38 126 100 185 222 145 225 82 90 230 262 5 276 87 79 39 11 21 53 147 3
1859278 216 263 35 75 72 241 79 122 247 281 267 185 85 27 95 219 71 242 292 161 245
186069 144 35 295 235 228 50 179 20 287 172 139 23 128 152 129 14 95 36 234 38 72
1861218 18 85 164 22 52 231 261 280 131 89 291 162 161 108 142 14 172 276 91 ^
1862635 1 256 9 146 297 61 175 261 50 198 27 25 164 284 115 173 192 282 254 94 23
186341 273 84 95 180 3 102 227 290 213 187 50 90 139 150 73 64 2 190 122 75 124 181
186460 263 56 134 109 21 35 38 201 99 10 149 215 102 173 47 226 42 239 133 297 115
1865119 248 195 9 183 166 199 238 130 279 74 121 163 19 265 270 257 66 8 126 204 71
1866294 234 246 89 173 101 170 29 85 44 154 256 154 202 210 115 65 5 108 163 73 209
186758 103 176 264 267 40 25 10 41 28 28 82 26 113 258 69 26 167 202 156 171 277
1868159 297 7 231 174 104 88 70 83 29 31 67 111 44 46 69 80 111 289 2 82 234 1 33
1869160 246 280 285 27 79 108 72 260 84 149 124 289 247 38 147 55 222 4 105 245 32
1870211 272 226 133 52 59 206 194 6 265 25 201 153 253 236 161 212 30 188 261 195
1871254 239 79 54 28 273 138 39 167 148 212 184 132 49 141 65 196 220 89 281 288
1872244 120 106 57 137 127 62 33 123 78 142 222 58 49 232 177 22 129 68 168 6 74 13
1873275 244 174 50 144 83 237 218 174 158 32 157 29 239 287 241 202 65 59 52 250 19
187420 214 45 12 218 282 46 106 248 249 53 270 12 10 95 271 15 28 136 269 100 204
1875279 182 9 38 110 286 84 240 236 215 156 117 34 72 152 96 75 33 69 134 55 77 247
1876192 91 142 168 114 62 87 67 165 287 33 15 190 68 131 137 235 249 107 214 99 255
1877205 228 256 63 90 85 206 285 118 191 34 280 40 270 66 253 182 217 225 184 78 5
187854 219 86 64 247 246 35 229 14 224 218 228 102 119 3 139 96 129 276 56 80 165
1879233 89 227 45 157 274 295 200 295 92 108 217 17 296 203 14 133 106 3 193 40 116
1880122 266 236 7 268 43 242 151 39 113 204 125 238 22 92 30 242 205 282 200 50 36
1881195 163 127 153 45 49 87 121 109 75 278 125 147 209 166 91 51 56 188 53 8 180
1882148 158 240 45 103 31 208 55 185 135 266 182 63 281 97 132 194 197 78 250 110
1883132 140 253 290 105 275 298 118 37 90 193 94 60 209 112 47 263 110 78 196 166
1884145 294 43 134 263 264 22 283 12 255 151 284 169 117 279 128 65 250 164 76 227
188599 101 261 141 11 252 233 143 171 32 103 85 152 42 31 245 123 24 198 135 212
1886238 76 36 286 275 53 62 124 235 4 51 2 244 66 162 70 291 17 105 91 88 224 27
1887116 276 210 24 252 79 199 84 186 292 128 11 7 177 230 17 242 259 226 187 295
1888146 52 5 262 107 160 155 168 60 18 221 55 131 191 179 37 252 25 255 97 41 82
1889271 169 271 223 215 11 61 121 18 262 53 216 68 23 249 161 158 86 101 16 85 98
189098 44 100 13 167 57 100 258 223 269 254 148 266 128 119 194 251 22 38 56 43 275
1891^
1892642 0 91 26 53 13 78 80 53 42 11 134 24 44 191 123 87 261 175 143 140 99 45 16
189354 161 42 276 132 174 82 276 65 199 120 17 180 92 210 151 195 290 72 63 219 231
1894116 158 1 222 272 170 187 264 209 90 237 162 226 167 182 43 72 92 152 285 87
1895254 275 211 241 293 77 284 55 229 201 35 140 135 179 2 18 63 284 298 62 93 300
189642 283 201 64 73 189 244 4 292 52 253 120 46 113 146 181 247 74 279 41 186 203
1897251 263 90 266 95 186 138 184 223 61 61 68 175 107 6 207 81 114 207 139 74 14
1898175 172 73 153 110 112 27 150 11 98 285 152 20 221 146 239 113 88 14 139 38 181
1899189 208 265 5 88 50 273 24 51 91 55 287 67 49 176 233 31 281 257 8 64 37 55 258
1900134 89 111 231 58 292 288 186 174 17 209 25 170 216 197 169 61 32 41 215 136 4
1901234 92 145 84 155 54 168 243 208 200 239 48 21 68 204 40 60 178 177 87 196 108
1902197 205 195 18 5 23 284 26 296 147 64 44 256 190 33 196 79 264 151 130 223 126
190334 14 204 105 127 218 112 292 16 119 228 82 4 299 159 185 19 153 81 179 274 85
19049 219 296 183 104 30 126 92 181 218 141 225 70 90 230 262 294 268 75 75 39 300
190513 49 147 300 278 216 255 35 75 68 233 67 114 243 273 267 185 77 19 95 215 71
1906238 288 157 241 57 144 23 291 227 228 46 171 12 289 283 172 131 19 124 148 125
19072 83 36 230 26 60 214 10 73 160 10 44 227 257 280 131 77 291 162 161 100 142 14
1908168 272 141 254 3 144 295 57 173 257 44 198 23 19 160 282 111 173 192 278 252
190988 21 39 271 80 89 176 298 98 227 286 213 185 48 86 135 150 69 58 299 188 118
191073 124 177 58 263 54 132 109 15 29 36 201 93 6 149 215 100 171 41 222 36 237
1911133 293 113 117 248 193 9 183 162 197 234 128 279 70 119 163 15 265 270 255 64
19128 122 204 69 294 232 242 89 169 97 166 27 85 38 152 256 154 200 210 115 61 3
1913108 161 71 209 54 103 176 262 265 34 21 10 37 26 24 80 24 109 258 69 22 165 202
1914154 171 277 155 297 1 229 172 102 86 70 83 29 29 67 107 42 40 67 78 109 287 2
191576 230 298 33 160 246 278 281 21 75 104 66 260 78 145 120 289 247 38 145 55 222
1916103 241 28 211 270 226 131 48 57 202 190 4 263 25 199 149 251 234 157 212 30
1917184 259 195 254 239 77 48 28 269 136 33 167 146 210 180 128 43 137 65 192 220
191885 281 286 242 118 102 57 137 123 58 27 121 78 138 220 56 47 232 177 22 129 68
1919168 74 7 275 240 174 46 142 79 235 218 170 158 30 155 25 235 283 237 198 59 59
192052 246 13 20 214 39 6 214 282 46 106 246 249 47 268 10 8 93 271 15 22 136 269
1921100 200 275 42 ^
1922644 0 6 29 104 280 81 240 230 212 156 114 31 69 146 96 66 27 63 134 52 68 244
1923186 88 139 162 111 53 81 64 162 287 30 6 190 59 128 131 235 246 101 211 93 249
1924205 222 250 57 87 76 206 285 115 185 25 274 34 264 66 253 176 211 219 181 69 5
192551 216 77 58 241 243 32 223 11 224 215 225 102 113 3 136 93 123 273 56 74 165
1926230 86 224 39 157 268 289 197 295 83 105 217 14 293 203 5 127 103 193 37 116
1927122 260 236 7 268 37 242 145 33 110 201 125 238 13 89 293 27 239 202 279 194 50
192827 189 157 127 153 45 43 78 121 106 69 272 119 141 203 166 82 42 50 188 53 5
1929177 148 152 234 42 100 22 205 46 182 132 263 179 63 275 97 129 194 191 72 250
1930107 132 137 247 290 99 296 272 295 118 37 81 190 94 60 206 109 47 260 110 75
1931193 163 139 288 43 128 257 258 19 277 12 252 148 278 166 117 276 125 62 247 164
193276 221 96 101 261 138 8 246 227 143 168 32 97 79 149 39 31 245 123 21 192 135
1933206 235 70 33 286 269 50 62 121 232 1 45 295 244 60 156 64 288 8 105 91 82 218
193427 113 270 204 18 249 79 199 84 183 286 128 5 1 171 227 17 236 259 223 187 292
1935140 49 301 256 104 154 149 165 54 18 299 215 49 125 188 179 28 252 22 255 91 32
193682 268 163 265 220 209 2 58 115 9 259 47 210 65 14 243 158 155 86 98 16 82 92
193795 38 94 10 161 48 97 255 217 266 248 142 266 122 119 191 248 16 32 47 34 88 89
193826 50 12 76 80 51 40 9 133 24 44 191 122 84 259 173 142 140 99 44 15 54 159 42
1939276 301 130 172 79 275 62 197 119 15 180 91 208 150 193 289 71 61 219 231 114
1940157 1 221 272 169 186 264 207 87 237 161 224 165 180 41 72 89 152 284 87 252
1941274 210 241 293 77 284 52 229 199 34 138 134 178 17 60 282 298 61 93 299 39 283
1942200 62 71 187 242 4 290 49 251 120 43 113 144 181 245 73 278 40 185 201 251 261
194388 265 94 186 138 184 223 61 58 65 175 107 6 205 81 114 207 137 71 11 174 170
194473 152 108 110 25 148 11 98 283 150 17 221 146 237 111 88 13 139 36 179 189 207
1945263 3 86 48 273 21 51 90 54 285 65 49 175 233 29 280 257 6 64 36 53 257 132 87
1946111 229 58 291 288 184 173 16 208 24 170 214 197 169 60 30 41 213 134 2 234 92
1947145 83 155 51 166 243 208 200 238 48 21 66 203 40 59 178 176 85 196 106 195 204
1948194 15 4 23 283 24 296 146 61 43 254 189 31 195 78 262 151 130 222 124 34 12
1949202 103 126 216 112 292 14 117 226 80 1 297 159 183 19 151 80 177 274 84 7 218
1950294 181 104 28 126 90 180 217 140 225 67 90 230 262 292 266 72 74 39 298 11 48
1951147 300 278 216 253 265 ^
1952638 1 75 65 227 58 108 240 267 267 185 71 13 95 212 71 235 285 154 238 48 144
195314 288 221 228 43 165 6 283 280 172 125 16 121 145 122 297 74 36 227 17 51 211
19544 64 157 1 38 224 254 280 131 68 291 162 161 94 142 14 165 269 141 251 298 141
1955292 51 170 251 35 198 17 10 154 279 105 173 192 272 249 79 18 36 268 74 80 170
1956292 92 227 280 213 182 45 80 129 150 63 49 296 185 112 70 124 171 55 263 51 129
1957109 6 20 33 201 84 149 215 97 168 32 216 27 234 133 287 110 114 248 190 9 183
1958156 194 228 125 279 64 116 163 9 265 270 252 61 8 116 204 66 294 229 236 89 163
195991 160 24 85 29 149 256 154 197 210 115 55 108 158 68 209 48 103 176 259 262 25
196015 10 31 23 18 77 21 103 258 69 16 162 202 151 171 277 149 297 296 226 169 99
196183 70 83 29 26 67 101 39 31 64 75 106 284 2 67 224 295 33 160 246 275 275 12 69
196298 57 260 69 139 114 289 247 38 142 55 222 298 100 235 22 211 267 226 128 42 54
1963196 184 1 260 25 196 143 248 231 151 212 30 178 256 195 254 239 74 39 28 263
1964133 24 167 143 207 174 122 34 131 65 186 220 79 281 283 239 115 96 57 137 117
196552 18 118 78 132 217 53 44 232 177 22 129 68 168 295 74 302 275 234 174 40 139
196673 232 218 164 158 27 152 19 229 277 231 192 50 59 52 240 4 20 214 30 301 208
1967282 46 106 243 249 38 265 7 5 90 271 15 13 136 269 100 194 269 182 4 23 100 276
196879 240 226 210 156 112 29 67 142 96 60 23 59 134 50 62 242 182 86 137 158 109
196947 77 62 160 287 28 190 53 126 127 235 244 97 209 89 245 205 218 246 53 85 70
1970206 285 113 181 19 270 30 260 66 253 172 207 215 179 63 5 49 214 71 54 237 241
197130 219 9 224 213 223 102 109 3 134 91 119 271 56 70 165 228 84 222 35 157 264
1972285 195 295 77 103 217 12 291 203 303 123 101 302 193 35 116 122 256 236 7 268
197333 242 141 29 108 199 125 238 7 87 289 25 237 200 277 190 50 21 185 153 127 153
197445 39 72 121 104 65 268 115 137 199 166 76 36 46 188 53 3 175 148 148 230 40 98
197516 203 40 180 130 261 177 63 271 97 127 194 187 68 250 105 132 135 243 290 95
1976294 270 293 118 37 75 188 94 60 204 107 47 258 110 73 191 161 135 284 43 124
1977253 254 17 273 12 250 146 274 164 117 274 123 60 245 164 76 217 94 101 261 136
19786 242 223 143 166 32 93 75 147 37 31 245 123 19 188 135 202 233 66 31 286 265
197948 62 119 230 303 41 291 244 56 152 60 286 2 105 91 78 214 27 111 266 200 14
1980247 79 199 84 181 282 128 1 301 167 225 17 232 259 221 187 290 136 47 299 252
1981102 150 145 163 157 ^
1982653 0 18 299 207 41 117 184 179 16 252 18 255 83 20 82 264 155 257 216 201 296
198354 107 303 255 39 202 61 2 235 154 151 86 94 16 78 84 91 30 86 6 153 36 93 251
1984209 262 240 134 266 114 119 187 244 8 24 35 22 76 81 26 38 8 68 80 43 32 1 129
198524 44 191 118 72 251 165 138 140 99 40 11 54 151 42 276 301 122 164 67 271 50
1986189 115 7 180 87 200 146 185 285 67 53 219 231 106 153 1 217 272 165 182 264
1987199 75 237 157 216 157 172 33 72 77 152 280 87 244 270 206 241 293 77 284 40
1988229 191 30 130 130 174 298 13 48 274 298 57 93 295 27 283 196 54 63 179 234 4
1989282 37 243 120 31 113 136 181 237 69 274 36 181 193 251 253 80 261 90 186 138
1990184 223 61 46 53 175 107 6 197 81 114 207 129 59 305 170 162 73 148 100 102 17
1991140 11 98 275 142 5 221 146 229 103 88 9 139 28 171 189 203 255 301 78 40 273 9
199251 86 50 277 57 49 171 233 21 276 257 304 64 32 45 253 124 79 111 221 58 287
1993288 176 169 12 204 20 170 206 197 169 56 22 41 205 126 300 234 92 145 79 155 39
1994158 243 208 200 234 48 21 58 199 40 55 178 172 77 196 98 187 200 190 3 23 279
199516 296 142 49 39 246 185 23 191 74 254 151 130 218 116 34 4 194 95 122 208 112
1996292 6 109 218 72 295 289 159 175 19 143 76 169 274 80 305 214 286 173 104 20
1997126 82 176 213 136 225 55 90 230 262 284 258 60 70 39 290 3 44 147 300 278 216
1998245 35 75 63 223 52 104 238 263 267 185 67 9 95 210 71 233 283 152 236 42 144 8
1999286 217 228 41 161 2 279 278 172 121 14 119 143 120 293 68 36 225 11 45 209 58
2000155 301 34 222 252 280 131 62 291 162 161 90 142 14 163 267 141 249 294 139 290
200147 168 247 29 198 13 4 150 277 101 173 192 268 247 73 16 34 266 70 74 166 288
200288 227 276 213 180 43 76 125 150 59 43 294 183 108 68 124 167 53 263 49 127 109
200314 31 201 78 302 149 215 95 166 26 212 21 232 133 283 108 112 248 188 9 183 152
2004192 224 123 279 60 114 163 5 265 270 250 59 8 112 204 64 294 227 232 89 159 87
2005156 22 85 23 147 256 154 195 210 115 51 304 108 156 66 209 44 103 176 257 260
200619 11 10 27 21 14 75 19 99 258 69 12 160 202 149 171 277 145 297 292 224 167 97
200781 70 83 29 24 67 97 37 25 62 73 104 282 2 61 220 293 33 160 246 273 271 6 65
200894 51 260 63 135 110 289 247 38 140 55 222 296 98 231 18 211 265 226 126 38 52
2009192 180 305 258 25 194 139 246 229 147 212 30 174 254 195 254 239 72 33 28 259
2010131 18 167 141 205 170 118 28 127 65 182 220 75 281 281 237 113 92 57 137 113
201148 12 116 78 128 215 51 42 232 177 22 129 68 168 291 161 ^
2012653 0 296 275 228 174 34 136 67 229 218 158 158 24 149 13 223 271 225 186 41 59
201352 234 302 20 214 21 295 202 282 46 106 240 249 29 262 4 2 87 271 15 4 136 269
2014100 188 263 182 1 14 94 270 76 240 220 207 156 109 26 64 136 96 51 17 53 134 47
201553 239 176 83 134 152 106 38 71 59 157 287 25 298 190 44 123 121 235 241 91 206
201683 239 205 212 240 47 82 61 206 285 110 175 10 264 24 254 66 253 166 201 209
2017176 54 5 46 211 62 48 231 238 27 213 6 224 210 220 102 103 3 131 88 113 268 56
201864 165 225 81 219 29 157 258 279 192 295 68 100 217 9 288 203 297 117 98 302
2019193 32 116 122 250 236 7 268 27 242 135 23 105 196 125 238 305 84 283 22 234
2020197 274 184 50 12 179 147 127 153 45 33 63 121 101 59 262 109 131 193 166 67 27
202140 188 53 172 148 142 224 37 95 7 200 31 177 127 258 174 63 265 97 124 194 181
202262 250 102 132 132 237 290 89 291 267 290 118 37 66 185 94 60 201 104 47 255
2023110 70 188 158 129 278 43 118 247 248 14 267 12 247 143 268 161 117 271 120 57
2024242 164 76 211 91 101 261 133 3 236 217 143 163 32 87 69 144 34 31 245 123 16
2025182 135 196 230 60 28 286 259 45 62 116 227 303 35 285 244 50 146 54 283 300
2026105 91 72 208 27 108 260 194 8 244 79 199 84 178 276 128 302 298 161 222 17 226
2027259 218 187 287 130 44 296 246 99 144 139 160 44 18 299 205 39 115 183 179 13
2028252 17 255 81 17 82 263 153 255 215 199 294 53 105 301 254 37 200 60 306 233
2029153 150 86 93 16 77 82 90 28 84 5 151 33 92 250 207 261 238 132 266 112 119 186
2030243 6 22 32 19 73 79 26 35 7 66 80 41 30 306 128 24 44 191 117 69 249 163 137
2031140 99 39 10 54 149 42 276 301 120 162 64 270 47 187 114 5 180 86 198 145 183
2032284 66 51 219 231 104 152 1 216 272 164 181 264 197 72 237 156 214 155 170 31
203372 74 152 279 87 242 269 205 241 293 77 284 37 229 189 29 128 129 173 297 12 45
2034272 298 56 93 294 24 283 195 52 61 177 232 4 280 34 241 120 28 113 134 181 235
203568 273 35 180 191 251 251 78 260 89 186 138 184 223 61 43 50 175 107 6 195 81
2036114 207 127 56 303 169 160 73 147 98 100 15 138 11 98 273 140 2 221 146 227 101
203788 8 139 26 169 189 202 253 300 76 38 273 6 51 85 49 275 55 49 170 233 19 275
2038257 303 64 31 43 252 122 77 111 219 58 286 288 174 168 11 203 19 170 204 197
2039169 55 20 41 203 124 299 234 92 145 78 155 36 156 243 208 200 233 48 21 56 198
204040 54 178 171 75 196 96 185 199 189 306 23 278 14 296 141 46 38 244 184 21 190
204173 252 151 130 217 114 34 2 192 93 121 206 112 292 4 107 216 70 293 112 ^
2042646 1 159 169 19 137 73 163 274 77 302 211 280 167 104 14 126 76 173 210 133
2043225 46 90 230 262 278 252 51 67 39 284 306 41 147 300 278 216 239 35 75 60 217
204443 98 235 257 267 185 61 3 95 207 71 230 280 149 233 33 144 308 283 211 228 38
2045155 305 273 275 172 115 11 116 140 117 287 59 36 222 2 36 206 303 49 152 295 28
2046219 249 280 131 53 291 162 161 84 142 14 160 264 141 246 288 136 287 41 165 241
204720 198 7 304 144 274 95 173 192 262 244 64 13 31 263 64 65 160 282 82 227 270
2048213 177 40 70 119 150 53 34 291 180 102 65 124 161 50 263 46 124 109 300 5 28
2049201 69 299 149 215 92 163 17 206 12 229 133 277 105 109 248 185 9 183 146 189
2050218 120 279 54 111 163 308 265 270 247 56 8 106 204 61 294 224 226 89 153 81
2051150 19 85 14 144 256 154 192 210 115 45 304 108 153 63 209 38 103 176 254 257
205210 5 10 21 18 8 72 16 93 258 69 6 157 202 146 171 277 139 297 286 221 164 94 78
205370 83 29 21 67 91 34 16 59 70 101 279 2 52 214 290 33 160 246 270 265 306 59 88
205442 260 54 129 104 289 247 38 137 55 222 293 95 225 12 211 262 226 123 32 49 186
2055174 305 255 25 191 133 243 226 141 212 30 168 251 195 254 239 69 24 28 253 128
20569 167 138 202 164 112 19 121 65 176 220 69 281 278 234 110 86 57 137 107 42 3
2057113 78 122 212 48 39 232 177 22 129 68 168 285 74 292 275 224 174 30 134 63 227
2058218 154 158 22 147 9 219 267 221 182 35 59 52 230 298 20 214 15 291 198 282 46
2059106 238 249 23 260 2 85 271 15 307 136 269 100 184 259 182 308 8 90 266 74 240
2060216 205 156 107 24 62 132 96 45 13 49 134 45 47 237 172 81 132 148 104 32 67 57
2061155 287 23 294 190 38 121 117 235 239 87 204 79 235 205 208 236 43 80 55 206
2062285 108 171 4 260 20 250 66 253 162 197 205 174 48 5 44 209 56 44 227 236 25
2063209 4 224 208 218 102 99 3 129 86 109 266 56 60 165 223 79 217 25 157 254 275
2064190 295 62 98 217 7 286 203 293 113 96 302 193 30 116 122 246 236 7 268 23 242
2065131 19 103 194 125 238 301 82 279 20 232 195 272 180 50 6 175 143 127 153 45 29
206657 121 99 55 258 105 127 189 166 61 21 36 188 53 307 170 148 138 220 35 93 1
2067198 25 175 125 256 172 63 261 97 122 194 177 58 250 100 132 130 233 290 85 289
2068265 288 118 37 60 183 94 60 199 102 47 253 110 68 186 156 125 274 43 114 243
2069244 12 263 12 245 141 264 159 117 269 118 55 240 164 76 207 89 101 261 131 1
2070232 213 143 161 32 83 65 142 32 31 245 123 14 178 135 192 228 56 26 286 255 43
207162 114 225 303 31 281 244 46 142 50 281 296 105 91 238 ^
2072647 0 200 27 104 252 186 240 79 199 84 174 268 128 298 294 153 218 17 218 259
2073214 187 283 122 40 292 238 95 136 131 156 36 18 299 197 31 107 179 179 1 252 13
2074255 73 5 82 259 145 247 211 191 286 49 97 293 250 29 192 56 298 225 149 146 86
207589 16 73 74 86 20 76 1 143 21 88 246 199 257 230 124 266 104 119 182 239 309 14
207620 7 61 71 26 23 3 58 80 33 22 302 124 24 44 191 113 57 241 155 133 140 99 35 6
207754 141 42 276 301 112 154 52 266 35 179 110 308 180 82 190 141 175 280 62 43
2078219 231 96 148 1 212 272 160 177 264 189 60 237 152 206 147 162 23 72 62 152
2079275 87 234 265 201 241 293 77 284 25 229 181 25 120 125 169 293 8 33 264 298 52
208093 290 12 283 191 44 53 169 224 4 272 22 233 120 16 113 126 181 227 64 269 31
2081176 183 251 243 70 256 85 186 138 184 223 61 31 38 175 107 6 187 81 114 207 119
208244 295 165 152 73 143 90 92 7 130 11 98 265 132 301 221 146 219 93 88 4 139 18
2083161 189 198 245 296 68 30 273 305 51 81 45 267 47 49 166 233 11 271 257 299 64
208427 35 248 114 69 111 211 58 282 288 166 164 7 199 15 170 196 197 169 51 12 41
2085195 116 295 234 92 145 74 155 24 148 243 208 200 229 48 21 48 194 40 50 178 167
208667 196 88 177 195 185 299 306 23 274 6 296 137 34 34 236 180 13 186 69 244 151
2087130 213 106 34 305 184 85 117 198 112 292 307 99 208 62 285 279 159 165 19 133
208871 159 274 75 300 209 276 163 104 10 126 72 171 208 131 225 40 90 230 262 274
2089248 45 65 39 280 304 39 147 300 278 216 235 35 75 58 213 37 94 233 253 267 185
209057 310 95 205 71 228 278 147 231 27 144 304 281 207 228 36 151 303 269 273 172
2091111 9 114 138 115 283 53 36 220 307 30 204 301 43 150 291 24 217 247 280 131 47
2092291 162 161 80 142 14 158 262 141 244 284 134 285 37 163 237 14 198 3 300 140
2093272 91 173 192 258 242 58 11 29 261 60 59 156 278 78 227 266 213 175 38 66 115
2094150 49 28 289 178 98 63 124 157 48 263 44 122 109 296 310 26 201 63 297 149 215
209590 161 11 202 6 227 133 273 103 107 248 183 9 183 142 187 214 118 279 50 109
2096163 306 265 270 245 54 8 102 204 59 294 222 222 89 149 77 146 17 85 8 142 256
2097154 190 210 115 41 304 108 151 61 209 34 103 176 252 255 4 1 10 17 16 4 70 14
209889 258 69 2 155 202 144 171 277 135 297 282 219 162 92 76 70 83 29 19 67 87 32
209910 57 68 99 277 2 46 210 288 33 160 246 268 261 302 55 84 36 260 48 125 100 289
2100247 38 135 55 222 291 93 221 8 211 260 226 121 28 47 182 170 305 253 25 189 129
2101241 224 137 212 30 164 249 195 254 239 86 ^
2102665 0 15 28 247 125 167 135 199 158 106 10 115 65 170 220 63 281 275 231 107 80
210357 137 101 36 306 110 78 116 209 45 36 232 177 22 129 68 168 279 74 286 275 218
2104174 24 131 57 224 218 148 158 19 144 3 213 261 215 176 26 59 52 224 292 20 214
21056 285 192 282 46 106 235 249 14 257 311 309 82 271 15 301 136 269 100 178 253
2106182 308 311 84 260 71 240 210 202 156 104 21 59 126 96 36 7 43 134 42 38 234
2107166 78 129 142 101 23 61 54 152 287 20 288 190 29 118 111 235 236 81 201 73 229
2108205 202 230 37 77 46 206 285 105 165 307 254 14 244 66 253 156 191 199 171 39 5
210941 206 47 38 221 233 22 203 1 224 205 215 102 93 3 126 83 103 263 56 54 165 220
211076 214 19 157 248 269 187 295 53 95 217 4 283 203 287 107 93 302 193 27 116 122
2111240 236 7 268 17 242 125 13 100 191 125 238 295 79 273 17 229 192 269 174 50
2112309 169 137 127 153 45 23 48 121 96 49 252 99 121 183 166 52 12 30 188 53 307
2113167 148 132 214 32 90 304 195 16 172 122 253 169 63 255 97 119 194 171 52 250
211497 132 127 227 290 79 286 262 285 118 37 51 180 94 60 196 99 47 250 110 65 183
2115153 119 268 43 108 237 238 9 257 12 242 138 258 156 117 266 115 52 237 164 76
2116201 86 101 261 128 310 226 207 143 158 32 77 59 139 29 31 245 123 11 172 135
2117186 225 50 23 286 249 40 62 111 222 303 25 275 244 40 136 44 278 290 105 91 62
2118198 27 103 250 184 310 239 79 199 84 173 266 128 297 293 151 217 17 216 259 213
2119187 282 120 39 291 236 94 134 129 155 34 18 299 195 29 105 178 179 310 252 12
2120255 71 2 82 258 143 245 210 189 284 48 95 291 249 27 190 55 296 223 148 145 86
212188 16 72 72 85 18 74 141 18 87 245 197 256 228 122 266 102 119 181 238 308 12
212217 4 58 69 26 20 2 56 80 31 20 301 123 24 44 191 112 54 239 153 132 140 99 34 5
212354 139 42 276 301 110 152 49 265 32 177 109 307 180 81 188 140 173 279 61 41
2124219 231 94 147 1 211 272 159 176 264 187 57 237 151 204 145 160 21 72 59 152
2125274 87 232 264 200 241 293 77 284 22 229 179 24 118 124 168 292 7 30 262 298 51
212693 289 9 283 190 42 51 167 222 4 270 19 231 120 13 113 124 181 225 63 268 30
2127175 181 251 241 68 255 84 186 138 184 223 61 28 35 175 107 6 185 81 114 207 117
212841 293 164 150 73 142 88 90 5 128 11 98 263 130 299 221 146 217 91 88 3 139 16
2129159 189 197 243 295 66 28 273 303 51 80 44 265 45 49 165 233 9 270 257 298 64
213026 33 247 112 67 111 209 58 281 288 164 163 6 198 14 170 194 197 169 50 10 41
2131193 114 294 234 92 145 73 155 21 146 243 208 200 228 48 21 46 193 40 49 178 166
213265 196 86 175 194 184 297 306 23 273 206 ^
2133641 0 296 134 25 31 230 177 7 183 66 238 151 130 210 100 34 302 178 79 114 192
2134112 292 304 93 202 56 279 273 159 159 19 127 68 153 274 72 297 206 270 157 104
21354 126 66 168 205 128 225 31 90 230 262 268 242 36 62 39 274 301 36 147 300 278
2136216 229 35 75 55 207 28 88 230 247 267 185 51 307 95 202 71 225 275 144 228 18
2137144 298 278 201 228 33 145 300 263 270 172 105 6 111 135 112 277 44 36 217 301
213821 201 298 34 147 285 18 214 244 280 131 38 291 162 161 74 142 14 155 259 141
2139241 278 131 282 31 160 231 5 198 311 294 134 269 85 173 192 252 239 49 8 26 258
214054 50 150 272 72 227 260 213 172 35 60 109 150 43 19 286 175 92 60 124 151 45
2141263 41 119 109 290 304 23 201 54 294 149 215 87 158 2 196 311 224 133 267 100
2142104 248 180 9 183 136 184 208 115 279 44 106 163 303 265 270 242 51 8 96 204 56
2143294 219 216 89 143 71 140 14 85 313 139 256 154 187 210 115 35 304 108 148 58
2144209 28 103 176 249 252 309 309 10 11 13 312 67 11 83 258 69 310 152 202 141 171
2145277 129 297 276 216 159 89 73 70 83 29 16 67 81 29 1 54 65 96 274 2 37 204 285
214633 160 246 265 255 296 49 78 27 260 39 119 94 289 247 38 132 55 222 288 90 215
21472 211 257 226 118 22 44 176 164 305 250 25 186 123 238 221 131 212 30 158 246
2148195 254 239 64 9 28 243 123 308 167 133 197 154 102 4 111 65 166 220 59 281 273
2149229 105 76 57 137 97 32 302 108 78 112 207 43 34 232 177 22 129 68 168 275 74
2150282 275 214 174 20 129 53 222 218 144 158 17 142 313 209 257 211 172 20 59 52
2151220 288 20 214 281 188 282 46 106 233 249 8 255 311 309 80 271 15 297 136 269
2152100 174 249 182 308 307 80 256 69 240 206 200 156 102 19 57 122 96 30 3 39 134
215340 32 232 162 76 127 138 99 17 57 52 150 287 18 284 190 23 116 107 235 234 77
2154199 69 225 205 198 226 33 75 40 206 285 103 161 303 250 10 240 66 253 152 187
2155195 169 33 5 39 204 41 34 217 231 20 199 313 224 203 213 102 89 3 124 81 99 261
215656 50 165 218 74 212 15 157 244 265 185 295 47 93 217 2 281 203 283 103 91 302
2157193 25 116 122 236 236 7 268 13 242 121 9 98 189 125 238 291 77 269 15 227 190
2158267 170 50 305 165 133 127 153 45 19 42 121 94 45 248 95 117 179 166 46 6 26
2159188 53 307 165 148 128 210 30 88 300 193 10 170 120 251 167 63 251 97 117 194
2160167 48 250 95 132 125 223 290 75 284 260 283 118 37 45 178 94 60 194 97 47 248
2161110 63 181 151 115 264 43 104 233 234 7 253 12 240 136 254 154 117 264 113 50
2162235 164 76 197 84 101 261 126 310 222 203 143 276 ^
2163656 0 32 69 51 135 25 31 245 123 7 164 135 178 221 42 19 286 241 36 62 107 218
2164303 17 267 244 32 128 36 274 282 105 91 54 190 27 99 242 176 306 235 79 199 84
2165169 258 128 293 289 143 213 17 208 259 209 187 278 112 35 287 228 90 126 121
2166151 26 18 299 187 21 97 174 179 302 252 8 255 63 306 82 254 135 237 206 181 276
216744 87 283 245 19 182 51 288 215 144 141 86 84 16 68 64 81 10 66 312 133 6 83
2168241 189 252 220 114 266 94 119 177 234 304 4 5 308 46 61 26 8 314 48 80 23 12
2169297 119 24 44 191 108 42 231 145 128 140 99 30 1 54 131 42 276 301 102 144 37
2170261 20 169 105 303 180 77 180 136 165 275 57 33 219 231 86 143 1 207 272 155
2171172 264 179 45 237 147 196 137 152 13 72 47 152 270 87 224 260 196 241 293 77
2172284 10 229 171 20 110 120 164 288 3 18 254 298 47 93 285 313 283 186 34 43 159
2173214 4 262 7 223 120 1 113 116 181 217 59 264 26 171 173 251 233 60 251 80 186
2174138 184 223 61 16 23 175 107 6 177 81 114 207 109 29 285 160 142 73 138 80 82
2175313 120 11 98 255 122 291 221 146 209 83 88 315 139 8 151 189 193 235 291 58 20
2176273 295 51 76 40 257 37 49 161 233 1 266 257 294 64 22 25 243 104 59 111 201 58
2177277 288 156 159 2 194 10 170 186 197 169 46 2 41 185 106 290 234 92 145 69 155
21789 138 243 208 200 224 48 21 38 189 40 45 178 162 57 196 78 167 190 180 289 306
217923 269 312 296 132 19 29 226 175 3 181 64 234 151 130 208 96 34 300 174 75 112
2180188 112 292 302 89 198 52 275 269 159 155 19 123 66 149 274 70 295 204 266 153
2181104 126 62 166 203 126 225 25 90 230 262 264 238 30 60 39 270 299 34 147 300
2182278 216 225 35 75 53 203 22 84 228 243 267 185 47 305 95 200 71 223 273 142 226
218312 144 294 276 197 228 31 141 298 259 268 172 101 4 109 133 110 273 38 36 215
2184297 15 199 296 28 145 281 14 212 242 280 131 32 291 162 161 70 142 14 153 257
2185141 239 274 129 280 27 158 227 315 198 309 290 130 267 81 173 192 248 237 43 6
218624 256 50 44 146 268 68 227 256 213 170 33 56 105 150 39 13 284 173 88 58 124
2187147 43 263 39 117 109 286 300 21 201 48 292 149 215 85 156 312 192 307 222 133
2188263 98 102 248 178 9 183 132 182 204 113 279 40 104 163 301 265 270 240 49 8 92
2189204 54 294 217 212 89 139 67 136 12 85 309 137 256 154 185 210 115 31 304 108
2190146 56 209 24 103 176 247 250 305 307 10 7 11 310 65 9 79 258 69 308 150 202
2191139 171 277 125 297 272 214 157 87 71 70 83 29 14 67 77 27 311 52 63 94 272 2
219231 200 283 33 160 246 263 251 292 45 74 21 260 33 115 90 289 247 38 130 55 222
2193286 88 211 227 ^
2194668 0 211 254 226 115 16 41 170 158 305 247 25 183 117 235 218 125 212 30 152
2195243 195 254 239 61 28 237 120 302 167 130 194 148 96 312 105 65 160 220 53 281
2196270 226 102 70 57 137 91 26 296 105 78 106 204 40 31 232 177 22 129 68 168 269
219774 276 275 208 174 14 126 47 219 218 138 158 14 139 310 203 251 205 166 11 59
219852 214 282 20 214 308 275 182 282 46 106 230 249 316 252 311 309 77 271 15 291
2199136 269 100 168 243 182 308 301 74 250 66 240 200 197 156 99 16 54 116 96 21
2200314 33 134 37 23 229 156 73 124 132 96 8 51 49 147 287 15 278 190 14 113 101
2201235 231 71 196 63 219 205 192 220 27 72 31 206 285 100 155 297 244 4 234 66 253
2202146 181 189 166 24 5 36 201 32 28 211 228 17 193 313 224 200 210 102 83 3 121
220378 93 258 56 44 165 215 71 209 9 157 238 259 182 295 38 90 217 316 278 203 277
220497 88 302 193 22 116 122 230 236 7 268 7 242 115 3 95 186 125 238 285 74 263 12
2205224 187 264 164 50 299 159 127 127 153 45 13 33 121 91 39 242 89 111 173 166 37
2206314 20 188 53 307 162 148 122 204 27 85 294 190 1 167 117 248 164 63 245 97 114
2207194 161 42 250 92 132 122 217 290 69 281 257 280 118 37 36 175 94 60 191 94 47
2208245 110 60 178 148 109 258 43 98 227 228 4 247 12 237 133 248 151 117 261 110
220947 232 164 76 191 81 101 261 123 310 216 197 143 153 32 67 49 134 24 31 245 123
22106 162 135 176 220 40 18 286 239 35 62 106 217 303 15 265 244 30 126 34 273 280
2211105 91 52 188 27 98 240 174 305 234 79 199 84 168 256 128 292 288 141 212 17
2212206 259 208 187 277 110 34 286 226 89 124 119 150 24 18 299 185 19 95 173 179
2213300 252 7 255 61 304 82 253 133 235 205 179 274 43 85 281 244 17 180 50 286 213
2214143 140 86 83 16 67 62 80 8 64 312 131 3 82 240 187 251 218 112 266 92 119 176
2215233 303 2 2 306 43 59 26 5 314 46 80 21 10 296 118 24 44 191 107 39 229 143 127
2216140 99 29 54 129 42 276 301 100 142 34 260 17 167 104 302 180 76 178 135 163
2217274 56 31 219 231 84 142 1 206 272 154 171 264 177 42 237 146 194 135 150 11 72
221844 152 269 87 222 259 195 241 293 77 284 7 229 169 19 108 119 163 287 2 15 252
2219298 46 93 284 311 283 185 32 41 157 212 4 260 4 221 120 315 113 114 181 215 58
2220263 25 170 171 251 231 58 250 79 186 138 184 223 61 13 20 175 107 6 175 81 114
2221207 107 26 283 159 140 73 137 78 80 312 118 11 98 253 120 289 221 146 207 81 88
2222315 139 6 149 189 192 233 290 56 18 273 293 51 75 39 255 35 49 160 233 316 265
2223257 293 64 21 23 242 102 57 111 199 58 276 288 154 158 1 193 9 170 184 197 169
222445 41 183 104 289 234 92 145 68 155 6 136 243 208 203 ^
2225656 0 221 48 21 32 186 40 42 178 159 51 196 72 161 187 177 283 306 23 266 309
2226296 129 10 26 220 172 316 178 61 228 151 130 205 90 34 297 168 69 109 182 112
2227292 299 83 192 46 269 263 159 149 19 117 63 143 274 67 292 201 260 147 104 313
2228126 56 163 200 123 225 16 90 230 262 258 232 21 57 39 264 296 31 147 300 278
2229216 219 35 75 50 197 13 78 225 237 267 185 41 302 95 197 71 220 270 139 223 3
2230144 288 273 191 228 28 135 295 253 265 172 95 1 106 130 107 267 29 36 212 291 6
2231196 293 19 142 275 8 209 239 280 131 23 291 162 161 64 142 14 150 254 141 236
2232268 126 277 21 155 221 309 198 306 284 124 264 75 173 192 242 234 34 3 21 253
223344 35 140 262 62 227 250 213 167 30 50 99 150 33 4 281 170 82 55 124 141 40 263
223436 114 109 280 294 18 201 39 289 149 215 82 153 306 186 301 219 133 257 95 99
2235248 175 9 183 126 179 198 110 279 34 101 163 298 265 270 237 46 8 86 204 51 294
2236214 206 89 133 61 130 9 85 303 134 256 154 182 210 115 25 304 108 143 53 209 18
2237103 176 244 247 299 304 10 1 8 307 62 6 73 258 69 305 147 202 136 171 277 119
2238297 266 211 154 84 68 70 83 29 11 67 71 24 305 49 60 91 269 2 22 194 280 33 160
2239246 260 245 286 39 68 12 260 24 109 84 289 247 38 127 55 222 283 85 205 311 211
2240252 226 113 12 39 166 154 305 245 25 181 113 233 216 121 212 30 148 241 195 254
2241239 59 313 28 233 118 298 167 128 192 144 92 308 101 65 156 220 49 281 268 224
2242100 66 57 137 87 22 292 103 78 102 202 38 29 232 177 22 129 68 168 265 74 272
2243275 204 174 10 124 43 217 218 134 158 12 137 308 199 247 201 162 5 59 52 210
2244278 20 214 304 271 178 282 46 106 228 249 312 250 311 309 75 271 15 287 136 269
2245100 164 239 182 308 297 70 246 64 240 196 195 156 97 14 52 112 96 15 312 29 134
224635 17 227 152 71 122 128 94 2 47 47 145 287 13 274 190 8 111 97 235 229 67 194
224759 215 205 188 216 23 70 25 206 285 98 151 293 240 230 66 253 142 177 185 164
224818 5 34 199 26 24 207 226 15 189 313 224 198 208 102 79 3 119 76 89 256 56 40
2249165 213 69 207 5 157 234 255 180 295 32 88 217 316 276 203 273 93 86 302 193 20
2250116 122 226 236 7 268 3 242 111 318 93 184 125 238 281 72 259 10 222 185 262
2251160 50 295 155 123 127 153 45 9 27 121 89 35 238 85 107 169 166 31 310 16 188
225253 307 160 148 118 200 25 83 290 188 314 165 115 246 162 63 241 97 112 194 157
225338 250 90 132 120 213 290 65 279 255 278 118 37 30 173 94 60 189 92 47 243 110
225458 176 146 105 254 43 94 223 224 2 243 12 235 131 244 149 117 259 108 45 230
2255164 76 187 79 101 261 109 ^
2256656 0 310 208 189 143 149 32 59 41 130 20 31 245 123 2 154 135 168 216 32 14
2257286 231 31 62 102 213 303 7 257 244 22 118 26 269 272 105 91 44 180 27 94 232
2258166 301 230 79 199 84 164 248 128 288 284 133 208 17 198 259 204 187 273 102 30
2259282 218 85 116 111 146 16 18 299 177 11 87 169 179 292 252 3 255 53 296 82 249
2260125 227 201 171 266 39 77 273 240 9 172 46 278 205 139 136 86 79 16 63 54 76 56
2261312 123 312 78 236 179 247 210 104 266 84 119 172 229 299 315 311 298 31 51 26
2262314 314 38 80 13 2 292 114 24 44 191 103 27 221 135 123 140 99 25 317 54 121 42
2263276 301 92 134 22 256 5 159 100 298 180 72 170 131 155 270 52 23 219 231 76 138
22641 202 272 150 167 264 169 30 237 142 186 127 142 3 72 32 152 265 87 214 255 191
2265241 293 77 284 316 229 161 15 100 115 159 283 319 3 244 298 42 93 280 303 283
2266181 24 33 149 204 4 252 313 213 120 307 113 106 181 207 54 259 21 166 163 251
2267223 50 246 75 186 138 184 223 61 1 8 175 107 6 167 81 114 207 99 14 275 155 132
226873 133 70 72 308 110 11 98 245 112 281 221 146 199 73 88 315 139 319 141 189
2269188 225 286 48 10 273 285 51 71 35 247 27 49 156 233 312 261 257 289 64 17 15
2270238 94 49 111 191 58 272 288 146 154 318 189 5 170 176 197 169 41 313 41 175 96
2271285 234 92 145 64 155 315 128 243 208 200 219 48 21 28 184 40 40 178 157 47 196
227268 157 185 175 279 306 23 264 307 296 127 4 24 216 170 314 176 59 224 151 130
2273203 86 34 295 164 65 107 178 112 292 297 79 188 42 265 259 159 145 19 113 61
2274139 274 65 290 199 256 143 104 311 126 52 161 198 121 225 10 90 230 262 254 228
227515 55 39 260 294 29 147 300 278 216 215 35 75 48 193 7 74 223 233 267 185 37
2276300 95 195 71 218 268 137 221 318 144 284 271 187 228 26 131 293 249 263 172 91
2277320 104 128 105 263 23 36 210 287 194 291 13 140 271 4 207 237 280 131 17 291
2278162 161 60 142 14 148 252 141 234 264 124 275 17 153 217 305 198 304 280 120
2279262 71 173 192 238 232 28 1 19 251 40 29 136 258 58 227 246 213 165 28 46 95
2280150 29 319 279 168 78 53 124 137 38 263 34 112 109 276 290 16 201 33 287 149
2281215 80 151 302 182 297 217 133 253 93 97 248 173 9 183 122 177 194 108 279 30
228299 163 296 265 270 235 44 8 82 204 49 294 212 202 89 129 57 126 7 85 299 132
2283256 154 180 210 115 21 304 108 141 51 209 14 103 176 242 245 295 302 10 318 6
2284305 60 4 69 258 69 303 145 202 134 171 277 115 297 262 209 152 82 66 70 83 29 9
228567 67 22 301 47 58 89 267 2 16 190 278 33 160 246 258 241 282 35 64 6 260 18
2286105 80 289 247 38 125 55 292 ^
2287<D
2288
2289H>SHS Type 3 Strings<H
2290D>
229145 0 14 5 3 1 4 16 12 20 1 6 15 11 18 4 17 16 6 10 3 2 9 9 14 6 2 8 6 7 10 17
229212 20 6 7 5 16 1 4 2 17 10 15 8 20 1 ^
2293<D
diff --git a/src/lib/libssl/test/sha1hashes.txt b/src/lib/libssl/test/sha1hashes.txt
new file mode 100644
index 0000000000..4adfa197e9
--- /dev/null
+++ b/src/lib/libssl/test/sha1hashes.txt
@@ -0,0 +1,342 @@
1# Configuration information for "SHA-1 Test"
2# SHA tests are configured for BYTE oriented implementations
3H>SHS Type 1 Hashes<H
4D>
5DA39A3EE5E6B4B0D3255BFEF95601890AFD80709 ^
63CDF2936DA2FC556BFA533AB1EB59CE710AC80E5 ^
719C1E2048FA7393CFBF2D310AD8209EC11D996E5 ^
8CA775D8C80FAA6F87FA62BECA6CA6089D63B56E5 ^
971AC973D0E4B50AE9E5043FF4D615381120A25A0 ^
10A6B5B9F854CFB76701C3BDDBF374B3094EA49CBA ^
11D87A0EE74E4B9AD72E6847C87BDEEB3D07844380 ^
121976B8DD509FE66BF09C9A8D33534D4EF4F63BFD ^
135A78F439B6DB845BB8A558E4CEB106CD7B7FF783 ^
14F871BCE62436C1E280357416695EE2EF9B83695C ^
1562B243D1B780E1D31CF1BA2DE3F01C72AEEA0E47 ^
161698994A273404848E56E7FDA4457B5900DE1342 ^
17056F4CDC02791DA7ED1EB2303314F7667518DEEF ^
189FE2DA967BD8441EEA1C32DF68DDAA9DC1FC8E4B ^
1973A31777B4ACE9384EFA8BBEAD45C51A71ABA6DD ^
203F9D7C4E2384EDDABFF5DD8A31E23DE3D03F42AC ^
214814908F72B93FFD011135BEE347DE9A08DA838F ^
220978374B67A412A3102C5AA0B10E1A6596FC68EB ^
2344AD6CB618BD935460D46D3F921D87B99AB91C1E ^
2402DC989AF265B09CF8485640842128DCF95E9F39 ^
2567507B8D497B35D6E99FC01976D73F54AECA75CF ^
261EAE0373C1317CB60C36A42A867B716039D441F5 ^
279C3834589E5BFFAC9F50950E0199B3EC2620BEC8 ^
28209F7ABC7F3B878EE46CDF3A1FBB9C21C3474F32 ^
2905FC054B00D97753A9B3E2DA8FBBA3EE808CEF22 ^
300C4980EA3A46C757DFBFC5BAA38AC6C8E72DDCE7 ^
3196A460D2972D276928B69864445BEA353BDCFFD2 ^
32F3EF04D8FA8C6FA9850F394A4554C080956FA64B ^
33F2A31D875D1D7B30874D416C4D2EA6BAF0FFBAFE ^
34F4942D3B9E9588DCFDC6312A84DF75D05F111C20 ^
35310207DF35B014E4676D30806FA34424813734DD ^
364DA1955B2FA7C7E74E3F47D7360CE530BBF57CA3 ^
3774C4BC5B26FB4A08602D40CCEC6C6161B6C11478 ^
380B103CE297338DFC7395F7715EE47539B556DDB6 ^
39EFC72D99E3D2311CE14190C0B726BDC68F4B0821 ^
40660EDAC0A8F4CE33DA0D8DBAE597650E97687250 ^
41FE0A55A988B3B93946A63EB36B23785A5E6EFC3E ^
420CBDF2A5781C59F907513147A0DE3CC774B54BF3 ^
43663E40FEE5A44BFCB1C99EA5935A6B5BC9F583B0 ^
4400162134256952DD9AE6B51EFB159B35C3C138C7 ^
45CEB88E4736E354416E2010FC1061B3B53B81664B ^
46A6A2C4B6BCC41DDC67278F3DF4D8D0B9DD7784EF ^
47C23D083CD8820B57800A869F5F261D45E02DC55D ^
48E8AC31927B78DDEC41A31CA7A44EB7177165E7AB ^
49E864EC5DBAB0F9FF6984AB6AD43A8C9B81CC9F9C ^
50CFED6269069417A84D6DE2347220F4B858BCD530 ^
51D9217BFB46C96348722C3783D29D4B1A3FEDA38C ^
52DEC24E5554F79697218D317315FA986229CE3350 ^
5383A099DF7071437BA5495A5B0BFBFEFE1C0EF7F3 ^
54AA3198E30891A83E33CE3BFA0587D86A197D4F80 ^
559B6ACBEB4989CBEE7015C7D515A75672FFDE3442 ^
56B021EB08A436B02658EAA7BA3C88D49F1219C035 ^
57CAE36DAB8AEA29F62E0855D9CB3CD8E7D39094B1 ^
5802DE8BA699F3C1B0CB5AD89A01F2346E630459D7 ^
5988021458847DD39B4495368F7254941859FAD44B ^
6091A165295C666FE85C2ADBC5A10329DAF0CB81A0 ^
614B31312EAF8B506811151A9DBD162961F7548C4B ^
623FE70971B20558F7E9BAC303ED2BC14BDE659A62 ^
6393FB769D5BF49D6C563685954E2AECC024DC02D6 ^
64BC8827C3E614D515E83DEA503989DEA4FDA6EA13 ^
65E83868DBE4A389AB48E61CFC4ED894F32AE112AC ^
6655C95459CDE4B33791B4B2BCAAF840930AF3F3BD ^
6736BB0E2BA438A3E03214D9ED2B28A4D5C578FCAA ^
683ACBF874199763EBA20F3789DFC59572ACA4CF33 ^
6986BE037C4D509C9202020767D860DAB039CADACE ^
7051B57D7080A87394EEC3EB2E0B242E553F2827C9 ^
711EFBFA78866315CE6A71E457F3A750A38FACAB41 ^
7257D6CB41AEEC20236F365B3A490C61D0CFA39611 ^
73C532CB64B4BA826372BCCF2B4B5793D5B88BB715 ^
7415833B5631032663E783686A209C6A2B47A1080E ^
75D04F2043C96E10CD83B574B1E1C217052CD4A6B2 ^
76E8882627C64DB743F7DB8B4413DD033FC63BEB20 ^
77CD2D32286B8867BC124A0AF2236FC74BE3622199 ^
78019B70D745375091ED5C7B218445EC986D0F5A82 ^
79E5FF5FEC1DADBAED02BF2DAD4026BE6A96B3F2AF ^
806F4E23B3F2E2C068D13921FE4E5E053FFED4E146 ^
8125E179602A575C915067566FBA6DA930E97F8678 ^
8267DED0E68E235C8A523E051E86108EEB757EFBFD ^
83AF78536EA83C822796745556D62A3EE82C7BE098 ^
8464D7AC52E47834BE72455F6C64325F9C358B610D ^
859D4866BAA3639C13E541F250FFA3D8BC157A491F ^
862E258811961D3EB876F30E7019241A01F9517BEC ^
878E0EBC487146F83BC9077A1630E0FB3AB3C89E63 ^
88CE8953741FFF3425D2311FBBF4AB481B669DEF70 ^
89789D1D2DAB52086BD90C0E137E2515ED9C6B59B5 ^
90B76CE7472700DD68D6328B7AA8437FB051D15745 ^
91F218669B596C5FFB0B1C14BD03C467FC873230A0 ^
921FF3BDBE0D504CB0CDFAB17E6C37ABA6B3CFFDED ^
932F3CBACBB14405A4652ED52793C1814FD8C4FCE0 ^
94982C8AB6CE164F481915AF59AAED9FFF2A391752 ^
955CD92012D488A07ECE0E47901D0E083B6BD93E3F ^
9669603FEC02920851D4B3B8782E07B92BB2963009 ^
973E90F76437B1EA44CF98A08D83EA24CECF6E6191 ^
9834C09F107C42D990EB4881D4BF2DDDCAB01563AE ^
99474BE0E5892EB2382109BFC5E3C8249A9283B03D ^
100A04B4F75051786682483252438F6A75BF4705EC6 ^
101BE88A6716083EB50ED9416719D6A247661299383 ^
102C67E38717FEE1A5F65EC6C7C7C42AFC00CD37F04 ^
103959AC4082388E19E9BE5DE571C047EF10C174A8D ^
104BAA7AA7B7753FA0ABDC4A541842B5D238D949F0A ^
105351394DCEBC08155D100FCD488578E6AE71D0E9C ^
106AB8BE94C5AF60D9477EF1252D604E58E27B2A9EE ^
1073429EC74A695FDD3228F152564952308AFE0680A ^
108907FA46C029BC67EAA8E4F46E3C2A232F85BD122 ^
1092644C87D1FBBBC0FC8D65F64BCA2492DA15BAAE4 ^
110110A3EEB408756E2E81ABAF4C5DCD4D4C6AFCF6D ^
111CD4FDC35FAC7E1ADB5DE40F47F256EF74D584959 ^
1128E6E273208AC256F9ECCF296F3F5A37BC8A0F9F7 ^
113FE0606100BDBC268DB39B503E0FDFE3766185828 ^
1146C63C3E58047BCDB35A17F74EEBA4E9B14420809 ^
115BCC2BD305F0BCDA8CF2D478EF9FE080486CB265F ^
116CE5223FD3DD920A3B666481D5625B16457DCB5E8 ^
117948886776E42E4F5FAE1B2D0C906AC3759E3F8B0 ^
1184C12A51FCFE242F832E3D7329304B11B75161EFB ^
119C54BDD2050504D92F551D378AD5FC72C9ED03932 ^
1208F53E8FA79EA09FD1B682AF5ED1515ECA965604C ^
1212D7E17F6294524CE78B33EAB72CDD08E5FF6E313 ^
12264582B4B57F782C9302BFE7D07F74AA176627A3A ^
1236D88795B71D3E386BBD1EB830FB9F161BA98869F ^
12486AD34A6463F12CEE6DE9596ABA72F0DF1397FD1 ^
1257EB46685A57C0D466152DC339C8122548C757ED1 ^
126E7A98FB0692684054407CC221ABC60C199D6F52A ^
12734DF1306662206FD0A5FC2969A4BEEC4EB0197F7 ^
12856CF7EBF08D10F0CB9FE7EE3B63A5C3A02BCB450 ^
1293BAE5CB8226642088DA760A6F78B0CF8EDDEA9F1 ^
1306475DF681E061FA506672C27CBABFA9AA6DDFF62 ^
13179D81991FA4E4957C8062753439DBFD47BBB277D ^
132BAE224477B20302E881F5249F52EC6C34DA8ECEF ^
133EDE4DEB4293CFE4138C2C056B7C46FF821CC0ACC ^
134<D
135
136H>SHS Type 2 Hashes<H
137D>
138A771FA5C812BD0C9596D869EC99E4F4AC988B13F ^
139E99D566212BBBCEEE903946F6100C9C96039A8F4 ^
140B48CE6B1D13903E3925AE0C88CB931388C013F9C ^
141E647D5BAF670D4BF3AFC0A6B72A2424B0C64F194 ^
14265C1CD932A06B05CD0B43AFB3BC7891F6BCEF45C ^
14370FFAE353A5CD0F8A65A8B2746D0F16281B25EC7 ^
144CC8221F2B829B8CF39646BF46888317C3EB378EA ^
14526ACCC2D6D51FF7BF3E5895588907765111BB69B ^
14601072915B8E868D9B28E759CF2BC1AEA4BB92165 ^
1473016115711D74236ADF0C371E47992F87A428598 ^
148BF30417999C1368F008C1F19FECA4D18A5E1C3C9 ^
14962BA49087185F2742C26E1C1F4844112178BF673 ^
150E1F6B9536F384DD3098285BBFD495A474140DC5A ^
151B522DAE1D67726EBA7C4136D4E2F6D6D645AC43E ^
152E9A021C3EB0B9F2C710554D4BF21B19F78E09478 ^
153DF13573188F3BF705E697A3E1F580145F2183377 ^
154188835CFE52ECFA0C4135C2825F245DC29973970 ^
15541B615A34EE2CEC9D84A91B141CFAB115821950B ^
156AB3DD6221D2AFE6613B815DA1C389EEC74AA0337 ^
1570706D414B4AA7FB4A9051AA70D6856A7264054FB ^
1583CBF8151F3A00B1D5A809CBB8C4F3135055A6BD1 ^
159DA5D6A0319272BBCCEA63ACFA6799756FFDA6840 ^
160FB4429C95F6277B346D3B389413758DFFFEEDC98 ^
1612C6E30D9C895B42DCCCFC84C906EC88C09B20DE1 ^
1623DE3189A5E19F225CDCE254DFF23DACD22C61363 ^
16393530A9BC9A817F6922518A73A1505C411D05DA2 ^
164E31354345F832D31E05C1B842D405D4BD4588EC8 ^
1653FF76957E80B60CF74D015AD431FCA147B3AF232 ^
16634AE3B806BE143A84DCE82E4B830EB7D3D2BAC69 ^
167D7447E53D66BB5E4C26E8B41F83EFD107BF4ADDA ^
16877DD2A4482705BC2E9DC96EC0A13395771AC850C ^
169EAA1465DB1F59DE3F25EB8629602B568E693BB57 ^
1709329D5B40E0DC43AA25FED69A0FA9C211A948411 ^
171E94C0B6AA62AA08C625FAF817DDF8F51EC645273 ^
1727FF02B909D82AD668E31E547E0FB66CB8E213771 ^
1735BB3570858FA1744123BAC2873B0BB9810F53FA1 ^
174905F43940B3591CE39D1145ACB1ECA80AB5E43CD ^
175336C79FBD82F33E490C577E3F791C3CBFE842AFF ^
1765C6D07A6B44F7A75A64F6CE592F3BAE91E022210 ^
1777E0D3E9D33127F4A30EB8D9C134A58409FA8695B ^
1789A5F50DFCFB19286206C229019F0ABF25283028C ^
179DCA737E269F9D8626D488988C996E06B352C0708 ^
180B8FFC1D4972FCE63241E0E77850AC46DDE75DBFA ^
181E9C9BF41C8549354151B977003CE1D830BE667DB ^
1820942908960B54F96CB43452E583F4F9CB66E398A ^
183FCE34051C34D4B81B85DDC4B543CDE8007E284B3 ^
18461E8916532503627F4024D13884640A46F1D61D4 ^
185F008D5D7853B6A17B7466CD9E18BD135E520FAF4 ^
186BD8D2E873CF659B5C77AAC1616827EF8A3B1A3B3 ^
187B25A04DD425302ED211A1C2412D2410FA10C63B6 ^
188A404E21588123E0893718B4B44E91414A785B91F ^
189A1E13BC55BF6DAD83CF3AABDA3287AD68681EA64 ^
190D5FD35FFABED6733C92365929DF0FB4CAE864D15 ^
191C12E9C280EE9C079E0506FF89F9B20536E0A83EF ^
192E22769DC00748A9BBD6C05BBC8E81F2CD1DC4E2D ^
193F29835A93475740E888E8C14318F3CA45A3C8606 ^
1941A1D77C6D0F97C4B620FAA90F3F8644408E4B13D ^
1954EC84870E9BDD25F523C6DFB6EDD605052CA4EAA ^
196D689513FED08B80C39B67371959BC4E3FECB0537 ^
197C4FED58F209FC3C34AD19F86A6DACADC86C04D33 ^
198051888C6D00029C176DE792B84DECE2DC1C74B00 ^
1991A3540BEE05518505827954F58B751C475AEECE0 ^
200DFA19180359D5A7A38E842F172359CAF4208FC05 ^
2017B0FA84EBBCFF7D7F4500F73D79660C4A3431B67 ^
2029E886081C9ACAAD0F97B10810D1DE6FCDCE6B5F4 ^
203A4D46E4BA0AE4B012F75B1B50D0534D578AE9CB6 ^
2046342B199EE64C7B2C9CBCD4F2DCB65ACEF51516F ^
205AABFD63688EB678357869130083E1B52F6EA861D ^
206F732B7372DAF44801F81EFFE3108726239837936 ^
2075E9347FE4574CDCB80281ED092191199BADD7B42 ^
208D5776B7DFFF75C1358ABDBBB3F27A20BB6CA7C55 ^
209022B7ADA472FB7A9DA9219621C9C5F563D3792F6 ^
2107F1DE4ECA20362DA624653D225A5B3F7964A9FF2 ^
211CA0F2B1BFB4469C11ED006A994734F0F2F5EFD17 ^
212833D63F5C2EA0CD43EC15F2B9DD97FF12B030479 ^
21314FD356190416C00592B86FF7CA50B622F85593A ^
2144AB6B57EDDEF1CE935622F935C1619AE7C1667D6 ^
215B456A6A968ACD66CAA974F96A9A916E700AA3C5D ^
216FD1C257FE046B2A27E2F0CD55ED2DECA845F01D7 ^
21766E0D01780F1063E2929EAAD74826BC64060E38C ^
218A8478DF406F179FD4EF97F4574D7F99EA1CE9EB8 ^
219248E58CF09A372114FC2F93B09C5FC14F3D0059E ^
220F15767DE91796A6816977EFA4FCED4B7FD9B8A57 ^
22136A6BC5E680E15675D9696338C88B36248BBBAF4 ^
2224DEA6251B2A6DF017A8093AB066EE3863A4EC369 ^
223D30E70E357D57E3D82CA554B8A3D58DFF528FA94 ^
22470CA84D827F7FD61446233F88CF2F990B0F3E2AA ^
2258D500C9CFDE0288530A2106B70BED39326C52C3C ^
226F3D4D139EDFC24596377BC97A96FB7621F27FFC7 ^
2275509BAFFAC6D507860CEFC5AB5832CB63CD4B687 ^
2280C0AEA0C2FD7A620C77866B1A177481E26B4F592 ^
229149176007FEE58A591E3F00F8DB658B605F8390C ^
23017C0D7B0256159F3626786FFDB20237AE154FA84 ^
231741A58618ABEB1D983D67AFDCBC49AA397A3B8E0 ^
232B738D6B3409EB9ED2F1719B84D13F7C36169CDEC ^
2333D33DE31F64055D3B128AC9A6AA3F92DFD4F5330 ^
234B6925F4DF94949B8844C867428BA3DEDF4CF2B51 ^
235CF5E7256292ABEC431D8E8B9CBEAF22AF072377E ^
236975DCE94902923977F129C0E4ACF40AD28DDB9AA ^
237333B0259B18CE64D6B52CF563DD3041E5F63A516 ^
238<D
239
240H>SHS Type 3 Hashes<H
241D>
24280E044703A880C20EC41F645120A8A5B5D194ECE ^
243E142829CA08FC9787F17AA16CE727396169B2713 ^
2446A2BAF62469D311F9257A0727F52C7EAA87CCEB4 ^
245362E3E7136CA611D7FBF687D3BBDC54CDA64843F ^
246F5900ADC6223A5D24A7526ABFC60FA8E2D59A5AB ^
247AD0CAC6A21D5B10833DDE7FA85927D74EDA142A9 ^
24847AD337EAFFDC177AAF7CBD035BE6F398B9D0536 ^
2499CF58595DF80872535BCC7C056E223546F0BB4EE ^
2507151CEB1918278CED2902B1D663D596F8D1B986F ^
251ADDC9F09AA4026EF6C4B7F1A84D3A13B4CDC65B3 ^
252921FE78A863A317B1FA1FB3CA3BE1948DE7EF754 ^
25364BE10732D71D52CE8A486DA23E6B453DF7C6FBD ^
2544A450659470DD759ABFAE1D73972A6D2E63AC16C ^
2550D665E4BBF30B7EAB955BDE84759E185EECAB4CB ^
2560C1B8EE94D61CDD0837EAED9FE33DE4A8334B596 ^
257D93BFE2A6227A4BF9B7C61EBCE4A8CDE131593FE ^
258BDA883F804B470C90BD6AC490DFC34EBC27F9648 ^
25946A0969373552213632591C52030C38E5DBDC49E ^
2604781289E48B910C550DC23CA7D3AF5324C03532D ^
261693A34CFCDDED0F3AC72E7197FCE9BB66A8E3981 ^
262AE088AF1D8865140963B3ABFB63E32E04CD1506F ^
263ADF0F8F1D85CA97586F5DC6DC5FD11FA39270F55 ^
264E484F5AD86C5F4D09E366ADF6E0DE73449F97B28 ^
26581C49842BA3D7072FB42288E03CE737A2672C091 ^
266F6CC71AD897C23A16835490DED289BFD45500AB0 ^
26723E71AED62FE8E28F34F58E7FE5594EC5EB0486C ^
26892BA7934AA5867EE52960F4E0EDFB90AA7B69305 ^
269C3D1CC8CBD1B6FFEE0D90CE962CD9C09AB1548AA ^
2703CE37A583B71A6A77BE325066A0F00C5D11DFC3E ^
27176EF5D236E1042D356A3234A422C092F86003064 ^
2728C3F703436C6C882E60263540A8E4C3E5646DC15 ^
2736138F9F3AB43B988DD3857422CCB304352459F40 ^
274B812DE98775B4690B4FC2ECFCAB61C73C7271DC7 ^
27506660985CD80D48E7B9F88455B4233924C3B64BB ^
27676AB4B6378D6F63499A94EB67EB1CB31AFF8D775 ^
277F31F6B0BE7AB059A1F59A46481967E88392979E6 ^
2780C1638498FBB7DB9600B98B4B22EF85E0FE245FB ^
2795607C6AF600939736795AC523FA43B736F41A118 ^
2808A03244866BDD21B9D8A82E98436C894FAD86ECC ^
2818A75BFD911AF87303B9B8FB7A1A47CCA52D3D98A ^
28216F0F3B5D37411236A1E3D6B1EDAB74CDA25ED4B ^
283AC72BF45477481F58A302628DC5299FFA32E7C9F ^
28474CFFD5881F75AC20726E1447DCF7F47024380EF ^
2855BFBECEECBC27DA05729C4D1AC8C1286EA6DCEC9 ^
286012AACBC0579FA4CB4F107E9A9AD1A86AD2F6A4D ^
287F7D552CBC5EF90F1A579388B5A8A9EC71EB67681 ^
28810C70115C4C34753274BFED477DF01440A67A361 ^
289078D2FACD293B6B6219D89899C16AA1AA8E3DE82 ^
29083C6BF9FB0D3091ADF374EBFA0A69916F17E6D26 ^
2912CDB1924DA62AB64C007C6505FF657E4ADDEA9C1 ^
292E95D209BCB9864B076FF4DFCA8F8BD75D62D1B48 ^
293632824CF5025F8F90AD2923BDDF449550D64C0F5 ^
29402B1C0B41FC27EC5A32E586F1AC480BF0061E56A ^
29528156BC6769AE390BF32C6512C46169181E1536D ^
296F730E6E287D992E7F3E013B6F1E088F0B9C41598 ^
297B056A6A832FA5FE964EF77FF3E0BE1C32E0D58C0 ^
298D5B3D19AFBB48FB56BA6D44A82DE6BD08DB208DE ^
2990215AD79BD6B8023C05FD2F8966211897DF6337A ^
300EC4CF38C244EB6526A44F70570925247145DA8CA ^
301C0D931262ECE93DA5A6ABC89CD6AD3162EA6B09E ^
3026BB48FAC26AA2B4859BBDEFCFB53AE4D1D9A0340 ^
30358611D43741E67A7F0DA9CB337A59DCD1EBE758E ^
3047C2AEC216AF231509E47B7EED06BB17859812B7E ^
305F60EE5DBF4A7A676EC98B3DDB1CDD6CDF3CDA33B ^
3060492E59B1F4C94E97F29A26C3EE7D57E1B0FDD72 ^
3074FCF549D902D9BE1101A756DB9E45415FB61BCD2 ^
30895C71D26AD6B38CC771376B4A4F962F12E1E3D4F ^
309F6A2449E773C72FB886B3C43E2B30EC2A1B7454A ^
310CDE86695E00AEC9A5DB6FDDB5D5A5934448D58E0 ^
311502318A758FABFF6AC53844E9E2BCD159C678510 ^
312589D295148F95F75DAE964DD743FE981FA236D4E ^
3137973DD33AE3599A556BACC77E8656E782E029EFF ^
3149F5BE43AADD43C6DB3883C9DA4B52E1A50257AEE ^
315454289D8FFB237A56D5214EAE88F0A9D328FEA1A ^
3167E686B36595BEB4C0D4528FF960EDB55088A028D ^
317F9789D1EF19A0084AC0E9F43A4BC0EE0478939EF ^
3182F32B0E7CC8BE19C325545C816E77056D7BBE70F ^
3196B1617746F073CFCD2CEBCAFBBE6FD0E28ED2D56 ^
320CF8D2EA3888AD76761799383E5A15979F6DB7A88 ^
321557AF6D9D5947203C60E98C9A79B92B8BD085E2B ^
322C61A217423DE68ED6CD34C91756C8DD3A650A2A2 ^
32373F3F79C151B6C1BD9369EDB26B932C2362B0593 ^
324364141E5FBCDE83F210C5BBBEB6810F6299DE14B ^
325F806BECD025D264FD59E93D9E3606A674C40F216 ^
326E0C761A57F00CBFB07D49BCB034C36A7122F4C5B ^
3275D3831044B9E0032FBE3C3425FFD13698F413B33 ^
3287EB1AB41E9997753C5D530DF118E71E72D7B86FC ^
329CC053EA1556269D7E8BCBA30B208FCBF0EE2EE64 ^
330A57739B1DD41E7DC0C40D6B6159A7E73CE2748AA ^
33190DA527C9DB9ACC2FD530D560A2F1191A80D0567 ^
3326AC1F2A0B8CA0E5ABC9FDF1ADCE588FBDF5CC53E ^
33343C1A0A0EE4163EC929726989F92B03639B233AB ^
3348927F299462413AC29A74080E54D8EE2DB7165E7 ^
3350C8D7E22226D91B423E781B508F31517EAAB607B ^
3367286E20D7F08D18A893254FBD3CC833F7973DCAF ^
3370CB8C235928B8E936C43B8F29EF3758B9FD54A7B ^
338F67C24CC23E440CA3F206CEEB5504ECA54CD5CA3 ^
339D78A25DEAA1E7ADADDB3C145ED0E5263BA4F2910 ^
34000AA68174D29492C578AC853FFCD55908292D41A ^
341D5570EEDB09A62A5948F7F311F7ED5EF247F9AD9 ^
342<D
diff --git a/src/lib/libssl/test/sha1vectors.txt b/src/lib/libssl/test/sha1vectors.txt
new file mode 100644
index 0000000000..c2ea186603
--- /dev/null
+++ b/src/lib/libssl/test/sha1vectors.txt
@@ -0,0 +1,2293 @@
1# Configuration information for "SHA-1 Test"
2# SHA tests are configured for BYTE oriented implementations
3H>SHS Type 1 Strings<H
4D>
50 1 ^
65 0 2 1 2 1 2 ^
75 0 1 3 4 4 4 ^
87 0 4 3 4 4 1 4 4 ^
910 0 4 1 5 3 4 4 3 1 3 4 ^
1010 0 3 1 6 5 5 1 3 6 6 4 ^
1113 1 3 2 5 3 3 3 4 6 6 1 4 6 2 ^
1216 1 3 5 5 1 2 1 3 3 6 3 5 2 3 5 7 2 ^
1315 1 8 1 5 3 2 7 4 5 6 7 3 3 1 6 3 ^
1415 1 4 6 8 2 1 4 2 5 1 6 8 8 6 4 7 ^
1518 1 1 2 7 3 8 6 7 5 4 3 4 3 5 3 3 2 6 8 ^
1616 0 9 8 1 8 1 7 6 7 7 1 2 6 9 5 4 7 ^
1718 0 7 1 7 3 9 4 7 7 5 2 8 1 7 8 2 7 2 9 ^
1819 1 2 3 1 8 8 6 9 10 3 10 8 9 2 4 1 5 1 5 9 ^
1919 1 8 5 4 8 1 3 9 5 7 7 2 7 2 7 8 7 4 8 10 ^
2020 1 1 9 7 4 1 4 5 1 10 8 6 4 4 9 9 9 8 2 9 10 ^
2119 1 11 6 7 7 2 6 2 6 10 6 9 10 5 11 1 6 8 11 4 ^
2222 0 10 5 10 3 7 8 9 9 1 1 1 10 2 1 5 10 2 9 9 9 7 8 ^
2321 0 1 10 1 6 9 4 2 5 2 11 8 12 12 9 8 1 3 10 7 11 12 ^
2424 1 3 9 5 12 3 4 2 9 12 11 6 6 1 1 9 5 9 1 4 9 4 10 8 9 ^
2525 1 3 2 3 11 1 12 5 6 2 7 8 4 8 8 9 9 8 4 9 1 4 8 10 9 9 ^
2623 0 11 10 7 10 10 6 10 9 4 5 10 5 8 4 1 10 12 4 6 1 8 11 6 ^
2722 0 12 8 10 4 3 8 5 5 7 11 13 11 12 11 4 12 3 6 5 11 10 5 ^
2826 1 10 9 6 9 7 2 10 4 4 5 5 2 12 13 5 3 1 10 1 4 7 8 13 13 12 9 ^
2931 0 2 6 5 4 7 3 10 6 13 6 3 9 6 2 10 5 3 8 4 1 11 3 5 3 7 11 1 12 9 12 5 ^
3027 1 14 5 1 3 7 2 3 9 3 4 14 4 4 10 8 5 14 1 11 12 12 10 4 13 7 11 9 ^
3130 1 4 9 5 5 8 9 5 10 4 2 4 7 9 9 6 3 5 1 8 3 2 13 3 14 9 8 9 10 14 10 ^
3227 0 12 9 5 8 7 2 14 12 3 8 14 6 6 4 7 5 7 10 7 11 10 1 9 6 7 12 14 ^
3324 0 12 9 9 2 11 13 12 11 11 6 14 13 10 5 6 8 10 4 3 11 11 14 5 14 ^
3424 0 15 4 5 3 8 12 15 8 14 15 9 12 12 3 10 13 6 11 10 4 13 14 8 8 ^
3528 1 1 8 1 5 11 4 9 12 4 13 15 5 9 11 7 14 11 1 11 7 8 8 11 1 13 15 12 13 ^
3632 1 5 8 3 8 10 7 8 1 5 13 12 14 5 3 6 4 12 15 6 6 10 11 13 9 1 11 6 10 3 7 14
372 ^
3831 0 10 3 5 1 14 11 11 16 1 2 2 11 6 13 15 12 6 5 16 2 14 2 10 12 2 5 5 6 10 13
3915 ^
4034 0 3 10 8 16 9 5 12 15 4 11 13 3 6 5 10 8 1 3 9 3 11 1 2 16 12 10 6 1 9 1 16
415 6 14 ^
4230 1 1 12 4 4 2 15 13 15 11 15 5 11 9 7 15 16 6 16 12 3 2 10 16 5 5 7 1 7 11 16
43^
4434 0 7 9 11 2 5 5 5 4 13 13 14 4 7 12 6 4 8 2 9 9 13 13 3 3 6 7 16 7 6 15 5 8
4515 14 ^
4636 1 4 6 16 15 11 14 14 4 7 10 3 4 10 3 6 7 14 4 6 6 5 2 7 8 16 2 12 16 10 14 3
472 3 7 14 3 ^
4832 0 15 10 9 1 14 10 14 6 6 16 3 2 3 8 3 12 8 11 17 3 9 7 16 14 4 11 15 5 13 9
495 17 ^
5030 0 17 17 13 8 2 6 8 16 1 12 5 17 2 9 8 10 13 14 11 17 12 5 14 9 11 9 11 4 11
5112 ^
5230 1 16 6 10 5 8 3 17 16 14 1 15 15 15 6 13 2 11 6 13 11 13 4 6 7 11 11 12 16
5313 16 ^
5433 1 16 16 14 16 2 4 16 11 6 15 7 4 17 6 5 7 6 3 14 16 5 17 11 13 1 1 14 13 3 6
5514 5 16 ^
5639 1 2 16 13 7 8 6 2 15 1 9 12 4 4 11 13 7 2 11 9 18 4 5 4 8 2 14 9 9 1 8 13 11
5715 8 5 9 10 16 7 ^
5834 0 2 7 1 1 17 13 6 11 10 8 5 12 15 6 15 10 12 4 18 1 2 8 11 12 16 10 12 18 11
5916 12 11 17 6 ^
6034 1 4 7 13 7 10 7 10 6 1 12 7 18 11 18 2 10 15 10 14 8 18 9 9 12 12 3 13 12 6
614 9 17 13 17 ^
6240 0 5 7 3 2 1 17 14 4 16 6 13 1 13 6 6 10 1 3 18 3 11 7 9 5 7 11 17 1 9 16 5
6315 10 17 3 8 15 17 8 12 ^
6440 0 11 3 15 17 11 1 1 4 3 14 18 4 2 18 8 15 6 4 6 3 15 11 16 10 17 17 9 6 3 2
656 16 4 9 12 6 8 1 11 17 ^
6637 1 2 19 12 8 16 14 2 9 16 2 6 6 7 9 10 9 11 9 14 11 15 5 16 9 2 17 2 8 15 8 4
673 14 14 16 16 12 ^
6837 1 11 10 16 12 11 7 14 14 14 6 10 10 1 6 13 19 5 6 4 7 12 12 10 5 10 15 15 8
695 13 17 13 5 6 14 1 19 ^
7038 1 2 6 5 17 9 11 18 18 8 6 13 15 3 3 15 5 13 18 3 2 5 5 14 7 13 4 17 7 2 17 3
7118 15 7 15 16 18 11 ^
7238 1 12 8 6 3 17 12 13 19 15 9 7 17 16 15 3 11 11 5 2 13 19 16 2 4 16 7 8 1 2 9
7317 12 3 5 18 19 11 9 ^
7439 1 14 16 14 8 9 16 5 1 6 3 17 18 16 9 1 15 9 10 9 19 1 3 3 20 11 13 17 1 19 8
753 4 3 7 1 14 19 19 19 ^
7637 1 18 13 11 5 18 4 19 10 6 19 11 17 10 10 7 9 13 16 9 10 18 4 12 5 16 5 20 12
773 8 10 1 18 1 6 20 14 ^
7836 0 8 9 6 12 11 7 7 3 17 13 6 20 17 9 20 16 10 12 17 8 11 8 11 10 5 10 14 18 8
7919 9 12 12 2 20 19 ^
8039 0 12 16 20 3 9 9 19 17 13 13 4 17 2 11 7 14 3 6 16 13 10 13 5 16 10 2 8 2 17
8119 4 17 7 19 6 9 15 15 6 ^
8243 0 7 2 18 5 7 18 5 2 15 7 11 10 9 3 2 14 19 3 11 8 18 15 5 3 5 12 15 16 10 17
837 19 16 2 1 16 6 3 19 12 5 18 16 ^
8449 1 9 11 2 1 12 11 14 12 14 10 4 11 6 8 16 7 5 11 20 8 17 4 14 4 15 3 2 2 4 3
852 3 14 15 10 2 12 7 3 7 20 20 19 10 2 3 1 10 20 ^
8636 0 19 20 12 5 19 21 5 21 11 14 19 1 17 8 9 4 19 3 17 1 14 21 14 7 6 5 20 14
8721 20 4 6 21 7 11 12 ^
8841 0 12 9 11 6 16 18 18 10 11 20 6 12 11 5 7 21 19 18 6 15 21 10 4 14 9 19 10 3
893 5 13 1 8 12 3 13 9 7 10 17 14 ^
9045 0 10 6 8 3 17 18 3 21 19 6 17 15 4 9 15 9 15 14 4 7 14 8 10 13 4 11 10 7 6
9121 1 14 5 11 7 7 2 13 13 3 9 13 8 14 20 ^
9239 1 3 7 18 4 9 9 5 15 13 17 10 15 16 20 8 19 9 10 9 1 19 14 21 2 18 13 10 4 18
9316 4 21 15 10 18 19 3 12 18 ^
9441 0 14 4 13 11 1 11 1 10 2 12 4 21 10 21 18 9 2 16 7 20 6 7 12 19 20 1 13 12
9510 8 21 15 7 19 13 6 8 19 20 18 19 ^
9637 0 11 18 1 17 14 15 20 16 20 8 2 17 10 4 21 5 19 19 14 22 21 18 13 14 1 3 12
9711 11 4 22 13 5 18 7 21 21 ^
9848 0 9 22 19 12 8 16 5 17 5 9 1 2 9 6 12 6 1 7 4 3 15 1 14 1 12 3 10 2 10 14 21
9913 17 6 6 17 1 21 2 14 16 17 9 11 20 21 11 18 ^
10050 1 12 8 20 13 2 9 20 9 14 10 1 16 2 22 6 4 16 14 15 1 12 4 14 9 21 3 3 9 8 21
10115 14 8 4 14 4 2 3 8 12 8 6 1 2 18 20 15 3 19 10 ^
10244 0 10 20 14 6 3 4 21 1 12 4 18 2 6 7 6 9 20 14 10 10 19 17 21 12 15 17 7 10
10311 8 10 12 1 19 19 9 18 21 4 18 11 9 22 5 ^
10447 0 15 8 15 3 5 6 2 19 12 17 4 20 8 11 20 2 18 4 16 20 12 9 9 6 16 21 16 3 16
10518 3 19 5 16 2 4 2 12 11 15 11 14 17 2 10 18 8 ^
10648 1 5 13 3 21 5 3 6 18 18 10 1 21 21 7 1 13 12 19 1 14 6 8 21 19 21 11 19 13 2
10713 4 1 10 22 16 4 9 4 10 16 3 7 15 11 9 13 17 12 ^
10845 0 14 7 6 2 20 3 6 19 19 10 2 22 12 17 12 1 20 7 7 15 20 6 18 8 3 14 23 18 15
1094 7 5 23 15 7 14 10 10 19 17 2 4 15 17 21 ^
11045 1 15 11 8 9 17 5 12 18 14 6 20 17 21 12 16 9 22 9 20 15 2 22 11 2 6 11 9 8 2
1114 14 19 3 21 21 23 8 2 11 4 8 4 20 22 11 ^
11238 0 21 18 22 10 19 9 14 17 23 21 10 7 15 13 16 5 4 10 13 14 20 23 12 20 23 18
11310 12 8 21 11 6 12 7 19 14 18 17 ^
11440 0 18 22 6 9 22 5 23 13 6 8 23 20 22 5 22 15 19 20 9 9 1 13 13 10 14 13 5 22
11514 21 9 21 19 14 14 4 18 13 12 14 ^
11648 1 7 3 15 5 17 14 23 14 5 17 22 11 1 8 13 23 6 21 3 6 11 7 23 8 6 21 4 4 22
11719 13 8 5 19 7 5 23 1 4 19 11 23 11 21 14 1 3 21 ^
11843 0 22 14 11 7 18 16 17 24 12 12 3 13 19 16 22 4 16 4 6 23 8 18 11 2 3 20 22 9
11921 8 23 1 23 20 7 16 13 23 4 13 3 7 22 ^
12047 1 23 6 13 19 2 3 7 2 9 9 15 6 13 4 22 6 19 20 1 9 7 14 1 15 3 23 24 22 18 12
12112 17 19 10 8 11 22 12 10 2 20 15 18 17 18 7 19 ^
12247 1 12 21 6 12 4 7 18 17 3 2 14 24 14 1 23 1 11 15 10 6 18 20 7 1 8 1 16 6 20
12323 23 21 10 10 12 24 10 11 23 2 12 23 9 3 24 24 10 ^
12452 0 14 10 18 15 14 5 16 11 22 2 15 24 8 22 1 4 24 9 10 15 3 9 5 4 17 15 9 12
12519 19 1 3 10 6 8 3 17 8 18 24 19 3 4 15 4 9 2 24 5 20 13 13 ^
12642 0 20 17 19 22 13 8 10 19 15 11 1 14 17 20 22 10 7 11 16 9 21 22 17 23 12 15
1274 24 7 21 18 2 21 16 1 19 18 20 11 3 15 17 ^
12850 0 18 1 6 14 5 5 5 19 13 10 24 19 16 24 15 13 2 19 15 24 21 17 4 13 17 1 1 9
1291 10 2 18 1 21 19 5 18 12 2 22 16 23 15 19 6 18 9 1 23 5 ^
13051 0 21 13 14 11 18 12 13 3 19 9 20 22 20 2 11 12 6 1 12 16 18 2 9 8 4 3 11 17
13111 5 4 19 16 11 23 13 18 1 20 8 2 16 16 21 4 19 5 5 20 24 16 ^
13253 1 20 25 17 11 8 4 19 25 17 7 16 21 6 4 8 2 15 9 2 9 19 3 6 3 3 10 25 13 15 7
1338 20 21 12 10 12 5 24 11 20 3 13 13 16 9 13 10 3 9 16 3 7 25 ^
13449 1 9 9 14 2 13 17 25 2 18 5 19 23 9 25 9 10 23 12 12 7 13 8 15 7 1 6 21 2 8 7
1356 16 14 14 12 15 13 24 10 15 11 10 8 14 15 21 25 21 25 ^
13647 0 9 18 20 22 21 20 11 14 23 22 10 13 14 8 19 12 2 11 20 23 13 4 10 6 5 7 23
13711 3 16 8 21 4 8 18 5 12 14 8 6 20 19 24 8 23 17 23 ^
13848 1 7 19 1 18 1 14 22 13 14 5 8 22 18 14 25 17 11 12 22 2 12 12 16 12 13 18 17
13912 17 14 18 8 25 9 23 5 3 8 14 24 17 7 3 3 23 17 22 19 ^
14051 1 19 17 16 22 24 14 16 20 23 20 9 19 16 7 12 16 5 8 9 7 10 21 24 10 11 19 1
14121 14 14 19 3 22 8 12 20 1 18 5 6 5 12 14 1 1 11 9 22 3 24 4 ^
14252 1 6 1 11 16 1 12 8 11 11 17 10 22 7 3 10 2 6 4 24 16 24 19 4 5 18 11 12 9 20
14321 25 2 21 18 10 20 25 21 3 17 17 5 8 22 25 19 8 10 19 7 11 18 ^
14444 0 26 14 21 25 25 4 9 13 5 8 9 21 8 12 26 24 9 24 15 1 23 22 16 14 8 22 15 19
14524 20 7 8 15 24 12 4 4 23 21 13 19 15 21 12 ^
14659 1 15 7 3 21 20 8 22 14 23 26 19 2 10 18 3 5 3 1 9 15 15 3 7 13 23 9 7 1 13
14717 14 25 9 16 2 2 6 13 7 19 25 17 1 5 21 2 7 22 5 6 25 3 12 19 6 2 4 24 17 ^
14860 0 9 18 20 19 4 11 14 1 6 8 26 6 9 22 4 10 2 7 21 9 8 24 25 14 22 12 22 3 23
1493 3 20 6 11 23 6 1 7 5 18 5 15 25 26 1 1 10 11 11 4 12 11 20 3 14 2 3 2 23 15 ^
15049 0 12 17 24 11 8 6 24 16 15 22 21 14 6 12 20 19 5 5 12 11 6 23 2 16 23 7 24 6
15121 2 17 17 5 25 11 25 20 25 24 18 6 12 19 25 7 6 5 2 25 ^
15254 1 12 16 1 15 7 1 26 19 19 13 20 11 17 6 20 5 24 24 1 21 11 9 20 21 15 10 19
15326 3 2 6 7 12 9 10 8 14 10 15 5 17 8 21 1 20 25 6 19 8 3 22 16 16 20 ^
15463 0 17 13 11 10 17 15 12 6 13 14 17 4 12 10 24 5 13 24 3 5 2 5 11 14 8 5 10 17
15516 8 4 14 21 15 3 6 17 25 8 2 3 3 19 10 13 22 22 8 2 13 25 17 2 1 19 1 14 20 2
1565 4 15 24 ^
15749 0 14 20 7 25 20 26 20 16 7 17 17 22 1 13 6 5 1 18 14 15 23 15 10 5 19 18 18
15826 12 13 3 25 12 21 16 24 4 16 3 6 26 26 10 20 13 1 20 24 15 ^
15956 0 3 8 14 5 5 7 11 13 11 26 11 4 26 17 20 19 11 10 3 10 14 9 6 9 7 16 10 4 4
16019 19 2 26 13 19 17 15 24 15 4 21 22 13 13 12 22 2 14 20 5 18 7 17 24 20 20 ^
16158 1 6 17 9 20 2 10 19 3 22 4 1 11 3 5 3 21 11 15 12 23 26 5 2 27 6 5 16 6 3 2
16223 5 3 20 20 4 24 2 18 21 7 14 10 27 23 6 24 6 19 23 3 9 22 16 21 17 19 23 ^
16358 1 17 7 21 19 6 16 15 15 20 14 2 25 19 14 18 19 7 9 1 14 11 10 16 3 23 14 26
16410 11 1 18 1 12 24 19 19 1 7 2 3 24 7 12 9 2 8 16 20 24 5 26 26 4 9 2 7 25 17 ^
16554 1 8 12 18 14 26 7 17 18 4 20 1 16 14 21 26 4 6 8 24 11 25 15 24 16 23 4 10
16623 21 24 15 10 9 26 7 14 24 21 6 20 5 17 16 17 1 3 12 1 4 13 3 9 21 26 ^
16756 1 7 18 11 1 19 20 23 12 12 27 13 13 15 16 13 1 16 15 12 26 3 16 16 8 17 13
16821 4 6 5 19 14 16 4 16 11 14 18 18 27 9 13 21 3 26 22 3 7 6 4 26 3 15 8 25 21 ^
16950 1 20 13 9 11 20 6 11 21 27 25 20 7 4 18 26 16 27 5 12 19 7 23 6 25 25 2 11
17013 25 21 18 17 6 12 14 13 24 11 14 19 26 27 25 6 1 15 4 7 27 15 ^
17151 0 15 16 26 27 23 14 12 28 22 15 8 19 2 20 13 1 24 2 25 1 6 19 19 8 11 24 24
17221 13 27 5 11 28 17 7 25 6 23 24 14 25 12 5 13 26 2 5 8 10 16 17 ^
17358 1 5 26 18 19 21 3 12 11 13 4 14 22 22 14 16 13 3 22 16 23 5 19 6 13 10 26 17
17427 26 4 3 25 6 14 2 3 5 7 23 11 22 8 25 2 9 25 18 17 8 2 14 4 19 1 5 27 13 24 ^
17553 0 2 27 28 2 17 23 10 27 18 26 7 22 16 3 27 1 26 21 28 10 3 6 2 2 10 17 13 16
1766 17 21 23 13 20 22 5 6 11 12 12 8 23 13 17 9 23 20 3 28 27 12 17 22 ^
17759 0 28 19 5 21 4 27 8 1 19 14 20 6 7 9 1 6 22 3 19 26 14 8 6 7 19 15 23 1 17
17816 6 26 14 5 22 25 4 7 10 16 21 10 18 19 24 16 23 8 3 17 28 18 10 2 5 3 21 21
17915 ^
18058 0 6 24 1 4 24 18 10 22 1 21 12 5 4 4 20 25 24 26 8 25 11 2 7 27 22 19 4 18
18127 10 28 4 12 24 8 16 12 11 16 17 25 8 12 16 1 9 9 10 5 24 23 18 5 14 18 8 4 28
182^
18361 0 5 17 8 28 1 22 4 11 3 2 17 3 14 9 27 13 18 24 9 8 7 28 25 14 21 27 24 6 18
18416 2 12 15 9 14 10 1 8 17 4 6 15 26 11 15 2 28 20 26 16 3 7 5 8 9 26 10 12 25
18511 22 ^
18653 0 9 13 24 15 20 2 4 8 2 22 20 19 4 15 14 28 13 25 10 10 12 28 24 22 26 28 15
1879 11 26 19 22 27 2 21 8 20 23 26 12 10 21 9 15 13 25 7 26 1 13 5 9 20 ^
18858 0 3 9 21 22 7 1 23 28 1 2 8 22 12 18 28 5 18 14 7 11 17 20 20 7 21 13 8 28
18921 22 2 16 20 15 28 9 3 22 13 10 23 4 16 11 14 1 10 8 14 14 15 18 13 12 21 18
19025 28 ^
19160 1 29 20 2 29 22 8 16 20 4 12 9 6 12 16 16 7 9 20 29 11 9 4 1 15 25 16 29 10
19222 7 2 8 5 18 14 23 24 4 6 26 3 11 6 12 1 7 14 24 14 6 10 21 16 23 29 25 6 14
19317 24 ^
19464 0 12 10 5 10 15 25 8 15 3 7 13 25 16 14 1 29 22 26 15 27 9 1 8 8 28 6 13 5
19513 3 15 5 23 8 23 2 5 5 4 17 13 14 7 17 12 27 3 18 5 7 5 26 18 15 22 28 16 13 7
1962 23 19 25 15 ^
19756 1 17 7 16 25 23 11 11 15 2 13 9 26 2 24 26 7 28 11 2 29 7 22 23 5 28 19 1 27
19829 1 24 11 18 20 3 13 11 7 3 15 17 24 1 18 13 6 3 25 27 16 28 18 24 8 23 22 ^
19951 1 29 28 6 28 14 12 28 27 22 4 14 25 1 3 9 7 11 14 15 16 10 19 12 19 11 20 13
20028 4 27 28 7 27 12 4 28 21 17 22 20 17 15 15 23 22 13 12 21 22 21 29 ^
20164 1 12 14 12 18 27 8 7 4 9 14 16 15 8 11 21 20 10 10 21 23 20 2 11 23 1 11 1 5
2023 23 16 15 27 14 5 16 3 22 2 3 24 3 19 29 4 4 10 8 20 14 15 1 26 12 27 25 4 28
20322 11 19 19 24 9 ^
20460 1 20 8 9 5 25 19 17 19 15 7 24 24 21 3 20 16 8 3 17 28 18 29 9 23 9 10 29 4
20512 24 15 5 8 22 17 29 12 3 8 29 15 21 21 4 7 20 7 10 7 26 10 16 24 6 7 12 8 12
20615 17 ^
20760 0 9 17 11 28 12 26 26 6 29 13 10 20 6 23 10 4 3 26 26 14 20 20 25 14 13 15
20824 14 11 4 23 27 24 20 9 16 17 24 13 12 6 1 14 26 25 7 8 21 1 19 3 2 2 17 21 13
2095 9 21 11 ^
21054 0 25 1 27 24 6 23 16 5 1 20 29 22 25 9 25 10 3 28 28 25 19 18 16 24 14 15 5
21128 12 28 26 29 2 15 15 9 5 18 19 22 12 15 4 6 15 24 16 9 4 26 25 18 27 12 ^
21261 1 20 4 26 12 3 22 1 22 30 3 28 10 9 24 14 29 6 30 3 10 20 14 6 3 19 21 21 28
21316 18 11 30 11 20 30 1 9 8 11 5 19 10 24 4 22 4 2 26 5 15 20 8 3 13 30 18 8 1
21425 28 19 ^
21556 1 20 15 21 18 18 12 16 13 24 9 21 2 28 6 1 23 9 18 27 27 4 9 13 10 8 14 16
21615 12 11 14 21 14 10 11 25 17 17 30 21 13 27 26 26 22 14 13 17 21 19 9 9 20 23
21713 28 ^
21859 1 10 28 24 10 22 27 23 27 8 17 14 6 4 21 26 15 1 8 29 27 6 28 15 3 27 25 25
21914 19 13 29 8 24 2 8 2 4 12 19 11 10 6 26 14 22 24 30 10 11 12 2 12 17 23 8 8
22012 28 12 ^
22156 0 14 28 2 17 4 8 3 26 9 23 21 30 30 20 4 13 28 29 9 3 17 7 19 30 28 1 2 20 9
22212 24 15 30 20 27 3 23 11 6 29 25 23 26 17 20 10 22 15 23 6 25 5 4 30 2 29 ^
22363 1 23 15 27 14 26 1 1 7 19 12 7 6 20 18 14 4 15 17 28 7 11 7 8 9 22 17 12 5
22423 18 25 18 6 12 26 30 12 30 14 3 1 18 10 20 27 21 8 6 24 26 20 11 24 7 2 4 18
22515 14 30 16 19 14 ^
22652 0 27 15 4 19 25 29 29 7 14 18 9 11 9 27 11 15 29 9 28 20 2 30 26 21 17 8 28
22717 22 29 24 8 11 18 29 15 6 7 27 27 17 24 18 23 11 19 8 30 5 24 22 24 ^
22866 1 25 15 28 23 5 10 21 5 8 7 3 10 19 17 6 9 15 29 10 7 4 1 16 21 16 29 13 18
2295 3 8 15 8 21 29 20 5 27 2 13 27 7 7 30 2 18 26 10 2 5 29 21 15 25 26 24 8 12
23020 3 9 10 30 7 12 29 ^
23153 1 30 26 20 11 22 19 27 2 16 10 6 4 24 17 20 25 20 15 8 23 23 20 30 18 16 3
23230 15 26 23 28 7 21 8 7 31 31 14 26 18 3 1 26 28 15 25 11 31 3 25 9 21 30 ^
23367 0 2 6 14 4 9 5 28 8 17 22 1 4 8 7 10 14 19 10 14 8 27 9 24 26 4 30 11 8 19 5
23421 7 2 27 20 16 20 20 22 14 13 16 26 14 10 3 25 22 25 23 21 10 15 15 29 8 13 4
2352 13 22 20 7 4 20 31 23 ^
23665 0 2 2 28 13 19 14 12 23 27 6 2 14 2 22 6 25 30 29 31 13 14 16 31 12 16 30 5
23714 31 11 4 1 1 25 21 13 26 22 21 5 22 14 29 1 21 3 14 30 4 2 29 12 15 23 3 15 5
2381 6 23 22 13 1 14 23 ^
23959 1 25 5 15 6 13 3 22 11 23 31 24 6 5 20 4 14 3 29 8 29 19 7 29 23 25 28 19 11
24015 27 21 14 1 19 20 26 12 7 12 1 18 13 29 28 23 29 14 23 7 1 9 29 24 5 30 18 5
24125 30 ^
24255 1 31 25 13 7 24 25 24 1 12 19 9 7 6 28 20 14 28 21 19 31 20 20 6 24 18 27 24
2434 18 21 1 31 15 1 15 2 27 4 26 25 4 23 19 2 31 22 30 21 22 5 27 12 30 28 31 ^
24462 0 27 15 18 14 25 15 17 7 28 11 28 29 30 1 17 12 10 2 18 20 21 2 11 12 5 4 12
24525 14 5 5 24 22 18 31 15 22 29 11 3 21 31 21 27 3 28 7 10 25 2 15 30 9 30 7 22
24615 9 3 20 24 14 ^
24760 0 28 14 18 9 27 14 22 27 31 10 8 14 7 15 7 20 5 26 1 29 7 17 17 8 3 13 27 18
2488 31 27 28 22 22 17 19 18 18 11 19 13 25 10 19 6 28 4 31 23 10 18 26 31 5 10 13
24912 8 15 27 ^
25060 1 24 22 4 29 22 31 28 20 4 16 21 3 1 15 5 15 6 30 3 29 29 7 27 20 2 20 31 22
25126 9 29 16 4 26 32 17 20 14 28 17 19 6 24 11 26 28 5 18 15 8 16 20 21 4 9 12 4
2528 17 29 ^
253<D
254
255H>SHS Type 2 Strings<H
256D>
25769 1 5 3 11 15 12 24 31 23 1 6 28 2 8 31 6 7 30 5 19 23 12 6 9 31 19 17 24 25
25822 6 12 16 3 7 9 9 11 29 4 11 2 5 13 29 10 12 30 32 18 28 18 27 3 30 4 4 26 6
25913 31 13 2 11 7 24 4 17 29 12 ^
26095 0 21 19 21 23 11 42 36 2 13 4 1 33 22 16 27 9 4 33 16 3 30 15 11 32 13 17 38
26132 9 38 4 36 15 32 27 19 42 18 6 36 22 10 29 12 25 40 15 29 23 28 30 4 8 11 24
2629 10 31 28 43 23 16 29 33 5 40 26 3 19 12 36 43 5 35 37 5 14 11 45 35 16 10 8
26332 4 15 35 26 2 39 22 37 22 30 29 ^
264106 1 18 14 51 2 6 32 51 9 32 50 44 46 51 8 11 53 45 55 16 10 3 52 8 20 20 46
26546 13 32 2 46 50 43 25 54 9 31 29 2 47 15 29 24 45 44 18 37 14 28 39 36 44 47
26616 50 10 44 24 53 35 22 40 20 15 51 22 18 22 42 6 54 49 38 21 7 13 30 16 7 52
26716 22 13 38 7 11 44 33 9 25 13 37 42 14 45 53 30 38 5 25 5 35 38 22 28 53 ^
268127 0 58 35 43 28 5 28 63 8 12 25 9 47 53 29 62 7 37 2 3 48 5 12 55 56 28 35 12
26963 6 58 27 27 48 44 35 14 17 22 56 10 8 1 16 15 42 63 14 51 57 19 41 7 8 56 47
27034 52 22 48 60 43 9 1 52 4 21 49 61 18 50 23 13 46 62 23 45 62 9 56 18 23 31 8
27130 27 36 13 38 4 58 53 47 24 18 41 58 19 12 18 52 42 29 44 45 26 63 34 32 41 64
27215 26 55 19 2 49 6 30 53 13 54 12 53 37 12 37 43 ^
273148 0 60 4 51 47 58 38 17 63 33 23 28 43 12 69 70 33 17 12 50 18 18 36 45 2 67
2744 45 20 4 33 38 29 45 8 22 58 39 71 38 32 53 35 19 53 31 29 51 35 4 63 18 33 26
27547 70 9 64 62 63 30 15 1 35 28 16 40 20 14 50 33 19 38 30 27 55 10 16 46 47 7
27655 12 53 26 56 33 29 55 25 17 48 43 21 43 18 24 63 27 68 46 38 33 35 10 18 11
27727 5 9 58 35 70 36 36 39 47 2 10 66 47 5 18 21 44 71 51 57 3 22 7 56 55 28 25
27814 40 16 24 48 37 66 50 24 45 18 39 53 55 ^
279165 1 15 62 35 29 15 40 19 76 67 4 5 71 46 61 26 8 77 48 1 23 12 60 40 24 44 33
28029 42 73 66 49 61 20 30 1 54 52 42 39 64 23 65 37 24 20 11 26 66 22 77 22 57 7
28138 57 33 61 73 7 64 1 49 35 76 14 27 21 45 68 38 58 73 13 72 47 73 33 8 66 23
28238 4 56 77 47 10 71 13 20 31 41 6 51 3 18 17 61 47 14 48 76 46 28 34 43 1 56 4
28325 7 65 41 1 34 37 23 59 59 27 26 13 15 14 75 60 14 1 28 59 26 65 61 16 23 17
28428 6 19 2 35 49 30 29 48 2 63 73 59 1 3 76 41 11 19 18 43 54 63 67 51 4 9 78 60
28566 ^
286181 0 18 19 84 17 12 10 57 18 77 51 52 16 39 74 49 52 63 38 72 2 15 64 83 62 49
28756 11 26 68 58 83 33 23 50 63 71 53 27 84 22 39 41 52 58 11 64 7 60 45 70 22 5
28873 38 30 30 48 21 75 80 40 21 8 53 9 26 30 34 81 71 71 51 23 75 33 41 23 32 5 8
28966 40 72 40 16 66 45 14 48 34 21 41 27 3 55 27 37 23 41 65 4 57 51 74 22 19 75
29042 16 19 46 16 10 48 20 19 37 41 14 57 9 17 55 38 5 60 7 46 20 43 36 39 52 20
29110 62 45 23 46 7 35 75 29 70 35 36 34 25 12 15 84 26 10 6 71 29 79 33 32 25 59
29276 82 64 58 7 8 19 41 74 2 53 65 24 1 55 51 36 21 79 7 ^
293184 1 60 66 66 6 3 9 73 12 7 40 70 18 71 70 65 51 14 14 27 50 9 87 81 50 22 19
29440 37 16 79 12 34 37 76 82 10 61 7 81 49 67 26 45 82 50 81 63 45 69 31 31 76 51
2959 59 34 51 54 34 83 10 33 51 86 81 82 69 18 8 22 64 19 86 62 58 33 37 17 34 5
29629 83 42 76 50 54 66 39 9 1 36 43 17 65 6 35 56 72 71 83 88 10 1 8 87 22 6 21
29778 25 89 43 62 40 55 85 31 89 74 63 46 28 24 26 31 17 7 8 27 19 12 85 17 20 27
29877 10 2 54 80 17 52 74 76 69 78 11 20 80 4 29 24 85 75 18 39 23 70 83 29 57 67
29972 70 33 4 15 46 42 2 69 13 53 33 69 64 33 64 14 40 69 59 78 54 ^
300193 1 68 43 95 53 38 58 55 28 20 16 67 48 17 86 32 44 68 67 28 16 14 79 25 15
30172 67 50 80 18 30 10 75 1 60 45 87 78 28 95 49 63 70 59 26 6 51 73 60 65 18 26
3028 87 5 58 31 25 57 40 46 78 57 34 78 61 36 66 57 38 80 22 32 68 71 30 74 37 81
30366 77 66 55 2 51 24 93 61 40 68 45 61 12 63 24 89 59 52 72 43 20 20 69 36 40 88
30446 9 62 55 77 84 20 18 6 77 15 52 39 75 3 26 4 85 17 62 29 11 92 46 58 29 59 28
30542 80 71 96 2 49 85 37 63 4 61 14 2 53 87 25 86 6 75 76 93 41 39 93 92 42 56 41
30663 26 28 18 77 11 50 78 79 1 12 12 91 29 13 58 5 56 92 66 59 4 39 47 95 5 5 62
30733 13 80 27 ^
308203 1 35 28 11 7 20 7 17 3 3 30 89 13 65 56 66 63 22 82 16 31 55 56 77 91 91 71
309101 13 10 85 101 95 17 99 98 91 33 14 20 48 32 7 64 29 38 35 25 4 95 23 34 1 85
31081 23 31 96 71 84 50 15 79 47 25 51 45 35 66 19 61 60 9 31 93 64 70 30 42 86 53
3111 71 46 42 22 38 96 10 99 34 76 26 55 73 63 63 97 23 92 81 64 46 1 30 31 35 86
31291 88 64 87 16 37 69 84 94 60 100 3 47 52 8 71 87 57 29 76 43 18 45 46 15 65 12
31344 42 66 60 15 68 19 58 39 62 76 9 92 101 57 32 4 34 15 41 62 32 89 71 43 35 31
31441 21 17 82 33 96 27 62 29 82 57 46 62 15 24 99 37 83 40 52 46 56 80 98 3 91 74
3156 27 7 58 94 10 41 79 97 84 77 74 26 99 35 ^
316212 1 26 101 17 91 45 97 80 59 102 30 68 4 85 9 4 39 16 18 85 70 11 87 62 72 78
31738 3 41 53 82 82 35 18 13 94 64 52 39 77 59 26 9 65 46 64 98 32 29 86 79 16 63
31854 76 56 98 16 98 78 22 72 33 103 104 52 84 12 65 15 85 101 97 84 31 51 26 100
319100 38 80 13 2 78 7 24 44 84 103 27 7 28 16 33 99 25 103 54 14 42 62 87 92 27
32022 42 5 52 100 84 73 72 63 24 48 56 52 23 5 17 76 31 1 95 58 43 60 50 62 30 23
32135 79 20 35 3 72 32 45 51 87 41 84 27 79 77 70 102 15 54 15 100 8 52 69 105 3
32230 84 42 93 66 89 69 74 24 33 42 97 4 38 99 106 13 93 6 106 74 100 54 45 21 59
32356 37 9 50 32 75 79 31 77 9 61 1 8 68 6 60 81 7 100 99 14 61 48 25 73 26 70 72
32494 34 ^
325233 0 11 98 110 88 35 110 35 64 49 88 93 28 85 6 78 65 90 52 24 97 51 39 51 59
32623 1 3 49 33 11 78 27 35 55 64 5 102 4 70 25 56 58 38 66 11 31 96 66 104 59 41
32786 58 29 79 41 40 72 51 12 92 34 52 44 69 104 21 97 89 96 48 21 4 61 40 28 67
32834 23 85 44 22 62 52 33 84 23 30 73 74 4 79 12 81 47 80 53 47 89 40 19 80 62 34
32961 29 41 95 43 1 70 63 55 53 18 19 13 48 10 19 89 49 4 52 53 56 76 10 8 104 77
33015 28 38 75 109 3 85 90 8 40 8 93 90 43 39 14 60 17 36 78 56 105 80 35 75 36 58
33182 50 100 98 45 74 13 66 95 72 71 95 34 14 98 72 33 38 37 52 6 14 107 59 3 29
33261 67 98 92 5 93 17 98 36 87 41 75 71 57 88 17 25 91 84 3 58 20 92 69 51 50 36
33331 14 25 18 30 18 1 41 104 30 82 59 87 70 34 96 28 47 62 81 103 48 ^
334234 1 63 90 108 108 102 64 82 88 4 111 76 97 22 1 108 41 34 91 33 20 25 24 26 8
33583 11 31 7 85 109 106 4 105 85 68 28 33 99 53 8 16 12 11 74 17 83 66 70 16 30 9
33667 68 34 24 81 47 92 72 47 37 33 38 92 17 8 28 88 22 62 69 32 89 75 3 72 96 85
33713 105 24 38 37 94 115 83 72 108 114 24 93 76 103 60 99 102 9 43 10 59 95 46 33
33893 15 26 69 44 2 86 107 55 45 61 65 92 66 9 55 39 70 83 29 98 67 13 111 15 20
33931 62 8 2 51 20 19 33 44 14 115 71 112 97 10 41 28 53 51 26 57 15 38 98 55 106
34022 56 31 50 95 107 110 84 70 10 108 96 73 100 25 36 55 88 71 63 96 30 90 96 79
34122 7 30 23 28 59 89 8 51 99 47 86 34 18 43 65 98 104 107 49 7 79 71 8 57 21 29
34280 2 74 78 44 57 9 61 22 13 68 52 91 74 98 43 30 58 68 95 101 72 102 76 42 99
34361 ^
344249 0 27 117 45 119 80 2 59 52 8 76 20 94 102 69 96 42 46 106 67 9 110 89 71 69
34534 31 15 85 16 29 100 82 37 62 68 95 108 44 23 114 34 36 56 93 11 30 96 12 31
34667 14 114 14 66 70 30 81 46 53 119 85 6 104 47 92 72 70 5 70 15 115 68 105 33
34797 13 85 106 14 61 29 22 86 45 57 69 91 38 38 28 66 13 60 95 103 3 15 5 113 38
34823 62 5 65 94 107 73 104 37 47 102 117 3 78 35 7 95 56 78 45 52 28 46 43 37 32
34953 19 55 29 47 97 76 115 83 71 11 45 62 73 99 116 2 24 116 7 28 41 2 29 37 52
35023 5 118 79 31 57 89 61 24 101 78 50 93 73 41 7 33 45 47 24 1 48 73 36 3 25 87
35146 28 108 54 68 53 67 119 28 36 118 104 42 88 27 112 4 74 85 1 63 39 97 71 74
35275 76 10 49 12 79 11 50 103 118 94 117 118 37 27 12 94 60 28 51 47 82 110 17 15
353105 23 52 43 12 21 22 81 41 12 74 90 42 108 117 98 67 4 69 85 ^
354243 0 76 81 26 101 13 68 62 106 87 19 98 32 81 63 79 93 31 121 123 75 52 11 66
35541 54 87 38 5 104 62 51 38 55 29 31 120 44 16 48 94 46 105 91 66 78 27 43 6 64
3562 55 79 75 84 113 22 4 113 109 31 33 17 96 11 29 63 98 103 107 116 34 14 9 95
35738 18 51 75 33 109 118 55 66 4 76 7 75 70 82 74 23 1 26 69 40 112 99 47 65 31
35870 119 52 103 88 85 86 28 16 12 76 25 22 78 64 21 86 27 61 77 72 108 2 18 106
359119 121 54 16 85 72 2 73 26 88 66 60 80 35 24 117 63 24 44 67 52 122 119 33 72
36016 99 98 69 54 19 42 28 53 114 32 117 81 100 57 49 123 56 21 68 80 53 95 1 45
36195 107 98 87 1 27 24 99 116 16 67 1 113 91 84 25 40 25 72 3 28 90 87 112 80 16
362117 45 77 36 90 105 59 88 122 64 108 108 71 98 18 50 115 93 105 77 35 6 46 55
36347 102 4 26 87 111 120 81 113 4 57 105 3 84 94 115 61 73 ^
364255 1 91 47 51 9 57 9 55 94 61 61 68 46 107 6 35 81 114 78 96 74 14 89 73 67 67
36569 113 107 11 98 113 109 20 92 17 67 70 88 57 10 124 9 60 122 93 91 45 7 15 24
36651 5 98 115 24 49 90 104 117 66 128 94 64 80 12 43 91 46 111 59 58 77 30 14 88
36760 123 68 41 44 68 40 104 118 41 43 93 90 105 92 16 127 26 54 125 114 79 71 24
36848 21 25 118 40 103 49 91 44 67 65 25 119 109 18 48 23 69 112 38 61 64 87 84
369104 119 110 122 92 22 1 8 83 34 100 32 62 41 46 112 34 102 76 56 39 4 127 30 13
37019 110 124 7 16 128 95 4 124 11 104 116 126 49 95 3 55 96 70 90 101 4 122 96 75
371118 39 128 99 92 18 42 20 87 83 35 75 111 61 67 71 28 101 9 56 34 105 95 71 23
37273 71 26 57 15 23 76 55 99 89 128 98 117 68 43 88 62 38 62 39 2 83 36 15 26 60
373128 96 73 74 10 1 12 42 22 2 77 33 33 32 57 13 14 82 57 12 39 3 58 80 14 87 85
37444 69 109 119 ^
375283 0 102 55 53 41 60 88 25 67 58 76 44 22 68 118 108 40 95 96 81 90 85 28 77
37618 11 37 72 93 60 110 124 119 95 131 91 37 109 126 8 73 69 72 80 17 83 5 76 20
37732 15 10 1 103 18 22 116 98 9 51 104 102 44 33 15 12 24 31 89 1 6 28 101 8 64
37872 106 30 5 52 89 111 39 108 64 85 17 57 124 22 105 78 115 3 40 108 66 108 77
379128 103 44 35 38 13 95 10 111 63 98 117 61 51 126 69 96 70 70 59 39 13 97 33
380112 2 77 7 123 70 83 29 66 67 49 79 19 104 115 14 60 2 55 40 71 33 28 114 51 91
38117 46 45 128 57 87 62 25 115 38 50 55 90 74 8 51 102 79 43 94 36 122 94 12 41
38236 25 104 91 24 7 99 80 30 126 32 63 122 107 114 27 28 79 41 12 35 51 115 122
38370 22 79 65 2 88 27 17 59 15 23 44 57 5 65 6 26 78 80 125 93 84 100 45 22 129
38468 36 111 74 118 11 50 42 120 47 21 8 86 112 26 67 60 99 45 93 47 8 38 59 52 56
385124 20 82 18 117 24 18 46 106 19 117 26 41 47 45 130 7 15 1 4 5 100 10 85 50 44
38611 48 92 119 108 42 118 125 ^
387272 0 8 61 99 70 96 20 87 123 134 82 22 2 110 118 33 86 5 7 5 94 56 15 60 96 54
38813 22 55 99 4 25 105 17 37 69 10 38 117 117 30 70 13 9 109 115 62 94 52 66 117
389100 135 7 75 23 5 81 110 31 118 29 1 62 11 41 88 109 119 102 37 3 30 123 47 31
39056 134 29 124 116 118 99 21 56 77 91 23 37 135 81 44 51 67 95 51 133 30 57 67
391116 122 48 100 7 132 97 106 69 93 4 95 125 102 103 119 81 57 133 96 37 118 50
392117 113 81 127 17 45 103 32 121 129 60 43 65 127 30 36 132 110 52 53 35 71 12
39376 22 72 130 112 99 76 26 21 73 63 63 97 23 58 115 132 114 1 132 31 35 18 23 54
39430 53 118 37 35 84 94 60 100 3 47 18 110 105 87 57 63 76 43 52 45 46 49 65 12
39510 42 66 60 117 34 19 92 5 28 76 9 126 101 125 32 38 34 15 7 62 32 21 3 43 69
39631 109 123 51 116 135 130 129 130 63 14 57 80 62 15 126 31 105 83 108 120 80
397124 46 98 105 91 6 6 27 7 58 128 78 7 79 63 84 77 74 128 65 61 95 121 17 24 123
398117 51 122 ^
399284 0 44 71 43 20 126 58 53 47 98 18 19 119 93 29 70 39 94 112 44 115 135 98 82
40010 67 29 102 113 68 80 19 75 1 91 114 87 80 7 40 37 86 120 16 104 136 117 82
401138 32 65 114 119 137 121 8 12 46 126 26 119 73 130 60 76 113 100 14 133 26 116
40234 120 80 95 84 53 15 24 44 51 4 10 23 77 24 99 66 37 54 63 42 136 21 34 76 5
40317 128 101 1 59 40 113 112 32 97 31 93 105 79 91 18 39 1 103 132 51 68 124 111
40413 97 43 128 69 84 85 72 15 12 26 87 16 16 92 101 13 77 4 118 89 103 56 42 16
40560 44 39 126 46 18 83 93 41 105 3 82 106 115 91 6 4 54 115 15 120 109 113 48 41
4069 95 20 62 67 105 111 25 132 7 116 46 138 44 83 61 124 131 35 107 6 109 81 114
40767 41 137 77 56 74 73 34 12 14 69 52 11 98 47 54 83 81 6 1 15 88 35 139 80 83
40849 89 27 47 130 92 133 87 51 112 76 49 109 49 57 93 73 22 117 50 64 58 97 139
40936 131 111 133 58 33 8 88 55 38 90 46 30 118 57 29 82 74 41 117 38 46 94 92 5
410105 15 117 70 103 68 60 120 48 21 110 85 40 81 66 ^
411291 0 46 113 52 134 79 74 64 57 18 23 9 52 8 16 103 57 138 59 59 65 92 2 7 130
41292 8 34 40 86 131 140 100 112 4 42 1 110 108 43 37 15 67 19 35 94 61 130 98 35
41388 34 65 104 56 126 118 50 87 10 81 109 90 86 118 32 6 114 88 39 38 39 62 3 12
414134 72 137 35 75 81 115 106 140 112 11 123 41 103 45 95 84 71 107 13 26 110 96
41562 16 109 84 59 53 38 27 8 28 13 32 137 17 138 41 122 36 99 65 99 83 36 112 29
41649 70 96 126 136 131 116 3 18 17 126 142 14 37 141 141 123 42 13 20 83 42 139
41783 54 49 58 42 7 137 29 48 16 121 127 34 52 140 106 128 58 36 124 83 24 69 54
41861 112 17 6 95 97 24 57 86 124 59 71 119 67 1 109 54 68 49 57 132 32 5 71 113
41940 80 104 75 106 133 31 126 130 104 62 9 39 44 66 116 141 135 96 132 19 41 121
420126 124 77 8 4 60 82 6 101 124 89 51 123 48 40 85 77 21 112 10 69 66 115 87 16
421108 30 84 65 80 103 32 131 134 73 47 10 63 39 50 93 37 135 114 69 48 34 58 23
42227 133 37 9 40 98 41 115 99 70 83 29 42 67 133 55 79 80 91 122 12 2 115 112 47 ^
423293 1 33 13 99 138 1 42 89 118 87 113 99 12 134 142 100 38 5 55 75 14 110 108
42442 64 130 79 138 62 64 69 57 11 123 25 59 16 111 94 24 65 30 51 119 48 107 92
42584 69 28 136 143 54 20 6 70 47 142 64 4 65 59 73 99 134 146 102 125 116 57 137
426137 72 48 128 78 5 80 63 54 85 30 22 129 68 21 21 74 28 128 107 27 60 2 93 95
42771 37 11 37 15 39 102 3 104 65 80 59 52 113 34 20 67 60 27 81 135 46 106 106
428102 68 128 17 15 100 124 15 43 136 122 100 67 142 35 14 53 120 2 89 93 99 73 9
429122 39 77 15 96 90 43 79 134 60 92 105 55 96 31 119 77 97 72 23 140 38 30 43 83
430136 88 107 117 72 109 118 58 91 119 73 95 100 59 138 123 54 49 143 50 133 66
431106 45 80 88 42 93 5 59 77 101 74 110 104 40 92 19 77 76 86 102 129 3 144 101
432139 134 56 90 18 91 94 85 55 10 137 11 58 1 107 113 70 22 7 56 29 143 111 8 46
43345 116 122 129 89 7 121 53 95 14 49 118 62 125 91 37 97 15 35 100 63 140 63 50
43451 58 26 127 6 45 59 102 121 114 85 141 135 10 72 19 106 66 66 41 53 13 38 1 21
435103 50 108 46 119 ^
436297 1 46 31 132 112 28 63 124 97 129 43 40 72 99 107 132 137 96 139 99 145 121
437144 118 37 81 39 94 60 55 109 47 109 110 75 42 12 139 137 43 128 106 107 19 126
43812 101 148 127 15 117 125 125 62 96 13 76 70 96 101 110 138 8 95 76 143 17 32
43997 79 149 39 31 94 123 21 41 135 55 84 70 33 135 118 50 62 121 81 1 45 144 93
44060 5 64 137 8 105 91 82 67 27 113 119 53 18 98 79 48 84 32 135 128 5 1 20 76 17
44185 108 72 36 141 140 49 150 105 104 3 149 14 54 18 148 64 49 125 37 28 28 101
44222 104 91 32 82 117 12 114 69 58 2 58 115 9 108 47 59 65 14 92 7 4 86 98 16 82
44392 95 38 94 10 10 48 97 104 66 115 97 142 115 122 119 40 97 16 32 47 34 88 89
44426 50 12 76 80 51 40 9 133 24 44 40 122 84 108 22 142 140 99 44 15 54 8 42 125
445150 130 21 79 124 62 46 119 15 29 91 57 150 42 138 71 61 68 80 114 6 1 70 121
44618 35 113 56 87 86 10 73 14 29 41 72 89 1 133 87 101 123 59 90 142 77 133 52 78
44748 34 138 134 27 17 60 131 147 61 93 148 39 132 49 62 71 36 91 4 139 49 100 120
44843 113 144 30 94 73 127 40 125 ^
449313 1 35 97 95 76 105 88 32 138 30 69 61 40 47 21 107 6 39 81 114 53 125 53 147
45014 4 73 146 96 98 13 136 11 98 117 138 153 67 146 71 99 88 7 139 24 13 35 47 97
451145 74 36 119 3 51 84 48 119 53 49 15 79 17 120 103 148 64 30 41 97 120 75 111
45263 58 131 134 18 13 10 48 18 16 48 43 15 54 18 41 47 122 144 80 92 145 77 1 33
45389 54 46 78 48 21 54 43 40 53 24 16 73 42 94 29 44 34 151 152 23 123 12 142 140
45443 37 88 29 19 35 72 96 151 130 62 112 34 36 91 120 50 112 138 2 105 60 68 137
455131 5 17 19 139 74 11 120 78 149 58 128 15 104 16 126 78 20 57 134 71 49 90 76
456108 126 100 54 68 39 132 153 42 147 146 124 62 87 35 75 61 65 46 100 82 105 113
45731 63 5 95 54 71 77 127 150 80 36 144 2 130 59 74 39 3 152 121 122 18 117 12
458117 141 118 135 62 36 69 5 39 53 150 52 153 143 30 66 96 126 131 56 137 8 7 86
459142 14 7 111 141 93 136 137 134 43 12 89 23 44 9 152 146 121 97 19 38 110 91 67
46014 32 110 66 68 8 130 84 73 118 59 24 41 72 121 150 55 37 138 27 104 66 124 9
46151 109 47 125 109 148 8 29 47 72 146 149 61 93 10 20 54 15 76 133 125 106 110
46267 ^
463330 0 23 9 26 136 27 51 115 122 44 106 6 146 108 113 85 51 8 96 47 56 137 62 59
46489 143 71 140 14 85 156 139 99 154 30 53 115 35 147 108 148 58 52 28 103 19 92
46595 152 152 10 11 13 155 67 11 83 101 69 153 152 45 141 14 120 129 140 119 59 2
46689 73 70 83 29 16 67 81 29 1 54 65 96 117 2 37 47 128 33 3 89 108 98 139 49 78
46727 103 39 119 94 132 90 38 132 55 65 131 90 58 2 54 100 69 118 22 44 19 7 148
46893 25 29 123 81 64 131 55 30 1 89 38 97 82 64 9 28 86 123 151 10 133 40 154 102
4694 111 65 9 63 59 124 116 72 105 76 57 137 97 32 145 108 78 112 50 43 34 75 20
47022 129 68 11 118 74 125 118 57 17 20 129 53 65 61 144 1 17 142 156 52 100 54 15
47120 59 52 63 131 20 57 124 31 125 46 106 76 92 8 98 154 152 80 114 15 140 136
472112 100 17 92 25 151 150 80 99 69 83 49 43 156 102 19 57 122 96 30 3 39 134 40
47332 75 5 76 127 138 99 17 57 52 150 130 18 127 33 23 116 107 78 77 77 42 69 68
47448 41 69 33 75 40 49 128 103 4 146 93 10 83 66 96 152 30 38 12 33 5 39 47 41 34
47560 74 20 42 156 67 46 56 102 89 3 124 81 99 104 56 50 8 61 74 55 15 87 108 28
476138 47 93 60 2 124 46 126 103 91 145 36 25 116 122 51 ^
477322 0 75 7 107 158 81 105 154 90 20 125 77 114 69 92 7 58 21 98 154 50 128 149
478117 127 153 45 3 18 121 86 29 71 79 101 2 5 22 143 10 27 53 146 157 148 112 33
47922 80 123 24 147 1 112 82 159 63 74 97 109 33 151 32 89 87 132 117 46 129 59
480115 91 114 118 37 21 9 94 60 25 89 47 79 110 55 12 143 99 87 43 88 56 57 160 76
48112 71 128 77 146 117 95 105 42 66 3 76 20 76 101 100 118 149 45 26 143 148 32
48257 39 129 19 31 84 123 1 152 135 5 54 30 13 125 68 30 62 101 51 142 5 94 83 20
483116 24 107 109 105 91 42 17 27 93 69 3 139 68 79 38 84 2 85 128 126 122 131 46
48417 35 98 42 26 111 100 29 120 55 84 114 109 145 14 18 138 14 9 85 7 18 129 91 2
48594 51 133 82 87 123 64 39 8 103 38 75 110 78 7 9 45 115 42 138 135 86 78 16 62
48652 75 159 54 151 121 149 77 74 16 85 47 102 105 82 119 10 67 137 153 148 135 28
48749 26 151 153 36 80 11 130 113 24 44 30 102 24 58 133 122 140 99 24 156 54 119
48842 115 140 90 132 19 94 2 157 99 136 19 71 7 130 153 108 51 21 58 70 74 137 1
48940 111 149 5 103 6 27 76 141 23 125 140 1 72 29 152 103 87 51 93 29 80 132 77
490123 153 68 159 14 98 114 158 121 158 81 131 ^
491322 0 35 93 109 125 119 10 10 19 135 26 4 74 135 35 120 129 113 92 17 29 47 88
49214 159 149 87 45 36 75 68 22 138 20 59 61 144 151 11 107 6 153 81 114 43 85 157
49397 148 118 73 126 56 58 137 96 11 98 67 98 103 57 146 21 59 88 151 139 148 127
49425 17 47 115 34 160 109 107 51 64 28 69 13 49 149 69 141 90 93 118 64 10 1 67
49580 35 111 13 58 101 124 132 147 154 18 162 6 162 33 5 34 142 41 161 82 114 70
49692 145 57 155 137 114 79 44 36 48 48 21 14 13 40 33 14 150 33 32 54 143 14 4
497101 142 23 93 136 132 120 147 17 38 163 143 5 52 46 151 130 32 72 34 124 150 51
498100 112 128 126 65 10 28 87 81 159 131 19 99 54 125 110 58 119 28 78 129 104
499140 126 38 154 27 114 61 153 90 66 98 76 50 158 48 39 82 123 22 147 136 114 52
50037 35 75 41 15 150 60 52 55 103 21 23 129 95 24 71 47 97 130 50 140 144 106 100
5019 64 19 117 122 71 92 8 77 156 97 121 98 85 2 36 39 109 143 23 120 156 133 93
502154 36 66 116 131 160 127 162 161 46 142 14 141 81 141 63 86 117 104 3 146 39
503127 34 133 102 106 91 57 9 28 60 61 7 158 12 80 26 8 122 80 44 63 68 49 158 21
50432 81 150 15 141 108 161 64 46 124 123 31 99 27 105 109 98 112 144 ^
505336 1 34 161 107 149 48 67 138 109 156 104 37 133 60 80 84 81 160 9 16 96 164 1
50695 112 4 86 163 116 98 103 55 31 8 56 37 36 127 32 9 89 103 31 100 161 85 106
507119 89 154 43 115 162 137 108 128 38 42 155 103 9 62 65 102 122 10 138 160 125
50847 158 43 91 69 123 132 35 121 4 110 89 130 69 29 139 69 53 70 83 29 163 67 41
5099 108 34 45 76 87 2 144 164 98 33 160 79 78 48 89 9 38 134 93 146 79 54 122 80
51038 112 55 55 101 70 8 129 44 70 59 98 149 24 136 124 138 63 25 166 83 51 34 91
51145 30 118 59 28 87 72 44 116 28 36 103 101 113 10 114 62 111 71 65 126 53 19
512114 86 42 85 36 57 137 57 159 95 88 78 72 20 23 14 65 10 22 129 68 1 68 74 75
513108 7 7 147 109 13 35 51 104 158 164 122 126 2 50 4 132 127 59 52 13 81 20 47
514107 74 148 115 46 106 46 82 115 68 144 142 60 104 15 90 136 102 100 134 42 15
515141 100 40 49 49 73 166 13 156 82 166 37 82 96 137 130 166 134 20 139 45 122 56
516107 98 79 124 17 32 130 120 165 77 23 130 96 67 68 47 37 12 29 18 38 158 19 160
51755 147 39 118 83 121 96 43 137 33 66 86 112 147 155 149 140 5 19 17 148 161 10
51844 159 146 57 16 26 102 49 3 104 61 59 74 56 10 165 31 54 25 142 157 37 58 165
519128 154 73 50 149 94 137 ^
520330 1 61 51 65 132 23 169 116 122 14 66 7 98 131 72 69 127 72 163 125 68 69 51
52147 159 31 164 71 118 50 83 113 81 127 153 45 137 134 121 68 163 26 43 65 127
522166 138 98 144 18 53 137 139 148 76 158 4 62 78 167 102 144 94 55 141 63 29 97
52391 24 115 166 80 69 132 99 1 120 23 88 64 87 118 37 137 152 94 60 168 71 47 52
524110 37 155 125 63 42 43 52 11 12 151 31 12 44 110 32 128 117 68 87 24 39 164 76
525145 58 101 91 100 140 151 143 130 32 21 3 111 1 31 75 123 153 116 135 130 27
526164 165 116 23 12 62 83 24 133 139 49 74 154 80 158 80 64 105 91 6 142 27 75 24
527128 112 41 79 29 84 145 40 128 99 95 95 19 17 160 89 15 17 84 64 11 93 10 66 78
52873 127 148 18 129 139 143 49 150 9 84 82 154 85 15 88 82 60 87 19 12 133 58 20
52939 65 51 141 134 27 70 167 120 117 86 60 16 44 16 57 132 18 142 85 104 59 47
530141 58 2 66 96 46 119 153 40 110 126 103 90 144 13 26 106 144 80 145 134 103 95
53124 44 21 84 140 13 97 104 140 99 6 147 54 83 42 106 131 54 96 135 67 118 121 81
532109 10 53 132 112 117 81 33 155 49 61 38 119 1 13 102 131 148 94 131 143 67 123
533148 89 104 135 72 145 152 76 87 6 66 2 71 123 77 114 108 59 123 166 62 96 140
53494 149 116 169 ^
535349 0 125 17 93 82 80 110 156 147 156 99 154 4 29 90 163 120 84 113 56 8 157 29
53661 169 141 113 78 48 50 13 138 11 50 61 99 106 2 107 6 117 81 114 34 49 112 52
537130 82 73 108 20 22 110 60 11 98 22 62 58 48 146 149 23 88 142 139 121 91 16
538163 2 88 171 133 100 62 51 46 10 24 150 49 131 60 114 63 84 91 64 165 138 40 44
539172 111 141 58 74 115 96 129 145 164 153 170 126 24 169 16 115 41 125 46 87 61
54092 145 39 155 92 78 70 35 27 21 48 21 151 159 40 15 5 132 170 23 18 107 160 150
54156 133 23 66 109 123 102 102 172 166 145 116 151 34 1 151 130 5 36 34 97 114 15
54282 128 112 119 99 29 138 165 42 36 159 95 19 63 36 89 101 40 92 1 33 93 104 113
543126 2 136 96 52 108 90 57 89 31 5 113 30 39 37 96 4 147 127 105 43 165 35 75 23
544143 105 24 25 10 94 12 160 102 95 170 71 20 70 112 23 95 144 61 73 137 55 1 81
54595 26 65 172 41 147 79 103 80 40 121 36 12 64 98 169 93 111 115 48 127 9 39 107
546131 115 118 162 161 10 142 14 123 54 141 36 41 99 77 140 128 167 82 25 106 57
54770 64 21 19 15 34 126 149 167 53 163 127 86 35 8 54 23 40 140 3 169 45 150 152
54896 81 143 28 28 124 87 13 90 9 87 109 53 67 164 28 131 89 149 42 55 126 79 132
54974 19 133 30 68 72 75 148 9 10 72 152 144 83 106 153 74 163 98 152 ^
550375 1 94 28 13 8 20 28 18 118 5 140 89 67 171 64 152 85 61 101 80 154 149 34
551115 135 128 108 110 20 33 128 103 35 38 57 95 10 111 151 98 29 149 7 82 69 96
552114 26 103 171 101 53 121 24 2 121 51 35 70 83 29 154 67 5 167 63 16 27 58 60 2
55399 128 71 33 160 70 51 3 44 149 2 89 84 101 43 18 113 71 38 94 55 46 74 52 139
554102 35 43 50 80 122 6 100 88 129 36 25 148 47 24 7 55 36 30 82 32 19 78 63 26
55571 28 167 85 56 167 95 159 78 26 66 35 65 90 44 159 105 59 15 67 57 137 21 132
55650 70 78 36 169 5 172 56 1 22 129 68 168 23 74 30 99 138 174 120 91 153 8 42 68
557158 155 104 99 133 5 135 96 82 59 52 144 36 20 38 62 29 112 106 46 106 19 73 70
55841 135 133 42 95 15 45 136 93 100 98 173 6 132 55 4 4 31 64 130 162 156 64 157
55919 46 96 92 103 139 134 2 94 18 86 38 89 62 61 79 157 14 112 111 156 32 14 85
56078 31 59 20 1 161 169 149 29 122 150 133 37 102 30 109 65 85 51 174 110 164 66
56177 76 111 119 131 95 5 1 166 103 134 141 17 158 123 137 48 165 175 102 13 3 86
56243 23 47 56 150 165 4 36 174 115 157 168 13 147 119 109 55 41 140 67 27 31 27
56353 126 17 163 116 122 160 60 7 92 113 66 45 109 60 151 125 62 39 39 17 153 13
564152 53 94 50 53 89 57 127 153 45 119 104 121 56 145 172 19 41 103 166 108 68
565126 12 53 131 127 148 52 134 168 50 48 155 72 132 82 37 129 63 175 160 ^
566366 1 73 15 79 139 71 51 132 81 135 111 166 61 37 60 118 37 92 134 94 60 150 53
56747 25 110 19 137 107 27 176 43 16 145 146 142 165 12 17 92 166 110 117 41 69 6
56812 164 76 109 40 101 82 82 131 134 115 143 112 32 164 146 93 162 31 66 123 144
56980 135 94 137 156 107 157 173 62 65 176 124 112 4 65 127 44 131 53 19 105 91
570149 106 27 57 158 92 85 14 79 20 84 127 174 128 72 68 59 171 17 124 80 167 8 57
57128 172 66 144 48 42 37 109 121 18 120 103 116 13 132 39 73 145 76 158 43 82 33
57251 153 164 97 13 2 3 20 24 114 98 9 25 131 102 99 86 42 16 26 159 39 105 161
573133 49 59 41 20 105 31 136 30 87 10 119 135 13 83 99 58 45 99 156 26 61 135 143
57480 118 107 76 77 24 44 12 66 95 147 61 86 140 99 167 138 54 47 42 97 122 18 60
57590 40 73 85 63 82 1 35 96 94 81 54 15 128 40 52 2 101 1 165 93 113 130 85 95 98
57658 105 112 53 68 108 72 100 152 49 87 140 39 154 62 114 77 105 63 50 87 157 26
57778 122 67 140 71 170 119 5 93 64 50 104 144 129 138 75 130 4 178 60 139 120 54
578113 32 2 133 17 43 163 129 89 72 149 155 30 38 7 138 5 44 61 69 76 175 107 6 93
57981 114 28 25 82 22 118 58 73 96 175 177 92 36 11 98 171 38 28 42 146 125 178 88
580136 139 103 67 10 151 151 70 153 115 94 32 51 34 177 173 132 49 119 54 96 45 78
58173 64 159 120 22 20 154 111 117 58 56 109 72 143 ^
582372 1 136 146 144 170 90 15 169 180 88 41 89 10 60 52 92 145 21 155 47 42 61 26
58318 176 48 21 124 141 40 179 178 114 143 14 164 71 142 132 11 124 23 39 82 114
58484 57 163 130 127 89 133 16 138 151 130 160 34 70 78 161 64 92 112 110 72 175
585102 138 179 173 159 59 19 27 18 53 92 22 65 156 170 57 104 86 126 148 118 155
58678 43 63 90 48 80 168 142 68 12 39 174 69 168 147 118 96 34 129 35 75 5 107 60
587170 180 147 85 3 133 75 95 152 71 175 43 94 178 50 144 16 46 101 46 165 45 68
588163 38 172 5 138 61 85 62 177 76 36 167 19 53 151 66 66 97 3 100 164 12 98 131
58970 109 162 161 156 142 14 105 27 141 9 178 81 50 113 110 131 37 16 79 12 34 37
590167 173 10 152 7 81 140 158 26 136 82 50 172 154 45 160 31 122 167 142 9 150
591125 51 54 125 174 10 124 51 177 81 173 69 109 8 22 155 19 86 62 149 33 37 108
59234 96 29 174 133 167 50 54 66 130 9 1 36 134 108 65 97 126 56 163 71 83 88 10 1
5938 178 22 6 112 169 116 89 43 153 40 146 85 31 89 74 154 137 28 115 117 122 108
59498 8 27 110 103 176 17 20 27 77 10 93 145 80 17 143 165 76 69 78 102 20 91 171
59595 29 115 176 166 109 39 23 70 83 29 148 67 163 161 33 4 15 46 42 2 69 104 53
59633 160 64 33 155 14 131 160 59 78 71 19 176 107 65 38 82 55 40 56 40 115 84 29
59725 44 68 104 176 76 64 123 18 25 136 23 6 171 31 30 30 58 14 13 72 57 14 41 177
598^
599363 0 135 69 16 167 79 143 46 178 26 3 65 58 36 135 97 35 175 51 152 57 137 173
600108 10 54 78 4 153 173 164 48 177 22 129 68 168 167 74 174 91 106 174 96 75 129
601168 34 36 158 147 88 75 101 149 103 64 42 59 52 112 180 20 30 22 173 80 98 46
602106 179 65 30 17 127 125 26 87 15 5 136 85 100 66 141 182 124 15 156 148 15 56
60398 146 156 48 149 3 14 96 52 79 115 134 170 54 178 54 22 73 30 45 39 133 182 96
604103 148 176 6 45 62 183 51 180 153 145 145 117 21 90 118 109 21 62 22 101 49 53
60511 142 86 132 66 69 44 79 87 115 55 5 169 150 63 110 109 177 150 91 129 40 149
606159 102 165 3 70 27 175 23 56 126 165 164 20 158 91 157 136 157 131 111 69 39
60733 132 43 19 175 179 37 118 9 155 116 122 128 52 7 84 89 58 13 85 44 135 125 54
608183 23 161 145 173 136 29 62 50 13 57 25 127 153 45 95 64 121 40 121 140 171 9
60971 166 68 28 102 4 53 123 111 148 20 102 160 34 8 139 32 116 66 13 113 63 143
61097 63 10 59 124 66 41 132 71 115 106 151 46 22 45 118 37 67 124 94 60 140 43 47
61110 110 9 127 97 7 156 43 180 125 126 137 145 12 2 82 146 100 117 26 59 180 181
612164 76 89 30 101 77 72 126 114 95 143 102 32 149 131 83 157 31 61 123 139 60
613135 74 169 122 151 102 137 168 62 55 166 119 97 163 60 112 24 116 38 178 105 91
614134 86 27 47 138 72 70 183 79 15 84 117 154 128 57 53 39 161 88 ^
615393 1 92 72 151 33 183 164 42 112 32 10 5 93 97 18 112 71 92 168 116 179 186 65
616137 68 134 3 82 9 19 121 148 65 160 173 158 167 90 66 180 172 99 86 83 86 26 16
61710 135 23 81 137 125 17 19 25 183 73 7 104 185 79 165 119 119 176 59 75 18 5 59
618132 26 21 127 119 80 94 83 52 61 24 44 4 50 55 115 29 70 140 99 159 130 54 15
61942 89 114 173 28 50 16 33 53 47 58 180 19 64 78 49 30 186 104 32 44 157 85 1
620149 85 97 114 77 63 58 50 89 80 21 36 84 72 60 152 25 87 108 15 138 54 106 77
62197 23 42 55 149 181 62 106 43 132 31 138 111 176 93 40 10 96 128 105 114 43 98
6224 146 20 107 120 14 113 181 101 1 19 155 113 57 64 117 131 6 22 186 138 184 36
62361 29 36 175 107 6 61 81 114 20 180 42 169 102 26 73 80 151 153 68 4 11 98 139
6246 175 34 146 93 154 88 128 139 79 35 2 135 119 46 129 91 86 179 51 18 169 141
625108 49 103 46 72 21 70 49 64 151 96 185 175 130 111 85 58 32 101 40 101 131 136
626139 170 70 10 169 175 73 41 69 177 45 47 92 145 11 155 22 22 56 21 13 166 48 21
627109 131 40 174 178 104 128 9 149 51 132 122 173 119 23 24 67 109 74 32 158 110
628117 74 123 6 118 151 130 150 167 34 55 58 146 54 72 112 105 57 160 82 123 159
629153 159 39 19 7 8 33 87 12 50 146 150 37 104 71 126 133 108 145 68 38 38 90 43
63075 148 122 43 2 39 154 54 163 147 113 91 29 109 35 75 182 87 35 155 170 127 80
631185 118 60 95 142 71 165 28 84 168 25 144 178 31 81 41 160 25 53 143 ^
632381 1 14 172 163 130 45 69 46 145 36 36 151 169 13 135 42 26 81 153 76 148 178
63390 131 30 101 162 161 132 142 14 89 3 141 175 146 65 26 89 94 99 187 8 55 162 2
63413 143 173 2 120 173 41 132 150 2 112 42 18 140 130 37 128 23 106 159 118 167
635150 101 11 30 109 150 184 124 19 169 73 165 53 109 158 172 147 11 46 38 149 25
63621 92 184 64 179 158 133 135 34 38 58 114 9 183 4 118 76 49 89 102 40 163 47 75
63780 176 175 8 154 14 180 104 153 84 89 11 129 8 138 85 181 73 66 154 121 20 115
63893 114 108 82 182 19 86 103 176 183 186 177 53 10 69 137 56 1 135 141 68 69 54
63986 12 75 171 87 187 107 144 150 93 23 7 70 83 29 140 67 139 153 183 178 189 30
64018 2 29 72 29 33 160 56 9 123 164 107 136 19 70 31 177 152 99 57 38 66 55 32 32
64124 83 60 21 1 36 52 80 168 44 32 115 184 25 120 181 172 155 189 22 30 26 180 5
64264 49 188 1 28 111 57 176 167 67 131 22 160 186 169 65 34 30 117 91 17 163 39
643134 57 137 155 90 170 42 78 170 141 167 158 42 177 22 129 68 168 143 74 150 85
64482 174 78 63 111 156 28 12 158 141 76 57 77 125 79 40 12 59 52 88 156 20 24 182
645149 56 92 46 106 167 59 189 121 119 14 81 15 165 136 79 100 42 117 182 118 175
646138 124 3 50 74 134 156 36 143 181 180 96 22 61 97 134 164 24 166 30 10 61 6 33
6479 115 176 84 97 142 152 15 50 165 45 168 135 133 127 93 15 66 94 91 9 32 16 95
64837 29 171 118 68 108 66 63 20 55 186 ^
649396 1 97 10 5 160 132 18 83 73 159 141 55 120 31 131 141 102 138 3 52 9 148 189
65056 99 165 146 2 140 64 157 100 121 113 102 24 21 24 123 16 10 139 152 19 109
651146 116 122 92 43 7 75 62 49 170 58 26 117 125 45 147 5 125 136 155 118 2 26 50
652161 21 182 127 153 45 68 19 121 22 94 104 144 166 35 166 23 176 75 188 53 114
65393 148 177 66 151 16 156 121 180 98 48 179 95 63 107 97 45 1 23 97 57 23 132 53
65479 97 124 19 188 18 118 37 22 106 94 60 122 25 47 176 110 184 109 79 164 120 43
655153 89 90 128 109 12 168 64 110 82 117 192 41 171 163 164 76 53 12 101 68 54
656117 78 59 143 84 32 122 104 65 148 31 52 123 130 24 135 38 151 95 142 93 101
657159 62 37 148 110 70 127 51 85 181 89 11 142 105 91 107 50 27 29 102 36 43 165
65879 6 84 99 118 128 30 26 3 143 17 68 66 139 187 15 165 158 24 88 20 179 174 81
65979 18 106 47 74 150 104 179 162 59 131 62 116 166 82 184 188 97 136 41 136 167
660140 143 175 72 42 174 148 75 74 71 86 14 16 191 117 11 63 119 119 186 182 13
661171 49 182 80 167 73 147 119 107 164 41 57 181 168 29 114 26 184 121 101 80 76
66265 34 49 24 44 191 38 25 91 5 58 140 99 153 124 54 184 42 83 108 155 4 20 191 3
66329 35 40 180 7 40 66 25 12 180 86 26 38 139 73 1 137 79 85 102 71 39 28 44 77
66456 190 12 66 72 30 152 7 87 84 190 126 48 100 77 91 186 36 31 143 163 50 94 25
665126 1 114 105 170 93 22 173 90 116 87 96 19 74 4 122 183 83 120 177 113 169 181
66677 182 1 149 186 ^
667384 1 25 56 85 107 177 6 186 138 184 28 61 184 191 175 107 6 29 81 114 12 156 2
668137 86 189 73 64 127 129 44 167 11 98 107 169 143 26 146 61 130 88 120 139 55 3
669189 119 87 22 105 67 78 147 51 2 161 109 84 49 87 38 48 192 62 25 64 143 72 169
670151 106 111 53 58 8 93 8 85 123 120 131 170 38 2 169 167 49 41 37 153 21 39 92
671145 190 155 177 185 48 13 5 150 48 21 85 115 40 166 178 88 104 1 125 19 116 106
672141 111 23 43 101 58 187 150 78 101 50 107 185 86 151 130 134 143 34 31 26 122
67338 40 112 97 33 136 50 99 127 121 159 7 19 170 187 1 79 191 26 130 118 5 104 47
674126 109 92 129 52 30 193 90 35 67 116 90 3 181 39 122 30 155 147 105 83 21 77
67535 75 174 55 190 131 154 95 72 185 94 36 95 126 71 149 4 68 152 180 144 146 7
67649 33 152 188 29 111 194 172 148 125 35 59 36 125 11 36 141 149 183 125 27 1 71
677133 61 138 168 85 131 5 96 162 161 117 142 14 79 183 141 165 126 55 11 74 84 79
678167 3 40 142 177 193 128 173 192 100 163 16 127 145 182 97 17 193 120 115 32
679108 18 96 154 103 152 150 86 181 15 99 135 179 124 194 164 68 160 43 109 138
680152 142 6 21 23 149 20 11 82 164 44 159 148 133 115 24 28 53 104 9 183 179 108
68156 39 84 87 30 163 32 70 75 166 170 8 139 9 175 99 143 64 89 186 114 183 133 85
682161 63 61 154 111 15 115 78 109 108 72 177 14 71 103 176 173 176 157 38 10 54
683132 41 186 130 126 63 69 39 76 7 65 171 82 172 102 124 140 83 113 ^
684396 1 189 70 83 29 132 67 115 145 151 170 181 14 192 2 187 40 5 33 160 48 183
68591 132 83 112 177 62 189 153 128 91 49 38 50 55 24 8 8 51 36 13 175 28 36 56
686160 12 107 168 25 104 157 156 139 165 14 30 192 164 195 56 41 180 159 28 79 41
687144 167 51 115 188 136 154 145 65 2 22 93 83 191 147 23 110 57 137 131 66 138
68826 78 146 125 159 150 34 177 22 129 68 168 111 74 118 77 50 174 54 47 87 140 20
689178 158 133 60 33 45 93 47 8 170 59 52 56 124 20 16 150 117 24 84 46 106 151 51
690158 173 113 111 196 73 15 133 136 71 100 10 85 182 110 143 114 92 185 42 42 118
691156 20 135 173 156 96 180 37 73 134 156 182 150 196 192 45 172 17 167 91 168 68
69289 134 120 190 173 34 141 37 152 111 117 103 61 7 34 62 67 191 190 8 87 21 195
693139 86 44 76 66 55 186 23 31 87 183 5 155 122 191 68 53 149 136 35 115 26 121
694131 102 123 3 42 197 133 179 56 84 165 136 190 130 49 157 80 101 103 97 197 11
69519 118 1 5 119 137 9 104 193 141 116 122 72 38 7 70 47 44 155 43 16 107 125 40
696127 193 105 131 145 108 185 6 50 141 1 167 127 153 45 53 192 121 12 79 84 129
697151 15 166 196 156 60 188 53 109 83 148 162 46 146 6 136 111 160 88 38 169 85
69863 87 97 35 194 3 82 52 13 132 43 59 92 109 4 178 3 118 37 195 96 94 60 112 15
69947 166 110 179 99 69 149 100 43 138 69 70 123 89 12 158 54 90 72 117 182 31 166
700153 164 76 33 2 101 63 44 112 58 39 143 74 32 107 89 55 143 31 47 123 125 4 135
70118 141 80 137 88 81 154 187 ^
702406 0 23 134 103 49 99 44 64 160 68 190 114 105 91 86 22 27 15 74 8 22 151 79
703199 84 85 90 128 9 5 175 129 17 40 59 125 187 194 144 151 3 60 6 158 153 67 58
70418 99 19 53 129 90 179 134 52 124 55 95 138 82 170 167 69 122 13 108 160 119
705115 161 51 14 167 120 47 60 57 86 16 184 96 197 42 98 112 165 154 199 157 21
706168 52 146 66 126 119 93 150 20 36 153 140 194 93 26 156 114 80 80 55 44 13 35
70724 44 191 24 190 63 177 44 140 99 146 117 54 163 42 76 101 134 176 185 177 168
7081 21 19 180 193 12 52 197 191 173 65 19 31 118 59 1 123 72 71 88 64 11 193 37
70963 28 169 184 45 72 195 152 186 87 56 176 112 41 93 77 84 158 29 3 136 142 36
71080 4 119 166 86 98 163 93 1 145 83 102 66 75 191 46 4 94 155 55 120 149 113 148
711181 49 175 180 142 87 5 51 65 92 167 196 186 138 184 23 61 164 171 175 107 6 9
71281 114 7 141 177 117 76 174 73 54 112 114 29 152 11 98 87 154 123 21 146 41 115
71388 115 139 40 183 189 109 67 7 90 52 73 127 51 192 156 89 69 49 77 33 33 182 57
71410 64 138 57 159 136 91 111 33 58 193 88 188 75 118 110 126 170 18 197 169 162
71534 41 17 138 6 34 92 145 185 155 157 170 43 8 140 48 21 70 105 40 161 178 78 89
716196 110 199 106 96 121 106 23 185 28 96 48 167 145 58 91 35 97 180 66 151 130
717124 128 34 16 6 107 28 20 112 92 18 121 30 84 107 101 159 187 19 155 182 181 74
718186 11 120 98 185 104 32 126 94 82 119 42 25 173 90 30 62 96 70 178 176 39 102
71915 150 147 100 78 16 57 35 75 169 35 170 116 144 75 146 ^
720409 1 185 70 12 95 110 71 133 183 52 136 148 144 114 186 17 25 144 164 5 79 178
721172 124 117 19 43 20 93 174 36 125 117 151 109 3 164 55 101 37 122 152 77 131
722168 88 162 161 93 142 14 63 167 141 149 94 39 190 50 68 47 135 198 16 110 153
723177 104 173 192 68 147 179 119 137 166 73 180 169 88 91 24 76 10 80 146 79 128
724150 62 149 194 83 111 171 124 170 156 60 152 27 109 106 120 134 201 184 202 149
72512 198 66 132 12 127 132 133 83 8 12 45 88 9 183 155 92 24 23 76 63 14 163 8 62
72667 150 162 8 115 1 167 91 127 32 89 162 90 159 125 85 129 47 53 154 95 7 115 54
727101 108 56 169 6 47 103 176 157 160 125 14 10 30 124 17 178 122 102 55 69 15 60
728202 49 171 74 148 94 92 124 67 200 184 70 83 29 127 67 100 140 131 165 176 4
729182 2 167 20 193 33 160 43 173 71 112 68 97 157 57 169 138 113 86 44 38 40 55
73019 196 201 31 21 8 165 23 26 41 155 195 183 102 158 25 94 142 146 129 150 9 30
731177 154 195 51 36 175 139 28 59 31 124 167 41 105 173 121 134 130 65 185 17 78
73278 181 137 13 95 57 137 116 51 118 16 78 131 115 154 145 29 177 22 129 68 168
73391 74 98 72 30 174 39 37 72 130 15 163 158 128 50 18 25 73 27 191 150 59 52 36
734104 20 11 130 97 4 79 46 106 141 46 138 163 108 106 191 68 15 113 136 66 100
735193 65 182 105 123 99 72 180 37 22 108 156 10 130 168 141 96 160 22 58 134 151
736162 140 181 187 35 157 7 147 76 163 58 84 129 100 190 153 24 126 32 142 96 107
73788 41 2 14 42 52 186 170 3 82 11 180 119 66 29 56 66 50 171 3 11 77 163 5 150
738112 128 ^
739413 1 47 25 135 129 7 108 19 107 117 102 102 3 28 190 112 165 56 63 165 122 183
740116 28 157 52 73 89 90 169 202 12 111 185 203 91 116 200 97 193 134 116 122 44
74131 7 63 26 37 134 22 2 93 125 33 99 186 77 124 131 94 171 183 50 113 178 146
742127 153 45 32 164 121 203 58 56 108 130 192 166 168 128 39 188 53 102 69 148
743141 18 139 197 108 97 132 74 24 155 71 63 59 97 21 194 180 61 45 204 132 29 31
74485 88 188 164 187 118 37 167 82 94 60 98 1 47 152 110 172 85 55 128 72 43 117
74541 42 116 61 12 144 40 62 58 117 168 17 159 139 164 76 5 193 101 56 30 105 30
74611 143 60 32 86 68 41 136 31 40 123 118 181 135 195 127 59 130 81 53 147 62 13
747124 98 34 79 39 49 145 53 180 94 105 91 71 2 27 5 54 193 7 141 79 199 84 75 70
748128 199 195 160 119 17 20 54 115 187 184 129 146 193 40 201 143 138 57 43 18 94
749204 38 114 80 179 114 47 119 50 80 118 82 160 152 49 112 198 88 155 104 95 151
75036 199 162 100 27 50 47 86 195 16 179 81 192 27 83 107 150 134 194 147 1 158 32
751131 61 111 119 83 140 5 21 133 120 174 78 26 136 109 65 80 40 29 203 25 24 44
752191 14 170 43 162 34 140 99 141 112 54 148 42 71 96 119 161 165 167 148 186 11
7534 180 188 197 42 182 181 168 50 14 26 103 49 1 113 67 61 78 59 196 173 32 53 8
754154 169 30 72 175 152 176 87 36 166 102 36 88 77 79 138 24 188 131 127 26 70
755194 114 146 66 93 158 93 191 125 78 92 51 60 176 26 4 74 135 35 120 129 113 133
756181 29 170 170 137 77 190 46 45 77 157 191 186 138 184 18 61 144 151 175 107 6
757194 81 114 2 126 110 ^
758427 1 85 60 150 73 38 88 90 5 128 11 98 55 130 91 13 146 9 91 88 107 139 16 159
759189 93 35 191 66 28 65 95 51 184 148 57 45 49 61 25 9 166 49 194 64 130 33 143
760112 67 111 1 58 177 80 164 59 110 94 118 170 194 197 169 154 10 41 193 114 190
76126 92 145 177 155 125 146 35 200 124 48 21 46 89 40 153 178 62 65 196 86 175 90
76280 89 98 23 169 4 88 32 135 137 26 75 11 81 172 34 151 130 108 104 34 200 182
76383 12 196 112 84 202 97 206 60 75 69 159 163 19 131 174 157 66 178 195 104 66
764161 104 8 126 70 66 103 26 17 141 90 22 54 64 38 146 168 39 70 199 142 147 92
76570 8 25 35 75 161 3 138 92 128 43 59 185 55 205 95 100 71 123 173 42 126 128
766144 94 176 205 20 139 149 198 59 168 172 109 112 9 33 10 73 154 36 115 97 131
76799 196 144 45 81 22 112 142 72 131 148 83 162 161 78 142 14 53 157 141 139 74
76829 180 35 58 27 115 198 1 90 138 167 89 173 192 48 137 159 114 132 156 58 160
769154 68 76 19 56 5 70 141 64 113 150 47 129 184 73 96 166 124 155 151 55 147 17
770109 86 100 129 201 164 192 149 7 193 56 112 200 107 122 133 63 206 2 40 78 9
771183 140 82 4 13 71 48 4 163 201 57 62 140 157 8 100 204 162 86 117 12 89 147 75
772144 120 85 109 37 48 154 85 2 115 39 96 108 46 164 1 32 103 176 147 150 105 207
77310 15 119 2 173 117 87 50 69 50 202 39 171 69 133 89 72 114 57 195 179 70 83 29
774122 67 85 135 111 160 171 202 172 2 147 183 33 160 38 163 51 92 53 82 137 52
775149 123 98 81 39 38 30 55 14 186 196 11 6 3 155 18 16 26 150 180 168 97 148 25
77684 127 136 119 135 4 30 162 144 195 46 31 170 119 28 190 ^
777443 1 17 96 167 27 91 152 100 106 109 65 164 10 57 71 167 123 209 74 57 137 95
77830 90 2 78 110 101 147 138 22 177 22 129 68 168 63 74 70 65 2 174 18 23 51 116
7798 142 158 121 36 207 207 45 209 170 122 59 52 8 76 20 4 102 69 186 72 46 106
780127 39 110 149 101 99 184 61 15 85 136 59 100 172 37 182 98 95 78 44 173 30 204
78194 156 206 123 161 120 96 132 1 37 134 144 134 126 160 180 21 136 203 119 55
782156 44 77 122 72 190 125 10 105 25 128 75 93 67 13 205 196 14 31 179 142 206 75
783207 159 91 38 8 28 66 43 150 185 193 63 135 5 143 98 143 32 5 125 124 197 103
78414 97 107 102 87 3 18 185 97 155 56 48 165 112 178 106 13 157 32 53 79 85 149
785197 7 106 175 203 71 101 195 92 193 129 116 122 24 26 7 58 11 32 119 7 202 83
786125 28 79 181 57 119 121 84 161 168 50 93 163 131 127 153 45 17 144 121 198 43
78736 93 115 177 166 148 108 24 188 53 97 59 148 126 208 134 192 88 87 112 64 14
788145 61 63 39 97 11 194 165 46 40 199 132 19 11 80 73 178 154 177 118 37 147 72
78994 60 88 201 47 142 110 167 75 45 113 52 43 102 21 22 111 41 12 134 30 42 48
790117 158 7 154 129 164 76 195 188 101 51 20 100 10 201 143 50 32 71 53 31 131 31
79135 123 113 166 135 180 117 44 125 76 33 142 62 3 114 93 19 59 34 34 130 38 170
79274 105 91 56 192 27 205 34 178 202 131 79 199 84 65 50 128 189 185 145 109 17
79349 105 187 174 114 141 183 20 196 128 123 47 28 18 89 189 23 99 70 179 94 42
794114 45 65 98 82 150 137 29 102 183 68 150 89 75 141 21 184 157 80 7 40 37 86
795190 16 174 66 187 12 68 102 135 114 189 137 191 148 12 116 56 96 119 73 130 200
7966 113 100 154 63 26 116 104 50 80 25 14 193 83 ^
797436 1 24 44 191 211 138 11 138 18 140 99 133 104 54 124 42 63 88 95 137 133 151
798116 162 208 193 180 180 173 26 158 165 160 26 6 18 79 33 1 97 59 45 62 51 172
799141 24 37 189 130 145 6 72 143 152 160 87 4 150 86 28 80 77 71 106 16 164 123
800103 10 54 178 106 114 34 85 150 93 175 93 70 76 27 36 152 207 4 42 103 3 120 97
801113 109 181 210 162 154 129 61 166 38 13 53 141 183 186 138 184 10 61 112 119
802175 107 6 170 81 114 207 102 125 65 50 135 73 28 73 75 203 113 11 98 35 115 71
8038 146 202 76 88 102 139 1 144 189 83 15 181 51 13 60 75 51 179 143 37 30 49 51
80420 207 156 44 184 64 125 18 133 97 52 111 194 58 167 75 149 49 105 84 113 170
805179 197 169 149 208 41 178 99 180 21 92 145 172 155 105 131 30 208 200 114 48
80621 31 79 40 148 178 52 50 196 71 160 80 70 69 93 23 159 202 83 22 115 132 6 65
807209 71 167 14 151 130 98 89 34 190 167 68 2 181 112 79 192 82 191 45 55 49 159
808148 19 116 169 142 61 173 185 94 46 146 104 206 126 55 56 93 16 12 121 90 17 49
80944 18 126 163 39 50 189 137 147 87 65 3 5 35 75 156 196 118 77 118 23 54 185 40
810195 95 90 71 113 163 32 116 108 144 74 166 190 15 134 134 188 39 158 172 94 107
811212 23 53 134 36 105 77 111 89 186 124 35 61 7 102 132 67 131 128 78 162 161 63
812142 14 43 147 141 129 54 19 170 20 48 7 95 198 199 70 123 157 74 173 192 28 127
813139 109 127 146 43 140 139 48 61 14 36 60 136 49 98 150 32 109 174 63 81 161
814124 140 146 50 142 7 109 66 80 124 201 144 182 149 2 188 46 92 185 87 112 133
81543 201 205 35 68 9 183 125 72 197 3 66 33 207 163 191 52 57 130 152 8 85 204
816157 81 107 205 187 ^
817462 1 126 54 123 113 85 81 23 41 154 71 210 115 18 89 108 32 157 209 11 103 176
818133 136 77 193 10 209 112 196 166 110 66 43 69 194 36 202 25 171 62 112 82 44
819100 43 188 172 70 83 29 115 67 64 128 83 153 164 195 158 2 119 187 169 33 160
82031 149 23 64 32 61 109 45 121 102 77 74 32 38 16 55 7 172 189 198 200 211 141
82111 2 5 143 159 147 90 134 25 70 106 122 105 114 212 30 141 130 195 39 24 163 91
82228 11 7 76 167 17 81 137 85 86 94 65 149 5 42 66 157 113 204 59 57 137 80 15 70
823207 78 95 91 142 133 17 177 22 129 68 168 43 74 50 60 197 174 3 13 36 106 3 127
824158 116 26 197 192 25 194 155 102 59 52 203 56 20 214 82 49 171 67 46 106 117
82534 90 139 96 94 179 56 15 65 136 54 100 157 17 182 93 75 63 24 168 25 189 84
826156 201 118 156 105 96 112 201 22 134 139 114 116 145 175 11 121 198 99 40 151
82734 72 117 52 190 105 90 20 118 60 83 52 208 205 181 209 16 174 122 206 70 202
828144 71 18 208 8 66 38 135 170 178 53 115 5 138 88 123 17 200 115 119 182 98 9
82987 97 102 72 3 8 180 82 145 56 33 165 102 173 96 213 157 12 33 69 80 129 192 2
830101 165 203 51 86 190 87 193 124 116 122 4 21 7 53 211 27 104 207 197 73 125 23
83159 176 37 114 111 74 151 153 50 73 148 116 127 153 45 2 124 121 193 28 16 78
832100 162 166 128 88 9 188 53 92 49 148 111 193 129 187 68 77 92 54 4 135 51 63
83319 97 1 194 150 31 35 194 132 9 206 75 58 168 144 167 118 37 127 62 94 60 78
834196 47 132 110 162 65 35 98 32 43 87 1 2 106 21 12 124 20 22 38 117 148 212 149
835119 164 76 180 183 101 46 10 95 205 186 143 40 32 56 38 21 126 31 30 123 108
836151 135 165 107 29 120 71 13 137 62 208 104 88 4 39 29 19 115 23 160 54 105 91
83741 177 27 200 14 163 124 ^
838453 0 115 79 199 84 49 18 128 173 169 121 93 17 186 41 89 187 158 90 133 167
839206 188 104 99 31 4 18 81 165 217 75 54 179 62 34 106 37 41 66 82 134 113 215
84086 159 36 142 65 43 125 215 160 149 48 193 24 21 86 182 16 166 42 179 206 44 94
841111 82 181 121 167 132 198 92 48 72 119 57 114 184 200 81 68 122 39 26 84 96 26
84280 1 208 177 217 24 44 191 206 118 209 123 8 140 99 128 99 54 109 42 58 83 80
843122 113 141 96 147 203 183 180 175 158 16 143 155 155 11 1 13 64 23 1 87 54 35
84452 46 157 121 19 27 174 115 130 209 72 123 152 150 87 202 140 76 23 75 77 66 86
84511 149 118 88 44 168 101 94 14 80 145 93 165 73 65 66 12 21 137 192 4 22 83 201
846120 77 113 94 181 195 157 144 124 51 151 33 211 38 131 178 186 138 184 5 61 92
84799 175 107 6 155 81 114 207 87 105 45 40 120 73 18 58 60 193 98 11 98 15 100 51
8483 146 187 61 88 97 139 204 129 189 73 213 171 36 216 55 55 51 174 138 17 15 49
84941 15 197 146 39 174 64 120 3 123 82 37 111 179 58 157 70 134 39 100 74 108 170
850164 197 169 144 198 41 163 84 170 16 92 145 167 155 85 116 25 208 200 104 48 21
85116 69 40 143 178 42 35 196 56 145 70 60 49 88 23 149 192 78 12 95 127 204 55
852199 61 162 212 151 130 88 74 34 180 152 53 210 166 112 74 182 67 176 30 35 29
853159 133 19 101 164 127 56 168 175 84 26 131 104 196 126 40 46 83 6 7 101 90 12
85444 24 216 106 158 39 30 179 132 147 82 60 216 203 35 75 151 181 98 62 108 3 49
855185 25 185 95 80 71 103 153 22 106 88 144 54 156 175 10 129 119 178 19 148 172
85679 102 207 13 208 33 114 36 95 57 91 79 176 104 25 41 210 92 122 62 131 108 73
857162 161 48 142 14 33 137 141 119 34 9 160 5 38 205 75 198 189 50 108 112 ^
858454 1 53 173 192 113 111 102 120 132 22 112 118 20 40 7 8 213 46 129 28 77 150
85911 81 160 49 60 154 124 119 139 43 135 213 109 38 52 117 201 116 168 149 215
860181 32 64 164 59 98 133 15 194 198 28 54 9 183 104 58 176 209 59 12 200 163 177
86145 50 116 145 8 64 204 150 74 93 184 89 111 39 108 108 85 61 13 36 154 61 210
862115 3 84 108 22 152 209 216 103 176 123 126 57 183 10 199 107 186 161 105 51 38
86369 184 26 202 15 171 57 97 77 24 90 33 183 167 70 83 29 110 67 49 123 63 148
864159 190 148 2 99 172 159 33 160 26 139 3 44 17 46 89 40 101 87 62 69 27 38 6 55
8652 162 184 183 190 211 131 6 212 210 138 144 132 85 124 25 60 91 112 95 99 212
86630 126 120 195 34 19 158 71 28 211 217 56 167 7 71 122 70 66 79 65 134 27 61
867147 103 199 44 57 137 65 50 202 78 80 81 137 128 12 177 22 129 68 168 23 74 30
86855 182 174 208 3 21 96 218 112 158 111 16 187 177 5 179 140 82 59 52 188 36 20
869214 62 29 156 62 46 106 107 29 70 129 91 89 174 51 15 45 136 49 100 142 217 182
87088 55 48 4 163 20 174 74 156 196 113 151 90 96 92 191 7 134 134 94 106 130 170
8711 106 193 79 25 146 24 67 112 32 190 85 210 75 15 108 45 73 37 193 205 166 194
8721 169 102 206 65 197 129 51 218 198 208 66 33 120 155 163 43 95 5 133 78 103 2
873185 105 114 167 93 4 77 87 102 57 3 218 175 67 135 56 18 165 92 168 86 203 157
874212 13 59 75 109 187 217 96 155 203 31 71 185 82 193 119 116 122 204 16 7 48
875201 22 89 197 192 63 125 18 39 171 17 109 101 64 141 138 50 53 133 101 127 153
87645 207 104 121 188 13 216 63 85 147 166 108 68 214 188 53 87 39 148 96 178 124
877182 48 67 72 44 214 125 41 63 219 97 211 194 135 16 30 189 132 219 191 70 43
878158 181 ^
879475 0 153 118 37 99 48 94 60 64 189 47 118 110 155 51 21 77 4 43 66 195 196 99
880215 12 110 6 216 24 117 134 205 142 105 164 76 159 176 101 39 218 88 184 165
881143 26 32 35 17 7 119 31 23 123 101 130 135 144 93 8 113 64 207 130 62 201 90
88281 205 11 22 220 94 2 146 26 105 91 20 156 27 193 208 142 178 107 79 199 84 41
8832 128 165 161 109 85 17 174 37 81 187 150 78 129 159 194 184 92 87 23 214 18 77
884153 209 63 46 179 46 30 102 33 29 50 82 126 101 203 78 147 20 138 53 27 117 207
885148 145 32 181 16 13 86 178 16 162 30 175 198 32 90 99 66 177 113 155 124 186
88680 44 60 119 49 106 176 192 65 52 106 27 26 68 92 14 80 211 200 169 213 24 44
887191 202 102 197 111 140 99 124 95 54 97 42 54 79 68 110 97 133 80 135 199 175
888180 171 146 8 131 147 151 221 219 9 52 15 1 79 50 27 44 42 145 105 15 19 162
889103 118 201 72 107 152 142 87 190 132 68 19 71 77 62 70 7 137 114 76 214 36 160
89097 78 220 76 141 93 157 57 61 58 9 125 180 4 6 67 189 120 61 113 82 181 183 153
891136 120 43 139 29 199 26 123 174 186 138 184 1 61 76 83 175 107 6 143 81 114
892207 75 89 29 32 108 73 10 46 48 185 86 11 98 221 88 35 221 146 175 49 88 93 139
893196 117 189 65 201 163 24 208 51 39 51 170 134 1 3 49 33 11 189 138 35 166 64
894116 213 115 70 25 111 167 58 149 66 122 31 96 66 104 170 152 197 169 140 190 41
895151 72 162 12 92 145 163 155 69 104 21 208 200 96 48 21 4 61 40 139 178 34 23
896196 44 133 62 52 33 84 23 141 184 74 4 79 123 192 47 191 53 158 200 151 130 80
89762 34 172 140 41 206 154 112 70 174 55 164 18 19 13 159 121 19 89 160 115 52
898164 167 76 10 119 104 188 126 28 38 75 220 3 85 90 8 40 8 204 90 154 39 14 171
899128 147 78 56 216 191 35 75 147 169 82 50 100 209 45 185 13 177 95 150 ^
900471 0 71 89 139 8 92 60 144 26 142 154 3 122 98 164 216 134 172 58 95 200 224
901201 5 86 36 81 29 63 65 162 76 11 13 196 78 108 55 131 80 66 162 161 27 142 14
90219 123 141 105 6 220 146 209 24 184 47 198 175 22 87 133 38 173 192 205 103 91
90397 115 122 7 92 103 25 2 213 213 36 124 13 62 150 221 61 150 39 45 149 124 104
904134 38 130 208 109 18 32 112 201 96 158 149 215 176 22 44 149 39 88 133 220 189
905193 23 44 9 183 89 48 161 204 54 222 195 163 167 40 45 106 140 8 49 204 145 69
90683 169 89 96 24 93 103 85 41 3 31 154 51 210 115 213 79 108 12 147 209 206 103
907176 113 116 37 173 10 189 102 176 156 100 36 33 69 174 16 202 5 171 52 82 72 4
90880 23 178 162 70 83 29 105 67 34 118 43 143 154 185 138 2 79 157 149 33 160 21
909129 208 24 2 31 69 35 81 72 47 64 22 38 221 55 222 152 179 168 180 211 121 1
910207 200 133 129 117 80 114 25 50 76 102 85 84 212 30 111 110 195 29 14 153 51
91128 196 212 36 167 222 61 107 55 46 64 65 119 220 12 56 137 93 194 29 57 137 50
912210 30 197 78 65 71 132 123 7 177 22 129 68 168 3 74 10 50 167 174 198 218 6 86
913218 97 158 106 6 177 162 210 164 125 62 59 52 173 16 20 214 42 9 141 57 46 106
91497 24 50 119 86 84 169 46 15 25 136 44 100 127 202 182 83 35 33 209 158 15 159
91564 156 191 108 146 75 96 72 181 217 134 129 74 96 115 165 216 91 188 59 10 141
91614 62 107 12 190 65 205 60 10 98 30 63 22 178 205 151 179 211 164 82 206 60 192
917114 31 203 188 193 66 28 105 140 148 33 75 5 128 68 83 212 170 95 109 152 88
918224 67 77 102 42 3 213 170 52 125 56 3 165 82 163 76 193 157 197 218 49 70 89
919182 217 91 145 203 11 56 180 77 193 114 116 122 189 11 7 43 191 17 74 187 187
92053 125 13 19 166 222 104 91 54 131 123 50 33 118 86 127 167 ^
921480 1 45 193 76 121 181 219 195 42 64 126 166 80 40 200 188 53 80 25 148 75 157
922117 175 20 53 44 30 207 111 27 63 198 97 204 194 114 222 23 182 132 212 170 63
92322 144 120 143 118 37 79 38 94 60 54 184 47 108 110 150 41 11 62 211 43 51 180
924181 94 200 12 100 223 201 14 117 124 200 137 95 164 76 144 171 101 34 213 83
925169 150 143 16 32 20 2 224 114 31 18 123 96 115 135 129 83 220 108 59 192 125
92662 196 80 76 195 218 17 210 79 214 136 6 105 91 5 141 27 188 193 127 168 97 79
927199 84 31 209 128 155 151 94 75 17 159 32 71 187 140 63 124 149 179 179 77 72
92813 204 18 72 138 199 48 36 179 26 25 97 28 14 30 82 116 86 188 68 132 133 38 7
929107 197 133 140 12 166 6 3 86 173 16 157 15 170 188 17 85 84 46 172 103 140 114
930171 65 39 45 119 39 96 166 182 45 32 86 12 26 48 87 226 80 201 190 159 208 24
93144 191 197 82 182 96 217 140 99 119 90 54 82 42 49 74 53 95 77 123 60 120 194
932165 180 166 131 225 116 137 146 211 219 4 37 5 1 69 45 17 34 37 130 85 10 9 147
93388 103 191 72 87 152 132 87 175 122 58 14 66 77 57 50 2 122 109 61 209 26 150
93492 58 205 71 136 93 147 37 56 48 212 221 110 165 4 213 47 174 120 41 113 67 181
935168 148 126 115 33 124 24 184 11 113 169 186 138 184 223 61 56 63 175 107 6 128
93681 114 207 60 69 9 22 93 73 31 33 175 71 11 98 206 73 15 221 146 160 34 88 88
937139 186 102 189 55 186 153 9 198 46 19 51 165 129 208 215 49 23 6 179 128 30
938156 64 111 203 105 55 10 111 152 58 139 61 107 21 91 56 99 170 137 197 169 135
939180 41 136 57 152 7 92 145 158 155 49 89 16 208 200 86 48 21 216 51 40 134 178
94024 8 196 29 118 52 42 13 79 23 131 174 69 221 59 118 177 37 181 43 153 185 151
941130 70 47 34 162 125 26 201 139 112 65 164 40 149 3 226 220 159 106 19 74 155
942100 47 159 157 193 ^
943471 0 211 98 104 174 126 7 24 61 213 225 57 90 1 33 209 183 62 147 39 215 157
944121 147 71 49 216 170 35 75 140 148 54 29 86 188 38 185 221 163 95 58 71 81 131
94584 44 144 10 134 142 228 118 86 156 204 126 172 46 91 196 220 197 218 70 36 73
94613 47 57 154 60 3 226 188 70 100 51 131 64 62 162 161 15 142 14 11 115 141 97
947219 216 138 201 16 172 31 198 167 6 75 125 26 173 192 193 95 75 93 111 114 224
94876 91 213 13 227 201 213 28 120 1 50 150 213 45 142 31 33 145 124 92 130 34 126
949204 109 2 16 108 201 80 150 149 215 172 14 28 137 23 80 133 208 185 189 19 36 9
950183 77 40 149 200 50 214 191 163 159 36 41 98 136 8 37 204 141 65 75 157 89 84
95112 81 99 85 25 224 27 154 43 210 115 205 75 108 4 143 209 198 103 176 105 108
95221 165 10 181 98 168 152 96 24 29 69 166 8 202 226 171 48 70 68 217 72 15 174
953158 70 83 29 101 67 22 114 27 139 150 181 130 2 63 145 141 33 160 17 121 196 8
954219 19 53 31 65 60 35 60 18 38 217 55 222 144 175 156 172 211 113 226 203 192
955129 117 105 76 106 25 42 64 94 77 72 212 30 99 102 195 25 10 149 35 28 184 208
95620 167 218 53 95 43 30 52 65 107 220 52 129 85 190 17 57 137 38 202 14 193 78
95753 63 128 119 3 177 22 129 68 168 216 74 223 46 155 174 190 214 223 78 218 85
958158 102 227 169 150 198 152 113 46 59 52 161 20 214 26 222 129 53 46 106 89 20
95934 111 82 80 165 42 15 9 136 40 100 115 190 182 79 19 21 197 154 11 147 56 156
960187 104 142 63 96 56 173 209 134 125 58 88 103 161 212 79 184 43 227 137 6 58
961103 225 190 49 201 48 6 90 18 55 10 166 205 139 167 203 160 66 206 56 188 102
96215 191 180 181 66 24 93 128 136 25 59 5 124 60 67 204 158 87 105 140 84 224 59
96369 102 30 3 209 166 40 117 56 220 165 74 159 68 185 157 185 206 41 66 167 ^
964490 1 176 217 85 133 203 218 38 174 71 193 108 116 122 171 5 7 37 179 11 56 175
965181 41 125 7 226 160 204 98 79 42 119 105 50 9 100 68 127 153 45 185 60 121 177
966211 183 30 52 114 166 64 24 192 188 53 76 17 148 63 145 113 171 4 45 28 22 203
967103 19 63 186 97 200 194 102 214 19 178 132 208 158 59 10 136 112 135 118 37 63
96830 94 60 46 180 47 100 110 146 33 3 50 199 43 39 168 169 90 188 12 92 219 189 6
969117 116 196 133 87 164 76 132 167 101 30 209 79 157 138 143 8 32 8 221 220 110
97031 14 123 92 103 135 117 75 212 104 55 180 121 62 192 72 72 187 206 13 202 67
971206 128 221 105 91 224 129 27 184 181 115 160 89 79 199 84 23 197 128 147 143
97282 67 17 147 28 63 187 132 51 120 141 167 175 65 60 5 196 18 68 126 191 36 28
973179 10 21 93 24 2 14 82 108 74 176 60 120 215 129 26 222 99 189 121 136 227 154
974229 226 86 169 16 153 3 166 180 5 81 72 30 168 95 128 106 159 53 35 33 119 31
97588 158 174 29 16 70 26 32 83 218 80 193 182 151 204 24 44 191 193 66 170 84 213
976140 99 115 86 54 70 42 45 70 41 83 61 115 44 108 190 157 180 162 119 221 104
977129 142 203 219 25 228 1 61 41 9 26 33 118 69 6 1 135 76 91 183 72 71 152 124
97887 163 114 50 10 62 77 53 34 229 110 105 49 205 18 142 88 42 193 67 132 93 139
97921 52 40 204 213 98 153 4 201 31 162 120 25 113 55 181 156 144 118 111 25 112
98020 172 230 105 165 186 138 184 223 61 40 47 175 107 6 116 81 114 207 48 53 224
98114 81 73 223 19 21 167 59 11 98 194 61 230 221 146 148 22 88 84 139 178 90 189
98247 174 145 228 190 42 3 51 161 125 196 207 49 15 2 171 120 26 148 64 107 195 97
98343 229 111 140 58 131 57 95 13 87 48 95 170 125 197 169 131 172 41 124 45 144 3
98492 145 154 155 33 77 12 208 200 78 48 21 208 43 40 130 178 16 227 196 17 106 44
98534 228 75 23 123 166 65 217 43 114 165 29 173 35 200 ^
986479 0 167 151 130 58 29 34 150 107 8 195 121 112 59 152 22 131 218 208 202 159
98788 19 56 149 82 41 153 145 54 199 86 104 166 126 228 16 53 209 225 41 90 230 29
988197 171 46 143 39 203 149 117 147 67 45 216 158 35 75 136 136 38 17 78 176 34
989185 213 155 95 50 71 73 123 225 76 28 144 227 126 130 228 114 74 148 192 118
990172 34 87 192 216 193 206 54 36 65 230 31 49 146 44 228 214 180 62 92 47 131 48
99158 162 161 3 142 14 3 107 141 89 207 212 130 193 8 160 15 198 159 223 63 117 14
992173 192 181 87 59 89 107 106 216 60 79 201 1 227 189 213 20 116 222 38 150 205
99329 134 23 21 141 124 80 126 30 122 200 109 219 104 201 64 142 149 215 168 6 12
994125 7 72 133 196 181 185 15 28 9 183 65 32 137 196 46 206 187 163 151 32 37 90
995132 8 25 204 137 61 67 145 89 72 69 95 85 9 220 23 154 35 210 115 197 71 108
996229 139 209 190 103 176 97 100 5 157 10 173 94 160 148 92 12 25 69 158 202 222
997171 44 58 64 205 64 7 170 154 70 83 29 97 67 10 110 11 135 146 177 122 2 47 133
998133 33 160 13 113 184 225 211 7 37 27 49 48 23 56 14 38 213 55 222 136 171 144
999164 211 105 226 199 184 125 105 93 72 98 25 34 52 86 69 60 212 30 87 94 195 21
10006 145 19 28 172 204 4 167 214 45 83 31 14 40 65 95 220 221 48 121 77 186 5 57
1001137 26 194 231 189 78 41 55 124 115 232 177 22 129 68 168 204 74 211 42 143 174
1002182 210 215 70 218 73 158 98 223 161 138 186 140 101 30 59 52 149 217 20 214 10
1003210 117 49 46 106 81 16 18 103 78 76 161 38 15 226 136 36 100 103 178 182 75 3
10049 185 150 7 135 48 156 183 100 138 51 96 40 165 201 134 121 42 80 91 157 208 67
1005180 27 219 133 231 54 99 213 190 33 197 36 2 82 6 47 231 154 205 127 155 195
1006156 50 206 52 184 90 232 179 172 169 66 20 81 116 124 17 43 5 120 52 51 196 146
100779 101 128 80 224 65 ^
1008503 1 55 102 9 3 202 159 19 103 56 206 165 60 152 54 171 157 164 185 27 59 45
1009171 217 80 123 203 203 23 169 66 193 103 116 122 156 7 32 169 6 41 165 176 31
1010125 2 211 155 189 93 69 32 109 90 50 225 85 53 127 153 45 175 40 121 172 201
1011168 15 37 99 166 44 4 182 188 53 71 7 148 48 130 108 166 220 35 8 12 198 93 9
101263 171 97 195 194 87 204 14 173 132 203 143 54 231 126 102 125 118 37 43 20 94
101360 36 175 47 90 110 141 23 229 35 184 43 24 153 154 85 173 12 82 214 174 232
1014117 106 191 128 77 164 76 117 162 101 25 204 74 142 123 143 234 32 229 211 215
1015105 31 9 123 87 88 135 102 65 202 99 50 165 116 62 187 62 67 177 191 8 192 52
1016196 118 206 105 91 214 114 27 179 166 100 150 79 79 199 84 13 182 128 137 133
101767 57 17 132 23 53 187 122 36 115 131 152 170 50 45 231 186 18 63 111 181 21 18
1018179 226 16 88 19 223 230 82 98 59 161 50 105 200 124 11 207 89 179 106 131 212
1019139 224 221 86 164 16 148 224 161 170 226 76 57 10 163 85 113 96 144 38 30 18
1020119 21 78 148 164 9 232 50 221 26 12 78 208 80 183 172 141 199 24 44 191 188 46
1021155 69 208 140 99 110 81 54 55 42 40 65 26 68 41 105 24 93 185 147 180 157 104
1022216 89 119 137 193 219 231 10 223 1 51 36 235 16 28 103 49 1 227 120 61 76 173
102372 51 152 114 87 148 104 40 5 57 77 48 14 229 95 100 34 200 8 132 83 22 178 62
1024127 93 129 1 47 30 194 203 83 138 4 186 11 147 120 5 113 40 181 141 139 108 106
102515 97 15 157 220 95 160 186 138 184 223 61 20 27 175 107 6 101 81 114 207 33 33
1026209 4 66 73 218 4 6 157 44 11 98 179 46 215 221 146 133 7 88 79 139 168 75 189
102737 159 135 218 180 37 219 51 156 120 181 197 49 5 233 161 110 21 138 64 102 185
102887 28 219 111 125 58 121 52 80 3 82 38 90 170 110 197 169 126 162 41 109 30 134
1029234 92 145 149 155 13 62 7 208 200 68 48 21 198 33 40 125 178 6 217 196 2 91 34
103024 213 70 23 113 161 ^
1031470 0 58 210 15 107 144 15 159 21 142 152 151 130 48 14 34 140 92 231 190 106
1032112 54 142 7 116 208 193 187 159 73 19 41 144 67 36 148 135 44 184 71 104 156
1033126 218 6 43 204 225 21 90 230 24 182 156 26 138 39 188 139 112 147 62 40 216
1034143 35 75 131 121 18 2 68 161 29 185 203 145 95 40 71 63 113 220 66 8 144 212
1035116 115 228 109 59 138 177 108 172 19 82 187 211 188 191 34 36 55 215 11 39 136
103624 223 199 170 52 82 42 131 28 53 162 161 226 142 14 231 97 141 79 192 207 120
1037183 236 145 233 198 149 208 48 107 237 173 192 166 77 39 84 102 96 206 40 64
1038186 224 227 174 213 10 111 212 23 150 195 9 124 13 6 136 124 65 121 25 117 195
1039109 204 218 99 201 44 132 149 215 163 234 230 110 225 62 133 181 176 180 10 18
10409 183 50 22 122 191 41 196 182 163 141 27 32 80 127 8 10 204 132 56 57 130 89
104157 223 54 90 85 227 215 18 154 25 210 115 187 66 108 224 134 209 180 103 176 87
104290 223 147 10 163 89 150 143 87 235 20 69 148 228 202 217 171 39 43 59 190 54
1043235 165 149 70 83 29 92 67 233 105 229 130 141 172 112 2 27 118 123 33 160 8
1044103 169 210 201 230 17 22 29 33 8 51 9 38 208 55 222 126 166 129 154 211 95 226
1045194 174 120 90 78 67 88 25 24 37 76 59 45 212 30 72 84 195 16 1 140 237 28 157
1046199 222 167 209 35 68 16 232 25 65 80 220 211 43 111 67 181 228 57 137 11 184
1047216 184 78 26 45 119 110 232 177 22 129 68 168 189 74 196 37 128 174 172 205
1048205 60 218 58 158 93 218 151 123 171 125 86 10 59 52 134 202 20 214 228 195 102
104944 46 106 71 11 236 93 73 71 156 33 15 211 136 31 100 88 163 182 70 221 232 170
1050145 2 120 38 156 178 95 133 36 96 20 155 191 134 116 22 70 76 152 203 52 175 7
1051209 128 226 49 94 198 190 13 192 21 235 72 229 37 221 139 205 112 140 185 151
105230 206 47 179 75 217 101 ^
1053502 0 158 148 66 13 60 95 103 3 15 5 113 38 23 182 125 65 94 107 73 224 37 47
1054102 237 3 198 155 7 95 56 198 165 52 148 46 163 157 152 173 19 55 29 167 217 76
1055115 203 191 11 165 62 193 99 116 122 144 236 7 28 161 2 29 157 172 23 125 238
1056199 151 177 89 61 24 101 78 50 213 73 41 127 153 45 167 24 121 168 193 156 3 25
105787 166 28 228 174 188 53 67 239 148 36 118 104 162 208 27 232 4 194 85 1 63 159
105897 191 194 75 196 10 169 132 199 131 50 223 118 94 117 118 37 27 12 94 60 28
1059171 47 82 110 137 15 225 23 172 43 12 141 142 81 161 12 74 210 162 228 117 98
1060187 124 69 164 76 105 158 101 21 200 70 130 111 143 230 32 221 203 211 101 31 5
1061123 83 76 135 90 57 194 95 46 153 112 62 183 54 63 169 179 4 184 40 188 110 194
1062105 91 206 102 27 175 154 88 142 71 79 199 84 5 170 128 129 125 55 49 17 120 19
106345 187 114 24 111 123 140 166 38 33 227 178 18 59 99 173 9 10 179 214 12 84 15
1064215 218 82 90 47 149 42 93 188 120 239 195 81 171 94 127 200 127 220 217 86 160
106516 144 216 157 162 218 72 45 234 159 77 101 88 132 26 26 6 119 13 70 140 156
1066233 220 34 213 26 236 74 200 80 175 164 133 195 24 44 191 184 30 143 57 204 140
106799 106 77 54 43 42 36 61 14 56 25 97 8 81 181 139 180 153 92 212 77 111 133 185
1068219 231 238 219 1 43 32 231 8 24 91 33 237 223 108 49 64 165 72 35 152 106 87
1069136 96 32 1 53 77 44 238 229 83 96 22 196 124 79 6 166 58 123 93 121 225 43 22
1070186 195 71 126 4 174 235 135 120 229 113 28 181 129 135 100 102 7 85 11 145 212
107187 156 186 138 184 223 61 4 11 175 107 6 89 81 114 207 21 17 197 236 54 73 214
1072232 234 149 32 11 98 167 34 203 221 146 121 235 88 75 139 160 63 189 29 147 127
1073210 172 33 207 51 152 116 169 189 49 237 233 153 102 17 130 64 98 177 79 16 211
1074111 113 58 113 48 68 235 78 30 86 170 98 197 169 122 154 41 97 18 126 234 92
1075145 145 155 237 50 209 ^
1076481 1 208 200 56 48 21 186 21 40 119 178 236 205 196 226 73 22 12 195 64 23 101
1077144 54 206 241 103 132 7 151 13 138 140 151 130 40 2 34 132 80 223 186 94 112
107850 134 237 104 200 181 175 159 61 19 29 140 55 32 144 127 36 172 59 104 148 126
1079210 240 35 200 225 5 90 230 20 170 144 10 134 39 176 131 108 147 58 36 216 131
108035 75 127 109 2 232 60 149 25 185 195 137 95 32 71 55 105 216 58 234 144 200
1081108 103 228 105 47 130 165 100 172 7 78 183 207 184 179 18 36 47 203 237 31 128
10828 219 187 162 44 74 38 131 12 49 162 161 218 142 14 227 89 141 71 180 203 112
1083175 232 133 221 198 141 196 36 99 229 173 192 154 69 23 80 98 88 198 24 52 174
1084216 227 162 213 2 107 204 11 150 187 235 116 5 236 132 124 53 117 21 113 191
1085109 192 206 95 201 28 124 149 215 159 230 218 98 213 54 133 169 172 176 6 10 9
1086183 38 14 110 187 37 188 178 163 133 23 28 72 123 8 240 204 128 52 49 118 89 45
1087215 42 86 85 215 211 14 154 17 210 115 179 62 108 220 130 209 172 103 176 79 82
1088211 139 10 155 85 142 139 83 227 16 69 140 224 202 213 171 35 31 55 178 46 231
1089161 145 70 83 29 88 67 225 101 217 126 137 168 104 2 11 106 115 33 160 4 95 157
1090198 193 222 1 18 13 21 238 47 5 38 204 55 222 118 162 117 146 211 87 226 190
1091166 116 78 66 63 80 25 16 25 68 51 33 212 30 60 76 195 12 239 136 225 28 145
1092195 210 167 205 27 56 4 220 13 65 68 220 203 39 103 59 177 220 57 137 241 176
1093204 180 78 14 37 115 106 232 177 22 129 68 168 177 74 184 33 116 174 164 201
1094197 52 218 46 158 89 214 143 111 159 113 74 236 59 52 122 190 20 214 216 183 90
109540 46 106 63 7 224 85 69 67 152 29 15 199 136 27 100 76 151 182 66 209 224 158
1096141 240 108 30 156 174 91 129 24 96 4 147 183 134 112 6 62 64 148 199 40 171
1097233 201 124 222 45 90 186 190 239 188 9 235 64 221 29 213 127 178 ^
1098508 1 94 122 173 145 6 206 41 173 57 199 146 150 136 66 9 48 83 91 239 243 5
1099109 30 7 174 113 57 90 95 69 224 29 39 102 229 3 194 151 239 87 56 190 165 44
1100144 38 155 157 140 161 11 51 13 163 217 72 107 203 179 243 161 58 193 95 116
1101122 132 236 7 24 153 242 17 149 168 15 125 238 187 147 165 85 53 16 93 66 50
1102201 61 29 127 153 45 159 8 121 164 185 144 235 13 75 166 12 216 166 188 53 63
1103235 148 24 106 100 158 196 19 220 240 190 77 237 63 147 97 187 194 63 188 6 165
1104132 195 119 46 215 110 86 109 118 37 11 4 94 60 20 167 47 74 110 133 7 221 11
1105160 43 129 130 77 149 12 66 206 150 224 117 90 183 120 61 164 76 93 154 101 17
1106196 66 118 99 143 226 32 213 195 207 97 31 1 123 79 64 135 78 49 186 91 42 141
1107108 62 179 46 59 161 167 176 28 180 102 182 105 91 198 90 27 171 142 76 134 63
110879 199 84 241 158 128 121 117 43 41 17 108 15 37 187 106 12 107 115 128 162 26
110921 223 170 18 55 87 165 241 2 179 202 8 80 11 207 206 82 82 35 137 34 81 176
1110116 231 183 73 163 82 123 188 115 216 213 86 156 16 140 208 153 154 210 68 33
1111222 155 69 89 80 120 14 22 238 119 5 62 132 148 221 208 18 205 26 224 70 192 80
1112167 156 125 191 24 44 191 180 14 131 45 200 140 99 102 73 54 31 42 32 57 2 44 9
111389 236 69 177 131 180 149 80 208 65 103 129 177 219 231 230 215 1 35 28 227 20
111479 17 237 219 96 37 52 157 72 19 152 98 87 124 88 24 241 49 77 40 226 229 71 92
111510 192 236 116 75 234 154 54 119 93 113 213 39 14 178 187 59 114 4 162 223 123
1116120 217 113 16 181 117 131 92 98 243 73 7 133 204 79 152 186 138 184 223 61 232
1117239 175 107 6 77 81 114 207 9 1 185 232 42 73 210 224 226 141 20 11 98 155 22
1118191 221 146 109 227 88 71 139 152 51 189 21 135 119 202 164 29 195 51 148 112
1119157 181 49 233 233 145 94 13 122 64 94 169 71 4 203 111 101 58 105 44 56 231 74
112022 82 170 86 197 169 118 146 41 85 6 118 234 92 145 141 149 ^
1121484 1 219 32 243 208 200 48 48 21 178 13 40 115 178 232 197 196 218 61 14 4 183
112260 23 93 136 50 202 229 99 120 245 143 5 134 128 151 130 32 236 34 124 68 215
1123182 82 112 46 126 229 92 192 169 163 159 49 19 17 136 43 28 140 119 28 160 47
1124104 140 126 202 236 27 196 225 235 90 230 16 158 132 240 130 39 164 123 104 147
112554 32 216 119 35 75 123 97 232 224 52 137 21 185 187 129 95 24 71 47 97 212 50
1126222 144 188 100 91 228 101 35 122 153 92 172 241 74 179 203 180 167 2 36 39 191
1127225 23 120 238 215 175 154 36 66 34 131 242 45 162 161 210 142 14 223 81 141 63
1128168 199 104 167 228 121 209 198 133 184 24 91 221 173 192 142 61 7 76 94 80 190
11298 40 162 208 227 150 213 240 103 196 245 150 179 223 108 243 228 128 124 41 113
113017 109 187 109 180 194 91 201 12 116 149 215 155 226 206 86 201 46 133 157 168
1131172 2 2 9 183 26 6 98 183 33 180 174 163 125 19 24 64 119 8 232 204 124 48 41
1132106 89 33 207 30 82 85 203 207 10 154 9 210 115 171 58 108 216 126 209 164 103
1133176 71 74 199 131 10 147 81 134 135 79 219 12 69 132 220 202 209 171 31 19 51
1134166 38 227 157 141 70 83 29 84 67 217 97 205 122 133 164 96 2 241 94 107 33 160
113587 145 186 185 214 231 14 243 9 230 43 1 38 200 55 222 110 158 105 138 211 79
1136226 186 158 112 66 54 59 72 25 8 13 60 43 21 212 30 48 68 195 8 239 132 213 28
1137133 191 198 167 201 19 44 238 208 1 65 56 220 195 35 95 51 173 212 57 137 233
1138168 192 176 78 2 29 111 102 232 177 22 129 68 168 165 74 172 29 104 174 156 197
1139189 44 218 34 158 85 210 135 99 147 101 62 224 59 52 110 178 20 214 204 171 78
114036 46 106 55 3 212 77 65 63 148 25 15 187 136 23 100 64 139 182 62 197 216 146
1141137 240 96 22 156 170 87 125 12 96 234 139 175 134 108 236 54 52 144 195 28 167
1142221 193 120 218 41 86 174 190 227 184 243 235 56 213 21 205 115 205 71 ^
1143506 0 110 165 141 238 206 37 169 45 187 134 142 124 66 5 36 71 79 235 231 5 105
114422 239 166 101 49 86 83 65 224 21 31 102 221 3 190 147 231 79 56 182 165 36 140
114530 147 157 128 149 3 47 245 159 217 68 99 203 167 235 157 54 193 91 116 122 120
1146236 7 20 145 242 5 141 164 7 125 238 175 143 153 81 45 8 85 54 50 189 49 17 127
1147153 45 151 240 121 160 177 132 227 1 63 166 244 204 158 188 53 59 231 148 12 94
114896 154 184 11 208 236 186 69 233 63 135 97 183 194 51 180 2 161 132 191 107 42
1149207 102 78 101 118 37 243 244 94 60 12 163 47 66 110 129 247 217 247 148 43 236
1150117 118 73 137 12 58 202 138 220 117 82 179 116 53 164 76 81 150 101 13 192 62
1151106 87 143 222 32 205 187 203 93 31 245 123 75 52 135 66 41 178 87 38 129 104
115262 175 38 55 153 155 244 168 16 172 94 170 105 91 190 78 27 167 130 64 126 55
115379 199 84 237 146 128 113 109 31 33 17 96 11 29 187 98 103 107 116 158 14 9 219
1154162 18 51 75 157 233 242 179 190 4 76 7 199 194 82 74 23 125 26 69 164 112 223
1155171 65 155 70 119 176 103 212 209 86 152 16 136 200 149 146 202 64 21 210 151
115661 77 72 108 2 18 230 119 245 54 124 140 209 196 2 197 26 212 66 184 80 159 148
1157117 187 24 44 191 176 246 119 33 196 140 99 98 69 54 19 42 28 53 238 32 241 81
1158224 57 173 123 180 145 68 204 53 95 125 169 219 231 222 211 1 27 24 223 240 16
115967 1 237 215 84 25 40 149 72 3 152 90 87 112 80 16 241 45 77 36 214 229 59 88
1160246 188 232 108 71 222 142 50 115 93 105 201 35 6 170 179 47 102 4 150 211 111
1161120 205 113 4 181 105 127 84 94 239 61 3 121 196 71 148 186 138 184 223 61 220
1162227 175 107 6 65 81 114 207 245 233 173 228 30 73 206 216 218 133 8 11 98 143
116310 179 221 146 97 219 88 67 139 144 39 189 13 123 111 194 156 25 183 51 144 108
1164145 173 49 229 233 137 86 9 114 64 90 161 63 240 195 111 89 58 97 40 44 227 70
116514 78 170 74 197 169 114 138 41 73 242 110 234 177 ^
1166491 0 145 135 155 207 20 243 208 200 40 48 21 170 5 40 111 178 228 189 196 210
116749 6 246 171 56 23 85 128 46 198 217 95 108 241 135 247 130 116 151 130 24 228
116834 116 56 207 178 70 112 42 118 221 80 184 157 151 159 37 19 5 132 31 24 136
1169111 20 148 35 104 132 126 194 232 19 192 225 223 90 230 12 146 120 228 126 39
1170152 115 100 147 50 28 216 107 35 75 119 85 220 216 44 125 17 185 179 121 95 16
117171 39 89 208 42 210 144 176 92 79 228 97 23 114 141 84 172 233 70 175 199 176
1172155 236 36 31 179 213 15 112 226 211 163 146 28 58 30 131 230 41 162 161 202
1173142 14 219 73 141 55 156 195 96 159 224 109 197 198 125 172 12 83 213 173 192
1174130 53 241 72 90 72 182 242 28 150 200 227 138 213 236 99 188 237 150 171 211
1175100 239 220 124 124 29 109 13 105 183 109 168 182 87 201 246 108 149 215 151
1176222 194 74 189 38 133 145 164 168 248 244 9 183 14 248 86 179 29 172 170 163
1177117 15 20 56 115 8 224 204 120 44 33 94 89 21 199 18 78 85 191 203 6 154 1 210
1178115 163 54 108 212 122 209 156 103 176 63 66 187 123 10 139 77 126 131 75 211 8
117969 124 216 202 205 171 27 7 47 154 30 223 153 137 70 83 29 80 67 209 93 193 118
1180129 160 88 2 229 82 99 33 160 246 79 133 174 177 206 219 10 231 247 222 39 247
118138 196 55 222 102 154 93 130 211 71 226 182 150 108 54 42 55 64 25 1 52 35 9
1182212 30 36 60 195 4 239 128 201 28 121 187 186 167 197 11 32 230 196 239 65 44
1183220 187 31 87 43 169 204 57 137 225 160 180 172 78 240 21 107 98 232 177 22 129
118468 168 153 74 160 25 92 174 148 193 181 36 218 22 158 81 206 127 87 135 89 50
1185212 59 52 98 166 20 214 192 159 66 32 46 106 47 249 200 69 61 59 144 21 15 175
1186136 19 100 52 127 182 58 185 208 134 133 240 84 14 156 166 83 121 96 222 131
1187167 134 104 224 46 40 140 191 16 163 209 185 116 214 37 82 162 190 215 180 235
1188235 48 205 13 197 103 205 76 104 161 139 232 146 ^
1189516 0 33 165 33 175 122 134 112 66 1 24 59 67 231 219 5 101 14 227 158 89 41 82
119071 61 224 13 23 102 213 3 186 143 223 71 56 174 165 28 136 22 139 157 116 137
1191247 43 233 155 217 64 91 203 155 227 153 50 193 87 116 122 108 236 7 16 137 242
1192245 133 160 251 125 238 163 139 141 77 37 77 42 50 177 37 5 127 153 45 143 228
1193121 156 169 120 219 241 51 166 232 192 150 188 53 55 227 148 82 92 150 172 3
1194196 232 182 61 229 63 123 97 179 194 39 172 250 157 132 187 95 38 199 94 70 93
1195118 37 231 240 94 60 4 159 47 58 110 125 243 213 239 136 43 228 105 106 69 125
119612 50 198 126 216 117 74 175 112 45 164 76 69 146 101 9 188 58 94 75 143 218 32
1197197 179 199 89 31 245 123 71 40 135 54 33 170 83 34 117 100 62 171 30 51 145
1198143 244 160 4 164 86 158 105 91 182 66 27 163 118 52 118 47 79 199 84 233 134
1199128 105 101 19 25 17 84 7 21 187 90 240 99 99 104 154 2 249 215 154 18 47 63
1200149 225 238 179 178 72 3 191 182 82 66 11 113 18 57 152 108 215 159 57 147 58
1201115 164 91 208 205 86 148 16 132 192 145 138 194 60 9 198 147 53 65 64 96 242
120214 222 119 241 46 116 132 197 184 238 189 26 200 62 176 80 151 140 109 183 24
120344 191 172 234 107 21 192 140 99 94 65 54 7 42 24 49 230 20 229 73 212 45 169
1204115 180 141 56 200 41 87 121 161 219 231 214 207 1 19 20 219 236 12 55 237 237
1205211 72 13 28 141 72 239 152 82 87 100 72 8 241 41 77 32 202 229 47 84 238 184
1206228 100 67 210 130 46 111 93 97 189 31 250 162 171 35 90 4 138 199 99 120 193
1207113 244 181 93 123 76 90 235 49 251 109 188 63 144 186 138 184 223 61 208 215
1208175 107 6 53 81 114 207 237 221 161 224 18 73 202 208 210 125 248 11 98 131 250
1209167 221 146 85 211 88 63 139 136 27 189 5 111 103 186 148 21 171 51 140 104 133
1210165 49 225 233 129 78 5 106 64 86 153 55 232 187 111 77 58 89 36 32 223 66 6 74
1211170 62 197 169 110 130 41 61 234 102 234 92 145 133 155 201 14 243 208 200 36
121248 21 166 1 40 109 178 147 ^
1213522 0 179 196 200 34 251 241 156 51 23 75 118 41 193 202 90 93 236 125 242 125
1214101 151 130 14 218 34 106 41 197 173 55 112 37 108 211 65 174 142 136 159 22 19
1215245 127 16 19 131 101 10 133 20 104 122 126 184 227 9 187 225 208 90 230 7 131
1216105 213 121 39 137 105 95 147 45 23 216 92 35 75 114 70 205 206 34 110 12 185
1217169 111 95 6 71 29 79 203 32 195 144 161 82 64 228 92 8 104 126 74 172 223 65
1218170 194 171 140 221 36 21 164 198 5 102 211 206 148 136 18 48 25 131 215 36 162
1219161 192 142 14 214 63 141 45 141 190 86 149 219 94 182 198 115 157 252 73 203
1220173 192 115 43 226 67 85 62 172 227 13 135 190 227 123 213 231 94 178 227 150
1221161 196 90 234 210 119 124 14 104 8 100 178 109 153 167 82 201 231 98 149 215
1222146 217 179 59 174 28 133 130 159 163 248 239 9 183 254 243 71 174 24 162 165
1223163 107 10 15 46 110 8 214 204 115 39 23 79 89 6 189 3 73 85 176 198 1 154 246
1224210 115 153 49 108 207 117 209 146 103 176 53 56 172 113 10 129 72 116 126 70
1225201 3 69 114 211 202 200 171 22 247 42 139 20 218 148 132 70 83 29 75 67 199 88
1226178 113 124 155 78 2 214 67 89 33 160 246 69 118 159 167 196 204 5 216 237 212
122734 247 38 191 55 222 92 149 78 120 211 61 226 177 140 103 39 27 50 54 25 245
1228241 42 25 249 212 30 21 50 195 254 239 123 186 28 106 182 171 167 192 1 17 220
1229181 229 65 29 220 177 26 77 33 164 194 57 137 215 150 165 167 78 230 11 102 93
1230232 177 22 129 68 168 138 74 145 20 77 174 138 188 171 26 218 7 158 76 201 117
123172 120 74 35 197 59 52 83 151 20 214 177 144 51 27 46 106 37 249 185 59 56 54
1232139 16 15 160 136 14 100 37 112 182 53 170 198 119 128 240 69 4 156 161 78 116
1233240 96 207 121 157 134 99 209 36 25 135 186 1 158 194 175 111 209 32 77 147 190
1234200 175 225 235 38 195 3 187 88 205 61 89 151 134 217 206 30 162 24 166 113 128
1235103 66 253 15 50 58 228 210 5 98 8 218 152 80 35 79 62 58 224 7 17 102 207 3
1236183 140 217 65 56 168 165 22 133 16 133 157 107 128 244 12 ^
1237517 1 218 150 217 59 81 203 140 217 148 45 193 82 116 122 93 236 7 11 127 242
1238235 123 155 246 125 238 148 134 126 72 27 247 67 27 50 162 22 247 127 153 45
1239133 213 121 151 159 105 209 231 36 166 217 177 140 188 53 50 222 148 242 67 87
1240145 157 250 181 227 177 51 224 63 108 97 174 194 24 162 250 152 132 182 80 33
1241189 84 60 83 118 37 216 235 94 60 251 154 47 48 110 120 238 208 229 121 43 218
124290 91 64 110 12 40 193 111 211 117 64 170 107 35 164 76 54 141 101 4 183 53 79
124360 143 213 32 187 169 194 84 31 245 123 66 25 135 39 23 160 78 29 102 95 62 166
124420 46 135 128 244 150 246 154 76 143 105 91 172 51 27 158 103 37 108 37 79 199
124584 228 119 128 95 91 4 15 17 69 2 11 187 80 230 94 89 89 149 244 239 210 144 18
124642 48 139 215 233 179 163 252 67 255 181 167 82 56 253 98 8 42 137 103 205 144
124747 137 43 110 149 76 203 200 86 143 16 127 182 140 128 184 55 251 183 142 43 50
124854 81 232 9 212 119 236 36 106 122 182 169 223 179 26 185 57 166 80 141 130 99
1249178 24 44 191 167 219 92 6 187 140 99 89 60 54 249 42 19 44 220 5 214 63 197 30
1250164 105 180 136 41 195 26 77 116 151 219 231 204 202 1 9 15 214 231 7 40 222
1251237 206 57 255 13 131 72 224 152 72 87 85 62 255 241 36 77 27 187 229 32 79 228
1252179 223 90 62 195 115 41 106 93 87 174 26 245 152 161 20 75 4 123 184 84 120
1253178 113 234 181 78 118 66 85 230 34 251 94 178 53 139 186 138 184 223 61 193
1254200 175 107 6 38 81 114 207 227 206 146 219 3 73 197 198 200 115 238 11 98 116
1255240 152 221 146 70 201 88 58 139 126 12 189 252 96 93 176 138 16 156 51 135 99
1256118 155 49 220 233 119 68 96 64 81 143 45 222 177 111 62 58 79 31 17 218 61 253
125769 170 47 197 169 105 120 41 46 224 92 234 92 145 128 155 186 256 243 208 200
125826 48 21 156 248 40 104 178 221 175 196 196 28 249 239 150 49 23 71 114 39 191
1259196 88 87 234 121 240 123 95 151 130 10 214 34 102 35 193 171 49 112 35 104 207
126059 170 136 130 159 16 19 241 125 213 ^
1261529 1 15 127 93 2 121 8 104 114 126 176 223 1 183 225 196 90 230 3 119 93 201
1262117 39 125 97 91 147 41 19 216 80 35 75 110 58 193 198 26 98 8 185 161 103 95
1263257 71 21 71 199 24 183 144 149 74 52 228 88 255 96 114 66 172 215 61 166 190
1264167 128 209 36 13 152 186 256 94 199 202 136 128 10 40 21 131 203 32 162 161
1265184 142 14 210 55 141 37 129 186 78 141 215 82 170 198 107 145 244 65 195 173
1266192 103 35 214 63 81 54 164 215 1 123 182 227 111 213 227 90 170 219 150 153
1267184 82 230 202 115 124 2 100 4 96 174 109 141 155 78 201 219 90 149 215 142 213
1268167 47 162 20 133 118 155 159 248 235 9 183 246 239 59 170 20 154 161 163 99 6
126911 38 106 8 206 204 111 35 15 67 89 253 181 250 69 85 164 194 256 154 242 210
1270115 145 45 108 203 113 209 138 103 176 45 48 160 105 10 121 68 108 122 66 193
1271258 69 106 207 202 196 171 18 239 38 127 12 214 144 128 70 83 29 71 67 191 84
1272166 109 120 151 70 2 202 55 81 33 160 246 61 106 147 159 188 192 1 204 229 204
127330 247 38 187 55 222 84 145 66 112 211 53 226 173 132 99 27 15 46 46 25 241 233
127434 17 241 212 30 9 42 195 254 239 119 174 28 94 178 159 167 188 252 5 212 169
1275221 65 17 220 169 22 69 25 160 186 57 137 207 142 153 163 78 222 3 98 89 232
1276177 22 129 68 168 126 74 133 16 65 174 130 184 163 18 218 254 158 72 197 109 60
1277108 62 23 185 59 52 71 139 20 214 165 132 39 23 46 106 29 249 173 51 52 50 135
127812 15 148 136 10 100 25 100 182 49 158 190 107 124 240 57 255 156 157 74 112
1279232 96 195 113 149 134 95 197 28 13 131 182 248 154 182 167 107 205 28 73 135
1280190 188 171 217 235 30 187 254 179 76 205 49 77 143 130 205 206 26 158 12 154
1281101 120 91 66 253 3 38 46 224 198 5 94 206 144 68 27 75 50 54 224 258 9 102 199
12823 179 136 209 57 56 160 165 14 129 8 125 157 95 116 240 36 212 148 217 57 77
1283203 134 213 146 43 193 80 116 122 87 236 7 9 123 242 231 119 153 244 125 238
1284142 132 120 70 23 245 63 21 50 156 16 243 127 153 45 129 207 121 149 155 99 205
1285227 30 166 211 57 ^
1286548 0 134 188 53 47 219 148 236 58 84 142 148 247 172 224 174 45 221 63 99 97
1287171 194 15 156 250 149 132 179 71 30 183 78 54 77 118 37 207 232 94 60 248 151
128847 42 110 117 235 205 223 112 43 212 81 82 61 101 12 34 190 102 208 117 58 167
1289104 29 164 76 45 138 101 1 180 50 70 51 143 210 32 181 163 191 81 31 245 123 63
129016 135 30 17 154 75 26 93 92 62 163 14 43 129 119 244 144 240 148 70 134 105 91
1291166 42 27 155 94 28 102 31 79 199 84 225 110 128 89 85 255 9 17 60 259 5 187 74
1292224 91 83 80 146 238 233 207 138 18 39 39 133 209 230 179 154 252 64 255 175
1293158 82 50 247 89 2 33 128 100 199 135 41 131 34 107 140 67 200 197 86 140 16
1294124 176 137 122 178 52 245 174 139 37 41 48 72 226 6 206 119 233 30 100 116 173
1295160 214 173 26 176 54 160 80 135 124 93 175 24 44 191 164 210 83 257 184 140 99
129686 57 54 243 42 16 41 214 256 205 57 188 21 161 99 180 133 32 192 17 71 113 145
1297219 231 198 199 1 3 12 211 228 4 31 213 237 203 48 249 4 125 72 215 152 66 87
129876 56 252 241 33 77 24 178 229 23 76 222 176 220 84 59 186 106 38 103 93 81 165
129923 242 146 155 11 66 4 114 175 75 120 169 113 228 181 69 115 60 82 227 25 251
130085 172 47 136 186 138 184 223 61 184 191 175 107 6 29 81 114 207 221 197 137
1301216 254 73 194 192 194 109 232 11 98 107 234 143 221 146 61 195 88 55 139 120 3
1302189 249 87 87 170 132 13 147 51 132 96 109 149 49 217 233 113 62 257 90 64 78
1303137 39 216 171 111 53 58 73 28 8 215 58 250 66 170 38 197 169 102 114 41 37 218
130486 234 92 145 125 155 177 250 243 208 200 20 48 21 150 245 40 101 178 218 169
1305196 190 19 246 236 141 46 23 65 108 36 188 187 85 78 231 115 237 120 86 151 130
13064 208 34 96 26 187 168 40 112 32 98 201 50 164 127 121 159 7 19 235 122 1 14
1307126 91 118 5 104 112 126 174 222 259 182 225 193 90 230 2 116 90 198 116 39 122
130895 90 147 40 18 216 77 35 75 109 55 190 196 24 95 7 185 159 101 95 256 71 19 69
1309198 22 180 144 146 72 49 228 87 253 94 111 64 172 213 60 165 189 166 125 206 36
131011 149 183 255 92 196 201 133 126 8 38 20 131 213 ^
1311547 0 29 162 161 178 142 14 207 49 141 31 120 183 72 135 212 73 161 198 101 136
1312238 59 189 173 192 94 29 205 60 78 48 158 206 254 114 176 227 102 213 224 87
1313164 213 150 147 175 76 227 196 112 124 255 97 1 93 171 109 132 146 75 201 210
131484 149 215 139 210 158 38 153 14 133 109 152 156 248 232 9 183 240 236 50 167
131517 148 158 163 93 3 8 32 103 8 200 204 108 32 9 58 89 247 175 244 66 85 155 191
1316256 154 239 210 115 139 42 108 200 110 209 132 103 176 39 42 151 99 10 115 65
1317102 119 63 187 258 69 100 204 202 193 171 15 233 35 118 6 211 141 125 70 83 29
131868 67 185 81 157 106 117 148 64 2 193 46 75 33 160 246 55 97 138 153 182 183
1319260 195 223 198 27 247 38 184 55 222 78 142 57 106 211 47 226 170 126 96 18 6
132043 40 25 238 227 28 11 235 212 30 36 195 254 239 116 165 28 85 175 150 167 185
1321249 258 206 160 215 65 8 220 163 19 63 19 157 180 57 137 201 136 144 160 78 216
1322259 95 86 232 177 22 129 68 168 117 74 124 13 56 174 124 181 157 12 218 248 158
132369 194 103 51 99 53 14 176 59 52 62 130 20 214 156 123 30 20 46 106 23 249 164
132445 49 47 132 9 15 139 136 7 100 16 91 182 46 149 184 98 121 240 48 252 156 154
132571 109 226 96 186 107 143 134 92 188 22 4 128 179 242 151 173 161 104 202 25 70
1326126 190 179 168 211 235 24 181 251 173 67 205 40 68 137 127 196 206 23 155 3
1327145 92 114 82 66 253 256 29 37 221 189 5 91 256 197 138 59 21 72 41 51 224 255
13283 102 193 3 176 133 203 51 56 154 165 8 126 2 119 157 86 107 237 33 203 145 217
132954 71 203 125 207 143 40 193 77 116 122 78 236 7 6 117 242 225 113 150 241 125
1330238 133 129 111 67 17 242 57 12 50 147 7 237 127 153 45 123 198 121 146 149 90
1331199 221 21 166 202 162 130 188 53 45 217 148 232 52 82 140 142 245 166 222 172
133241 219 63 93 97 169 194 9 152 250 147 132 177 65 28 179 74 50 73 118 37 201 230
133394 60 246 149 47 38 110 115 233 203 219 106 43 208 75 76 59 95 12 30 188 96 206
1334117 54 165 102 25 164 76 39 136 101 261 178 48 64 45 143 208 32 177 159 189 79
133531 245 123 61 10 135 24 13 150 73 24 87 90 62 161 10 41 125 209 ^
1336542 1 244 136 232 140 62 122 105 91 158 30 27 151 82 16 94 23 79 199 84 221 98
1337128 81 77 247 1 17 48 259 261 187 66 216 87 75 68 142 230 225 203 130 18 35 27
1338125 201 226 179 142 252 60 255 167 146 82 42 239 77 258 21 116 96 191 123 33
1339123 22 103 128 55 196 193 86 136 16 120 168 133 114 170 48 237 162 135 29 29 40
134060 218 2 198 119 229 22 92 108 161 148 202 165 26 164 50 152 80 127 116 85 171
134124 44 191 160 198 71 249 180 140 99 82 53 54 235 42 12 37 206 248 193 49 176 9
1342157 91 180 129 20 188 5 63 109 137 219 231 190 195 1 259 8 207 224 19 201 237
1343199 36 241 256 117 72 203 152 58 87 64 48 248 241 29 77 20 166 229 11 72 214
1344172 216 76 55 174 94 34 99 93 73 153 19 238 138 147 263 54 4 102 163 63 120 157
1345113 220 181 57 111 52 78 223 13 251 73 164 39 132 186 138 184 223 61 172 179
1346175 107 6 17 81 114 207 213 185 125 212 246 73 190 184 186 101 224 11 98 95 226
1347131 221 146 49 187 88 51 139 112 255 189 245 75 79 162 124 9 135 51 128 92 97
1348141 49 213 233 105 54 257 82 64 74 129 31 208 163 111 41 58 65 24 260 211 54
1349246 62 170 26 197 169 98 106 41 25 210 78 234 92 145 121 155 165 242 243 208
1350200 12 48 21 142 241 40 97 178 214 161 196 182 7 242 232 129 42 23 57 100 32
1351184 175 81 66 227 107 233 116 74 151 130 260 200 34 88 14 179 164 28 112 28 90
1352193 38 156 115 109 159 259 19 227 118 253 10 122 83 256 106 257 104 104 126 166
1353218 255 178 225 181 90 230 262 104 78 186 112 39 110 87 86 147 36 14 216 65 35
135475 105 43 178 188 16 83 3 185 151 93 95 252 71 11 61 194 14 168 144 134 64 37
1355228 83 245 86 99 56 172 205 56 161 185 162 113 194 36 3 137 171 251 84 184 197
1356121 118 30 16 131 188 27 162 161 174 142 14 205 45 141 27 114 181 68 131 210 67
1357155 198 97 130 234 55 185 173 192 88 25 199 58 76 44 154 200 250 108 172 227 96
1358213 222 85 160 209 150 143 169 72 225 192 110 124 251 95 263 91 169 109 126 140
135973 201 204 80 149 215 137 208 152 32 147 10 133 103 150 154 248 230 9 183 236
1360234 44 165 15 144 156 163 89 1 6 28 101 8 196 204 106 164 ^
1361567 0 1 46 89 239 167 236 62 85 143 187 256 154 235 210 115 131 38 108 196 106
1362209 124 103 176 31 34 139 91 10 107 61 94 115 59 179 258 69 92 200 202 189 171
136311 225 31 106 264 207 137 121 70 83 29 64 67 177 77 145 102 113 144 56 2 181 34
136467 33 160 246 47 85 126 145 174 171 260 183 215 190 23 247 38 180 55 222 70 138
136545 98 211 39 226 166 118 92 6 260 39 32 25 234 219 20 3 227 212 30 254 28 195
1366254 239 112 153 28 73 171 138 167 181 245 250 198 148 207 65 262 220 155 15 55
136711 153 172 57 137 193 128 132 156 78 208 255 91 82 232 177 22 129 68 168 105 74
1368112 9 44 174 116 177 149 4 218 240 158 65 190 95 39 87 41 2 164 59 52 50 118 20
1369214 144 111 18 16 46 106 15 249 152 37 45 43 128 5 15 127 136 3 100 4 79 182 42
1370137 176 86 117 240 36 248 156 150 67 105 218 96 174 99 135 134 88 176 14 258
1371124 175 234 147 161 153 100 198 21 66 114 190 167 164 203 235 16 173 247 165 55
1372205 28 56 129 123 184 206 19 151 257 133 80 106 70 66 253 248 17 25 217 177 5
137387 252 185 130 47 13 68 29 47 224 251 261 102 185 3 172 129 195 43 56 146 165
1374122 260 111 157 74 95 233 29 191 141 217 50 63 203 113 199 139 36 193 73 116
1375122 66 236 7 2 109 242 217 105 146 237 125 238 121 125 99 63 9 238 49 50 135
1376261 229 127 153 45 115 186 121 142 141 78 191 213 9 166 190 150 122 188 53 41
1377213 148 224 40 78 136 130 241 154 218 168 33 215 63 81 97 165 194 263 144 250
1378143 132 173 53 24 171 66 42 65 118 37 189 226 94 60 242 145 47 30 110 111 229
1379199 211 94 43 200 63 64 55 83 12 22 184 84 202 117 46 161 98 17 164 76 27 132
1380101 261 174 44 52 33 143 204 32 169 151 185 75 31 245 123 57 264 135 12 5 142
138169 20 75 86 62 157 2 37 117 101 244 132 228 136 58 116 105 91 154 24 27 149 76
138210 90 19 79 199 84 219 92 128 77 73 243 263 17 42 259 259 187 62 212 85 71 62
1383140 226 221 201 126 18 33 21 121 197 224 179 136 252 58 255 163 140 82 38 235
138471 256 15 110 94 187 117 29 119 16 101 122 49 194 191 86 134 16 118 164 131 110
1385166 46 233 156 133 25 23 36 54 214 194 119 227 18 88 104 155 142 196 161 26 158
138648 148 80 123 112 81 169 24 44 191 158 192 65 245 178 140 223 ^
1387551 1 78 49 54 227 42 8 33 198 240 181 41 164 265 153 83 180 125 8 184 261 55
1388105 129 219 231 182 191 1 255 4 203 220 264 7 189 237 195 24 233 248 109 72 191
1389152 50 87 52 40 244 241 25 77 16 154 229 267 68 206 168 212 68 51 162 82 30 95
139093 65 141 15 234 130 139 255 42 4 90 151 51 120 145 113 212 181 45 107 44 74
1391219 1 251 61 156 31 128 186 138 184 223 61 160 167 175 107 6 5 81 114 207 205
1392173 113 208 238 73 186 176 178 93 216 11 98 83 218 119 221 146 37 179 88 47 139
1393104 247 189 241 63 71 154 116 5 123 51 124 88 85 133 49 209 233 97 46 257 74 64
139470 121 23 200 155 111 29 58 57 20 252 207 50 242 58 170 14 197 169 94 98 41 13
1395202 70 234 92 145 117 155 153 234 243 208 200 4 48 21 134 237 40 93 178 210 153
1396196 174 263 238 228 117 38 23 49 92 28 180 163 77 54 223 99 229 112 62 151 130
1397256 192 34 80 2 171 160 16 112 24 82 185 26 148 103 97 159 251 19 219 114 245 6
1398118 75 252 94 249 104 96 126 158 214 251 174 225 169 90 230 262 92 66 174 108
139939 98 79 82 147 32 10 216 53 35 75 101 31 166 180 8 71 267 185 143 85 95 248 71
14003 53 190 6 156 144 122 56 25 228 79 237 78 87 48 172 197 52 157 181 158 101 182
140136 263 125 159 247 76 172 193 109 110 260 22 12 131 176 23 162 161 166 142 14
1402201 37 141 19 102 177 60 123 206 55 143 198 89 118 226 47 177 173 192 76 17 187
140354 72 36 146 188 242 96 164 227 84 213 218 81 152 201 150 135 157 64 221 184
1404106 124 243 91 263 87 165 109 114 128 69 201 192 72 149 215 133 204 140 20 135
14052 133 91 146 150 248 226 9 183 228 230 32 161 11 136 152 163 81 265 2 20 97 8
1406188 204 102 26 265 40 89 235 163 232 60 85 137 185 256 154 233 210 115 127 36
1407108 194 104 209 120 103 176 27 30 133 87 10 103 59 90 113 57 175 258 69 88 198
1408202 187 171 9 221 29 100 262 205 135 119 70 83 29 62 67 173 75 139 100 111 142
140952 2 175 28 63 33 160 246 43 79 120 141 170 165 260 177 211 186 21 247 38 178
141055 222 66 136 39 94 211 35 226 164 114 90 256 37 28 25 232 215 16 267 223 212
141130 250 24 195 254 239 110 147 28 67 169 132 167 179 243 246 194 142 203 65 263 ^
1412578 0 220 147 11 47 3 149 164 57 137 185 120 120 152 78 200 251 87 78 232 177
141322 129 68 168 93 74 100 5 32 174 108 173 141 266 218 232 158 61 186 87 27 75 29
1414260 152 59 52 38 106 20 214 132 99 6 12 46 106 7 249 140 29 41 39 124 1 15 115
1415136 269 100 262 67 182 38 125 168 74 113 240 24 244 156 146 63 101 210 96 162
141691 127 134 84 164 6 250 120 171 226 143 149 145 96 194 17 62 102 190 155 160
1417195 235 8 165 243 157 43 205 16 44 121 119 172 206 15 147 249 121 68 98 58 66
1418253 240 5 13 213 165 5 83 248 173 122 35 5 64 17 43 224 247 257 102 177 3 168
1419125 187 35 56 138 165 262 118 256 103 157 62 83 229 25 179 137 217 46 55 203
1420101 191 135 32 193 69 116 122 54 236 7 268 101 242 209 97 142 233 125 238 109
1421121 87 59 1 234 41 258 50 123 253 221 127 153 45 107 174 121 138 133 66 183 205
1422267 166 178 138 114 188 53 37 209 148 216 28 74 132 118 237 142 214 164 25 211
142363 69 97 161 194 255 136 250 139 132 169 41 20 163 58 34 57 118 37 177 222 94
142460 238 141 47 22 110 107 225 195 203 82 43 192 51 52 51 71 12 14 180 72 198 117
142538 157 94 9 164 76 15 128 101 261 170 40 40 21 143 200 32 161 143 181 71 31 245
1426123 53 256 135 267 134 65 16 63 82 62 153 264 33 109 89 244 124 220 128 50 104
1427105 91 146 12 27 145 64 268 82 11 79 199 84 215 80 128 69 65 235 259 17 30 259
1428255 187 54 204 81 63 50 136 218 213 197 118 18 29 9 113 189 220 179 124 252 54
1429255 155 128 82 30 227 59 252 3 98 90 179 105 21 111 4 97 110 37 190 187 86 130
143016 114 156 127 102 158 42 225 144 129 17 11 28 42 206 266 186 119 223 10 80 96
1431143 130 184 153 26 146 44 140 80 115 104 73 165 24 44 191 154 180 53 237 174
1432140 99 76 47 54 223 42 6 31 194 236 175 37 158 261 151 79 180 123 2 182 257 51
1433103 125 219 231 178 189 1 253 2 201 218 264 1 183 237 193 18 229 244 105 72 185
1434152 46 87 46 36 242 241 23 77 14 148 229 263 66 202 166 210 64 49 156 76 28 93
143593 61 135 13 232 126 135 251 36 4 84 145 45 120 139 113 208 181 39 105 40 72
1436217 265 251 55 152 27 126 186 138 184 223 61 154 161 175 107 6 269 81 114 207
1437201 167 107 206 234 73 184 172 174 89 212 11 98 77 214 113 221 146 31 175 88 45
1438139 100 243 189 213 ^
1439578 1 51 63 146 108 1 111 51 120 84 73 125 49 205 233 89 38 257 66 64 66 113 15
1440192 147 111 17 58 49 16 244 203 46 238 54 170 2 197 169 90 90 41 1 194 62 234
144192 145 113 155 141 226 243 208 200 268 48 21 126 233 40 89 178 206 145 196 166
1442255 234 224 105 34 23 41 84 24 176 151 73 42 219 91 225 108 50 151 130 252 184
144334 72 262 163 156 4 112 20 74 177 14 140 91 85 159 243 19 211 110 237 2 114 67
1444248 82 241 104 88 126 150 210 247 170 225 157 90 230 262 80 54 162 104 39 86 71
144578 147 28 6 216 41 35 75 97 19 154 172 59 267 185 135 77 95 244 71 267 45 186
1446270 144 144 110 48 13 228 75 229 70 75 40 172 189 48 153 177 154 89 170 36 259
1447113 147 243 68 160 189 97 102 256 14 8 131 164 19 162 161 158 142 14 197 29 141
144811 90 173 52 115 202 43 131 198 81 106 218 39 169 173 192 64 9 175 50 68 28 138
1449176 234 84 156 227 72 213 214 77 144 193 150 127 145 56 217 176 102 124 235 87
1450263 83 161 109 102 116 65 201 180 64 149 215 129 200 128 8 123 266 133 79 142
1451146 248 222 9 183 220 226 20 157 7 128 148 163 73 265 270 12 93 8 180 204 98 22
1452261 28 89 227 155 224 56 85 125 181 256 154 229 210 115 119 32 108 190 100 209
1453112 103 176 19 22 121 79 10 95 55 82 109 53 167 258 69 80 194 202 183 171 5 213
145425 88 258 201 131 115 70 83 29 58 67 165 71 127 96 107 138 44 2 163 16 55 33
1455160 246 35 67 108 133 162 153 260 165 203 178 17 247 38 174 55 222 58 132 27 86
1456211 27 226 160 106 86 260 248 33 20 25 228 207 8 263 215 212 30 242 16 195 254
1457239 106 135 28 55 165 120 167 175 239 238 186 130 195 65 250 220 143 9 43 271
1458147 160 57 137 181 116 114 150 78 196 249 85 76 232 177 22 129 68 168 87 74 94
14593 26 174 104 171 137 264 218 228 158 59 184 83 21 69 23 256 146 59 52 32 100 20
1460214 126 93 10 46 106 3 249 134 25 39 37 122 271 15 109 136 269 100 258 61 182
146136 119 164 68 111 240 18 242 156 144 61 99 206 96 156 87 123 134 82 158 2 246
1462118 169 222 141 143 141 94 192 15 60 96 190 149 158 191 235 4 161 241 153 37
1463205 10 38 117 117 166 206 13 145 245 115 62 94 52 66 253 236 271 7 211 159 5 81
1464246 167 118 29 1 62 11 41 224 245 255 102 173 3 166 123 183 31 56 134 165 260
1465116 254 81 ^
1466583 1 157 50 71 225 21 167 133 217 42 47 203 89 183 131 28 193 65 116 122 42
1467236 7 268 93 242 201 89 138 229 125 238 97 117 75 55 267 230 33 250 50 111 245
1468213 127 153 45 99 162 121 134 125 54 175 197 259 166 166 126 106 188 53 33 205
1469148 208 16 70 128 106 233 130 210 160 17 207 63 57 97 157 194 247 128 250 135
1470132 165 29 16 155 50 26 49 118 37 165 218 94 60 234 137 47 14 110 103 221 191
1471195 70 43 184 39 40 47 59 12 6 176 60 194 117 30 153 90 1 164 76 3 124 101 261
1472166 36 28 9 143 196 32 153 135 177 67 31 245 123 49 248 135 262 263 126 61 12
147351 78 62 149 260 29 101 77 244 116 212 120 42 92 105 91 138 27 141 52 260 74 3
147479 199 84 211 68 128 61 57 227 255 17 18 259 251 187 46 196 77 55 38 132 210
1475205 193 110 18 25 271 105 181 216 179 112 252 50 255 147 116 82 22 219 47 248
1476265 86 86 171 93 13 103 266 93 98 25 186 183 86 126 16 110 148 123 94 150 38
1477217 132 125 9 273 20 30 198 266 178 119 219 2 72 88 131 118 172 145 26 134 40
1478132 80 107 96 65 161 24 44 191 150 168 41 229 170 140 99 72 43 54 215 42 2 27
1479186 228 163 29 146 253 147 71 180 119 264 178 249 43 99 117 219 231 170 185 1
1480249 272 197 214 264 263 171 237 189 6 221 236 97 72 173 152 38 87 34 28 238 241
148119 77 10 136 229 255 62 194 162 206 56 45 144 64 24 89 93 53 123 9 228 118 127
1482243 24 4 72 133 33 120 127 113 200 181 27 101 32 68 213 257 251 43 144 19 122
1483186 138 184 223 61 142 149 175 107 6 261 81 114 207 193 155 95 202 226 73 180
1484164 166 81 204 11 98 65 206 101 221 146 19 167 88 41 139 92 235 189 235 45 59
1485142 104 273 105 51 118 82 67 121 49 203 233 85 34 257 62 64 64 109 11 188 143
1486111 11 58 45 14 240 201 44 236 52 170 270 197 169 88 86 41 269 190 58 234 92
1487145 111 155 135 222 243 208 200 266 48 21 122 231 40 87 178 204 141 196 162 251
1488232 222 99 32 23 37 80 22 174 145 71 36 217 87 223 106 44 151 130 250 180 34 68
1489258 159 154 272 112 18 70 173 8 136 85 79 159 239 19 207 108 233 112 63 246 76
1490237 104 84 126 146 208 245 168 225 151 90 230 262 74 48 156 102 39 80 67 76 147
149126 4 216 35 35 75 95 13 148 168 270 53 267 185 131 73 95 242 71 265 41 184 268
1492138 144 104 44 7 228 73 225 66 69 36 272 ^
1493588 0 181 44 149 173 150 77 158 36 255 101 135 239 60 148 185 85 94 252 6 4 131
1494152 15 162 161 150 142 14 193 21 141 3 78 169 44 107 198 31 119 198 73 94 210
149531 161 173 192 52 1 163 46 64 20 130 164 226 72 148 227 60 213 210 73 136 185
1496150 119 133 48 213 168 98 124 227 83 263 79 157 109 90 104 61 201 168 56 149
1497215 125 196 116 272 111 262 133 67 138 142 248 218 9 183 212 222 8 153 3 120
1498144 163 65 265 270 4 89 8 172 204 94 18 257 16 89 219 147 216 52 85 113 177 256
1499154 225 210 115 111 28 108 186 96 209 104 103 176 11 14 109 71 10 87 51 74 105
150049 159 258 69 72 190 202 179 171 1 205 21 76 254 197 127 111 70 83 29 54 67 157
150167 115 92 103 134 36 2 151 4 47 33 160 246 27 55 96 125 154 141 260 153 195 170
150213 247 38 170 55 222 50 128 15 78 211 19 226 156 98 82 252 240 29 12 25 224 199
1503259 207 212 30 234 8 195 254 239 102 123 28 43 161 108 167 171 235 230 178 118
1504187 65 242 220 135 5 35 267 143 152 57 137 173 108 102 146 78 188 245 81 72 232
1505177 22 129 68 168 75 74 82 275 14 174 96 167 129 260 218 220 158 55 180 75 9 57
150611 248 134 59 52 20 88 20 214 114 81 264 6 46 106 271 249 122 17 35 33 118 271
150715 97 136 269 100 250 49 182 32 107 156 56 107 240 6 238 156 140 57 95 198 96
1508144 79 115 134 78 146 270 238 114 165 214 137 131 133 90 188 11 56 84 190 137
1509154 183 235 272 153 237 145 25 205 274 26 109 113 154 206 9 141 237 103 50 86
151040 66 253 228 263 271 207 147 5 77 242 155 110 17 269 58 275 37 224 241 251 102
1511165 3 162 119 175 23 56 126 165 256 112 250 91 157 44 65 223 19 161 131 217 40
151243 203 83 179 129 26 193 63 116 122 36 236 7 268 89 242 197 85 136 227 125 238
151391 115 69 53 265 228 29 246 50 105 241 209 127 153 45 95 156 121 132 121 48 171
1514193 255 166 160 120 102 188 53 31 203 148 204 10 68 126 100 231 124 208 158 13
1515205 63 51 97 155 194 243 124 250 133 132 163 23 14 151 46 22 45 118 37 159 216
151694 60 232 135 47 10 110 101 219 189 191 64 43 180 33 34 45 53 12 2 174 54 192
1517117 26 151 88 273 164 76 273 122 101 261 164 34 22 3 143 194 32 149 131 175 65
151831 245 123 47 244 135 258 261 122 59 10 45 76 62 147 258 27 97 71 244 112 208
1519116 38 86 105 91 134 270 27 139 46 256 70 275 79 199 160 ^
1520594 0 207 56 128 53 49 219 251 17 6 259 247 187 38 188 73 47 26 128 202 197 189
1521102 18 21 263 97 173 212 179 100 252 46 255 139 104 82 14 211 35 244 257 74 82
1522163 81 5 95 258 89 86 13 182 179 86 122 16 106 140 119 86 142 34 209 120 121 1
1523265 12 18 190 266 170 119 215 272 64 80 119 106 160 137 26 122 36 124 80 99 88
152457 157 24 44 191 146 156 29 221 166 140 99 68 39 54 207 42 276 23 178 220 151
152521 134 245 143 63 180 115 256 174 241 35 95 109 219 231 162 181 1 245 272 193
1526210 264 255 159 237 185 272 213 228 89 72 161 152 30 87 22 20 234 241 15 77 6
1527124 229 247 58 186 158 202 48 41 132 52 20 85 93 45 111 5 224 110 119 235 12 4
152860 121 21 120 115 113 192 181 15 97 24 64 209 249 251 31 136 11 118 186 138 184
1529223 61 130 137 175 107 6 253 81 114 207 185 143 83 198 218 73 176 156 158 73
1530196 11 98 53 198 89 221 146 7 159 88 37 139 84 227 189 231 33 51 134 96 273 93
153151 114 78 55 113 49 199 233 77 26 257 54 64 60 101 3 180 135 111 277 58 37 10
1532232 197 40 232 48 170 262 197 169 84 78 41 261 182 50 234 92 145 107 155 123
1533214 243 208 200 262 48 21 114 227 40 83 178 200 133 196 154 243 228 218 87 28
153423 29 72 18 170 133 67 24 213 79 219 102 32 151 130 246 172 34 60 250 151 150
1535264 112 14 62 165 274 128 73 67 159 231 19 199 104 225 274 108 55 242 64 229
1536104 76 126 138 204 241 164 225 139 90 230 262 62 36 144 98 39 68 59 72 147 22
1537216 23 35 75 91 1 136 160 266 41 267 185 123 65 95 238 71 261 33 180 264 126
1538144 92 36 273 228 69 217 58 57 28 172 177 42 147 171 148 71 152 36 253 95 129
1539237 56 142 183 79 90 250 2 2 131 146 13 162 161 146 142 14 191 17 141 277 72
1540167 40 103 196 25 113 198 69 88 206 27 157 173 192 46 275 157 44 62 16 126 158
1541222 66 144 227 54 213 208 71 132 181 150 115 127 44 211 164 96 124 223 81 263
154277 155 109 84 98 59 201 162 52 149 215 123 194 110 268 105 260 133 61 136 140
1543248 216 9 183 208 220 2 151 1 116 142 163 61 265 270 87 8 168 204 92 16 255 10
154489 215 143 212 50 85 107 175 256 154 223 210 115 107 26 108 184 94 209 100 103
1545176 7 10 103 67 10 83 49 70 103 47 155 258 69 68 188 202 177 171 277 201 19 70
1546252 195 125 109 70 83 29 52 67 153 65 109 90 101 132 32 2 145 276 43 33 160 246
154723 259 ^
1548600 1 87 119 148 132 260 144 189 164 10 247 38 167 55 222 44 125 6 72 211 13
1549226 153 92 79 246 234 26 6 25 221 193 273 256 201 212 30 228 2 195 254 239 99
1550114 28 34 158 99 167 168 232 224 172 109 181 65 236 220 129 2 29 264 140 146 57
1551137 167 102 93 143 78 182 242 78 69 232 177 22 129 68 168 66 74 73 275 5 174 90
1552164 123 257 218 214 158 52 177 69 48 2 242 125 59 52 11 79 20 214 105 72 258 3
155346 106 268 249 113 11 32 30 115 271 15 88 136 269 100 244 40 182 29 98 150 47
1554104 240 276 235 156 137 54 92 192 96 135 73 109 134 75 137 267 232 111 162 208
1555134 122 127 87 185 8 53 75 190 128 151 177 235 269 147 234 139 16 205 268 17
1556103 110 145 206 6 138 231 94 41 80 31 66 253 222 257 265 204 138 5 74 239 146
1557104 8 266 55 269 34 224 238 248 102 159 3 159 116 169 17 56 120 165 253 109 247
155885 157 35 56 220 16 152 128 217 37 37 203 74 173 126 23 193 60 116 122 27 236 7
1559268 83 242 191 79 133 224 125 238 82 112 60 50 262 225 23 240 50 96 235 203 127
1560153 45 89 147 121 129 115 39 165 187 249 166 151 111 96 188 53 28 200 148 198 1
156165 123 91 228 115 205 155 7 202 63 42 97 152 194 237 118 250 130 132 160 14 11
1562145 40 16 39 118 37 150 213 94 60 229 132 47 4 110 98 216 186 185 55 43 174 24
156325 42 44 12 275 171 45 189 117 20 148 85 270 164 76 267 119 101 261 161 31 13
1564273 143 191 32 143 125 172 62 31 245 123 44 238 135 252 258 116 56 7 36 73 62
1565144 255 24 91 62 244 106 202 110 32 77 105 91 128 264 27 136 37 250 64 272 79
1566199 84 206 53 128 51 47 217 250 17 3 259 246 187 36 186 72 45 23 127 200 195
1567188 100 18 20 261 95 171 211 179 97 252 45 255 137 101 82 12 209 32 243 255 71
156881 161 78 3 93 256 88 83 10 181 178 86 121 16 105 138 118 84 140 33 207 117 120
1569278 263 10 15 188 266 168 119 214 271 62 78 116 103 157 135 26 119 35 122 80 97
157086 55 156 24 44 191 145 153 26 219 165 140 99 67 38 54 205 42 276 22 176 218
1571148 19 131 243 142 61 180 114 254 173 239 33 94 107 219 231 160 180 1 244 272
1572192 209 264 253 156 237 184 270 211 226 87 72 158 152 28 87 19 18 233 241 14 77
15735 121 229 245 57 184 157 201 46 40 129 49 19 84 93 43 108 4 223 108 117 233 9 4
157457 118 18 120 112 113 190 181 12 96 22 63 208 247 251 28 134 9 117 186 138 184
1575223 61 127 216 ^
1576590 1 175 107 6 247 81 114 207 179 134 74 195 212 73 173 150 152 67 190 11 98
157744 192 80 221 146 279 153 88 34 139 78 221 189 228 24 45 128 90 273 84 51 111
157875 46 107 49 196 233 71 20 257 48 64 57 95 278 174 129 111 271 58 31 7 226 194
157937 229 45 170 256 197 169 81 72 41 255 176 44 234 92 145 104 155 114 208 243
1580208 200 259 48 21 108 224 40 80 178 197 127 196 148 237 225 215 78 25 23 23 66
158115 167 124 64 15 210 73 216 99 23 151 130 243 166 34 54 244 145 147 258 112 11
158256 159 268 122 64 58 159 225 19 193 101 219 274 105 49 239 55 223 104 70 126
1583132 201 238 161 225 130 90 230 262 53 27 135 95 39 59 53 69 147 19 278 216 14
158435 75 88 273 127 154 263 32 267 185 117 59 95 235 71 258 27 177 261 117 144 83
158530 267 228 66 211 52 48 22 172 171 39 144 168 145 62 143 36 250 86 120 234 50
1586133 180 70 84 247 277 280 131 137 10 162 161 140 142 14 188 11 141 274 63 164
158734 97 193 16 104 198 63 79 200 21 151 173 192 37 272 148 41 59 10 120 149 216
158857 138 227 45 213 205 68 126 175 150 109 118 38 208 158 93 124 217 78 263 74
1589152 109 75 89 56 201 153 46 149 215 120 191 101 262 96 257 133 52 133 137 248
1590213 9 183 202 217 274 148 279 110 139 163 55 265 270 275 84 8 162 204 89 13 252
15911 89 209 137 206 47 85 98 172 256 154 220 210 115 101 23 108 181 91 209 94 103
1592176 1 4 94 61 10 77 46 64 100 44 149 258 69 62 185 202 174 171 277 195 16 61
1593249 192 122 106 70 83 29 49 67 147 62 100 87 98 129 26 2 136 270 37 33 160 246
159417 40 81 115 144 126 260 138 185 160 8 247 38 165 55 222 40 123 68 211 9 226
1595151 88 77 242 230 24 2 25 219 189 271 254 197 212 30 224 279 195 254 239 97 108
159628 28 156 93 167 166 230 220 168 103 177 65 232 220 125 25 262 138 142 57 137
1597163 98 87 141 78 178 240 76 67 232 177 22 129 68 168 60 74 67 275 280 174 86
1598162 119 255 218 210 158 50 175 65 275 42 277 238 119 59 52 5 73 20 214 99 66
1599254 1 46 106 266 249 107 7 30 28 113 271 15 82 136 269 100 240 34 182 27 92 146
160041 102 240 272 233 156 135 52 90 188 96 129 69 105 134 73 131 265 228 109 160
1601204 132 116 123 85 183 6 51 69 190 122 149 173 235 267 143 232 135 10 205 264
160211 99 108 139 206 4 136 227 88 35 76 25 66 253 218 253 261 202 132 5 72 237 140
1603203 ^
1604620 0 279 262 51 261 30 224 234 244 102 151 3 155 112 161 9 56 112 165 249 105
1605243 77 157 23 44 216 12 140 124 217 33 29 203 62 165 122 19 193 56 116 122 15
1606236 7 268 75 242 183 71 129 220 125 238 70 108 48 46 258 221 15 232 50 84 227
1607195 127 153 45 81 135 121 125 107 27 157 179 241 166 139 99 88 188 53 24 196
1608148 190 272 61 119 79 224 103 201 151 282 198 63 30 97 148 194 229 110 250 126
1609132 156 2 7 137 32 8 31 118 37 138 209 94 60 225 128 47 279 110 94 212 182 177
161043 43 166 12 13 38 32 12 271 167 33 185 117 12 144 81 266 164 76 259 115 101
1611261 157 27 1 265 143 187 32 135 117 168 58 31 245 123 40 230 135 244 254 108 52
16123 24 69 62 140 251 20 83 50 244 98 194 102 24 65 105 91 120 256 27 132 25 242
161356 268 79 199 84 202 41 128 43 39 209 246 17 274 259 242 187 28 178 68 37 11
1614123 192 187 184 92 18 16 253 87 163 207 179 85 252 41 255 129 89 82 4 201 20
1615239 247 59 77 153 66 278 85 248 84 71 281 177 174 86 117 16 101 130 114 76 132
161629 199 105 116 274 255 2 3 180 266 160 119 210 267 54 70 104 91 145 127 26 107
161731 114 80 89 78 47 152 24 44 191 141 141 14 211 161 140 99 63 34 54 197 42 276
161818 168 210 136 11 119 235 138 53 180 110 246 169 231 25 90 99 219 231 152 176 1
1619240 272 188 205 264 245 144 237 180 262 203 218 79 72 146 152 20 87 7 10 229
1620241 10 77 1 109 229 237 53 176 153 197 38 36 117 37 15 80 93 35 96 219 100 109
1621225 280 4 45 106 6 120 100 113 182 181 92 14 59 204 239 251 16 126 1 113 186
1622138 184 223 61 115 122 175 107 6 243 81 114 207 175 128 68 193 208 73 171 146
1623148 63 186 11 98 38 188 74 221 146 275 149 88 32 139 74 217 189 226 18 41 124
162486 273 78 51 109 73 40 103 49 194 233 67 16 257 44 64 55 91 276 170 125 111 267
162558 27 5 222 192 35 227 43 170 252 197 169 79 68 41 251 172 40 234 92 145 102
1626155 108 204 243 208 200 257 48 21 104 222 40 78 178 195 123 196 144 233 223 213
162772 23 23 19 62 13 165 118 62 9 208 69 214 97 17 151 130 241 162 34 50 240 141
1628145 254 112 9 52 155 264 118 58 52 159 221 19 189 99 215 274 103 45 237 49 219
1629104 66 126 128 199 236 159 225 124 90 230 262 47 21 129 93 39 53 49 67 147 17
1630278 216 8 35 75 86 269 121 150 261 26 267 185 113 55 95 233 71 256 23 175 259
1631111 144 77 26 263 228 64 207 48 42 18 172 167 37 142 166 143 56 137 36 248 80
1632114 232 46 127 257 ^
1633605 1 58 76 243 273 280 131 125 6 162 161 132 142 14 184 3 141 270 51 160 26 89
1634189 4 92 198 55 67 192 13 143 173 192 25 268 136 37 55 2 112 137 208 45 130 227
163533 213 201 64 118 167 150 101 106 30 204 150 89 124 209 74 263 70 148 109 63 77
163652 201 141 38 149 215 116 187 89 254 84 253 133 40 129 133 248 209 9 183 194
1637213 266 144 279 102 135 163 47 265 270 271 80 8 154 204 85 9 248 274 89 201 129
1638198 43 85 86 168 256 154 216 210 115 93 19 108 177 87 209 86 103 176 278 281 82
163953 10 69 42 56 96 40 141 258 69 54 181 202 170 171 277 187 12 49 245 188 118
1640102 70 83 29 45 67 139 58 88 83 94 125 18 2 124 262 29 33 160 246 9 28 69 107
1641136 114 260 126 177 152 4 247 38 161 55 222 32 119 273 60 211 1 226 147 80 73
1642234 222 20 279 25 215 181 267 250 189 212 30 216 275 195 254 239 93 96 28 16
1643152 81 167 162 226 212 160 91 169 65 224 220 117 281 17 258 134 134 57 137 155
164490 75 137 78 170 236 72 63 232 177 22 129 68 168 48 74 55 275 272 174 78 158
1645111 251 218 202 158 46 171 57 267 30 269 230 107 59 52 278 61 20 214 87 54 246
1646282 46 106 262 249 95 284 26 24 109 271 15 70 136 269 100 232 22 182 23 80 138
164729 98 240 264 229 156 131 48 86 180 96 117 61 97 134 69 119 261 220 105 156 196
1648128 104 115 81 179 2 47 57 190 110 145 165 235 263 135 228 127 283 205 256 284
164991 104 127 206 132 219 76 23 68 13 66 253 210 245 253 198 120 5 68 233 128 92
1650275 260 49 257 28 224 232 242 102 147 3 153 110 157 5 56 108 165 247 103 241 73
1651157 17 38 214 10 134 122 217 31 25 203 56 161 120 17 193 54 116 122 9 236 7 268
165271 242 179 67 127 218 125 238 64 106 42 44 256 219 11 228 50 78 223 191 127 153
165345 77 129 121 123 103 21 153 175 237 166 133 93 84 188 53 22 194 148 186 268 59
1654117 73 222 97 199 149 280 196 63 24 97 146 194 225 106 250 124 132 154 281 5
1655133 28 4 27 118 37 132 207 94 60 223 126 47 277 110 92 210 180 173 37 43 162 6
16567 36 26 12 269 165 27 183 117 8 142 79 264 164 76 255 113 101 261 155 25 280
1657261 143 185 32 131 113 166 56 31 245 123 38 226 135 240 252 104 50 1 18 67 62
1658138 249 18 79 44 244 94 190 98 20 59 105 91 116 252 27 130 19 238 52 266 79 199
165984 200 35 128 39 35 205 244 17 270 259 240 187 24 174 66 33 5 121 188 183 182
166088 18 14 249 83 159 205 179 79 252 186 ^
1661615 0 255 121 77 82 283 193 8 235 239 47 73 145 54 274 77 240 80 59 273 173 170
166286 113 16 97 122 110 68 124 25 191 93 112 270 247 281 278 172 266 152 119 206
1663263 46 62 92 79 133 119 26 95 27 106 80 81 70 39 148 24 44 191 137 129 2 203
1664157 140 99 59 30 54 189 42 276 14 160 202 124 3 107 227 134 45 180 106 238 165
1665223 17 86 91 219 231 144 172 1 236 272 184 201 264 237 132 237 176 254 195 210
166671 72 134 152 12 87 282 2 225 241 6 77 284 97 229 229 49 168 149 193 30 32 105
166725 11 76 93 27 84 283 215 92 101 217 272 4 33 94 281 120 88 113 174 181 275 88
16686 55 200 231 251 4 118 280 109 186 138 184 223 61 103 110 175 107 6 235 81 114
1669207 167 116 56 189 200 73 167 138 140 55 178 11 98 26 180 62 221 146 267 141 88
167028 139 66 209 189 222 6 33 116 78 273 66 51 105 69 28 95 49 190 233 59 8 257 36
167164 51 83 272 162 117 111 259 58 19 1 214 188 31 223 39 170 244 197 169 75 60 41
1672243 164 32 234 92 145 98 155 96 196 243 208 200 253 48 21 96 218 40 74 178 191
1673115 196 136 225 219 209 60 19 23 11 54 9 161 106 58 284 204 61 210 93 5 151 130
1674237 154 34 42 232 133 141 246 112 5 44 147 256 110 46 40 159 213 19 181 95 207
1675274 99 37 233 37 211 104 58 126 120 195 232 155 225 112 90 230 262 35 9 117 89
167639 41 41 63 147 13 278 216 283 35 75 82 261 109 142 257 14 267 185 105 47 95
1677229 71 252 15 171 255 99 144 65 18 255 228 60 199 40 30 10 172 159 33 138 162
1678139 44 125 36 244 68 102 228 38 115 174 52 72 241 271 280 131 119 4 162 161 128
1679142 14 182 286 141 268 45 158 22 85 187 285 86 198 51 61 188 9 139 173 192 19
1680266 130 35 53 285 108 131 204 39 126 227 27 213 199 62 114 163 150 97 100 26
1681202 146 87 124 205 72 263 68 146 109 57 71 50 201 135 34 149 215 114 185 83 250
168278 251 133 34 127 131 248 207 9 183 190 211 262 142 279 98 133 163 43 265 270
1683269 78 8 150 204 83 7 246 270 89 197 125 194 41 85 80 166 256 154 214 210 115
168489 17 108 175 85 209 82 103 176 276 279 76 49 10 65 40 52 94 38 137 258 69 50
1685179 202 168 171 277 183 10 43 243 186 116 100 70 83 29 43 67 135 56 82 81 92
1686123 14 2 118 258 25 33 160 246 5 22 63 103 132 108 260 120 173 148 2 247 38 159
168755 222 28 117 269 56 211 284 226 145 76 71 230 218 18 277 25 213 177 265 248
1688185 212 30 212 273 195 254 239 91 90 28 10 150 75 167 160 224 175 ^
1689613 0 152 79 161 65 216 220 109 281 9 254 130 126 57 137 147 82 63 133 78 162
1690232 68 59 232 177 22 129 68 168 36 74 43 275 264 174 70 154 103 247 218 194 158
169142 167 49 259 18 261 222 95 59 52 270 49 20 214 75 42 238 282 46 106 258 249 83
1692280 22 20 105 271 15 58 136 269 100 224 10 182 19 68 130 17 94 240 256 225 156
1693127 44 82 172 96 105 53 89 134 65 107 257 212 101 152 188 124 92 107 77 175 287
169443 45 190 98 141 157 235 259 127 224 119 275 205 248 276 83 100 115 206 285 128
1695211 64 11 60 1 66 253 202 237 245 194 108 5 64 229 116 84 267 256 45 249 24 224
1696228 238 102 139 3 149 106 149 286 56 100 165 243 99 237 65 157 5 26 210 6 122
1697118 217 27 17 203 44 153 116 13 193 50 116 122 286 236 7 268 63 242 171 59 123
1698214 125 238 52 102 30 40 252 215 3 220 50 66 215 183 127 153 45 69 117 121 119
169995 9 145 167 229 166 121 81 76 188 53 18 190 148 178 260 55 113 61 218 85 195
1700145 276 192 63 12 97 142 194 217 98 250 120 132 150 273 1 125 20 285 19 118 37
1701120 203 94 60 219 122 47 273 110 88 206 176 165 25 43 154 283 284 32 14 12 265
1702161 15 179 117 138 75 260 164 76 247 109 101 261 151 21 272 253 143 181 32 123
1703105 162 52 31 245 123 34 218 135 232 248 96 46 286 6 63 62 134 245 14 71 32 244
170486 182 90 12 47 105 91 108 244 27 126 7 230 44 262 79 199 84 196 23 128 31 27
1705197 240 17 262 259 236 187 16 166 62 25 282 117 180 175 178 80 18 10 241 75 151
1706201 179 67 252 35 255 117 71 82 281 189 2 233 235 41 71 141 48 272 73 236 78 53
1707269 171 168 86 111 16 95 118 108 64 120 23 187 87 110 268 243 279 274 168 266
1708148 119 204 261 42 58 86 73 127 115 26 89 25 102 80 77 66 35 146 24 44 191 135
1709123 285 199 155 140 99 57 28 54 185 42 276 12 156 198 118 288 101 223 132 41
1710180 104 234 163 219 13 84 87 219 231 140 170 1 234 272 182 199 264 233 126 237
1711174 250 191 206 67 72 128 152 8 87 278 287 223 241 4 77 284 91 229 225 47 164
1712147 191 26 30 99 19 9 74 93 23 78 283 213 88 97 213 268 4 27 88 277 120 82 113
1713170 181 271 86 2 53 198 227 251 287 114 278 107 186 138 184 223 61 97 104 175
1714107 6 231 81 114 207 163 110 50 187 196 73 165 134 136 51 174 11 98 20 176 56
1715221 146 263 137 88 26 139 62 205 189 220 29 112 74 273 60 51 103 67 22 91 49
1716188 233 55 4 257 32 64 49 79 270 158 113 111 255 58 15 288 210 213 ^
1717624 1 28 220 36 170 238 197 169 72 54 41 237 158 26 234 92 145 95 155 87 190
1718243 208 200 250 48 21 90 215 40 71 178 188 109 196 130 219 216 206 51 16 23 5
171948 6 158 97 55 278 201 55 207 90 286 151 130 234 148 34 36 226 127 138 240 112
17202 38 141 250 104 37 31 159 207 19 175 92 201 274 96 31 230 28 205 104 52 126
1721114 192 229 152 225 103 90 230 262 26 108 86 39 32 35 60 147 10 278 216 277 35
172275 79 255 100 136 254 5 267 185 99 41 95 226 71 249 9 168 252 90 144 56 12 249
1723228 57 193 34 21 4 172 153 30 135 159 136 35 116 36 241 59 93 225 32 106 171 43
172466 238 268 280 131 110 1 162 161 122 142 14 179 283 141 265 36 155 16 79 184
1725279 77 198 45 52 182 3 133 173 192 10 263 121 32 50 282 102 122 198 30 120 227
172618 213 196 59 108 157 150 91 91 20 199 140 84 124 199 69 263 65 143 109 48 62
172747 201 126 28 149 215 111 182 74 244 69 248 133 25 124 128 248 204 9 183 184
1728208 256 139 279 92 130 163 37 265 270 266 75 8 144 204 80 4 243 264 89 191 119
1729188 38 85 71 163 256 154 211 210 115 83 14 108 172 82 209 76 103 176 273 276 67
173043 10 59 37 46 91 35 131 258 69 44 176 202 165 171 277 177 7 34 240 183 113 97
173170 83 29 40 67 129 53 73 78 89 120 8 2 109 252 19 33 160 246 289 13 54 97 126
173299 260 111 167 142 289 247 38 156 55 222 22 114 263 50 211 281 226 142 70 68
1733224 212 15 274 25 210 171 262 245 179 212 30 206 270 195 254 239 88 81 28 1 147
173466 167 157 221 202 150 76 159 65 214 220 107 281 7 253 129 124 57 137 145 80 60
1735132 78 160 231 67 58 232 177 22 129 68 168 33 74 40 275 262 174 68 153 101 246
1736218 192 158 41 166 47 257 15 259 220 92 59 52 268 46 20 214 72 39 236 282 46
1737106 257 249 80 279 21 19 104 271 15 55 136 269 100 222 7 182 18 65 128 14 93
1738240 254 224 156 126 43 81 170 96 102 51 87 134 64 104 256 210 100 151 186 123
173989 105 76 174 287 42 42 190 95 140 155 235 258 125 223 117 273 205 246 274 81
174099 112 206 285 127 209 61 8 58 288 66 253 200 235 243 193 105 5 63 228 113 82
1741265 255 44 247 23 224 227 237 102 137 3 148 105 147 285 56 98 165 242 98 236 63
1742157 2 23 209 5 119 117 217 26 15 203 41 151 115 12 193 49 116 122 284 236 7 268
174361 242 169 57 122 213 125 238 49 101 27 39 251 214 1 218 50 63 213 181 127 153
174445 67 114 121 118 93 6 143 165 227 166 118 78 74 188 53 17 189 148 176 258 54
1745112 58 217 82 194 144 275 191 141 ^
1746628 1 3 97 139 194 211 92 250 117 132 147 267 290 119 14 282 13 118 37 111 200
174794 60 216 119 47 270 110 85 203 173 159 16 43 148 277 278 29 5 12 262 158 6 176
1748117 286 135 72 257 164 76 241 106 101 261 148 18 266 247 143 178 32 117 99 159
174949 31 245 123 31 212 135 226 245 90 43 286 289 60 62 131 242 11 65 23 244 80
1750176 84 6 38 105 91 102 238 27 123 290 224 38 259 79 199 84 193 14 128 25 21 191
1751237 17 256 259 233 187 10 160 59 19 276 114 174 169 175 74 18 7 235 69 145 198
1752179 58 252 32 255 111 62 82 278 183 285 230 229 32 68 135 39 269 67 230 75 44
1753263 168 165 86 108 16 92 112 105 58 114 20 181 78 107 265 237 276 268 162 266
1754142 119 201 258 36 52 77 64 118 109 26 80 22 96 80 71 60 29 143 24 44 191 132
1755114 279 193 152 140 99 54 25 54 179 42 276 9 150 192 109 285 92 217 129 35 180
1756101 228 160 213 7 81 81 219 231 134 167 1 231 272 179 196 264 227 117 237 171
1757244 185 200 61 72 119 152 2 87 272 284 220 241 1 77 284 82 229 219 44 158 144
1758188 20 27 90 10 6 71 93 17 69 283 210 82 91 207 262 4 18 79 271 120 73 113 164
1759181 265 83 288 50 195 221 251 281 108 275 104 186 138 184 223 61 88 95 175 107
17606 225 81 114 207 157 101 41 184 190 73 162 128 130 45 168 11 98 11 170 47 221
1761146 257 131 88 23 139 56 199 189 217 283 23 106 68 273 51 51 100 64 13 85 49
1762185 233 49 290 257 26 64 46 73 267 152 107 111 249 58 9 288 204 183 26 218 34
1763170 234 197 169 70 50 41 233 154 22 234 92 145 93 155 81 186 243 208 200 248 48
176421 86 213 40 69 178 186 105 196 126 215 214 204 45 14 23 1 44 4 156 91 53 274
1765199 51 205 88 282 151 130 232 144 34 32 222 123 136 236 112 34 137 246 100 31
176625 159 203 19 171 90 197 274 94 27 228 22 201 104 48 126 110 190 227 150 225 97
176790 230 262 20 286 102 84 39 26 31 58 147 8 278 216 273 35 75 77 251 94 132 252
1768291 267 185 95 37 95 224 71 247 5 166 250 84 144 50 8 245 228 55 189 30 15 172
1769149 28 133 157 134 29 110 36 239 53 87 223 28 100 169 37 62 236 266 280 131 104
1770291 162 161 118 142 14 177 281 141 263 30 153 12 75 182 275 71 198 41 46 178
1771291 129 173 192 4 261 115 30 48 280 98 116 194 24 116 227 12 213 194 57 104 153
1772150 87 85 16 197 136 82 124 195 67 263 63 141 109 42 56 45 201 120 24 149 215
1773109 180 68 240 63 246 133 19 122 126 248 202 9 183 180 206 252 137 279 88 128
1774163 33 265 270 264 73 8 140 204 78 2 241 76 ^
1775622 0 89 183 111 180 34 85 59 159 256 154 207 210 115 75 10 108 168 78 209 68
1776103 176 269 272 55 35 10 51 33 38 87 31 123 258 69 36 172 202 161 171 277 169 3
177722 236 179 109 93 70 83 29 36 67 121 49 61 74 85 116 2 97 244 11 33 160 246 285
17781 42 89 118 87 260 99 159 134 289 247 38 152 55 222 14 110 255 42 211 277 226
1779138 62 64 216 204 11 270 25 206 163 258 241 171 212 30 198 266 195 254 239 84
178069 28 283 143 54 167 153 217 194 142 64 151 65 206 220 99 281 293 249 125 116
178157 137 137 72 48 128 78 152 227 63 54 232 177 22 129 68 168 21 74 28 275 254
1782174 60 149 93 242 218 184 158 37 162 39 249 3 251 212 80 59 52 260 34 20 214 60
178327 228 282 46 106 253 249 68 275 17 15 100 271 15 43 136 269 100 214 289 182 14
178453 120 2 89 240 246 220 156 122 39 77 162 96 90 43 79 134 60 92 252 202 96 147
1785178 119 77 97 72 170 287 38 30 190 83 136 147 235 254 117 219 109 265 205 238
1786266 73 95 100 206 285 123 201 49 290 50 280 66 253 192 227 235 189 93 5 59 224
1787101 74 257 251 40 239 19 224 223 233 102 129 3 144 101 139 281 56 90 165 238 94
1788232 55 157 284 11 205 1 107 113 217 22 7 203 29 143 111 8 193 45 116 122 276
1789236 7 268 53 242 161 49 118 209 125 238 37 97 15 35 247 210 287 210 50 51 205
1790173 127 153 45 59 102 121 114 85 288 135 157 219 166 106 66 66 188 53 13 185
1791148 168 250 50 108 46 213 70 190 140 271 187 63 291 97 137 194 207 88 250 115
1792132 145 263 290 115 10 280 9 118 37 105 198 94 60 214 117 47 268 110 83 201 171
1793155 10 43 144 273 274 27 293 12 260 156 174 117 284 133 70 255 164 76 237 104
1794101 261 146 16 262 243 143 176 32 113 95 157 47 31 245 123 29 208 135 222 243
179586 41 286 285 58 62 129 240 9 61 17 244 76 172 80 2 32 105 91 98 234 27 121 286
1796220 34 257 79 199 84 191 8 128 21 17 187 235 17 252 259 231 187 6 156 57 15 272
1797112 170 165 173 70 18 5 231 65 141 196 179 52 252 30 255 107 56 82 276 179 281
1798228 225 26 66 131 33 267 63 226 73 38 259 166 163 86 106 16 90 108 103 54 110
179918 177 72 105 263 233 274 264 158 266 138 119 199 256 32 48 71 58 112 105 26 74
180020 92 80 67 56 25 141 24 44 191 130 108 275 189 150 140 99 52 23 54 175 42 276
18017 146 188 103 283 86 213 127 31 180 99 224 158 209 3 79 77 219 231 130 165 1
1802229 272 177 194 264 223 111 237 169 240 181 196 57 72 113 152 292 87 268 282
1803218 241 293 77 284 76 229 80 ^
1804635 1 40 150 140 184 12 23 78 294 2 67 93 9 57 283 206 74 83 199 254 4 6 67 263
1805120 61 113 156 181 257 79 284 46 191 213 251 273 100 271 100 186 138 184 223 61
180676 83 175 107 6 217 81 114 207 149 89 29 180 182 73 158 120 122 37 160 11 98
1807295 162 35 221 146 249 123 88 19 139 48 191 189 213 275 15 98 60 273 39 51 96
180860 1 77 49 181 233 41 286 257 18 64 42 65 263 144 99 111 241 58 1 288 196 179
180922 214 30 170 226 197 169 66 42 41 225 146 14 234 92 145 89 155 69 178 243 208
1810200 244 48 21 78 209 40 65 178 182 97 196 118 207 210 200 33 10 23 289 36 152
181179 49 266 195 43 201 84 274 151 130 228 136 34 24 214 115 132 228 112 292 26
1812129 238 92 19 13 159 195 19 163 86 189 274 90 19 224 10 193 104 40 126 102 186
1813223 146 225 85 90 230 262 8 278 90 80 39 14 23 54 147 4 278 216 265 35 75 73
1814243 82 124 248 283 267 185 87 29 95 220 71 243 293 162 246 72 144 38 237 228 51
1815181 22 3 288 172 141 24 129 153 130 17 98 36 235 41 75 219 20 88 165 25 54 232
1816262 280 131 92 291 162 161 110 142 14 173 277 141 259 18 149 4 67 178 267 59
1817198 33 34 170 287 121 173 192 288 257 103 26 44 276 90 104 186 12 108 227 213
1818190 53 96 145 150 79 73 8 193 128 78 124 187 63 263 59 137 109 30 44 41 201 108
181916 149 215 105 176 56 232 51 242 133 7 118 122 248 198 9 183 172 202 244 133
1820279 80 124 163 25 265 270 260 69 8 132 204 74 294 237 252 89 179 107 176 32 85
182153 157 256 154 205 210 115 71 8 108 166 76 209 64 103 176 267 270 49 31 10 47
182231 34 85 29 119 258 69 32 170 202 159 171 277 165 1 16 234 177 107 91 70 83 29
182334 67 117 47 55 72 83 114 292 2 91 240 7 33 160 246 283 291 36 85 114 81 260 93
1824155 130 289 247 38 150 55 222 10 108 251 38 211 275 226 136 58 62 212 200 9 268
182525 204 159 256 239 167 212 30 194 264 195 254 239 82 63 28 279 141 48 167 151
1826215 190 138 58 147 65 202 220 95 281 291 247 123 112 57 137 133 68 42 126 78
1827148 225 61 52 232 177 22 129 68 168 15 74 22 275 250 174 56 147 89 240 218 180
1828158 35 160 35 245 293 247 208 74 59 52 256 28 20 214 54 21 224 282 46 106 251
1829249 62 273 15 13 98 271 15 37 136 269 100 210 285 182 12 47 116 292 87 240 242
1830218 156 120 37 75 158 96 84 39 75 134 58 86 250 198 94 145 174 117 71 93 70 168
1831287 36 24 190 77 134 143 235 252 113 217 105 261 205 234 262 69 93 94 206 285
1832121 197 43 286 46 276 66 253 188 223 231 187 87 5 57 222 95 285 ^
1833636 0 251 248 37 233 16 224 220 230 102 123 3 141 98 133 278 56 84 165 235 91
1834229 49 157 278 2 202 295 98 110 217 19 1 203 20 137 108 5 193 42 116 122 270
1835236 7 268 47 242 155 43 115 206 125 238 28 94 6 32 244 207 284 204 50 42 199
1836167 127 153 45 53 93 121 111 79 282 129 151 213 166 97 57 60 188 53 10 182 148
1837162 244 47 105 37 210 61 187 137 268 184 63 285 97 134 194 201 82 250 112 132
1838142 257 290 109 4 277 3 118 37 96 195 94 60 211 114 47 265 110 80 198 168 149 1
183943 138 267 268 24 287 12 257 153 288 171 117 281 130 67 252 164 76 231 101 101
1840261 143 13 256 237 143 173 32 107 89 154 44 31 245 123 26 202 135 216 240 80 38
1841286 279 55 62 126 237 6 55 8 244 70 166 74 293 23 105 91 92 228 27 118 280 214
184228 254 79 199 84 188 296 128 15 11 181 232 17 246 259 228 187 150 54 9 266 109
1843164 159 170 64 18 2 225 59 135 193 179 43 252 27 255 101 47 82 273 173 275 225
1844219 17 63 125 24 264 57 220 70 29 253 163 160 86 103 16 87 102 100 48 104 15
1845171 63 102 260 227 271 258 152 266 132 119 196 253 26 42 62 49 103 99 26 65 17
184686 80 61 50 19 138 24 44 191 127 99 269 183 147 140 99 49 20 54 169 42 276 4
1847140 182 94 280 77 207 124 25 180 96 218 155 203 294 76 71 219 231 124 162 1 226
1848272 174 191 264 217 102 237 166 234 175 190 51 72 104 152 289 87 262 279 215
1849241 293 77 284 67 229 209 39 148 139 183 10 22 75 292 1 66 93 7 54 283 205 72
185081 197 252 4 3 64 261 120 58 113 154 181 255 78 283 45 190 211 251 271 98 270
185199 186 138 184 223 61 73 80 175 107 6 215 81 114 207 147 86 26 179 180 73 157
1852118 120 35 158 11 98 293 160 32 221 146 247 121 88 18 139 46 189 189 212 273 13
185396 58 273 36 51 95 59 295 75 49 180 233 39 285 257 16 64 41 63 262 142 97 111
1854239 58 296 288 194 178 21 213 29 170 224 197 169 65 40 41 223 144 12 234 92 145
185588 155 66 176 243 208 200 243 48 21 76 208 40 64 178 181 95 196 116 205 209 199
185630 9 23 288 34 296 151 76 48 264 194 41 200 83 272 151 130 227 134 34 22 212
1857113 131 226 112 292 24 127 236 90 16 10 159 193 19 161 85 187 274 89 17 223 7
1858191 104 38 126 100 185 222 145 225 82 90 230 262 5 276 87 79 39 11 21 53 147 3
1859278 216 263 35 75 72 241 79 122 247 281 267 185 85 27 95 219 71 242 292 161 245
186069 144 35 295 235 228 50 179 20 287 172 139 23 128 152 129 14 95 36 234 38 72
1861218 18 85 164 22 52 231 261 280 131 89 291 162 161 108 142 14 172 276 91 ^
1862635 1 256 9 146 297 61 175 261 50 198 27 25 164 284 115 173 192 282 254 94 23
186341 273 84 95 180 3 102 227 290 213 187 50 90 139 150 73 64 2 190 122 75 124 181
186460 263 56 134 109 21 35 38 201 99 10 149 215 102 173 47 226 42 239 133 297 115
1865119 248 195 9 183 166 199 238 130 279 74 121 163 19 265 270 257 66 8 126 204 71
1866294 234 246 89 173 101 170 29 85 44 154 256 154 202 210 115 65 5 108 163 73 209
186758 103 176 264 267 40 25 10 41 28 28 82 26 113 258 69 26 167 202 156 171 277
1868159 297 7 231 174 104 88 70 83 29 31 67 111 44 46 69 80 111 289 2 82 234 1 33
1869160 246 280 285 27 79 108 72 260 84 149 124 289 247 38 147 55 222 4 105 245 32
1870211 272 226 133 52 59 206 194 6 265 25 201 153 253 236 161 212 30 188 261 195
1871254 239 79 54 28 273 138 39 167 148 212 184 132 49 141 65 196 220 89 281 288
1872244 120 106 57 137 127 62 33 123 78 142 222 58 49 232 177 22 129 68 168 6 74 13
1873275 244 174 50 144 83 237 218 174 158 32 157 29 239 287 241 202 65 59 52 250 19
187420 214 45 12 218 282 46 106 248 249 53 270 12 10 95 271 15 28 136 269 100 204
1875279 182 9 38 110 286 84 240 236 215 156 117 34 72 152 96 75 33 69 134 55 77 247
1876192 91 142 168 114 62 87 67 165 287 33 15 190 68 131 137 235 249 107 214 99 255
1877205 228 256 63 90 85 206 285 118 191 34 280 40 270 66 253 182 217 225 184 78 5
187854 219 86 64 247 246 35 229 14 224 218 228 102 119 3 139 96 129 276 56 80 165
1879233 89 227 45 157 274 295 200 295 92 108 217 17 296 203 14 133 106 3 193 40 116
1880122 266 236 7 268 43 242 151 39 113 204 125 238 22 92 30 242 205 282 200 50 36
1881195 163 127 153 45 49 87 121 109 75 278 125 147 209 166 91 51 56 188 53 8 180
1882148 158 240 45 103 31 208 55 185 135 266 182 63 281 97 132 194 197 78 250 110
1883132 140 253 290 105 275 298 118 37 90 193 94 60 209 112 47 263 110 78 196 166
1884145 294 43 134 263 264 22 283 12 255 151 284 169 117 279 128 65 250 164 76 227
188599 101 261 141 11 252 233 143 171 32 103 85 152 42 31 245 123 24 198 135 212
1886238 76 36 286 275 53 62 124 235 4 51 2 244 66 162 70 291 17 105 91 88 224 27
1887116 276 210 24 252 79 199 84 186 292 128 11 7 177 230 17 242 259 226 187 295
1888146 52 5 262 107 160 155 168 60 18 221 55 131 191 179 37 252 25 255 97 41 82
1889271 169 271 223 215 11 61 121 18 262 53 216 68 23 249 161 158 86 101 16 85 98
189098 44 100 13 167 57 100 258 223 269 254 148 266 128 119 194 251 22 38 56 43 275
1891^
1892642 0 91 26 53 13 78 80 53 42 11 134 24 44 191 123 87 261 175 143 140 99 45 16
189354 161 42 276 132 174 82 276 65 199 120 17 180 92 210 151 195 290 72 63 219 231
1894116 158 1 222 272 170 187 264 209 90 237 162 226 167 182 43 72 92 152 285 87
1895254 275 211 241 293 77 284 55 229 201 35 140 135 179 2 18 63 284 298 62 93 300
189642 283 201 64 73 189 244 4 292 52 253 120 46 113 146 181 247 74 279 41 186 203
1897251 263 90 266 95 186 138 184 223 61 61 68 175 107 6 207 81 114 207 139 74 14
1898175 172 73 153 110 112 27 150 11 98 285 152 20 221 146 239 113 88 14 139 38 181
1899189 208 265 5 88 50 273 24 51 91 55 287 67 49 176 233 31 281 257 8 64 37 55 258
1900134 89 111 231 58 292 288 186 174 17 209 25 170 216 197 169 61 32 41 215 136 4
1901234 92 145 84 155 54 168 243 208 200 239 48 21 68 204 40 60 178 177 87 196 108
1902197 205 195 18 5 23 284 26 296 147 64 44 256 190 33 196 79 264 151 130 223 126
190334 14 204 105 127 218 112 292 16 119 228 82 4 299 159 185 19 153 81 179 274 85
19049 219 296 183 104 30 126 92 181 218 141 225 70 90 230 262 294 268 75 75 39 300
190513 49 147 300 278 216 255 35 75 68 233 67 114 243 273 267 185 77 19 95 215 71
1906238 288 157 241 57 144 23 291 227 228 46 171 12 289 283 172 131 19 124 148 125
19072 83 36 230 26 60 214 10 73 160 10 44 227 257 280 131 77 291 162 161 100 142 14
1908168 272 141 254 3 144 295 57 173 257 44 198 23 19 160 282 111 173 192 278 252
190988 21 39 271 80 89 176 298 98 227 286 213 185 48 86 135 150 69 58 299 188 118
191073 124 177 58 263 54 132 109 15 29 36 201 93 6 149 215 100 171 41 222 36 237
1911133 293 113 117 248 193 9 183 162 197 234 128 279 70 119 163 15 265 270 255 64
19128 122 204 69 294 232 242 89 169 97 166 27 85 38 152 256 154 200 210 115 61 3
1913108 161 71 209 54 103 176 262 265 34 21 10 37 26 24 80 24 109 258 69 22 165 202
1914154 171 277 155 297 1 229 172 102 86 70 83 29 29 67 107 42 40 67 78 109 287 2
191576 230 298 33 160 246 278 281 21 75 104 66 260 78 145 120 289 247 38 145 55 222
1916103 241 28 211 270 226 131 48 57 202 190 4 263 25 199 149 251 234 157 212 30
1917184 259 195 254 239 77 48 28 269 136 33 167 146 210 180 128 43 137 65 192 220
191885 281 286 242 118 102 57 137 123 58 27 121 78 138 220 56 47 232 177 22 129 68
1919168 74 7 275 240 174 46 142 79 235 218 170 158 30 155 25 235 283 237 198 59 59
192052 246 13 20 214 39 6 214 282 46 106 246 249 47 268 10 8 93 271 15 22 136 269
1921100 200 275 42 ^
1922644 0 6 29 104 280 81 240 230 212 156 114 31 69 146 96 66 27 63 134 52 68 244
1923186 88 139 162 111 53 81 64 162 287 30 6 190 59 128 131 235 246 101 211 93 249
1924205 222 250 57 87 76 206 285 115 185 25 274 34 264 66 253 176 211 219 181 69 5
192551 216 77 58 241 243 32 223 11 224 215 225 102 113 3 136 93 123 273 56 74 165
1926230 86 224 39 157 268 289 197 295 83 105 217 14 293 203 5 127 103 193 37 116
1927122 260 236 7 268 37 242 145 33 110 201 125 238 13 89 293 27 239 202 279 194 50
192827 189 157 127 153 45 43 78 121 106 69 272 119 141 203 166 82 42 50 188 53 5
1929177 148 152 234 42 100 22 205 46 182 132 263 179 63 275 97 129 194 191 72 250
1930107 132 137 247 290 99 296 272 295 118 37 81 190 94 60 206 109 47 260 110 75
1931193 163 139 288 43 128 257 258 19 277 12 252 148 278 166 117 276 125 62 247 164
193276 221 96 101 261 138 8 246 227 143 168 32 97 79 149 39 31 245 123 21 192 135
1933206 235 70 33 286 269 50 62 121 232 1 45 295 244 60 156 64 288 8 105 91 82 218
193427 113 270 204 18 249 79 199 84 183 286 128 5 1 171 227 17 236 259 223 187 292
1935140 49 301 256 104 154 149 165 54 18 299 215 49 125 188 179 28 252 22 255 91 32
193682 268 163 265 220 209 2 58 115 9 259 47 210 65 14 243 158 155 86 98 16 82 92
193795 38 94 10 161 48 97 255 217 266 248 142 266 122 119 191 248 16 32 47 34 88 89
193826 50 12 76 80 51 40 9 133 24 44 191 122 84 259 173 142 140 99 44 15 54 159 42
1939276 301 130 172 79 275 62 197 119 15 180 91 208 150 193 289 71 61 219 231 114
1940157 1 221 272 169 186 264 207 87 237 161 224 165 180 41 72 89 152 284 87 252
1941274 210 241 293 77 284 52 229 199 34 138 134 178 17 60 282 298 61 93 299 39 283
1942200 62 71 187 242 4 290 49 251 120 43 113 144 181 245 73 278 40 185 201 251 261
194388 265 94 186 138 184 223 61 58 65 175 107 6 205 81 114 207 137 71 11 174 170
194473 152 108 110 25 148 11 98 283 150 17 221 146 237 111 88 13 139 36 179 189 207
1945263 3 86 48 273 21 51 90 54 285 65 49 175 233 29 280 257 6 64 36 53 257 132 87
1946111 229 58 291 288 184 173 16 208 24 170 214 197 169 60 30 41 213 134 2 234 92
1947145 83 155 51 166 243 208 200 238 48 21 66 203 40 59 178 176 85 196 106 195 204
1948194 15 4 23 283 24 296 146 61 43 254 189 31 195 78 262 151 130 222 124 34 12
1949202 103 126 216 112 292 14 117 226 80 1 297 159 183 19 151 80 177 274 84 7 218
1950294 181 104 28 126 90 180 217 140 225 67 90 230 262 292 266 72 74 39 298 11 48
1951147 300 278 216 253 265 ^
1952638 1 75 65 227 58 108 240 267 267 185 71 13 95 212 71 235 285 154 238 48 144
195314 288 221 228 43 165 6 283 280 172 125 16 121 145 122 297 74 36 227 17 51 211
19544 64 157 1 38 224 254 280 131 68 291 162 161 94 142 14 165 269 141 251 298 141
1955292 51 170 251 35 198 17 10 154 279 105 173 192 272 249 79 18 36 268 74 80 170
1956292 92 227 280 213 182 45 80 129 150 63 49 296 185 112 70 124 171 55 263 51 129
1957109 6 20 33 201 84 149 215 97 168 32 216 27 234 133 287 110 114 248 190 9 183
1958156 194 228 125 279 64 116 163 9 265 270 252 61 8 116 204 66 294 229 236 89 163
195991 160 24 85 29 149 256 154 197 210 115 55 108 158 68 209 48 103 176 259 262 25
196015 10 31 23 18 77 21 103 258 69 16 162 202 151 171 277 149 297 296 226 169 99
196183 70 83 29 26 67 101 39 31 64 75 106 284 2 67 224 295 33 160 246 275 275 12 69
196298 57 260 69 139 114 289 247 38 142 55 222 298 100 235 22 211 267 226 128 42 54
1963196 184 1 260 25 196 143 248 231 151 212 30 178 256 195 254 239 74 39 28 263
1964133 24 167 143 207 174 122 34 131 65 186 220 79 281 283 239 115 96 57 137 117
196552 18 118 78 132 217 53 44 232 177 22 129 68 168 295 74 302 275 234 174 40 139
196673 232 218 164 158 27 152 19 229 277 231 192 50 59 52 240 4 20 214 30 301 208
1967282 46 106 243 249 38 265 7 5 90 271 15 13 136 269 100 194 269 182 4 23 100 276
196879 240 226 210 156 112 29 67 142 96 60 23 59 134 50 62 242 182 86 137 158 109
196947 77 62 160 287 28 190 53 126 127 235 244 97 209 89 245 205 218 246 53 85 70
1970206 285 113 181 19 270 30 260 66 253 172 207 215 179 63 5 49 214 71 54 237 241
197130 219 9 224 213 223 102 109 3 134 91 119 271 56 70 165 228 84 222 35 157 264
1972285 195 295 77 103 217 12 291 203 303 123 101 302 193 35 116 122 256 236 7 268
197333 242 141 29 108 199 125 238 7 87 289 25 237 200 277 190 50 21 185 153 127 153
197445 39 72 121 104 65 268 115 137 199 166 76 36 46 188 53 3 175 148 148 230 40 98
197516 203 40 180 130 261 177 63 271 97 127 194 187 68 250 105 132 135 243 290 95
1976294 270 293 118 37 75 188 94 60 204 107 47 258 110 73 191 161 135 284 43 124
1977253 254 17 273 12 250 146 274 164 117 274 123 60 245 164 76 217 94 101 261 136
19786 242 223 143 166 32 93 75 147 37 31 245 123 19 188 135 202 233 66 31 286 265
197948 62 119 230 303 41 291 244 56 152 60 286 2 105 91 78 214 27 111 266 200 14
1980247 79 199 84 181 282 128 1 301 167 225 17 232 259 221 187 290 136 47 299 252
1981102 150 145 163 157 ^
1982653 0 18 299 207 41 117 184 179 16 252 18 255 83 20 82 264 155 257 216 201 296
198354 107 303 255 39 202 61 2 235 154 151 86 94 16 78 84 91 30 86 6 153 36 93 251
1984209 262 240 134 266 114 119 187 244 8 24 35 22 76 81 26 38 8 68 80 43 32 1 129
198524 44 191 118 72 251 165 138 140 99 40 11 54 151 42 276 301 122 164 67 271 50
1986189 115 7 180 87 200 146 185 285 67 53 219 231 106 153 1 217 272 165 182 264
1987199 75 237 157 216 157 172 33 72 77 152 280 87 244 270 206 241 293 77 284 40
1988229 191 30 130 130 174 298 13 48 274 298 57 93 295 27 283 196 54 63 179 234 4
1989282 37 243 120 31 113 136 181 237 69 274 36 181 193 251 253 80 261 90 186 138
1990184 223 61 46 53 175 107 6 197 81 114 207 129 59 305 170 162 73 148 100 102 17
1991140 11 98 275 142 5 221 146 229 103 88 9 139 28 171 189 203 255 301 78 40 273 9
199251 86 50 277 57 49 171 233 21 276 257 304 64 32 45 253 124 79 111 221 58 287
1993288 176 169 12 204 20 170 206 197 169 56 22 41 205 126 300 234 92 145 79 155 39
1994158 243 208 200 234 48 21 58 199 40 55 178 172 77 196 98 187 200 190 3 23 279
199516 296 142 49 39 246 185 23 191 74 254 151 130 218 116 34 4 194 95 122 208 112
1996292 6 109 218 72 295 289 159 175 19 143 76 169 274 80 305 214 286 173 104 20
1997126 82 176 213 136 225 55 90 230 262 284 258 60 70 39 290 3 44 147 300 278 216
1998245 35 75 63 223 52 104 238 263 267 185 67 9 95 210 71 233 283 152 236 42 144 8
1999286 217 228 41 161 2 279 278 172 121 14 119 143 120 293 68 36 225 11 45 209 58
2000155 301 34 222 252 280 131 62 291 162 161 90 142 14 163 267 141 249 294 139 290
200147 168 247 29 198 13 4 150 277 101 173 192 268 247 73 16 34 266 70 74 166 288
200288 227 276 213 180 43 76 125 150 59 43 294 183 108 68 124 167 53 263 49 127 109
200314 31 201 78 302 149 215 95 166 26 212 21 232 133 283 108 112 248 188 9 183 152
2004192 224 123 279 60 114 163 5 265 270 250 59 8 112 204 64 294 227 232 89 159 87
2005156 22 85 23 147 256 154 195 210 115 51 304 108 156 66 209 44 103 176 257 260
200619 11 10 27 21 14 75 19 99 258 69 12 160 202 149 171 277 145 297 292 224 167 97
200781 70 83 29 24 67 97 37 25 62 73 104 282 2 61 220 293 33 160 246 273 271 6 65
200894 51 260 63 135 110 289 247 38 140 55 222 296 98 231 18 211 265 226 126 38 52
2009192 180 305 258 25 194 139 246 229 147 212 30 174 254 195 254 239 72 33 28 259
2010131 18 167 141 205 170 118 28 127 65 182 220 75 281 281 237 113 92 57 137 113
201148 12 116 78 128 215 51 42 232 177 22 129 68 168 291 161 ^
2012653 0 296 275 228 174 34 136 67 229 218 158 158 24 149 13 223 271 225 186 41 59
201352 234 302 20 214 21 295 202 282 46 106 240 249 29 262 4 2 87 271 15 4 136 269
2014100 188 263 182 1 14 94 270 76 240 220 207 156 109 26 64 136 96 51 17 53 134 47
201553 239 176 83 134 152 106 38 71 59 157 287 25 298 190 44 123 121 235 241 91 206
201683 239 205 212 240 47 82 61 206 285 110 175 10 264 24 254 66 253 166 201 209
2017176 54 5 46 211 62 48 231 238 27 213 6 224 210 220 102 103 3 131 88 113 268 56
201864 165 225 81 219 29 157 258 279 192 295 68 100 217 9 288 203 297 117 98 302
2019193 32 116 122 250 236 7 268 27 242 135 23 105 196 125 238 305 84 283 22 234
2020197 274 184 50 12 179 147 127 153 45 33 63 121 101 59 262 109 131 193 166 67 27
202140 188 53 172 148 142 224 37 95 7 200 31 177 127 258 174 63 265 97 124 194 181
202262 250 102 132 132 237 290 89 291 267 290 118 37 66 185 94 60 201 104 47 255
2023110 70 188 158 129 278 43 118 247 248 14 267 12 247 143 268 161 117 271 120 57
2024242 164 76 211 91 101 261 133 3 236 217 143 163 32 87 69 144 34 31 245 123 16
2025182 135 196 230 60 28 286 259 45 62 116 227 303 35 285 244 50 146 54 283 300
2026105 91 72 208 27 108 260 194 8 244 79 199 84 178 276 128 302 298 161 222 17 226
2027259 218 187 287 130 44 296 246 99 144 139 160 44 18 299 205 39 115 183 179 13
2028252 17 255 81 17 82 263 153 255 215 199 294 53 105 301 254 37 200 60 306 233
2029153 150 86 93 16 77 82 90 28 84 5 151 33 92 250 207 261 238 132 266 112 119 186
2030243 6 22 32 19 73 79 26 35 7 66 80 41 30 306 128 24 44 191 117 69 249 163 137
2031140 99 39 10 54 149 42 276 301 120 162 64 270 47 187 114 5 180 86 198 145 183
2032284 66 51 219 231 104 152 1 216 272 164 181 264 197 72 237 156 214 155 170 31
203372 74 152 279 87 242 269 205 241 293 77 284 37 229 189 29 128 129 173 297 12 45
2034272 298 56 93 294 24 283 195 52 61 177 232 4 280 34 241 120 28 113 134 181 235
203568 273 35 180 191 251 251 78 260 89 186 138 184 223 61 43 50 175 107 6 195 81
2036114 207 127 56 303 169 160 73 147 98 100 15 138 11 98 273 140 2 221 146 227 101
203788 8 139 26 169 189 202 253 300 76 38 273 6 51 85 49 275 55 49 170 233 19 275
2038257 303 64 31 43 252 122 77 111 219 58 286 288 174 168 11 203 19 170 204 197
2039169 55 20 41 203 124 299 234 92 145 78 155 36 156 243 208 200 233 48 21 56 198
204040 54 178 171 75 196 96 185 199 189 306 23 278 14 296 141 46 38 244 184 21 190
204173 252 151 130 217 114 34 2 192 93 121 206 112 292 4 107 216 70 293 112 ^
2042646 1 159 169 19 137 73 163 274 77 302 211 280 167 104 14 126 76 173 210 133
2043225 46 90 230 262 278 252 51 67 39 284 306 41 147 300 278 216 239 35 75 60 217
204443 98 235 257 267 185 61 3 95 207 71 230 280 149 233 33 144 308 283 211 228 38
2045155 305 273 275 172 115 11 116 140 117 287 59 36 222 2 36 206 303 49 152 295 28
2046219 249 280 131 53 291 162 161 84 142 14 160 264 141 246 288 136 287 41 165 241
204720 198 7 304 144 274 95 173 192 262 244 64 13 31 263 64 65 160 282 82 227 270
2048213 177 40 70 119 150 53 34 291 180 102 65 124 161 50 263 46 124 109 300 5 28
2049201 69 299 149 215 92 163 17 206 12 229 133 277 105 109 248 185 9 183 146 189
2050218 120 279 54 111 163 308 265 270 247 56 8 106 204 61 294 224 226 89 153 81
2051150 19 85 14 144 256 154 192 210 115 45 304 108 153 63 209 38 103 176 254 257
205210 5 10 21 18 8 72 16 93 258 69 6 157 202 146 171 277 139 297 286 221 164 94 78
205370 83 29 21 67 91 34 16 59 70 101 279 2 52 214 290 33 160 246 270 265 306 59 88
205442 260 54 129 104 289 247 38 137 55 222 293 95 225 12 211 262 226 123 32 49 186
2055174 305 255 25 191 133 243 226 141 212 30 168 251 195 254 239 69 24 28 253 128
20569 167 138 202 164 112 19 121 65 176 220 69 281 278 234 110 86 57 137 107 42 3
2057113 78 122 212 48 39 232 177 22 129 68 168 285 74 292 275 224 174 30 134 63 227
2058218 154 158 22 147 9 219 267 221 182 35 59 52 230 298 20 214 15 291 198 282 46
2059106 238 249 23 260 2 85 271 15 307 136 269 100 184 259 182 308 8 90 266 74 240
2060216 205 156 107 24 62 132 96 45 13 49 134 45 47 237 172 81 132 148 104 32 67 57
2061155 287 23 294 190 38 121 117 235 239 87 204 79 235 205 208 236 43 80 55 206
2062285 108 171 4 260 20 250 66 253 162 197 205 174 48 5 44 209 56 44 227 236 25
2063209 4 224 208 218 102 99 3 129 86 109 266 56 60 165 223 79 217 25 157 254 275
2064190 295 62 98 217 7 286 203 293 113 96 302 193 30 116 122 246 236 7 268 23 242
2065131 19 103 194 125 238 301 82 279 20 232 195 272 180 50 6 175 143 127 153 45 29
206657 121 99 55 258 105 127 189 166 61 21 36 188 53 307 170 148 138 220 35 93 1
2067198 25 175 125 256 172 63 261 97 122 194 177 58 250 100 132 130 233 290 85 289
2068265 288 118 37 60 183 94 60 199 102 47 253 110 68 186 156 125 274 43 114 243
2069244 12 263 12 245 141 264 159 117 269 118 55 240 164 76 207 89 101 261 131 1
2070232 213 143 161 32 83 65 142 32 31 245 123 14 178 135 192 228 56 26 286 255 43
207162 114 225 303 31 281 244 46 142 50 281 296 105 91 238 ^
2072647 0 200 27 104 252 186 240 79 199 84 174 268 128 298 294 153 218 17 218 259
2073214 187 283 122 40 292 238 95 136 131 156 36 18 299 197 31 107 179 179 1 252 13
2074255 73 5 82 259 145 247 211 191 286 49 97 293 250 29 192 56 298 225 149 146 86
207589 16 73 74 86 20 76 1 143 21 88 246 199 257 230 124 266 104 119 182 239 309 14
207620 7 61 71 26 23 3 58 80 33 22 302 124 24 44 191 113 57 241 155 133 140 99 35 6
207754 141 42 276 301 112 154 52 266 35 179 110 308 180 82 190 141 175 280 62 43
2078219 231 96 148 1 212 272 160 177 264 189 60 237 152 206 147 162 23 72 62 152
2079275 87 234 265 201 241 293 77 284 25 229 181 25 120 125 169 293 8 33 264 298 52
208093 290 12 283 191 44 53 169 224 4 272 22 233 120 16 113 126 181 227 64 269 31
2081176 183 251 243 70 256 85 186 138 184 223 61 31 38 175 107 6 187 81 114 207 119
208244 295 165 152 73 143 90 92 7 130 11 98 265 132 301 221 146 219 93 88 4 139 18
2083161 189 198 245 296 68 30 273 305 51 81 45 267 47 49 166 233 11 271 257 299 64
208427 35 248 114 69 111 211 58 282 288 166 164 7 199 15 170 196 197 169 51 12 41
2085195 116 295 234 92 145 74 155 24 148 243 208 200 229 48 21 48 194 40 50 178 167
208667 196 88 177 195 185 299 306 23 274 6 296 137 34 34 236 180 13 186 69 244 151
2087130 213 106 34 305 184 85 117 198 112 292 307 99 208 62 285 279 159 165 19 133
208871 159 274 75 300 209 276 163 104 10 126 72 171 208 131 225 40 90 230 262 274
2089248 45 65 39 280 304 39 147 300 278 216 235 35 75 58 213 37 94 233 253 267 185
209057 310 95 205 71 228 278 147 231 27 144 304 281 207 228 36 151 303 269 273 172
2091111 9 114 138 115 283 53 36 220 307 30 204 301 43 150 291 24 217 247 280 131 47
2092291 162 161 80 142 14 158 262 141 244 284 134 285 37 163 237 14 198 3 300 140
2093272 91 173 192 258 242 58 11 29 261 60 59 156 278 78 227 266 213 175 38 66 115
2094150 49 28 289 178 98 63 124 157 48 263 44 122 109 296 310 26 201 63 297 149 215
209590 161 11 202 6 227 133 273 103 107 248 183 9 183 142 187 214 118 279 50 109
2096163 306 265 270 245 54 8 102 204 59 294 222 222 89 149 77 146 17 85 8 142 256
2097154 190 210 115 41 304 108 151 61 209 34 103 176 252 255 4 1 10 17 16 4 70 14
209889 258 69 2 155 202 144 171 277 135 297 282 219 162 92 76 70 83 29 19 67 87 32
209910 57 68 99 277 2 46 210 288 33 160 246 268 261 302 55 84 36 260 48 125 100 289
2100247 38 135 55 222 291 93 221 8 211 260 226 121 28 47 182 170 305 253 25 189 129
2101241 224 137 212 30 164 249 195 254 239 86 ^
2102665 0 15 28 247 125 167 135 199 158 106 10 115 65 170 220 63 281 275 231 107 80
210357 137 101 36 306 110 78 116 209 45 36 232 177 22 129 68 168 279 74 286 275 218
2104174 24 131 57 224 218 148 158 19 144 3 213 261 215 176 26 59 52 224 292 20 214
21056 285 192 282 46 106 235 249 14 257 311 309 82 271 15 301 136 269 100 178 253
2106182 308 311 84 260 71 240 210 202 156 104 21 59 126 96 36 7 43 134 42 38 234
2107166 78 129 142 101 23 61 54 152 287 20 288 190 29 118 111 235 236 81 201 73 229
2108205 202 230 37 77 46 206 285 105 165 307 254 14 244 66 253 156 191 199 171 39 5
210941 206 47 38 221 233 22 203 1 224 205 215 102 93 3 126 83 103 263 56 54 165 220
211076 214 19 157 248 269 187 295 53 95 217 4 283 203 287 107 93 302 193 27 116 122
2111240 236 7 268 17 242 125 13 100 191 125 238 295 79 273 17 229 192 269 174 50
2112309 169 137 127 153 45 23 48 121 96 49 252 99 121 183 166 52 12 30 188 53 307
2113167 148 132 214 32 90 304 195 16 172 122 253 169 63 255 97 119 194 171 52 250
211497 132 127 227 290 79 286 262 285 118 37 51 180 94 60 196 99 47 250 110 65 183
2115153 119 268 43 108 237 238 9 257 12 242 138 258 156 117 266 115 52 237 164 76
2116201 86 101 261 128 310 226 207 143 158 32 77 59 139 29 31 245 123 11 172 135
2117186 225 50 23 286 249 40 62 111 222 303 25 275 244 40 136 44 278 290 105 91 62
2118198 27 103 250 184 310 239 79 199 84 173 266 128 297 293 151 217 17 216 259 213
2119187 282 120 39 291 236 94 134 129 155 34 18 299 195 29 105 178 179 310 252 12
2120255 71 2 82 258 143 245 210 189 284 48 95 291 249 27 190 55 296 223 148 145 86
212188 16 72 72 85 18 74 141 18 87 245 197 256 228 122 266 102 119 181 238 308 12
212217 4 58 69 26 20 2 56 80 31 20 301 123 24 44 191 112 54 239 153 132 140 99 34 5
212354 139 42 276 301 110 152 49 265 32 177 109 307 180 81 188 140 173 279 61 41
2124219 231 94 147 1 211 272 159 176 264 187 57 237 151 204 145 160 21 72 59 152
2125274 87 232 264 200 241 293 77 284 22 229 179 24 118 124 168 292 7 30 262 298 51
212693 289 9 283 190 42 51 167 222 4 270 19 231 120 13 113 124 181 225 63 268 30
2127175 181 251 241 68 255 84 186 138 184 223 61 28 35 175 107 6 185 81 114 207 117
212841 293 164 150 73 142 88 90 5 128 11 98 263 130 299 221 146 217 91 88 3 139 16
2129159 189 197 243 295 66 28 273 303 51 80 44 265 45 49 165 233 9 270 257 298 64
213026 33 247 112 67 111 209 58 281 288 164 163 6 198 14 170 194 197 169 50 10 41
2131193 114 294 234 92 145 73 155 21 146 243 208 200 228 48 21 46 193 40 49 178 166
213265 196 86 175 194 184 297 306 23 273 206 ^
2133641 0 296 134 25 31 230 177 7 183 66 238 151 130 210 100 34 302 178 79 114 192
2134112 292 304 93 202 56 279 273 159 159 19 127 68 153 274 72 297 206 270 157 104
21354 126 66 168 205 128 225 31 90 230 262 268 242 36 62 39 274 301 36 147 300 278
2136216 229 35 75 55 207 28 88 230 247 267 185 51 307 95 202 71 225 275 144 228 18
2137144 298 278 201 228 33 145 300 263 270 172 105 6 111 135 112 277 44 36 217 301
213821 201 298 34 147 285 18 214 244 280 131 38 291 162 161 74 142 14 155 259 141
2139241 278 131 282 31 160 231 5 198 311 294 134 269 85 173 192 252 239 49 8 26 258
214054 50 150 272 72 227 260 213 172 35 60 109 150 43 19 286 175 92 60 124 151 45
2141263 41 119 109 290 304 23 201 54 294 149 215 87 158 2 196 311 224 133 267 100
2142104 248 180 9 183 136 184 208 115 279 44 106 163 303 265 270 242 51 8 96 204 56
2143294 219 216 89 143 71 140 14 85 313 139 256 154 187 210 115 35 304 108 148 58
2144209 28 103 176 249 252 309 309 10 11 13 312 67 11 83 258 69 310 152 202 141 171
2145277 129 297 276 216 159 89 73 70 83 29 16 67 81 29 1 54 65 96 274 2 37 204 285
214633 160 246 265 255 296 49 78 27 260 39 119 94 289 247 38 132 55 222 288 90 215
21472 211 257 226 118 22 44 176 164 305 250 25 186 123 238 221 131 212 30 158 246
2148195 254 239 64 9 28 243 123 308 167 133 197 154 102 4 111 65 166 220 59 281 273
2149229 105 76 57 137 97 32 302 108 78 112 207 43 34 232 177 22 129 68 168 275 74
2150282 275 214 174 20 129 53 222 218 144 158 17 142 313 209 257 211 172 20 59 52
2151220 288 20 214 281 188 282 46 106 233 249 8 255 311 309 80 271 15 297 136 269
2152100 174 249 182 308 307 80 256 69 240 206 200 156 102 19 57 122 96 30 3 39 134
215340 32 232 162 76 127 138 99 17 57 52 150 287 18 284 190 23 116 107 235 234 77
2154199 69 225 205 198 226 33 75 40 206 285 103 161 303 250 10 240 66 253 152 187
2155195 169 33 5 39 204 41 34 217 231 20 199 313 224 203 213 102 89 3 124 81 99 261
215656 50 165 218 74 212 15 157 244 265 185 295 47 93 217 2 281 203 283 103 91 302
2157193 25 116 122 236 236 7 268 13 242 121 9 98 189 125 238 291 77 269 15 227 190
2158267 170 50 305 165 133 127 153 45 19 42 121 94 45 248 95 117 179 166 46 6 26
2159188 53 307 165 148 128 210 30 88 300 193 10 170 120 251 167 63 251 97 117 194
2160167 48 250 95 132 125 223 290 75 284 260 283 118 37 45 178 94 60 194 97 47 248
2161110 63 181 151 115 264 43 104 233 234 7 253 12 240 136 254 154 117 264 113 50
2162235 164 76 197 84 101 261 126 310 222 203 143 276 ^
2163656 0 32 69 51 135 25 31 245 123 7 164 135 178 221 42 19 286 241 36 62 107 218
2164303 17 267 244 32 128 36 274 282 105 91 54 190 27 99 242 176 306 235 79 199 84
2165169 258 128 293 289 143 213 17 208 259 209 187 278 112 35 287 228 90 126 121
2166151 26 18 299 187 21 97 174 179 302 252 8 255 63 306 82 254 135 237 206 181 276
216744 87 283 245 19 182 51 288 215 144 141 86 84 16 68 64 81 10 66 312 133 6 83
2168241 189 252 220 114 266 94 119 177 234 304 4 5 308 46 61 26 8 314 48 80 23 12
2169297 119 24 44 191 108 42 231 145 128 140 99 30 1 54 131 42 276 301 102 144 37
2170261 20 169 105 303 180 77 180 136 165 275 57 33 219 231 86 143 1 207 272 155
2171172 264 179 45 237 147 196 137 152 13 72 47 152 270 87 224 260 196 241 293 77
2172284 10 229 171 20 110 120 164 288 3 18 254 298 47 93 285 313 283 186 34 43 159
2173214 4 262 7 223 120 1 113 116 181 217 59 264 26 171 173 251 233 60 251 80 186
2174138 184 223 61 16 23 175 107 6 177 81 114 207 109 29 285 160 142 73 138 80 82
2175313 120 11 98 255 122 291 221 146 209 83 88 315 139 8 151 189 193 235 291 58 20
2176273 295 51 76 40 257 37 49 161 233 1 266 257 294 64 22 25 243 104 59 111 201 58
2177277 288 156 159 2 194 10 170 186 197 169 46 2 41 185 106 290 234 92 145 69 155
21789 138 243 208 200 224 48 21 38 189 40 45 178 162 57 196 78 167 190 180 289 306
217923 269 312 296 132 19 29 226 175 3 181 64 234 151 130 208 96 34 300 174 75 112
2180188 112 292 302 89 198 52 275 269 159 155 19 123 66 149 274 70 295 204 266 153
2181104 126 62 166 203 126 225 25 90 230 262 264 238 30 60 39 270 299 34 147 300
2182278 216 225 35 75 53 203 22 84 228 243 267 185 47 305 95 200 71 223 273 142 226
218312 144 294 276 197 228 31 141 298 259 268 172 101 4 109 133 110 273 38 36 215
2184297 15 199 296 28 145 281 14 212 242 280 131 32 291 162 161 70 142 14 153 257
2185141 239 274 129 280 27 158 227 315 198 309 290 130 267 81 173 192 248 237 43 6
218624 256 50 44 146 268 68 227 256 213 170 33 56 105 150 39 13 284 173 88 58 124
2187147 43 263 39 117 109 286 300 21 201 48 292 149 215 85 156 312 192 307 222 133
2188263 98 102 248 178 9 183 132 182 204 113 279 40 104 163 301 265 270 240 49 8 92
2189204 54 294 217 212 89 139 67 136 12 85 309 137 256 154 185 210 115 31 304 108
2190146 56 209 24 103 176 247 250 305 307 10 7 11 310 65 9 79 258 69 308 150 202
2191139 171 277 125 297 272 214 157 87 71 70 83 29 14 67 77 27 311 52 63 94 272 2
219231 200 283 33 160 246 263 251 292 45 74 21 260 33 115 90 289 247 38 130 55 222
2193286 88 211 227 ^
2194668 0 211 254 226 115 16 41 170 158 305 247 25 183 117 235 218 125 212 30 152
2195243 195 254 239 61 28 237 120 302 167 130 194 148 96 312 105 65 160 220 53 281
2196270 226 102 70 57 137 91 26 296 105 78 106 204 40 31 232 177 22 129 68 168 269
219774 276 275 208 174 14 126 47 219 218 138 158 14 139 310 203 251 205 166 11 59
219852 214 282 20 214 308 275 182 282 46 106 230 249 316 252 311 309 77 271 15 291
2199136 269 100 168 243 182 308 301 74 250 66 240 200 197 156 99 16 54 116 96 21
2200314 33 134 37 23 229 156 73 124 132 96 8 51 49 147 287 15 278 190 14 113 101
2201235 231 71 196 63 219 205 192 220 27 72 31 206 285 100 155 297 244 4 234 66 253
2202146 181 189 166 24 5 36 201 32 28 211 228 17 193 313 224 200 210 102 83 3 121
220378 93 258 56 44 165 215 71 209 9 157 238 259 182 295 38 90 217 316 278 203 277
220497 88 302 193 22 116 122 230 236 7 268 7 242 115 3 95 186 125 238 285 74 263 12
2205224 187 264 164 50 299 159 127 127 153 45 13 33 121 91 39 242 89 111 173 166 37
2206314 20 188 53 307 162 148 122 204 27 85 294 190 1 167 117 248 164 63 245 97 114
2207194 161 42 250 92 132 122 217 290 69 281 257 280 118 37 36 175 94 60 191 94 47
2208245 110 60 178 148 109 258 43 98 227 228 4 247 12 237 133 248 151 117 261 110
220947 232 164 76 191 81 101 261 123 310 216 197 143 153 32 67 49 134 24 31 245 123
22106 162 135 176 220 40 18 286 239 35 62 106 217 303 15 265 244 30 126 34 273 280
2211105 91 52 188 27 98 240 174 305 234 79 199 84 168 256 128 292 288 141 212 17
2212206 259 208 187 277 110 34 286 226 89 124 119 150 24 18 299 185 19 95 173 179
2213300 252 7 255 61 304 82 253 133 235 205 179 274 43 85 281 244 17 180 50 286 213
2214143 140 86 83 16 67 62 80 8 64 312 131 3 82 240 187 251 218 112 266 92 119 176
2215233 303 2 2 306 43 59 26 5 314 46 80 21 10 296 118 24 44 191 107 39 229 143 127
2216140 99 29 54 129 42 276 301 100 142 34 260 17 167 104 302 180 76 178 135 163
2217274 56 31 219 231 84 142 1 206 272 154 171 264 177 42 237 146 194 135 150 11 72
221844 152 269 87 222 259 195 241 293 77 284 7 229 169 19 108 119 163 287 2 15 252
2219298 46 93 284 311 283 185 32 41 157 212 4 260 4 221 120 315 113 114 181 215 58
2220263 25 170 171 251 231 58 250 79 186 138 184 223 61 13 20 175 107 6 175 81 114
2221207 107 26 283 159 140 73 137 78 80 312 118 11 98 253 120 289 221 146 207 81 88
2222315 139 6 149 189 192 233 290 56 18 273 293 51 75 39 255 35 49 160 233 316 265
2223257 293 64 21 23 242 102 57 111 199 58 276 288 154 158 1 193 9 170 184 197 169
222445 41 183 104 289 234 92 145 68 155 6 136 243 208 203 ^
2225656 0 221 48 21 32 186 40 42 178 159 51 196 72 161 187 177 283 306 23 266 309
2226296 129 10 26 220 172 316 178 61 228 151 130 205 90 34 297 168 69 109 182 112
2227292 299 83 192 46 269 263 159 149 19 117 63 143 274 67 292 201 260 147 104 313
2228126 56 163 200 123 225 16 90 230 262 258 232 21 57 39 264 296 31 147 300 278
2229216 219 35 75 50 197 13 78 225 237 267 185 41 302 95 197 71 220 270 139 223 3
2230144 288 273 191 228 28 135 295 253 265 172 95 1 106 130 107 267 29 36 212 291 6
2231196 293 19 142 275 8 209 239 280 131 23 291 162 161 64 142 14 150 254 141 236
2232268 126 277 21 155 221 309 198 306 284 124 264 75 173 192 242 234 34 3 21 253
223344 35 140 262 62 227 250 213 167 30 50 99 150 33 4 281 170 82 55 124 141 40 263
223436 114 109 280 294 18 201 39 289 149 215 82 153 306 186 301 219 133 257 95 99
2235248 175 9 183 126 179 198 110 279 34 101 163 298 265 270 237 46 8 86 204 51 294
2236214 206 89 133 61 130 9 85 303 134 256 154 182 210 115 25 304 108 143 53 209 18
2237103 176 244 247 299 304 10 1 8 307 62 6 73 258 69 305 147 202 136 171 277 119
2238297 266 211 154 84 68 70 83 29 11 67 71 24 305 49 60 91 269 2 22 194 280 33 160
2239246 260 245 286 39 68 12 260 24 109 84 289 247 38 127 55 222 283 85 205 311 211
2240252 226 113 12 39 166 154 305 245 25 181 113 233 216 121 212 30 148 241 195 254
2241239 59 313 28 233 118 298 167 128 192 144 92 308 101 65 156 220 49 281 268 224
2242100 66 57 137 87 22 292 103 78 102 202 38 29 232 177 22 129 68 168 265 74 272
2243275 204 174 10 124 43 217 218 134 158 12 137 308 199 247 201 162 5 59 52 210
2244278 20 214 304 271 178 282 46 106 228 249 312 250 311 309 75 271 15 287 136 269
2245100 164 239 182 308 297 70 246 64 240 196 195 156 97 14 52 112 96 15 312 29 134
224635 17 227 152 71 122 128 94 2 47 47 145 287 13 274 190 8 111 97 235 229 67 194
224759 215 205 188 216 23 70 25 206 285 98 151 293 240 230 66 253 142 177 185 164
224818 5 34 199 26 24 207 226 15 189 313 224 198 208 102 79 3 119 76 89 256 56 40
2249165 213 69 207 5 157 234 255 180 295 32 88 217 316 276 203 273 93 86 302 193 20
2250116 122 226 236 7 268 3 242 111 318 93 184 125 238 281 72 259 10 222 185 262
2251160 50 295 155 123 127 153 45 9 27 121 89 35 238 85 107 169 166 31 310 16 188
225253 307 160 148 118 200 25 83 290 188 314 165 115 246 162 63 241 97 112 194 157
225338 250 90 132 120 213 290 65 279 255 278 118 37 30 173 94 60 189 92 47 243 110
225458 176 146 105 254 43 94 223 224 2 243 12 235 131 244 149 117 259 108 45 230
2255164 76 187 79 101 261 109 ^
2256656 0 310 208 189 143 149 32 59 41 130 20 31 245 123 2 154 135 168 216 32 14
2257286 231 31 62 102 213 303 7 257 244 22 118 26 269 272 105 91 44 180 27 94 232
2258166 301 230 79 199 84 164 248 128 288 284 133 208 17 198 259 204 187 273 102 30
2259282 218 85 116 111 146 16 18 299 177 11 87 169 179 292 252 3 255 53 296 82 249
2260125 227 201 171 266 39 77 273 240 9 172 46 278 205 139 136 86 79 16 63 54 76 56
2261312 123 312 78 236 179 247 210 104 266 84 119 172 229 299 315 311 298 31 51 26
2262314 314 38 80 13 2 292 114 24 44 191 103 27 221 135 123 140 99 25 317 54 121 42
2263276 301 92 134 22 256 5 159 100 298 180 72 170 131 155 270 52 23 219 231 76 138
22641 202 272 150 167 264 169 30 237 142 186 127 142 3 72 32 152 265 87 214 255 191
2265241 293 77 284 316 229 161 15 100 115 159 283 319 3 244 298 42 93 280 303 283
2266181 24 33 149 204 4 252 313 213 120 307 113 106 181 207 54 259 21 166 163 251
2267223 50 246 75 186 138 184 223 61 1 8 175 107 6 167 81 114 207 99 14 275 155 132
226873 133 70 72 308 110 11 98 245 112 281 221 146 199 73 88 315 139 319 141 189
2269188 225 286 48 10 273 285 51 71 35 247 27 49 156 233 312 261 257 289 64 17 15
2270238 94 49 111 191 58 272 288 146 154 318 189 5 170 176 197 169 41 313 41 175 96
2271285 234 92 145 64 155 315 128 243 208 200 219 48 21 28 184 40 40 178 157 47 196
227268 157 185 175 279 306 23 264 307 296 127 4 24 216 170 314 176 59 224 151 130
2273203 86 34 295 164 65 107 178 112 292 297 79 188 42 265 259 159 145 19 113 61
2274139 274 65 290 199 256 143 104 311 126 52 161 198 121 225 10 90 230 262 254 228
227515 55 39 260 294 29 147 300 278 216 215 35 75 48 193 7 74 223 233 267 185 37
2276300 95 195 71 218 268 137 221 318 144 284 271 187 228 26 131 293 249 263 172 91
2277320 104 128 105 263 23 36 210 287 194 291 13 140 271 4 207 237 280 131 17 291
2278162 161 60 142 14 148 252 141 234 264 124 275 17 153 217 305 198 304 280 120
2279262 71 173 192 238 232 28 1 19 251 40 29 136 258 58 227 246 213 165 28 46 95
2280150 29 319 279 168 78 53 124 137 38 263 34 112 109 276 290 16 201 33 287 149
2281215 80 151 302 182 297 217 133 253 93 97 248 173 9 183 122 177 194 108 279 30
228299 163 296 265 270 235 44 8 82 204 49 294 212 202 89 129 57 126 7 85 299 132
2283256 154 180 210 115 21 304 108 141 51 209 14 103 176 242 245 295 302 10 318 6
2284305 60 4 69 258 69 303 145 202 134 171 277 115 297 262 209 152 82 66 70 83 29 9
228567 67 22 301 47 58 89 267 2 16 190 278 33 160 246 258 241 282 35 64 6 260 18
2286105 80 289 247 38 125 55 292 ^
2287<D
2288
2289H>SHS Type 3 Strings<H
2290D>
229145 0 14 5 3 1 4 16 12 20 1 6 15 11 18 4 17 16 6 10 3 2 9 9 14 6 2 8 6 7 10 17
229212 20 6 7 5 16 1 4 2 17 10 15 8 20 1 ^
2293<D